public class StatisticsGUI
extends java.lang.Object
| Modifier and Type | Field and Description |
|---|---|
private static int |
allTimeAnimations |
private static int |
allTimeDemos |
private static javax.swing.JPanel |
allTimeDetailsPanel |
private static int |
allTimeLit |
private static javax.swing.JPanel |
allTimePanel |
private static int |
allTimePlayed |
private static int |
allTimePressed |
private static double |
allTimeReceived |
private static double |
allTimeSent |
private static javax.swing.JPanel |
allTimeTitlePanel |
private static int |
currentAnimations |
private static int |
currentDemos |
private static int |
currentLit |
private static int |
currentPlayed |
private static int |
currentPressed |
private static double |
currentReceived |
private static double |
currentSent |
private static javax.swing.JPanel |
currentSessionDetailsPanel |
private static javax.swing.JPanel |
currentSessionPanel |
private static javax.swing.JPanel |
currentSessionTitlePanel |
private static boolean |
DEBUG |
private static javax.swing.JFrame |
frame |
private static javax.swing.JLabel |
lblAllTime |
private static javax.swing.JLabel |
lblAnimationsCalled |
private static javax.swing.JLabel |
lblCurrentSession |
private static javax.swing.JLabel |
lblDataReceived |
private static javax.swing.JLabel |
lblDataSent |
private static javax.swing.JLabel |
lblGamesPlayed |
private static javax.swing.JLabel |
lblPadsLit |
private static javax.swing.JLabel |
lblPadsPressed |
private static javax.swing.JLabel |
lblTechDemosRan |
private static javax.swing.JLabel |
lblTotalAnimationsCalled |
private static javax.swing.JLabel |
lblTotalDataReceived |
private static javax.swing.JLabel |
lblTotalDataSent |
private static javax.swing.JLabel |
lblTotalGamesPlayed |
private static javax.swing.JLabel |
lbltotalPadsLit |
private static javax.swing.JLabel |
lbltotalPadsPressed |
private static javax.swing.JLabel |
lblTotalTechDemosRan |
private static int |
mainWindowH |
private static int |
mainWindowW |
private static int |
mainWindowX |
private static int |
mainWindowY |
private static javax.swing.JPanel |
panel |
private static javax.swing.JPanel |
panel_1 |
private static javax.swing.JPanel |
panel_2 |
private static javax.swing.JSeparator |
separator |
private static javax.swing.JSeparator |
separator_1 |
private static javax.swing.JSeparator |
separator_2 |
(package private) static boolean |
windowActive |
private static int |
windowH |
private static int |
windowW |
private static int |
windowX |
private static int |
windowY |
| Constructor and Description |
|---|
StatisticsGUI(boolean start)
Constructor for the GUI
|
| Modifier and Type | Method and Description |
|---|---|
private static java.lang.String |
convertData(double data)
Converts the given value from Bytes to either B, KB, MB, GB or TB based
on the value
|
private void |
createAndShowGUI()
Creates the GUI and places GUI elements
|
static void |
focus()
Focuses the statistics window
|
static void |
getStats()
Gets the all time statistics from the database and saves them for use
|
static int |
getTotalAnimationsCalled()
Returns the total amount of animations called
|
static double |
getTotalDataReceived()
Returns the total amount of data received
|
static double |
getTotalDataSent()
Returns the total amount of data sent
|
static int |
getTotalDemosRan()
Returns the total amount of demos ran
|
static int |
getTotalGamesPlayed()
Returns the total amount of games played
|
static int |
getTotalPadsLit()
Returns the total number of pads lit
|
static int |
getTotalPadsPressed()
Returns the total number of pads pressed
|
private void |
initialize()
Sets the window position and dimensions
|
int |
quit()
Closes the Statistics window
|
static void |
saveStats()
Saves the all time statistics to the database
|
static void |
setCurrentAnimationsCalled(int played)
Sets current Animations Called to the given value and updates the all
time Animations Ran value
|
static void |
setCurrentDataReceived(double data)
Sets current Received Data to the given value and updates the all time
Received Data value
|
static void |
setCurrentDataSent(double data)
Sets current Sent Data to the given value and updates the all time Sent
Data value
|
static void |
setCurrentGamesPlayed(int played)
Sets current Games Played to the given value and updates the all time
Games Played value
|
static void |
setCurrentPadsLit(int lit)
Sets current Pads Lit to the given value and updates the all time Pads
Lit value
|
static void |
setCurrentPadsPressed(int pressed)
Sets current Pads Pressed to the given value and updates the all time
Pads Pressed value
|
static void |
setCurrentTechDemosRan(int played)
Sets current Tech Demos Ran to the given value and updates the all time
Tech Demos Ran value
|
private void |
setInteractions()
Defines and implements all the interactions for the Statistics GUI
|
static void |
setTotalAnimationsCalled(int played)
Sets the all time Animations Called value
|
static void |
setTotalDataReceived(double data)
Sets the all time Received Data value
|
static void |
setTotalDataSent(double data)
Sets the all time Sent Data value
|
static void |
setTotalGamesPlayed(int played)
Sets the all time Games Played value
|
static void |
setTotalPadsLit(int lit)
Sets the all time Pads Lit value
|
static void |
setTotalPadsPressed(int pressed)
Sets the all time Pads Pressed value
|
static void |
setTotalTechDemosRan(int played)
Sets the all time Tech Demos Ran value
|
private void |
updateAllTime()
Updates the metrics for the all time statistics
|
private void |
updateCurrent()
Updates the metrics for the current session's statistics
|
private void |
updateCurrentAnimationsCalled()
Updates the current sessions' Animations Called statistic
|
private void |
updateCurrentDataReceived()
Updates the current sessions' Received Data statistic
|
private void |
updateCurrentDataSent()
Updates the current sessions' Sent Data statistic
|
private void |
updateCurrentGamesPlayed()
Updates the current sessions' Games Played statistic
|
private void |
updateCurrentPadsLit()
Updates the current sessions' Pads Lit statistic
|
private void |
updateCurrentPadsPressed()
Updates the current sessions' Pads Pressed statistic
|
private void |
updateCurrentTechDemosRan()
Updates the current sessions' Tech Demos Ran statistic
|
private void |
updateStats()
Updates the metrics for all the statistics
|
private void |
updateTotalAnimationsCalled()
Updates the all time Animations Called statistic
|
private void |
updateTotalDataReceived()
Updates the all time Received Data statistic
|
private void |
updateTotalDataSent()
Updates the all time Sent Data statistic
|
private void |
updateTotalGamesPlayed()
Updates the all time Games Played statistic
|
private void |
updateTotalPadsLit()
Updates the all time Pads Lit statistic
|
private void |
updateTotalPadsPressed()
Updates the all time Pads Pressed statistic
|
private void |
updateTotalTechDemosRan()
Updates the all time Tech Demos Ran statistic
|
private static int allTimeAnimations
private static int allTimeDemos
private static final javax.swing.JPanel allTimeDetailsPanel
private static int allTimeLit
private static final javax.swing.JPanel allTimePanel
private static int allTimePlayed
private static int allTimePressed
private static double allTimeReceived
private static double allTimeSent
private static final javax.swing.JPanel allTimeTitlePanel
private static int currentAnimations
private static int currentDemos
private static int currentLit
private static int currentPlayed
private static int currentPressed
private static double currentReceived
private static double currentSent
private static final javax.swing.JPanel currentSessionDetailsPanel
private static final javax.swing.JPanel currentSessionPanel
private static final javax.swing.JPanel currentSessionTitlePanel
private static boolean DEBUG
private static javax.swing.JFrame frame
private static final javax.swing.JLabel lblAllTime
private static final javax.swing.JLabel lblAnimationsCalled
private static final javax.swing.JLabel lblCurrentSession
private static final javax.swing.JLabel lblDataReceived
private static final javax.swing.JLabel lblDataSent
private static final javax.swing.JLabel lblGamesPlayed
private static final javax.swing.JLabel lblPadsLit
private static final javax.swing.JLabel lblPadsPressed
private static final javax.swing.JLabel lblTechDemosRan
private static final javax.swing.JLabel lblTotalAnimationsCalled
private static final javax.swing.JLabel lblTotalDataReceived
private static final javax.swing.JLabel lblTotalDataSent
private static final javax.swing.JLabel lblTotalGamesPlayed
private static final javax.swing.JLabel lbltotalPadsLit
private static final javax.swing.JLabel lbltotalPadsPressed
private static final javax.swing.JLabel lblTotalTechDemosRan
private static int mainWindowH
private static int mainWindowW
private static int mainWindowX
private static int mainWindowY
private static final javax.swing.JPanel panel
private static final javax.swing.JPanel panel_1
private static final javax.swing.JPanel panel_2
private static final javax.swing.JSeparator separator
private static final javax.swing.JSeparator separator_1
private static final javax.swing.JSeparator separator_2
static boolean windowActive
private static int windowH
private static int windowW
private static int windowX
private static int windowY
public StatisticsGUI(boolean start)
start
- true if the GUI should be displayed, false otherwiseprivate static java.lang.String convertData(double data)
data
- Value in Bytesprivate void createAndShowGUI()
public static void focus()
public static void getStats()
public static int getTotalAnimationsCalled()
public static double getTotalDataReceived()
public static double getTotalDataSent()
public static int getTotalDemosRan()
public static int getTotalGamesPlayed()
public static int getTotalPadsLit()
public static int getTotalPadsPressed()
private void initialize()
public int quit()
public static void saveStats()
public static void setCurrentAnimationsCalled(int played)
played
- Number of Animations called this sessionpublic static void setCurrentDataReceived(double data)
data
- Amount of data received this session in Bytespublic static void setCurrentDataSent(double data)
data
- Amount of data sent this session in Bytespublic static void setCurrentGamesPlayed(int played)
played
- Number of Games played this sessionpublic static void setCurrentPadsLit(int lit)
lit
- Number of pads lit this sessionpublic static void setCurrentPadsPressed(int pressed)
pressed
- Number of pads pressed this sessionpublic static void setCurrentTechDemosRan(int played)
played
- Number of Tech Demos ran this sesionprivate void setInteractions()
public static void setTotalAnimationsCalled(int played)
played
- Number of animations calledpublic static void setTotalDataReceived(double data)
data
- Amount of data received in Bytespublic static void setTotalDataSent(double data)
data
- Amount of data sent in Bytespublic static void setTotalGamesPlayed(int played)
played
- Number of games playedpublic static void setTotalPadsLit(int lit)
lit
- Number of pads litpublic static void setTotalPadsPressed(int pressed)
pressed
- Number of pads pressedpublic static void setTotalTechDemosRan(int played)
played
- Number of tech demos ranprivate void updateAllTime()
private void updateCurrent()
private void updateCurrentAnimationsCalled()
private void updateCurrentDataReceived()
private void updateCurrentDataSent()
private void updateCurrentGamesPlayed()
private void updateCurrentPadsLit()
private void updateCurrentPadsPressed()
private void updateCurrentTechDemosRan()
private void updateStats()
private void updateTotalAnimationsCalled()
private void updateTotalDataReceived()
private void updateTotalDataSent()
private void updateTotalGamesPlayed()
private void updateTotalPadsLit()
private void updateTotalPadsPressed()
private void updateTotalTechDemosRan()


OWASP Cheat Sheet Series
This is a summary of notes taken from the OWASP Cheat Sheet Series
Cryptographic Requirements
The recommended minimal key lengths and algorithms by OWASP are outlined below.
Key exchange |
Diffie–Hellman with a minimum of 2048 bits |
Message Integrity |
HMAC-SHA2 |
Message Hash |
SHA2 256 bits |
Asymetric encryption |
RSA 2048 bits |
Symmetric-key algorithm |
AES 128 bits |
Password Hashing |
PBKDF2, Scrypt, Bcrypt |
Certificate Pinning
Pinning is the process of associating a host with their expected X509 certificate or public key. Once a certificate or public key is known or seen for a host, the certificate or public key is associated or 'pinned' to the host. If more than one certificate or public key is acceptable, then the program holds a pinset. In this case, the advertised identity must match one of the elements in the pinset.
Pinning Methods
There are a number of ways you can pin the certificate to the client: the whole certificate, the public key of the certificate or a hash of the information.
Certificate
The certificate is the easiest to pin to the client. However, one of the main downsides is having to update the app with a new certificate every time the cert expires, cert rotation or a CA is compromised.
Public Key
Public key pinning is more flexible. As with a certificate, the program checks the extracted public key with its embedded copy of the public key. This will mean that if a cert is rotated or expires, and the public key doesn’t change in the process, you don’t need to update your applications with new certificates, as we are only concerned with a public key. There are some extra steps necessary to extract the public key from a certificate and as the key is static and may violate key rotation policies.
HPKP (HTTP Public Key Pinning)
With HPKP, a number of public keys are pinned on the server. When a client visits the website for the first time, the client will store these pins. On every future visit to the website, the client will make sure the public keys match the ones that they have stored locally. If the keys don’t match, it could mean that the CA was compromised or the keys have been rotated. This is an example of dynamic pinning, where the entity to pin is retrieved dynamically from the server, rather than being packaged or stored locally at development/build time.
A valid HPKP configuration must also include at least one backup key. Therefore, if something goes wrong, you can use the backup key instead.
The following is an example of the Public-Key-Pins HPKP Header:
Public-Key-Pins:
pin-sha256="cUPcTAZWKaASuYWhhneDttWpY3oBAkE3h2+soZS7sWs=";
pin-sha256="M8HztCzM3elUxkcjR2S5P4hhyBNf6lHkmjAHKhpGPWE=";
max-age=5184000; includeSubDomains;
report-uri="https://www.example.org/hpkp-report"
-
The first
pin-sha256
is the production public key of the server. -
The second
pin-sha256
is the backup key. -
The
max-age
tells the client how long to store the keys for. -
The
includeSubDomains
definition means that the key pinning is also valid for all subdomains. -
The
report-uri
defines where you can report pin validation failures.
Some potential issues with HPKP have been pointed out by Qualys SSL Labs.
An example of a helmet.js implementation guide for Node/Express is also available here.
TrustKit
TrustKit for iOS and TrustKit-Android for Android allow SSL pinning for native mobile apps.
Jailbreaking
Jailbreaking or rooting is the process of gaining unauthorized access or elevated privileges on a system.
Detecting Jailbreak
-
Identify 3rd party app stores (e.g. Cydia for iOS) or popular superuser applications.
-
Attempt to identify modified kernels by comparing certain system files that the application would have access to on a non-jailbroken device to known good file hashes. This technique can serve as a good starting point for detection.
-
Attempt to write a file outside of the application’s root directory. The attempt should fail for non-jailbroken devices as they don’t have the necessary permissions.
-
Generalizing, attempt to identify anomalies in the underlying system or verify the ability to execute privileged functions or methods.


tasks_file.h
This library provides assynchronous file operations. It uses STask to execute the
synchronous operations from interface/file.h in a seperate thread.
File information
Classes
TaskFileWrite
Used to write to a file. A file may be created, an existing file replaced or to an existing file
appended.
class TaskFileWrite : public STask {
void SStart();
char * workingPath;
char * fileName;
bool append;
class IFileWrite * file;
byte * buffer;
unsigned length;
bool last;
public:
TaskFileWrite(class STaskContext * context, const char * workingPath, const char * fileName, bool append);
~TaskFileWrite();
void write(byte * buffer, unsigned length, bool last);
void writeBuffer(byte * buffer, unsigned length, bool last);
};
TaskFileWrite
Contructor. TaskFileWrite uses STask as base class, which means for the operation, first
the class is allocated with all required parameters and then SStart() is used to start it.
The TaskProgress, TaskComplete and TaskFailed functions are used to indicate
progress and completion of the Task.
Parameters
| class STaskContext * context |
An STaskContext must be allocated for the operation. It manages a pool
of threads for the execution.
|
| const char * workingPath |
The path in which the file is written. If parts of the path do not exist
the folders are created.
|
| const char * fileName |
The name of the file to be written. If the file does not exist, it is
created.
|
| bool append |
If true the data is appended to the file, if it already exists, otherwise
the file is overwritten
|
write
Write data to the file. May be called after the TaskProgress callback was called, either
after SStart() or the last write() call.
The data passed by this function is copied into a new buffer.
Parameters
| byte * buffer |
Buffer containing the data
|
| unsigned length |
The length of the data in bytes
|
| bool last |
Indicates that this is the last block of data. The operation completes
when this parameter is set to true
|
writeBuffer
Same functionality as write, except the data is not copied and the buffer is freed
after the data is written.
TaskFileRead
Used to read from a file.
class TaskFileRead : public STask {
void SStart();
char * workingPath;
char * fileName;
class IFileRead * file;
byte * buffer;
unsigned length;
bool last;
public:
TaskFileRead(class STaskContext * context, const char * workingPath, const char * fileName, unsigned length, bool last);
~TaskFileRead();
void read(unsigned length, bool last);
unsigned getLength() { return length; };
void getData(byte * buffer, unsigned length) { memcpy(buffer, this->buffer, length); };
};
TaskFileRead
Contructor. TaskFileRead uses STask as base class, which means for the operation, first
the class is allocated with all required parameters and then SStart() is used to start it.
The TaskProgress, TaskComplete and TaskFailed functions are used to indicate
progress and completion of the Task.
Parameters
| class STaskContext * context |
An STaskContext must be allocated for the operation. It manages a pool
of threads for the execution.
|
| const char * workingPath |
The path from which the file is read
|
| const char * fileName |
The name of the file to be read.
|
| unsigned length |
The length to be read initially
|
| bool last |
If true no othe data shall be read after the initial block.
|
read
Initiates reading of the next block of data. May be called after the TaskProgress
callback was called, either after SStart() or the last read() call.
Parameters
-
| unsigned length |
The length to be read initially
|
| bool last |
If true no othe data shall be read after the initial block.
|
getLength
Return the actual read length after the TaskProgress call
getData
Copies the read data.
Parameters
-
| byte * buffer |
The buffer the data is copied to.
|
| unsigned length |
The length to be copied.
|


The M10 metrics analyze the concentration of DNS Resolver services. It defines a submetric per country, using the code "M10.XX.*" for the country code "XX". In addition to providing data for actual countries such as "DE" or "US", the metric also includes aggregate worldwide data using the pseudo country code "ZZZ", and 5 regional areas as defined in this page : Africa (XLA), Asia-Pacific (XAP), Europe (XEU), Latin America and Carribeans (XLA), and North America (XNA). For each country or region, the following data are provided:
The values of M10.XX.1, M10.XX.2 and M10.XX.3 sum to 1, except for possible rounding errors. The values of all entries in M10.XX.4 sum to the value of M10.XX.1, except for possible rounding errors.
The data is collected by APNIC using the same process as metric M5. The process involves buying Google ads to generate a large number of "impressions" every day. The count varies from day to day, as explained here. Each impression may cause several queries to arrive at the APNIC DNS servers, as well as one HTTP connection to the APNIC web server. The data collection retains the IP address from which the first DNS query was received, i.e., the DNS Resolver Address, and the IP address from which the HTTP request was received, i.e., the client address. Those two addresses are used as follow:
The collection method uses a very large number of samples every month. In theory, large numbers would limit statistical uncertainty and make for reliable measurements. But we are aware that the sampling process is imperfect, and that the attribution of samples to AS and countries could sometimes be erroneous.
In theory, the ads that trigger the queries should be distributed randomly accross the world. In practice, we see that the number of samples per inhabitant was 2.4 times larger for Indonesia than for the US in May 2022. It was 7.8 times smaller for China than for the US. For Russia, it was more than 300 times smaller. These differences are probably due to a combination of Google market penetration, and also to business practices:
The undersampling of Russia is easy to understand. Russia was on the US sanction list in May 2022. The Russian government also limited access to web sites outside Russia. Very few residents of Russia would access web pages that displayed Google ads. The same undersampling affects other countries on the US sanction list, such as Cuba, Iran or North Korea.
The undersampling of China derives from the same kind of business conditions. Google only does a limited amount of business in China, and has a much smaller share of the Chinese market than Chinese companies. Japan was also undersampled, almost in the same proportion as China, maybe because the Japanese market is dominated by Japanese companies.
We are not sure why a country like Indonesia is oversampled compared to the US. Maybe that the APNIC faced fewer competition for advertisement spots there than in richer countries, and was more likely to win the "ad auctions" conducted by the Google Ads platform. We see that Malaysia, Sri Lanka and Bangladesh were also oversampled, but that Pakistan or India were not.
The different sampling rate may or may not introduce bias of the traffic share of different open DNS resolver services. For the countries on the US sanction list, it is likely that the sampling only catches the small fraction of the population that somehow evades sanctions or firewalls, and it is not clear that this small fraction is representative of the country as a whole. The same issue may affect countries like China or Japan in which the market share of Google Ads is limited: the population that sees Google Ads may or may not be using DNS services in the same way as the rest of the population.
The oversampling of countries like Indonesia or Bangladesh probably does not affect the results for these countries. However, it does gives these countries an increased weight when computing global averages, like we do in our world wide summary. Researchers may want to experiment with different aggregation methods, based perhaps on population or Internet user counts instead of sample counts.
The system uses geolocation databases to derive country codes from IP addresses. These databases mostly provide the right answers, but not always. Empirically, we observe that results for small locales can be very biased. For example, we sometimes saw addresses and ASes allocated to countries in which the ASes do not actually operate. For some addresses, there is just no entry in these databases. We also sometime see addresses that cannot be mapped to an AS number through the BGP tables.
We implement filters to try limit the impact of such errors in the statistics:


EdWisor was founded in 2015 to empower over 100 million students and professionals across the nation. The efforts were inclined towards providing an end to end solution to the skill and employability problem as per industry demands. With a vision to transform 1 million lives by 2021, we have already positively impacted 5000+ students along with 200+ companies. Our Vision is to empower students & professionals with skills & opportunities in high growth careers of their choice. edWisor aims to bring a positive change in the careers of at least 1 million professionals each year starting from the year 2021, and that is what motivates us to come & work for students every day.


--- layout: page weight: 0 title: Email Error Messages navigation: show: true ---
Email is essentially computers talking to each other in simple codes to relay simple text messages. Being able to interpret the codes that these computers kick back when something goes wrong is a skill that doesn't always come naturally, so we've assembled a collection of common responses you're likely to see come back from recipient mail servers, as well as guidance on what to do with them.
Please note:This is only a small handful of the response codes that can be sent back. Every receiving mail server out there is unique, so the responses you see may differ from those below. Use the human-readable portion of the response code to get more info if you get stuck, or get in touch with our Support team!
{% anchor h2 %} 250 {% endanchor %}The best mail server response code you can get. When you see this, everything has gone according to plan! This response is what results in a 'Delivered' event within your Sendgrid stats, and indicates that the recipient server has accepted the message.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response: Nothing, all is well with the cosmos. If you want, you could always print it out and frame it. Do keep in mind that messages that contain things like "Queued mail for delivery" is still indicative of a successful handoff to the recipient server, but there may still be internal queueing on the far end.
{% anchor h2 %} Temporary Failures - “If at first you don’t succeed..." {% endanchor %}A 400-style message is usually returned when some sort of transient error is encountered during the message transaction. These types of responses are usually not a cause for alarm as most of these will iron themselves out given a little time.
{% anchor h2 %} 421 {% endanchor %}Messages are temporarily deferred because of recipient server policy reasons. Usually because of too many messages or connections in too short a timeframe.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response: We’ll continue to retry deferred messages for up to 72 hours for a response like this, but you may consider temporarily easing off the throttle when sending messages to a domain that is returning this code, just so you don’t further delay your messages currently being tried.
{% anchor h2 %} 450 {% endanchor %}The message failed because the user's mailbox was unavailable, perhaps because it was locked or was not routable at the time.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response:We’ll continue to retry deferred messages for up to 72 hours for a response like this. Generally this is based on a large influx of messages that you send, or if you've sent at a rate that the recipient server deems worthy of slowing down.
{% anchor h2 %} 451 {% endanchor %}The message simply failed, usually due to a far-end server error. This is unlikely anything you’ve done, remember we’ll keep retrying for 72 hours, so just keep an eye on it.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response: We’ll continue to retry deferred messages for up to 72 hours for a response like this. Just keep your eyes peeled to see if the response to our retry attempts change.
{% anchor h2 %} 452 {% endanchor %}The message has been deferred due to insufficient system storage. Not your fault, they'll probably accept the mail later on once there's more space.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response:We’ll continue to retry deferred messages for up to 72 hours for a response like this. Just keep your eyes peeled to see if the response to our retry attempts change.
{% anchor h2 %} Hard Failures - "Return to Sender..." {% endanchor %}A Hard, or Immediate, failure is anything that gets 500-style message as the result of trying to hand off a message. This typically indicates that some sort of permanent error occurred, this can range from systemic errors on the far-end server that just flat out prevents mail from coming in, all the way to policy-related blocks pertaining to content or other such factors. The examples below will give a taste of some of the myriad reasons a 500-style NDR(non-delivery response) can get returned for.
{% anchor h2 %} 550 {% endanchor %}The user's mailbox was unavailable. Usually because it could not be found, or because of incoming policy reasons.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response:It's probably a good idea to take addresses that throw this response off of your main list, as it's likely a bogus address or one that was mistyped.
{% anchor h2 %} 551 {% endanchor %}The intended mailbox does not exist on this recipient server. This response will sometimes include a forward address to try if the server knows where the intended mailbox is.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response: Don’t bother re-sending, the recipient server does not recognize the recipient address as being one of it’s own. Keep any eye on the human readable portion of the response, as it may include a forwarding address.
{% anchor h2 %} 552 {% endanchor %}The intended mailbox has exceeded its storage limits.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response: It’s at your discretion if you want to try re-sending, but there's a pretty good chance that it's a defunct address. We don't resend messages with this error code, so refer to the human readable portion for more guidance.
{% anchor h2 %} 553 {% endanchor %}The message was refused because the mailbox name is either malformed or does not exist.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response: Don’t retry sending to this address, it’s fairly likely that it’s a bogus or mistyped address.
{% anchor h2 %} 554 {% endanchor %}The message failed. This response is a ‘default’ of sorts, but can be attributed to anything from planetary alignment, tides of the moon or gypsy curses. Generally a very vague NDR, but refer to the human-readable portion of the message for further instruction.
{% anchor h3 %} Examples: {% endanchor %}What to do with this response:Use the human readable portion of the message for further guidance, if you’re not sure what to do, just consider the address “bad” unless the recipient contacts you.
{% anchor h2 %} Other {% endanchor %}Sendgrid will also display a code when the recipient server has responded with a literally blank reason code. Rather than leave you to ponder what a blank field might mean, the below message is displayed instead, letting you know that far end was not able to respond intelligently to our request.
What to do with this response: Your best bet is to contact the mail administrator for the intended recipient's mail domain to see if they have any more info on what may have happened.


| X4 (by Wisp) | VoiceAttack Profile Command Sheet |
| Spoken Command ▾ | Keyboard Shortcut | Description | Category |
|---|---|---|---|
autopilot; toggle autopilot; start autopilot; exit autopilot; close autopilot |
Autopilot |
Misc |
|
close inventory; exit inventory |
Menus |
||
close window; exit window; exit menu; close menu |
Menus |
||
[collect;grab;scoop] [cargo;objects]; container magnet; suck up cargo; vacuum [cargo;objects;] |
Container Magnet |
Misc |
|
[engage;] [Boost;boosters] |
Boost |
Steering |
|
external view; third person view; outside view |
Camera |
||
Flight assist [on;off] ; [toggle;] flight assist |
Flight Assist |
Steering |
|
[full;] Stop |
Steering |
||
guidance; start guidance; stop guidance; toggle guidance; enable guidance; disable guidance |
Guidance |
Misc |
|
hail target; open comms; open communications; hail; comms |
Comms |
Weapons |
|
hard save; save game |
Saving |
||
[Hide;show;toggle] Cockpit [display;] |
Expert |
||
launch countermeasures;deploy countermeasures; countermeasures |
Countermeasures |
Weapons |
|
load game; hard load |
Saving |
||
Match [target;] Speed |
Steering |
||
Mouse Steering [on;off]; toggle mouse steering |
Mouse Steering |
Steering |
|
my stuff; show property; show my stuff; property menu; open property menu; show owned |
Property |
Menus |
|
[my;] ship |
Ship |
Menus |
|
next ammo; cycle ammo; cycle ammunition; switch ammo; switch ammunition |
Ammunition |
Weapons |
|
Next [Surface;] Element |
Target Management |
||
open inventory; inventory |
Inventory |
Menus |
|
[open;show;local;close;exit] map |
Map |
Menus |
|
[Pause;Unpause] [the;] game |
Pause |
Misc |
|
Previous [Surface;] Element |
Target Management |
||
quick load; quickload |
Saving |
||
quick save; quicksave |
Saving |
||
radar; toggle radar; open radar; close radar; show radar; hide radar |
Radar |
Misc |
|
request [to Dock;docking permission]; dock; Undock; lift off |
Dock |
Misc |
|
scan mode; toggle scan mode; short range scan |
Scan Mode |
Modes |
|
[select;choose;] [previous;last] target |
Target Management |
||
[select;choose;pick;] next target |
Target Management |
||
[Select;switch to;choose;open;move to;] [primary;] Weapon Group 1 |
Weapons |
||
[Select;switch to;choose;open;move to;] [primary;] Weapon Group 2 |
Weapons |
||
[Select;switch to;choose;open;move to;] [primary;] Weapon Group 3 |
Weapons |
||
[Select;switch to;choose;open;move to;] [primary;] Weapon Group 4 |
Weapons |
||
[Select;switch to;choose;open;move to;] Secondary Weapon Group 1 |
Weapons |
||
[Select;switch to;choose;open;move to;] Secondary Weapon Group 2 |
Weapons |
||
[Select;switch to;choose;open;move to;] Secondary Weapon Group 3 |
Weapons |
||
[Select;switch to;choose;open;move to;] Secondary Weapon Group 4 |
Weapons |
||
seta mode; toggle seta; seta |
SETA Mode |
Modes |
|
show missions; missions; open missions |
Missions |
Menus |
|
[show;hide;display;toggle] F.P.S. |
Expert |
||
stand up; get up; leave chair; exit chair |
Misc |
||
standard view; normal view; cockpit view |
Camera |
||
target closest enemy; target enemy; lock enemy |
Target Management |
||
target [object;forward]; lock object; select target |
Target Management |
||
target vie; external target view; view target; target camera |
Camera |
||
toggle sound; start sound; stop sound; mute; mute sound; unmute |
Misc |
||
[toggle;] long range scan [mode;] |
Long Range Scan |
Modes |
|
[toggle;exit;] [Travel;cruise] Mode |
Travel Mode |
Modes |
|
[toggle;switch;hide;show] hud |
Expert |
||
zoom in; zoom |
Camera |
||
zoom out |
Camera |


SWEET LORRAINE A film review by Miriam Nadel Copyright 1987 Miriam Nadel
There used to be an ad for Levy's rye bread which said, "You don't have to be Jewish" and the sentiment is appropriate for this movie as well. The "Sweet Lorraine" of the title is a small Catskills hotel, suffering from competition with ritzier places. The plot is a simple one--Molly Garber, the granddaughter of the Lorraine's owner, arrives to work for the summer and falls in love with the hotel, while her grandmother is debating whether or not to sell and close the place.
What really makes this movies work is the small touches. The actors are all wonderful, making you believe these characters are really part of your own family. Maureen Stapleton plays Lillian Garber, the hotel owner, and everyone's grandmother (or at least favorite aunt.) She is surrounded by such quirky characters that there are plenty of laughs to round out the warmth. It would probably take more than one viewing to catch all of the little jokes-- from the social director's "aerobics" classes to the inter-hotel softball games (the Lorraine's team is called the "Lox Sox") from the mahjongg games to the waiter who dyes his hair red, white, and blue for the 4th of July party.
Intermeshed with the fate of the hotel and the slice-of-life humor, there are three love stories. Molly falls in love with the hotel handyman (who isn't Jewish but Lillian lets her get away with it.) Lillian herself has a lover, Sam, who runs the kitchen. One of the nicest touches is the portrayal of Lillian and Sam's relationship, which treats the love between two elderly people more respectfully than any movie since ON GOLDEN POND. Finally, there is the love affair between all of the staff and guests and the hotel itself.
This movie gets 4 stars from me. See it with your mother.
Miriam Nadel INTERNET<EMAIL_ADDRESS>UUCP: {hplabs!hp-sdd, sdcsvax, ihnp4, nosc}!crash!gryphon!mhnadel UUCP: {philabs, trwrb}!cadovax!gryphon!mhnadel
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


?6
7
8
9
10
The
New
York
copyright
reserved
Botanical
Garden
m
it
RANCHO
SANTA
ANA
BOTANIC
GARDEN
Plants
of
Jamaica
Rhizophoraceae
Rhizophora
mangle
L.
ST.
THOMAS
PARISH:
Rocky
Point
Bay;
sandy
beach
and
shallow,
salt
water
of
bay,
ca.
1-2
m
deep.
Small
tree
with
prop
roots
at
edge
of
mangrove
swamp*
flowers
yellowish.
Robert
F.
Thorne
48296
15
June
1976
G.
R.
Proctor
BOTANICAL
GARD6**,
lbSM131
n
1624131
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


@* * This template is called from the `index` template. This template * handles the rendering of the page header and body tags. It takes * three arguments, a `String` for the title of the page and an `Html` * object to insert into the body of the page and an `AssetFinder` * to define to reverse route static assets. *@ @(title: String, assetsFinder: AssetsFinder)(headers: Html = Html(""))(content: Html)(scripts: Html = Html(""))(implicit flash: Flash)
@* Here's where we render the page title `String`. *@


{% extends "base.html" %} {% block title %}
Medieval catalogues > UNIVERSITY AND COLLEGE LIBRARIES OF CAMBRIDGE > Burden Hostel > List of canon and civil law books, 1529
{% endif %}32 identified entries found.
All data was derived from the List of Identifications by Professor Richard Sharpe.
{% if not printing %}
A key to codes used in the List is available (opens in new tab).{% endif %}


--- layout: post status: publish published: true title: Hohokam Stadium tour with PA announcer Tim Sheridan author: display_name: Kurt login: Kurt email<EMAIL_ADDRESS>url: '' author_login: Kurt author_email<EMAIL_ADDRESS>wordpress_id: 4467 wordpress_url: http://ivyenvy.com/?p=4467 date: '2011-03-23 22:14:41 +0000' date_gmt: '2011-03-24 03:14:41 +0000' categories: - Broadcasters - General Baseball - General Sports - Spring Training tags: [] comments: [] ---
Tim Sheridan, the public address announcer at Hohokam Stadium, took us on a behind the scenes tour of Hohokam Stadium. Hohokam Stadium has been the Spring home of the Cubs since it was completed in 1997. The Cubs and the city of Mesa are working towards building a new facility within the next five years.
[gallery link="file" orderby="title"]


I was taking Effexor, just started it the day before I went to the peyote meeting. I was not sure what to expect but I put my faith in the peyote medicine. Asking to allow the effexor medicine to aid in balancing my brain chemistry so that I may feel well again. I started out with just a couple of buttons, then an hour later I ate 4 more. At this point I was feeling the medicine just like usual. An hour passed and the medicine was working on me a bit stronger that usual, I was dreaming much deeper than usual. However I was able to stay in complete control. I did notice my eyes twitchin which is unusual.
The dreams and visions were unusual and very deep, I was seeing things that concerned the patient having the ceremony and then seeing my own issues that I need to clean up in my life. I felt like I wanted to jump up and fling my arms up in the air but this did not happen it was just a hint of maybe what I was feeling in the ceremony. the medicine worked on me for a couple of hours and finally calmed down and I was feeling normal near the morning. I forgot that I had taken the effexor and continued through the ceremony like usual the rest of the time. I left that day and went home, feeling like I usually do after meetings good for having sat up for someone elses health and well being.
I feel good that I could have helped in that sort of way. My songs during the night came out in a very good way, which I'm sure made people feel happy. That's all the matters is that everyone felt good. I didn't feel hungry at all the next day. I did pray with more medicine and tea the next day. Noticing there is no bad results of combining the effexor and peyote.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


The Fruit Shirts are a Denver-based folk/rock duo consisting of Kate Campione and Kyle Iverson. They both sing, play guitar, and play the ukulele. Their first album, Capricorn Highway, was written and recorded in their home in Dingo, Australia. They worked at a gas station in the middle of nowhere and wrote music in their free time. Kate and Kyle have a unique way of writing music in that they generally drink a box of wine and write/record their songs in a day or two. Their inspiration comes from Gangs of Youth, Tigers Jaw, Pinegrove, and Brandi Carlile. They are currently working on another album to be dropped this Spring. Check out their favorite Tiny Desk Concert by Pinegrove where they frequently draw inspiration:
The Fruit Shirts are currently writing and recording their next album in Denver, Colorado. Stay tuned for Tour updates!
Capricorn Highway is their first recorded album and was released in October 2016. It is recognized internationally and sold on Amazon and available for download on Spotify.


[El-Kabong Home]
Main Page Compound List File List Compound Members File Members
ekhtml File Members
Here is a list of all documented file members with links to the documentation:
Generated on Sun Nov 10 15:54:34 2002 for ekhtml by
1.2.14 written by Dimitri van Heesch,
© 1997-2002


| Class | Description |
|---|---|
| Book |
The Book class.
|
| GoodreadsReviewInfo |
Model class for holding the goodreads review info.
|
| Location |
Stores Locations as a lat and lon pair.
|
| Notification |
Represents the data contained in a push notification sent to a user.
|
| Photo |
Used to represent a Photo that is stored in Firebase along with the valid operations on a Photo.
|
| Request |
The Request class for requests made of owner books by borrowers.
|
| SingletonRequestQueue |
Singleton for app wide RequestQueue for API calls
|
| Transaction |
Class used to represent transaction between an owner and borrower regarding a specific book
at a specified location.
|
| User |
The User model
Class for the User objects
|
| Enum | Description |
|---|---|
| Book.Status |
The enum Status to show the global status of the book.
|
| Notification.NotificationType |
The enum Notification type.
|
| Request.Status |
The enum Status.
|
| Annotation Type | Description |
|---|---|
| Transaction.Type |
Creates new annotation type that checks the value of an integer to see if it is equal to
either CHECKOUT or RETURN.
|


GRRAS has 8 established training centers and hands on air conditioned practice labs
across India to welcome you
We are globally connected with best Tech Companies around the world. Our team is continuously working on collaborating with good tech companies.
©2018 All Reserved.Grras.Com


This package provides functions for metabolite set enrichment analysis (MSEA) and principal component analysis (PCA), and converting metabolite set list from your own csv files or KEGG's tar.gz files to XML documents. This package is suitable for computation of MSEA for factor loading in PCA.
| Version: | 1.0 |
| Depends: | XML |
| Published: | 2012-04-15 |
| Author: | Hiroyuki Yamamoto |
| Maintainer: | Hiroyuki Yamamoto <h.yama2396 at gmail.com> |
| License: | BSD |
| NeedsCompilation: | no |
| CRAN checks: | mseapca results |
| Reference manual: | mseapca.pdf |
| Package source: | mseapca_1.0.tar.gz |
| Windows binaries: | r-devel: mseapca_1.0.zip, r-release: mseapca_1.0.zip, r-oldrel: mseapca_1.0.zip |
| OS X binaries: | r-release: mseapca_1.0.tgz, r-oldrel: mseapca_1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=mseapca to link to this page.


You need to enable JavaScript to run this app.
DICOM Microscopy Viewer Example
This is a simple example rendering a Microscopy image
Go back to the Examples page


After you have configured the cache, embed NCache API calls in your application to use it. The first thing you need to do is to initialize the cache. Include the following namespace in your project:
using Alachisoft.NCache.Web.Caching;
The code for initializing the cache is as follows:
// Initialize the cache.
Cache _cache = NCache.InitializeCache("myCache");
If you're developing ASP.NET application, the best place to put InitializeCache call is in your Application_Start() functions in Global.asax.cs file. Additionally, instead of hard-coding, we recommend keeping the cache-name in Web.Config and then accessing it from your code. This way, if you will be required to change your cache name at any stage, you won't have to recompile the code.
// Pick up the cache-name from Web.Config
public
override void
Init()
{
string
cacheName = ConfigurationSettings.AppSettings["CacheName"];
Cache _cache
= NCache.InitializeCache(cacheName);
}
And, in your Web.Config, you can specify cache name as follows:
<appSettings>
<add key = "CacheName" value = "myCache"/>
</appSettings>
Adding Items | Finding items | Removing Items | Dispose Cache | Start Cache | Stop Cache


Player: {{player._id}}
Wallet: {{player.money}}
Pot: {{(player.hands[0].betAmount*2) + (player.hands[1].betAmount*2)}}
Player type: {{player.type}}
Player name: {{player._id}}
Hand: {{player.hands[0].cards}}
Second hand: {{player.hands[1].cards}}
Money: {{player.money}}
{{player.hand[0].state}}


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
03.08.18
On July 1, 2014, Sara Legarsky sat in her apartment in Stillwater, Oklahoma, and filled out a job application.
It took only two days for Legarsky to get a response back about the opening for a director of media relations position at Ohio. A phone interview led to a flight that brought Legarsky to Athens for the first time. It wouldn’t be her last.
Blake Nissen | PHOTO EDITOR
Ohio Sports Information Director, Sara Legarsky, poses for a portrait in the Convo on March 5.
Legarsky was formally offered the position as a director of media relations at Ohio on July 7, 2014, and in the span of 23 days, she filled her life into a U-Haul and started out on a new journey.
“It was overwhelming,” Legarsky said. “I spent 14 hours in the car and drove from Stillwater to Indianapolis and then to Athens.”
She lived in a Hampton Inn for a week, where she had chips and salsa for her first meal.
Legarsky juggled the stress of both her personal and professional lives with little time to actually do so. No longer in the graduate assistant role, and with departures elsewhere on staff early in her time at Ohio, Legarsky was forced into a professional maturation.
Her first task? To be the main media contact for the Bobcats football team.
“It was a terrible first two months,” Legarsky said. “You’re just like, ‘I’m going to be running a Division I football program.’ ”
As she paved her way into the business, Legarsky never thought of the barriers she was breaking along the way. A retroactive thinker, Legarsky lives life in the moment, and in those quiet hours to herself, she reflects upon the day she had just lived out.
A woman in a male-dominated field, Legarsky has gone through and experienced subtle forms of discrimination or surprised-to-see-you-here moments.
“The struggle I had would be when TV crews would come in and be like, ‘Hey, where’s the (sports information director)?’ ” Legarsky said. “I’d be like, ‘It’s me,’ and they would laugh at me.”
Fellow director of media relations Mike Ashcraft has worked alongside Legarsky since her start at Ohio. He, too, has noticed the struggle that women face.
“I think men sometimes question whether this person is legit or not,” Ashcraft said. “ ‘Can they really do this job?’ I just think that’s unfair to make that assumption just because you’re a woman, you know?”
As Ohio’s lone female SID for the past four years, Legarsky has noticed that over time, her gender became less of the topic, and the athletes — or, as she calls them, “my kids” — became the focus. Legarsky thinks that’s the way it should be.
***
A native of Indiana, Pennsylvania, Legarsky’s life has always centered on sports. She grew up a Pittsburgh sports fan and always found time to watch the local teams.
Legarsky saw the former confines of the Pirates and Penguins, Three Rivers Stadium and Mellon Arena, many times as a Pittsburgh fan. At times in which both franchises were at low points — the Pirates hadn’t made the playoffs since 1992 and the financially plagued Penguins couldn’t sell tickets to their own games — Legarsky still holds those times near and dear.
“Growing up outside of Pittsburgh, sports were always a big part,” Legarsky said. “On Sundays, you were watching football, you were watching the Pirates, you were watching the Penguins.”
With a sports fandom like no other, Legarsky couldn’t abandon one of her life pillars. So, as an undergraduate student at St. Bonaventure, she started to lie down the foundation of her career.
In pursuit of a bachelor’s degree in journalism and mass communications through a public relations concentration, Legarsky got her start working in the athletic department at St. Bonaventure.
“I wrote my first few recaps about the cross country team and then was handed swimming and diving,” Legarsky said. “That was pretty cool, and I had it for the next three years. I got to run the (Atlantic 10) Championships in Buffalo.”
When the time came to say goodbye to Bonaventure, Legarsky was taken aback by a simple realization: She didn’t have a job.
Scouring the nation for an opportunity, it came 1,206 miles away in Stillwater as a graduate assistant at Oklahoma State.
When she got hired at Oklahoma State, she was told that she was the first woman to be hired from outside of the athletic department and the media relations office in 20 years.
Amid the struggle, Legarsky thrived in her first year at Oklahoma State as the media contact for the Cowboys men’s cross country team, which won a national title that year.
But when her time was nearing an end and with no open positions, she started to look for a new home. She found it in Athens.
***
With time and experience in the workforce building every day, Legarsky is a symbol of the future for women in the sports world.
“One thing I will say is she's a great advocate for the sports that she works with,” Ashcraft said. “She works with soccer or women's basketball, softball and women's golf. She's really passionate about what she does.”
With multiple female graduate assistants and Meagan Hogan, the director of marketing for Ohio, Legarsky is witness to the change of a male-dominated field to a more even playing ground.
“I want to see this field grow with women because there are plenty of women out there who know plenty about sports,” Legarsky said. “... I love my job; waking up on Monday morning is easy.”
Correction: A previous version of the headline on the homepage misspelled Sara Legarsky’s name. The headline has been updated to reflect the most accurate information.
Additionally, the article misstated information about what Legarsky was told when she got hired at Oklahoma State. The article has been updated to reflect the most accurate information.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


| vcovCL {sandwich} | R Documentation |
Estimation of one-way and multi-way clustered covariance matrices using an object-oriented approach.
vcovCL(x, cluster = NULL, type = NULL, sandwich = TRUE, fix = FALSE, ...) meatCL(x, cluster = NULL, type = NULL, cadjust = TRUE, multi0 = FALSE, ...)
x |
a fitted model object. |
cluster |
a variable indicating the clustering of observations,
a |
type |
a character string specifying the estimation type (HC0–HC3).
The default is to use |
sandwich |
logical. Should the sandwich estimator be computed?
If set to |
fix |
logical. Should the covariance matrix be fixed to be positive semi-definite in case it is not? |
cadjust |
logical. Should a cluster adjustment be applied? |
multi0 |
logical. Should the HC0 estimate be used for the final adjustment in multi-way clustered covariances? |
... |
arguments passed to |
Clustered sandwich estimators are used to adjust inference when errors
are correlated within (but not between) clusters. vcovCL
allows
for clustering in arbitrary many cluster dimensions (e.g., firm, time, industry), given all
dimensions have enough clusters (for more details, see Cameron et al. 2011).
If each observation is its own cluster, the clustered sandwich
collapses to the basic sandwich covariance.
The function meatCL
is the work horse for estimating
the meat of clustered sandwich estimators. vcovCL
is a wrapper calling
sandwich
and bread
(Zeileis 2006).
vcovCL
is applicable beyond lm
or glm
class objects.
bread
and meat
matrices are multiplied to
construct clustered sandwich estimators.
The meat of a clustered sandwich estimator is the cross product of
the clusterwise summed estimating functions. Instead of summing over
all individuals, first sum over cluster.
A two-way clustered sandwich estimator M (e.g., for cluster dimensions "firm" and "industry" or "id" and "time") is a linear combination of one-way clustered sandwich estimators for both dimensions (M_{id}, M_{time}) minus the clustered sandwich estimator, with clusters formed out of the intersection of both dimensions (M_{id \cap time}):
M = M_{id} + M_{time} - M_{id \cap time}
Additionally, each of the three terms can be weighted by the corresponding
cluster bias adjustment factor (see below and Equation 20 in Zeileis et al. 2020).
Instead of subtracting M_{id \cap time} as the last
subtracted matrix, Ma (2014) suggests to subtract the basic HC0
covariance matrix when only a single observation is in each
intersection of id and time.
Set multi0 = TRUE
to subtract the basic HC0 covariance matrix as
the last subtracted matrix in multi-way clustering. For details,
see also Petersen (2009) and Thompson (2011).
With the type
argument, HC0 to HC3 types of
bias adjustment can be employed, following the terminology used by
MacKinnon and White (1985) for heteroscedasticity corrections. HC0 applies no small sample bias adjustment.
HC1 applies a degrees of freedom-based correction, (n-1)/(n-k) where n is the
number of observations and k is the number of explanatory or predictor variables in the model.
HC1 is the most commonly used approach, and is the default, though it is less effective
than HC2 and HC3 when the number of clusters is relatively small (Cameron et al. 2008).
HC2 and HC3 types of bias adjustment are geared towards the linear
model, but they are also applicable for GLMs (see Bell and McCaffrey
2002, and Kauermann and Carroll 2001, for details).
A precondition for HC2 and HC3 types of bias adjustment is the availability
of a hat matrix (or a weighted version therof for GLMs) and hence
these two types are currently only implemented for lm
and glm
objects.
The cadjust
argument allows to
switch the cluster bias adjustment factor G/(G-1) on and
off (where G is the number of clusters in a cluster dimension g)
See Cameron et al. (2008) and Cameron et al. (2011) for more details about
small-sample modifications.
The cluster
specification can be made in a number of ways: The cluster
can be a single variable or a list
/data.frame
of multiple
clustering variables. If expand.model.frame
works
for the model object x
, the cluster
can also be a formula
.
By default (cluster = NULL
), attr(x, "cluster")
is checked and
used if available. If not, every observation is assumed to be its own cluster.
If the number of observations in the model x
is smaller than in the
original data
due to NA
processing, then the same NA
processing
can be applied to cluster
if necessary (and x$na.action
being
available).
Cameron et al. (2011) observe that sometimes the covariance matrix is
not positive-semidefinite and recommend to employ the eigendecomposition of the estimated
covariance matrix, setting any negative eigenvalue(s) to zero. This fix
is applied, if necessary, when fix = TRUE
is specified.
A matrix containing the covariance matrix estimate.
Bell RM, McCaffrey DF (2002). “Bias Reduction in Standard Errors for Linear Regression with Multi-Stage Samples”, Survey Methodology, 28(2), 169–181.
Cameron AC, Gelbach JB, Miller DL (2008). “Bootstrap-Based Improvements for Inference with Clustered Errors”, The Review of Economics and Statistics, 90(3), 414–427. doi: 10.3386/t0344
Cameron AC, Gelbach JB, Miller DL (2011). “Robust Inference with Multiway Clustering”, Journal of Business & Ecomomic Statistics, 29(2), 238–249. doi: 10.1198/jbes.2010.07136
Kauermann G, Carroll RJ (2001). “A Note on the Efficiency of Sandwich Covariance Matrix Estimation”, Journal of the American Statistical Association, 96(456), 1387–1396. doi: 10.1198/016214501753382309
Ma MS (2014). “Are We Really Doing What We Think We Are Doing? A Note on Finite-Sample Estimates of Two-Way Cluster-Robust Standard Errors”, Mimeo, Availlable at SSRN: URL https://www.ssrn.com/abstract=2420421.
MacKinnon, JG, White, H (1985). “Some Heteroskedasticity-Consistent Covariance Matrix Estimators with Improved Finite Sample Properties” Journal of Econometrics, 29(3), 305–325. doi: 10.1016/0304-4076(85)90158-7
Petersen MA (2009). “Estimating Standard Errors in Finance Panel Data Sets: Comparing Approaches”, The Review of Financial Studies, 22(1), 435–480. doi: 10.1093/rfs/hhn053
Thompson SB (2011). “Simple Formulas for Standard Errors That Cluster by Both Firm and Time”, Journal of Financial Economics, 99(1), 1–10. doi: 10.1016/j.jfineco.2010.08.016
Zeileis A (2004). “Econometric Computing with HC and HAC Covariance Matrix Estimator”, Journal of Statistical Software, 11(10), 1–17. doi: 10.18637/jss.v011.i10
Zeileis A (2006). “Object-Oriented Computation of Sandwich Estimators”, Journal of Statistical Software, 16(9), 1–16. doi: 10.18637/jss.v016.i09
Zeileis A, Köll S, Graham N (2020). “Various Versatile Variances: An Object-Oriented Implementation of Clustered Covariances in R.” Journal of Statistical Software, 95(1), 1–36. doi: 10.18637/jss.v095.i01
## Petersen's data data("PetersenCL", package = "sandwich") m <- lm(y ~ x, data = PetersenCL) ## clustered covariances ## one-way vcovCL(m, cluster = ~ firm) vcovCL(m, cluster = PetersenCL$firm) ## same ## one-way with HC2 vcovCL(m, cluster = ~ firm, type = "HC2") ## two-way vcovCL(m, cluster = ~ firm + year) vcovCL(m, cluster = PetersenCL[, c("firm", "year")]) ## same ## comparison with cross-section sandwiches ## HC0 all.equal(sandwich(m), vcovCL(m, type = "HC0", cadjust = FALSE)) ## HC2 all.equal(vcovHC(m, type = "HC2"), vcovCL(m, type = "HC2")) ## HC3 all.equal(vcovHC(m, type = "HC3"), vcovCL(m, type = "HC3")) ## Innovation data data("InstInnovation", package = "sandwich") ## replication of one-way clustered standard errors for model 3, Table I ## and model 1, Table II in Berger et al. (2017), see ?InstInnovation ## count regression formula f1 <- cites ~ institutions + log(capital/employment) + log(sales) + industry + year ## model 3, Table I: Poisson model ## one-way clustered standard errors tab_I_3_pois <- glm(f1, data = InstInnovation, family = poisson) vcov_pois <- vcovCL(tab_I_3_pois, InstInnovation$company) sqrt(diag(vcov_pois))[2:4] ## coefficient tables if(require("lmtest")) { coeftest(tab_I_3_pois, vcov = vcov_pois)[2:4, ] } ## Not run: ## model 1, Table II: negative binomial hurdle model ## (requires "pscl" or alternatively "countreg" from R-Forge) library("pscl") library("lmtest") tab_II_3_hurdle <- hurdle(f1, data = InstInnovation, dist = "negbin") # dist = "negbin", zero.dist = "negbin", separate = FALSE) vcov_hurdle <- vcovCL(tab_II_3_hurdle, InstInnovation$company) sqrt(diag(vcov_hurdle))[c(2:4, 149:151)] coeftest(tab_II_3_hurdle, vcov = vcov_hurdle)[c(2:4, 149:151), ] ## End(Not run)


de.uniheidelberg.cl.swp.featureExtraction
Classes
AbstractFeatureExtractor
FeatureDistribution
FeatureExtractionProcess
FeatureMatchChecker
Enums
FeatureExtractors


System sound configuration:
Make sure that your audio system is correctly configured (sound card driver/DirectSound for Windows, ALSA for Linux, Audio Mixer for Oracle Solaris operating system). In addition, ensure that your speakers are connected and that your sound card volume and mute state are adjusted to the appropriate value. To test your sound configuration, run any native sound application and play some sound through it.
On Oracle Solaris and Linux operating systems, you might be unable to play sounds because an application (or sound daemon, such as esd
or artsd
) opens the audio device exclusively, thereby denying Java Sound access to the device.
Audio file formats:
Java Sound supports a set of audio file formats, for example AU, AIF, and WAV. Most of the file formats are only containers and can contain audio data in various compressed audio formats. Java Sound file readers support some formats (uncompressed PCM, a-law, mu-law), but do not support ADPCM, MP3, and others.
Java Sound also supports plug-ins for file readers and writers through the service provider interface (SPI). You can use Sun, third-party, or your own plug-ins to read various audio files. In any case you must handle the presence of the plug-in, for example, by distributing the required plug-ins with your application or by requiring plug-ins to be installed in the client Java environment.
Audio formats:
Java Sound supports various audio formats, but their availability depends on the operating system. To use some audio format for recording or playing, the format must be supported by your system (sound card drivers). Use supported formats as much as possible: PCM; 8 or 16 bits; 8000, 11025, 22050, 44100 Hz. The formats are supported by most if not all present sound cards. Most sound cards support only PCM formats, and even if the driver supports mu-law, it requires some modification to the software. If you need to play or record mu-law data, the preferred way is to convert it to PCM format through a format converter.
See AudioSystem.getAudioInputStream
documentation for details about format conversion.
Overrun and underrun conditions:
Recorded data is kept in a DataLine
buffer. If you did not read from the line for a long time, an overrun condition will occur, and older data will be replaced with new. This will produce artifacts in the recorded audio data.
A similar situation occurs with playing. If all data from the buffer has been played and no new data has been written to the line, an underrun condition will occur and silence will be played until you write a new portion of audio data to the line.
The preferred way to record is to read data in a separate thread to prevent the possible influence of other tasks (for example, UI handling). If you use SourceDataLine
for playing, a separate thread for writing data into the line is also the preferred method to use. If you use Clip
for playing, the Clip
implementation creates such a thread itself.


{% extends './base.html' %} {% load static %} {% load artcase_extras %} {% block main %} {{ view.title }} {% csrf_token %} Are you sure you want to delete "{{ object }}"? Cancel {% endblock main %} {% block aside %} {% endblock aside %}
Are you sure you want to delete "{{ object }}"?


Introduction
In this tutorial, you'll learn how to create paths and attach objects
to them in T2D. A path is a series of points called 'nodes' that are
connected together by various means. The Scene Editor provides a tool
with which paths can be created and edited, and objects can be attached.
The path object in T2D (t2dPath) is a scene object itself, so it can do
things like have velocities applied, react to physics, and even attach
to another path. For this tutorial, we will be using the Torque
2D project called TutorialBase.
Run Torque 2D. If the project is not already loaded, select Open
Project from the File menu, then select TutorialBase/project.t2proj from the list and press OK. Also, if you had previously created a level
with this project it will be loaded. In this case, select New Scene from the File menu.
Creating a Path
Select the create tab in the side panel, scroll down to the Other rollout, and click and drag the GarageGames logo labeled Path into your scene.
Visibly, it won't seem like much happened, but what you just did was
activate the path tool. The path tool allows you to create, move, and
delete path nodes. To create a node, simply click somewhere in the
scene. To move any of these nodes, you can click on them and drag the
mouse.
To delete a node, right click on it. You will notice that the path nodes
follow the snap settings of the editor just like sizing and moving
object. To turn off grid snapping, click on Edit->Preferences... in the menu. In the Scene Editor tab, uncheck Snap to X Axis and Snap to Y Axis.
Create a path with four nodes. When you have finished, press Enter on
the keyboard or click on the arrow (labeled Selection Tool) in the
toolbar. It's very important to note that creating a path with 0 nodes
could result in bugs or a crash. Here is the path I created:
Attaching an Object
Now, create an object by dragging an image from the Static Sprite
rollout in the object library onto the scene. I used the GarageGames
logo. With your mouse hovered over the newly created object, 5 widgets
will appear above it. Select the one labeled Mount this object to
another object.
The object will now be attached to your mouse, following it wherever you
drag it. If the mouse gets near a path node, the object will snap to
it. When this happens, you can click the left mouse button, and the
object will attach itself to the path with the default settings.
Now, select Save As... from the File menu, enter a filename for your
level, and press save. Then, select Run Game from the Project menu. You
should see a black screen with the GarageGames logo moving automatically
along the path you created.
Of course, it's moving kind of slow, and possibly not in the direction
you want it to. Luckily, there are several parameters you can configure
specifically for pathed objects.
Editing the Pathed Object
Make sure the GarageGames logo object is selected, then click on the
Edit tab in the side panel. Scroll down to the section titled Pathing
and click on it to expand the rollout.
Here is a brief description of the purpose of each of the fields:
- Start Node - The start node is the node in the path that
the object will start at. Click the left and right buttons and the
pathed object will move to the corresponding node on the path.
- End Node - The end node defines the end of the path for
this object. This is the node at which the object will stop after it has
completed the specified number of loops, or at which it will perform
its Follow Mode action in Reverse or Restart mode. This option has no
effect if Wrap is selected as the Follow Mode and -1 is selected for
Loops.
- Speed - This is the speed at which the object will follow
the path in world units per second.
- Move Forward - Unchecking this box will reverse the
direction that the object travels around the path.
- Orient To Path - Selecting this option will cause the
object to rotate itself depending on the direction it is traveling.
- Rotation Offset - The rotation offset only affects
objects that have Orient to Path selected. With a rotation offset of 0,
the top of the objects will be facing toward the direction they are
moving. Changing this allows you to specify the exact rotation at which
the object should orient itself.
- Loops - This specifies the number of times the object
will travel around the path. The default value of -1 specifies an
infinite number of loops. When the number of loops has been reached, the
object will stop at the end node.
- Follow Mode - The follow mode tells the path what to do
with the object when it reaches the end node. It comes in three flavors.
In Wrap mode, the object will continue in the same direction around the
path. In Reverse mode, the object will change its direction and the
start node will become the end node. In Restart mode, the object will
warp back to the start node upon reaching the end node.
All of these options are applied specifically to the pathed object, not
the path itself. So, if you had several objects attached to the same
path, they could all configure themselves differently.
Editing the Path
Paths can be edited after creation. To do this, select the path and
click on the widget labeled Edit this path.
This will reactivate the path tool, allowing you to create, edit, or
delete nodes. Paths also allow you to specify the method they use to
interpolate between nodes. There are four options available that can be
selected in the Path rollout of the Edit tab in the side panel.
Here is the description of each of these types:
- Linear - This is the default and simply has an object
move in a straight line from node to node.
- Bezier - The bezier method uses cubic bezier splines to
create a curved interpolation between each node. Each node is guaranteed
to be a part of the path. Bezier paths have two additional parameters,
Rotation and Weight.
These parameters can be edited in the path tool when bezier is selected
as the Path Type by clicking and dragging the handles around each node.
- Catmull - The catmull type uses Catmull-Rom splines to
interpolate between nodes. This method requires no extra tweaking and
automatically generates a smoothly curved path that goes through each
node.
- Custom - The custom method does not actually move any of
the objects automatically. Instead, it executes a callback that can be
defined in script to move the object. This would be useful in cases
where you have a path for an enemy to follow, but you don't want it to
follow it directly. This way, the enemy could still obey things like
collision and gravity, but still have an easy to define and follow path.
The callback looks like this:
function t2dPath::onUpdatePath(%this,%object,%from,%to)
{
//%this is the path object.
//%object is the object following the path.
//%from is the position of the most recently passed node.
//%to is the position of the node being moved toward.
}
Conclusion
This tutorial has covered all the features of the T2D path object.
The best way to figure out the effect these features have on pathed
objects is to experiment. Paths can be useful for certain game types and
menu screens, but their coolest effect comes from combining them with
particle effects to make screen saver looking levels. |


ToDone.
Toggle navigation
Tasks
Completed
Productivity
Add Task
In Progress
Not Started
×
Add a task!
Task Name
Notes
Expected Time Required
Tags
×
Task Started
Get it done!
Task name:
Task description:
Tags
School
Fun
Homework
Learning
Hey
Pause Task
Finish Task


import datetime as dt
def wallis(n):
pi = 2
for i in range(1,n):
pi *= 4 * i ** 2 / (4 * i ** 2 - 1)
return pi
pi = wallis(100000)
print("Let's compute π:")
print(f"[print] π is approximately {pi:.3f}")
pyscript.write('today', dt.date.today().strftime('%A %B %d, %Y'))
pyscript.write('pi', f'[pyscript.write] π is approximately {pi:.3f}')


Nowadays, an enormous amount of data is generated every day. Unfortunately, this data is mostly available on different sources and stored in different file formats.
BaselStat is an open data search engine that allows intuitive search for multivariant data available from the Kanton Basel Stadt.
It includes a using a public API that allows other developers to create their own applications based on the data. In addition to the Web Application, the project also includes a visualisation of the search results by using the Microsoft HoloLens.
The BaselStats project was developed by a team put together as part of the first ever BaselHack.
-Denise Bauman
-Fabrizio Parrillo
-Quentin Garnier
-Nicolas Mauchle
-Denis Augsburger
-Galia Shai


Basic Usage
Feature Extractor Class
FEXRD provides feature extraction classes to convert the elements in the FFRI Dataset into numpy.ndarray
vectors (hereinafter referred to simply as vectors). These classes are prepared for the values corresponding to the following keys in the FFRI Dataset.
- lief
- dos_header
- rich_header
- header
- optional_header
- data_directories
- sections
- relocations
- tls
- export
- debug (work in progress)
- imports
- resources_tree (work in progress)
- resources_manager
- signatures (signature for FFRI Dataset 2020)
- load_configuration
- peid
- trid
- strings
- die
- Manalyze
The feature extraction classes corresponding to each of the above keys are as follows.
- LiefFeatureExtractor: lief
- DosHeaderFeatureExtractor: dos_header
- RichHeaderFeatureExtractor: rich_header
- HeaderFeatureExtractor: header
- OptionalHeaderFeatureExtractor: optional_header
- DataDirectoriesFeatureExtractor: data_directories
- SectionsFeatureExtractor: sections
- RelocationsFeatureExtractor: relocations
- TlsFeatureExtractor: tls
- ExportFeatureExtractor: export
- DebugFeatureExtractor: debug
- ImportsFeatureExtractor: imports
- ResourcesTreeFeatureExtractor: resources_tree
- ResourcesManagerFeatureExtractor: resources_manager
- SignatureFeatureExtractor: signatures (signature for FFRI Dataset 2020)
- LoadConfigurationFeatureExtractor: load_configuration
- PeidFeatureExtractor: peid
- TridFeatureExtractor: trid
- StringsFeatureExtractor: strings
- DieFeatureExtractor: die
- Manalyze: manalyze_plugin_packer
In addition to the above feature extraction classes, we also provide AllFeaturesExtractor. This can be used to create a vector that combines all the above feature extraction classes' outputs.
Usage Example
Let's see how to use it in practice.
In FEXRD, depending on the feature you want to use, you can instantiate the corresponding feature extraction class and call the get_features
method to retrieve the output vector. An example of creating a vector of the "strings" element is as follows.
import json
from fexrd import StringsFeatureExtractor
sfe = StringsFeatureExtractor() # instantiae feature extractor class for the "string" element
fin = open("ffridataset_sample.jsonl", "r")
for l in fin.readlines():
obj = json.loads(l)
column_names, vector = sfe.get_features(obj["strings"]) # convert to the vector
In the above example, StringsFeatureExtractor
is instantiated, and the "string" element is passed as an argument to the get_features
method to get the vector.
The return value of the get_features
method is a tuple, where the 0th element is the column name of the vector and the 1st element is the vector.
The same is true for converting the element corresponding to the key other than "strings" into a vector.
Command Line Interface
FEXRD also provides a command-line interface for debugging purposes. Two commands are currently supported.
The command show-raw-dict
shows a raw output of a specified JSON element before vectorization.
The command show-vec
shows a feature vector of a specified JSON element.
$ python -m fexrd show-raw-dict --help
Usage: __main__.py show-raw-dict [OPTIONS] INPUT_JSON VER_STR EXTRACTOR_NAME
Arguments:
INPUT_JSON [required]
VER_STR [required]
EXTRACTOR_NAME Show an output of extract_raw_feature method. Available
feature names are: lief, dos_header, rich_header, header,
optional_header, data_directories, sections, relocations,
tls, export, debug, imports, resources_tree,
resources_manager, signatures, load_configuration, peid,
trid, strings, all, die, manalyze_plugin_packer [required]
$ python -m fexrd show-vec --help
Usage: __main__.py show-vec [OPTIONS] INPUT_JSON VER_STR EXTRACTOR_NAME
Arguments:
INPUT_JSON [required]
VER_STR [required]
EXTRACTOR_NAME Show an output of vectorize_features. Available feature
names are: lief, dos_header, rich_header, header,
optional_header, data_directories, sections, relocations,
tls, export, debug, imports, resources_tree,
resources_manager, signatures, load_configuration, peid,
trid, strings, all, die, manalyze_plugin_packer [required]
Options:
--help Show this message and exit.
Here, we show some usage examples.
$ python -m fexrd show-vec ./tests/test_regression_test/v2021/01340ff69f0c627a5f1cba2b82a59ef90b1a61ecb8078e183dc3e5d4abc847e9.json v2021 dos_header
dos_header_addressof_new_exeheader,dos_header_addressof_relocation_table,dos_header_checksum,dos_header_file_size_in_pages,dos_header_header_size_in_paragraphs,dos_header_initial_ip,dos_header_initial_relative_cs,dos_header_initial_relative_ss,dos_header_initial_sp,dos_header_magic,dos_header_maximum_extra_paragraphs,dos_header_minimum_extra_paragraphs,dos_header_numberof_relocation,dos_header_oem_id,dos_header_oem_info,dos_header_overlay_number,dos_header_reserved[0],dos_header_reserved[1],dos_header_reserved[2],dos_header_reserved[3],dos_header_reserved2[0],dos_header_reserved2[1],dos_header_reserved2[2],dos_header_reserved2[3],dos_header_reserved2[4],dos_header_reserved2[5],dos_header_reserved2[6],dos_header_reserved2[7],dos_header_reserved2[8],dos_header_reserved2[9],dos_header_used_bytes_in_the_last_page
16843152.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,23117.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0,37008.0
$ python -m fexrd show-raw-dict ./tests/test_regression_test/v2021/01340ff69f0c627a5f1cba2b82a59ef90b1a61ecb8078e183dc3e5d4abc
847e9.json v2021 dos_header
{
"addressof_new_exeheader": 16843152,
"addressof_relocation_table": 37008,
"checksum": 37008,
"file_size_in_pages": 37008,
"header_size_in_paragraphs": 37008,
"initial_ip": 37008,
"initial_relative_cs": 37008,
"initial_relative_ss": 37008,
"initial_sp": 37008,
"magic": 23117,
"maximum_extra_paragraphs": 37008,
"minimum_extra_paragraphs": 37008,
"numberof_relocation": 37008,
"oem_id": 37008,
"oem_info": 37008,
"overlay_number": 37008,
"reserved": [
37008,
37008,
37008,
37008
],
"reserved2": [
37008,
37008,
37008,
37008,
37008,
37008,
37008,
37008,
37008,
37008
],
"used_bytes_in_the_last_page": 37008
}
Additionally, you can use Docker for the CLI.
docker-compose -f .\docker-compose.production.yml run app python -m fexrd show-raw-dict --help
More Practical Usage Examples
The example directory contains more practical usage examples.


{{alert.msg}}
Password is required.
Password is too long.
Password is too short, Please enter more than 8 characters.
{{vm.errors.password}}
Password confirmation is required.
Password confirmation does not match.
Password confirmation is too long.
Password confirmation is too short, Please enter more than 8 characters.
{{vm.errors.password_confirmation}}


2020-06-29
When I started working on pbb, one of the features I wanted to add and was most excited about was a way to extend Markdown to add code that describes graphs or diagrams and replace it with the actual graph in the rendered output. The corresponding issue is just eight days younger than the whole project.
There are quite a few tools that let you make drawings from text input; I know of
Markdown extensions or Markdown-style markup languages that support diagrams aren’t a new invention either: for example, GitLab Markdown supports Mermaid and PlantUML, and Markdeep has lots of diagrams.
However, the point was in doing it myself, and since I’m most familiar with dot, that’s what I used.
Pandoc lets you manipulate its output by way of piping the intermediate representation of a document (its abstract syntax tree, AST) through a filter. That filter can either manipulate a JSON representation of the AST, or it can use Lua to to manipulate it.
JSON filters are apparently best written in Haskell, but there are libraries in other languages as well. I went with Lua filters instead: I always wanted to learn a bit of Lua, and the interpreter is built right into pandoc. They’re also faster, according to the docs.
The documentation is excellent, and after a Lua crash course, I was ready write my filter. There is a GitHub repository with a collection of pandoc Lua filters, which even includes a diagram generator—pretty much a superset of what I wanted to build. I definitely had a few closer looks at it whenever I got stuck.
The main difference is probably that the example diagram generator
uses the “media
bag” for images, whereas I write them directly to the filesystem.
Using the media bag requires the --extract-media
option, and that messes with the
relative paths of all images, which I wanted to avoid.
The final
product is a filter that checks for each code block if it has class
dot
, and if so, the code is piped to dot and the block then
replaced with the generated graph. Like this:
```dot
digraph G {
rankdir = "LR"
A -> B
}
```
produces
To get a caption (and an HTML

), the
property can be added:
``` {.dot caption="A caption!"}
digraph G {
rankdir = "LR"
A -> B
}
```
resulting in
And finally, to get the dot description as HTML comments next to the
figure (for, I don’t know, the people who want to recreate that great
graph themselves), a special class includeSource
can be
added:
``` {.dot .includeSource caption="A caption!"}
digraph G {
rankdir = "LR"
A -> B
}
```
for which the graph looks the same:
but the HTML source now includes

A caption!

The image file, by the way, has a prefix of its hash as the name, so all three graphs here generated just a single file as they’re identical.


--- layout: default title: 404 Page Not Found ---
Bummer, the page you are trying to view doesn't exist, like gone, completly.Go back to reading.


MATTHEW_ONG
Memory Lane
New Memory
Automatically saved
09/29/15 17:17:17
Title:
#tags
Drag in to upload
Upload picture
x
add link
Memory:
Privacy setting:
Everyone can read this.
Only my friends can read this.
Only I can read this.


pg_query – Pythonic wrapper around libpg_query
mer 02 ago 2017 14:49:24 CEST
Lele Gaifax<EMAIL_ADDRESS>GNU General Public License version 3 or later


- Not too basic.
- This book isn't for you if you don't know how to
drag the JPEG onto the Firefox icon on your computer's desktop.
- Not too advanced.
- This book isn't for you if you do know how to
compare the semantic values of <header>, <head>, <h1> and <h6>.
- Not too mysterious.
- There's a reason for everything in web design. Those reasons make it less scary and help you to not hate the people who invented it. That said...
- Efficient.
- Knowing how a catalytic converter works won't help you drive a car. Knowing how to build a webserver won't help you make a website.
- Short.
- You can print this out at home and read the whole thing on a two-hour plane trip.
- Wireless.
- Most web design books expect you to try stuff on the computer as you read. I hate that because I always end up on Facebook. I hope you'll read this end-to-end without having to touch a computer.


Travel plays a very important role in our lives as it allows us to experience new cultures and broaden our horizons. I have not lived on this earth all that long, but I have travelled a significant amount. This is a collection of photos I have taken along my Travels.
I took this photo at the Lincoln Memorial in Washington DC in July 2015. I thought this memorial and the War Memorials nearby to be riveting and really opened up my eyes to the impacts of War and the number of deaths it causes.
This photo was taken on a skiing trip to Lillehammer in March 2016. Lillehammer hosted the 1994 Winter Olympic Games and the photo I took is of a figure carrying the Olympic Torch etched into a forest area on the opposite side. This was my first skiing trip and was a trip I thoroughly enjoyed and enriched in me the value of travelling as this is not available in Ireland.
I took this photo of the Amsterdam skyline from the A'Dam Lookout in February 2017. Amsterdam is a very beautiful city and I was massively intrigued by the way in which the city is built with all the different canals running through the city streets. While in Amsterdam I also visited the house of Anne Frank and took a guided tour. It was amazing to learn about the culture that was in place in Amsterdam during the Second World War.
This is a photo of the train station in Pau. Pau is a city in southwestern France. I took this photo in September 2018 when I visited my friend who is living there. I found the architecture of the building to be aesthetically pleasing and highlighted the difference between buildings in different countries and why travel is so important to understand there are so many other cultures in the world which can be hard to forget as we don't see outside our own too often.
This photo was taken on Enniscrone beach and captures both the beach and Killala Bay. My grandparents live in Enniscrone and is such the reason for my travel north. Many a summers I have spent on the beach surfing, making sandcastles and discovering the large sand dunes which run parallel to the beach.
I took this photo at Edinburgh Airport shortly after departing my flight in December 2017. The purpose of my trip was to visit my sister who was studying there. Edinburgh is an amazing city that is very manageable in that it is not too big and everything is within walking distance. From seeing men in kilts playing the bagpipes and seeing the crown jewels in Edinburgh castle the city has it all and is steeped in rich tradition while also maintaining a modern front.


{{ partial "base/head.html" . }}
{{ partial "layouts/nav.html" . }} {{ block "main" . }}{{ end }} {{ partial "layouts/footer.html" . }} {{ block "footer-scripts" . }}{{ end }}


Describe what you have to offer the customer. Why should they read? What did you promise them in the subject line? Tell them something cool. Make them laugh. Make them cry. Well, maybe don't do that...
Use a list to:
Explain the value of your offer
Remind the reader what they’ll get out of taking action


My Personal Thinking Style
Ground-breaking observation: all people are not the same! Everyone thinks and learns in their own unique way. The way that I learn best might not be the way that you learn best. Professor Anthony Gregorc, who teaches at the University of Connecticut, has divided learning/working styles into these four groups:
- Concrete Sequential - Tend to focus on how things actually exist. They are based in reality, and process information in an ordered, linear way.
- Concrete Random - Use their intuition and like to take risks. They experiment to find answers.
- Abstract Random - Are “people-persons” and organize information through reflection.
- Abstract Sequential - Analyze situations before acting and apply logic when solving problems.
No thinking style is superior: they are just different. You can read more about them here. It is stressed that you simply become aware of what your thinking style is, and use that knowledge to understand yourself better. If you know the way that your own mind operates, then you can making learning more effective and better relate to others. Have I peaked your interest? Click here to take the quiz for yourself!
So What’s Yours?
The results of my own quiz-taking experience was an exact tie between Concrete Sequential and Abstract Sequential. (At least they are both sequential, right? A tie between Concrete Sequential and Abstract Random might have been a little more confusing!) About 12 points behind was Abstract Random, and then in last place was Concrete Random.
What does this mean? Well, it means that I am a combination of being realistic, analyzing situations, and being logical. It makes sense to me, because I feel like the two go hand in hand. It means that I like order, getting facts, logical sequences, having my voice heard, analyzing before acting, and applying logic to find a solution. I learn best when I have a structured environment, can apply ideas in pragmatic ways, have access to references, and am able to work alone. What is hard for me? Discussions with no specific point, unorganized environments, unclear instructions, abstract questions, not monopolizing conversations, and repetitive tasks.
Growth vs. Fixed Mindset
What is a fixed mindset? It is something that I have previously been guilty of, and am making an active effort to overcome. If someone has a fixed mindset, they believe that intelligence is static and does not change: either you are intelligent or not, there is no changing! (Well that is a bummer, right?) For me, I wouldn't necessarily avoid challenges, but I would give up easily or be discouraged very quickly when trying to do something. I would put in a lot of effort, but as soon as there was a bump in the road, I would get stressed out, throw my hands up, and feel as though all of my work was worthless. As a result, people with a fixed mindset plateau early and never really achieve their full potential. This is not an ideal mindset to have, and it can be detrimental to someone’s personal and professional life.
There is also a growth mindset. They believe that intelligence can be developed and changed over time. The growth mindset embraces challenges and persists in the face of setbacks. Effort is the path to mastery. There is a great quote that I love: "Failing a bunch of times is the first step toward getting really good at something." Because no one is born a great programmer, or painter, or football player, or any other profession that requires a high level of skill. It is all about working hard and continuously improving yourself. As a result, people of the growth mindset have a greater sense of free will, and often achieve their full potential.
All About Perspective
Awareness is key! Being conscious of a habit or behavior is the first step toward changing that behavior. When I first started DBC, I was unaware that these two mindsets existed (and Psychology was my second major in college!) Since learning about them, and admitting that I was prone to the fixed mindset, I have made a proactive effort to change. I have found much success in simply making the conscious decision to react in a different way than I was used to. If a small setback comes along, I think that there are two ways that I can deal with it. I can get upset, think negatively, and make the situation worse than it actually is. Or, I can stay positive and make the best out of the situation.
I had a tough time trying to upgrade my computer’s operating system from Snow Leopard to Yosemite, which resulted in a 10+ hour ordeal at the Apple store. Fighting the impulse to get frustrated, I stayed positive and embraced this as a new learning experience. Once everything was resolved, I realized that I had so many improvements made to my computer that it was almost like it was brand new again! Score! It’s all about perspective.
If you would like to read more about the fixed vs. growth mindset, be sure to check out Mindset: The New Psychology of Success
If you have any questions or comments, please send me either an email or a tweet. Happy coding!
Posted by Morgan McCrory


Implements several ABC algorithms for performing parameter estimation, model selection, and goodness-of-fit. Cross-validation tools are also available for measuring the accuracy of ABC estimates, and to calculate the misclassification probabilities of different models.
| Version: | 2.1 |
| Depends: | R (≥ 2.10), abc.data, nnet, quantreg, MASS, locfit |
| Published: | 2015-05-05 |
| Author: | Csillery Katalin [aut], Lemaire Louisiane [aut], Francois Olivier [aut], Blum Michael [aut, cre] |
| Maintainer: | Blum Michael <michael.blum at imag.fr> |
| License: | GPL (≥ 3) |
| NeedsCompilation: | no |
| Citation: | abc citation info |
| In views: | Bayesian |
| CRAN checks: | abc results |
| Reference manual: | abc.pdf |
| Vignettes: |
ABC |
| Package source: | abc_2.1.tar.gz |
| Windows binaries: | r-devel: abc_2.1.zip, r-release: abc_2.1.zip, r-oldrel: abc_2.1.zip |
| OS X binaries: | r-release: abc_2.1.tgz, r-oldrel: abc_2.1.tgz |
| Old sources: | abc archive |
| Reverse depends: | abctools, EasyABC |
| Reverse imports: | ecolottery |
| Reverse suggests: | coala |
Please use the canonical form https://CRAN.R-project.org/package=abc to link to this page.


|
DQ skinning for Unity
Dual Quaternion skinning implementation with bulging compensation
|
| Gif | Difference |
|---|---|
The script was tested with following Unity versions:
#pragma multi_compile
in compute shaders)SkinnedMeshRenderer
componentDualQuaternionSkinner.cs
component (it will require a MeshFilter
component)MadCake/Material/Standard hacked for DQ skinning
| Bones properly aligned | Bones not aligned |
|---|---|
If bulging is increased instead of decreased, select same axis with different direction (X => Negative X)
The script is programmed to automatically detect common setup problems. Check out the editor:
You will not see any effect in edit mode.
The scipt only works in play mode.
If you see no effect in play mode verify that you are using the right shader.
My scripts uses SkinnedMeshRenderer
to extract an array of bones from it. Yep, that's it.
The order of bones is unpredictable and does not depend on their hierarchy.
Only SkinnedMeshRenderer knows it ¯\_(ツ)_/¯
After extracting the bone array in Start()
my script disables SkinnedMeshRenderer
component as it is no longer needed. All the animations are performed by the script. You can verify it in the editor after hitting play button.
Alas it's complicated.
I added comments to "Standard hacked for DQ skinning" marking the alterations i made to the Standard shader.
You can try to do the same with your own shader to make it work with the script.
Feel free to contact me in this thread at unity forum if you need help.
I would also like to hear about your projects that use my script and your experience with it.
Must use cullingMode = AlwaysAnimate in Animator. Otherwise, the mesh is treated as permanently invisible.
You can write a short script that will toggle cullingMode based on visibility to get proper culling.
During my testing the amount of time spent on actual skinning was negligible compared to the amount of time extracting localToWorldMatrix
from every bone in the hierarchy.
As long as you are not creating hundreds of characters with complex rigs (no matter the polycount) there should be no significant performance hit.
If anyone knows how to optimize extracting localToWorldMatrix
of the bones please create an issue or message me on unity forum.
Works A LOT faster with IL2CPP, about 30% slower than built-in skinning in worst-case scenario according to my testing.
If you have any questions, ideas, bug reports, or just want to discuss the script, you can contact me on unity forum
The bulging compensation method used is described in the article.
Notes:


# Description:
# This script will connect against a target (or list of targets) machine/s and gather the OS architecture type
# installed.
# The trick has been discovered many years ago and is actually documented by Microsoft here:
# https://msdn.microsoft.com/en-us/library/cc243948.aspx#Appendix_A_53
# and doesn't require any authentication at all.
#
# Have in mind this trick will *not* work if the target system is running Samba. Don't know what happens with macOS.
usage: getArch.py [-h] [-target TARGET] [-targets TARGETS] [-timeout TIMEOUT]
[-debug]
Gets the target system's OS architecture version
optional arguments:
-h, --help show this help message and exit
-target TARGET <targetName or address>
-targets TARGETS input file with targets system to query Arch from (one per
line).
-timeout TIMEOUT socket timeout out when connecting to the target (default
2 sec)
-debug Turn DEBUG output ON