Page Links: First Previous 1 2 3 4 Last Index Page
| Shaggy Sheep Driver 1st Jun 2012, 18:34 permalink Post: 1637 |
Did Roy Chadwick really contribute to delta wing design? I though Kutchmann and his team did most of the ground work developing the basic delta (as fitted to Chadwick's Vulcan) into the thin narrow delta with vortex lift.
|
|
| CliveL 4th Aug 2012, 11:43 permalink Post: 1663 |
Brian,
I don't think there is any published explanation, but maybe this will help. Basically the problem with #4 intake was that it was on the RHS of the airplane. We are talking about low speed right? and especially zero forward speed when the engine is trying to suck as much air as it can get from wherever it can get it. That means that the induced angle of attack on all the intake leading edges is going to be high. The best drawing I can find that shows the flow into the right hand pair is this The intake leading edges were all sharp, so the flow would separate if subjected to a high AoA. The upper lip was protected a little by the wing leading edge, and we were obliged to modify the prototype LE ahead of the intakes to prevent underwing vortices developing at low AoA in cruise which also helped a bit. The lower lip had a substantial separated flow 'bubble' at low forward speed as shown in red, but this cleared up quite quickly as the aircraft gathered speed. It was'cured' by the blow-in doors. The inner sidewalls were shielded by the landing gear doors, so the AoAs on the sidewall on that side were quite modest. The splitter was of course subject to equal flow demands on either side so the flow over that was pretty well symmetric. That leaves the two outer sidewalls which, look for all the world like highly swept delta wings with sharp LEs mounted vertically. Like all such wings when operated at high AoA they develop powerful vortices on the 'leeward' side. Looking back towards the engine the vortex on #4 engine was anticlockwise and that on #1 was clockwise. [Hope I got that one the right way round ] The OL593 rotates clockwise looking aft so the induced incremental AoA on the compressor blades was different on #1 and #4. The difference was enough to trigger some mild blade vibration - hence the rpm restriction until the intake capture was good enough to reduce the vortex strength. |
|
| CliveL 2nd Sep 2012, 12:06 permalink Post: 1681 |
Don't know much about radio altimeters. First thoughts were that it was some sort of vortex generator, but seems a funny place to have one. Second thoughts were that the 'vane' standing off the surface was there to generate some sort of suction (the 'hole' seems to be on the leeward side) to make sure that the inside did drain in all conditions.
|
|
| CliveL 14th Oct 2013, 15:06 permalink Post: 1722 |
Quote:
The problem apparently was that flame stabilisation operating in "contingency" rating was sensitive to the point that every engine had to be checked, so there was a lot of engine plus reheat testing, most of which was done at Patchway. The solution was addition of some form of 'spike' at various points on the spray bar (my informant wasn't very specific).  The development process was, as you suggested, a joint activity. |


Welcome to Mining UI. This guide will try it's best to help you with orientation in this application. Attributes Association rule pattern Mining Results About Mining UI Controls


Take home labs
Introduction
Progressive profiling allows you to create frictionless user journeys within Azure AD B2C, making sure that users only need to provide the minimum information before interacting with various parts of your service. When users interact with part of your service which requires further information about the user, gather more data at the required time. This can work on both mobile and web applications.
Objectives
Configure Azure Active Directory B2C to perform a progressive profile update.
- Configure the required claims
- Configure a page to collect user information
- Configure the User Journey to determine whether the user must provide extra information
- Upload and test AAD B2C custom policies
Prerequisites
- Azure account with subscription (See the Resources section for details)
- Azure AD B2C tenant
- VS code
- VS code plugin
Tasks
Task 1 – Download the Azure AD B2C Custom Policy files
To begin creating your Azure AD B2C custom user journey, you must start with the base XML files, known as the starter pack. Download these to your working directory via the Clone or Download link found here: https://github.com/Azure-Samples/active-directory-b2c-custom-policy-starterpack
To add additional logic to the base journeys included in the starter pack, either download or clone the Custom Policy samples repository, saving its contents to your working directory: https://github.com/azure-ad-b2c/samples
Task 2 – Configure your B2C tenant for Custom Policies
Follow the instructions here (from the “Get the starter pack” step, use the LocalAccounts folder instead of SocialAndLocalAccounts) : https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-get-started-custom up to and including “Test the custom policy”.
Task 3 – Enable Extension Attribute support
- Sign in to the Azure portal as the global administrator of your Azure AD B2C tenant.
- Make sure you are using the directory that contains your Azure AD B2C tenant. Click the Directory and subscription filter in the top menu and choosing the directory that contains your tenant.
- In the top search bar, search for and select Azure Active Directory.
- Select App registrations (preview).
- Search “b2c-extensions-app”
- Copy the following identifiers to your clipboard and save them:
- Application ID. Example: 103ee0e6-f92d-4183-b576-8c3739027780
- Object ID. Example: 80d8296a-da0a-49ee-b6ab-fd232aa45201
Open the samples/policies/progressive-profile/policy/ folder, and open the ProgressiveProfileTrustFrameworkExtensions.xml file.
Search for “
Modify the Metadata section in the AAD-Common technical profile as shown in the following example
- Replace ObjectID with the ObjectID of the b2c-extensions-app recorded earlier.
- Replace Application ID with the Application ID of the b2c-extensions-app recorded earlier.
<Metadata>
<Item Key="ApplicationObjectId">Object ID</Item>
<Item Key="ClientId">Application ID</Item>
</Metadata>
This allows the policy to create/read/write extension attributes.
Task 4 – Complete and upload your new policy
In the ProgressiveProfileTrustFrameworkExtensions.xml and ProgressiveSignUpOrSignin.xml, replace all instances of yourtenant.onmicrosoft.com with your tenant.
Upload the ProgressiveProfileTrustFrameworkExtensions.xml first and then ProgressiveSignUpOrSignin.xml file via the Azure AD B2C Blade – Identity Experience Framework – Upload.
Task 5 – Configure an Azure AD B2C Application Registration
- Sign in to the Azure portal as the global administrator of your Azure AD B2C tenant.
- Make sure you are using the directory that contains your Azure AD B2C tenant. Click the Directory and subscription filter in the top menu and choosing the directory that contains your tenant.
- In the top search bar, search for and select Azure AD B2C.
- On the Overview page, select Identity Experience Framework.
- Select the Applications tab and click Add.
- Enter “MyWebApp” as the Name of the application. Select Yes for Include Web App / Web API.
- Add “https://jwt.ms” as a Reply URL. This is where Azure AD B2C will send tokens back after a successful authentication. Because we do not have an application built yet, we will use https://jwt.ms temporarily. This web application will display the claims in the minted token.
- Click Create to create the application.
Task 6 – Run and test the Custom Policy
- Within the Azure Portal – AAD B2C Blade - Identity Experience Framework Select Custom Policies
- Select the B2C_1A_progressive_signup_signin
- Select the Application Registration created in Task 5, and select https://jwt.ms as the reply Url.
- Select b2clogin.com as the domain
- Click Run Now
- First Sign Up, then use the Run Now link again to Sign In.
If done correctly, the user will not be asked for the Loyalty Number when they Sign Up, but will be asked when they first Sign In. Subsequent Sign In’s will not ask for the Loyalty Number.
The JWT token issued at https://jwt.ms will show the Loyalty Number in the extension_LoyaltyNumber claim.
Review the changes to enable Progressive Profiling
(There are no actions to take in the following section)
The ProgressiveProfileTrustFrameworkExtensions.xml file within the samples/policies/progressive-profile/policy/ folder contains the additions made to enable a progressive profile-based journey.
When the user signs in, if ‘extension_LoyaltyNumber’ doesn’t exist on the user object, and if it’s not a ‘newUser’ (sign up) they will be directed to ‘SelfAsserted-ProfileUpdate’ to update the Loyalty number.
To achieve this, the following steps were taken:
Inherit the Starter Pack configuration
Setting the BasePolicy Id instructs AAD B2C to inherit all of the configuration from the Starter Pack, merging all modifications of elements declared with the same Id, or incorporating new elements on top of what the linked policies already configured.
<Base Policy>
<TenantId>yourtenant.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustframeworkExtensions</PolicyId>
</BasePolicy>
Added a claim to capture the Loyalty Number
In the ProgressiveSignUpOrSignin.xml file, after the </BasePolicy> section, the following section was added to define the claim:
<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="extension_LoyaltyNumber">
<DisplayName>Loyalty-Number</DisplayName>
<DataType>string</DataType>
<UserHelpText>Your Loyalty number from your membership card</UserHelpText>
<UserInputType>TextBox</UserInputType>
</ClaimType>
</ClaimsSchema>
</BuildingBlocks>
Created a page to collect the Loyalty Number
Augmented the existing profile update technical profile to collect the loyalty number.
Under the </BuildingBlocks> section, added the following section:
<ClaimsProviders>
</ClaimsProviders>
Then within the ClaimsProviders section created above, added the following claims provider:
<ClaimsProvider>
<DisplayName>Self Asserted</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="SelfAsserted-ProfileUpdate">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="extension_LoyaltyNumber" Required="true"/>
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
Configured the Policy for Extension attributes
To enable custom attributes in your policy, provide Application ID and Application Object ID in the AAD-Common technical profile metadata. The AAD-Common technical profile provides support for Azure AD user management. Override the AAD-Common technical profile by adding the following to the ProgressiveProfileTrustFrameworkExtensions.xml within the ClaimsProviders section:
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-Common">
<Metadata>
<Item Key="ClientId">b2c-extensions-app application ID here </Item>
<Item Key="ApplicationObjectId">b2c-extensions-app application ObjectId here</Item>
</Metadata>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
As per this article.
Augmented the profile read/write technical profiles to read/write the Loyalty Number
Added another claims provider within the ClaimsProviders section as follows:
<ClaimsProvider>
<DisplayName>Azure Active Directory</DisplayName>
<TechnicalProfiles>
<TechnicalProfile Id="AAD-UserWriteProfileUsingObjectId">
<PersistedClaims>
<PersistedClaim ClaimTypeReferenceId="extension_LoyaltyNumber"/>
</PersistedClaims>
</TechnicalProfile>
<TechnicalProfile Id="AAD-UserReadUsingObjectId">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="extension_LoyaltyNumber"/>
</OutputClaims>
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
This augments the existing technical profiles found in the TrustframeworkBase.xml file to additionally read and write the Loyalty number extension attribute.
Added a step to collect the Loyalty Number in the User Journey
Copied the default SignInOrSignUp User Journey from the TrusframeworkBase.xml file. Renamed the UserJourney Id to “SignUpOrSignInProgressive”.
Added a step in the User Journey to call the SelfAsserted-ProfileUpdate technical profile under the condition that we did not find the extension_LoyaltyNumber via Orchestration Step 3, and that the newUser claim did not exist (sign up scenario).
The newUser claim is output by default when a new account is written, hence we can use this as a flag.
<OrchestrationStep Order="4" Type="ClaimsExchange">
<Preconditions>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>extension_LoyaltyNumber</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
<Precondition Type="ClaimsExist" ExecuteActionsIf="true">
<Value>newUser</Value>
<Action>SkipThisOrchestrationStep</Action>
</Precondition>
</Preconditions>
<ClaimsExchanges>
<ClaimsExchange Id="ProfileUpdateExchange" TechnicalProfileReferenceId="SelfAsserted-ProfileUpdate" />
</ClaimsExchanges>
</OrchestrationStep>
This step is controlled by preconditions. It will only get triggered when the user is authenticating for a subsequent time after sign-up, and has not already provided their loyalty number. When triggered, the user must enter their loyalty number.
Then adjusted the “Order” number sequence of all steps to make sure it follows sequentially.
Configured the Relying Party section
First copied the signInOrSignUp.xml from the LocalAccounts folder to the ProgressiveProfile folder.
Changed the BasePolicy to the PolicyId of the ProgressiveProfileTrustFrameworkExtensions.xml to B2C_1A_ProgressiveProfile_TrustFrameworkExtensions.
Change the defaultUserJourney Id under the RelyingParty section from SignUpOrSignIn to SignUpOrSignInProgressiveProfile.
Added an output claim as part of the Relying Party configuration such that the token contains the loyalty number.
In the RelyingParty section of ProgressiveProfileSignUpOrSignin.xml, within the OutputClaims section added:
<OutputClaim ClaimTypeReferenceId="extension_LoyaltyNumber"/>
Lab Summary
Congratulations on completing this lab! You’ve learned how to use Azure AD B2C to add rich, secure & scalable customer sign-up & sign-in experiences to your web app.


@* * This template is called from the `index` template. This template * handles the rendering of the page header and body tags. It takes * two arguments, a `String` for the title of the page and an `Html` * object to insert into the body of the page. *@ @(title: String,empNo: String,empName:String,authClass:String)(content: Html)
@* Here's where we render the page title `String`. *@Loading...


--- title: PhoneGap Day US Videos author: Steve Gill format: html tags: - PhoneGap Day - Video ---
PhoneGap Day US was a huge success thanks to all of the speakers and attendees. To not lose the memory of this great event, we decided to film all of the sessions and have decided to release those videos for free to our wonderful community!
We will be releasing some videos every few days leading up to PhoneGap Day EU happening on September 14th in Amsterdam. Our first release includes the opening remarks at PhoneGap Day US by Andre Charland and an overview of the mobile web landscape by Matt Kelly. You can view the videos below or by going to our Youtube Page.
You can view all the slides from PhoneGap Day US over on Github.
Thank you again to everyone who attended PhoneGap Day US and a big thank you to our PhoneGap Day sponsors: Intel, Breaking Development, OneTok and AT&T Developer Program. We appreciate your commitment to supporting PhoneGap and the developer community.


Refresh this pen in edit view to see a random() tree colour and animation pattern.
Merry Christmas from @namboozle>


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
Deleted User30-Aug-19 11:50 AM
nothing if it stays private
dukeleto30-Aug-19 11:55 AM
@hastrup get elected
I am pretty sure NNs would come down with fire upon anybody who sold a node against the rules
it's slightly inconvenient, but it can be dealt with. Very risky for whoever buys it and tries to keep it secret
PHBA206130-Aug-19 11:56 AM
with a NN op as middle-man, anyone can buy a NN node I guess, but ofc you have to trust the middle-man
dukeleto30-Aug-19 11:57 AM
thems the rules
hastrup30-Aug-19 11:57 AM
Where can I read the rules.
dukeleto30-Aug-19 11:57 AM
@SHossain we got rules written down somewhere?
hastrup30-Aug-19 11:58 AM
But let me clear I'm not looking to buy a nn!
dukeleto30-Aug-19 11:58 AM
@ca333 and @kolo are the rule whisperers
The rules should be written down clearly somewhere.
hastrup30-Aug-19 11:58 AM
@dukeleto thx I will look into it
dukeleto30-Aug-19 11:59 AM
They have changed a bit over time, and so I agree that we should clarify exactly what the rules are. Especially if some people want to break them, like @Deleted User(edited)
phm8730-Aug-19 11:59 AM
I began to write some then I stop to write. I found no existing written rules
dukeleto30-Aug-19 11:59 AM
@phm87 i support you writing them rules down(edited)
hastrup30-Aug-19 11:59 AM
But are there some counter measurement if it happens? Or is that also in the rules?
kolo30-Aug-19 12:00 PM
Rules exist in whitepaper and never changed much
dukeleto30-Aug-19 12:00 PM
These rules are important, for when people outside the community accuse us of things/etc
phm8730-Aug-19 12:00 PM
@dukeleto it was a draft. One ip per nn as example
dukeleto30-Aug-19 12:00 PM
@kolo "who is allowed to buy a NN" is not written down anywhere
edge cases and stuff
kolo30-Aug-19 12:01 PM
Edge cases can’t be solved prior
phm8730-Aug-19 12:01 PM
Is it forbidden to use vrack ? (As Iam using on all my servers since 2 years except nn srvs) I think it is not allowed
Note: vrack is written in my proposal
Deleted User30-Aug-19 12:04 PM
it's not about breaking them, past monthes I proved technically that every enforced rule you manage to build can be bypassed in a matter of minutes, it s about having fair ones, and a real governance
you saw those as bad behaviour, it was meant to help to refine, nothing more, nothing less
but am done with this, I just wanted to help
refining an ecosystem is not done by people always saying yes, but people that dig and find issues, and submit them to fix it, so the system is stronger
hastrup30-Aug-19 12:11 PM
I don't care that much what dwy. But what I care about is the selling and buying of the nn there should be a clear rule set what is allow and not. If someone misbehave there should be a vote between the nn and if they agree that x nn have done something wrong then a new public vote should happen for that nn.
jl777c30-Aug-19 12:12 PM
generally speaking it is not allowed
only in special circumstances are exception allowed and the team ends up buying it and not using it for notarizations
it is impossible to have rules to cover all possible scenarios, at least not without spending a lot of time and effort to create such a set of rules. so we use the practical approach and deal with these edge cases on a case by case basis
there are 64 NN spots, so losing a few is well within the system design. it has built in redundancy
hastrup30-Aug-19 12:26 PM
@jl777c ho decidede what is a special circumstance or a personal attack is? Is it one or many that decide? And what about the person that lost the spot whit one vote. should that person not get the chance to prove how good a nn they go be. While there is a nn just doing nothing. Somone voted for dwy, we are not respecting there wish for him to be a nn. their votes should not go to waste, they should get a chance to vote again for somone else then. I can understand that is not that feasible. But I sound like there is room for improvement in the future.
jl777c30-Aug-19 12:33 PM
it is unfortunate that elected notaries sometimes end up in a situation where they are not able to do what they promised to do and insist on getting paid for their spots. each year there seem to be a few spots like this, but the alternate NN isnt in a position to pay for it. last year, we had an alternate NN take over one of the spots. as i say it is impossible to know how best to handle all possible things, we just try to do the best we can with each situation.
@hastrup if there is indeed an NN candidate that just missed out and wants one of the spots, they can contact me, but so far nobody has
in a sense the people that voted for the NN who bailed out, that is who they voted for. why should they get to vote again?
hastrup30-Aug-19 12:47 PM
I don't know if there are a nn that almost got in but I could imagine. Why should the people get to vote again. Thats a good question. In my mind it just sounds fair that if it nn is removed involuntary they are not getting what they voted on. I just don't like it possible to buy the nn that is what I'm the most concerned about. There should be something next in line if someone misbehave.
jl777c30-Aug-19 12:48 PM
nobody was removed involuntarily
in fact, it was insisted over and over again, that the NN spots "had to be sold"
$BTC dominance about to break 70%
The last time it did that was March 2017, right before it fell off a cliff and the biggest ALT season in history kicked off...
I don't know what happens and maybe that is for the best. We are getting small amounts of info here and there. But if this was the best way to handle it who I'm i to judge. I don't now what happen or i cant code a solution to for it. I want to live in a world where I can trust code not people. But thx for jl for taking the time and answering me :) I appreciate it
Crabby Paddy30-Aug-19 01:07 PM
If anyone is looking to sell kmd inbox me. Going to buy large amount on binance tomorrow
4
2
1
Don’t want to market buy or wait for order so if anyone’s looking to sell lmk
Cryptoon30-Aug-19 01:08 PM
is anyone going to sell now that you basically said you are whalebro and going to marketbuy tomorrow though?
1
hastrup30-Aug-19 01:08 PM
Haha
Crabby Paddy30-Aug-19 01:08 PM
maybe someone is desperate to sell. Liquidity is pretty low
Cost dollar average from $20 to $1
Cryptoon30-Aug-19 01:09 PM
have been buying steadily the past couple of weeks
every week a bit
spread risk over time and dollar cost average
Crabby Paddy30-Aug-19 01:09 PM
These prices are ridiculous compared to what I bought in at
Cryptoon30-Aug-19 01:10 PM
I bought 80c -> to 5$ and 7$ -> 0,65$ till december last year or so
hastrup30-Aug-19 01:10 PM
@Crabby Paddy yes me to my avg is like 1.2 usd
Cryptoon30-Aug-19 01:10 PM
avg is at a dollar or so here
so that's cool
hastrup30-Aug-19 01:11 PM
@Cryptoon that's good :)(edited)
74D3030-Aug-19 01:11 PM
I'm ready to party at these prices
Tomorrow will be a good day
Tek30-Aug-19 01:55 PM
bch soon
1
passcombo.com 🏴☠🏴30-Aug-19 01:55 PM
reg "rules of selling NN" - guys do we still talk about decentralized permissionless systems? I find it strange people want enforce rules in here, either we talk about permissionless decentralizations, where rules are enforced by the math and code design or politics and personal issues or personal beliefs?
blackjok3r30-Aug-19 01:56 PM
You cna only put on chain what youc an put on chain(edited)
everything else must be off chain
That is why rules exist... Trying to make solution for all rules in code, is impossible(edited)
passcombo.com 🏴☠🏴30-Aug-19 01:58 PM
rules not written anywhere and not published are not that much rules for me and can change without anybody noticing, because... not written you know
hastrup30-Aug-19 01:58 PM
@passcombo.com 🏴☠🏴 yes that is a good point
jl777c30-Aug-19 01:59 PM
i am waiting for someone to write up all these supposedly mysterious rules
1
passcombo.com 🏴☠🏴30-Aug-19 01:59 PM
sooner or later voting should happend more often among communities - topic based voting / issued based and so on .... seems Verus want to build such thing
then you do not need to write all rules
just vote on issues
jl777c30-Aug-19 01:59 PM
voting on everything is not any good solution
3
1
Tek30-Aug-19 02:00 PM
yeah, cuz the masses are retarded
1
jl777c30-Aug-19 02:00 PM
and what issue is there in this case?
hastrup30-Aug-19 02:00 PM
koloi kl. 14:00
Rules exist in whitepaper and never changed much
passcombo.com 🏴☠🏴30-Aug-19 02:00 PM
the issue is controversy, controversy is the issue, discussion and voting is what is used to solve such in democracy
jl777c30-Aug-19 02:00 PM
so what to do when an elected NN insists that he has to sell his nodes?
passcombo.com 🏴☠🏴30-Aug-19 02:01 PM
which is less violent solution then just enforcing someone to do/not do sth
jl777c30-Aug-19 02:01 PM
you suggest a vote., which if the vote said to not allow it, it wouldnt have stopped the NN operator from continuing to demand that he be able to sell his nodes
hastrup30-Aug-19 02:01 PM
so what to do when an elected NN insists that he has to sell his nodes? give the node to the second most vots
jl777c30-Aug-19 02:01 PM
give?
who pays the original NN?
Tek30-Aug-19 02:02 PM
you : D
jl777c30-Aug-19 02:02 PM
i am low on funds
hastrup30-Aug-19 02:02 PM
maybe there is somthing i dont understand
Tek30-Aug-19 02:02 PM
how can you be low on funds bruh you recently gathered like 10 million in exploit your own system scheme
1
joking
dw frens as long as I am here there is hope.
1
hastrup30-Aug-19 02:04 PM
so its not possible to "give" the node to a the one whit the second most votes?
blackjok3r30-Aug-19 02:04 PM
no... because the keys cant change
jl777c30-Aug-19 02:04 PM
how? when the elected NN was demanding payment
the alternate cant be made to pay for the spot
hastrup30-Aug-19 02:05 PM
ok that makes sense can a node be voted for again whit a new set of keys?(edited)
jl777c30-Aug-19 02:05 PM
it can, but there is no sense to do this as these nodes can be idle without hurting things.
it is best if the next election, operators that wont continue to notarize are not elected


If found more then one thread for current page then:
open list of threads
open most relevant post
Check if current page was on HN:
on toolbar icon click
on page load
If current page wasn't found on HN then on icon click:
do nothing
submit link to HN
save
saved


Your age on :
You have years left to live on Mercury
You have years left to live on Mars
You have years left to live on Venus
You have years left to live on Jupiter


We implement methods for estimating multivariate densities. We include a discretized kernel estimator, an adaptive histogram (a greedy histogram and a CART-histogram), stagewise minimization, and bootstrap aggregation.
| Version: | 0.8.2 |
| Imports: | denpro (≥ 0.9.2) |
| Published: | 2015-06-03 |
| Author: | Jussi Klemela [aut, cre], Sauli Herrala [ctb] |
| Maintainer: | Jussi Klemela <jussi.klemela at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: | http://jussiklemela.com/delt/ |
| NeedsCompilation: | yes |
| In views: | Multivariate |
| CRAN checks: | delt results |
| Reference manual: | delt.pdf |
| Package source: | delt_0.8.2.tar.gz |
| Windows binaries: | r-devel: delt_0.8.2.zip, r-release: delt_0.8.2.zip, r-oldrel: delt_0.8.2.zip |
| OS X binaries: | r-release: delt_0.8.2.tgz, r-oldrel: delt_0.8.2.tgz |
| Old sources: | delt archive |
Please use the canonical form https://CRAN.R-project.org/package=delt to link to this page.


I picked up some and began to take Them daily. Within no time at all, I felt much better. I had Lots of energy for cleaning the house and just generally better Spirits. I was even trying to get my elderly father and my friends to take it because it was working. I felt happy. I even had a glow.
Well, this was fine except that little by little my judgement was slipping without me recognizing it. I was truly on a high (but I thought it was natural). I became fearless even. I opened a business which I had always wanted to do but was scared of making a big mistake. I threw myself into this business from 7 in the morning until 11 at night. Nope still not tired.
For now, I was truly happy. I must have been in a stage of mania and thought I was just happy. After about a year exactly of taking this drug, I began to feel very sexually attracted to someone who would be considered not attractive in any way, manner, or form. Not even a person to be respected. I had been married since 1983 to a wonderful man and had been true to him and I loved him deeply so when this happened a red flag should have gone up, but it didn't. This man was also married. From this point my life went totally downhill and my judgment had gone out of the window but I didn't realize it. I thought this was meant to be because I had these strong feelings.
Anyway, one thing lead to another, I ended up with a divorce, losing my home and most of my friends from my hard earned reputation, my mind - it was just gone, my money, my everything . . . Gone. Now I see psychiatrist and doctors for a living practically. If I were getting paid I would be rich. I'm on three psychiatric drugs and constantly running to this doctor or that doctor since 1998, April. My life is in shambles and I can't seem to get straight. Everyone that knows me closely and watched this agrees I changed tremendously after taking this supplement.
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.


--- layout: post permalink: 1800lighting.html Tags: Array NameOfCoupon: 1-800 Lighting Cash Back Summary: See our 1-800 Lighting Coupon Code, 1-800 Lighting Rebate, 1-800 Lighting Promo Code, 1-800 Lighting Discount, 1-800 Lighting Coupon Cash Back Rebate here. MetaKeywords: 1-800 Lighting Coupon Code, 1-800 Lighting Rebate, 1-800 Lighting Promo Code, 1-800 Lighting Cash Back Rebate, 1-800 Lighting Discount, 1-800 Lighting Coupon Image: images/29504.gif LinkURL: http://www.shareasale.com/r.cfm?b=257908&u=412002&m=29504 affiliate_url_link: http://www.icouponblog.com/jane.php?id=6207 thesis_readmore: See the 1-800 Lighting Coupon thesis_thumb: http://www.icouponblog.com/tn.php?merchantURL=1800lighting.com/?utm_source=SAS&utm_medium=AffiliateProgram Title: Save 4.00% - 1-800 Lighting Coupon Code for 1800lighting.com/?utm_source=SAS&utm_medium=AffiliateProgram. 1-800 Lighting Rebate & Discount thesis_description: Our 1-800 Lighting Discount Coupon Code for 1800lighting.com/?utm_source=SAS&utm_medium=AffiliateProgram. We have the best 1-800 Lighting Rebate anywhere. thesis_keywords: 1-800 Lighting, 1-800 Lighting Coupon Code, 1-800 Lighting Discount, 1-800 Lighting Rebate product_name: 1-800 Lighting hop_url: http://www.icouponblog.com/hop.php?id=6207 ---
www.1800lighting.com carries a wide range of lamps, light fixtures for every room of your home. Brighten your homes Brighten your home, bathrooms, kitchen with high quality, low priced, highly efficient lighting system. Add lighting in dramatic fashion to your bedroom or bathrooms. Get an island light for your kitchen. Lighting can really change the looks of your home or office for the better. Give your home a spectacular lift with amazing lighting options from www.1800lighting.com. You can also choose from a wide selection of ceiling fans. They are beautiful and will keep your home airy and comfortable.
Visit www.1800lighting.com for all your lighting needs. You can get beautiful chandeliers, wall lights, indoor outdoor lights, ceiling fans etc. check them out today. You can even go green with the special energy efficient light fixtures. For beauty, high quality and very affordable prices, visit www.1800lighting.com and start shopping and brightening up your life, your space and your favorite rooms! Our discount coupons will get you a better deal.


Antharas Watchman Gilmore:
Have you destroyed the jewel? Excellent! Now, take the fragment to
Antharas Watchman Theodric
. You will find him at the entrance of Antharas' Lair in the deepest part of Dragon Valley.


Film 1
Film 2
Film 3
Film 4
{{chosenFilm.original_title}}
{{chosenFilm.overview}}
{{chosenFilm.average_note}}


{% extends "pretixcontrol/event/settings_base.html" %} {% load i18n %} {% load bootstrap3 %} {% block title %}{% trans "Delete tax rule" %}{% endblock %} {% block inside %} {% trans "Delete tax rule" %}
{% blocktrans %}Are you sure you want to delete the tax rule {{ taxrule }}?{% endblocktrans %}
{% blocktrans %}You cannot delete a tax rule that is in use for a product or has been in use for any existing orders.{% endblocktrans %}


Terraclime is a soft-sided, multi-purpose pouch made of over 95% recycled materials.
This unique device uses a curved reflective mirror instead of a parabolic one to evenly heat up the food.
16oz Aluminum Bottle with twist-off, finger-loop cap and carabiner. Stronger than glass, safer than plastic. Set your business environmentally apart by supplying your employees with these recyclable aluminum drinkholders.
Be prepared for any emergency. No need to rely on batteries, or solar power. This cool-looking and unique flashlight never needs batteries or recharging. Squeezing the hand grip for a few seconds produces a bright light. Ultra-efficient, it shines for a long time! The clear case let's you see how the charging mechanism works.
Glamping, anyone? This large tent has 2 bedrooms that each sleep 2 people. Both rooms are accessed from a central hall that’s tall enough to stand up in. The hall doesn't have a floor, so you can use it to deal with wet gear without getting your sleeping bags wet or gritty. Store your bikes in it, dry your wetsuit, or use it as a sheltered dining area. An optional ground sheet converts the hall to a bedroom that sleeps up to 4 additional campers.


some fixes to topological sort algorithm(link)
added DISTINCT ON support to Postgres (just supply distinct=[col1,col2..])(link)
added __mod__ (% operator) to sql expressions(link)
“order_by” mapper property inherited from inheriting mapper(link)
fix to column type used when mapper UPDATES/DELETEs(link)
with convert_unicode=True, reflection was failing, has been fixed(link)
types types types! still werent working....have to use TypeDecorator again :((link)
mysql binary type converts array output to buffer, fixes PickleType(link)
fixed the attributes.py memory leak once and for all(link)
unittests are qualified based on the databases that support each one(link)
fixed bug where column defaults would clobber VALUES clause of insert objects(link)
fixed bug where table def w/ schema name would force engine connection(link)
fix for parenthesis to work correctly with subqueries in INSERT/UPDATE(link)
HistoryArraySet gets extend() method(link)
fixed lazyload support for other comparison operators besides =(link)
lazyload fix where two comparisons in the join condition point to the samem column(link)
added “construct_new” flag to mapper, will use __new__ to create instances instead of __init__ (standard in 0.2)(link)
added selectresults.py to SVN, missed it last time(link)
tweak to allow a many-to-many relationship from a table to itself via an association table(link)
small fix to “translate_row” function used by polymorphic example(link)
create_engine uses cgi.parse_qsl to read query string (out the window in 0.2)(link)
tweaks to CAST operator(link)
fixed function names LOCAL_TIME/LOCAL_TIMESTAMP -> LOCALTIME/LOCALTIMESTAMP(link)
fixed order of ORDER BY/HAVING in compile(link)
support for MS-SQL added courtesy Rick Morrison, Runar Petursson(link)
the latest SQLSoup from J. Ellis(link)
ActiveMapper has preliminary support for inheritance (Jeff Watkins)(link)
added a “mods” system which allows pluggable modules that modify/augment core functionality, using the function “install_mods(*modnames)”.(link)
added the first “mod”, SelectResults, which modifies mapper selects to return generators that turn ranges into LIMIT/OFFSET queries (Jonas Borgstr?(link)
factored out querying capabilities of Mapper into a separate Query object which is Session-centric. this improves the performance of mapper.using(session) and makes other things possible.(link)
objectstore/Session refactored, the official way to save objects is now via the flush() method. The begin/commit functionality of Session is factored into LegacySession which is still established as the default behavior, until the 0.2 series.(link)
types system is bound to an engine at query compile time, not schema construction time. this simplifies the types system as well as the ProxyEngine.(link)
added ‘version_id’ keyword argument to mapper. this keyword should reference a Column object with type Integer, preferably non-nullable, which will be used on the mapped table to track version numbers. this number is incremented on each save operation and is specifed in the UPDATE/DELETE conditions so that it factors into the returned row count, which results in a ConcurrencyError if the value received is not the expected count.(link)
added ‘entity_name’ keyword argument to mapper. a mapper is now associated with a class via the class object as well as an optional entity_name parameter, which is a string defaulting to None. any number of primary mappers can be created for a class, qualified by the entity name. instances of those classes will issue all of their load and save operations through their entity_name-qualified mapper, and maintain separate a identity in the identity map for an otherwise equilvalent object.(link)
overhaul to the attributes system. code has been clarified, and also fixed to support proper polymorphic behavior on object attributes.(link)
added “for_update” flag to Select objects(link)
some fixes for backrefs(link)
fix for postgres1 DateTime type(link)
documentation pages mostly switched over to Markdown syntax(link)
added SQLSession concept to SQLEngine. this object keeps track of retrieving a connection from the connection pool as well as an in-progress transaction. methods push_session() and pop_session() added to SQLEngine which push/pop a new SQLSession onto the engine, allowing operation upon a second connection “nested” within the previous one, allowing nested transactions. Other tricks are sure to come later regarding SQLSession.(link)
added nest_on argument to objectstore.Session. This is a single SQLEngine or list of engines for which push_session()/pop_session() will be called each time this Session becomes the active session (via objectstore.push_session() or equivalent). This allows a unit of work Session to take advantage of the nested transaction feature without explicitly calling push_session/pop_session on the engine.(link)
factored apart objectstore/unitofwork to separate “Session scoping” from “uow commit heavy lifting”(link)
added populate_instance() method to MapperExtension. allows an extension to modify the population of object attributes. this method can call the populate_instance() method on another mapper to proxy the attribute population from one mapper to another; some row translation logic is also built in to help with this.(link)
fixed Oracle8-compatibility “use_ansi” flag which converts JOINs to comparisons with the = and (+) operators, passes basic unittests(link)
tweaks to Oracle LIMIT/OFFSET support(link)
Oracle reflection uses ALL_** views instead of USER_** to get larger list of stuff to reflect from(link)
fixes to Oracle foreign key reflection(link)
objectstore.commit(obj1, obj2,...) adds an extra step to seek out private relations on properties and delete child objects, even though its not a global commit(link)
lots and lots of fixes to mappers which use inheritance, strengthened the concept of relations on a mapper being made towards the “local” table for that mapper, not the tables it inherits. allows more complex compositional patterns to work with lazy/eager loading.(link)
added support for mappers to inherit from others based on the same table, just specify the same table as that of both parent/child mapper.(link)
some minor speed improvements to the attributes system with regards to instantiating and populating new objects.(link)
fixed MySQL binary unit test(link)
INSERTs can receive clause elements as VALUES arguments, not just literal values(link)
support for calling multi-tokened functions, i.e. schema.mypkg.func()(link)
added J. Ellis’ SQLSoup module to extensions package(link)
added “polymorphic” examples illustrating methods to load multiple object types from one mapper, the second of which uses the new populate_instance() method. small improvements to mapper, UNION construct to help the examples along(link)
improvements/fixes to session.refresh()/session.expire() (which may have been called “invalidate” earlier..)(link)
added session.expunge() which totally removes an object from the current session(link)
added *args, **kwargs pass-thru to engine.transaction(func) allowing easier creation of transactionalizing decorator functions(link)
added iterator interface to ResultProxy: “for row in result:...”(link)
added assertion to tx = session.begin(); tx.rollback(); tx.begin(), i.e. cant use it after a rollback()(link)
added date conversion on bind parameter fix to SQLite enabling dates to work with pysqlite1(link)
improvements to subqueries to more intelligently construct their FROM clauses(link)
added PickleType to types.(link)
fixed two bugs with column labels with regards to bind parameters: bind param keynames they are now generated from a column “label” in all relevant cases to take advantage of excess-name-length rules, and checks for a peculiar collision against a column named the same as “tablename_colname” added(link)
major overhaul to unit of work documentation, other documentation sections.(link)
fixed attributes bug where if an object is committed, its lazy-loaded list got blown away if it hadnt been loaded(link)
added unique_connection() method to engine, connection pool to return a connection that is not part of the thread-local context or any current transaction(link)
added invalidate() function to pooled connection. will remove the connection from the pool. still need work for engines to auto-reconnect to a stale DB though.(link)
added distinct() function to column elements so you can do func.count(mycol.distinct())(link)
added “always_refresh” flag to Mapper, creates a mapper that will always refresh the attributes of objects it gets/selects from the DB, overwriting any changes made.(link)
create_engine() now uses genericized parameters; host/hostname, db/dbname/database, password/passwd, etc. for all engine connections. makes
(link)engine URIs much more “universal”
added support for SELECT statements embedded into a column clause, using the flag “scalar=True”(link)
another overhaul to EagerLoading when used in conjunction with mappers that inherit; improvements to eager loads figuring out their aliased queries correctly, also relations set up against a mapper with inherited mappers will create joins against the table that is specific to the mapper itself (i.e. and not any tables that are inherited/are further down the inheritance chain), this can be overridden by using custom primary/secondary joins.(link)
added J.Ellis patch to mapper.py so that selectone() throws an exception if query returns more than one object row, selectfirst() to not throw the exception. also adds selectfirst_by (synonymous with get_by) and selectone_by(link)
added onupdate parameter to Column, will exec SQL/python upon an update statement.Also adds “for_update=True” to all DefaultGenerator subclasses(link)
added support for Oracle table reflection contributed by Andrija Zaric; still some bugs to work out regarding composite primary keys/dictionary selection(link)
checked in an initial Firebird module, awaiting testing.(link)
added sql.ClauseParameters dictionary object as the result for compiled.get_params(), does late-typeprocessing of bind parameters so that the original values are easier to access(link)
more docs for indexes, column defaults, connection pooling, engine construction(link)
overhaul to the construction of the types system. uses a simpler inheritance pattern so that any of the generic types can be easily subclassed, with no need for TypeDecorator.(link)
added “convert_unicode=False” parameter to SQLEngine, will cause all String types to perform unicode encoding/decoding (makes Strings act like Unicodes)(link)
added ‘encoding=”utf8”’ parameter to engine. the given encoding will be used for all encode/decode calls within Unicode types as well as Strings when convert_unicode=True.(link)
improved support for mapping against UNIONs, added polymorph.py example to illustrate multi-class mapping against a UNION(link)
fix to SQLite LIMIT/OFFSET syntax(link)
fix to Oracle LIMIT syntax(link)
added backref() function, allows backreferences to have keyword arguments that will be passed to the backref.(link)
Sequences and ColumnDefault objects can do execute()/scalar() standalone(link)
SQL functions (i.e. func.foo()) can do execute()/scalar() standalone(link)
fix to SQL functions so that the ANSI-standard functions, i.e. current_timestamp etc., do not specify parenthesis. all other functions do.(link)
added settattr_clean and append_clean to SmartProperty, which set attributes without triggering a “dirty” event or any history. used as: myclass.prop1.setattr_clean(myobject, ‘hi’)(link)
improved support to column defaults when used by mappers; mappers will pull pre-executed defaults from statement’s executed bind parameters (pre-conversion) to populate them into a saved object’s attributes; if any PassiveDefaults have fired off, will instead post-fetch the row from the DB to populate the object.(link)
added ‘get_session().invalidate(*obj)’ method to objectstore, instances will refresh() themselves upon the next attribute access.(link)
improvements to SQL func calls including an “engine” keyword argument so they can be execute()d or scalar()ed standalone, also added func accessor to SQLEngine(link)
fix to MySQL4 custom table engines, i.e. TYPE instead of ENGINE(link)
slightly enhanced logging, includes timestamps and a somewhat configurable formatting system, in lieu of a full-blown logging system(link)
improvements to the ActiveMapper class from the TG gang, including many-to-many relationships(link)
added Double and TinyInt support to mysql(link)
completed “post_update” feature, will add a second update statement before inserts and after deletes in order to reconcile a relationship without any dependencies being created; used when persisting two rows that are dependent on each other(link)
completed mapper.using(session) function, localized per-object Session functionality; objects can be declared and manipulated as local to any user-defined Session(link)
fix to Oracle “row_number over” clause with multiple tables(link)
mapper.get() was not selecting multiple-keyed objects if the mapper’s table was a join, such as in an inheritance relationship, this is fixed.(link)
overhaul to sql/schema packages so that the sql package can run all on its own, producing selects, inserts, etc. without any engine dependencies. builds upon new TableClause/ColumnClause lexical objects. Schema’s Table/Column objects are the “physical” subclasses of them. simplifies schema/sql relationship, extensions (like proxyengine), and speeds overall performance by a large margin. removes the entire getattr() behavior that plagued 0.1.1.(link)
refactoring of how the mapper “synchronizes” data between two objects into a separate module, works better with properties attached to a mapper that has an additional inheritance relationship to one of the related tables, also the same methodology used to synchronize parent/child objects now used by mapper to synchronize between inherited and inheriting mappers.(link)
made objectstore “check for out-of-identitymap” more aggressive, will perform the check when object attributes are modified or the object is deleted(link)
Index object fully implemented, can be constructed standalone, or via “index” and “unique” arguments on Columns.(link)
added “convert_unicode” flag to SQLEngine, will treat all String/CHAR types as Unicode types, with raw-byte/utf-8 translation on the bind parameter and result set side.(link)
postgres maintains a list of ANSI functions that must have no parenthesis so function calls with no arguments work consistently(link)
tables can be created with no engine specified. this will default their engine to a module-scoped “default engine” which is a ProxyEngine. this engine can be connected via the function “global_connect”.(link)
added “refresh(*obj)” method to objectstore / Session to reload the attributes of any set of objects from the database unconditionally(link)
fixed a recursive call in schema that was somehow running 994 times then returning normally. broke nothing, slowed down everything. thanks to jpellerin for finding this.(link)
small fix to Function class so that expressions with a func.foo() use the type of the Function object (i.e. the left side) as the type of the boolean expression, not the other side which is more of a moving target (changeset 1020).(link)
creating self-referring mappers with backrefs slightly easier (but still not that easy - changeset 1019)(link)
fixes to one-to-one mappings (changeset 1015)(link)
psycopg1 date/time issue with None fixed (changeset 1005)(link)
two issues related to postgres, which doesnt want to give you the “lastrowid” since oids are deprecated:
- postgres database-side defaults that are on primary key cols do execute
explicitly beforehand, even though thats not the idea of a PassiveDefault. this is because sequences on columns get reflected as PassiveDefaults, but need to be explicitly executed on a primary key col so we know what we just inserted.
- if you did add a row that has a bunch of database-side defaults on it,
and the PassiveDefault thing was working the old way, i.e. they just execute on the DB side, the “cant get the row back without an OID” exception that occurred also will not happen unless someone (usually the ORM) explicitly asks for it.
(link)fixed a glitch with engine.execute_compiled where it was making a second ResultProxy that just got thrown away.(link)
began to implement newer logic in object properities. you can now say myclass.attr.property, which will give you the PropertyLoader corresponding to that attribute, i.e. myclass.mapper.props[‘attr’](link)
eager loading has been internally overhauled to use aliases at all times. more complicated chains of eager loads can now be created without any need for explicit “use aliases”-type instructions. EagerLoader code is also much simpler now.(link)
a new somewhat experimental flag “use_update” added to relations, indicates that this relationship should be handled by a second UPDATE statement, either after a primary INSERT or before a primary DELETE. handles circular row dependencies.(link)
added exceptions module, all raised exceptions (except for some KeyError/AttributeError exceptions) descend from these classes.(link)
fix to date types with MySQL, returned timedelta converted to datetime.time(link)
two-phase objectstore.commit operations (i.e. begin/commit) now return a transactional object (SessionTrans), to more clearly indicate transaction boundaries.(link)
Index object with create/drop support added to schema(link)
fix to postgres, where it will explicitly pre-execute a PassiveDefault on a table if it is a primary key column, pursuant to the ongoing “we cant get inserted rows back from postgres” issue(link)
change to information_schema query that gets back postgres table defs, now uses explicit JOIN keyword, since one user had faster performance with 8.1(link)
fix to engine.process_defaults so it works correctly with a table that has different column name/column keys (changset 982)(link)
a column can only be attached to one table - this is now asserted(link)
postgres time types descend from Time type(link)
fix to alltests so that it runs types test (now named testtypes)(link)
fix to Join object so that it correctly exports its foreign keys (cs 973)(link)
creating relationships against mappers that use inheritance fixed (cs 973)(link)


Hi I'm Josh. I'm a former academic turned software engineer.
For the past six years I collaborated with developers, designers, and data scientists as a scholar-in-residence at a software company that specializes in academic software. Although I love the rigor of research and the critical thinking of academic work, I was ready for a new challenge. So, I exchanged the ivory tower for zeros and ones, and I haven't looked back. I'm passionate about providing eloquent solutions to complex problems, and writing software that improves the way we live and experience the world.
I work with, JavaScript, Node.js, TypeScript, Python, NetSuite (SuiteScript 2.0), SQL, HTML, CSS, along with a variety of frameworks, including ReactJS, Bootstrap, jQuery, Express, Flask, and Tornado.
A map application that visualizes recent Houston crime data in conjunction with bus routes and bike paths to help ensure you get to where you're going safely.
Built with Flask, Python, JavaScript, jQuery, PostgreSQL, PostGiS, SQLAlchemy, and Google Maps API
View Live Site | View on GithubA chat application that allows users to message one another in real time
Built with Express, Node.js, JavaScript, and WebSocket
View Live Site | View on GithubA personal library application that allows users to store and retrieve book information
Built with Express, Node.js, JavaScript, PostgreSQL, MongoDB, and OAuth2.0
View on GithubA four month, full time immersive coding bootcamp
Over the course of this bootcamp, I've built several projects with a wide range of technologies, and learned how to collaborate with others using version control.
Pioneered a variety of digital research resources, taking projects from concept to market
Led a team of data analysts, developers, and editors, overseeing production, solving conceptual and practical problems, and guaranteeing each project was completed according to specifications
Meticulously tracked workflow to ensure projects were completed on time and on budget, securing return on investment
Worked cross-departmentally with developers, marketing, sales, publications, and design to optimize product awareness and increase sales by writing blogs posts, web copy, and scripting screencasts and product videos


Image: handshake with typography encouraging good human behavior
Respect. Inclusion. Collaboration. Participation. Diversity. Privacy. Support. These are some of the issues not just of our time, but all time.
JavaScript and Civil Rights
Marcy Sutton – Head of Learning, Gatsby
bit.ly/js-civil-rights – @marcysutton
Hi, I'm Marcy Sutton, and I care about people. I'm here talk to you about an important topic affecting all of us: Civil Rights, and how we can protect them as JavaScript developers.
What are Civil Rights?
The rights of individuals to receive equal treatment – and to be free from unfair treatment or discrimination
"Some perceive their privilege as rights and see equal rights infringing on their privileges." https://twitter.com/DGMason/status/894889522449797120
Aspects of Civil Rights
Protection from discrimination
Physical & mental integrity
Safety
Privacy
Freedom of speech
You know what doesn't belong here? Hatred. Checking out a book at the library, getting killed standing up to bigotry on a train. Having your qualifications doubted because of your gender or age.
Equal protection under the law
People fought for this
Equal rights for all
Picketing for fair housing in New Jersey, 1960's–part of the Civil Rights Movement, the largest social movement of the 20th century. What Dr. King fought for. We cannot forget his legacy–in fact, there are streets across America and abroad named after Dr. King.
http://archive.northjersey.com/news/teaneck-woman-among-the-last-remaining-pioneers-of-north-jersey-s-civil-rights-movement-1.448116
Bettye Lane - Equal Rights and Opportunities March in Manhattan
American photojournalist of the feminist, civil rights and gay rights movements. These were influenced by the Civil Rights Movement for African Americans.
http://blog.aarp.org/2012/09/24/bettye-lane-a-feminist-photojournalists-arresting-images/
Nothing about us without us-protest by the European Disability Forum
Protest in front of European Parliament calling on the Internal Market Committee of European Parliament to adopt a more ambitious position for disability legislation in Brussels
https://www.neweurope.eu/article/people-disabilities-protest-better-european-accessibility-act/
Dawn Russell being loaded onto police bus for processing with her fist raised in POWER!
© DC Adapt
DC Adapt protesting Medicaid cuts
Protecting our users’ & collaborators’ rights to
Access, safety and privacy
We have a responsibility to honor our users' civil rights to access, security and privacy
JavaScript
Ubiquitous
Pivotal
Modern
Today
How JavaScript applies to:
Accessibility
Security
Safety
Privacy
Freedom
I can only attempt to do this topic justice. We won't be able to cover it all. But my perspective is accessibility is a civil right, I recognized that there's more we can do to protect these things as developers.
Accessibility is:
Freedom from discrimination
Freedom of movement and independent living, privacy in your own affairs (think: banking). Accessibility is inhertently political, and in addition to "doing the right thing", people with disabilities around the world lean on laws that protect their rights.
29 Years of A.D.A.
The Americans With Disabilities Act
Accessibility is about:
Barrier-free environments
https://metrofutureblog.wordpress.com/2013/10/10/metro-transit-a-pioneer-in-transit-accessibility/
Web Accessibility is:
The inclusive practice of removing barriers that prevent interaction with, or access to websites, by people with disabilities
It is essential that the Web be accessible in order to provide equal access and equal opportunity to people with diverse abilities. Indeed, the UN Convention on the Rights of Persons with Disabilities recognizes access to information and communications technologies, including the Web, as a basic human right.
It’s all of us
Microsoft Inclusive Design Toolkit
http://bit.ly/microsoft-inclusive-toolkit
A holistic approach to accessibility makes the web better for everyone.
Highlights the duality of this talk–it's about our users, but unlike typical usability–it's also about us.
Put your values to work
and help people
As technologists, every interface or service we build can impact people's rights for better or worse.
Vox Media Guidelines
https://a11ywins.tumblr.com/post/149389575993/vox-media-accessibility-guidelines
Dries Buytaert
Drupal's commitment to accessibility
https://dri.es/drupal-commitment-to-accessibility
It's refreshing to see an accessibility commitment from Dries at a time when Wordpress failed to adequately include collaborators and produce something with accessibility in mind. I don't bring this up to sling mud–only to communicate the importance of inclusion when the stakes are so high–affecting millions of users around the world.
Gatsby Accessibility Statement
An accessibility statement on your website demonstrates a commitment to accessibility and provides a way for people with disabilities to contact you if they encounter any barriers. It's okay to not be perfect, as long as you're open to feedback and actively working to improve it.
Leadership
and a commitment from all of us
True inclusion requires leadership commitment from the top-down, as well as a commitment from all of us. The lone accessibity champion can't do it all by themselves–it takes all of us to make lasting change. And that makes sense: the changes we make for accessibility can help all of us. It is that big of a deal. And here's why:
Amanda Rush
I do not have the privilege of simply ignoring Gutenberg’s accessibility problems, because when it becomes the default editor those accessibility problems will directly effect my livelihood.
https://www.customerservant.com/some-quick-thoughts-on-the-gutenberg-controversy-being-labelled-as-wordpress-drama/
UI Considerations
Accessible HTML
Keyboard support
Focus management
Screen reader updates
Localization
Accessible HTML includes keyboards and screen readers
Accessibility Insights for Web
https://chrome.google.com/webstore/detail/accessibility-insights-fo/pbjjkligggfmakdaogkfomddhfmpjeni
Writing Automated Tests for Accessibility
Youtube: Automated and Manual Accessibility Testing with Marcy Sutton — Learn With Jason
https://www.youtube.com/watch?v=IADSsClWVtA&list=PLz8Iz-Fnk_eTpvd49Sa77NiF8Uqq5Iykx
Security
- hijack more resources in the network and allow the attacker to also infect the website’s visitors.
- mining cryptocurrency, stealing data, and installing ransomware
Cryptocurrency Mining Hack That Compromised Thousands of Sites ‘Could Have Been a Catastrophe’
https://motherboard.vice.com/en_us/article/bj5m4v/cryptocurrency-mining-coinhive-browsealoud-hack-thousands-of-sites-catastrophe
Security
Use HTTPS
Keep software up to date
Sanitize user input (and keys?!)
Check integrity of scripts
Follow infosec best practices
Telegraph technology article: GIF counts as 'deadly weapon' in seizure-inducing tweet case, court says
Provide affordances
To turn off animations/motion
Thankfully Twitter made an option to prevent GIF autoplay
prefers-reduced-motion
User settings in CSS, JavaScript
https://webkit.org/blog/7551/responsive-design-for-motion/
var motionQuery = matchMedia('(prefers-reduced-motion)');
var handleReduceMotionChanged () => {
if (motionQuery.matches) {
/* adjust motion of 'transition' or 'animation' properties */
} else {
/* standard motion */
}
}
motionQuery.addListener(handleReduceMotionChanged);
handleReduceMotionChanged(); // trigger once on load if needed
Let Users Decide
Reduced motion on iOS and OSX Sierra
Tweet from @TashasEV: Dear every web developer in the history of ever and all the future to come: Don't auto-play *anything* *ever*
Also note the play button GIFs on Twitter
Brave lets you disable autoplay for sites like CNN.com
Vox with an Ad Blocker turned on
Vox with an Ad Blocker turned off: a Jimmy John's ad takes over half the screen with an autoplaying video
Creepy advertising
Right after this I saw the same ad on Instagram
Websites Leak Our Data
http://www.cbsnews.com/news/the-data-brokers-selling-your-personal-information/
Tracking cookies
Ad networks
Measuring behavior
Dossiers/profiles
Religion, ethnicity, political affiliations, user names, income, and family medical history
Data brokers doing it for "commerce". All of this can end up in a file somewhere that's being sold to a prospective employer.
The US gov't signed away privacy protections for internet users this year.
Dries on Youtube Tracking
https://dri.es/how-to-remove-youtube-tracking
The tools we use
should not undermine our users’ privacy
Naked Security: Websites can track us by the way we type – here’s how to stop it
https://nakedsecurity.sophos.com/2015/07/30/websites-can-track-us-by-the-way-we-type-heres-how-to-stop-it/
Tweet from @LeonieWatson: .@Facebook using educated guesses to trap people into confirming they have a disability is *not acceptable!
Marco Zehe: Why screen reader detection on the web is a bad thing
Apple: About Accessibility Events
https://support.apple.com/en-us/HT209655
What you can do
Measure accessible events*
* with a public privacy policy & opt-out
handleKeydown = event => {
if (event.key !== 'Enter' && event.key !== ' ') return;
event.preventDefault();
this.selectItem(event);
// add event tracking of keyboard support
ga('send', 'event', 'Menu', 'Keydown', 'Select Item');
};
There are a lot of things we can't track on the web. Like: screen reader usage or JavaScript event bindings.
Recap
Accessibility is a civil right.
Safety and privacy, too;
These rights are interlinked.
Laws vary, but they impact us all.
Our work impacts peoples’ lives!
We can make a difference. ✌
There are other aspects too, like voting and employment


We have fast cars, s l o w cars, red cars, big cars and all of them are very good cars.
We have been in business since 1976.
We own 12 agencies around the country.


READERS’ LETTERS: Many factors go into sentencing criminals
Sir, – As a person who was concerned with the Scottish criminal justice system for some 50 years as defence counsel, advocate depute, sheriff and part time High Court judge, I think that I am entitled to comment on the editorial The Courier story entitled “Disappointing term for sexual abuser” (December 5).
by ReporterI consider the editorial is misconceived.
In it you appear to suggest that the accused in any case of a sexual assault on a child should automatically receive a prison sentence.
It is, of course, open to parliament to legislate to that effect, but that is certainly not the law at present.
The case which gave rise to your comment appears indeed to have been a horrific one, and it is entirely proper that the two girls who were the victims should be praised for their courage in giving evidence.
However, unlike the sheriff who passed sentence, neither you nor I know the full facts of the case, and we have not had sight of the detailed reports which the sheriff will have seen.
As I understand the present law, a judge is not entitled to impose a custodial sentence unless he or she is satisfied that no other disposal is possible.
In this case the sheriff, no doubt applying that test, concluded that another disposal was possible and appropriate.
Are you suggesting the sheriff was incompetent?
It is very easy to criticise a sentence imposed by a court.
I experienced such criticism on quite a few occasions and accepted it as part of the job.
The Crown has the right of appeal against a sentence which it considers to have been unduly lenient.
I do not know whether such an appeal is being considered in the present case. I do know that no sentence of mine was successfully appealed on this ground.
Comments made by Ms Jan Swan, manager of FRASAC, appear to suggest that she considers that a custodial sentence is appropriate in such a case to operate as a deterrent.
I have always had considerable reservations about the deterrent theory of punishment. So many criminals offend without giving any heed to the possible consequences.
In conclusion I would add, and I think that most judges in criminal cases would agree, that sentencing is one of the most difficult tasks that a judge has to perform.
I am sure that no judge passes sentence in a case such as this without giving it a great deal of thought.
I suggest, therefore, that the media, in whatever form, should give very careful consideration before deciding to criticise a judge’s decision in this field.
Alastair L Stewart.
Albany Road,
Broughty Ferry.
Reasons for a change of heart
Sir, – Regarding the letter in The Courier by Christopher Rosindale where he states why he will “never vote Conservative again” (Letters, December 5).
For a former Conservative activist to make this statement, and the very well thought out reasons he gave, I can only applaud his bravery.
Leaving the EU would indeed be a tragedy for Scotland but the reasons not to vote Conservative are many. It is true they have swung violently to the right of politics but some of the many other reasons should be remembered.

I salute you sir for seeing and hearing what many Conservatives close their eyes and ears to.
Bryan Auchterlonie.
Bluebell Cottage,
Perth.
Education plays a vital role
Sir, – Ms Sturgeon certainly knows how to spin things. (“Sturgeon ‘not denying the challenge’ over education”, The Courier, December 5). As well as in the headline, she also said maths and science achievements have been stable since the last PISA (Programme for International Student Assessment) report. Strictly speaking, this is correct.
The PISA results were extremely poor in the last report, and they are extremely poor now as well.
That indeed is the definition of stability, but this is not what we want or need.
If people want to get on in the world, they need to be well educated, not just in actual terms, but in relation to other countries as we are inevitably competing against others in global terms.
The education you receive defines your life chances more than any other factor, and also the chances of your children and grandchildren.
The first minister and that nice Mr Swinney need to reflect on the fact that if they don’t improve things and quickly, then individuals, their families and Scotland as a whole are going to suffer, and not just for the term of this parliament but for the rest of this century.
Maintaining the standard of a poor ranking is not good enough.
Her spin is beyond what any normal person might find acceptable.
Having been asked to be judged on her education record, it seems like Ms Sturgeon might not have too much longer to go.
Victor Clements.
Mamie’s Cottage,
Aberfeldy.
Boris Johnson is a ‘liability’
Sir, – As I write, it is less than a week to polling day and Boris Johnson has not yet plucked up the courage to face a television interview with Andrew Neil.
All other party leaders have taken part in what is regarded as the most aggressive interview in the election process, even Brexit Party leader Nigel Farage, who had been widely attacked as being a “bottler” for not putting up candidates in Tory-held marginal seats.
Andrew Neil has now issued a public challenge to Johnson to appear on his programme.
Ironically, Boris Johnson spent months bullying Theresa May in parliament by undermining her leadership until she conceded defeat, allowing Johnson to fulfil his ambition of becoming prime minister.
It is clear he does not have the confidence of most Scottish Tories, even the elected ones.
Jackson Carlaw was squirming during the televised Scottish leaders’ debate when asked to justify his support for the prime minister.
The Tory Party political broadcast aimed solely at Scotland had already reinforced this.
Described by The Courier’s political editor, Paul Malik, as “bizarre”, it showed an unnamed Tory candidate in a Tayside seat working from an impressive office in Edinburgh New Town, but the most telling point was the advert’s message. Indyref was mentioned seven times, Nicola Sturgeon five times, the SNP twice, schools twice, NHS once, jobs once, and Brexit once.
No mention was made of farming or of immigration, in spite of the reliance so many Scottish farmers have on EU-based workers.
There was no mention either of what the Tories in Westminster had achieved for Scotland – which is hardly surprising.
Most significantly, no mention was made of Boris Johnson who is obviously seen as an electoral liability.
Ken Guild.
76 Brown Street,
Broughty Ferry.
Are promises from Santa?
Sir, – Why are all the benefits and bonuses now being promised by political parties not already with us?
Do they keep them for elections, in the same way that new bicycles for children are saved until Christmas?
Malcolm Parkin.
Gamekeepers Rd,
Kinnesswood,
Kinross.


A drush shell script is any Unix shell script file that has its "execute" bit set (i.e., via `chmod +x myscript.drush`) and that begins with a specific line:
#!/usr/bin/env drush- or -
#!/full/path/to/drush
The former is the usual form, and is more convenient in that it will allow you to run the script regardless of where drush has been installed on your system, as long as it appears in your PATH. The later form allows you to specify the drush command add options to use, as in:
#!/full/path/to/drush php-script --some-option
Adding specific options is important only in certain cases, described later; it is usually not necessary.
Drush scripts do not need to be named "*.drush" or "*.script"; they can be named anything at all. To run them, make sure they are executable (`chmod +x helloworld.script`) and then run them from the shell like any other script.
There are two big advantages to drush scripts over bash scripts:
To bootstrap a Drupal site, provide an alias to the site to bootstrap as the first commandline argument.
For example:
$ helloworld.script @dev a b c
If the first argument is a valid site alias, drush will remove it from the arument list and bootstrap that site, then run your script. The script itself will not see @dev on its argument list. If you do not want drush to remove the first site alias from your scripts argument list (e.g. if your script wishes to syncronise two sites, specified by the first two arguments, and does not want to bootstrap either of those two sites), then fully specify the drush command (php-script) and options to use, as shown above. By default, if the drush command is not specified, drush will provide the following default line:
#!/full/path/to/drush php-script --bootstrap-to-first-arg
It is the option --bootstrap-to-first-arg that causes drush to pull off the first argument and bootstrap it. The way to get rid of that option is to specify the php-script line to run, and leave it off, like so:
#!/full/path/to/drush php-script
Note that 'php-script' is the only built-in drush command that makes sense to put on the "shebang" ("#!" is pronounced "shebang") line. However, if you wanted to, you could implement your own custom version of php-script (e.g. to preprocess the script input, perhaps), and specify that command on the shebang line.
Drush scripts can access their arguments via the drush_shift() function:
while ($arg = drush_shift()) { drush_print($arg); }
Options are available via drush_get_option('option-name').
See the example drush script in `drush topic docs-examplescript`, and the list of drush error codes in `drush topic docs-errorcodes`.


Statistics of the BLASTN comparison between the P. notatum Illumina HiSeq GTA and the Roche 454/FLX + global assembly. a Percentage of GTA transcripts with a significant hit (green) or no hit (blue) in the Roche 454/FLX + reference [ 31]. b Distribution of the identity percentages in the BLASTN analysis


From HTML to HTML (via HTML)
Knowing the internals of the HTML family of web standards is quite important when you are using software such as Thymeleaf. At least if you want to understand what you are doing.
The problem is that many people know the technologies they are using for creating webs, but don't really know where these technologies come from. It has been a long way since the inception of the first web interfaces, and since then every new technology has been changing the way we developed for the web by deprecating a good amount of our work and, especially, our knowledge.
And now, with the arrival of HTML5, things have become even more complicated. What's it? Why is it HTML instead of XHTML? Wasn't the HTML tag soup considered harmful?
So let's take a step back, and see how we arrived where we are now, and why.
Back in the 90s, there was HTML...
...and HTML was a standard (or more correctly, a recommendation) maintained by the World Wide Web Consortium (a.k.a. W3C). Extending from a language called SGML, HTML defined a tag-based markup language for writing rich hyper-text documents, highly coupled to the protocol that was used for serving them and their related resources across the network: the Hyper-Text Transfer Protocol (HTTP).
HTTP used text headers for defining what was being served to clients and how, one of which was extremely important: the Content-Type header. This header explained to browsers what type of content was being served to them in a language called MIME (Multipurpose Internet Mail Extensions). And the MIME type used for serving HTML documents was text/html:
HTML also defined a way to check whether a document was valid. Being valid basically meant that the document was written according to the HTML rules that dictated what attributes a tag could have, where a tag could appear in the document, etc.
These validity rules were specified using a language for defining the structure of SGML documents called Document Type Definition or DTD. A Standard DTD was created for each version of HTML, and HTML documents had to declare the DTD (and therefore the version of HTML) they conformed to by means of a clause that should appear as their first line, the Document Type Declaration or DOCTYPE clause:
The Document Object Model and the tag soup
HTML was meant for displaying documents in browsers, and back in the late 90s browsers were made by fiercely competing companies that wanted to offer the maximum amount of cool features to their users. Given that HTML only defined rules for document formatting, many other features were left to the browser developers' imagination.
And one of the most interesting ideas that appeared in browsers was client-side interactivity. This interactivity was achieved by executing scripts — in languages such as JavaScript — inside the browser itself, and giving these scripts the ability to handle, modify and even execute events on parts of the document being displayed. For this, browsers had to model HTML documents as in-memory trees of objects, each of them with state and events, and thus the Document Object Model (DOM) was born.
The problem was that HTML rules for well-formedness were quite loose whereas DOM trees were strictly hierarchical structures, and this meant that different interpretations of HTML tag positions and sequences could lead to different DOM object trees in different browsers. Add to this the fact that these different browsers modelled the API of DOM nodes in different ways (different names, events, etc) and you will start to get the idea of how difficult it was to create cross-browser interactivity back then.
What's more: while all this was happening, browsers had been growing quite forgiving with HTML authors, allowing them to write HTML documents that were not well formed (tag soups) by automagically correcting their errors. This lead HTML authors to create even worse formed documents, and then browsers to allow even more errors in format, adding to a quite destructive cycle. And guess what: each browser was correcting all these errors in a different way. Hooray.
The W3C finally standardized the DOM API and a language for scripting in web browsers: JavaScript (although for some complex reasons they insisted on calling it ECMAScript). But the damage done by the world of tag soups coupled with the slow adoption of these standards in full by browser makers — in many cases fearing they would damage backwards compatibility — produced effects that are still influencing the way we create web applications today.
Enter XML
Some time after HTML became a widely spread language, the W3C developed a new specification called XML (eXtensible Markup Language), aimed at the representation of general-purpose data (not only web) in the form of hierarchical markup text.
XML was extensible in that it allowed the definition of purpose-specific languages (tags and their attributes) to fit the needs of specific scenarios. But HTML documents were not well formed from the XML perspective, XML and HTML remained in fact incompatible languages. It was not possible to express HTML as an XML application.
Being strictly hierarchical and removing the structural ambiguities of HTML, XML documents were more directly translatable to standardized DOM trees (a process known as XML Parsing). Also given the fact that XML was a text-based language, and that text is a sort of technology-agnostic format (as opposed to binary), XML became especially suited for the cross-platform interchange of data across the internet. In fact, it led to the birth of the now-ubiquitous Web Services technologies.
HTML + XML = XHTML
At some point, driven by the obvious usefulness of XML and the fact that it could make web documents more extensible and interoperable (like, for example, producing more predictable DOMs across browsers), the W3C decided to reformulate HTML as an XML dialect (or application) instead of and SGML one, and so XHTML was born.
XHTML required web authors to write their documents as well-formed XML, which introduced some formatting rules that didn't exist in HTML before: tags should always be closed, attributes should always be escaped and surrounded by commas, etc.
The introduction of XHTML and the transformation of web documents into well formed XML was generally perceived as a step forward, because it would allow higher levels of standardization across browsers, less space for authoring errors that had to be corrected in browser-specific ways, and easier parsing and automated processing of web pages.
As a part of this, XHTML introduced a controversial concept coming directly from XML and known as Draconian Error Handling, which meant that any interpreter of XML — including now a browser — should fail immediately should any kind of format error be found in the XML document being processed. In practice, this meant that XHTML authors would have to create perfectly well-formed documents or accept the fact that browsers would never be able (in fact, allowed) to display them at all.
For validation, the XHTML 1.0 specification defined a set of DTDs that could be used in DOCTYPE clauses: XHTML 1.0 Strict, XHTML 1.0 Transitional and XHTML 1.0 Frameset. The first one was meant for pure XHTML documents that didn't use any deprecated tags coming from HTML, the second one for transitional documents that still made use of deprecated tags and attributes, and the third one for frameset pages.
But one of the most important aspects of XHTML was that it also introduced a new MIME type, which was the one that every web server was supposed to use for serving XHTML so that browsers knew that they had to use their XHTML parser and engine instead of their HTML equivalents. This was application/xhtml+xml:
Crashing down to (XHTML's) reality
Just after its introduction, everything looked bright for XHTML. We developers should just have to wait for browsers to fully implement it and the world of web development would suddenly look much happier...
Trouble is, that never happened.
What happened was that one specific browser simply denied implementing support for the application/xhtml+xml content type. Guess which one. Yeah, exactly, that one. Internet Explorer.
IE6, IE7 and IE8 show a download dialog when you try to access a document served with XHTML's own content type, and that of course means that you cannot use that content type if you want to be able to display your web site to IE users. IE9 seems to be on the way to correct that, but it is simply too late by now.
Fortunately — or maybe unfortunately — The XHTML 1.0 specification included an appendix that stated that XHTML 1.0 content could also be served using the old text/html content type from the HTML times, in order to ease the transition. And that's exactly what most of us have been doing the past several years: creating XHTML 1.0 content, and then serving it as text/html. Given that the XHTML 1.0 specification was published in 2000, the transition has taken long.
But the fact is that when you serve content as HTML instead of XHTML browsers will use their HTML engines for it, and not the XHTML-specific ones. And although their HTML engines have been XHTML-enabled, they still have to provide backwards compatibility for old HTML 4 code — which makes them very tricky pieces of software — and importantly, they lack some of the most XML-ish features of XHTML, starting with... Draconian Error Handling.
And if you don't have Draconian Error Handling, you have a forgiving engine that will let you serve documents that are not well formed, automagically correcting your errors. And if you know the browser will correct your errors (in a browser-specific way), you will probably never correct your documents... and so the HTML horror story still goes on.
Knowing this, think that you've probably never really created a truly XHTML web site. What you've done is (probably ill-formed) XHTML documents served and displayed as plain old HTML. How about that?
But it went worse, because in 2002 XHTML 1.1 removed the possibility of using of the HTML content type, therefore allowing only application/xhtml+xml. The problem was that, instead of this forcing Internet Explorer to support application/xhtml+xml, which didn't happen, this restriction simply turned XHTML 1.1 into as much a mythological creature as Nessie. Almost no one ever used it.
In 2009, the W3C allowed again the use of text/html with XHTML 1.1 but, again, it was too late.
Towards HTML5: A divorce story
At some point (specifically, 2004), some browser makers realised that the existing XHTML specifications were evolving too slowly to cope with the increasing demands of the web (video, audio, richer application interfaces...), and that the W3C was increasingly pushing them towards creating stricter interpretations of documents that could end up rendering huge amounts of (ill-formed) existing code useless.
They wanted to enhance web applications with capabilities like video, audio, local storage, or advanced form processing, and in fact they could do it by just adding those features in a browser-specific way, but they didn't want to go the non-interoperable way again. They needed the standards to evolve and include these new features.
Nevertheless, there was a problem with evolving the existing standards of the time (namely XHTML): there were still lots and lots of web sites and applications still relying on legacy HTML out there, and if those cool new features were standardized by going the XHTML ultra-strict way, all those applications would never be able to use the new features unless they were completely rewritten. And everybody wanted a more interoperable and standard web, but not at the cost of throwing away many years of work done by millions of web authors.
So these makers (along with other individuals) presented the W3C with the idea of evolving HTML in a way that made all (or most) existing HTML and XHTML code still valid as new HTML while providing powerful new features for web applications and — importantly — clearly defining the way in which error handling should be done.
This latter point meant that instead of failing on the first error, browsers would know by specification how to perform the automagical correction of errors created by web authors and therefore would react to them in exactly the same way, effectively turning HTML code (be it XML-formed or not) fully cross-browser. You would still be recommended to create XML-formed code for new sites, but if you didn't fancy or you still had some tons of old legacy HTML (and most certainly you had), you would still be invited to join the party. See that old HTML site there? Let's add some video to it! It all sounded quite sensible.
But the fact is, all of this didn't sound quite as well to W3C back in 2004, and they rejected the proposal and decided to go strictly the XHTML way. HTML was dead for them, there was no reason to resurrect it, and XHTML 2.0 was the future.
This led to divorce. The proponents of this new concept for HTML, a group that included individuals from Opera Software, the Mozilla Foundation and Apple, left the W3C and founded the Web Hypertext Application Technology Working Group (WHATWG) with the aim of defining what we today know as HTML5.
Finally, in 2007, the W3C created a working group for next-generation HTML, which later accepted to join efforts with WHATWG, effectively adopting HTML5 as their working specification and future deliverable. W3C and WHATWG were now united for creating HTML5, and in 2009 the W3C just let XHTML 2.0 die by closing the group working on its specification.
HTML5 was now the only future of web standards.
So what is HTML5?
HTML5 is a set of standards — still under development as of 2011 — evolving from current HTML 4 and XHTML specifications and aimed at:
- Adding advanced new capabilities to HTML that effectively move web development slightly away from the document-oriented philosophy and towards a more application-oriented one. Such capabilities are called HTML5 features and are in some cases defined by standards on their own, apart from the HTML5 core one. HTML5 features include, among others: video, audio, drawing canvas, geolocation, local storage, offline support and advanced form-related capabilities.
- Providing a pain-free path for migration from HTML and XHTML, which enables the adoption of HTML5 with little or no rewriting of code at all.
- Providing a standard way of handling code errors, so that ill-formed HTML5 code will perform in the same predictable way in all browsers.
From a practical point of view, this means that (probably all of) your current HTML and XHTML code will be considered valid HTML5 just by changing your DOCTYPE to the HTML5 one:
And by serving your content with content type text/html:
And here you might be thinking: why does that DOCTYPE specify no DTD at all? Because there isn't one. HTML5 has no DTD because the rules that define whether a document is valid HTML5 or not are defined as human-readable text in the specification itself, but cannot be expressed in the DTD language.
But this does not mean that an HTML5 parser and/or engine cannot validate. It can. It simply has to be a piece of software especially devoted to HTML5 parsing including specific code programmed for executing the rules that are involved in validating HTML5 (as opposed to reading those rules from a DTD file). Even if the specification is now quite flexible, it still is a specification, and you have to conform to it.
But if there is no DTD, then why have a DOCTYPE clause at all? Because a DOCTYPE clause is needed in order to make browsers display documents in Standards Mode (as opposed to Quirks Mode). The clause <!DOCTYPE html> is the minimum valid DOCTYPE declaration possible, and that is exactly all we need. It just acts as a switch.
Can I use HTML5 already?
Yes and no. You can use some of the HTML5 features that have already been implemented into some browsers, but (as of 2011) there still is no browser that fully implements all of the HTML5 features. And even if there was, that could change because the specification itself is still work in progress.
Using HTML5 in full will in fact take some time, to be honest. Think that not only you will have to wait for some browser to implement all of HTML5, but that in fact you will have to wait for most browsers to do it, and then wait for your potential users to upgrade their browsers to these versions. Now think that a noticeable percent of big companies still use Internet Explorer 6 (published in 2001) as their standard browser and... well... cry.
But anyway, one thing is for sure: you can switch your DOCTYPE to HTML5's and you will be doing HTML5. And that is something you can do today if you feel the need to.
And what about XHTML5? Does that exist?
In theory, yes. XHTML5 is just HTML5 served with:
But again, this content type is not currently supported by IE. So in practice, no, it doesn't exist.
Be careful though: the difference between HTML5 and XHTML5 is the content type and only the content type, because an XML-formed HTML5 document is in fact a perfectly valid HTML5 document. This is quite different to the relation between HTML4 and XHTML 1.0/1.1, which were incompatible languages.
OK. The history lesson was great. Now, how does this relate to Thymeleaf?
Out-of-the-box (it is extensible), Thymeleaf allows you to create web templates according to three specifications:
- XHTML 1.0 (Strict, Transitional and Frameset)
- XHTML 1.1
- HTML5
Support for HTML5 has a tricky part, though: Thymeleaf will make you decide whether your HTML5 templates are XML-formed code or not, and strongly suggest you that they are.
The main reason for this is that at the heart of the default configuration of Thymeleaf lie an XML parser and a DOM processor, and so Thymeleaf will always need XML input. If your HTML5 templates are well-formed XML they will be parsed just as fine as any other XHTML template; but if they aren't, Thymeleaf will need to execute a previous conversion (basically a tag balancing operation) to convert your HTML into XML before parsing. Obviously, this will not be the end of the world, but in some high-load scenarios it could affect template processing performance.
Anyway, truth be told, that should not happen very often. The main reason HTML5 allows non-XML syntax is legacy integration, and there is no good reason why you should not be closing your tags and escaping your attributes in new applications being developed these days, voluntarily making them difficult to parse and work with (unless you are Google and transferring the extra bytes in attribute values over the net would really make a difference to you). Remember that with power comes responsibility. You do not want to voluntarily go back to the olden days of tag soup by relying on how well browsers implement standardized error handling, do you?


OPCUA, Process-Observer, PubSub, Producer, Reactive communication, ReactiveX
According to the Reactive Networking of Semantic-Data Library architecture, the bindings between the local repository DataRepository
(i.e. a real-time process replica) and the message content items are provided by the IBinding
interface and its basic implementation Binding
class. This class is responsible to decode the data from the format used to construct the message to the syntax required by the local type. It is assumed that IBinding
abstraction can be applied to provide interconnection with a vast variety of data sources and destinations, including plant floor devices.
Process-Observer is an archetype that allows creation consistent, homogeneous real-time representation of the underlying process. This representation is a kind of a process state and behavior replica, which exposes real-time process data to the network using standardized interfaces like OPC Classic, OPC Unified Architecture, OPC PubSub, AMQP, MQTT, etc. In other words, it supports Machine to Sensors Connectivity (M2S) paradigms, i.e. it allows an open, uniform, secure and standards-based communication solution between sensors, actuators, controllers and the upper layer applications.
Process-Observer has been implemented and published as the Open-Source Software (#OSS). This implementation of the Process-Observer was deployed by CAS in many highly distributed and demanding applications in the production environment. Therefore it is a good candidate to be used as the data source for reactive communications implemented in this library according to the OPC UA PubSub.
The main goal of this project is to prove that the implementation of the Producer
role fetching data from Process-Observer
will make the OPC UA Machine to Sensors Connectivity (M2S) possible. Converging results of this project and Networking.Gateway2Azure will make Cloud to Sensors (C2S) connectivity possible.
Process-Observer
connectivityProcess-Observer
APIProducer
against this interface to provide Process-Observer
connectivityProcess-Observer
to be compliant with this project, e.g. harmonize target frameworkProcess-Observer
as the NuGet packageProcess-Observer
to the Producer
instance using the observer pattern


--- layout: post title: "Expensive Equity" date: 2019-04-11 18:04:42 -0700 background: '/assets/Images/background_image.jpg' categories: Finance ---
Equity is the most expensive currency for a startup. Before giving employees or VC’s equity, be sure to analyze the investment you expect out of them. As a cofounder bringing on new employees you are probably strained on capital. But you still need a product and some employees to grow your business, so you are considering promising equity in exchange for cheaper engineering.  The answer is short…. Not much.
That might sound harsh especially to tell a new employee who is taking a big risk quitting their day job to work for your new startup, at probably a much lower salary than she otherwise would have gotten, but let me explain. At a pre-seed stage, and even up to a seed stage, your company is worth nothing. Literally $0. Even if you pay your first employee with an astounding 5% equity what have you really paid them? The math makes calculating this pretty easy….
$0*0.05 =$0
But you are part of a startup! You will raise that seed round… that makes your worth something right? Yes. Once you have raised a round of funding and have had a valuation then that equity you are promising your employees is worth something! But let’s back up and consider how we get to a big valuation…. When you raise money from a VC, you should expect that their money will give you at least 5x return on your business (not valuation, but business production), otherwise they aren’t good investors. That means if you are generating $1,000 a month, after an investment (assuming it was a good investment), you should be able to grow your business to generating $5,000+ a month. In exchange for an investment, at the seed or pre-seed round, you will give up around 10% of your company. But that isn’t enough, you want to grow even bigger! So you take on another investment, which also helps you grow 5x. Now you are generating $25,000+ a month, but you also gave up another 8% of your company. But you still want to grow bigger right? So you take on another investment in exchange for another 6% of your company. You are now generating $125,000+ a month. Now that is a company that is worth something. At this point, you should be a large enough corporation, that you will have an option pool, which would grant additional amounts of equity to all your employees! Cha-Ching!
There are a few things to notice here.
In this completely hypothetical situation, you have grown your company 125x and have given up 24% of your company. Using simple math here, we can normalize growth per equity:
125/24=5.2
Each percentage of equity given away is worth a 5.2x growth for your business. Being realistic, can a single employee make a 26.2x difference making them worth 5%? Probably not. Can an employee make a 5.2x increase to your business justifying a 1% equity payment?… that is much more realistic. To achieve the 125x business return, 24% of your company has to be free to give to investors. If you are giving away anything more than 1% to employees, you won’t have enough equity to be able to reach this growth.
If you gave your first employees 5% instead of 1%, then you only have enough equity left to give up 20% to investors instead of 24%. This means you will only get 2 investments instead of 3, only growing 25x instead of 125x. Effectively making both the company and your first employees equity worth 25 times less than having used that equity to get that third investment.
Long story short…. For a founder, giving up equity to save cash is tempting. As a first employee, asking for a lot of equity is also tempting. But don’t do it. Saving equity to grow the company is often more advantageous for everyone involved. As a first employee, it may seem you have a smaller piece of the pie, but with the correct investments, you will have a much larger pie… making your small piece not seem so small anymore.
Rules of thumb…


CalicoML
Home
About
Contact
Sample Data
Browse
Load training data
Model info
Model Name:
NA
Predicted Outcome:
NA
Training Set:
NA
Training Set AUC:
NA