This is a site to help you prepare for a PyCon 2015 Security Tutorial called Getting Comfortable With Web Security.
If possible, bring a computer with Python installed, and with virtualenv installed.
If you don't know how to install virtualenv, please show up 15 minutes before the tutorial start time so we can help you.
By the time you see this page, you should have already received an invitation to the petwitter Slack chat system. Join it!
If you haven't received one, that's OK. Send an email to<EMAIL_ADDRESS>If you're in one, then here are your essential links:
Your small-group lead is asheesh.
If you're in two, then here are your essential links:
Your small-group lead is lettamercurial.
If you're in three, then here are your essential links:
Your small-group lead is kyoki.
If you're in four, then here are your essential links:
Your small-group lead is Mariatta.
If you're in five, then here are your essential links:
Your small-group lead is Julia.
If you're in six, then here are your essential links:
Your small-group lead is geofft.
If you're in seven, then here are your essential links:
Your small-group lead is phildini.
If you're in eight, then here are your essential links:
Your small-group lead is jacinda.
If you're in nine, then here are your essential links:
Your small-group lead is wirth.jason.
If you're in ten, then here are your essential links:
Your small-group lead is willingc.
If you're in eleven, then here are your essential links:
Your small-group lead is ?.
For the fun of it, I figured we can use my petwitter.com domain name. This site has no relationship with with Twitter, Inc.


Rounded Decorative Avatar is the default type for avatar.
In order to change background color of the avatar, developers can pass [color]
input property.
Developers can change shape of the avatar to a circle by providing [circle]="true"
input property.
Avatar component supports displaying icon instead of abbreviation.
To display icon, developers need to pass [glyph]
input property.
To provide an image resource (url or data:base64) use the [image]
property.
Interactive Avatars have hover, active, focus and disabled states.
To make avatar component interactive, developers need to pass [interactive]="true"
input property.
To make avatar disabled, developers need to pass [disabled]="true"
input property.
To provide alternative icon options by priority use the [alterIcon]
input property.
There's few options can be set the order priority, Avatar component will process them and display first
successful option if [image]
url fails to load:
content
- Avatar will display first letter from string, provided as component contentalt
- Avatar will display first letter from string, provided as alt attributebackup
- Avatar will display image, provided as backupImagedefault-icon
- Avatar will display user glyph iconAlternative options can be passed the following way alterIcon="content|alt|backup|default-icon"


Abel Sanchez and John R. Williams
Make your www folder world viewable
To enable directory listing:
1) Create a .htaccess.mit file if it doesn't already exist
2) add the line "Options +Indexes"


Super awesome Database Shizzle
ID:
Name:
Description (Optional):
URL:
State (Optional):
byId
byName
byDescription
byURL
byState
getAll
GET
POST
PUT
DELETE
Send Request!


This is the iconbar example demo page.
Click the menu-button in the sidebar to open the menu.
Note that this example shows how you could use the plugin, it is not part of the plugin and therefore not widely tested across all mayor browsers.
The icon bar on the left of this page will always be visible and clickable, even if the menu is closed.


Who we are?
Bee Social – social platform, connects commertial companies, social projects and social workers.
The Bee Social platform unites those who want to share their resources, and those who need these resources.
A platform where everyone can help the social project with their resources and social worker in exchange for cell phones - tokens.
| Date and time of purchase | Name | Sponsor | Honeycombs | How to get it | Contacts | Description |
|---|
-
Ivan Ivanov
likes9
dislikes0
rating300
-
lijn LKMl
likes9
dislikes0
rating300
-
:LKM' ;l,kM
likes9
dislikes0
rating300
-
1. Ivan Ivanov
likes999
dislikes20
rating689
-
2. lijn LKMl
likes654
dislikes30
rating300
-
6599. You
likes1
dislikes0
rating0
| # | name | review | like/dislike | appearance |
|---|---|---|---|---|
| 1 | Mark | |||
| 2 | Jacob | |||
| 3 | Larry |
| # | NPO`s name | description | make donation |
|---|---|---|---|
| 1 | Mark | ||
| 2 | Jacob | ||
| 3 | Larry |


ID |
Title |
Role |
QI Forms ? |
|---|---|---|---|
| {{ project.pk }} | {{ project.title }}
This project was last updated {{ project.last_modified | date:'M d Y' }}
{% if not project.is_approved %}
|
{{ project.role }} |
|


Step1: Click on first button.
Please move your index finger as shown in the video below for the pointer to lock on it. Once it is locked (moving consistently with your finger) move your finger over the button and move your finger at the same location to click.
Please move your index finger as shown in the video below for the pointer to lock on it. Once it is locked (moving consistently with your finger) move your finger over the button and move your finger at the same location to click.


| CLASSROOM | CORRESPONDENCE | What we do differently | CAT over the years |
ADMISSIONS ARE NOW OPEN FOR OUR BATCHES FOR CAT 2005.
Enroll early and save upto Rs. 5000/-. For details call 2623 7471.
FREE APTITUDE ASSESSMENT FROM SHARPMINDS FOR CAT, CET etc. Click Here
REGISTRATIONS OPEN FOR TEST SERIES FOR CAT 2004. click here
FORTHCOMING classroom batches for CAT 2004:
|
Batch |
Venue |
Meets on |
Timing |
| 19/21/23 July 2004 | Andheri
(W)
S.V. Road, opp. station |
Mon-Wed-Fri | 4.30 pm - 6.00 pm |
| 19/21/23 July 2004 | Andheri
(W)
S.V. Road, opp. station |
Mon-Wed-Fri | 11.45 am - 1.15 pm |
Note - Batches may be introduced in addition
to abovementioned batches. Contact our office for more
information
Course Fees:
We are offering the following Early Bird Discounts on our course fees:
| If you Enroll before.. | Course Fees | Total Amount Payable
(includes 8% service tax) |
| July 23, 2004 | 13,796/- | Rs. 14,900/- |
| July 31, 2004 | 14,722/- | Rs. 15,900/- |
| After July 31, 2004 | 15,648/- | Rs. 16,900/- |
Note : Course fees and schedules are subject to change without notice
Full Amount is to be paid on enrolment. We accept payment in Cash and by Cheque (favouring 'Sharp Minds')
Batch size:
15-20 students per batch
Course Covers:
Entire syllabus for CAT and other autonomous exams (XAT, NMAT, FMS, SCMHRD, SIBM, IIFT, IRMA, ATMA, MAT) + Group Discussion/Interview Training + MOCK Papers for XLRI, FMS and NMAT.
Addl. Option: CET capsule program covering Visual Reasoning + Inferential Reasoning + MOCK CET papers
Registrations accepted at the following address:
SharpMinds
110, Shopper's Point, 1st Floor
S. V. Road, Andheri (W)
(opp. Andheri Railway Station)
Mumbai 400058
Office Timings:
Mon - Sat - 10.00 am - 6.30 pm
Sundays - By prior appointment only
| classroom program | what we do differently | correspondence | CAT over the years |
Small batches of 15 to 20 students only
Faculty includes Prof. Murtuza Gadiwala, who is the author of the best-selling preparatory book 'MBA Entrance made easy' and is also a highly reputed instructor.
All key concepts are done twice over – initially at the basic conceptual level and later at a more difficult application level
No question administered to students in the class is left unsolved
Students are taught the ‘smart’ way of solving questions, which equips them to tackle a variety of questions under time constraint
Special focus on building up calculation speed and making students more familiar with number usage (includes Speed Math/Vedic Math training)
Periodic topic-specific tests, which ensure that all students have grasped the concepts covered before moving on to further topics
Easy access to faculty outside the classroom in order to get doubts clarified
Students are encouraged to discuss among themselves during class exercises. This enhances (group) learning
Courseware includes specially prepared handbooks for English Grammar and Maths, a specially composed hi-frequency word list, a book on idioms and their usage and a manual on Reading Comprehension
CAT replicas that give you an actual feel of the exam months before you take it. Designed along the lines of CAT over the last few years, particularly the 1999, 2000, 2001, 2002 and 2003 papers
A written summary of key events in the world, especially in the business world, that helps students prepare for Group Discussions and Personal Interviews. Course also includes exhaustive GD and PI training
and much more….
| classroom program | what we do differently | correspondence | CAT over the years |
Correspondence package for CAT-2004 (includes Test Series)
Our correspondence package for CAT-2004 includes the following:
Preparatory book for Math & Data Interpretation
Handbook on English Grammar
Workbook on English Grammar / Verbal Ability
Math - Concept Building Exercises
Reading Comprehension - Practice passages
High frequency Word List with meanings, usage and synonyms
Books on General Awareness
50 Fully Solved Section Tests: Includes short duration tests on Math, DI, RC, VA and Logic
10 Full Length practice papers
10 MOCK CAT papers based on trends in CAT in the
last few years. Also includes papers based exactly on CAT-1999, CAT-2000,
CAT-2001 and CAT-2002. The papers also expose you to likely surprise elements
in the tests + surprise paper formats
The Tests are Fully
Solved
MOCK papers for XLRI-XAT, NMIMS-NMAT and FMS
Cost of the Correspondence package for CAT - 2004
(1) Basic cost: Rs. 3400/- (+ 8% service tax.
Total amount = Rs. 3672/-)
(2) Additional cost of attending
Feedback sessions (in Mumbai only): Rs. 500/- + 8% tax Total = Rs.
540/-
You have to prepare a
Cheque/Demand Draft for an amount
equal to : Rs. 3672 + (2), as applicable.
To Order our
Correspondence material for CAT-2004:
1. Prepare a Cheque/Demand
Draft for the appropriate amount (as indicated above). The cheque should be
favouring 'SharpMinds'. In case of a draft, it should be payable at
Mumbai.
2. Fill up our Correspondence Order Form. Mail the
draft/cheque along with the printout of the form to the following
address:
SharpMinds
110, Shopper's Point, 1st Floor
S. V. Road, Andheri (W)
(opp. Andheri Railway Station)
Mumbai 400058
We will dispatch the material immediately on receipt of the cheque/draft and send you an email intimating you of the same.
Note: Kindly mention your name on the back of the
Cheque/DD
To order our correspondence
package, click
here
| classroom program | what we do differently | correspondence | CAT over the years |
The pattern of CAT in the last nine years
1995 to 1998:
Total Questions - 185
Time - 120
minutes
Verbal Ability - 50 Q
Reading Comprehension - 50 Q
Problem
Solving - 45 Q
Data Interpretation - 40 Q
In 1995 and 1996, the Verbal Ability and Reading Comprehension sections were grouped and had a time limit of 1 hour.
Similarly, the Problem Solving and Data Interpretation sections were grouped and had a time limit of 1 hour.
There was no such time limit in 1997 and 1998.
1999:
Total Questions - 165
Time
- 120 minutes
Section 1 : 55 Q - Verbal Ability - 25 Q and Reading
Comprehension - 30 Q
Section 2 : 55 Q - Problem Solving - 55 Q
Section 3 :
55 Q - Data Interpretation - 31 Q and Verbal Reasoning - 24 Q
2000:
Total Questions - 165
Time
- 120 minutes
Section 1 : 55 Q - Verbal Ability - 15 Q and Reading
Comprehension - 40 Q
Section 2 : 55 Q - Problem Solving - 55 Q
Section 3 :
55 Q - Data Interpretation - 31 Q and Verbal Ability - 24 Q
2001:
Total Questions - 150
Time
- 120 minutes
Section 1 : 50 Q - Verbal Ability - 20 Q and Reading
Comprehension - 30 Q
Section 2 : 50 Q - Problem Solving - 50 Q
Section 3 :
50 Q - Data Interpretation - 31 Q and Logical Reasoning - 19 Q
2002:
Total Questions - 150
Time - 120 minutes
Section 1 : 50
Q - Data Interpretation - 40 Q and Logical Reasoning - 10 Q
Section 2 : 50 Q - Problem Solving - 50 Q
Section 3 : 50 Q
- Verbal Ability - 25 Q and Reading Comprehension - 25 Q
2003 (re-exam format given):
Total Questions - 150
Time - 120 minutes
Section 1 : 50
Q - Verbal Ability - 25 Q and Reading Comprehension - 25 Q
Section 2 : 50 Q - Data Interpretation - 30 Q and Logical
Reasoning - 20 Q
Section 3 : 50 Q - Problem Solving
There was no section wise time limit in 1999, 2000, 2001, 2002 and 2003.
REMEMBER : It is essential that you display your competence in all the sections.
The following
trends are clearly noticeable in CAT in the last few years.
The weightage of Math based questions has increased. Until 1998, we would have 85 out of 185 questions that were Math based. This is about 45%. In 2001, 81 out of 150 questions were Math based. This is 54%. In 2002, 90 out of 150 questions. This is 60%!!
The Problem solving section would constitute 1 out of 4 sections in the test until 1998. In the last 4 years, it has been 1 out of 3 sections. The importance of this section has therefore tremendously increased (from 24% of the total paper to 33.33% of the total paper)
CAT has been getting progressively tougher and thereby low scoring by
the year. You no longer need fantastic scores of 100+ to clear the CAT. Over
the years, SharpMinds students who have cleared the CAT and made it to the
IIMs have had in the range of 75-90 attempts in the
paper.


A Shout-Out To Investors About Model Portfolios
by Ronald SurzSummary
- Most investment advisors use model portfolios to manage your assets, but they are oversimplified and inappropriate for many.
- Models are very important because asset allocation explains 100% of investment performance.
- Risk has different meanings for different ages, so age should be integrated with risk in model portfolios.
Most investment advisors use model portfolios provided by their firms or "turnkey asset management platforms" (TAMPs). These models employ Modern Portfolio Theory (MPT) to identify a family of portfolios along the efficient frontier, like the 5 portfolios shown above, ranging from high risk (1) to low (5). Modern Portfolio Theory is more than 60 years old.
The models are frequently presented in pie charts like the following:
The advisor's job is to determine your risk preference and map it into a model as shown in the following
In simple terms, the advisor matches you up to one model out of his handful of models. This is oversimplified and inappropriate for reasons we describe in this article.
This well established approach is plain and simple. The problem is that it is too simple because it ignores a critical and obvious aspect of you, namely your age. As we explain in the following, risk has different meanings for different ages. Superior model portfolios integrate risk with age. If current portfolio models were cars they would be cruising without steering wheels.
The importance of age
Your age is the best indicator of the time you have to invest, the most important factor in setting an investment strategy. Diversification is the only free lunch in investing, but its benefits work best over many years. In addition to having enough time for diversification to work, your future earning power is always greatest when you're young, which means you can take bigger risks knowing you'll recover by the time you retire.
But as your working life comes to an end Sequence of Return Risk is a very real and serious threat, although most don't grasp its gravity. Your lifestyle can be ruined if you are unfortunate enough to experience losses during the transition from working life to retirement, even if markets subsequently recover. You only get to do this only once. It is the obligatory running of the gauntlet in lifetime investing. Here's an example:
Superior models
We have seen an evolution in age-based modeling with the recent introduction of target date funds (TDFs) that have grown from nothing a few years ago to over $2 trillion today. The idea behind TDFs is good but the glide paths of most TDFs are too risky for those near retirement, so our superior models correct this mistake. Sequence of return risk is managed with a V-shaped glide path that is very defensive in the Risk Zone that spans the 5 years before and after retirement. As you can see in the following graph, age is integrated with risk to create a very fluid family of thousands of models.
An example
The following graph compares the models for a middle aged person to models for someone near retirement. As you can see, you are moved to safety when you are in the Risk Zone, nearing retirement. The most aggressive model for someone near retirement is similar to the safest model for a middle aged person.
Conclusion
Most of our nation's 75 million baby boomers are in the Risk Zone, and most are in models that ignore the Risk Zone, taking substantial risk. Even worse, many are in the old "60/40 stock/bond for everyone" solution according to EBRI. You deserve safer models.
Models are very important because asset allocation explains about 100% of investment performance - yes, all of it. The widely held belief that investment policy explains 95% of investment performance is debunked in this article. The more accurate percentage is 100%. And the other revelation in the article will come as total heresy to those who are Seeking Alpha: Stock selection and market timing generally detract from investment performance.
Disclosure: I/we have no positions in any stocks mentioned, and no plans to initiate any positions within the next 72 hours. I wrote this article myself, and it expresses my own opinions. I am not receiving compensation for it. I have no business relationship with any company whose stock is mentioned in this article.
Additional disclosure: As CIO and CEO of GlidePath Wealth Management, I help investors deal with life events by charting a lifelong investment path that leads to a successful retirement, including those fortunate to live a long life,


--- layout: post title: McDonalds running Linux date: 2010-08-05 21:21:24.000000000 +02:00 type: post published: true status: publish categories: - Various tags: [] meta: _edit_last: '1' _wp_old_slug: '' _icl_translator_note: '' dsq_thread_id: '3801003048' _jetpack_related_posts_cache: a:0:{} _responsive_layout: default author: login: admin email<EMAIL_ADDRESS>display_name: gerbrand first_name: Gerbrand last_name: van Dieijen ---
A unix like OS on their video-screens outside, in shopping center Hoog Caterijne, Utrecht. At least something else then those Windows 95/98/NT screens I often see running at terminals, when they've crashed.


16-Inch MacBook Pro First Impressions Praise Return of Scissor Switch Keyboard and Larger Retina Display
by Mitchel BroussardApple today announced and launched the long-awaited 16-inch MacBook Pro, which has now replaced the previous 15-inch MacBook Pro models in the line of Apple notebooks. Alongside the announcement, a handful of YouTubers and tech bloggers have begun sharing their first impressions of the 16-inch MacBook Pro, after having used it for a few hours.
The two big updates to the new notebook include its bigger 16-inch Retina display, and the updated scissor switch keyboard that ditches the butterfly keyboard of the previous 15-inch MacBook Pro. Essentially every first impression applauded Apple for the new keyboard, particularly in regards to the new physical Escape key (instead of a virtual one on the Touch Bar).
Below we've rounded up a few first impressions videos for the 16-inch MacBook Pro.
Marques Brownlee:
iJustine:
The Verge:
UrAvgConsumer:
Engadget:
Rene Ritchie:
CNET:
The 16-inch MacBook Pro also features AMD Radeon Pro 5000M graphics options, GDDR6 video memory, a larger 100Wh battery for about an hour more battery than the previous generation, a redesigned six-speaker sound system, and upgraded microphones.
The new model starts at $2,399 in the United States and includes another $2,799 option, both of which can be individually configured with various internal upgrade options. For more information on the new 16-inch MacBook Pro, be sure to read our announcement post for the notebook.


Decode
An inclusive place for truly ambitious individuals.
Ambition
By Sumit Srivastava on 22 December 2019
Decode was born as a place to hang out for lads who are ambitious, curious, or risk takers.
While it did become a tight-knit inclusive community of ambitious individuals, it does not cover even a fraction of the most ambitious people in the world.
I will go on to describe where I got my ambition from and how you can get into the brains of the most ambitious people on earth, mostly by reading what they write and hanging out where they hang out.
- Why be ambitious?
Your ambition essentially defines what you will do good at, what you'll master, what will interest you, and what will inspire you.
Paul Graham, a major influence on my life and the founder of Y Combinator, writes great essays to read from. Here are two essays that I like:
- Frighteningly Ambitious Goals
How ambitious goals, once broken down carefully, seem completely achievable.

While startup ideas can be substituted with ambitious goals and cities can be substituted with internet communities, the gist of essay stays the same.A lot of ambitious people hang out at a lot of places on the internet. I am about to tell you where you can go to hang out with the ambitious people for the ambition you have, or for the things you want to master.
- Frighteningly Ambitious Goals
-
What should you do with your life?
I suggest that you read the essay Directions and advice from Alexey Guzey. Here is the essay broken down in parts:
-
Can we be ambitious and fast?
Yes! Here is a list of examples of people quickly accomplishing ambitious things together, compiled together by Patrick Collison, the founder of Stripe.
List of ambitious things done rapidly.
Here's my favourite one from this list:
Apollo 8. On August 9 1968, NASA decided that Apollo 8 should go to the moon. It launched on December 21 1968, 134 days later.
-
Where to hang out online? That's a question that you yourself have to figure out.
- Surprisingly, I find arxiv.org pretty good to read research papers on. Not really a community, but that's where I have learnt almost all of what I have learnt from.
- Hacker News is pretty good if you are into technology and software.
- Reddit communities are pretty good. You will have to figure out what specifically suits the best for your domain. Just google: best subreddits for X, and replace X with whatever you are interested in.
- Twitter is really good is you know how to curate a good feed and follow the right people of your domain. The best hack for this is to unfollow everyone who doesn't post what your domain is and follow only relevant people.
- Slack has lot's of really great communities but it's really cluttered, to the point that it almost seems like you are forced to be only involved in one community on Slack. That's how hard Slack has made it to switch the communities back to back.
- Quora used to be good content when it was launched, but not now.
- YouTube is tricky, the feed is so random that all efforts to curate a sensible feed go into vain. But it is awesome for learning since it has lot of good learning content. I have found a way around this erratic behaviour by going to the channels I like and learning directly from them without relying on the feed.
✓ What works for me:
✗ What doesn't work for me:


AltValues
Loading...
Strongly Agree
Agree
Neutral
Disagree
Strongly Disagree
Don't Know/Understand
Back
Back


GEM HUNT
Gem Hunt is a Steven Universe fan game I entirely made during summer 2019 on Unity. It's a strategic dice game inspired by Zombie dice where you hunt corrupted gems to earn points. You can play with your friends on the same device or against AI if you're alone. The game is playable on computer but also on smartphones, and is available in English, French, Spanish, Portuguese, Russian and Arabic.


Chuck's Pick 3
Get New Picks
{{drawTime | titlecase }}
Winner for {{ drawDate | date:'mediumDate' }}
{{ drawResult.toString() | leftpad: 3:'0' }}
{{ selectedDate == null ? 'Select Day To Play' : selectedDate | date:'longDate' }}
{{ selectedDrawTime == null ? 'Select Time to Play' : selectedDrawTime | titlecase }}


Team Name:
{{teams.team_name}}
Team Project:
{{teams.team_project}}
Team Lead:
{{teams.team_lead}}
Team Description:
{{teams.team_description}}


class: center, middle, inverse, title-slide .title[ # Modern Approaches to Difference-in-Differences ] .author[ ### Brantly Callaway, University of Georgia ] .date[ ### June 1, 2023
NEXT-D Workshop at Tulane University ] --- # Introduction `$$\newcommand{\E}{\mathbb{E}} \newcommand{\E}{\mathbb{E}} \newcommand{\var}{\mathrm{var}} \newcommand{\cov}{\mathrm{cov}} \newcommand{\Var}{\mathrm{var}} \newcommand{\Cov}{\mathrm{cov}} \newcommand{\Corr}{\mathrm{corr}} \newcommand{\corr}{\mathrm{corr}} \newcommand{\L}{\mathrm{L}} \renewcommand{\P}{\mathrm{P}} \newcommand{\independent}{{\perp\!\!\!\perp}} \newcommand{\indicator}[1]{ \mathbf{1}\{#1\} }$$`  Difference-in-differences (DID) is an extremely popular identification strategy for trying to recover the causal effect of some treatment on some outcome of interest -- There have been a number of important advances in our understanding of DID over the past few years: * Limitations of two-way fixed effects (TWFE) regressions as a way to implement a DID identification strategy * Alternative estimation strategies that are robust to treatment effect heterogeneity * Extensions of these alternative approaches along a number of empirically relevant dimensions -- Today:  Overview of recent work `\(+\)` a (fairly) detailed empirical application with code -- Reference:  Callaway (2023, *Handbook of Labor, Human Resources and Population Economics*) --- # Outline

 1. Introduction to Difference-in-Differences 2. Overview of Issues with TWFE Regressions 3. Alternative Estimation Strategies 4. Empirical Example: Minimum Wages and Employment --- class: inverse, middle, center count: false # Introduction to Difference-in-Differences --- # The Logic of DID Exploit a data structure where the researcher observes: 1. Multiple periods of data 2. Some pre-treatment data for all units 3. Some units become treated while other units remain untreated --
 Running Example The effect of a state-level minimum wage increase on employment --- # The Logic of DID Intuition for DID identification strategy is to compare: - The change in outcomes over time for units that participate in the treatment to - The change in outcomes over time for units that didn't participate in the treatment -- Rough intuition: Compares a treated unit's outcomes to its past outcomes while making adjustment for "common shocks" using the comparison group. [See: Heckman, Ichimura, and Todd (1997), Blundell and Costa Dias (2009), Gardner (2021), Ghanem, Sant'Anna, and Wuthrich (2022) for more details about when/why this procedure makes sense.] --
 DID identification strategies allow for treatment effect heterogeneity * This is going to be a major issue in the discussion below --- # Textbook Version of DID Data:  * 2 periods: `\(t^*\)`, `\(t^*-1\)` * No one treated until period `\(t^*\)` * Some units remain untreated in period `\(t^*\)` * 2 groups: `\(D=1\)` or `\(D=0\)` (treated and untreated) -- Potential Outcomes:  `\(Y_{it}(1)\)` and `\(Y_{it}(0)\)` -- Observed Outcomes:  `\(Y_{it^*}\)` and `\(Y_{it^*-1}\)` `\begin{align*} Y_{it^*} = D_i Y_{it^*}(1) +(1-D_i)Y_{it^*}(0) \quad \textrm{and} \quad Y_{it^*-1} = Y_{it^*-1}(0) \end{align*}` --- # Textbook Version of DID (cont'd) Target Parameter:  `$$ATT = \E[Y_{t^*}(1) - Y_{t^*}(0) | D=1]$$` Explanation: Mean difference between treated and untreated potential outcomes in the second period among the treated group -- Parallel Trends Assumption:  `$$\E[\Delta Y_{t^*}(0) | D=1] = \E[\Delta Y_{t^*}(0) | D=0]$$` Explanation: Mean path of untreated potential outcomes is the same for the treated group as for the untreated group -- Identification: Under PTA, we can identify `\(ATT\)`: $$ `\begin{aligned} ATT &= \E[\Delta Y_{t^*} | D=1] - \E[\Delta Y_{t^*}(0) | D=1] \end{aligned}` $$ --- count:false # Textbook Version of DID (cont'd) Target Parameter:  `$$ATT = \E[Y_{t^*}(1) - Y_{t^*}(0) | D=1]$$` Explanation: Mean difference between treated and untreated potential outcomes in the second period among the treated group Parallel Trends Assumption:  `$$\E[\Delta Y_{t^*}(0) | D=1] = \E[\Delta Y_{t^*}(0) | D=0]$$` Explanation: Mean path of untreated potential outcomes is the same for the treated group as for the untreated group Identification: Under PTA, we can identify `\(ATT\)`: $$ `\begin{aligned} ATT &= \E[\Delta Y_{t^*} | D=1] - \E[\Delta Y_{t^*}(0) | D=1]\\ &= \E[\Delta Y_{t^*} | D=1] - \E[\Delta Y_{t^*} | D=0] \end{aligned}` $$ --- # Setup w/ Staggered Treatment Adoption - `\(\mathcal{T}\)` time periods -- - Units can become treated at different points in time -- - For simplicity, we'll adapt the staggered treatment framework. That is, once a unit becomes treated they remain treated. - `\(G_i\)` - a unit's group - the time period that unit becomes treated. Also, define `\(U_i=1\)` for never-treated units and `\(U_i=0\)` otherwise. -- - Potential outcomes: `\(Y_{it}(g)\)` - the outcome that unit `\(i\)` would experience in time period `\(t\)` if they became treated in period `\(g\)`. -- - Untreated potential outcome: `\(Y_{it}(0)\)` - the outcome unit `\(i\)` would experience in time period `\(t\)` if they did not participate in the treatment in any period. --- # Setup (cont'd) - Observed outcome: `\(Y_{it}=Y_{it}(G_i)\)` -- - No anticipation condition: `\(Y_{it} = Y_{it}(0)\)` for all `\(t < G_i\)` (pre-treatment periods for unit `\(i\)`) -- Unit-level treatment effect `$$\tau_{it}(g) = Y_{it}(g) - Y_{it}(0)$$` -- Average treatment effect for unit `\(i\)` (across time periods): `$$\bar{\tau}_i(g) = \frac{1}{\mathcal{T} - g + 1} \sum_{t=g}^{\mathcal{T}} \tau_{it}(g)$$` --- # Target Parameters * Group-time average treatment effects `\begin{align*} ATT(g,t) = \E[ \tau_t(G) | G=g] \end{align*}` Explanation: `\(ATT\)` for group `\(g\)` in timer period `\(t\)` -- * Event Study `\begin{align*} ATT^{ES}(e) = \E[\tau_{t+e}(G) | G \in \mathcal{G}_e] \end{align*}` where `\(\mathcal{G}_e\)` is the set of groups observed to have experienced the treatment for `\(e\)` periods at some point. Explanation: `\(ATT\)` when units have been treated for `\(e\)` periods  -- * Overall ATT `\begin{align*} ATT^O = \E[\bar{\tau}(G) | U=0] \end{align*}` Explanation: `\(ATT\)` across all units that every participate in the treatment --- # Target Parameters To understand the discussion later, it is also helpful to think of `\(ATT(g,t)\)` as a building block for the other parameters discussed above. -- Notice that: `\begin{align*} ATT^{ES}(e) = \sum_{g \in \bar{\mathcal{G}}} w^{ES}(g,e) ATT(g,g+e) \qquad \textrm{ and } \qquad ATT^O = \sum_{g \in \bar{\mathcal{G}}} \sum_{t=g}^{\mathcal{T}} w^O(g,t) ATT(g,t) \end{align*}` where `\begin{align*} w^{ES}(g,e) = \indicator{g \in \mathcal{G}_e} \P(G=g|G\in \mathcal{G}_e) \qquad \textrm{and} \qquad w^O(g,t) = \frac{\P(G=g|U=0)}{\mathcal{T}-g+1} \end{align*}` -- <br> In other words, if we can identify/recover `\(ATT(g,t)\)`, then we can proceed to recover `\(ATT^{ES}(e)\)` and `\(ATT^O\)`. --- # Identification of `\(ATT(g,t)\)` ## Multiple Period Version of Parallel Trends Assumption For all groups `\(g \in \bar{\mathcal{G}}\)` (all groups except the never-treated group) and for all time periods `\(t=2,\ldots,\mathcal{T}\)`, `\begin{align*} \E[\Delta Y_{t}(0) | G=g] = \E[\Delta Y_{t}(0) | U=1] \end{align*}` <br> -- Using very similar arguments as before, can show that `\begin{align*} ATT(g,t) = \E[Y_t - Y_{g-1} | G=g] - \E[Y_t - Y_{g-1} | U=1] \end{align*}` -- where the main difference is that we use `\((g-1)\)` as the "base period" (this is the period right before group `\(g\)` becomes treated). --- class: inverse, middle, center count: false # Overview of Issues with TWFE Regressions --- # What does TWFE estimate in this setup? For roughly 30 years, the dominant approach to implementing a DID identification strategy has been to run a two-way fixed effects regression: `$$Y_{it} = \theta_t + \eta_i + \alpha D_{it} + v_{it}$$` -- In the "textbook" case above, you can show that `\(\alpha = ATT\)` `\(\implies\)` TWFE regression is robust to treatment effect heterogeneity -- It's also super-convenient! -- However, this robustness to treatment effect heterogeneity does not extend to more complicated settings: * Staggered treatment adoption (this is the case I'll emphasize) * More complicated treatments (e.g., continuous treatment) / moving into and out of the treatment * Including covariates in the parallel trends assumption --- # Goodman-Bacon (2021) Goodman-Bacon (2021) intuition: `\(\alpha\)` "comes from" comparisons between the path of outcomes for units whose treatment status changes relative to the path of outcomes for units whose treatment status stays the same over time. -- * Some comparisons are for groups that become treated to not-yet-treated groups (these are very much in the spirit of DID) * Other comparisons are for groups that become treated relative to already-treated groups (these comparisons are not rationalized by parallel trends assumptions) This can be especially problematic when there are treatment effect dynamics. Dynamics imply different trends from what would have happened absent the treatment. --- # de Chaisemartin and d'Haultfoeuille (2020) de Chaisemartin and d'Haultfoeuille (2020) intuition: You can write `\(\alpha\)` as a weighted average of `\(ATT(g,t)\)` First, a decomposition: `\begin{align*} \alpha &= \sum_{g \in \bar{\mathcal{G}}} \sum_{t=g}^{\mathcal{T}} w^{TWFE}(g,t) \Big( \E[(Y_{t} - Y_{g-1}) | G=g] - \E[(Y_{t} - Y_{g-1}) | U=1] \Big) \\ & + \sum_{g \in \bar{\mathcal{G}}} \sum_{t=1}^{g-1} w^{TWFE}(g,t) \Big( \E[(Y_{t} - Y_{g-1}) | G=g] - \E[(Y_{t} - Y_{g-1}) | U=1] \Big) \end{align*}` -- Second, under parallel trends: `\begin{align*} \alpha = \sum_{g \in \bar{\mathcal{G}}} \sum_{t=g}^{\mathcal{T}} w^{TWFE}(g,t) ATT(g,t) \end{align*}` * But the weights are (non-transparently) driven by the estimation method * These weights have some good / bad / strange properties such as possibly being negative      --- # Event Study Regressions Event study regressions are popular in empirical work. `\begin{align*} Y_{it} = \theta_t + \eta_i + \sum_{e=-(\mathcal{T}-1)}^{-2} \beta_e D_{it}^e + \sum_{e=0}^{\mathcal{T}} \beta_e D_{it}^e + v_{it} \end{align*}` where `\(D_{it}^e = \indicator{G_i + e = t}\)` is a binary indicator of having been treated for exactly `\(e\)` periods in period `\(t\)` -- Typically, researchers interpret: * Post-treatment event study coefficients as dynamic effects * Use pre-treatment coefficients as a pre-test -- Sun and Abraham (2021) show similar issues to the TWFE regression with the event study regression here * `\(\beta_e\)` can include effects from incorrect lengths of exposure * weights on `\(ATT(g,t)\)` are non-transparent and driven by the estimation method and can be negative --- class: inverse, middle, center count: false # Alternative Estimation Strategies --- # Alternative Approaches We'll discuss: 1. Callaway and Sant'Anna (2021), R: `did`, Stata: `csdid` 2. Sun and Abraham (2021), R: `fixest`, Stata: `eventstudyinteract` 3. Wooldridge (2021), R: `etwfe`, Stata: `JWDID` 4. Gardner (2021) / Borusyak, Jaravel, Spiess (2022), R: `did2s`, Stata: `did2s` and `did_imputation` -- Not including: 1. "Clean controls" (Cengiz, Dube, Lindner, and Zipperer (2019) and Dube, Girardi, Jorda, and Taylor (2023)), Stata: `stackedev`  2. de Chaisemartin and d'Haultfoeuille (2020), R: `DIDmultiplegt`, Stata: `did_multiplegt`  --- # Callaway and Sant'Anna (2021) Key idea: Separate identification and estimation: * Under parallel trends, recall that `$$ATT(g,t) = \E[Y_t - Y_{g-1} | G=g] - \E[Y_t - Y_{g-1} | U=1]$$` -- Estimation: `$$\widehat{ATT}^{CS}(g,t) = \frac{1}{n}\sum_{i=1}^n \frac{\indicator{G_i = g}}{\hat{p}_g} (Y_{it} - Y_{ig-1}) - \frac{1}{n}\sum_{i=1}^n \frac{\indicator{U_i = 1}}{\hat{p}_U} (Y_{it} - Y_{ig-1})$$` 2nd step: Recall: group-time average treatment effects are building blocks for more aggregated parameters such as `\(ATT^{ES}(e)\)` and `\(ATT^O\)` `\(\implies\)` just plug in * `\(\implies\)` two-step estimation procedure: target local/disaggregated `\(ATT(g,t)\)` in first step, then (if desired) aggregate them into lower dimensional parameters --- # Sun and Abraham (2021) Intuition:  The event study regression is "underspecified" `\(\implies\)` heterogeneous effects can "confound" the treatment effect estimates -- Solution: Run fully interacted regression: `\begin{align*} Y_{it} = \theta_t + \eta_i + \sum_{g \in \bar{\mathcal{G}}} \sum_{e \neq -1} \delta^{SA}_{ge} \indicator{G_i=g} \indicator{g+e=t} + v_{it} \end{align*}` -- 2nd step: Aggregate `\(\delta^{SA}_{ge}\)`'s across groups (usually into an event study). * This sidesteps issues with the event study regression coming from treatment effect heterogeneity * For inference, need to account for two-step estimation procedure --- # Wooldridge (2021) Main question: Are issues in DID literature due to limitations of TWFE regressions themselves or something else? -- Proposes running "more interacted" TWFE regression: `\begin{align*} Y_{it} = \theta_t + \eta_i + \sum_{g \in \bar{\mathcal{G}}} \sum_{s=g}^{\mathcal{T}} \alpha_{gt}^W \indicator{G_i=g, t=s} + v_{it} \end{align*}` -- This is quite similar to Sun and Abraham (2021) except for that it doesn't include interactions in pre-treatment periods. [The differences about `\((g,t)\)` relative to `\((g,e)\)` are trivial.] * Like SA, this provides robustness to treatment effect heterogeneity by including more interactions * However, unless mainly interested in `\(ATT(g,t)\)`, have to do second step aggregation that (arguably) ends the "killer feature" of the TWFE regression to begin with --- # Gardner (2021) / BJS (2022) Intuition: Parallel trends is closely connected to a TWFE model *for untreated potential outcomes* `$$Y_{it}(0) = \theta_t + \eta_i + e_{it}$$` -- Estimation: * Step 1: Split data into treated and untreated observations * Step 2: Estimate above model for the set of untreated observations * Step 3: "Impute" `\(\hat{Y}_{it}(0) = \hat{\theta}_t + \hat{\eta}_i\)` for the treated observations * `\(\displaystyle \widehat{ATT}^{G/BJS}(g,t) = \frac{1}{n} \sum_{i=1}^n \frac{\indicator{G_i=g}}{\hat{p}_g} \Big(Y_{it} - \hat{Y}_{it}(0)\Big) \xrightarrow{p} ATT(g,t)\)` Can compute other treatment effect parameters too.  --- # Similarities and Differences In my view, all of the approaches discussed above are fundamentally similar to each other. -- In practice, it is sometimes possible to get different results though this is often driven by * Different choices in terms of default implementation details in computer code * Different estimation strategies trading off efficiency and robustness in different ways --- # Comparison 1: CS and SA In post-treatment periods, these give numerically identical results: `\(\widehat{ATT}^{CS}(g,t) = \hat{\delta}^{SA}_{t,t-g}\)` * This is because a fully interacted regression (SA) is equivalent to taking differences in averages across groups (CS) -- In pre-treatment periods, code will give different pre-treatment estimates, but this is due to different default choices * In SA, all results are relative to a fixed base period (typically the period right before treatment) * In CS, by default, in pre-treatment periods, estimates are of placebo policy effects on impact (i.e., the base period is always the most recent pre-treatment period) -- Similarly, results will be different if you choose a different comparsion group in CS (e.g., not-yet-treated vs. never-treated). -- In both cases, these are just different choices though, and, for example, it is feasible (and easy) to set a fixed base period in CS --- # Comp 2: SA and Wooldridge These are clearly closely related, with the difference amounting to whether or not one includes indicators for pre-treatment periods. -- It is fair to see this as a way to trade-off robustness and efficiency * If parallel trends holds across all time periods, then Wooldridge will deliver more efficient estimates (as effectively all pre-treatment periods are used as base periods) * If parallel trends is violated in some pre-treatment periods but holds post-treatment, Wooldridge estimates will be inconsistent, but SA estimates will be robust to violations of parallel trends in pre-treatment periods. --- # Comp 3: Wooldridge and Gardner/BJS Wooldridge and Gardner/BJS give numerically the same estimates: `\(\hat{\alpha}^W_{gt} = \widehat{ATT}^{G/BJS}(g,t)\)` Intuition: similar to equivalence between Oaxaca-Blinder decompositions and regression adjustment (i.e., including interactions is equivalent to estimating separate models by group). --- # Comments The above discussion emphasizes the similarities between different proposed alternatives to TWFE regressions in the literature. -- The differences also seem to be mainly driven by different implementation choices. Examples: * It's possible to come up with an imputation estimator that uses the base period right before treatment only `\(\implies\)` `\(\uparrow\)` robustness, `\(\downarrow\)` efficiency * It's also possible to do a version of CS with more base periods `\(\implies\)` `\(\uparrow\)` efficiency `\(\downarrow\)` robustness * Build-the-trend (i.e., path relative to average pre-treatment outcome) and GMM, Callaway (2023) and Marcus and Sant'Anna (2021). --- class: inverse, middle, center count: false # Empirical Example: Minimum Wages and Employment --- # Example: Minimum Wage - Use county-level data from 2003-2007 during a period where the federal minimum wage was flat -- - Exploit minimum wage changes across states - Any state that increases their minimum wage above the federal minimum wage will be considered as treated -- - Interested in the effect of the minimum wage on teen employment -- - We'll also make a number of simplifications: * not worry much about issues like clustered standard errors * not worry about variation in the amount of the minimum wage change (or whether it keeps changing) across states -- Goal:  How much do the issues that we have been talking about matter in practice? --- # Code Full code is available on my website: [https://bcallaway11.github.io/files/presentations/NEXT-D](https://bcallaway11.github.io/files/presentations/NEXT-D) or link is on my homepage [brantlycallaway.com](https://www.brantlycallaway.com) R packages used in empirical example ```r library(did) library(BMisc) library(twfeweights) library(fixest) library(modelsummary) library(ggplot2) load(url("https://github.com/bcallaway11/did_chapter/raw/master/mw_data_ch2.RData")) ``` --- # Setup Data ```r # drops NE region and a couple of small groups mw_data_ch2 <- subset(mw_data_ch2, (G %in% c(2004,2006,2007,0)) & (region != "1")) head(mw_data_ch2[,c("id","year","G","lemp","lpop","region")]) ``` ``` ## id year G lemp lpop region ## 554 8003 2001 2007 5.556828 9.614137 4 ## 555 8003 2002 2007 5.356586 9.623972 4 ## 556 8003 2003 2007 5.389072 9.620859 4 ## 557 8003 2004 2007 5.356586 9.626548 4 ## 558 8003 2005 2007 5.303305 9.637958 4 ## 559 8003 2006 2007 5.342334 9.633056 4 ``` ```r # drop 2007 as these are right before fed. minimum wage change data2 <- subset(mw_data_ch2, G!=2007 & year >= 2003) # keep 2007 => larger sample size data3 <- subset(mw_data_ch2, year >= 2003) ``` --- # TWFE Regression ```r twfe_res2 <- fixest::feols(lemp ~ post | id + year, data=data2, cluster="id") modelsummary(list(twfe_res2), gof_omit=".*") ```

  	  Model 1

  post 	  −0.038

  	  (0.008)

 --- # `\(ATT(g,t)\)` (Callaway and Sant'Anna) ```r attgt <- did::att_gt(yname="lemp", idname="id", gname="G", tname="year", data=data2, control_group="nevertreated", base_period="universal") tidy(attgt)[,1:5] # print results, drop some extra columns ``` ``` ## term group time estimate std.error ## 1 ATT(2004,2003) 2004 2003 0.00000000 NA ## 2 ATT(2004,2004) 2004 2004 -0.03266653 0.020884500 ## 3 ATT(2004,2005) 2004 2005 -0.06827991 0.020712351 ## 4 ATT(2004,2006) 2004 2006 -0.12335404 0.020682602 ## 5 ATT(2004,2007) 2004 2007 -0.13109136 0.022523279 ## 6 ATT(2006,2003) 2006 2003 -0.03408910 0.011617027 ## 7 ATT(2006,2004) 2006 2004 -0.01669977 0.007396980 ## 8 ATT(2006,2005) 2006 2005 0.00000000 NA ## 9 ATT(2006,2006) 2006 2006 -0.01939335 0.009217105 ## 10 ATT(2006,2007) 2006 2007 -0.06607568 0.009311762 ``` --- # Plot `\(ATT(g,t)\)`'s  --- # Compute `\(ATT^O\)` ```r attO <- did::aggte(attgt, type="group") summary(attO) ``` ``` ## ## Call: ## did::aggte(MP = attgt, type = "group") ## ## Reference: Callaway, Brantly and Pedro H.C. Sant'Anna. "Difference-in-Differences with Multiple Time Periods." Journal of Econometrics, Vol. 225, No. 2, pp. 200-230, 2021. <https://doi.org/10.1016/j.jeconom.2020.12.001>, <https://arxiv.org/abs/1803.09015> ## ## ## Overall summary of ATT's based on group/cohort aggregation: ## ATT Std. Error [ 95% Conf. Int.] ## -0.0571 0.008 -0.0728 -0.0414 * ## ## ## Group Effects: ## Group Estimate Std. Error [95% Simult. Conf. Band] ## 2004 -0.0888 0.0203 -0.1316 -0.0461 * ## 2006 -0.0427 0.0076 -0.0587 -0.0268 * ## --- ## Signif. codes: `*' confidence band does not cover 0 ## ## Control Group: Never Treated, Anticipation Periods: 0 ## Estimation Method: Doubly Robust ``` --- # Comments The differences between the CS estimates and the TWFE estimates are fairly large here: the CS estimate is about 50% larger than the TWFE estimate, though results are qualitatively similar. -- Let's see if we can figure out what's going on... --- # de Chaisemartin and d'Haultfoeuille weights  --- # `\(ATT^O\)` weights  --- # Weight Comparison  --- # Discussion To summarize: `\(ATT^O = -0.057\)` while `\(\alpha^{TWFE} = -0.038\)`. This difference can be fully accounted for * Pre-treatment differences in paths of outcomes across groups: explains about 64% of the difference * Differences in weights applied to the same post-treatment `\(ATT(g,t)\)`: explains about 36% of the difference. [If you apply the post-treatment weights and "zero out" pre-treatment differences, the estimate would be `\(-0.050\)`.] -- In my experience: this is fairly representative of how much new DID approaches matter relative to TWFE regressions. It does not seem like "catastrophic failure" of TWFE, but (in my view) these are meaningful differences (and, e.g., given slightly different `\(ATT(g,t)\)`'s, the difference in the weighting schemes could change the qualitative results). * Of course, this whole discussion hinges crucially on how much treatment effect heterogeneity there is. More TE Het `\(\implies\)` more sensitivity to weighting schemes [just looking at TWFE regression does not give insight into how much TE Het there is.] --- # Additional Comments One more comment: there is a lot concern about negative weights (both in econometrics and empirical work). * There were no negative weights in the example above, but the weights still weren't great. * No negative weights does rule out "sign reversal" * But, in my view, the more important issue is the non-transparent weighting scheme. * Ex. If you try using `data3` (the data that includes `\(G=2007\)`), you will get a negative weight on `\(ATT(g=2004,t=2007)\)`. But it turns out not to matter much, and TWFE works better in this case than in the case that I showed you. --- name: bonus # Bonus Material

 [Bonus Material 1: Including Covariates in the Parallel Trends Assumption](#covs)
 [Bonus Material 2: Dealing with Violations of Parallel Trends](#violations) --- # Conclusion That's all! Thank you very much for inviting me. Email: [brantly.callaway<EMAIL_ADDRESS>--- name: covs count: false # Covariates in the Parallel Trends Assumption ## Conditional Parallel Trends Assumption For all time periods, `$$\E[\Delta Y_t(0) | X_t, X_{t-1},Z,D=1] = \E[\Delta Y_t(0) | X_t, X_{t-1},Z,D=0]$$` -- In words: Parallel trends holds conditional on having the same covariates `\(X\)`. --
 Minimum wage example: path of teen employment may depend on a state's population / population growth / region of the country --- count: false # Limitations of TWFE Regressions In this setting, it is common to run the following TWFE regression: `$$Y_{it} = \theta_t + \eta_i + \alpha D_{it} + X_{it}'\beta + v_{it}$$` -- However: * Issues related to multiple periods and variation in treatment timing still arise -- * It's hard to allow for the path of untreated potential outcomes to depend on time-invariant covariates -- * Mixes identification and estimation...e.g., with 2 periods `\begin{align*} \Delta Y_{it} = \Delta \theta_t + \alpha D_{it} + \Delta X_{it}'\beta + \Delta v_{it} \end{align*}` `\(\implies\)` differencing out unit fixed effects can have implications about what researcher controls for * This doesn't matter if model is truly linear * However, if we think of linear model as an approximation, this may have meaningful implications. * See Caetano and Callaway (2023) for more details --- count: false # Identification / Estimation Can show that (under conditional PTA): `$$ATT = \E[\Delta Y_t | D=1] - \E\Big[ \E[\Delta Y_t | X, D=0] \Big| D=1\Big]$$` -- Intuition: (i) Compare path of outcomes for treated group to (conditional on covariates) path of outcomes for untreated group, (ii) adjust for differences in the distribution of covariates between groups. -- This expression suggests a "regression adjustment" estimator. -- It is easy to extend these arguments to multiple periods and variation in treatment timing --- count: false # Doubly Robust Alternatively, you can show `$$ATT=\E\left[ \left( \frac{D}{p} - \frac{p(X)(1-D)}{(1-p(X))p} \right)(\Delta Y_t - \E[\Delta Y_t | X, D=0]) \right]$$` -- This requires estimating both `\(p(X)\)` and `\(\E[\Delta Y_{t^*}|X,D=0]\)`. -- Big advantage: - This expression for `\(ATT\)` is *doubly robust*. This means that, it will deliver consistent estimates of `\(ATT\)` if either the model for `\(p(X)\)` or for `\(\E[\Delta Y_{t^*}|X,D=0]\)`. -- - In my experience, doubly robust estimators perform much better than either the regression or propensity score weighting estimators -- - This also provides a connection to estimating `\(ATT\)` under conditional parallel trends using machine learning for `\(p(X)\)` and `\(\E[\Delta Y_{t^*}|X,D=0]\)` (see: Chang (2020) and Callaway, Drukker, Liu, and Sant'Anna (2023)) --- count: false # Back to Minimum Wage Example We'll allow for path of outcomes to depend on region of the country ```r # run TWFE regression twfe_x <- fixest::feols(lemp ~ post | id + region^year, data=data2) modelsummary(twfe_x, gof_omit=".*") ```

  	  Model 1

  post 	  0.001

  	  (0.008)

 Relative to previous results, this is much smaller and statistically insignificant and is similar to the result in Dube et al. (2010). --- count: false # Use Doubly Robust Approach from CS ``` ## ## Call: ## aggte(MP = cs_x, type = "group") ## ## Reference: Callaway, Brantly and Pedro H.C. Sant'Anna. "Difference-in-Differences with Multiple Time Periods." Journal of Econometrics, Vol. 225, No. 2, pp. 200-230, 2021. <https://doi.org/10.1016/j.jeconom.2020.12.001>, <https://arxiv.org/abs/1803.09015> ## ## ## Overall summary of ATT's based on group/cohort aggregation: ## ATT Std. Error [ 95% Conf. Int.] ## -0.0273 0.0085 -0.0438 -0.0107 * ## ## ## Group Effects: ## Group Estimate Std. Error [95% Simult. Conf. Band] ## 2004 -0.0436 0.0204 -0.0892 0.0019 ## 2006 -0.0199 0.0079 -0.0376 -0.0022 * ## --- ## Signif. codes: `*' confidence band does not cover 0 ## ## Control Group: Never Treated, Anticipation Periods: 0 ## Estimation Method: Doubly Robust ``` --- count: false # Comments Even more than in the previous case, the results in this case are notably different depending on the estimation strategy.
 [back](#bonus) --- name: violations count: false # What about violations of parallel trends? Parallel trends assumptions don't automatically hold in applications with repeated observations over time. -- The most natural way to motivate parallel trends is with a linear model for untreated potential outcomes: `\begin{align*} Y_{it}(0) = \theta_t + \eta_i + v_{it} \end{align*}` where the key feature is the additive separability of `\(\eta_i\)` -- But it's not always clear if additive separability (and hence parallel trends) is reasonable * The most common "response" is pre-testing...checking if parallel trends holds in pre-treatment periods -- DID + pre-tests are a very powerful/useful approach to "validating" the parallel trends assumption --- count: false # What about our case?  --- count: false # Partial Identification / Sensitivity Analysis References: Manski and Pepper (2018), Rambachan and Roth (2021) -- Two versions of sensitivity analysis in RR: * Violations of parallel trends evolve smoothly * Violations of parallel trends are "not too different" in post-treatment periods from the violations in pre-treatment periods - Will show results for this case - Allow for violations of parallel trends up to `\(\bar{M}\)` times as large as were observed in any pre-treatment period. - And we'll vary `\(\bar{M}\)`. --- count: false # What about violations of parallel trends?  --- count: false [back](#bonus)


Conversa provides a graphical user interface to the free
DITA Converter
(ditac) from XMLmind that you can use to easily publish your DITA projects
in multiple formats.
Conversa works right out of the box. Just install it and generate PDF, HTML
or Web Help from your DITA files using the default configuration.
The output formats supported by Conversa are:
| PDF |
HTML |
EPUB 2 & 3 |
PostScript |
| Eclipse Help |
Web Help |
Web Help with HTML 5 |
XSL-FO |
| HTML Help |
RTF |
DOCX |
ODT |
Microsoft HTML Help Workshop is required to generate HTML Help in
.chm
format for Windows.
It can be freely downloaded from
Microsoft's Download Center.
XMLmind XSL-FO Converter is used to generate DOCX, RTF and ODT output from DITA files.
XSL-FO Converter is a commercial product from
XMLMind.


--- title: SML -- Scalable Machine Learning Course layout: post ---
SML: Scalable Machine LearningPractical informationSTATISTICS 241B, COMPUTER SCIENCE C281BUpdates
Volume: 3 hours per week (3 credits)
Time: Tuesday, 4-7pm (3 lectures /in one block)
Location: 306 SODA
Instructor: Alex Smola (available 1-3pm Tuesdays in Evans 418)
TA: Dapo Omidiran
Grading Policy: Assignments (40%), Project (50%), Midterm project review (10%), Scribe (Bonus 5%)
Piazza discussion board
Overview
02222012 - Slides are online
02222012 - New assignments are live
02222012 - Video for SVM (first three sets) are uploaded
02222012 - Video for Optimization complete
02052012 - Slides for Streams and Optimization are uploaded
02052012 - Videos now have sound enabled
01252012 - Problem set 1 is uploaded
01252012 - Slides and videos are uploaded
01252012 - Project ideas and datasets are uploaded
01192012 - The graphical models tab has links to video lectures on tutorials on the subject (this is mainly for students who didn't get to attend the class by Mike Jordan and Martin Wainwright).
01182012 - The systems slides are available now (follow the systems link)
01182012 - Updated project guidelines
Scalable Machine Learning occurs when Statistics, Systems, Machine Learning and Data Mining are combined into flexible, often nonparametric, and scalable techniques for analyzing large amounts of data at internet scale. This class aims to teach methods which are going to power the next generation of internet applications.
The class will cover systems and processing paradigms, an introduction to statistical analysis, algorithms for data streams, generalized linear methods (logistic models, support vector machines, etc.), large scale convex optimization, kernels, graphical models and inference algorithms such as sampling and variational approximations, and explore/exploit mechanisms. Applications include social recommender systems, real time analytics, spam filtering, topic models, and document analysis.
Resources Prerequisites
Basic probability and statistics. Having attended a machine class would be a big plus but is not absolutely required. Particularly some knowledge of kernels and graphical models would be useful.
Basic linear algebra (matrices, vectors, eigenvalues). Knowing functional analysis would be great but not required.
Ability to write code that exceeds 'Hello World’. Preferably beyond Matlab or R.
Basic knowledge of optimization. Having attended a convex optimization class would be great.
Page generated 2012-02-22 21:44:22 PST, by jemdoc.
Looks like some really awesome content in here.


Module itemutil
Provides various utility functions for working with items.
Functions
-
blop (position_or_object, itemstrings_or_stacks, x_strength, y_strength, z_strength, split_mode)
-
"Blops" the item into existence at the given position and assigns it
a random velocity/acceleration.
Parameters:
- position_or_object
The position, a pos value or an ObjectRef.
- itemstrings_or_stacks
The item string or an ItemStack.
- x_strength
Optional. The strength of the random movement in
the x direction, defaults to 5.
- y_strength
Optional. The strength o the random movement in
the y direction, defaults to 5, minimum is 1.
- z_strength
Optional. The strength of the random movement in
the z direction, defaults to 5.
- split_mode
Optional. The mode for splitting the items, defaults
to SPLIT_MODE_STACK.
Returns:
The spawned items in a List.
-
get_itemstring (item)
-
Gets the item string from the given item.
Parameters:
- item
The item for which to get the item string.
Returns:
The item string, or nil.
-
split (itemstring_or_itemstack, split_mode)
-
Splits the given item stack according to the provided method.
Parameters:
- itemstring_or_itemstack
The item string or ItemStack to split.
- split_mode
The split mode.
Returns:
A List of item strings, an empty List it could not be split.
-
split_random (itemstring_or_itemstack)
-
Splits the given item stack randomly.
Parameters:
- itemstring_or_itemstack
The item string or ItemStack to split
randomly.
Returns:
The List of item strings.
-
split_single (itemstring_or_itemstack)
-
Splits the given item stack into single items.
Parameters:
- itemstring_or_itemstack
The item string or ItemStack to split
into single items.
Returns:
The List of item strings.
Fields
-
SPLIT_MODE_RANDOM
-
The split mode for randomly splitting the stack.
-
SPLIT_MODE_SINGLE
-
The split mode for splitting the stack into single items.
-
SPLIT_MODE_STACK
-
The split mode for preserving the complete stack.


Tomorrow
Current weather for tomorrow
Two Days From Now
Current weather for the day after tomorrow
Three Days From Now
Current weather for 3 days from now
Four Days From Now
Current weather for 4 days from now
Five Days From Now
Current weather for 5 days from now


a microscopic mite which is a debilitating parasite of the honeybee, causing loss of honey production.
What We Hope
That we can develop computer vision to detect the presence of varroa mite.
What We Need
Your eyes! Help categorise the images — all you need to do is to be able to spot the difference between a picture that has a bee in it, and one that doesn't. Simple, right?


The Game of Life is a zero player game whose evolution is determined by its initial state. The game is set by creating an initial configuration by clicking on specific cells or choosing from a preset pattern. When the game is started, the state of the cells will live or die according to a set of rules. (wikipedia)
Rules
Any live cell with fewer than two live neighbours dies.
Any live cell with two or three live neighbours lives on to the next iteration.
Any live cell with more than three live neighbours dies.


CSQA
- An open-source Q&A website for coders
Search
|
New Question
{% block content %}{% endblock %}
Home
|
About
|
Source code
|
Leaderboard


|
translate Pile
version 0.0.1
This pile provides support for an application that
|
brief description More...
#include <translang.h>
Public Member Functions | |
| TransLang (const QString &dir, const QString &langfile, const QString &name, const QString &icon, const QString &locale) | |
| Constructor that creates a valid instance. More... | |
| TransLang () | |
| Default constructor that creates an invalid instance. More... | |
| virtual | ~TransLang () |
| Destructor. More... | |
| bool | isValid () const |
| Tell if this instance is valid or not. More... | |
| const QString & | langDirectory () const |
| Absolute paths towards language directory. | |
| const QString & | langFile () const |
| Get the absolute path for the language file. | |
| QString | qtLangFile () const |
| Get the absolute path for the qt language file (if any). | |
| const QString & | langName () const |
| Get the name of this language. | |
| const QString & | localeName () const |
| Get the name of this locale. | |
| const QString & | langIcon () const |
| Get the icon of this language. | |
| const QMap< QString, QString > & | metadata () const |
| Get the icon of this language. | |
| bool | hasCachedTranslator () const |
| bool | hasCachedQtTranslator () const |
Protected Member Functions | |
| QTranslator * | translator () |
| Create a Qt translator. | |
| QTranslator * | qtTranslator () |
| Create a Qt translator. | |
| void | translatorDone () |
| Discard cached copy of the translator. | |
| void | addMetadata (const QString &key, const QString &value) |
| Insert some metadata. More... | |
Friends | |
| class | Translate |
brief description
| TransLang::TransLang | ( | const QString & | dir, |
| const QString & | langfile, | ||
| const QString & | name, | ||
| const QString & | icon, | ||
| const QString & | locale | ||
| ) |
Constructor that creates a valid instance.
...
| TransLang::TransLang | ( | ) |
Default constructor that creates an invalid instance.
This constructor is only useful for creating the invalid instance used by the manager.
|
virtual |
Destructor.
...
|
protected |
Insert some metadata.
...
| bool TransLang::isValid | ( | ) | const |
Tell if this instance is valid or not.
...


{% extends "users/layout.html" %} {% block body %}
Please select if you would like to wear/use one of these:
Please select your first layer:
Please select your choice of pants:
Please select your outer layer:
Please select if you would like to wear a winter coat:


Hello John,
A Sinnu Support Ticket has been created on your behalf
TICKET SUBJECT:[Ticket: Title]
TICKET NUMBER: [Ticket: Number] (Please reference this ticket number in all associated communication)
We will review the ticket information and follow up with you shortly. If the ticket is urgent and you haven't let us know already, please reply with the word "urgent" in your message.
If we need more information to resolve the issue or to schedule support time, we will contact you via email or phone. Please let us know if there are any errors in the contact information we have for you:
EMAIL<EMAIL_ADDRESS>PHONE:<PHONE_NUMBER>
TIME ZONE: GMT - 5:00
Thank you.
Sinu Support Team
<EMAIL_ADDRESS>(212) 380-1230
Ticket Details --
Ticket Title: [Ticket: Title]
Ticket Number: [Ticket: NUmber (with link)]
Status: [Ticket: Status]
Priority: [Ticket: Priority]
Due: [Ticket: Due Date] - [Ticket: Due Time]
Sinu Contact Information --
Assigned Resource: [Resource: Name]
E-Mail: [Resource: Email Address]
Phone: [Resource: Office Phone]
Customer Contact Information --
Name: [Ticket: Contact]
Company: [Ticket: Account]
Email: [Contact: Email Address]
Phone: [Contact: Phone][Contact: Phone Ext.]
Time Zone: [Ticket: Time Zone]
Your Original Support Request, Dated [Ticket: Created]


Sleepers (1996) A film review by Michael Dequina Copyright 1996 Michael Dequina
Sleepers (R) *** Based on a true story or not, Barry Levinson's adaptation of Lorenzo Carcaterra's best-selling novel is a perfectly competent Hollywood revenge fantasy. The problem is, the film is not quite as great as it thinks it is. This story of "friendship that runs deeper than blood" opens in Hell's Kitchen in the late 1960s, where we meet a group of four young boys, Michael (Brad Renfro), Tommy (Jonathan Tucker), John (Geoffrey Wigdor), and the author himself, Lorenzo, a.k.a. Shakes (Joseph Perrino). These troublemaking but well-meaning kids get more than they bargained for when a prank goes awry and they land in a hellish boys' reform school, where they are treated to violent physical and sexual abuse by four of the guards, led by one nasty fellow by the name of Sean Nokes (Kevin Bacon). After the kids finish their sentence, the film flashes forward to 1981, where the film's problems begin. The four guys have now just about gone their separate ways and lost touch with each other--is this what you call a "friendship that runs deeper than blood"? John (former ER recurrent Ron Eldard) and Tommy (Billy Crudup) are now bigtime hoodlums, and, in a fortuitous coincidence, they run into and fatally shoot Nokes in a restaurant. Enter Michael (Brad Pitt), who is now a New York assistant DA, who agrees to prosecute the case against John and Tommy--and, unbeknownst to this two childhood friends, plans to intentionally throw the case to let the two off and have their revenge. Helping in the elaborate revenge scheme is, yes, Shakes (Jason Patric), now a clerk for the New York Times, who also engineers the downfall of their other three tormentors at the school. I suppose it goes without saying that all works out in the end--but, of course, not without an easily overcome glitch or two. And those seeking a glossy revenge tale in which the baddies get their just desserts won't be disappointed with Sleepers; well-acted and smoothly directed, it gets the job done... but only on those terms. Watching the film I could not help but feel other grandiose intentions at work, ambitions that weren't quite met. The impressive cast (which also includes Robert DeNiro as the kids' priest and a hilarious Dustin Hoffman as John and Tommy's alcoholic, drug-addicted defense attorney), John Williams's shockingly understated and somber score, and Patric's flat, pretentious voiceover narration ("Hell's Kitchen is a place of innocence ruled by corruption") suggests a big Oscar-worthy tale. But it isn't, at least not in this critic's opinion. The "true" story relies too heavily on contrived coincidences and, worst of all, shortchanges major characters. Despite their role in killing Nokes, John and Tommy are virtually invisible in the second half; never do we get a glimpse of insight as to what they are feeling during the trial, seeing their friend "trying" to put them away. It is quite obvious why director-scripter Levinson focused on matinee idols Pitt and Patric, but their side of the story is perhaps the least interesting. Also, DeNiro's character is called on to make a major ethical and religious choice, and we never really get a sense as to why and how he arrives at his ultimate decision; it just happens. As mentioned before, the cast, to varying degrees, does a good job. Top honors go to DeNiro, Hoffman, Perrino, and Minnie Driver as the four's pal. Bacon exudes appropriate menace in the one-note role of Nokes. Patric and Pitt are adequate, but they, Patric especially, suffer from accent inconsistencies. Perrino has a very thick New York accent, and Patric barely makes an effort to use one; while time has passed, I doubt that a boy with that thick of an accent could shake it off so completely no matter where he lived or whatever speech coach he may have had. The only star whose accent is in line with his or her younger counterpart is Driver, whose very convincing accent comes as somewhat of a surprise, considering her natural British lilt. Eldard and Crudup don't make enough of an impression because they are called on to do so little. Crudup has been hailed along with the likes of That Thing You Do!'s Johnathon Schaech as a Hollywood "it" boy, a superstar of tomorrow; based on his limited work here, it is hard to see how that buzz originated. It may appear as if I didn't enjoy Sleepers, but I did; I got caught up in the story and the characters. But this good film had the potential to be a great film, a true Oscar contender that, alas, didn't quite make it to the screen.
Michael Dequina<EMAIL_ADDRESS><EMAIL_ADDRESS>/<EMAIL_ADDRESS><EMAIL_ADDRESS>/<EMAIL_ADDRESS>Visit Mr. Brown's Movie Site at http://members.tripod.com/~MrBrown/ Personal Page: http://members.tripod.com/~MrBrown/home.html
"It's not my fault If in God's plan He made the devil so much Stronger than a man" --Frollo (Tony Jay), "Hellfire," Disney's The Hunchback of Notre Dame
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


Chocolate Pizza
POSTED ON 15 DEC 2013 / DESSERTS
For the fig-swirl: Melt butter over medium heat in a saucepan. Add brawn sugar and stir to dissolve Halve all of the figs and toss in the saucepan with water and lemon juice, Cook over medium heat, stirring frequently, until you have a chunky-jammy mixture. Add salt with one or two stirs, ser aside and let cool completely.
Ice cream: In a small pot over medium heat, combine milk, and granulated sugar until sugar is completely dissolved and the milk is just barely lukewarm. Whisk in the egg yolks. Set mixture in the fridge and wait until the fig mixture is cooled.
Using an ice cream machine, paur liquids into the frozen basiin and process according to manufacturer instructions, i.e, let spin and thicken for 20 minutes before adding mascarpone, figjam mixture, and the nuts. Continue to process for +/- 10 minutes. Pour serni frozen mixture into a pyrer dish or glass tupperware. Freeze for at least two hours before serving.


NEWSIES A film review by Frank Maloney Copyright 1992 Frank Maloney
NEWSIES is a film directed and choreographed by Kenny Ortega. The songs are by Alan Menken and Jack Feldman. It stars Christian Bale, David Moscow, Luke Edwards, Robert Duvall, and Ann-Margaret. It is rated PG for mature themes.
NEWSIES is a live-action musical from Walt Disney. After Disney's recent successes with animated musicals, also featuring Alan Menken as co-composer, no doubt encouraged Disney to try to revive this mostly moribund genre. The result is a thorough enjoyable renewal of one of my favorite forms.
The story is based on an historical strike of newsboys, newsies, in New York City in 1899 against Joseph Pulitzer. There is, despite the irony of Disney's own anti-union history, a moral quality behind the leaping, flips, splits, and jumps that characterize the choreography, a protest against the exploitation of children and the anyone helpless in the face of money and power. There's a lot of uplift in this musical, so watch out.
The music is excellent. It advances the story rather than interrupting it, it is tuneful, if you will, and it avoids both the cliches of Andrew Lloyd Weber pseudo-operas and MTV dance videos. The director, Kenny Ortega, took on a big job in staging and filming several very large, busy production numbers; this is his first directing job, having been a choreographer only before, and some awkwardness is inevitably apparent. But still, he is more to be praised than cavilled. It is by and large very impressive technically and artistically.
The dance numbers are energetic, even athletic, as befits a cast of young boys and teenagers, and heavily populated. Christian Bale has one solo dance number, which is charming and surprisingly good, with smaller gestures and its own narrative vocabulary than the big production numbers. The performances are delivered with a fine conviction, a purity, that won me over from the opening number.
Christian Bale, by the way, is the wonderful boy star of Stephen Spielberg's EMPIRE OF THE SUN (1987), who is mostly grown up to a talented manhood now. He is still a master of the mixed message, being at once vulnerable and malevolent. He backed up by David Moscow, a more conventional kind of star, but still quite appealing in his own way. Robert Duvall shows up sporting a patently false beard as Joseph Pulitzer, whom Duvall brings to life through his vast and perceptive treasury of shtick; in this case, Duvall accents Pulitzer's Jewishness with a perhaps distracting repertoire of gestures right out of I REMEMBER MAMA. Of course, even Duvall can only do so much with a script that largely reduces Pulitzer to two-dimensional villain. The show is rife with juicy villains and they provide a lot of the fun.
One should also mention the appearance of Ann-Margaret as Medda the Swedish Meadowlark. She has a couple of numbers and gets to strut her stuff behind a purple ostrich fan.
On the technical side, a side I am barely competent to even refer to, one has to be impressed by the detailed and authentic-looking sets and costumes of fin-de-siecle New York, especially the Lower East Side. But especially stunning are the mattes, especially one of the Brooklyn Bridge that so amazing that it gets its own credit. Surely, it will be remembered next Oscartide.
Disney deserves a lot of thanks for taking on the risking business of reviving the live musical and in doing it in such a grand manner. It is not without reason that one of the persons particularly remembered in the credits, along with Howard Ashman (Menken's late partner), is Gene Kelly.
I'm not saying the film is perfect, especially in the editing and shooting of the dance scenes. I am saying it's pretty darn good and better than anything that's come along in a long while in this genre.
If you like musicals, you will like NEWSIES, and you will gladly pay whatever it takes to see it. If you don't think you do like them, you might want to risk a matinee ticket and give this one a try. It might very well surprise you. It did me.
-- Frank Richard Aloysius Jude Maloney .
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


Spree 1.3.0 is the first release of the 1.3.x branch of Spree. This release contains some major non-breaking changes, which are covered in the release notes below.
Due to the long development cycle of Spree 1.3 in parallel with continuing development of the 1.1 branch, there may be bug fixes released in 1.3 that are already present in the latest release of 1.2.
Here’s a quick summary of the major features in this release:
- Admin redesign
- Currency support for variants
Major changes
Admin redesign
Alexey Topolyanskiy has done some amazing work performing a makeover for the admin backend for Spree, something that has been long overdue!
Currency support
Thanks to work by Gregor MacDougall and the team at Free Running Technologies, Spree’s Variant model now is able to keep track of a different price for different currencies.
Minor changes
Remove child node from API responses
The API has previously returned data with a child node within its responses. Take this example from /api/products
:
{
[products]() [
{
[product]() {
[id]() 1,
…
}
}]
}
This response will now be returned without the child nodes, like this:
{
[products]() [
{
[id]() 1,
…
}
]
}
API requests can now ask for different Rabl templates
If you would like to make a request to the API use a different Rabl template, pass the template’s name within the request as an X-Spree-Template
header or template parameter, and Spree will automatically use that template to render the response.
For instance, if you have a template at app/views/spree/api/products/special_show.v1.rabl
, to render that template the X-Spree-Template
header or template
parameter would need to be simply “special_show”. This will allow you to customize the responses from Spree’s API extremely easily.
Jirafe false positive conversions
We’ve had a number of reports of Jirafe false positive conversions within Spree (#2273 #2211 and #2157)
This issue should now be fixed based on this commit
Other changes
- Fix issue where return authorization form would crash if a variant had an ID with a large value commit
- Don’t process payments if payments are not required #2025
- Payments are now applied one at a time until the order total is met, rather than processing all payments at the same time. #1954 #2008
- Exclude expired promotions from Product#possible_promotions #2058
- Pass all changes to Variant#count_on_hand to Variant#on_hand= to ensure backorders are processed correct commit
- Use select2 for properties and option types on prototype form to display options better. #2077
- Clicking ‘Checkout’ on the cart page will now update the order and redirect to the address form, rather than just redirecting to the address form. #2086
- The searcher class now has access to the current user. #2089
- Allow anonymous requests to the API. commit
- Don’t clear mail method or payment method passwords if they’re not included in a request. #2094
- An order is marked as returned automatically if all return authorizations are received. #1714 #2099
- Added on_demand field for variants, indicating that the variant is an “on demand” item. #1940 #2080
- Product.in_taxons does not return duplicate products commit
- Spree::Product.on_hand no longer sums with deleted variants #2112
- Payment#capture! will no longer work on completed payments. #2119
- Fix “Order adjustments” translation #2123
- Order#create_tax_charge! is called whenever a line item is added or removed from an order. #1418
- Don’t allow void_transaction! to operate on a payment which is already void. #2119
- Strip EXIF data from images #2142
- Display promotion usage data in admin #2193
- Remove display_on option for Payment Methods. #1918
- Add Order#variants, to get a list of variants associated with an order. #2195
- Fix issue when trying to move taxon to the bottom of the tree #2180
- Show only one validation message for an order’s email if left blank on the checkout #2214
- Taxonomies can now be reordered #2237
- Order#merge no longer uses Order#add_variant. For an explanation, see this commit
- Orders with promotions that “zero” the order total will no longer skip delivery step if that step is required. #2191
- Jirafe analytics can now be edited after registration #2238
- awesome_nested_set version has been bumped to 2.1.5 commit
- Order details page no longer errors if a payment’s credit card type is blank #2282
- No longer transition to complete if payment is required and there are payments due. commit
- Refactored preference fetching from the preference store commit
- Order#checkout_steps will now always include the “Complete” step. commit
- Allow “first order for user” promotion to work with guest users as well #2306
- Always show “resend” (email confirmation) button when viewing an order in admin backend. #2318
- Made sure that shipment for resumed order can be set to “ready” #2317


**Expressive Vector Engine**
`eve::signnz`
(insert ../../../crumbs.html here)
Synopsis
====================================================================================================
**Required header:**
Function object representing the signnz operation.
Member functions
====================================================================================================
Performs the [element-wise](../../../glossary.html#element-wise) never zero sign operation on its parameter.
Parameters
----------------------------------------------------------------------------------------------------
`x`
: [value](../../concepts.html#value).
Return value
----------------------------------------------------------------------------------------------------
Computes [element-wise](../../../glossary.html#elment-wise) the never zero sign of `x`.
For [real value](../../concepts.html#value) `x` is semantically equivalent to:
* If x is positive, 1 is returned.
* If x is negative -1 is returned.
* If x is `Nan`, the result is `Nan`.
For [floating real value](../../concepts.html#value) the positivity is only here based on the bit of sign.
In particular -0.0 is negative and +0.0 is positive.
(insert ../../src/signnz.src.html here)
(insert ../../out/signnz.out.html here)
See Also
====================================================================================================
[eve::signnznz](eve::signnzz)


Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
G
H
I
L
M
O
P
R
S
T
U
V
W
_
G
getAllowsChildren()
- Method in class ontopt.pen.
SemanticNode
getAllRulesWithHead(Integer)
- Method in class ontopt.pen.
Grammar
Get all rules that begin with the specified Head.
getAllRulesWithHead(String)
- Method in class ontopt.pen.
Grammar
getAllTerminals()
- Method in class ontopt.pen.
Grammar
getAnnotation()
- Method in class ontopt.pen.
Rule
getAnnotation()
- Method in class ontopt.pen.
SemanticNode
getBody()
- Method in class ontopt.pen.
PhraseRule
Gets the list representing the body
getChartRow(int)
- Method in class ontopt.pen.
Chart
Gets the row at the specified index
getChartRowFromState(Integer)
- Method in class ontopt.pen.
ChartRow
Gets the row corresponding to the specified state
getChildCount()
- Method in class ontopt.pen.
SemanticNode
getChildren()
- Method in class ontopt.pen.
SemanticNode
getCloneOfNode()
- Method in class ontopt.pen.
SemanticNode
Creates a copy of this node without the parents.
getDataType(Integer)
- Method in class ontopt.pen.
Grammar
Transforms an Integer ID in the corresponding String representation.
getDot()
- Method in class ontopt.pen.
ChartRow
Gets the position of the dot relative to the size of this rule
getGrammar()
- Method in class ontopt.pen.
EarleyParser
getGrammarFileName()
- Method in class ontopt.pen.
Grammar
getHead()
- Method in class ontopt.pen.
Rule
Gets the Integer representation if this rule.
getIndex(String)
- Method in class ontopt.pen.
PenSentence
getLabel()
- Method in class ontopt.pen.
SemanticNode
getLastParseTime()
- Method in class ontopt.pen.
EarleyParser
Get time spent in last parse
getLeftCorner()
- Method in class ontopt.pen.
SemanticNode
Gets the left most node
getNextConstituent()
- Method in class ontopt.pen.
ChartRow
Gets the next part of rule that needs to be fired
getNodes(String)
- Method in class ontopt.pen.
SemanticNode
Returns a list of nodes with a specified label
getParents()
- Method in class ontopt.pen.
ChartRow
Gets the list of parents
getPositions()
- Method in class ontopt.pen.
ChartRow
gets the array corresponding to the position of where this rule begins and where the dot lies.
getRoots()
- Method in class ontopt.pen.
Chart
Gets the rows which have succeeded in parsing the sentence.
getRule()
- Method in class ontopt.pen.
ChartRow
The rule associated to this row
getRulesContaining(Integer)
- Method in class ontopt.pen.
Grammar
getRulesContaining(String)
- Method in class ontopt.pen.
Grammar
getScore()
- Method in class ontopt.pen.
SemanticNode
getSentenceSize()
- Method in class ontopt.pen.
PenSentence
getSentenceSize()
- Method in class ontopt.pen.
Sentence
getSentenceSize()
- Method in class ontopt.pen.
SimpleSentence
getState()
- Method in class ontopt.pen.
ChartRow
Gets the state of this row, the state is a unique id
getSubsequence(int)
- Method in class ontopt.pen.
PenSentence
getSubsequence(int, int)
- Method in class ontopt.pen.
PenSentence
getTerminal(String)
- Method in class ontopt.pen.
Grammar
getTerminals()
- Method in class ontopt.pen.
SemanticNode
Returns a list of leaves
getTrees()
- Method in class ontopt.pen.
EarleyParser
Gets the parse trees associated to the current charts
getWeight()
- Method in class ontopt.pen.
Rule
getWeight()
- Method in class ontopt.pen.
SemanticNode
getWord(int)
- Method in class ontopt.pen.
PenSentence
Returns the word at the specified index
getWord(int)
- Method in class ontopt.pen.
Sentence
Returns the word at the specified index
getWord(int)
- Method in class ontopt.pen.
SimpleSentence
Returns the word at the specified index
getWord()
- Method in class ontopt.pen.
TerminalRule
Gets the word associated to the terminal symbol
Grammar
- Class in
ontopt.pen
Class from PEN Parser.
Grammar(String)
- Constructor for class ontopt.pen.
Grammar
The constructor
grammar
- Variable in class ontopt.pen.
Rule
The grammar that contains this rule
GrammarException
- Exception in
ontopt.pen
Class from PEN Parser.
GrammarException(String)
- Constructor for exception ontopt.pen.
GrammarException
GrammarValidator
- Class in
ontopt.pen
Class from PEN Parser.
GrammarValidator(Grammar)
- Constructor for class ontopt.pen.
GrammarValidator
Package
Class
Use
Tree
Deprecated
Index
Help
PREV LETTER
NEXT LETTER
FRAMES
NO FRAMES
All Classes
A
B
C
D
E
G
H
I
L
M
O
P
R
S
T
U
V
W
_


This is the first 1,000 bits (
After
the radix point) of π (in binary)
Here a hot face emoji indicates a 0 and a cold face emoji indicates a 1
[π in base 2 = 11.
00100100001111110110101010.....
]
This is written in C btw 😎


YouTuber's gender reveal by way of fart stunt draws strong reactions
by Gerren Keith GaynorA popular YouTuber has taken the gender reveal craze to an entirely new level.
Prankster Paige Ginn shocked her 300,000 Instagram followers on Tuesday in a video where she appears to reveal the gender of her baby by passing gas. It's unclear whether or not Ginn is actually pregnant or was using the gender reveal as a provocation.
The cheeky stunt, which had been viewed more than 700,000 times as of Thursday night, shows Ginn lying on the ground in front of blue and pink balloons. Within seconds, she releases blue smoke from her rear end just before people are seen celebrating in the background.
Reactions to the video were colorful.
TO SEE VIDEO CLICK HERE - WARNING: GRAPHIC VIDEO
IOWA WOMAN, 56, DIES IN GENDER-REVEAL PARTY EXPLOSION, POLICE SAY
“This is the trashiest thing I've ever seen but damn if it isn't original,” one person said.
“At least she didn't start a wildfire or get someone killed,” another wrote.
“Honestly the best thing I’ve seen in a long time. Can’t stop laughing,” someone wrote on Instagram.
Another person commented, “The amount of control you have over your rear end and what comes out of it is unparalleled …
TEXAS 'ALIEN'-THEMED GENDER REVEAL STUNS FAMILY: 'WE WERE A LITTLE WORRIED'
“Now everyone can stop doing gender reveals. This can never be topped,” another person said.
Not everyone found the gender reveal performance to be entertaining.
CLICK HERE TO SIGN UP FOR OUR LIFESTYLE NEWSLETTER
“TOTALLY DISGUSTING!!
 “I hope YouTube takes this very immature thing down and her content is pure trash! Get this girl off YouTube and that poor kid... if she even pregnant.”
Most reactions, however, indicated that people took the provocative video in jest.
CLICK HERE TO GET THE FOX NEWS APP
“I have never seen a girl literally shatter the perceived notion of feminine daintiness in the name of a cheap raunchy laugh as much as you do,” an Instagram follower wrote. “And I bust a gut laughing through every second of it. You are amazing … I will be a fan of yours forever.”


Because no one likes to repeat things here’s a compilation of answers to questions I’m often asked. For the most part they’re related to my experience drawing on an iPad with the app Paper by FiftyThree.
Why Do You Only Use the Paper App?
It’s hard to explain but Paper’s tools feel more natural to me than other iOS sketching apps. An app like Procreate — while full of impressive features simply doesn’t hold the same appeal for me.
I suppose the main reason I enjoy Paper over the rest is the challenge of capturing realism with it. With other apps it’s fairly trivial to import a photograph and trace over it and fake your way through it — Paper not so much. When creating an illustration in Paper you have to approach it like you would with physical tools and media. I like that.
Do You Use a Stylus to Draw on an iPad?
I draw and paint with several different styli, each with their pros and cons (see below).
Which Stylus Do You Recommend for Paper?
The first iPad stylus I purchased was a [Just-Mobile AluPen][alupen-stylus] and used it for quite some time before the rubber tip wore out. The AluPen’s tip isn’t replaceable so I ended up using a [LunaTik Alloy Touch Pen][lunatik-stylus] next.
I like the Touch Pen because it’s built to last. The tip isn’t a squishy rubber nib like many others and is super durable. I’ve drawn close to 400 portraits with it and it works just as flawless as the day I got it. I’d still be using it if I hadn’t been lured over to the dark-side of Bluetooth styli.
Speaking of Bluetooth styli, I now use a [Pogo Connect][pogo-stylus] about 99% of the time. For the other 1% I use [53’s Pencil][pencil-stylus] to activate the Blend feature when I want to create reflections, bokehs, and other blur effects.
| Stylus | My Quick Impressions |
|---|---|
| [Just-Mobile AluPen][alupen-stylus] | Lasted me a few months before wearing out. Tips aren’t replaceable. |
| [LunaTik Alloy Touch Pen][lunatik-stylus] | My trusted sidekick for a long long time. Tip took some serious abuse. |
| [Ten One Design Pogo Connect][pogo-stylus] | Most of my drawings are done with a Pogo Connect now. Two broke due to bad hardware design. Wore through about four R2 tips. Connectivity issues are maddening. |
| [Pencil by FiftyThree][pencil-stylus] | Super reliable when I’m not wearing out tips in a few days. Flirting with it again after recent Paper update that scales tools when zoomed in. |
| [ZEN 3 in 1][zen-stylus] | Precision disc tip dead on arrival. Rubber nib still going strong. |
| [Universal Touch Screen Pen][cheap-stylus] | Cheap, small, light, and pretty crappy. Comes in a 3 pack that I have as a backup if I ever lose my other styli. |
Which iPad Do You Have?
I draw on a 3rd Generation iPad with Retina screen. I’ve been holding off upgrading because the screens on the new iPad Air do not work well with a Pogo Connect stylus.
The small 16GB of memory my iPad came with is almost full which is probably going to force my hand soon. Now that I’m using Pencil more maybe it won’t be such a big deal, especially when Paper receives “Surface Pressure” with iOS 8.
How Did You Learn to Draw on an iPad?
Short answer: Practice — lots and lots of practice. I learn something new every time I drag my stylus or finger across the iPad’s glass screen. If you’re looking for a shortcut to this there really isn’t one. The best way to improve is by putting the time into learning your craft through experimentation.
Longer answer: I dual majored in graphic design and illustration at the Rochester Institute of Technology with a minor in fine art, so I had a lot of exposure to drawing as part of my curriculum. I learned the fundamentals of capturing 3-dimensional forms from hours of drawing live models with charcoal on large pads of newsprint.
After graduating college I got really rusty at drawing because I stopped doing it for about 13 years. To get my skills b
How Do You Draw Those Square Frames?
Have You Ever Thought About Creating a Mastering Paper Book?
I have. Once I finish the next couple of tutorials I want to look into creating an eBook version or possibly a printed version.
I would love to print Moleskine books of the guides using Paper’s Book feature, but I don’t think that will be cost effective. At $50+ a pop that doesn’t exactly scream affordable.
How to Export High Resolution Paper Drawings to the Camera Roll?
The image size you can export is only as large as your iPad’s native resolution. If you care about getting more pixels out of your Paper art then an iPad Air is the way to go.
To get the best quality image out of Paper I export to the iPad’s camera roll and then transfer it with either iCloud’s Photostream or Dropbox. For an untainted image without the eggshell background tapping the Camera Roll icon brings up an option toggle the background off or on. When toggled off you will end up with a PNG file with a transparent background (if you didn’t fill with another color).
How Do You Make Videos of Your Paper Drawings?
My latest videos were made using Reflector to record the iPad’s screen and then edited in Adobe AfterEffects to speed them up, include music, and add overlays.
As long as you have an iPad 2 or newer you can use Reflector. Basically you turn on AirPlay mirroring on the iPad and it lets you beam it over to a Mac or PC running Reflector.
My earlier time lapse videos were simply screenshots1 that I converted into sped up Quicktime movies using iPhoto’s slideshow feature. They’re not as dramatic looking because you don’t see the actual strokes happening, but still neat in a low tech kind of way.
I’ve also experimented with recording the actual drawing process with my iPhone and speeding that up. Removing glare from the iPad’s screen was a real challenge for me and I had mixed results with the final videos. For those who have more patience the results can be quite impressive.
-
Press and hold the iPad’s power and home buttons at the same time. You will see a flash and hear the camera’s shutter close if done correctly. ↩