My physics teacher approached my team (Patrick Chen, Will Guss, and I) about constructing the West Connect website. This website was intended to show students at West High School their current contributions to the
Project website


This post is part of a series:
- Jenkins.NET
- Jenkins.NET Plugins
- Setup Jenkins.NET
- Setting up your first job
- Your first build
- Breaking the build
- Diagnosing and fixing a broken build
- Monitoring your build
- Running your tests
- Code Analysis
- Security
- Active Directory Security
After building your solution the next task you’ll want to automate is the running of your tests. Jenkins comes with a multitude of test plugins so whatever test framework you’re using chances are you’ll be covered. To show how easy it is to add tests to a build we’ll add NUnit to our demo solution and have Jenkins run the tests every time we commit a change to the source repository.
Test Project Structure
Structure of the demo project is:
Tools\NUnit\bin contains the NUnit framework and runner.
The DemoTest project references the nunit.framework.dll from this folder. This enables the solution to be checked out and run with out any pre-installation requirements. This work great for Jenkins but its also a great way to setup your solutions, if you need to move to a new machine or if you have a new starter you just check out the solution and its ready to build and run your tests.
Execute any test runner
The build step “Execute Windows batch command” works with any test runner that has a command line runner. We will use this method to run the NUnit command line test runner in the Demo project.
Use the Demo » Configure link to access the configuration page, under the Build section click the “Add build step” button.
Select the “Execute Windows batch command” to add a new build step.
Under the “Execute Windows batch command” section enter the command:
-
Tools\nunit\bin\nunit-console.exe src\DemoTests\bin\Debug\DemoTests.dll
-
Click the “Save” button
This command is telling Jenkins the location of the NUnit test runner (Tools\nunit\bin\nunit-console.exe) and the location of the test DLL to run against (src\DemoTests\bin\Debug\DemoTests.dll).
This command will now execute the NUnit test runner after every solution build.
Failing Tests
When a test fails Jenkins will fail the build and show a red ball for the status of the project.
Now we know the build has failed but we don’t want to start digging through the console output to find the details of the failing test. Lets introduce another Jenkins plugin which will show details of exactly which test failed and why.
Plugin Setup
Use the Demo » Configure link to access the Demo jobs configuration page, under the Post-Build Actions section.
-
Tick the “Publish NUnit test result report” check box.
-
Enter the output of the NUnit test runner: TestResult.xml
-
Click the “Save” button.
Run a build again to see the NUnit test report.
- Click the Demo » Build Now link.
Of course the build has failed again but that’s what we want. This allows us to see NUnit test report. To view the report click on the failed build in the Build History.
We now have a Test Result area that is showing 1 failure in the DemoTests.ProgramTests.Add namespace. That’s certainly easier than digging through the console output. The benefits don’t end there, if you click on the Test Result link we will get a more detailed report.
Here we get a pretty report showing the full details of the failure. We can drill down for even more detail using the link DemoTests.ProgramTests.Add.
This gives the error message from the test, a stack trace, the filename of the failing test and even the line number. You can’t ask for much more than that but there is one more benefit we can eke out of our test runner and that is our test history.
Test History
Once you setup the Unit plugin, Jenkins will track all your test results. This is a great way to keep an eye on the general health of your project. I’ve added a few more tests and commits to the demo project to show how the test history works.
As you can see the Demo home page now has a “Test Result Trend” graph showing the initial failing test, followed by anther commit to fix the failure then another 4 tests that were added. The graph shows at a glance that our Demo project is getting healthier on every commit. This is the type of graph we want to see in our projects.


Brandon Ryu
About
Portfolio
Contact
Brandon's Portfolio
HTML CSS Git: Code Refactor
Javascript: Password Generator
Code Quiz
Work Day Scheduler
Weather Dashboard
Project 01 - PokeDex-V1


The UnconstrainedMeanVariancePortfolioOptimizer
seeks to find the optimal risk-adjusted portfolio that lies on the efficient frontier.
var optimizer = new UnconstrainedMeanVariancePortfolioOptimizer(historicalReturns);
optimizer = UnconstrainedMeanVariancePortfolioOptimizer(historical_returns)
The following table describes the arguments the model accepts:
| Argument | Data Type | Description | Default Value |
|---|---|---|---|
historicalReturns |
double[,] DataFrame |
Matrix of historical returns where each column represents a security and each row returns for the given date/time (size: K x N) | |
expectedReturns |
double[] Series |
Array of double with the portfolio expected returns (size: K x 1) | null None |
covariance |
double[,] DataFrame |
Multi-dimensional array of double with the portfolio covariance of returns (size: K x K) | null None |
If you don't provide an argument for expectedReturns
or covariance
, it's calculated based on the historicalReturns
.
To view the implementation of this model, see the LEAN GitHub repositoryLEAN GitHub repository.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object de.uniheidelberg.cl.swp.featureExtraction.FeatureExtractionProcess
public class FeatureExtractionProcess
This class encapsulates the feature extraction process.
| Constructor Summary | |
|---|---|
FeatureExtractionProcess()
Initializes the necessary data structures. |
|
FeatureExtractionProcess(java.util.List<AbstractFeatureExtractor> featureList)
Initializes the necessary data structures. |
| Method Summary | |
|---|---|
void |
extractFeatures(java.util.List<CoreferencePair> corefPairs,
MMAXParser mmax)
Extract features for the given coreference pairs. |
java.util.List<AbstractFeatureExtractor> |
getFeatureExtractorList()
Getter for the feature list. |
void |
setFeatureExtractorList(java.util.List<AbstractFeatureExtractor> featureExtractorList)
Setter for the feature list. |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public FeatureExtractionProcess()
public FeatureExtractionProcess(java.util.List<AbstractFeatureExtractor> featureList)
featureList
- A custom feature list.| Method Detail |
|---|
public void extractFeatures(java.util.List<CoreferencePair> corefPairs, MMAXParser mmax) throws java.io.IOException
corefPairs
- The CoreferencePair
s for which features will be extracted.mmax
- The MMAX file (serves as source for feature values)
If
- the features couldn't be extracted.
java.io.IOException
public void setFeatureExtractorList(java.util.List<AbstractFeatureExtractor> featureExtractorList)
featureExtractorList
- List of the features.public java.util.List<AbstractFeatureExtractor> getFeatureExtractorList()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |


| Line |
Column |
Severity |
Message |
| 360 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 360 |
52 |
error
|
Opening brace should be on a new line |
| 361 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 362 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 362 |
141 |
warning
|
Line exceeds 120 characters; contains 141 characters |
| 363 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 364 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 365 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 366 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 367 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 368 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 369 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 370 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 372 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 373 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 374 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 376 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 377 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 379 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 381 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 383 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 384 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 385 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 386 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 387 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 388 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 389 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 390 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 391 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 392 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 393 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 394 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 395 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 396 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 397 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 398 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 399 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 400 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 401 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 402 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 403 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 404 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 405 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 406 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 407 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 408 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 409 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 410 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 411 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 413 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 415 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 417 |
1 |
warning
|
Line exceeds 120 characters; contains 165 characters |
| 417 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 419 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 421 |
1 |
warning
|
Line exceeds 120 characters; contains 180 characters |
| 421 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 423 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |
| 424 |
1 |
error
|
Spaces must be used to indent lines; tabs are not allowed |


This page shows up each visit. This kind of route is helpful for notifications, consent forms or announcements.
This (fake) site uses cookies for non-nefarious reasons.
You okay with that or what?


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/summer.20school.html ---
Friends,
Every summer, the Department of Philosophy at Carnegie Mellon University offers a three-week summer school for undergraduates. It focuses on topics at the intersection between philosophy and the sciences, such as logic, statistics, linguistics, and so on.
This year, it will be held June 3-21, and I'll be introducing students to interactive theorem proving and Lean in the first week:
https://www.cmu.edu/dietrich/philosophy/undergraduate/summer-school/
Please share this information with any students who may be interested.
As someone who attended this summer school (a long time ago): it's great, and very worthwhile!
{% endraw %}Last updated: Apr 24 2020 at 19:02 UTC


Firs7Gen Music
Inspiring Creativity for Everyone
Join the Creative Commons movement and
keep the Internet creative, free and open for everyone.
Start Downloading for Free
Instrumentals are free for download. Choose
from a variety of high quality formats including
ALAC, FLAC and WAV.
What Are You Getting
Creative
Community
Anywhere
You Go Access
Instant
Downloads
The Creative Commons
community spreads
creativity and exposure for
everyone involved.
Paying supporters also get
unlimited streaming via the
free Bandcamp app.
Receive a download link
immediately after choosing an
instrumental.
What Are People Saying?
Jonny Watts
Affordability, creativity
and quality all in one
package!
Justin Peterson
Affordability, creativity
and quality all in one
package!
Cristina Davis
Affordability, creativity
and quality all in one
package!


Services
Portfolio
Contact Me
Policies
{{promotion.createdOn}} - {{promotion.description}}
Chapters
Services
Portfolio
Contact Me
Policies
Return to Content


#include <EventStreamClient.h>
◆ OnConnectCallback()
| void Aws::Eventstreamrpc::ConnectionLifecycleHandler::OnConnectCallback |
( |
| ) |
|
|
virtual |
This callback is only invoked upon receiving a CONNECT_ACK with the CONNECTION_ACCEPTED flag set by the server. Therefore, once this callback is invoked, the ClientConnection
is ready to be used for sending messages.
◆ OnDisconnectCallback()
| void Aws::Eventstreamrpc::ConnectionLifecycleHandler::OnDisconnectCallback |
( |
RpcError |
status | ) |
|
|
virtual |
Invoked upon connection shutdown.
- Parameters
-
| status | The status upon disconnection. It can be treated as a bool with true implying a successful disconnection. |
◆ OnErrorCallback()
| bool Aws::Eventstreamrpc::ConnectionLifecycleHandler::OnErrorCallback |
( |
RpcError |
status | ) |
|
|
virtual |
Invoked upon receiving an error. Use the return value to determine whether or not to force the connection to close. Keep in mind that once closed, the ClientConnection
can no longer send messages.
- Parameters
-
| status | The status upon disconnection. It can be treated as a bool with true implying a successful disconnection. |
◆ OnPingCallback()
Invoked upon receiving a ping from the server. The headers
and payload
refer to what is contained in the ping message.
The documentation for this class was generated from the following files:
- /Users/jkl/Documents/AWS/sdk-cpp-workspace/aws-iot-device-sdk-cpp-v2/eventstream_rpc/include/aws/eventstreamrpc/EventStreamClient.h
- /Users/jkl/Documents/AWS/sdk-cpp-workspace/aws-iot-device-sdk-cpp-v2/eventstream_rpc/source/EventStreamClient.cpp


Class DpiUtilities
Inherited Members
Namespace: SharpVectors.Runtime
Assembly: SharpVectors.Runtime.Wpf.dll
Syntax
public static class DpiUtilities
Fields
DefaultPixelsPerInch
This is the default PPI value used in WPF and Windows.
Declaration
public const double DefaultPixelsPerInch = 96
Field Value
| Type | Description |
|---|---|
| Double |
Properties
DpiAwareness
Declaration
public static ProcessDpiAwareness DpiAwareness { get; }
Property Value
| Type | Description |
|---|---|
| ProcessDpiAwareness |
Methods
CalculateScale(UInt32, UInt32, Double, Double)
Declaration
public static DpiScale CalculateScale(uint dpi1X, uint dpi1Y, double dpi2X, double dpi2Y)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | dpi1X | |
| UInt32 | dpi1Y | |
| Double | dpi2X | |
| Double | dpi2Y |
Returns
| Type | Description |
|---|---|
| DpiScale |
GetMonitorEffectiveDpi(IntPtr, out UInt32, out UInt32)
Get the Effective DPI of a monitor after a user's accessibility preferences have been applied.
Declaration
public static void GetMonitorEffectiveDpi(IntPtr hMonitor, out uint dpiX, out uint dpiY)
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | hMonitor | The monitor. |
| UInt32 | dpiX | The dpi x. |
| UInt32 | dpiY | The dpi y. |
GetScreenScalingFactor(String)
Gets scaling factor for a monitor This is defined as current pixel size relative to effective DPI
Declaration
public static double GetScreenScalingFactor(string deviceName = null)
Parameters
| Type | Name | Description |
|---|---|---|
| String | deviceName | Monitor device name or null for the primary monitor |
Returns
| Type | Description |
|---|---|
| Double |
GetSystemEffectiveDpi(out UInt32, out UInt32)
Get the System Effective DPI.
Declaration
public static void GetSystemEffectiveDpi(out uint dpiX, out uint dpiY)
Parameters
| Type | Name | Description |
|---|---|---|
| UInt32 | dpiX | The dpi x. |
| UInt32 | dpiY | The dpi y. |
Remarks
The System Effective DPI is derived by the operating system by looking across all monitors and determining an "Effective DPI" that works well across all the screens for applications that do not support per-monitor DPI.
GetSystemScale()
Declaration
public static DpiScale GetSystemScale()
Returns
| Type | Description |
|---|---|
| DpiScale |
GetVirtualPixelScale(IntPtr)
Gets the virtual pixel scale for a window. This is essentially the Effective DPI of the monitor versus a standard 96 DPI.
Declaration
public static DpiScale GetVirtualPixelScale(IntPtr hwnd)
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | hwnd | The HWND. |
Returns
| Type | Description |
|---|---|
| DpiScale |
GetVirtualPixelScale(Window)
Gets the virtual pixel scale for a window. This is essentially the Effective DPI of the monitor versus a standard 96 DPI.
Declaration
public static DpiScale GetVirtualPixelScale(Window window)
Parameters
| Type | Name | Description |
|---|---|---|
| Window | window | The window. |
Returns
| Type | Description |
|---|---|
| DpiScale |
GetVirtualPixelScaleByMonitor(IntPtr)
Gets the virtual pixel scale for a monitor. This is essentially the Effective DPI of the monitor versus a standard 96 DPI.
Declaration
public static DpiScale GetVirtualPixelScaleByMonitor(IntPtr hMonitor)
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | hMonitor | The h monitor. |
Returns
| Type | Description |
|---|---|
| DpiScale |
GetWindowEffectiveDpi(IntPtr, out UInt32, out UInt32)
Get the Effective DPI of a windows (monitor) after a user's accessibility preferences have been applied.
Declaration
public static void GetWindowEffectiveDpi(IntPtr hwnd, out uint dpiX, out uint dpiY)
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | hwnd | The window. |
| UInt32 | dpiX | The dpi x. |
| UInt32 | dpiY | The dpi y. |
GetWindowEffectiveDpi(Window, out UInt32, out UInt32)
Get the Effective DPI of a windows (monitor) after a user's accessibility preferences have been applied.
Declaration
public static void GetWindowEffectiveDpi(Window window, out uint dpiX, out uint dpiY)
Parameters
| Type | Name | Description |
|---|---|---|
| Window | window | The window. |
| UInt32 | dpiX | The dpi x. |
| UInt32 | dpiY | The dpi y. |
GetWindowScale(IntPtr)
Gets the window (monitor) scale versus System DPI.
Declaration
public static DpiScale GetWindowScale(IntPtr hwnd)
Parameters
| Type | Name | Description |
|---|---|---|
| IntPtr | hwnd | The window. |
Returns
| Type | Description |
|---|---|
| DpiScale |
Remarks
When developing a DPI-aware application, this is useful for applying a ScaleTransform to your window so all fonts and graphics are scaled and rendered beautifully based on the physical capabilities of the display and the accessibility settings of the user.
GetWindowScale(Visual)
Gets the window (monitor) scale versus System DPI.
Declaration
public static DpiScale GetWindowScale(Visual visual)
Parameters
| Type | Name | Description |
|---|---|---|
| Visual | visual | The window. |
Returns
| Type | Description |
|---|---|
| DpiScale |
Remarks
When developing a DPI-aware application, this is useful for applying a ScaleTransform to your window so all fonts and graphics are scaled and rendered beautifully based on the physical capabilities of the display and the accessibility settings of the user.
GetWindowScale(Window)
Gets the window (monitor) scale versus System DPI.
Declaration
public static DpiScale GetWindowScale(Window window)
Parameters
| Type | Name | Description |
|---|---|---|
| Window | window | The window. |
Returns
| Type | Description |
|---|---|
| DpiScale |
Remarks
When developing a DPI-aware application, this is useful for applying a ScaleTransform to your window so all fonts and graphics are scaled and rendered beautifully based on the physical capabilities of the display and the accessibility settings of the user.


404
OOPS! something went wrong!!
We could not find what you were looking for. It may have been caused by a bookmark that's out-of-date, a page that doesn't exist anymore, or by mistyping the page address.
You could try the menu at the top, the navigation in the sidebar, or the search box in the top right corner of the page.
BACK TO HOMEPAGE


4.2 : Basic Operators
These upcoming sections will cover the basic boolean operators. It's like doing math that you know. Your number system is base-10. Your basic operators are addition and subtraction. In boolean algebra, the number system is binary. In boolean algebra, the basic operators are not and or and and.
Operators
4.2.1 : Not4.2.2 : Or
4.2.3 : Nor
4.2.4 : And
4.2.5 : Nand
4.2.6 : Xor


Kevin van Zonneveld
on 2009-07-08 16:30:28
@ Brett Zamir: Mediawiki it is! I installed a basic version in /wiki. Will link to it from the navigation once we have some goodness to show for it.
Brett Zamir
on 2009-07-04 01:16:43
I'm quite partial to Mediawiki. Well-tested, familiar syntax (at least among wikis), easy to install, extensible, well-supported by the community, etc. See http://www.mediawiki.org/wiki/Download and links on the page for 'how-to' articles such as customizing the logo, etc. (e.g., http://www.mediawiki.org/wiki/Manual:Skins and http://www.mediawiki.org/wiki/Manual:Gallery_of_user_styles )
Kevin van Zonneveld
on 2009-07-03 13:55:28
@ Brett Zamir: Ok i'm definitely cool with that. Just need to figure out what wiki to use and how to nicely integrate it into this site (cakephp). any suggestions are welcome
Brett Zamir
on 2009-06-30 11:36:07
Nice one, thanks Roland. Used the same approach in my LGPL Firefox Unicode chart view extension - https://addons.mozilla.org/en-US/firefox/addon/5235 (I should make an HTML 5 version of that one if somebody else doesn't, now that SQL can be used client-side to store character descriptions.)
Anyhow, Kevin, what do you think of a public wiki for demos of code like this one? We keep getting asked for demos, so maybe our users would like a little workspace for stuff like this (or derivatives of the functions, etc.). Wouldn't replace the compiler, and central review is still helpful, but we might see others be able to help out a little with introduction, offering special tricks, etc. What do you think?
Roland Hentschel
on 2009-06-30 09:48:14
just a simple way to use this script:
function charmap(font,size) {
if (font==null) font="Arial";
if (size==null) size=24;
document.write("\n");
document.write("
\n");
for (x=0;x<16;x++) {
document.write("
\n");
for (y=0;y<16;y++) {
document.write(""+chr(16*x+y)+"	\n");
}
document.write("
\n");
}
document.write("
\n");
}
Kevin van Zonneveld
on 2008-03-15 11:51:12
@ fumbling fellow: Yeah I recently moved the css to a separate file, but I messed up apparently. Thank you, fixed it now!
fumbling fellow
on 2008-03-15 00:26:30
Looks like the code is working, the css file is not found so the cells are not changing color.
http://kevin.vanzonneveld.net/css/pj_tester.css
I found the function I was looking for though.
print_r
fumbling fellow
on 2008-03-14 23:38:07
Thanks for all the hard work!
This will be very useful to me.
I can't get your test page to work.
Seems like I had green cells a couple of weeks ago, but now nothing is happening :-(
Kevin van Zonneveld
on 2008-01-03 18:44:10
@ Kris: Thanks Kris that's very useful!
Kris Brixon
on 2008-01-02 13:42:52
Here are a few links to a similar effort from ColdFusion. You may be able to pick up a few functions they wrote.
http://cfjs.riaforge.org/
http://www.shlomygantz.com/customtags/CFMLjsLibrary/CfmljsLibrary_beta.htm


Tottenham NEW favourites ahead of Man Utd to seal sensational signing thanks to Jose Mourinho
by Magnus EriksenTottenham are now the favourites ahead of Manchester United to clinch the transfer of Gareth Bale from Real Madrid.
The Wales international is now just 11/4 with Ladbrokes to return to Spurs after a difficult time at Real Madrid of late.
MORE: Jose Mourinho can’t resist cheeky DIG at Mauricio Pochettino and Tottenham players in first press conference
Jose Mourinho’s appointment at Tottenham is bound to affect things, with the Portuguese tactician known to have tried to sign Bale during his time as Man Utd manager.
The Red Devils have continued to be linked with the 30-year-old, but it increasingly seems the bookies are all putting Tottenham at the front of the queue.
This could mean a bet on Bale joining Spurs in the near future could help you win big, though admittedly not as big as casino sites offering a No Deposit Bonus.
Bale seems likely to be one of this January’s movers after coming so close to leaving Real in the summer, so it’s surely worth a punt on him returning to Spurs or indeed moving to another top Premier League club.
United would surely take him as an upgrade on the inconsistent Marcus Rashford and Anthony Martial, while Chelsea could still do with a replacement for Eden Hazard, though that will depend on their transfer ban being lifted.


-
Declaration
Swift
public var isPadded: Bool
Return Value
true, if we want the address Strings to be zero-padded (default is false).
-
Declaration
Swift
public var port: Int
Return Value
the TCP Port of the IP address.
-
Declaration
Swift
public var isV6: Bool
Return Value
true
-
Declaration
Swift
public var isValidAddress: Bool { get }
Return Value
true, if this is a valid IPV6 address.
-
Declaration
Swift
public var address: String { get }
Return Value
The IPV6 String representation. If isPadded is true, then each element will be zero-padded, and no shortcuts will be taken. If false, then we “shortcut” consecutive zeores.
-
Declaration
Swift
public var addressAndPort: String { get }
-
This is the array, containing the address.
It clears the Address Array, if it is not “legal.”
Declaration
Swift
public var addressArray: [Int] { get set }
-
This init extracts an IPV6 address, and, if applicable, TCP port, from a given string.
The definition of an IPV6 address is:
XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
Where
X
is 0…F (hexadecimal). There are shortcuts (discussed below), but we assume leading zeroes, and all zeores are represented.Each segment is a positive integer, from 0 - 65535 (FFFF in hexadecimal).
If there is an additional TCP port, then the IP address is bracketed, and followed immediately by a colon (:), then immediately by a positive integer, like this:
[XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX]:Y
Where
Y
is a positive integerSHORTCUTS:
You can specify a range of 0-filled elements by using
::
as a shortcut. This is only allowed once in the entire address, so:XXXX:0000:0000:0000:XXXX:0000:0000:XXXX
can be written asXXXX::XXXX:0000:0000:XXXX
orXXXX:0000:0000:0000:XXXX::XXXX
Usually, the first shortcut will be selected, as it’s the longest range.
You can have a maximum of four (4) hexadecimal characters in an element. Case of the hex digits is usually lowercased, as a convention, but uppercased is allowed. We use lowercase.
You cannot have characters other than 0-9, a-f (or A-F) in an element.
You must separate elements with colons (:). If you are specifying a port, you must wrap the address in brackets ([]). You must have BOTH brackets if you are wrapping the address.
You can wrap an address in brackets, even if you do not specify a port.
If you specify a port, it must appear after a colon (:), after the closing bracket (]), so you would have
]:12345
, to specify TCP Port 12345.You can have a maximum of eight (8) elements.
Illegal formats and syntax errors result in no address being set. This method does not guess.
Declaration
Swift
public init(_ inString: String)
Parameters
inString
The String to be parsed.
-
Default initializer -Allows us to forgo initial values.
Declaration
Parameters
inArray
An optional Array of Int. Exactly 8 elements, with positive integer values below 65536.
port
An optional (Default is 0) positive Int, with the TCP Port for the address.
isPadded
An optional Bool. If true (default is false), then the address components are complete (no shortcuts) and 0-padded.


Hello Hearty people.
 If you are looking forward for a fighting fit lifestyle then you are at the right site.
HealtHouse is an excellent place to find help in your new normal. We assist you with numerous facets of health and lifestyle truthfully by depleting all your concerns on the square with expert guidelines and sophistication.
Make sure to for any feedback or requests


High school can be a life changing experience - picking the right one becomes incredibly important. Based on your preferences, we'll help you find the right list of schools to apply to.
We'll help you build a resume to make you stand out. We'll also help you find the right language to showcase your extracurriculars, leadership ability, and more.
We'll help you talk about yourself in the alumni interview so you can stand out from the other applicants.
We'll teach you how to cultivate your relationships and pick the right teachers to get a recommendation letter.
Based on your unique experiences, we'll help you brainstorm, craft, and edit your resumes.


UK Conservatives keep lead over Labour: Mail on Sunday poll
LONDON (Reuters) - Prime Minister Boris Johnson’s Conservative Party has maintained a 12 percentage point lead over the opposition Labour Party during the past week, an opinion poll for the Mail on Sunday newspaper showed.
Support for both the Conservatives and Labour rose by 1 percentage point to 41% and 29% respectively, and the third-placed Liberal Democrats gained 2 percentage points of support, rising to 16%, the Deltapoll figures showed.
Deltapoll surveyed 1,518 British adults between Nov. 6 and Nov. 9, ahead of a national election due on Dec. 12.


Palin says she learned of divorce plans from attorney
by BECKY BOHRERJUNEAU, Alaska (AP) - Former Alaska Gov. Sarah Palin says she learned her husband was seeking a divorce in an email from his attorney.
The revelation came in an interview released Tuesday with James Dobson, founder of the Family Talk Christian ministry. He said the interview had been conducted previously.
Palin says she received an email June 19 from the attorney, almost three months before Todd Palin filed on his birthday in September.
She described the filing that came shortly after their 31st wedding anniversary as devastating.
Palin says they’re going through counseling and their marriage isn’t “over, over.” She says attorneys are “getting rich” off them.
A message seeking comment was left for an attorney believed to be representing Todd Palin.
Palin was the 2008 Republican vice-presidential nominee. She resigned as governor in 2009.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Salty Dog Employment Form
Please note you must be 18 years or older to work for any Salty Dog Inc business.
Name:
Phone Number:
Are you 18 years old or older?
Choose one
Yes, I am 18 years old or older.
No, I am not 18 years old or older.
Email Address:
Date Available to start work:
What Is The Highest Grade Or Level Of School You Have Completed Or The Highest Degree You Have Received?
What areas of employment interest you the most?
Which location are you intested in?
Choose your location preference
Hilton Head
Bluffton
Bohicket Marina
What areas of employment do you have experience in?
Tell us about any skills or hobbies you have that you feel make you a good crew member:
What was your favorite job, volunteer work, class, or extracurricular activity and why?
Please define great customer service.
Post
Submitted successfully!
We will get back to you soon.
Error
Sorry there was an error sending your form.


 I blessed him and made him many.
3 Yes, Yahweh will comfort Zion; he will comfort all her waste places;
her wilderness he made like Eden, and her desert plains beside the Jordan River valley like the garden of Yahweh;
joy and gladness will be found in her, thanksgiving, and the sound of singing.
4 "Be attentive to me, my people; and listen to me, my people!
For I will issue a decree, and I will make my justice to be a light for the nations.
5 My righteousness is near; my salvation will go out, and my arm will judge the nations;
the coastlands will wait for me; for my arm they will eagerly wait.
6 Lift up your eyes to the sky, and look at the earth beneath,
for the heavens will vanish away like smoke, the
earth will wear out like a garment, and its inhabitants will die like flies.

9 Awake, awake, clothe yourself with strength, arm of Yahweh.
Awake as in the days of old, the generations of ancient times.
Is it not you who crushed the sea monster, you who pierced the dragon?
10 Did you not dry up the sea, the waters of the great deep,
and make the depths of the sea into a way for the redeemed to pass through?
11 The ransomed of Yahweh will return and come to Zion with cries of joy
and with gladness forever on their heads; and gladness and joy will overtake them, and sorrow and mourning will flee away.
12 "I, I, am he who comforts you.
 You are in constant dread every day
because of the hot fury of the oppressor when he decides to destroy. Where is the fury of the oppressor?
14 The one who is bent down, Yahweh will hurry to release; he will not die and go down to the pit, nor will he lack bread.
15 For I am Yahweh your God, who churns up the sea, so that its waves roar—Yahweh of hosts is his name.
16 I have placed my words in your mouth, and I have covered you in the shadow of my hand,
that I may plant the heavens, lay the foundations of the earth, and say to Zion, 'You are my people.'"
17 Awake, awake, stand up, Jerusalem,
you who drank the bowl of Yahweh's anger from his hand;
you drank the bowl, the bowl of staggering, and you drained it.
18 There is no one among all the sons she has born to guide her;
there is no one among all the sons that she has raised to take her by the hand.
19 These two troubles happened to you—who will grieve with you?—
desolation and destruction, and the famine and the sword.


October 5th
October 5th
Lecture
- Packets: Different names in different layers
- How big? (how many bits?)
- What kinds of info does packet carry?
- How is packet divided/organized? (Which group of bits fot which info)
- Naming/Addressing
- IP Addresses
- Ports
- Mac Addresses
- Routing (Describe and classify algorithms)
- Dijkstra's Shortest path algorithm -- finds shortest distance between nodes, picks starting node, and checks distance between all adjacent nodes.
- Reliable Transport--Finite State Machine
Lab
- Linux commands for checking networks
- netstat: Displays the contents of /proc/net files. The status of ports (open, closed, waiting, etc.).
- tcpdump: captures packets off the network interface and interprets them (sniffer). Can save packets for later inspection
- ping: sends ech requests to the specified host on the command line. List responses.
- hostname: Tells user the host name of the computer
- traceroute: Shows the route of a packet. Lists the series of host that the packet passes though to the destination.
- tracepath: same as traceroute, but won't take complicated options
- findsmb: list info about machines that respond to SMB queries
- nmap: queries machines as to whether they are up and what ports are open
- ifconfig: lists all information on all network devices currently up
- ifconfig eth0 down: takes eth0 down, and won't reciece or send till back up
- ifup: brings any device back up. ifup eth0 will bring eth0 if it is off
- ifdown: brings down any device that is currently down
- ifcfg: configures a particular interface
- route: displys or modifies the routing table
- netstat command: displays network connections, routing tables, interfaces and more.
- ss -s: displays currently established, closed, orphaned and waiting TCP sockets.
- netstat -s: same as ss -s
- ss -l: displays all open network ports
- netstat -tulpn: same as ss -l
- ss -t -a: displays all TCP sockets
- netstat -nat:same as ss -t -a
- ss -u -a: displays all UDP sockets
- netstat -nau: same as ss -u -a
- nslookup: queries DNS lookup name
- telnet: communicate with another hostname
- finger: view user information
- ftp: File Transfer Protocol. Standard network protocol to transfer computer files between a client and server
- rsync: copies files across a network
- scp: securly copies files and directories between remote hosts wihout starting an FTP session or logging into the remote system, uses SSH to transfer data
- ssh: program for loggin into a remote machine and for executing commands on a remote machine. Replaces rlogin and rsh


@{_("Mod dashboard")}
@if current_user.can_admin:@{_("Currently viewing all subs as Admin")}
@end
@for sub in subs:
@end
@{sub['name']}
| @{_("Subscribers")} | @{sub['subscribers']} |
| @{_("Open Reports")} | @{sub['open_reports_count']} |
| @{_("Closed Reports")} | @{sub['closed_reports_count']} |


You might win, but lets be honest, you probably won't. ¯\_(ツ)_/¯
Find Out MoreBuilding Tips, Accuracy Training, and More with our in depth tutorials!

You can't build somebody to death!
All the hottest spots on the map.
Gun Rarities, Traps, and More!
Message us to set up some games!
123-456-6789


– Comment for the code – MySQL Mode for CodeMirror2 by MySQLTools http://github.com/partydroid/MySQL-Tools SELECT UNIQUE `var1` as `variable`, MAX(`var5`) as `max`, MIN(`var5`) as `min`, STDEV(`var5`) as `dev` FROM `table` LEFT JOIN `table2` ON `var2` = `variable` ORDER BY `var3` DESC GROUP BY `groupvar` LIMIT 0,30;
MIME types defined: text/x-mysql
.


All members of the Slack community are required to agree with the following code of conduct. Moderators will enforce this code. We expect cooperation from all participants to help ensure a safe environment for everybody.
Reach out to @klamping via direct message or via email at<EMAIL_ADDRESS>Our community is dedicated to providing a harassment-free experience for everyone, regardless of gender, gender identity and expression, age, sexual orientation, disability, physical appearance, body size, race, ethnicity, religion (or lack thereof), or technology choices. We do not tolerate harassment of participants in any form. Sexual language and imagery is not appropriate for any channel. Participants violating these rules may be sanctioned or expelled from the community at the discretion of the admins.

Participants asked to stop any harassing behavior are expected to comply immediately.
Sponsors are also subject to the anti-harassment policy. In particular, sponsors should not use sexualised images, activities, or other material.
If a participant engages in harassing behavior, the organisers may take any action they deem appropriate, including warning the offender or expulsion from the community.
If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact a member of moderator team immediately.


ShowMyScreen
Stop screen sharing
Start screen sharing
PORT:
FPS:
Save
Files sharing
Open file
or grad and drop file here.


"Chand's Handyman Services did an awesome job. Very pleased with delivery of bin. Keith was courteous, precise and efficient and safety conscious. Bin was placed exactly where we wanted it. The driver did a great job getting in and out of our lane way. The same thing happened when he picked it up. Yes, I would use your service again and will tell other folks as well. Keep up the good work!"
- S.L.
" Chand's Handyman Services is the most valuable business resource we have EVER seen. I will let my mum know about this, she could really make use of Chand's Handyman Service!Chand's Handyman Services has completely surpassed our expectations."
- Floris V.
"I'm good to go. Chand's Handyman Services are both attractive and highly adaptable. I will refer everyone I know."
- Carlin B.
"Chand's Handyman Services impressed me on multiple levels. I would gladly pay over 600 dollars for him. We can't understand how we've been living without Roar Cycles."
- Eve V.


Format Class
The Format class helps you convert between various formats such as XML, JSON, CSV, etc.
Configuration
The Format class is configured through the fuel/core/config/format.php configuration file. It is already populated with a default configuration group. You can override this configuration by copying this config file to your application config directory, and modify that file as needed.
The following configuration settings can be defined:
CSV
| delimiter |
string |
','
|
The field delimiter |
| enclosure |
string |
'"'
|
The enclosure character |
| newline |
string |
'\n'
|
The newline character used by to_csv() method |
| escape |
string |
'\\'
|
The escape character |
By default, these configuration settings are used both for import and for export of CSV data. In case you need to
configure different settings for either import or export, you can an array key for it, and move the configuration
in there. The default configuration file already has this setup for you.
| regex_newline |
string |
'\n'
|
The newline character used by regex to convert input data |
| enclose_numbers |
bool |
true
|
If false, numbers will not be enclosed. If true, numbers will be enclosed too |
XML
| basenode |
string |
'xml'
|
XML basenode name |
| use_cdata |
boolean |
false
|
Whether to use CDATA in nodes |
| bool_representation |
mixed |
null
|
How booleans must be represented (0/1 vs false/true) |
JSON
| options |
integer |
JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP
|
json_encode() options |
Be aware that the result of some combinations are unpredicable. For example, if you have CSV data without enclosure characters, no headings, and embedded newline characters in the first row, the correct number of fields in the file can not be calculated.
forge($data = null, $from_type = null, $params = null)
The forge method returns a new format object. $from_type supports 'xml', 'yaml', 'csv', 'json', 'serialize' and 'xml:ns'. 'xml:ns' allows you to parse fully namespaced-xml. When $from_type is not specified, $data will be delivered as it is.
| Static |
Yes |
| Parameters |
| Param |
Default |
Description |
| $data |
null
|
Data to be converted. |
| $from_type |
null
|
Format of the data provided. |
| $param |
null
|
Optional parameter to be passed on to the converter. |
|
| Returns |
Fuel\Core\Format Object |
| Example |
$array = array('foo' => 'bar');
print_r(Format::forge($array));
// Returns
Fuel\Core\Format Object
(
[_data:protected] => Array
(
[foo] => bar
)
)
|
When converting from CSV format, you can pass false as $param to indicate the CSV source does not contain any headers. If so, the end result will be an indexed array.
to_array($data = null)
The to_array method returns the given data as an array. Do not call this directly, use the forge method as described in the example.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $data |
null
|
Data to be converted. |
|
| Returns |
array |
| Example |
$json_string = '{"foo":"bar","baz":"qux"}';
print_r(Format::forge($json_string, 'json')->to_array());
// Returns
Array
(
[foo] => bar
[baz] => qux
)
|
to_xml($data = null, $structure = null, $basenode = 'xml', $use_cdata = false)
The to_xml method returns the given data as an XML string. Do not call this directly, use the forge method as described in the example.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $data |
null
|
Data to be converted. |
| $structure |
null
|
Object of class SimpleXMLElement. |
| $basenode |
"xml" |
Basenode of XML markup. |
| $use_cdata |
false |
Whether to use CDATA in nodes. |
|
| Returns |
string |
| Example |
$array = array('foo' => 'bar', 'baz' => 'qux');
print_r(Format::forge($array)->to_xml());
// Returns
// <?xml version="1.0" encoding="utf-8"?>
// <xml>
// <foo>bar</foo>
// <baz>qux</baz>
// </xml>
|
to_csv($data = null, $delimiter = null, $enclose_numbers = null, array $headings = array())
The to_csv method returns the given data as a CSV string. Do not call this directly, use the forge method as described in the example.
| Static |
No |
| Parameters |
| Param |
Default |
Description |
| $data |
null
|
Data to be converted. If not given, the input of forge() is used. |
| $delimiter |
null
|
CSV field separator. If not given, the configured default is used. |
| $enclose_numbers |
null
|
If false, number will not be enclosed. If true, numbers will be enclosed too. If not given, the configured default is used. |
| $headings |
array()
|
Array of CSV fieldnames. If not given, the fieldnames will be based on what is defined in the first row of the data array. |
|
| Returns |
string |
| Example |
$json_string = '{"foo":"bar","baz":"qux","nr":1}';
print_r(Format::forge($json_string, 'json')->to_csv(null, null, false));
// Returns
// "foo","baz","nr"
// "bar","qux",1
$json_string = '{"foo":"bar","baz":"qux","nr":1}';
print_r(Format::forge($json_string, 'json')->to_csv(null, null, false, array('this', 'that', 'num')));
// Returns
// "this","that","num"
// "bar","qux",1
|
to_json()
The to_json method returns the given data as a JSON string. Do not call this directly, use the forge method as described in the example.
| Static |
No |
| Returns |
string |
| Example |
$array = array('foo' => 'bar', 'baz' => 'qux');
print_r(Format::forge($array)->to_json());
// Returns
// {"foo":"bar","baz":"qux"}
|
to_serialized()
The to_serialized method returns the given data as a serialized string. Do not call this directly, use the forge method as described in the example.
| Static |
No |
| Returns |
string |
| Example |
$array = array('foo' => 'bar', 'baz' => 'qux');
print_r(Format::forge($array)->to_serialized());
// Returns
// a:2:{s:3:"foo";s:3:"bar";s:3:"baz";s:3:"qux";}
|
to_php()
The to_php method returns the given data as a PHP representation of the data in a string. You could pass this into eval() or use it for other crazy things.
| Static |
No |
| Returns |
string |
| Example |
$array = array(1, 2, array('a', 'b', 'c'));
print_r(Format::forge($array)->to_php());
// Returns
Array
(
0 => 1,
1 => 2,
2 => array(
0 => 'a',
1 => 'b',
2 => 'c',
),
)
|


Blabla stuff about what this game mode is. You pick community-voted favorites
Blabla stuff about what this game mode is. The daily submitted pics. Harder, more random. Daredevil option.
Have you considered a career in globetrotting?


Our Pricing
Incredibly powerful, surprisingly affordable.
Choose A Plan
Most Popular
Professional
- Rate up to 1000 songs
- Generate monthly rating report
- Share with up to 25 friends
$9.95/month
Best Value
Ultimate
- Rate unlimited songs
- Generate weekly reccomendation playlists
- Share with unlimited friends
$199.95/month


| Systolic: | ||
| Diastolic: |
| Name | |
| Age: | |
| Height: | |
| Weight: | |
This is a simple SPA (Single Page Application) to demonstrate the following technologies...
Data entered on tab 2 "Data Entry" is saved to the browser's local storage as a JSON String (it can be viewed in Chrome Web Tool under the Resources > Local Storage > XarkosBloodPressureReadings.
When tab 3 "Data Chart" is clicked the embedded Highcharts is redrawn with the stored data.
Most of tab 4 "Configuration is just for show. The Clear Data button however will remove the saved data from the browser and reset the chart.


class: center, middle, inverse, title-slide # Introduction to causal inference ### Bénédicte Colnet ### Lundi 29 Mars 2021 --- # Outline ## Purpose of this class - Give you an insight of a causal (or non-causal) interpretation of data; - Ideas for practical approach. ## Ressources **Books** - *Mostly Harmless Econometrics*, Joshua Angrist, 2008 - *The Book of Why, Judea Pearl*, Judea Pearl, Dana Mackenzie, 2018 **Talks** - One of Esther Duflo's talks - Jonas Peter's class on Youtube - *A Crash Course in Causality* on Coursera --- # Correlation is not Causation (1) First, because it can be spurious,  --- # Correlation is not Causation (2) Second, because correlation can just reflect an association,   Source: Figure published in Messerli (2012) Chocolate Consumption, Cognitive Function, and Nobel Laureates, New England Journal of Medicine  --- # Causality A word we all know, >*As a human being, you are already innately familiar with causal inference’s fundamental concepts. Through sheer existence, you know what a causal effect is, understand the difference between association and causation, and you have used this knowledge consistently throughout your life.* > Miguel Hernan, Causal inference, What if? -- Is the answer in data? >*“[...] falsely believing that the answers to all scientific questions reside in the data, to be unveiled through clever data-mining tricks. Much of this data-centric history still haunts us today. We live in an era that presumes Big Data to be the solution to all our problems. Courses in “data science” are proliferating in our universities, and jobs for “data scientists” are lucrative in the companies that participate in the “data economy.” But I hope with this book to convince you that data are profoundly dumb.”* > Judea Pearl, The Book of Why: The New Science of Cause and Effect --- # Why do we care? Many of the *questions* you might encounter are causal. -- - *Social sciences*: Why do people behave in the way they do? - *Health sciences*: Why do people get sick? Which medicine can cure them? -- Which is **totally different** as: - *Social sciences*: Can I predict the behavior of this individual? - *Health sciences*: Can I predict the probability of this individual to get Alzheimer with the genotype? -- > 📚 The second type of question is prediction (i.e, Machine Learning). -- To convince yourself, remember the linear regression class. - The model could predict `\(Y\)` with `\(X\)`... - ..but it was hard to interpret coefficients, - ..and even harder to go from variable importance to causality! --- # Machine Learning VS Causal inference Most *Artificial Intelligence* tasks only care about **prediction** *Example*: predicting whether a photo is of a dog or a cat is vital to how Google Images works, but it doesn't care what element in a photo of a dog or a cat makes it unambiguously recognizable as being a dog or a cat -- Let's take the rooster example:  Source: J. Pearl, and for image https://www.trialrun.us/ -- **Causal inference**: We want to predict what would happen if we change the system. *What would happen if I give a somnifer to the rooster?* --- # Examples of causal questions - Is there an effect of financial incentives on teacher performance (measured both directly by teacher absences and indirectly by educational output measures, such as average class test scores)? (Esther Duflo's work) - How does the type of school affect a child's later achievements? - Do the students succeed because of the new teacher? Had the students remained with the old teacher, wouldn't they have succeeded - Effect of reducing car traffic on air pollution - Do job training programs raise average future income? - Is there an effect of social pressure on voter participation? Neighbors mailing: the recent voting record of everyone on their households would be sent to all their neighbors. - What is the effect of hydroxychloroquine on mortality? --- # Concept of causality __Causality__: what are we talking about? - We say that `X` *causes* `Y` - if we were to intervene and *change* the value of `X` ***without changing anything else***... - then `Y` would also change ***as a result***. > Example `X = sunshine` and `Y = a singing rooster`. ⚠ It does **NOT** mean that `X` is the only factor that causes `Y`. -- -- .pull-left[ Some people wants to look what causes what (which `X` causes `Y`).

J. Pearl

 ] -- .pull-right[ Other people wants to measure the impact of `X` on `Y`.

D. Rubin

 ] --- # Lung cancer (1) Does smoking cause lung cancer?  Credits: cancer.org and [rapidshift](http://www.rapidshift.net/how-scientific-causation-came-to-be-solidified-in-the-tobacco-use-vs-lung-cancer-death-rates-era-relevance-to-climate-skeptics-now/) --- # Lung cancer (2) Today the answer seems obvious, but back to the 1950's it was a debate with a big increase in deaths which is happening after a fast growth in cigarette consumption. -- But at the time: - Other possible causes, such as general greater air pollution; - And smokers were not randomly selected, but had a certain typical age, education, income, etc. How can we conclude? -- 💡 Note that in the current media similar debats exist, for example with bees and neonicotinoids, polyphenol a and hormones, round-up, others. --- # Class size Another example is class size and student's achievement. What would you do or not do with such data? .pull-left[

DEPP

 ] -- .pull-right[

DEPP

 ] --- # Randomized Experiments - Often called **R**andomized **C**ontrolled **T**rials (RCT). - The first RCTs were conducted a long time ago (18th and 19th century), mainly in **Medecine**. - In the beginning of the 20th century they were popularized by famous statisticians like **J. Neyman** or **R.A. Fisher**. - Since then they have had a growing influence. - As for economics, the **2019 Nobel Price in Economics** was awarded to three exponents of RCTs, [Abhijit Banerjee, Esther Duflo and Michael Kremer](https://www.economist.com/finance-and-economics/2019/10/17/a-nobel-economics-prize-goes-to-pioneers-in-understanding-poverty), "for their experimental approach to alleviating global poverty". --- # Potential outcome framework Treatment `\(W\)`, `\(X\)` covariates, `\(Y\)` the outcome, so that: `\(\left(X_{i}, W_{i}, Y_{i}(1), Y_{i}(0)\right) \in \mathcal{X} \times\{0,1\} \times \mathbb{R} \times \mathbb{R}\)` -- 🤨 If I want to know the effet of `\(W\)` on the subect `\(i\)`, what is this quantity? -- `$$\Delta_i \triangleq Y_i(1) - Y_i(0)$$` -- Sadly, we have a missing problem: `\(\Delta_i\)` never observed (only observe one outcome/indiv) 😅 --

Typical data

 --- # Target quantity Rather that the individual effect, another quantity of interest is the average treatment effect, the average difference of the potential outcomes over the **entire** population.

A counterfactual world

 -- `$$\tau = \mathbb{E}[Y(1) - Y(0)] = \mathbb{E}[Y(1)] - \mathbb{E}[Y(0)]$$` > In general `\(\mathbb{E}[Y(1) - Y(0)] \neq \mathbb{E}[Y | W=1] - \mathbb{E}[Y | W=0]\)`, except in RCT --- # RCT: the ideal case Within the RCT, we have: `$$\mathbb{E}[Y(1) - Y(0)] = \mathbb{E}[Y | W=1] - \mathbb{E}[Y | W=0]$$` `\(\Rightarrow\)` Although `\(\Delta_i\)` never observed, `\(\tau\)` is identifiable and can be estimated --  --- # And for other data? Usually, `\(\mathbb{E}[Y(1) - Y(0)] \neq \mathbb{E}[Y | W=1] - \mathbb{E}[Y | W=0]\)`. What can we do? > 📚 Note that other type of data are called observational data, or real world data. In fact, these are the most common data. -- Usually data are confounded, that is a third variable is related to both the exposure of interest `W` and the response `Y` Examples: - being in a small class at kindergarten and being in REP's school, - or if giving HCQ mostly to younger patient. -- Ideally we would like to "gather" all these variables, match them, and emulate something that looks like a RCT, because a RCT is comfortable 😌. -- Mathematically, we want a conditional independence `$$\left\{Y_{i}(0), Y_{i}(1)\right\} \perp W_{i} \mid X_{i}$$` > 🤓 This is called the unconfoundedness assumption, but don't worry if you do not precisely understand the mathematic notation. --- # Example Note that this is why in RCT you will often find a so called **Table 1** to show that the covariate balancing is good, so that randomization is achieved.  --- # In practice There are several solutions, and will only consider two of them. > 🤔 Before, have you any intuitive suggestion? -- - The most intuitive one: **Matching** > Pair each treated (resp. untreated) observations with one or more similar untreated (resp. treated) patient -- - A less intuitive one, but easier in practice: **Weighting**, also called the inverse-propensity weighting (IPW) > Weigthing groups so that control look like treated, meaning that they have the same distribution --- # Matching (1)  Examples from *Crash course of causal inference*, Coursera --- # Matching (2)  Examples from *Crash course of causal inference*, Coursera --- # IPW  Examples from *Crash course of causal inference*, Coursera --- # IPW: implementation ```r # p are the propensity scores ipw <- function(dataset, p) { W <- dataset$W Y <- dataset$Y G <- ((W - p) * Y) / (p * (1 - p)) tau.hat <- mean(G) se.hat <- sqrt(var(G) / (length(G) - 1)) c(ATE=tau.hat, lower_ci = tau.hat - 1.96 * se.hat, upper_ci = tau.hat + 1.96 * se.hat) } ``` --- # Practical session on your data Remember, you are asked to think about the gender and salaries in your data. gender | Mean of ANNUAL column (in k) | --------|:---------: Female | 48.7 | Male |55.17 | ```r t.test(salaries[salaries$SEX == "FEMALE", "ANNUAL"], salaries[salaries$SEX == "MALE", "ANNUAL"]) ``` ``` ## ## Welch Two Sample t-test ## ## data: salaries[salaries$SEX == "FEMALE", "ANNUAL"] and salaries[salaries$SEX == "MALE", "ANNUAL"] ## t = -43.229, df = 99436, p-value < 2.2e-16 ## alternative hypothesis: true difference in means is not equal to 0 ## 95 percent confidence interval: ## -6772.853 -6185.337 ## sample estimates: ## mean of x mean of y ## 48695.36 55174.46 ``` --- # An example Let's take a subgroup with a majority of women, such that `JC.TITLE == FAMILY & PROTECT SCVS SUPR II` gender | Mean of ANNUAL column (in k) | --------|:---------: Female | 62.001 | Male |60.097 | In this subgroup, the difference in means is 1904 (CI:617 3192) where women are more paid. -- This is not a so easy problem 🤯 What do you propose? --- # Matching (1) ```r library(MatchIt) ``` ``` ## Warning: package 'MatchIt' was built under R version 3.6.2 ``` ```r m.out <- matchit(SEX ~ RACE+EMPTYPE+NAME+JC.TITLE, method = "exact", data = salaries) salaries.matched <- match.data(m.out) # # you can check that each subgroup is the same respectively to the covariates chosen to match engineer <- salaries.matched[salaries.matched$subclass == 10,] ``` --- # Matching (2) ```r dim(salaries.matched) ``` ``` ## [1] 108454 17 ``` ```r # salaries.matched %>% # group_by(SEX) %>% # select(one_of(covariates_to_keep)) %>% # summarise_all(funs(mean)) ``` --- # Matching (3) Estimating effects and standard errors for continuous outcomes after full matching involves including the matching weights in the outcome model with a proper error evaluation. ```r fit1 <- lm(ANNUAL ~ SEX, data = salaries.matched, weights = weights) coeftest(fit1, vcov. = vcovCL, cluster = ~subclass) ``` ``` ## ## t test of coefficients: ## ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 53262.207 1335.221 39.8902 < 2e-16 *** ## SEXMALE 214.735 95.007 2.2602 0.02381 * ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ``` --- ```r # p_rf = cf$W.hat # # hist(p_rf, main = "Histogram: Regression Forest Propensity Scores" # , xlab = "Propensity Score", col = "cornflowerblue", las = 1) ``` ```r # plot(smooth.spline(x = p_rf, y = salaries_encoded$SEX, df = 4) # , xlab = "Propensity Score (Random Forest)", ylab = "Prob. Treated (W)" # , col = adjustcolor("black", alpha.f=0.4), pch=19, las = 1) # abline(0, 1, lty="dashed") ``` ```r # G <- ((salaries_encoded$SEX - p_rf) * salaries_encoded$ANNUAL) / (p_rf * (1 - p_rf)) # tau.hat <- mean(G) # se.hat <- sqrt(var(G) / (length(G) - 1)) # result <- c(ATE=tau.hat, lower_ci = tau.hat - 1.96 * se.hat, upper_ci = tau.hat + 1.96 * se.hat) # result ``` ```r # model <- lm(ANNUAL ~ . * SEX, data = salaries_encoded[, c("RACE", "EMPTYPE", "NAME", "ANNUAL", "SEX")]) # tau.hat = as.numeric(coef(model)["SEX"]) # se.hat = as.numeric(sqrt(vcovHC(model)["SEX", "SEX"])) # result_ols <- c(ATE=tau.hat, lower_ci = tau.hat - 1.96 * se.hat, upper_ci = tau.hat + 1.96 * se.hat) # result_ols ``` --- # Credits A **huge** thanks to people sharing their supports, and more particularly to: - Julie Josse and Imke Mayer's slides - Florian Oswald's [slides](https://raw.githack.com/ScPoEcon/ScPoEconometrics-Slides/master/chapter_causality/chapter_causality.html#66) - Coursera, *Crash course of causal inference* And all the ressources mentioned on the first slide.


Cancel Bayelsa, Kogi elections, Secondus tells INEC
by Success Nwogu…Seeks travel ban for electoral violence perpetrators
Success Nwogu, Abuja
The National Chairman of the Peoples Democratic Party, Uche Secondus, on Thursday, called on the Independent National Electoral Commission to cancel the November 16 governorship elections in Kogi and Bayelsa States.
He also called on the United Kingdom, United States and other members of the international community to ban perpetrators of electoral violence in the two states from their countries.
He spoke during a media briefing in Abuja.
Details later.


Strange Case of mixed personalities
Like many web developers I find blogs, or more specifically blog engines, to be a sore subject. Many of us have worked with a wide variety of CMS (content management system) or blog engines, things like WordPress, Drupal, Joomla, or countless others, over the course of our careers. We have had heated debates over which is a framework, a library, a CMS, or a blogging platform. We have explored, hacked, created plugins, and at some point wrangled these monstrous codebases into something that halfway resembles something nice. And it is all about the lie: anyone can update the site now. Which is not completely a lie, it is more of a half truth - anyone can completely destroy your hard work with just a few animated unicorn gifs and 16 different colors for text. The worst part about using a canned blogging system is you have to use it.
The other side to this story is most of us have written many, maybe dozens, of custom CMS solutions for clients over the years. We’ve developed sites and apps with scaffolding, simple CRUD management, full blown CMSes, blog solutions, and sometimes the works. I’ve personally written them in several languages and frameworks, more than I’d care to list. My last blog was a custom CMS written in PHP using Kohana, and while I loved it, like most side projects I just did not always have the time to keep it up to date. For the past 18 months or so, I have been writing Ruby almost exclusively - and on my short list has been replacing the blog I never use with a new one I’ll never use, only this time in ruby. I know, not the best of goals.
So I am stuck at a crossroads: do I continue to reinvent the wheel knowing I’ll never have the time to do it right, or do I give in and use a big, bloated, crappy piece of software to run a blog no one will ever read?
The devil is in the details
For those of you that don’t know, Tom Preston-Werner (of GitHub fame) created a blog engine that GitHub Pages uses called jekyll. According to the readme file:
Jekyll is a simple, blog aware, static site generator.
At first glance you may think this is some hipsterware for blogging old school. On the contrary, jekyll overcomes many problems by being simple, and static.
A dynamic page is one that is backed by server-side code that is executed and renders a page for each request. This has many advantages that stem from having page templates populated with data from databases that are managed by even more dynamic pages. Server side languages like php, ruby, python, etc. are well suited for creating rich web applications, and many blogs fit into that category. There are disadvantages also: servers, maintenance, upgrades, security - these things can cost time and money. There is also scalability: if a page or blog becomes too popular, the cost of more databases and web servers becomes a burden, and caching solutions are required.
So if you are following along, to run a self-hosted blog you will need servers, databases, and eventually caching. Caching can be as simple as publishing all your posts as static html files and serving them on a CDN or something like Amazon’s S3, or as complex as caching servers that do all of this stuff for you, for a price.
Doctoring jekyll saves my hide
Jekyll solves this entire problem by skipping the dynamic step and jumping straight to the static page part.
The part with static html pages, just like 1996.
Only better. Way better.
Unlike anything 1996, jekyll is blog aware. It is scriptable through Liquid and extendable via plugin system. Best of all, plugins are just ruby scripts, so making your own is quite simple. To get a jekyll blog up and running, all you need to do is install jekyll, create some posts, a layout, and voila: you have a blog. It can get much more complex, but from 10,000 feet, jekyll is infinitely easier than any of the big blogging systems for a personal style blog.
What jekyll gives you for free is an incredibly fast, infinitely scalable, fun and easy to maintain blog that can be hosted for free on GitHub, on AWS S3, or anywhere html is served.
It took me a few hours to wrap my head around Liquid. It took a day of poking around the code and generating fake posts to get everything looking right. In the end I think jekyll solves my split personality issue: I have a blog engine that I have complete control over that does not get in my way, and it enables me to write like a developer.
I am happy to say this site is powered by jekyll. Thanks to all the contributors for such a great product.
comments powered by Disqus
Related Posts
- 3 Day Startup San Antonio at Geekdom (Summer 2013)
- Introduction to Graph Databases using Neo4j
- The day the music went blind
- Darth Vader Dreams of Electric Sheep
- Homemade Ginger Ale that is so easy (even a 7 year old can do it)
- HTML5 Snake source code walkthrough
- My first game - HTML5 lightcycles
- NoNews Part II - The Source
- NoNews (is Good News!)


Welcome to the Financial Independance & Literacy Education application. Our goal is to help you reach your financial goals through the education of an intimidating topic.
Please select the button to begin.
B E G I N


{# Copyright 2020 TIND Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -#} {% macro do_blocks(container) %} {% for block in container.blocks -%} {% if block.type == "text_block" %}
{% for line in block.lines -%} {% for component in line.components if component.type == "string" -%} {{- component.content -}} {% endfor %} {% endfor %}
{% elif block.type == "container" -%}


By signing up for CuseHacks you agree to abide by the Major League Hacking Code of Conduct.
We participate in Major League Hacking (MLH) as a MLH Member Event. You authorize us to share certain application/registration information for event administration, ranking, MLH administration, pre and post-event informational e-mails, and occasional messages about hackathons in line with the MLH Privacy Policy.


--- layout: post status: publish published: true title: Serialization Formatters - Part 3 author: display_name: Tomas Restrepo login: tomasr email<EMAIL_ADDRESS>url: http://winterdom.com/ author_login: tomasr author_email<EMAIL_ADDRESS>author_url: http://winterdom.com/ wordpress_id: 406 wordpress_url: http://winterdom.com/2002/05/serializationformatterspart3 date: '2002-05-18 12:41:59 +0000' date_gmt: '2002-05-18 12:41:59 +0000' categories: - ".NET" tags: [] comments: - id: 298 author: yuval author_email<EMAIL_ADDRESS>author_url: '' date: '2002-07-10 13:19:16 +0000' date_gmt: '2002-07-10 13:19:16 +0000' content: |
hi there
i see you're a 'shark' in these matters, and i'd be thrilled if u could give me some advise.
i'm having some trouble with a server sending a large amount of data in response to a client call.
i'm trying to solve this via custom sinks.
i've already written the IRemotingFormatter (a cute code - using zlib's stream compression component over the result of BinaryFormatter).
i'm having a little trouble writing the sink, though:
- i see under the tag i need to use a sinkprovider class (?? why did they call it 'formatter' then?) what is it supposed to do? only create my custom sink and call it?
- what kind of sinks do i need to create? from what should they inherit or implement?
thanks
Formatters and Remoting
It's pretty obvious that Serialization Formatters are not only meant to aid in
object persistence, but also play a very important role in the marshaling of
objects across remoting boundaries.
Overall, when I look at the extensibility of the Remoting framework in .NET,
I'm throughly impressed. The MS people who worked on it did a very fine job in
making the framework as extensible as possible. However, there are some raw
spots, and how Serialization Formatters hook into the remoting infrastructure
is, imho, one of them.
The extensibility model of remoting is, at its very core, based on channels and
channel sink chains, developed on top of a set of interfaces like
IClientChannelSink and IServerChannelSink, and chains of sink providers that
act as class factories for the sinks themselves (based on IClientChannelSinkProvider
and IServerChannelSinkProvider
).
On the other hand, Serialization formatters are based on the implementation of
the IFormatter
interface; however, there's also the
not-so-well-known IRemotingFormatter
interface. The definition of
the two are very much alike, except IRemotingFormatter's
method
take an extra Header[]
argument. Both SoapFormatter and
BinaryFormatter implement the IRemotingFormatter
interface.
What's not so apparent is just how formatters plug into the remoting process.
If you look at the framework docs, you'll see that this is done a set of
classes implementing the IClientFormatterSink
interface (on the
client side), and the IChannelSinkBase/IServerChannelSink
interfaces
on the server side. IClientFormatterSink
is just an interface
combining the IChannelSinkBase
, IClientChannelSink
and
IMessageSink
interfaces.
As you can see, this just means that, in essence you have to implement two
channel sinks of your own to plug your custom formatter into the remoting
infrastructure, not to mention two extra sink provider classes! Where does that
leave the IFormatter
and IRemotingFormatter
interfaces?
Nowhere. Absolutely nowhere.
So here's where my rant is aimed: Why take the trouble to define the interfaces
if you're not going to use them anyway? Makes no sense to me. It just
seems like too much trouble writing full-fledged channel sinks just to do what
should be a much simpler task.
But that's not the worst part. The worst part is that formatter sinks are not really
full-fledged channel sinks. In reality, there are only two things in the IClientChannelSink
implementation of a formatter sink that are actually called by the runtime:
NextChannelSink, and AsyncProcessResponse(). The others, you can leave
unimplemented. Now, to me, somehow, this doesn't seem quite right. Thanks to
Ingo, I know understand why it was done this way. I was talking to him
earlier to day and I'm going to quote him on this, since he puts it much better
than I ever could:
If you question this design, you'd have to question the complete separation in
IMessageSink, IClientChannelSink, IServerChannelSink and maybe even
IDynamicSink - I tended to do this [question it] in the past as well but I
somehow changed my attitude towards it ;-)I now agree with MS' designers that it's a Good Thing to have two interfaces,
whereas one works on messages and the other works on stream/headers. So ...
when having two interface, you necessarily have one class which provides for
the transition between those two. Well, that's the IFormatterSink ;-).In front of the formatter, you've got IMessageSinks and after it you work with
IClientChannelSinks. However, to keep this consistent, the reply simply _has_
to be handled by IClientChannelSink for a formatter. Remember:
IClientChannelSink means dealing with stream/header wheras IMessageSink means
dealing with Messages ;-)
He's obviously got a point here. I can't, however, keep away the feeling that
something's smells fishy here... I still believe it could have been done
differently.
Ingo did point out to me something extremely important:
However, there should be an IMessageSinkProvider interface ...
this really bugs me. You have to create an IMessageSink via an
IClientChannelSinkProvider, thereby leading to a must-have implementation of
IClientChannelSink as well. This interface's implementation will quite likely
only throw exception on each method because it's programmed to deal with
messages instead of streams and thereby has to be placed in front of the
formatter.
I totally agree with this.
If you're still wondering why write channel sinks in the first place: Well, if
you look at the formatter sinks for the two default formatters in the framework
you'll quickly realize why: They need to manipulate transport headers!.
This, quite honestly, could have been achieved without the need for full
channel sink implementations. Instead, MS could have just added generic
formatter sinks that could be instructed to use a given IFormatter or
IRemotingFormatter implementation, and added a new interface to allow them to
manipulate the transport headers, if needed
. This would have taken a lot of trouble of writing remoting formatters away.
And no, IRemotingFormatter
is not the interface to use
here, for several reasons. For starters, IRemotingFormatter implementations
cannot change the headers passed in to them (well, at least they can't add new
ones). There's also a slight impedance mismatch between the Header[]
argument pass in to IRemotingFormatter
and the ITransportHeaders
interface used in channel sinks to deal with headers. So, what purpose does IRemotingFormatter
server in real life? As far as I can see, none at all. At least I couldn't spot
any place where its methods are actually called... Perhaps I missed something,
and if I did, I'd love to hear about it!
One of the downsides of all this is that it leads to a tight coupling between a
given formatter and the channel underneath, via the formatter sink. This can be
easily witnessed on the
Rotor sources where the default formatter sinks actually check what
channel they are working on top of, and adjust their behavior based on
it [1]. Or even worse, does things that should've been left to one of the
transport sinks underneath, like headers["__RequestVerb"] =
"POST";
[1] This is required, in part, by some of the protocols, like SOAP, which
require the transport headers manipulated. For example, the HTTP result code
might need to be changed if the server's sending a fault or an actual
respose...