| ACTBUS | Total value of actively managed business(es), 2016 dollars |
| AGE | Age of head of household |
| AGECL | Age group of the head of household |
| ANNUIT | Amount R would receive if they cashed in annuities, 2016 dollars |
| ANYPEN | Pension exists for either head of household or spouse |
| ASSET | Total value of assets held by household, 2016 dollars |
| ASSETCAT | Asset percentile groups |
| BCALL | Information used for borrowing decisions: call around |
| BDONT | Information used for borrowing decisions: never borrow |
| BFINPLAN | Information used for borrowing decisions: lawyer, accountant, financial planner |
| BFINPRO | Information used for borrowing decisions: banker, broker, real estate broker, builder, dealer, insurance agent |
| BFRIENDWORK | Information used for borrowing decisions: friends, material from work/business contacts |
| BINTERNET | Information used for borrowing decisions: internet/online service |
| BMAGZNEWS | Information used for borrowing decisions: magazines, newspapers, books |
| BMAILADTV | Information used for borrowing decisions: material in mail, tv, radio, advertisements, telemarketer |
| BNKRUPLAST5 | Household has declared bankruptcy in the past 5 years |
| BOND | Total value of directly held bonds held by household, 2016 dollars |
| BOTHER | Information used for borrowing decisions: other sources |
| BPLANCJ | Either head or spouse/partner has both types of pension plan on a current job |
| BSELF | Information used for borrowing decisions: self, shop around, other personal research |
| BSHOPGRDL | Shopping for borrowing and credit: great deal of shopping |
| BSHOPMODR | Shopping for borrowing and credit: moderate shopping |
| BSHOPNONE | Shopping for borrowing and credit: almost no shopping |
| BUS | Total value of business(es) in which the household has either an active or nonactive interest, 2016 dollars |
| BUSSEFARMINC | Income from business, sole proprietorship, and farm, 2016 dollars |
| BUSVEH | Household has vehicle(s) owned by business |
| CALL | Total value of call accounts held by household, 2016 dollars |
| CANTMANG | Why no checking account: can't manage/balance a checking account |
| CASEID | Case ID (numeric) |
| CASHLI | Total cash value of whole life insurance held by household, 2016 dollars |
| CCBAL | Total value of credit card balances held by household, 2016 dollars |
| CDS | Total value of certificates of deposit held by household, 2016 dollars |
| CHECKING | Total value of checking accounts held by household, 2016 dollars |
| CKCONNECTN | Why chose main checking account institution: connection through work/school |
| CKCONVPAYRL | Why chose main checking account institution: other convenience, payroll deduction/direct deposit |
| CKLOCATION | Why chose main checking account institution: location of their offices |
| CKLONGTIME | Why chose main checking account institution: always done business there, banked there a long time |
| CKLOWFEEBAL | Why chose main checking account institution: had the lowest fees/minimum balance requirement |
| CKMANYSVCS | Why chose main checking account institution: able to obtain many services at one place |
| CKOTHCHOOSE | Why chose main checking account institution: other reason |
| CKPERSONAL | Why chose main checking account institution: personal relationship |
| CKRECOMFRND | Why chose main checking account institution: recommended, friend/family has account there |
| CKSAFETY | Why chose main checking account institution: offered safety and absence of risk |
| COMUTF | amount in combination and other mutual funds, 2016 dollars |
| CONSPAY | total monthly consumer debt payments, 2016 dollars |
| CPI_DEFL | Deflator Value |
| CREDIT | Why no checking account: credit problems, bankruptcy, does not meet qualifications for an account |
| CURRPEN | current value in pension, 2016 dollars |
| DBPLANCJ | Either head or spouse/partner has a defined benefit pension on a current job |
| DBPLANT | Either head or spouse/partner has DB plan on current job or some type of pension from a past job to be received in the future |
| DCPLANCJ | Either head or spouse/partner has any type of account-based plan on a current job |
| DEBT | Total value of debt held by household, 2016 dollars |
| DEBT2INC | Ratio of total debt to total income |
| DEQ | Total value of equity in directly held stocks, stock mutual funds, and combination mutual funds held by household, 2016 dollars |
| DONTLIKE | Why no checking account: don't like dealing with banks |
| DONTWANT | Why no checking account: does not want/need a checking account |
| DONTWRIT | Why no checking account: don�t write enough checks to make it worthwhile |
| EDCL | Education category of head of household |
| EDN_INST | Total value of education loans held by household, 2016 dollars |
| EDUC | Highest completed grade by head of household |
| EHCHKG | people w/o checking accounts: ever had an account? |
| EMERGBORR | Respondent would borrow money in a hypothetical financial emergency |
| EMERGCUT | Respondent would cut back spending in a hypothetical financial emergency |
| EMERGPSTP | Respondent would postpone payments in a hypothetical financial emergency |
| EMERGSAV | Respondent would spend out of savings in a hypothetical financial emergency |
| EQUITINC | ratio of equity to normal income |
| EQUITY | Total value of financial assets held by household that are invested in stock, 2016 dollars |
| EXPENSHILO | Households overall expenses over last 12 months |
| FAMSTRUCT | Family structure of household |
| FARMBUS | compute value of business part of farm net of outstanding mortgages, 2016 dollars |
| FARMBUS_KG | capital gains on farm businesses, 2016 dollars |
| FEARDENIAL | Household feared being denied credit in the past 5 years |
| FIN | Total value of financial assets held by household, 2016 dollars |
| FINLIT | Number of financial literacy questions answered correctly |
| FOODAWAY | Total amount spent on food away from home, annualized, 2016 dollars |
| FOODDELV | Total amount spent on food delivered to home, annualized, 2016 dollars |
| FOODHOME | Total amount spent on food at home, annualized, 2016 dollars |
| FORECLLAST5 | Respondent had a foreclosure in the last five years |
| FUTPEN | future pensions (accumulated in an account for the R/S), 2016 dollars |
| GBMUTF | amount in government bond mutual funds, 2016 dollars |
| GOVTBND | US government and government agency bonds and bills, 2016 dollars |
| HBORRALT | Respondent would borrow money from alternative sources in a hypothetical financial emergency |
| HBORRCC | Respondent would borrow money using a credit card in a hypothetical financial emergency |
| HBORRFF | Respondent would borrow money from friends or family in a hypothetical financial emergency |
| HBORRFIN | Respondent would borrow money from financial services in a hypothetical financial emergency |
| HBROK | have a brokerage account |
| HBUS | Have active or nonactively managed business(es) |
| HCUTENT | Respondent would postpone payments for entertainment in a hypothetical financial emergency |
| HCUTFOOD | Respondent would cut back on food purchases in a hypothetical financial emergency |
| HCUTOTH | Respondent would postpone other payments in a hypothetical financial emergency |
| HDEBT | Household has any debt |
| HELOC | Total value of home equity lines of credit secured by the primary residence held by the household, 2016 dollars |
| HELOC_YN | Currently borrowing on home equity line of credit |
| HHSEX | Gender of household head |
| HLIQ | Household has any checking, savings, money market or call accounts |
| HMORT2 | Have junior lien mortgage not used for purchase of primary residence |
| HOMEEQ | Total value of equity in primary residence of household, 2016 dollars |
| HOUSECL | Home-ownership category of household |
| HOUSES | Total value of primary residence of household, 2016 dollars |
| HPAYDAY | Household had a payday loan within the past year |
| HPRIM_MORT | Have first lien mortgage on primary residence |
| HPSTPLN | Respondent would postpone payments on loans in a hypothetical financial emergency |
| HPSTPOTH | Respondent would postpone other payments in a hypothetical financial emergency |
| HPSTPPAY | Respondent would postpone payments for purchases in a hypothetical financial emergency |
| HSAVFIN | Respondent would spend out of financial sources in a hypothetical financial emergency |
| HSAVNFIN | Respondent would spend out of non-financial sources in a hypothetical financial emergency |
| HSEC_MORT | Have junior lien mortgage on primary residence |
| HSTOCKS | have stocks? |
| HTRAD | traded in the past year |
| ICALL | Information used for investing decisions: call around |
| IDONT | Information used for investing decisions: never borrow |
| IFINPLAN | Information used for investing decisions: lawyer, accountant, financial planner |
| IFINPRO | Information used for investing decisions: banker, broker, real estate broker, builder, dealer, insurance agent |
| IFRIENDWORK | Information used for investing decisions: friends, material from work/business contacts |
| IINTERNET | Information used for investing decisions: internet/online service |
| IMAGZNEWS | Information used for investing decisions: magazines, newspapers, books |
| IMAILADTV | Information used for investing decisions: material in mail, tv, radio, advertisements, telemarketer |
| INCCAT | Income percentile groups |
| INCOME | Total amount of income of household, 2016 dollars |
| INCPCTLECAT | Alternate income percentile groups |
| INDCAT | Industry classifications for head |
| INSTALL | Total value of installment loans held by household, 2016 dollars |
| INTDIVINC | Interest (taxable and nontaxable) and dividend income, 2016 dollars |
| INTERNET | Do business with financial institution via the Internet |
| IOTHER | Information used for investing decisions: other sources |
| IRAKH | Total value of IRA/Keogh accounts, 2016 dollars |
| ISELF | Information used for investing decisions: self, shop around, other personal research |
| ISHOPGRDL | Shopping for saving and investments: great deal of shopping |
| ISHOPMODR | Shopping for saving and investments: moderate shopping |
| ISHOPNONE | Shopping for saving and investments: almost no shopping |
| KGBUS | Unrealized capital gains or losses on businesses, 2016 dollars |
| KGHOUSE | Unrealized capital gains or losses on the primary residence, 2016 dollars |
| KGINC | Capital gain or loss income, 2016 dollars |
| KGORE | Unrealized capital gains or losses on other real estate, 2016 dollars |
| KGSTMF | Unrealized capital gains or losses on stocks and mutual funds, 2016 dollars |
| KGTOTAL | Total unrealized capital gains or losses for the household, 2016 dollars |
| KIDS | Total number of children in household |
| KNOWL | Respondent's knowledge of personal finances |
| LATE | Household had any late debt payments in last year |
| LATE60 | Household had any debt payments more than 60 days past due in last year |
| LEASE | have leased vehicle |
| LEVRATIO | Ratio of total debt to total assets |
| LF | Labor force participation of head of household |
| LIFECL | Life cycle of head of household |
| LIQ | Total value of all types of transactions accounts, 2016 dollars |
| LLOAN1 | Total balance of household loans where the lender is a commercial bank, 2016 dollars |
| LLOAN10 | Total balance of household loans where the lender is a store and/or a credit card, 2016 dollars |
| LLOAN11 | Total balance of household loans where the lender is a pension, 2016 dollars |
| LLOAN12 | Total balance of household loans where the lender is other, unclassifiable, or foreign, 2016 dollars |
| LLOAN2 | Total balance of household loans where the lender is saving and loan, 2016 dollars |
| LLOAN3 | Total balance of household loans where the lender is credit union, 2016 dollars |
| LLOAN4 | Total balance of household loans where the lender is finance, loan or leasing company, or inc debt consolidator, 2016 dollars |
| LLOAN5 | Total balance of household loans where the lender is a brokerage and/or life insurancer, 2016 dollars |
| LLOAN6 | Total balance of household loans where the lender is a real estate company, 2016 dollars |
| LLOAN7 | Total balance of household loans where the lender is an individual, 2016 dollars |
| LLOAN8 | Total balance of household loans where the lender is an other nonfinancial, 2016 dollars |
| LLOAN9 | Total balance of household loans where the lender is government, 2016 dollars |
| MARRIED | Marital status of head of household |
| MINBAL | Why no checking account: minimum balance is too high |
| MMA | Total value of money market deposit and money market mutual fund accounts, 2016 dollars |
| MMDA | money maket deposit accounts, 2016 dollars |
| MMMF | money market mutual funds, 2016 dollars |
| MORT1 | Amount owed on mortgage 1, 2016 dollars |
| MORT2 | Amount owed on mortgage 2, 2016 dollars |
| MORT3 | Amount owed on mortgage 3, 2016 dollars |
| MORTBND | mortgage-backed bonds, 2016 dollars |
| MORTPAY | total monthly mortgage payments, 2016 dollars |
| MRTHEL | Total value of debt seucred by the primary residence held by household, 2016 dollars |
| NBUSVEH | Total number of business vehicles held by household |
| NETWORTH | Total net worth of household, 2016 dollars |
| NEWCAR1 | number of car/truck/SUV with model year no older than two years before the survey |
| NEWCAR2 | number of car/truck/SUV with model year no older than one year before the survey |
| NFIN | Total value of nonfinancial assets held by household, 2016 dollars |
| NH_MORT | Total value of mortgages and home equity loans secured by the primary residence held by household, 2016 dollars |
| NHNFIN | total nonfinancial assets excluding principal residences, 2016 dollars |
| NINCCAT | Normal income percentile groups |
| NINCPCTLECAT | Alternate Normal income percentile groups |
| NLEASE | number of leased vehicles |
| NMMF | Total value of directly held pooled investment funds held by household, 2016 dollars |
| NNRESRE | Total value of net equity in nonresidential real estate held by household, 2016 dollars |
| NOCCBAL | Household does not carry a balance on credit cards |
| NOCHK | Household has no checking account |
| NOFINRISK | Respondent not willing to take financial risk |
| NOMONEY | Why no checking account: don't have (enough) money |
| NONACTBUS | Value of non-actively managed business(es), 2016 dollars |
| NORMINC | Household normal income, 2016 dollars |
| NOTXBND | tax-exempt bonds (state and local bonds), 2016 dollars |
| NOWN | number of owned vehicles |
| NSTOCKS | number different companies in which hold stock |
| NTRAD | number of trades per year |
| NVEHIC | total number of vehicles (owned and leased) |
| NWCAT | Net worth percentile groups |
| NWPCTLECAT | Alternate net worth percentile groups |
| OBMUTF | amount in other bond mutual funds, 2016 dollars |
| OBND | corporate and foreign bonds, 2016 dollars |
| OCCAT1 | Occupation categories for head of household |
| OCCAT2 | Occupation classification for head of household |
| ODEBT | Total value of other debts held by household, 2016 dollars |
| OMUTF | amount in other mutual funds, 2016 dollars |
| ORESRE | Total value of other residential real estate held by household, 2016 dollars |
| OTH_INST | Total value of other installment loans held by household, 2016 dollars |
| OTHER | Why no checking account: other |
| OTHFIN | Total value of other financial assets, 2016 dollars |
| OTHLOC | Total value of other lines of credit held by household, 2016 dollars |
| OTHMA | Total value of other managed assets held by household, 2016 dollars |
| OTHNFIN | Total value of other nonfinancial assets held by household, 2016 dollars |
| OWN | have an owned vehicle |
| PAYEDU1 | payments on first education loan, 2016 dollars |
| PAYEDU2 | payments on second education loan, 2016 dollars |
| PAYEDU3 | payments on third education loan, 2016 dollars |
| PAYEDU4 | payments on fourth education loan, 2016 dollars |
| PAYEDU5 | payments on fifth education loan, 2016 dollars |
| PAYEDU6 | payments on sixth education loan, 2016 dollars |
| PAYEDU7 | payments on seventh education loan, 2016 dollars |
| PAYHI1 | payments on first home improvement loan, 2016 dollars |
| PAYHI2 | payments on second home improvement loan, 2016 dollars |
| PAYILN1 | payments on first installment loan, 2016 dollars |
| PAYILN2 | payments on second installment loan, 2016 dollars |
| PAYILN3 | payments on third installment loan, 2016 dollars |
| PAYILN4 | payments on fourth installment loan, 2016 dollars |
| PAYILN5 | payments on fifth installment loan, 2016 dollars |
| PAYILN6 | payments on sixth installment loan, 2016 dollars |
| PAYILN7 | payments on seventh installment loan, 2016 dollars |
| PAYINS | payments on loans against insurance policies, 2016 dollars |
| PAYLC1 | payments on first land contract, 2016 dollars |
| PAYLC2 | payments on second land contract, 2016 dollars |
| PAYLCO | payments on other land contracts, 2016 dollars |
| PAYLOC1 | payments on first line of credit, 2016 dollars |
| PAYLOC2 | payments on second line of credit, 2016 dollars |
| PAYLOC3 | payments on third line of credit, 2016 dollars |
| PAYLOCO | payments on other lines of credit, 2016 dollars |
| PAYMARG | payments on margin loans, 2016 dollars |
| PAYMORT1 | payments on first mortgage, 2016 dollars |
| PAYMORT2 | payments on second mortgage, 2016 dollars |
| PAYMORT3 | payments on third mortgage, 2016 dollars |
| PAYMORTO | payments on other loans, 2016 dollars |
| PAYORE1 | payments on first other resdential property, 2016 dollars |
| PAYORE2 | payments on second other resdential property, 2016 dollars |
| PAYORE3 | payments on third other resdential property, 2016 dollars |
| PAYOREV | payments on remaining other resdential properties, 2016 dollars |
| PAYPEN1 | payments on loan against first pension plan not previously reported, 2016 dollars |
| PAYPEN2 | payments on loan against second pension plan not previously reported, 2016 dollars |
| PAYPEN3 | payments on loan against third pension plan not previously reported, 2016 dollars |
| PAYPEN4 | payments on loan against fourth pension plan not previously reported, 2016 dollars |
| PAYPEN5 | payments on loan against fifth pension plan not previously reported, 2016 dollars |
| PAYPEN6 | payments on loan against sixth pension plan not previously reported, 2016 dollars |
| PAYVEH1 | payments on first vehicle, 2016 dollars |
| PAYVEH2 | payments on second vehicle, 2016 dollars |
| PAYVEH3 | payments on third vehicle, 2016 dollars |
| PAYVEH4 | payments on fourth vehicle, 2016 dollars |
| PAYVEHM | payments on remaining vehicles, 2016 dollars |
| PAYVEO1 | payment on first other vehicle, 2016 dollars |
| PAYVEO2 | payment on second other vehicle, 2016 dollars |
| PAYVEOM | payment on remaining other vehicles, 2016 dollars |
| PENACCTWD | Withdrawals from IRAs and tax-deferred pension accounts, 2016 dollars |
| PIR40 | Household has a PIR higher than 40% |
| PIRCONS | ratio of monthly non-mortgage non-revolving consumer debt payments to monthly income |
| PIRMORT | ratio of monthly mortgage payments to monthly income |
| PIRREV | ratio of monthly revolving debt payments to monthly income |
| PIRTOTAL | Ratio of monthly debt payments to monthly income |
| PLOAN1 | Total value of aggregate loan balance by loan purpose: home purchase, cottage, vacation property, 2016 dollars |
| PLOAN2 | Total value of aggregate loan balance by loan purpose: home improvement, 2016 dollars |
| PLOAN3 | Total value of aggregate loan balance by loan purpose: vehicles, 2016 dollars |
| PLOAN4 | Total value of aggregate loan balance by loan purpose: goods and services, 2016 dollars |
| PLOAN5 | Total value of aggregate loan balance by loan purpose: investments and mortgage loans for other real estate, 2016 dollars |
| PLOAN6 | Total value of aggregate loan balance by loan purpose: education and professional expenses, 2016 dollars |
| PLOAN7 | Total value of aggregate loan balance by loan purpose: other unclassifiable loans, 2016 dollars |
| PLOAN8 | Total value of aggregate loan balance by loan purpose: not used in public data, 2016 dollars |
| PREPAID | Amount in prepaid card accounts, 2016 dollars |
| PURCH1 | First lien on primary residence used for purchase of primary residence |
| PURCH2 | Junior lien on primary residence used for purchase of primary residence |
| RACE | Race/ethnicity of respondent |
| RACECL | Class of race of respondent |
| RACECL4 | Alternate class of race of respondent |
| REFIN_EVER | Refinanced first lien mortgage on primary residence |
| RESDBT | Total value of debt for other residential property held by households, 2016 dollars |
| RETEQ | Total value of equity in quasi-liquid retirement assets, 2016 dollars |
| RETQLIQ | Total value of quasi-liquid held by household, 2016 dollars |
| REVPAY | total monthly revolving debt payments, 2016 dollars |
| SAVBND | Total value of savings bonds held by household, 2016 dollars |
| SAVED | Indicator of whether the household saved over the past 12 months |
| SAVING | Total value of savings accounts held by household, 2016 dollars |
| SAVRES1 | Reason for saving: can't save |
| SAVRES2 | Reason for saving: education |
| SAVRES3 | Reason for saving: family |
| SAVRES4 | Reason for saving: home |
| SAVRES5 | Reason for saving: purchases |
| SAVRES6 | Reason for saving: retirement |
| SAVRES7 | Reason for saving: liquidity/the future |
| SAVRES8 | Reason for saving: investment |
| SAVRES9 | Reason for saving: no particular reason |
| SPENDLESS | R would spend less if assets depreciated in value |
| SPENDMOR | R would spend more if assets appreciated in value |
| SSRETINC | Social security and pension income, 2016 dollars |
| STMUTF | amount in stock mutual funds, 2016 dollars |
| STOCKS | Total value of directly held stocks held by household, 2016 dollars |
| SVCCHG | Why no checking account: service changes are too high |
| TFBMUTF | amount in tax-free bond mutual funds, 2016 dollars |
| THRIFT | Total value of account-type pension plans from R and spouse's current job, 2016 dollars |
| TPAY | Total value of monthly debt payments, 2016 dollars |
| TRANSFOTHINC | Unemployment, alimony/child support, TANF/food stamps/SSI, and other income, 2016 dollars |
| TRUSTS | Amount R would receive if they cashed in trusts, 2016 dollars |
| TURNDOWN | Household has been turned down for credit in the past 5 years |
| TURNFEAR | Household has been turned down for credit or feared being denied credit in the past 5 years |
| VEH_INST | Total value of vehicle loans held by household, 2016 dollars |
| VEHIC | Total value of all vehicles held by household, 2016 dollars |
| VLEASE | Total value of leased vehicles held by household, 2016 dollars |
| WAGEINC | Wage and salary income, 2016 dollars |
| WGT | Sample weight |
| WHYNOCKG | Reason household does not have a checking account |
| WILSH | Wilshire index of stock prices |
| WSAVED | spent more/same/less than income in past year |
| X1 | Case ID with implicate number |
| XX1 | Case ID |
| Y1 | Case ID with implicate number |
| YEAR | Survey Year |
| YESFINRISK | Respondent willing to take financial risk |
| YY1 | Case ID |


Item 1 - could be a logo. it's first from top on mobile, and left on larger devices taking-up 20% of the width
could be a social links section. it's third from top on mobile, and right on larger devices taking-up 20% of the width
this is the navigation. it's second from top on mobile, and middle on larger devices taking-up the remaining width


{% extends 'layout.html' %} {% block headers %}
The Effect of an Earthquake Generated Tsunami on Damage Numbers
Moving the mouse over the graph will provide you more specific information.
The charts here show the average damage for each category listed. The chart on the left shows damage from earthquakes that generated a tsunami. The numbers shown here include the damage caused by the tsunami. The right chart shows damage caused by an earthquake that didn't have an associated tsunami. The numbers are damage caused strictly by an earthquake at the given magnitude.
The charts give us some idea of the relationship between the damage caused by an earthquake that generates a tsunami and one that doesn't. We can see only so much in the graphs. So, in addition to the graphs, below are some t-tests and p-values for each of the categories in the graphs above.
| Feature | Statistic | p-value |
|---|---|---|
| Magnitude | 18.1456 | 1.1599e-64 |
| Deaths | 1.7026 | 0.0889 |
| Missing | 0.5182 | 0.6044 |
| Injuries | 1.2452 | 0.2133 |
| Cost of Damage | 0.8779 | 0.3802 |
| Houses Damaged | 1.2679 | 0.2051 |
| Houses Destroyed | 1.4622 | 0.1440 |
The t-tests above are comparing the relationship between an occurrence of a tsunami or not and each of the features listed.
The null hypothesis: There is no significant difference between the damage caused by an earthquake that generated a tsunami and one with no associated tsunami.
The p-value or probability value is the probability that the null hypothesis is true. In order to accept a test result we want the p-value to be less than 0.05.
The p-value in all the tests except the first are greater than 0.05 which would lead us to not reject our null hypothesis. Deaths was the only one even close to 0.05 but still gave us a greater value.
The first t-test gave us a significant result. The small p-value leads us to reject our null hypothesis and conclude that the presence of a tsunami is associated with larger magnitude events. However, to gain more insight, we would need to identify earthquakes that occurred in the ocean only, collect that data, and re-run the t-test.
The graph below shows the spread of the magnitude with and without a tsunami.


Test Journal
A title
Enter your journal text!
Add my entry!
Enter your email to receive updates:
Submit


If you’ve ever worked and paid National Insurance in the Isle of Man contact the Pensions Service.
You can get a statement of how much pension you’ve earned so far if you either:


.NET API for the Hyperledger Indy SDK
The .NET API for the Hyperledger Indy SDK can be used with any flavor of .NET that conforms to the .NET Standard 1.0 and above including but not limited to the .NET Framework v4.5 and .NET Core 1.0 and can be used on any platform with .NET support.
The .NET assembly is a wrapper for the C-callable Indy SDK which must be installed separately in an appropriate location (e.g. the DLL search path in Windows).
The SDK provides features for managing a self sovereign identity including communication between agents, storing and managing keys and data, generation of claims, claim requests, proofs and other anonymous credentials, cryptographic functionality and generation of messages for interacting with an Indy node pool such as the one hosting the Sovrin ledger.
- For more information on Hyperledger Indy see the Hyperledger website
- The source code for the Hyperledger Indy SDK, including this .NET wrapper can be found here
- For more information on Sovrin see the Sovrin website
To dive in and start coding please proceed to the API Documentation.


Degrading Forests
Nearly half of plants and wildlife are found in rainforests, and they play an important role in reducing global carbon emissions. However, climate change has led to rainforests’ steady degradation. By 2050, it is predicted that temperatures in the Amazon will increase by 2-3 degrees Celsius.
World on Fire
These temperature changes in turn will cause mass droughts. Rainfall will decrease and forest fires will be much more destructive. With these extreme temperature changes also come food shortage and increased threat towards many species. As the climate changes, organisms will be forced to adapt; however, research shows that organisms will not be able to adapt fast enough. The good news is that coalitions such as the Tropical Ecology Assessment and Monitoring coalition have shown that creating protected habitats is very effective in saving these species. Supporting the creation and maintenance of these protected habitats is a sure way of helping these rainforests flourish.


You have multiple investigations and limited time to examine all the facts. You’re worried you’ll miss a crucial link in your rush to finish.
You have multiple investigations and limited time to examine all the facts. You’re worried you’ll miss a crucial link in your rush to finish.
You’re working on a complex legal case with thousands of inputs to assess and you’re not sure how to start connecting the dots seamlessly while keeping the information confidential.
You have a large volume of data, a new member joining the team, and only days left to bring him up-to-speed and present your case. How will your new team member be able to make any valuable input?
Your case requires connecting different types of documents in multiple languages. You have limited time, staff and budget to translate everything and map out the whole case.
Now, imagine …
…secure software that takes all your data, summarises it, and shows you all the connections in a fraction of the time a human requires.
… seamlessly picking up links between different types of data sets and watching the story unfold before your eyes.
… your new team member coming in, clicking through fully organised information, and being up-to-date in hours on your case.
… you’re mapping your way to a faster assessment of complex materials and even quicker problem solving with the right data at your fingertips.
Can you picture it? Then it’s time to engage CuriousLee.
CuriousLee is the information mapping tool where completeness is a necessity and the integrity of your data is critical. Avoid that crucial missing fact undermining your case - Lee will work through the volumes of complex data you provide and pull together meaningful and dynamic connections to build the complete story with greater insight.
Get a quick overview of the main connections and links in the data for your case.
Focus on a specific relationship in the data or quickly drill down as far as it goes.
Reorganise links and connections in the data with a simple click or drag-and-drop.
Remove or shift connections and see Lee recalculate your chain of events seamlessly.
Turn Data into Knowledge
CuriousLee takes all the data you upload – documents (Word & PDF), contracts, photos, texts, emails, messages, social media posts – and processes it to map relationships. He identifies all the relationships, players, objects, links in all areas and then connects them. Then, Lee plays it back to you in a logical order highlighting who, what, where, when, how, why.
Map in Multiple Languages
Have data in multiple languages that you need to analyse? While CuriousLee’s primary language is English, he can map and translate from other languages to your preferred language. Once the language is recognised, it will map the data in the native language and then convert to English. This process limits language misunderstandings in translations.
Adjust Connections Seamlessly
Even though Lee does all the work, it doesn’t take control out of your hands. So, do you see a connection that’s not relevant or crucial? Need to move a link in the data higher in the hierarchy or chain of events? You can adjust one link or relationship detail in the data and Lee will do the rest and redraw your entity relationship diagram.
Improve Productivity
Consolidate, analyse, and plan much faster with a mapping tool that removes the hard work. CuriousLee reduces the months it would take you to go through data to make connections to hours. Lee uses tagging tools for advanced data discovery and information categorisation. It maps the journey of your players and reduces the time it takes you to discover connections and interactions. The information evolves in real time as the data is reviewed and adjusted.
Get New Persons Up to Speed
When you have thousands of documents to review, how can you bring in someone at the backend and get them up-to-speed? CuriousLee gives a quick synopsis and detailed overview of your case. Lee will play through the data showing all the connections and links so anyone can quickly understand all the facts of the case.
That means he wants to know everything about everyone in the data you upload. So, this is the process and how he does his job


Hunt Product
We show goods, stuff and ideas that people come up to, and share them with the world. You can view, upvote and even share your own products here. Have fun!
{% load staticfiles %}
We show goods, stuff and ideas that people come up to, and share them with the world. You can view, upvote and even share your own products here. Have fun!


Data Table for the Bar Chart
Title
Performance Rating
Data Table for the Bar Chart
Title
Performance Rating
Data Table for the Bar Chart
Title
Performance Rating


General Election 2019 latest news: Boris Johnson and Jeremy Corbyn back on campaign trail after Question Time grilling
by Natasha ClarkJEREMY Corbyn and Boris Johnson are back on the campaign trail today after facing the public in Sheffield last night on a BBC Question Time special ahead of the general election.
Read on for all the latest live news and updates....
- Alahna Kindred14 minutes ago23rd November 2019THUMBS UP Jeremy Corbyn is back on the campaign trail after last night's grilling on Question Time. The Labour leader was at an Amazon depot in Yorkshire this morning where he vowed to tackle the “tax and wage cheat culture” of multinational companies who “rip off” workers. Mr Corbyn gave crowds “thumbs up” as he held up a banner with his supporters. The Labour manifesto revealed that under his government corporations will be made to pay a 26 per cent duty.
- Jacob Dirnhuber12 hours ago22nd November 2019 MOST MARXIST MOMENT When Corbyn backed booted-out “corrupt” Leftie leader of Bolivia. He said: “I met Evo Morales in Mexico last year. “I had a long conversation with him about his country, economic development and the number of people taken out of poverty.”
- Jacob Dirnhuber12 hours ago22nd November 2019 BEST BREXIT MOMENT When the PM roared: “We are a very ambitious One Nation Conservative government. “We have amazing plans for this country — investing in education, investing in health — and we need to get on with it, and we need to get Brexit done to do it.” >
- Jacob Dirnhuber12 hours ago22nd November 2019 BEST AUDIENCE MOMENT An audience member said: “Mr Corbyn, I don’t think it is businesses that should be scared, I think it’s everyone. “Your reckless socialist ideas terrify me, my family and friends, and freedom will completely erode if we let you have keys to No 10.”
- Jacob Dirnhuber12 hours ago22nd November 2019 BEST ZINGER One audience member said he refused to be taken in by Jeremy Corbyn’s comfy- looking image. He told him: “I don’t buy this nice old grandpa… I see that video and that tells me all I need to know and that terrifies me for my daughters.”
Load more entries…


I am Sakthisundar Arivudainambi from Chennai,Tamilnadu,India. I am doing my Master's in Data Science at New Jersey Institute of Technology (NJIT) .
2 Years of Work Experience from Consulting firm as Associate Research Executive
B.E in Mechanical Engineering, Anna University, Chennai, India(2017)
M.S in Data Science, NJIT, USA(Expected graduation date:December2021)
LinkedIn


## -*- coding: utf-8 -*-
We dug around for the page you requested, but we couldn't find it! Please go back and try again.


{include file="render/render_css" /}
{include file="render/theme_css" /}
{include file="common/header" /} {// include file="common/sidebar" /}
Task Manager
For Auto Tool
Task Search
Task ID
Machine Id
Machine Name
Tester
Create Date
Finish Date
Include Tool
JumpStart
Recovery
C-Test
Treboot
TandD
FastBoot
BIOSUpdate
Task Status
all
pending
ongoing
finished
expired
Task
Add
Edit
Assign
Delete
Copy
Expand
×
Add Task
Test Machine
Manuafacturer
Product Name
Serial Number
Part Number
OEM String
SystemConfig
BIOS/EC
LANIP
ShelfID/SwitchID
×
Edit Task
Task ID
Machine Id
Test Machine
Manuafacturer
Product Name
Serial Number
Part Number
OEM String
SystemConfig
BIOS/EC
LANIP
ShelfID/SwitchID
×
Rerun Task
×
Detail Info
Machine Info
Tool Steps
Task ID
Manuafacturer
Product Name
Serial Number
Part Number
OEM String
System Config
BIOS/EC
close
{include file="common/footer" /}
{include file="render/render_js" /}


--- layout: default --- {{ page.title }} Posted by {{ page.author }} {{ post.date | date: "%B %-d, %Y" }} {{ content }} ← Previous Post Next Post →


Dashboard
PMS
Help
Contact Us
Log Out
CWA Mobile1
Sorry, there was a temporary error. Please try again in a minute.
<EMAIL_ADDRESS>Please login to CWA Mobile.
BSM Email
Password
Sign In


Chapter 5 explained how different functions can describe the relation between total CEO compensation and firm size (or firm value). While the total amount of CEO compensation is a hot-button issue, another discussion is whether CEO compensation reflects pay-for-performance. That is, do CEOs get more compensation when the firm performance better and vice versa.
In 1990, Jensen and Murphy (1990) reported that for every $1000 loss (gain) in firm value, a CEO only loses (gains) $3.25 and took that as evidence that CEO compensation was not aligned with shareholder value.5 This study is 30 years old and the authors would argue that CEO compensation is currently better aligned with firm performance. In this chapter, I will use advances in the literature to show that their conclusion depends on how pay-performance sensitivity is measured. The main take-away from this chapter should be that the way you measure your variables is guided by the assumptions in your theory.
There are two assumptions we can make about CEOS. The first is what the impact is of a CEO on the firm and the second is about the CEO’s preferences. Let us tackle these assumptions in order..6 This chapter is entirely inspired by Edmans and Gabaix (2016)
The first assumption is about whether the actions of a CEO scale with the size of the firm. That is, do the actions of a CEO have the same impact on firm value in a small firm and in a large firm? Some actions such as using the corporate jet or sponsoring a sports team have the same impact independent of the firm size. If the company pays for a corporate jet, they pay the same amount of money whether they are large or small. Other actions such as implementing a better strategy, attracting better employees, or developing better relations with investors will impact the entire firm and thus will have a larger monetary impact in large firms.7 In a way, the question is whether shareholders should care more about the ability of CEOs to directly destroy value or trust in the CEOs ability to create value. Although, in a larger firm it might also be easier to fraudulently embezzle more money.
The second assumption is how CEOs value their leisure time. They can see leisure time as independent of the compensation. For instance, they could think of the opportunity cost of being at work. They could value their time off work as independent of their income. A day with family is as important independent of your compensation. However, the other assumption is that leisure time is more valuable if you have high compensation. For instance, if you earn a lot of money, you can do a lot more on your holidays.8 Elon Musk and Richard Branson seem to have a lot of fun when they are not working. Another, possibility is that CEOs are already rich and they could just invest their own fortune and earn a lot of money that way.9 Think of hedge fund managers who decide to close their fund and run a family fund to just invest their own money and that of some associates and family members.
When I say optimal CEO incentives I mean optimal from an optimal contracting between shareholders and CEO point of view. This could still be suboptimal from a social perspective. It also means that we take into account that the CEO might be risk averse and we might need to pay them more money to overcome the risk aversion.
The two assumptions have in impact on how a firm should incentivise the CEO to maximise firm value. If the actions of a CEO are independent of firm size, then the right performance measure for CEOs is the increase in the monetary value of the firm. If the actions of the CEO have a bigger impact in large firms,10 It’s easier to increase firm value by $1 Million for Apple than for a start-up company. the right performance measure is the increase in firm value compared to the size of the firm.
If the CEOs’ preferences for not working are independent of their compensation, firms can reward the CEOs independent of how wealthy they already are. That is, the better they perform the more money they get. In contrast, if the CEOs’ preferences depend on how wealthy they are, they expect more money if they are already wealthy. The reward of these CEOs should be proportional to their wealth.
As a result, the literature has defined pay-performance sensitivity in three different ways.
$ Pay - $ Firm value: This is the Jensen and Murphy (1990) measure. For every change in dollar firm value, the CEOs compensation changes with a fixed dollar amount. The consequence of these assumptions is that you would expect CEOs to hold the same equity stake in small and large firms.
$ Pay - % Firm value: For every % increase in firm value, there is a fixed dollar amount paid to the CEO. You an think of this measure of pay-performance sensitivity as a bonus system where the CEO gets a bonus for every increase in the companies stock market return.
% Wealth - % Firm value: For every increase % increase in the value of the firm, the CEO should receive a fixed % increase in their wealth. This is the measure that is advocated for in Edmans and Gabaix (2016) and I also belief that the evidence is most in favour of this definition and thus the assumptions that a CEO’s actions and preferences depend on firm size and on CEO wealth respectively.
Mathematically, we can represent each definition as follows:
Where \(V\) is the value of the firm at a certain point, \(W\) is the CEO’s wealth, and \(r\) is the return of the stock compared to the starting value \(V_0\). Because derivatives are not empirically observable, we have to look at changes in wealth and firm value over two different time periods. The measures that follow from the mathematical definitions are as follows where we use the fact that \(\Delta W = W - W_0\) and \(ln(W) - ln(W_0) = ln(\frac{W}{W_0})\)
To reiterate, we have three different measures of pay-performance sensitivity, i.e. how well CEO compensation reflects the performance. For each measure, we have assumed that the firm will use the optimal incentives given our assumption about the CEO’s actions and their preferences. The point of this exercise is that different assumptions determine how you should measure the variable you want to analyse. In the next section, we are going to investigate how these three measures behave in the S&P500 sample.
Let us first reload the data. We need a measure for the wealth of the CEO. I am going to assume that the most important component of the CEO’s wealth is their shares in the company. This is obviously not perfect but it is not a bad guess for S&P500 CEOs either.
library(tidyverse)
us_comp <- readRDS("data/us-compensation.RDS") %>%
rename(total_comp = tdc1, shares = shrown_tot_pct)
us_value <- readRDS("data/us-value.RDS") %>%
rename(year = fyear, market_value = mkvalt) %>%
select(-ni) %>%
distinct()
us_comp_limit <- select(us_comp, gvkey, execid, year, shares, total_comp)
us_comp_value <- left_join(us_comp_limit, us_value,
by = c("year", "gvkey")) %>%
# Delete the observations with missing values.
filter(!is.na(market_value) & !(is.na(shares))) %>%
mutate(wealth = shares * market_value / 100)
max(us_comp_value$market_value)/1e3
## [1] 1540.774
## [1] 118.0538
To get an idea wheather I did not make any mistakes I let R print the maximum market value and the maximum CEO wealth in the dataset. We can compare this to some known values to check whether we made any mistakes in putting the dataset together. Apple’s market value at the time of writing hovers around $800 billion and Jeff Bezos11 before the divorce is worth around $100 billion. So the proxies are not a terrible first attempt.12 Especially once you consider that some papers throw away the maxima for some variables because they are considered outliers.
Above I explained that the first measure ($-$) assumes that the percentage share of stock the CEO owns will be independent of the size of the company. To test this hypothesis, Figure 7.1 plots the percentage share the CEO owns against the size of the company.
Figure 7.1: Relation between CEO ownership and market value for SP500 firms (2011-2018).
shares_size <- ggplot(data = us_comp_value,
aes(x = market_value/1000, y = shares)) +
geom_point(alpha = .20) +
ylab("CEO Ownership") +
xlab("Firm Market Value (in Billions)")
plot(shares_size)
The figure is not that instructive so let’s plot the data on the log-log scale in Figure 7.2. The bulk of the data now shows a downward trend. This is not consistent with the hypothesis of the $-$ measure of pay-performance sensitivity where we would expect the link between firm size and CEO ownership to be constant.
Figure 7.2: Relation between CEO ownership and market value for SP500 firms (2011-2018).
shares_size_log <- shares_size +
scale_x_continuous(trans = "log",
labels = function(x) prettyNum(x, digits = 2),
breaks = scales::log_breaks(n = 5, base = 10)) +
scale_y_continuous(trans = "log",
labels = function(x) prettyNum(x, digits = 2),
breaks = scales::log_breaks(n = 5, base = 10))
plot(shares_size_log)
## Warning: Transformation introduced infinite values in continuous y-axis
Nevertheless, there seems to be a cloud of points at the top of
Figure 7.2 where CEOs have a large stake in the
company and this cloud looks largely independent of firm size. I
suspect that these CEOs are founders who have a larger ownership
share for other reasons than incentives. We can test this idea.
The code below filter all the observations with a market value
above $10 Billion and ownership stake above 1%. I then join those
observations with the CEO’s name and the firm’s name from the
original data, group the observations by CEO and company, and
count the number of years they are in the new data set. The
knitr::kable
function formats the table for pdf and html output.
filter(us_comp_value, market_value > 1e5, shares > 1) %>%
select(gvkey, year) %>%
left_join(select(us_comp, exec_fullname, coname, year, gvkey),
by = c("year", "gvkey")) %>%
group_by(gvkey, exec_fullname, coname) %>%
summarise(nr_years = n()) %>%
knitr::kable(booktabs = TRUE, caption = 'Outliers')
Table 7.1: Outliers
| gvkey | exec_fullname | coname | nr_years |
|---|---|---|---|
| 002176 | Warren E. Buffett | BERKSHIRE HATHAWAY | 4 |
| 012141 | Steven A. Ballmer | MICROSOFT CORP | 4 |
| 012142 | Lawrence J. Ellison | ORACLE CORP | 3 |
| 064768 | Jeffrey P. Bezos | AMAZON.COM INC | 8 |
| 117768 | Jen-Hsun Huang | NVIDIA CORP | 2 |
| 147579 | Wilmot Reed Hastings, Jr. | NETFLIX INC | 2 |
| 157855 | Marc R. Benioff | SALESFORCE.COM INC | 2 |
| 160329 | Lawrence Edward Page | ALPHABET INC | 8 |
| 170617 | Mark Elliot Zuckerberg | FACEBOOK INC | 6 |
My hunch looks correct.13 Also, I think the tidyverse
functions are amazing because
they make it so easy to quickly look at the data and summarise
the data.
This whole process of plotting the data and checking assumptions
on a subset of the data might seem a long detour. You could ask
yourself why we are not immediatelly calculating the three
measures that we are actually interested in. Checking your
assumptions and checking the validity of your dataset for your
research question is an important part of the research process.14 Remember that we derived the three performance-pay sensitivity
measures based on the optimal contract between shareholders and
owners. The firm needs a contract to govern the conflict of
interest between the shareholders and the CEO. If the founder is
the CEO, this conflict of interest is different. You could ask
yourself whehter you should keep founder-CEOs in the dataset
because you do not necessarily expect their contract to follow
the optimal contract.
And as you can see you do not have to run a statistical test to
test your assumptions.
Now that we understand our dataset, we can calculate the changes
in CEO wealth, total compensation, CEO compensation and market
value. The last filter
is a bit of hack. There are a few wealth
change that are infinite at the log value. That can happen when a
CEO ends up with 0 shares and no compensation. There are only a
handful of these observations and I am ignoring them. Ideally,
you would have a look whether anything funky is going on.
us_comp_value <- group_by(us_comp_value, gvkey, execid) %>%
arrange(year) %>%
mutate(prev_market_value = lag(market_value),
prev_wealth = lag(wealth),
prev_comp = lag(total_comp)) %>%
ungroup() %>%
mutate(change_market_value = market_value - prev_market_value,
change_wealth = wealth - prev_wealth,
change_comp = total_comp - prev_comp,
change_log_value = log(market_value) - log(prev_market_value),
change_log_wealth = log(wealth) - log(prev_wealth),
change_log_comp = log(total_comp) - log(prev_comp)) %>%
filter(!is.infinite(change_log_wealth),
!is.infinite(change_log_comp)) %>%
arrange(gvkey)
With these variables, we can replicate the basic approach of some key papers on executive compensation. The first regression takes the Jensen and Murphy (1990) approach and investigates the relation between a change in market value and a change in CEO compensation (Measure 1 in 7.3). The second and third regression follow the approach of Hall and Liebman (1998) where we look the relation between relative changes in market value and relative changes in total CEO compensation.15 The difference between the two specification is that the first uses market returns, just like the original paper, which is not exactly theoretically correct but a very good approximation of the theory. Finally, the fourth regression follows the Core, Guay, and Thomas (2005) and looks at the relation between changes in relative market value and relative CEO wealth.16 In all cases, the authors of the original papers do a much better job than I do in measuring the variables they are interested in. Do not take the results too seriously although they are a good approximation of the results in the original papers.
jensen_murphy90 <- lm(change_comp ~ change_market_value,
data = us_comp_value)
hall_liebman98 <- lm(change_log_comp ~
I(change_market_value/prev_market_value),
data = us_comp_value)
hall_liebman98_alt <- lm(change_log_comp ~ change_log_value,
data = us_comp_value)
core_guay_thomas05 <- lm(change_log_wealth ~ change_log_value,
data = us_comp_value)
## change_market_value
## "0.026"
## I(change_market_value/prev_market_value)
## "0.026"
## change_log_value
## "0.22"
## change_log_value
## "0.85"
Jensen and Murphy found that a CEO gets $3.5 for every $1000 change in market value. Our estimate is $0.026 for every $1000 change in market value. The difference is first of all an indication that this simple analysis is not the best estimate but it probably also means that the $-$ incentives are not the best measure. Recall from Figure 7.2 that CEO ownership decreases with firm size. Since the study was published, companies have become larger which pushes the $-$ measure lower.17 Jensen and Murphy (1990) looked at more than the direct incentives. They also estimated the potential loss of getting fired. Moreover, total compensation does not take into account wealth. Other studies have found that the $-$ incentives measure of pay-performance sensitivity are smaller for larger firms.
The original Hall and Liebman (1998) measure shows that CEOs see a 0.026% increase in pay for every 1% increase in firm value, the alternative measure shows a 0.22% pay-performance sensitivity. Finally, the Core, Guay, and Thomas (2005) measure shows a 0.85% wealth-performance sensitivity.
We can plot the results as well to get a better intuition of the
what this results mean. The code is long and boring but not so
difficult to understand. First, make a new dataset with all the
change in pay and change in performance variables. Next, just
copy the new dataset three times. Create a new variable
analysis
for each type of analysis. Create a new variable
incentive
and performance
for each type of analysis.
data_comparison <- select(us_comp_value, change_comp,
change_market_value,
change_log_comp, change_log_value,
change_log_wealth) %>%
filter(complete.cases(.))
n <- nrow(data_comparison)
data_comparison <- bind_rows(data_comparison, data_comparison,
data_comparison) %>%
mutate(analysis = c(rep("jensen_murphy90", n),
rep("hall_liebman98_alt", n),
rep("core_guay_thomas05", n))) %>%
mutate(
incentive = recode(analysis,
"jensen_murphy90" = change_comp/1000,
"hall_liebman98_alt" = change_log_comp,
"core_guay_thomas05" = change_log_wealth),
performance = recode(analysis,
"jensen_murphy90" = change_market_value/1000,
"hall_liebman98_alt" = change_log_value,
"core_guay_thomas05" = change_log_value)) %>%
select(analysis, performance, incentive)
Now, we can plot the the incentive to performance relation for the data in Figure 7.3. Despite all all the caveats about how unpolished this analysis is, the figure shows that neglecting CEO ownership is going to lead you to underestimate the pay-performance sensitivity for CEOs.
Figure 7.3: Comparison of three measures of pay-performance sensitivity for S&P500 Companies (2011-2018)
comparison_plot = ggplot(data_comparison,
aes(x = performance, y = incentive)) +
geom_point(alpha = .1) +
facet_wrap( ~ analysis, ncol = 1, scales = "free") +
scale_x_continuous(breaks = scales::pretty_breaks(n = 5),
labels = function(x) prettyNum(x, dig = 2)) +
scale_y_continuous(breaks = scales::pretty_breaks(n = 5),
labels = function(x) prettyNum(x, dig = 2))
print(comparison_plot)
An empirical study can often be represented in the form of a diagram as in Figure 7.4. These diagrams are often referred to as the Predictive Validity Framework or, in the accounting literature, Libby Boxes (Libby, Bloomfield, and Nelson 2002). The top of the diagram (1) represents the research question. We want to ask whether there is a relation between two theoretical concepts. In our case, we want to know whether there is a relation between CEO incentive pay and firm performance. Chapter 5 dealt with how to use theory to predict a relation between two concepts. In reality, we cannot directly observe pay and performance, so we have to come up with a measure of these concepts (3 and 4). This Chapter has dealt with the issue of how we can find a good measure for our two concepts. The downwards arrows represent the connection between the theoretical concepts and the empirical measures. At first, you might have thought that it is obvious how to measure CEO performance and firm performance. The pay-performance sensitivity example should make you realise that you need to think careful about what you measure and how your measure connects to your theory. Most statistics textbooks focus on the link between the two measures (2), ´change_log_wealth´ and ´change_log_performance´ in our case. This is the next step in this Chapter. Later in the notes, I wil look at the issue of control variables.
library(DiagrammeR)
libby_boxes <- grViz("
digraph libby_boxes{
graph [fontsize = 18, layout = 'dot']
node [shape = box, group = 'cause_group']
cause [label = 'Performance']
m_cause [label = 'Change_Log_Value']
node [shape = box, group = 'effect_group']
effect [label = 'Pay']
m_effect [label = 'Change_Log_Wealth']
controls
cause -> effect [label = '(1)']
m_cause -> m_effect [label = '(2)']
cause -> m_cause [label = ' (3) ']
effect -> m_effect [label = ' (4) ']
m_effect -> controls [dir=back, label = '(5)']
subgraph{
rank = same; cause; effect;
}
subgraph{
rank = same; m_cause; m_effect; controls;
}
}
")
trelliscope::widgetThumbnail(libby_boxes,
"_bookdown_files/libby_boxes.pdf")
trelliscope::widgetThumbnail(libby_boxes,
"_bookdown_files/libby_boxes.png")
Figure 7.4: Predictive Validity Framework or Libby Boxes for pay-performance sensitivity
Section 7.4 showed that there was a negative relation between CEO ownership and the size of the company. The relation is pretty strong and we did not look at it in more detail. In a real study with more subtle effects, you want to get some sense whether the relation is real or whether it can be explained by random variation.
I will illustrate this issue with the new pay-performance sensitivity. The optimal performance contract should not depend on the size of the firm only on the performance of the firm. Figure 7.5 shows the relation between pay-performance sensitivity and the size of the firm. The figure does not show any strong relation between firm size and pay-performance sensitivity.
Figure 7.5: Relation between pay-performance sensitivity and market value
hypothesis = ggplot(us_comp_value,
aes(y = change_log_wealth / change_log_value,
x = market_value/1000)) +
geom_point(alpha = .2) +
scale_x_continuous(
trans = "log",
breaks = scales::log_breaks(n = 5, base = 10),
labels = function(x) prettyNum(x, dig = 2)) +
scale_y_continuous(
limits = c(-50, 50)) +
xlab("market value") +
ylab("sensitivity")
print(hypothesis)
## Warning: Removed 3901 rows containing missing values (geom_point).
There a number of different ways to test whether this relation is real or whether it can be explained by random fluctuations. I first present two simulation based approaches and then present an approach based on formulas. Statistical software typically implements the formulas for you so you do not have to remember them.
The starting point for each of these tests is that if there is no relation, the true effect that we are interested in18 That is the top half of the Libby Boxes equals \(0\). Because of random variation, the number in the statistical analysis19 The bottom half of the Libby Boxes might be slightly off. Each of the three approaches tries to quantify that random variation around a the null effect.
The first way to quantify the random variation is to randomly assign one observation of the firm-year to another obervation of a CEO-year. That is we create a dataset where we link the sensitivity of a CEO’s pay with the market value of another firm. The general idea of a randomisation test is that you break the relation that you want to test and see whether the value in the real dataset is extreme compared to the randomised dataset.
data_hypo <- mutate(us_comp_value,
sensitivity = change_log_wealth / change_log_value) %>%
select(sensitivity, market_value) %>%
filter(complete.cases(.))
true_cor <- cor(
data_hypo$sensitivity, data_hypo$market_value)
rand_cor <- cor(
data_hypo$sensitivity, sample(data_hypo$market_value))
print(prettyNum(c(true_cor, rand_cor), dig = 3))
## [1] "-0.00457" "0.0137"
So, we find that the correlation in the real dataset is different
from the correlation in the random dataset but it does not allow
us to draw any conclusions. We need to draw a lot of random
datasets and compare that random dataset to the real correlation.
That is what the next lines of code do. First, create a function
that resamples the market value and calculates the correlation.
Second, rerun that function \(10,000\) times. rand_cor
is a
vector with randomly created correlations.
simulate_cor <- function(data){
return(cor(data$sensitivity, sample(data$market_value)))}
rand_cor <- replicate(1e4, simulate_cor(data_hypo))
Figure 7.6 visualises the test. We plot a histogram of the random correlations and compare them to the size of the of the real correlation. We want to test whether the value of the real correlation is extreme, so we compare the random distribution to correlations with an absolute value larger than absolute value of the sample correlation.
Figure 7.6: Random correlation compared to real correlation
hist_sim <- qplot(rand_cor, bins = 100,
fill = abs(rand_cor) < abs(true_cor)) +
xlab("Random Correlations") +
scale_fill_viridis(discrete = TRUE) +
theme(legend.position = "none")
print(hist_sim)
pvalue_sim = mean(ifelse(abs(rand_cor) > abs(true_cor), 1, 0))
print(prettyNum(pvalue_sim, digits = 2))
## [1] "0.29"
We can calculate how likely it is that a random correlation is larger (in absolute value) than the true correlation. We find that there is 0.29 probability of getting a random value larger than the value for the sample correlation. That means that there is little evidence of a relation between pay-performance sensitivity and firm size that cannot be explained by random variation.
Another way to test whether there is a relation between two variables is the bootstrap (Efron and Hastie 2017). The idea of the bootstrap is that the sample of firms that we have is a good reprentation of a bigger population of (very large) firms.20 You could think of for instance the same firms in 2019 and 2020 or 2008 and 2009. In this procedure, we assume that the random variation comes from the sampling error compared to the full population. The bootstrap will resample the observations in the real dataset with replacement. We keep CEOs and firms together this time but in the newly created datasets some observations might occur more than once. If we create enough of these datasets, we will get a good representation of the correlations we get from repeatedly sampling from the larger population.
calc_corr <- function(d){
n <- nrow(d)
id_sample <- sample(1:n, size = n, replace = TRUE)
sample <- d[id_sample, ]
corr <- cor(sample$sensitivity, sample$market_value)
return(corr)
}
boot_corr <- replicate(2000, calc_corr(data_hypo))
We visualise the sampling variation in the correlation in Figure 7.7. We can now compare this distribution to a \(0\) correlation. If the distribution is (almost) entirely on one side of a null effect, we would conclude that sampling variation around a nulll effect is not a good explanation for the effect that we found in the real sample. However, in this case, we find that a considerable amount of the distribution is on either side of the orange line. Again, we find no good reason to belief there is anything more than random variation around a null effect.
Figure 7.7: 2000 bootstrapped correlations
qplot(boot_corr, bins = 100) +
geom_vline(aes(xintercept = 0), col = "darkorange") +
xlab("Bootstrapped Correlation")
The way I set up the bootstrap was actually quite primitive but it
gets the message across. In case you need to do a proper bootstrap
analysis, it’s much better to use the boot
package in R
. Below,
you can find the minimal code to work with the package. The advantage
of the package is that it give you many more option to tweak the
bootstrap algorithm to make it more appropriate for your specific
research question. The details of this go way beyond these lecture
notes.
library(boot)
corr <- function(d, indices){
d <- d[indices, ]
corr <- cor(d$sensitivity, d$market_value)
}
bootstrap <- boot(data_hypo, statistic = corr,
R = 2000, parallel = "multicore",
ncpus = 4)
boot.ci(bootstrap, type = "norm")
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 2000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = bootstrap, type = "norm")
##
## Intervals :
## Level Normal
## 95% (-0.0113, 0.0029 )
## Calculations and Intervals on Original Scale
Randomisation and bootstrapping make different assumptions about where the random variation comes from and what it means that there is no effect. There is an active discussion in the econometrics literature about which assumptions are more appropriate under which conditions. However, most empirical researchers ignore these questions and trust in formula based p-values. The interpretation of p-values is closer to the bootstrap. We test whether the real correlation is extreme enough so that it is unlikely that it arises sampling variation around a null effect.
cor = cor.test(data_hypo$sensitivity, data_hypo$market_value)
pvalue_cor = cor$p.value
print(prettyNum(pvalue_cor, dig = 2))
## [1] "0.62"
We can let R do the calculation for us and we see that the p-value for the correlation between sensitivity and market value is 0.62. Again, it looks like that the correlation is quite likely to emerge from sampling variation around a null hypothesis.
Finally, I would like to point out the relation between linear regression and a correlation. When there is only one independent variable in a regression model, the correlation test is equivalent to the statistics we get from a regression.
\[\begin{align*} y &\sim \mathcal{N}(\alpha + \beta x, \sigma) \\ \beta &= \frac{sd(y)}{sd(x)} cor(x, y) \end{align*}\]
regr_sens = lm(sensitivity ~ I(market_value/1e6), data = data_hypo)
coefficients(summary(regr_sens)) %>%
kable(dig = 2, booktabs = TRUE, caption = 'Regression Results')
Table 7.2: Regression Results
| Estimate | Std. Error | t value | Pr(>|t|) | |
|---|---|---|---|---|
| (Intercept) | 1.78 | 1.27 | 1.40 | 0.16 |
| I(market_value/1e+06) | -13.20 | 26.75 | -0.49 | 0.62 |
In summary, most empirical researchers use p-values to estimate how far away the estimated coefficient is from the null effect. To do that they use formulas that estimate the standard error of the coefficient. If the coefficient is large and the standard error is small, we expect the effect to be extreme compared to the null effect. To estimate how likely it is that the real coefficient is the result of random variation around the null, your software calculates a statistic, the coefficient divided by the standard error. This t-statistic is expected to follow a t-distribution and from this distribution we can calculate the p-value.
Most empirical papers will try to find small p-values. That is they try to show that there is a relation. I deliberately chose an example where there is no relation between the two variables of interest because and where that is also what we hoped to find. Our theory said that there should not be a relation between sensitivity and size and after looking at the data we have no reason to believe otherwise. This type of test is a natural fit for p-values and this is why I introduced them in this way.
There is a lot of discussion in the literatur about abuses and misinterpretations of p-values. My hope is that I put you on the right path to interpreting p-values despite all the traps that have been laid for you in the literature.
Core, John E., Wayne R. Guay, and Randall S. Thomas. 2005. “Is U.S. CEO Compensation Broken?” Journal of Applied Corporate Finance 17 (4): 97–104. https://doi.org/10.1111/j.1745-6622.2005.00063.x.
Edmans, Alex, and Xavier Gabaix. 2016. “Executive Compensation: A Modern Primer.” Journal of Economic Literature 54 (4): 1232–87.
Efron, Bradley, and Trevor Hastie. 2017. Computer Age Statistical Inference.
Hall, Brian J., and Jeffrey B. Liebman. 1998. “Are CEOs Really Paid Like Bureaucrats?” The Quarterly Journal of Economics 113 (3): 653–91. https://doi.org/10.1162/003355398555702.
Jensen, Michael C., and Kevin J. Murphy. 1990. “Performance Pay and Top-Management Incentives.” Journal of Political Economy 98 (2): 225–64. https://doi.org/10.1086/261677.
Libby, Robert, Robert J Bloomfield, and M Nelson. 2002. “Experimental Research in Financial Accounting.” Accounting, Organizations and Society 27 (8): 775–810. https://doi.org/10.1016/S0361-3682(01)00011-3.
Page built: 2021-02-24


Toggle navigation
SG
About
My Projects
Education
Achievements
Project 1
Know more
This is a project about the details of three first generation pokemons.
Click here
to view it.
Project 2
Know more
This is a project about the details of three first generation pokemons.
Click here
to view it.
Project 3
Know more
This is a project about the details of three first generation pokemons.
Click here
to view it.
Project 4
Know more
This is a project about the details of three first generation pokemons.
Click here
to view it.


My Story
I began my career in 2000 as a part of Cognizant developing web applications for their global customers in the US. In the early 2000s,our customers were in the start of their journey to embrace the web and most of my work was around enabling them move from their legacy platforms to enterprise web-based systems. This included developing enterprise web content systems, integrating it with various underlying security systems, etc. As these were global customers, I had the opportunity to work with them not just in India but also in countries like Japan and China.
In addition to implementing the latest technologies, I also helped our customers in their process transformation journey in order to ensure that they derive the full benefits of the transformation programs. I helped to set up the “Cognizant Unified Process” for one of our customers which enabled them to establish a unified delivery model across their global delivery teams. In recognition of this effort, I was awarded the ‘Associate of the Year’ award.
In 2016, I joined Likeminds Consulting as a global project manager focused on implementing Identity Management solutions for US customers such as City of Boston, Zebra Technologies, Regeneron and McGrath Rent Corp.
After working in various roles in the software development lifecycle, I decided to focus exclusively on becoming a full stack developer. With this goal in mind, I joined Lambda School to augment my experience in software development with the latest updates in technology. In the past few months, I have developed several applications (listed below) leveraging the latest technologies. I welcome you to take a look at them.
Accomplishments
• I was one of the key members of 'How's the water' team, who took lead in designing the UX for the application. I was quick to learn AWS-Amplify and AWS-Cognito and implement the same thereby saving time on implementing an elaborate authentication mechanism from scratch.
• I was awarded 'Associate of the year' award by Cognizant, for my contributions towards identifying and developing an unique process model.
• I was quick in understanding difficult technologies in 3M and built that knowledge within the team, helping, deliver quality products going over and above client's expectations.
• I devised a 'Status reporting' template and mechanism to track a complex project while working in LikeMinds for CoB (City of Boston). This process was subsquently rolled out to other projects as well.
My Skill set
Front-End Development
Back-End Development
UX/UI Design
Requirements Gathering
Project Management
Agile Methodologies
My Toolkit
HTML5/CSS3
React/Redux
JS/NodeJS/Express
Python
SQLite, Postgres
NoSQL, MongoDB
AWS-Amplify, AWS-Cognito
GraphQL, RESTAPIs, Postman
Figma, Whimsical
Git, Github


Iím a very experienced psychedelic user that would have an easier time listing the chems/drugs I haven't tried instead of the ones I have tried so Iím not gonna waste a few hundred words before the trip report thats gonna bore you to death.
I picked up 500mgs 4-ACO-DIPT from a trusted source and have been waiting for the right moment to try out this new batch. Back in 2003 I tried this chem for the first time and it blew my mind to say the least, but that was 6 years ago. Does it still feel as good as I remembered?? I weighed out 30mgs and put it in a capsule. I had tried it at this dose back in 03 and I knew I could handle it. I had eaten a small meal 3 hours before so I physically felt good before going into the trip.
9:45pm, I swallowed the capsule. I was antsy in the few minutes after taking the capsule, so I decided to go run a nice warm bubble bath and invite my wife who was going to be my sitter.
10:00, pupils were huge in the mirror next to the tub. Iím starting to feel energy build inside me, NICE!! I wash fast so I can relax for a while in the tub while I wait for my wife to make it. She gets in and I am feeling GREAT!! It been 30 min and this chem is not wasting its time. My wifeís naked, soapy, bubbly body feels great to the touch. We held each other for a while and then I feel the need to sit up because I was getting antsy again, huge energy push! My wife sees my 'member' is rising to occasion so she strokes me in the tub till its rock hard. Even though Iím enjoying this almost TOO much, I decide I need to get out of the tub before the peak.
10:45, I move into the living room to the chill spot. I have my liquid projector casting an ever moving swirl of blue and red on my walls to enhance whatever visual component the 4-aces offer. I put on a little TOOL on the stereo and laid back. My body was buzzing with pleasure. I did notice a somewhat strong tremor mainly in the legs but it wasn't nothing to worry about, mentally and physically I was in heaven. This drug delivers a strong rushing sensation unlike any other tryptamine Iíve ever tried. This is extacy!
11:00, My wife finishes up in the bath and joins me on the sofa. Sheís feeling a little playful so she asked me if I wanted to move the party to the bed. YES I DO!! We crawl into bed and believe or not, all I wanted to do was nuzzle her skin with my nose and lips and just 'feel' her.  Her mouth would've made it hard but I guess she wasnít feeling that playful. After a few frustrating minutes she reccommends moving back to the living room and putting on a flick. YES! I love porn.
11:45, enjoying the peak alot. Smoked some bud and that really hit the spot.  He needed mouth to mouth but she wasnít willing so back in the boxers he goes. I turn the flick off and decided to set back, close my eyes and enjoy the moment instead of becoming sexually frustrated. CEV's were there but I had to think hard to see, or make out anything. I did not see anything worth noting. OEV's were about like a low dose of shrooms. Patterns on the wall paper looked like they were moving and everything looked a bit fuzzy but Iím sure that was because my pupils were huge! I hang out on the sofa for another hour until I felt the effects start to drop off.
1:15, Iím feeling very light effects at the moment but still feeling awesome.  While there I did manage a nice explosive orgasm but it took some work.
1:45, turned off the lights and went straight to sleep.
This chemical is great! It feels like 2 or 3 good hits of x with a low dose of mushrooms. I never felt nausea or any ill effects from the 4-aces. Woke up at 8am the next morning feeling like a million bucks. No headache or any other strung out feeling to speak of. Iím looking foward to doing this again. . . . soon.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


These methods interface with a simple table with String unique primary key and arbitrary binary data value.
More...
|
| int32_t | store_str (account_name scope, table_name table, char *key, uint32_t keylen, char *value, uint32_t valuelen) |
| |
| int32_t | update_str (account_name scope, table_name table, char *key, uint32_t keylen, char *value, uint32_t valuelen) |
| |
| int32_t | load_str (account_name scope, account_name code, table_name table, char *key, uint32_t keylen, char *value, uint32_t valuelen) |
| |
| int32_t | front_str (account_name scope, account_name code, table_name table, char *value, uint32_t valuelen) |
| |
| int32_t | back_str (account_name scope, account_name code, table_name table, char *value, uint32_t valuelen) |
| |
| int32_t | next_str (account_name scope, account_name code, table_name table, char *key, uint32_t keylen, char *value, uint32_t valuelen) |
| |
| int32_t | previous_str (account_name scope, account_name code, table_name table, char *key, uint32_t keylen, char *value, uint32_t valuelen) |
| |
| int32_t | lower_bound_str (account_name scope, account_name code, table_name table, char *key, uint32_t keylen, char *value, uint32_t valuelen) |
| |
| int32_t | upper_bound_str (account_name scope, account_name code, table_name table, char *key, uint32_t keylen, char *value, uint32_t valuelen) |
| |
| int32_t | remove_str (account_name scope, table_name table, char *key, uint32_t keylen) |
| |
- See also
- table class in C++ API
◆ back_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| code | - identifies the code that controls write-access to the data |
| table | - the ID/name of the table within the scope/code context to query |
| key | - location of the record key |
| keylen | - length of the record key |
| value | - location to copy the back record value |
| valuelen | - maximum length of the record value to read |
- Returns
- the number of bytes read or -1 if key was not found
◆ front_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| code | - identifies the code that controls write-access to the data |
| table | - the ID/name of the table within the scope/code context to query |
| key | - location of the record key |
| keylen | - length of the record key |
| value | - location to copy the front record value |
| valuelen | - maximum length of the record value to read |
- Returns
- the number of bytes read or -1 if key was not found
◆ load_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| code | - identifies the code that controls write-access to the data |
| table | - the ID/name of the table within the scope/code context to query |
| key | - location of the record key |
| keylen | - length of the record key |
| value | - location to copy the record value |
| valuelen | - maximum length of the record value to read |
- Returns
- the number of bytes read or -1 if key was not found
◆ lower_bound_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| code | - identifies the code that controls write-access to the data |
| table | - the ID/name of the table within the scope/code context to query |
| key | - location of the record key |
| keylen | - length of the record key |
| value | - location to copy the lower bound record value |
| valuelen | - maximum length of the record value to read |
- Returns
- the number of bytes read or -1 if key was not found
◆ next_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| code | - identifies the code that controls write-access to the data |
| table | - the ID/name of the table within the scope/code context to query |
| key | - location of the record key |
| keylen | - length of the record key |
| value | - location to copy the next record value |
| valuelen | - maximum length of the record value to read |
- Returns
- the number of bytes read or -1 if key was not found
◆ previous_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| code | - identifies the code that controls write-access to the data |
| table | - the ID/name of the table within the scope/code context to query |
| key | - location of the record key |
| keylen | - length of the record key |
| value | - location to copy the previous record value |
| valuelen | - maximum length of the record value to read |
- Returns
- the number of bytes read or -1 if key was not found
◆ remove_str()
- Parameters
-
| key | - location of the record key |
| keylen | - length of the record key |
- Returns
- 1 if a record was removed, and 0 if no record with key was found
◆ store_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| table | - the ID/name of the table within the current scope/code context to modify |
- Returns
- 1 if a new record was created, 0 if an existing record was updated
- Precondition
- keylen >= 0
-
key is a valid pointer to a range of memory at least keylen bytes long
-
the memory range [key...key+len) stores the primary key
-
valuelen >= 0
-
value is a valid pointer to a range of memory at least valuelen bytes long
-
the memory range [value...value+valuelen) stores the arbitrary binary data value
-
scope is declared by the current transaction
-
this method is being called from an apply context (not validate or precondition)
- Postcondition
- a record is either created or updated with the given scope and table.
- Exceptions
-
| if | called with an invalid precondition execution will be aborted |
◆ update_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| table | - the ID/name of the table within the current scope/code context to modify |
- Returns
- 1 if the record was updated, 0 if no record with key was found
- Precondition
- keylen >= 0
-
key is a valid pointer to a range of memory at least keylen bytes long
-
the memory range [key...key+len) stores the primary key
-
valuelen >= 0
-
value is a valid pointer to a range of memory at least valuelen bytes long
-
the memory range [value...value+valuelen) stores the arbitrary binary data value
-
scope is declared by the current transaction
-
this method is being called from an apply context (not validate or precondition)
- Postcondition
- a record is either created or updated with the given scope and table.
- Exceptions
-
| if | called with an invalid precondition execution will be aborted |
◆ upper_bound_str()
- Parameters
-
| scope | - the account scope that will be read, must exist in the transaction scopes list |
| code | - identifies the code that controls write-access to the data |
| table | - the ID/name of the table within the scope/code context to query |
| key | - location of the record key |
| keylen | - length of the record key |
| value | - location to copy the upper bound record value |
| valuelen | - maximum length of the record value to read |
- Returns
- the number of bytes read or -1 if key was not found


Read Scripture Daily
Books
Blog
About
Former Prophets
Joshua
Dairy-Free
Soy-Free
Judges
Dairy-Free
Soy-Free
Samuel
Soy-Free
Kings
Dairy-Free
Soy-Free
Latter Prophets
Isaiah
Dairy-Free
Soy-Free
Jeremiah
Dairy-Free
Soy-Free
Ezekiel
Dairy-Free
Soy-Free
Minor Prophets
Hosea
Dairy-Free
Soy-Free
Joel
Dairy-Free
Soy-Free
Amos
Dairy-Free
Soy-Free
Obadiah
Dairy-Free
Soy-Free
Jonah
Dairy-Free
Soy-Free
Micah
Dairy-Free
Soy-Free
Nahum
Dairy-Free
Soy-Free
Habakkuk
Dairy-Free
Soy-Free
Zephaniah
Dairy-Free
Soy-Free
Haggai
Dairy-Free
Soy-Free
Zechariah
Dairy-Free
Soy-Free
Malachi
Dairy-Free
Soy-Free


meslas.geometry package¶
Submodules¶
meslas.geometry.grid module¶
meslas.geometry.tilings module¶
Copyright (c) 2012-2019 Alex Chan
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Generate regular tilings of the plane with Pillow.
Diagrams and background to this code are on my blog: http://alexwlchan.net/2016/10/tiling-the-plane-with-pillow/
- meslas.geometry.tilings.draw_tiling(coord_generator, filename)¶
Given a coordinate generator and a filename, render those coordinates in a new image and save them to the file.
- meslas.geometry.tilings.generate_hexagons(*args, **kwargs)¶
Generate coordinates for a tiling of hexagons.
- meslas.geometry.tilings.generate_squares(*args, **kwargs)¶
Generate coordinates for a tiling of squares.
- meslas.geometry.tilings.generate_triangles(*args, **kwargs)¶
Generate coordinates for a tiling of triangles.
- meslas.geometry.tilings.generate_unit_hexagons(image_width, image_height)¶
Generate coordinates for a regular tiling of unit hexagons.
- meslas.geometry.tilings.generate_unit_squares(image_width, image_height)¶
Generate coordinates for a tiling of unit squares.
- meslas.geometry.tilings.generate_unit_triangles(image_width, image_height)¶
Generate coordinates for a tiling of unit triangles.


{% extends "base.html" %} {% block title %}home{% endblock %} {% block head %} {% endblock %} {% block content %}
{{ WEBSITE_NAME }} | anonymous socket chat
an open source project aiming to provide chat experience without any kind of data being stored anywhere except your own browser. no history. instant. completely anonymous.


--- layout: app/template/default title: Spaced Repetition Learning ---
If there are facts and figures you need to remember the best way is through spaced repetition . This basically involves refreshing your memory of a particular fact just before you are about to forget it. To start with you might need reminding every day but quickly it will become once a week or once a month. Handily the task of working out what you need to revise each day is solved by using spaced repetition learning software - and one of the best is Anki.
The tutorial is for anki is here: http://ankisrs.net/docs/manual.html. You can get it on your phone and use it on desktop - they sync with each other nicely.
I was going to write out a tutorial and some key points but someone else has written exactly what I wanted to here (staring at "a few general points"). Consider this required reading - I failed to get into the habit lots of times because I was making these mistakes: http://lesswrong.com/lw/5n7/srs_advice/454l
The next link is how to get the most out of it. Highly recommended but not essential. If you don't read the article then for the first load of cards use "cloze deletion" with really short sentences (fill-in-the-blanks style cards). http://www.supermemo.com/articles/20rules.htm
The next and final link is the academic reasons why this stuff works and the minor details that change how effective it is. Really interesting to me but not at all essential. http://www.gwern.net/Spaced%20repetition
In summary here are my own key points:
That is all.
Good luck with it.


Biscuit on GitHub


Powerhouse LP Turbine Addition
Estimated Summer 2021
Improving steam efficiency with compounding turbines
At my house, we have a small 12kW powerhouse where we generate electricity through a traditional rankine cycle. The current setup uses superheated steam to drive a small 15hp turbine at 6400RPM. This is then connected to a single-phase generator through a belt-drive down to 3600 RPM. The steam exhausts from this turbine to the condensor and the water goes back to the boiler.
Using just a single turbine in this application makes for very inefficient use of steam, because the single turbine must cover the whole pressure drop (it does have 3 stages internally, but this is not enough). So, to improve the steam efficiency, we have a much larger 75hp turbine (already 3600 rpm) that we will use as a LP turbine in a compound turbine arrangement. In a compound system, steam will exhaust from the existing turbine into the new LP turbine before going to the condensor. This will require the LP turbine to be renozzled, because it's nozzles are designed for 75hp worth of steam flow, which we cannot provide with our boiler. We are limited by the amount of steam we can generate, so the new turbine will only increase capacity via increasing the efficiency.


The API Design¶
Fig. 2 shows an overview of the GMAT component stack. The stack for the GMAT API, shown in Fig. 3, has a similar appearance. Users interact with the GMAT API through an interface layer built using the Simplified Wrapper and Interface Generator, SWIG. SWIG generates interfaces and shared libraries for Python and Java, and can generate similar interface code for other languages when needed. Classes in GMAT’s code base are exposed through this interface using language specific wrappers. Users interact with the GMAT classes through these wrappers.
Using the SWIG interface code, users can work directly with GMAT classes on a class by class/object by object level. Users that work this way need a pretty complete understanding of object linkages and interactions in GMAT. Using that expertise, they either imitate many of the steps that are performed by the GMAT engine when GMAT is run or make calls to the components of the engine to perform the required actions.
Most users would rather work at a less detailed level than this object by object interaction. There are two groups of users in this category: those that are familiar with GMAT and want to use the API to run GMAT scripts, making API calls to adapt their scripts along the way, and those that want to use capabilities provided by GMAT inside of models that they are running in a tool like MATLAB or Python, or in a compiled application written in a language like Java. The API provides a set of helper functions that encapsulate the GMAT engine behind calls that simplify the management tasks of the GMAT engine for these users. These API helpers are exposed through the SWIG interface layer for use by these API users.
A driving feature of the GMAT API is the incorporation of usability features for the API user community. During the prototyping exercise for the API, the development team found that the SWIG system provides a simple mechanism for exposing GMAT components in the Python, Java, and MATLAB environments. However, users working in those systems still found it difficult to use the prototype API because of a lack of on line documentation and apparent inconsistencies in the methods in GMAT. The production API addresses the first of these issues through the incorporation of class and object level help functions for classes that are identified as “API ready.” Interface inconsistencies are addressed through the addition of methods to the source code that simplify the class and object interfaces, leaving in place where necessary the interfaces that appear to API users to be inconsistent because of internal code needs in the GMAT system.
GMAT Code Updates¶
The GMAT source code was written to be fast and to meet the needs of analysts modeling spacecraft guidance, navigation and control. The code includes functions used to set up mission simulations through a set of interfaces that require that users know the underlying data structures in the code. API users do not necessarily have that knowledge, nor do they have a graphical user interface to guide them through setup for the components accessed using the API. Several code elements presented here are designed for integration into the base class for user components to meet these needs, adding functionality to the GmatBase class used for simulation components in GMAT, to facilitate API usage.
SetField() and GetField()¶
Parameter settings on GMAT objects are made through type specific methods with names like SetStringParameter(), SetRealParameter(), etc. API users can use those methods. A second set of methods, SetField(), will be added to the code to adapt user objects to less strongly typed interfaces. The SetField() methods are overloaded to adapt to multiple types of input data. The method checks the type for the field that being set, and sets it accordingly.
Method Signature |
Example |
Parameter Description |
|---|---|---|
bool SetField(name, value) |
sat.SetField(“X”, 7100.0) |
name is the field name used in GMAT scripting value is the value that is set |
bool SetField(id, value) |
% Spacecraft.X has ID 13 sat.SetField(13, 7100.0) |
id is the id of the field in GMAT’s object value is the value that is set |
The SetField() method takes either a field name or an integer ID value to identify the field to be set, and a string, integer, real number, or Boolean value as the new field setting. On success, the call to SetField() returns true. If the value passed to the SetField() method is incompatible with the data structure that is being set, or if the field is not a supported field on the object, the method returns a false boolean value.
Parameter settings on GMAT objects are accessed through type specific methods with names like GetStringParameter(), GetRealParameter(), etc. API users can use those methods. A second set of methods, GetField(), have been added to the code to adapt user objects to less strongly typed interfaces. The GetField() methods return a string containing the value of the field. The API users then convert that string into the form needed for their code.
Method Signature |
Example |
Parameter Description |
|---|---|---|
string GetField(name) |
sat.GetField(“X”) |
name is the field name used in GMAT scripting |
string GetField(id) |
sat.GetField(13) |
id is the ID of the field in GMAT’s object |
real GetNumber(name) |
sat.GetNumber(“X”) |
name is the field name used in GMAT scripting |
real GetNumber(id) |
sat.GetNumber(13) |
id is the ID of the field in GMAT’s object |
The GetField() method takes either a field name or an integer ID value to identify the field to be retrieved. On success, the current field value is returned in a string. If the field is not a supported field on the object, the method returns an empty string.
The GetNumber() method returns numerical data as a real number rather than as a string. If the field is not a numerical field on the object, the method reports an empty exception that identifies the type of the field.
Object help¶
Objects created in the API support a help function that is used to retrieve information about the settings available for the object, along with other information provided in the object’s class.
API users retrieve help for created objects by calling the Help() method on the object. For example, a call to the Help() method for an ImpulsiveBurn object, IB, returns the following data (Note: this is a mock-up of the data returned):
>>> IB = gmat.ImpulsiveBurn("Impulse1")
>>> print(IB.Help())
Impulse1 is an ImpulsiveBurn object with 9 Fields:
CoordinateSystem Type: Object Value: Local
Origin Type: Object Value: Earth;
Axes Type: Enum Value: VNB;
Element1 Type: Real Value: 25;
Element2 Type: Real Value: 0;
Element3 Type: Real Value: 0;
DecrementMass Type: Boolean Value: false;
Isp Type: Real Value: 300;
GravitationalAccel Type: Real Value: 9.81;
GMAT programmers may provide additional help for specific objects on a case by case basis by overriding the Help() method. The API Help command calls into the object’s Help() method when an object is passed to it, producing the same output. In other words, the output from IB.Help() is the same as the output from gmat.Help(IB).
API Support Functions¶
API users can work directly with GMAT objects, setting interobject connections and initializing objects to prepare them for use. However, much of the GMAT object model is built on composite objects, consisting of a core component that uses other GMAT components to jointly complete a task. In many cases, it is easy to miss making connections that are made automatically in the GMAT engine, leading to confusion about the component usage. The API includes helper functions that ease the burden of GMAT internal connections for users of typical components.
Table 4 provides a list of functions supplied as part of the GMAT API that help work with GMAT components without the need for detailed understanding of the GMAT code base. These functions work with the GMAT engine, hiding the engine functionality from the user while providing services that the user would otherwise need to code by hand with objects built with the API. Each function is described briefly below.
Function |
Options |
Description |
|---|---|---|
Initialize() |
Initializes GMAT objects and establishes object to object connections. This command is reentrant. Subsequent calls reconnect objects and continue the process of preparing the system for use. |
|
Status() |
Returns a string reporting any known configuration issues. Users call this function if the Initialize() call reported an issue. |
|
Create() |
ObjectType, ObjectName |
Creates an object of the input type, with the input name. The created object is then managed inside of the API. |
ShowObjects() |
Lists all of the named objects that exist in the current run. |
|
ShowClasses() |
Category |
Lists all of the creatable object types of the selected category. Example: ShowClasses(“Propagator”) lists all of the propagators available for creation. |
Clear() |
ObjectName |
Clears the GMAT engine by deleting all of the user created components managed in the API. Selecting an object by name in the call to Clear() results in deletion of that objects, leaving the other objects available for use. |
Help() |
Topic |
Shows the API help. Top level help is displayed if no topic is selected. The top level help includes a list of topics for the system. If the user enters a topic, the corresponding help is displayed. |
Initialize The Initialize() function is used to initialize GMAT objects. Each call to Initialize() generates a pass through the GMAT objects constructed using the Create() command, setting the inter-object connections that can be set and tracking any issues that prevent component use. The function returns true if the initialization succeeded, and false, along with a list of encountered issues, if there were problems.
Status The Status() method returns a list of issues found when the Initialize() method was called. If there are no known issues, the call to Status reports the number of managed objects in the current run.
Create The Create() function is used to create objects that are managed inside of the GMAT engine running under the API, including components exposed to the API from plugin libraries. All named objects created using the Create() method are built through the GMAT Moderator and passed to the GMAT ConfigurationManager singleton. These actions are invisible to the API user, and provide the mechanism used to manage objects in the API.
ShowObjects The ShowObjects() function is used to show a list of all objects managed in the API. Note that objects created through direct calls to a class’s constructor rather than through the Create() command are not managed in the API, and will not be part of the returned list.
ShowClasses The ShowClasses() function is used to list all of the available classes of objects available for creation is an input category.
Clear The Clear() function is used to clear the configuration of created objects. When an object name is included as a parameter in the function call, all other objects will remain available for use.
Help The Help() function is used to get help from inside of the API.


{% extends "base.html" %} {% block content %}
Lastest benchmarks, use the box below to enter two commit hash and compare both.
Lastest commits