| < Day Day Up > |
Hack 75 Script User Interaction
Use an expect script to help users generate GPG keys. There are occasions when you can take advantage of Unix's flexibility to control some other tool or system that is less flexible. I've used Unix scripts to update databases on user-unfriendly mainframe systems when the alternative was an expensive mainframe-programming service contract. You can use the same approach in reverse to let the user interact with a tool, but with a constrained set of choices. The Expect scripting language is ideal for creating such interactive scripts. It is available from NetBSD pkgsrc as pkgsrc/lang/tcl-expect or pkgsrc/lang/tk-expect, as well as from the FreeBSD ports and OpenBSD packages collections. We'll use the command-line version for this example, but keep in mind that expect-tk allows you to provide a GUI frontend to a command-line process if you're willing to write a more complex script. In this case, we'll script the generation of a GPG key. Install GPG from either pkgsrc/security/gnupg or the appropriate port or package. 7.8.1 The Key Generation ProcessDuring the process of generating a GPG key, the program asks the user several questions. We may wish to impose constraints so that a set of users ends up with keys with similar parameters. We could train the users, but that would not guarantee correct results. Scripting the generation makes the process easier and eliminates errors. First, let's look at a typical key generation session: % gpg --gen-key gpg (GnuPG) 1.2.4; Copyright (C) 2003 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Please select what kind of key you want: (1) DSA and ElGamal (default) (2) DSA (sign only) (4) RSA (sign only) Your selection? 4 What keysize do you want? (1024) 2048 Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) 0 Key does not expire at all Is this correct (y/n)? y You need a User-ID to identify your key; the software constructs the user id from Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter<EMAIL_ADDRESS>Real name: Let's pause there to consider the elements we can constrain. You probably want to specify the cryptographic algorithm and key length for all users consistently, based on your security and interoperability requirements. I'll choose RSA signing and encryption keys, but GPG doesn't provide a menu option for that. I'll have to create the signing key first and then add the encryption subkey. 7.8.2 A Simple ScriptHere's an expect script that would duplicate the session shown so far: #!/usr/pkg/bin/expect -f set timeout -1 spawn gpg --gen-key match_max 100000 expect "(4) RSA (sign only)" expect "Your selection? " send "4\r" expect "What keysize do you want? (1024) " send "2048\r" expect "Key is valid for? (0) " send -- "0\r" expect "Key does not expire at all" expect "Is this correct (y/n)? " send -- "y\r" expect "Real name: " The script begins by setting timeout to infinite, or -1, so expect will wait forever to match the provided input. Then we spawn the process that we're going to control, gpg --gen-key. match_max sets some buffer size constraints in bytes, and the given value is far more than we will need. After the initial settings, the script simply consists of strings that we expect from the program and strings that we send in reply. This means that the script will answer all of the questions GPG asks until Real name: , without waiting for the user's input. Note that in several places we expect things besides the prompt. For example, before responding to the Your selection? prompt, we verify that the version of GPG we have executed still has the same meaning for the fourth option, by expecting that the text of that menu choice is still RSA (sign only). If this were a real, production-ready script, we should print a warning message and terminate the script if the value does not match our expectations, and perhaps include a check of the GPG version number. In this simple example, the script will hang, and you must break out of it with Ctrl-c. 7.8.3 Adding User InteractionThere are several ways of handling the fields we do want the user to provide. For the greatest degree of control over the user experience, we could use individual expect commands, but here we will take a simpler approach. Here's some more of the script: interact "\r" return send "\r" expect "Email address: " interact "\r" return send "\r" expect "Comment: " interact "\r" return send "\r" expect "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? " interact "\r" return send "\r" expect "Enter passphrase: " interact "\r" return send "\r" expect "Repeat passphrase: " interact "\r" return send "\r" The interact command allows the user to interact directly with the spawned program. We place a constraint that the user's interaction ends as soon as the user presses the Enter key, which sends the carriage return character, \r. At that point, the interact command returns and the script resumes. Note that we have to send the \r from the script; expect intercepted the carriage return and GPG did not see it. 7.8.4 Handling Incorrect InputAgain, a correct script would have a more complex flow of execution and allow for cases where the spawned program rejects the user's input with an error message. For example, the Real Name field must be more than five characters long. If a user types less than five characters, GPG will prompt him to retype his username. However, the expect script just shown will not accept the new user input, because it is now waiting for the Email address: prompt. Alternatively, we could replace these three lines: interact "\r" return send "\r" expect "Email address: " with: interact -o "Email address: " return send_user "Email address: " Instead of stopping interaction when the user presses return, we stop interaction when the program outputs the Email address: prompt. That's the difference between interact and interact -o; the former stops interaction based on input from the user, and the latter on output from the program. This time, we don't need to send the carriage return, because the user's keypress is passed through to GPG. However, we do need to echo the prompt, because expect has consumed it. This method lets GPG handle the error conditions for us: Real name: abc Name must be at least 5 characters long Real name: abcde Email address: 7.8.5 Hacking the HackAfter GPG receives the information it needs to generate the key, it might not be able to find enough high-quality random data from the system. The script ought to handle that by spawning a process to generate more system activity, such as performing a lot of disk activity by running a find across the entire disk. After generating the signing key, the script could spawn a new instance of GPG with the --edit-key option, to generate the desired RSA encryption key. Although the final script may end up executing three processes, the whole process is seamless to the user. You can hide even more of the guts by using expect's log_user setting to hide the output of the programs at points where the user does not need to see them. You can use a script like this in conjunction with any Unix command-line program. By combining expect with telnet or ssh, you can control non-Unix systems, thereby leveraging the flexibility of Unix into a non-Unix domain. This even works with programs for which you do not have source code, such as control utilities for commercial databases or application software. In the case of GPG, we do have source code, so we could modify the program, but writing an expect script is easier. A carefully designed expect script may not require changes when a new version of GPG is released. Source code changes to GPG would require integration with any new version of GPG. 7.8.6 See Also
|
| < Day Day Up > |


Money Play. How should Red play 21?
pips Red=160 White=211
(CorrectAnswer= 0/0, ErrorScore= 0)
The two key points on the board are Red's 5-pt and his bar-pt. All his efforts should be going into making those points. With four checkers back he is unlikely to make them naturally so the quickest way to make them is to slot them and then cover them.
Obviously it is far less risky to slot the bar-pt but equally well the reward is much greater if the 5-pt can be made. Over the board I played 15/13, 8/7 which turns out to be the second-best play. XG believes that slotting the 5-pt with 15/13, 6/5 is correct, but only by 0.010 after a long rollout. All other moves are at least errors.
The keys here are a) to have a very clear plan as to how to play the position and the objectives you are trying to achieve b) make sure you consider all plays even if you reject them for seemingly valid reasons.
This is also an object lesson in not fighting a war on two fronts. Red needs to concentrate on his forward position – his rear checkers can sort themselves out later.
Obviously it is far less risky to slot the bar-pt but equally well the reward is much greater if the 5-pt can be made. Over the board I played 15/13, 8/7 which turns out to be the second-best play. XG believes that slotting the 5-pt with 15/13, 6/5 is correct, but only by 0.010 after a long rollout. All other moves are at least errors.
The keys here are a) to have a very clear plan as to how to play the position and the objectives you are trying to achieve b) make sure you consider all plays even if you reject them for seemingly valid reasons.
This is also an object lesson in not fighting a war on two fronts. Red needs to concentrate on his forward position – his rear checkers can sort themselves out later.
1. Cubeful 2-ply 13/8 10/5 6/1*(2) Eq.: +0.894 0.947 0.357 0.001 - 0.053 0.002 0.000 2. Cubeful 2-ply 13/3 11/6 10/5 Eq.: +0.871 (-0.023) 0.936 0.293 0.003 - 0.064 0.001 0.000 3. Cubeful 2-ply 13/3 11/6 8/3 Eq.: +0.865 (-0.029) 0.933 0.286 0.003 - 0.067 0.001 0.000 4. Cubeful 2-ply 13/3 10/5 8/3 Eq.: +0.849 (-0.046) 0.924 0.251 0.003 - 0.076 0.001 0.000 5. Cubeful 2-ply 13/3 6/1*(2) Eq.: +0.827 (-0.067) 0.914 0.408 0.001 - 0.086 0.005 0.000


Who We Are:
Twitter is your window into What's Happening in the world, live! As rich content continues to drive conversation, connection, and engagement on Twitter, product teams are focussed on surfacing a broad selection of compelling content to the user based on their interests.
Our team, Cortex, is building technologies that enable product teams to create that experience. We are a team of ML engineers and researchers, trying to push boundaries of ML and personalization at Twitter. We work closely with ML product teams across the company (timelines, ads, recommendations, safety etc) to define, design and develop the core components that would enable them to deliver the desired experience to Twitter users.
Example projects include:
-
Approximate Nearest Neighbor algorithms and related infrastructure at Twitter scale
-
Embeddings models and algorithms
-
Embedding infrastructure that allows teams to easily train, consume and share embeddings.
What You'll Do:
Apply your research and engineering skills to either improve existing solutions, unlock new directions or provide entirely new ML solutions within Twitter. You will work closely with live production systems and product teams, and learn to deliver ML solutions at scale within the Twitter tech stack, whilst encouraging best practices for ML across the company.
Who You Are:
- You have a passion for machine learning.
-
You thrive on working in concert with other smart people, including from distributed offices.
-
You communicate fluidly, at the level of your audience, and seek to understand and being understood.
-
You have the ability to take on complex problems, learn quickly, iterate, and persist towards a good solution.
-
You are adamant about studying customer needs and enabling their success through our products.
-
You take pride in polishing and supporting our products.
-
You welcome feedback on are constantly looking for ways to improve yourself.
-
You can provide thought leadership in ML techniques and best practices to the team and company at large.
-
You have the ability to distill down the product use cases into a tractable ML problem and deliver practical solutions.
-
You are passionate about the way we develop state-of-the-art technologies and are excited by the application of theory to real-world problems.
-
You keep up to date with the latest developments in the field and look for ways to apply them to your current work/role.
Requirements:
-
Masters’ or PhD in a Computer Science or Machine Learning related degree; or equivalent work experience in the field
-
Good theoretical grounding in core Machine Learning concepts and techniques
-
Ability to perform comprehensive literature reviews and provide critical feedback on state-of-the-art solutions and how they may fit to different operating constraints
-
Ability to reason about and grasp the intuition behind fundamental principles of Linear Algebra, Statistics, Probability .
-
Experience with a number of ML techniques and frameworks, e.g. data discretization, normalization, sampling, linear regression, decision trees, SVMs, deep neural networks, etc
-
Familiarity with one or more DL software frameworks such as Tensorflow, PyTorch
-
3+ years experience with one or more DL software frameworks such as Tensorflow, PyTorch, Theano
-
7+ years experience leading and delivering effective ML solutions for large scale production use cases.
Nice to Have:
-
Experience with large-scale systems and data, e.g. Hadoop, distributed systems
-
Familiarity with distributed systems.
-
Experience with one or more of the following:
-
Approximate / k Nearest Neighbor theory, algorithms and frameworks
-
Recommender Systems
-
Model optimization and parameter selection
-
Reinforcement Learning
-
Publications in top conferences such as ICLR, NIPS, ICML, CVPR, ICCV, ECCV, etc


Eating is very different in space. But one thing is the same: people like to do it together.
Space table manners
The dining area is an important social space. But if there’s no room at your spacecraft’s table, it’s OK to eat on the ceiling.
Dinner adrift
Velcro keeps cans and pouches of food from floating off the table. Astronauts stay put using toeholds under the table.
The sauce secret
Many space meals contain thick, sticky sauce. It keeps food from drifting apart. Plus, who doesn’t like sauce?
Just like Mom’s
In space, Thanksgiving dinner comes in pouches. There’s only one thing missing . . .
Potatoes without gravy?!
A space Thanksgiving has no gravy. Goopy gravy is hard to apply to food in space, and pre-mixing potatoes and gravy ruins their texture!
More than nutritious
Even though it comes out of a pouch, space food has to look, feel, and taste good. This helps keep astronauts in high spirits.
Eating healthy
Astronauts need to eat a healthy, balanced diet. Weightlessness is hard on the body, and astronauts have a big workload.
Planning ahead
Imagine a mission to space lasting several years. You could pack a lot of food for the trip, but there may be other ways to keep yourself fed.
Growing dinner
Astronauts are experimenting with growing vegetables on the International Space Station. One day it might be possible to feed astronauts from a spacecraft garden.
Future food
We’ll need food wherever the journey to space takes us. Each destination will present new challenges to food production. This artist imagines underground greenhouses on frigid Mars.


Shatta Wale responds to Nana Boroo’s threat after attacking Kweku Smoke
by Qwame BenedictDancehall artiste Charles Nii Armah Mensah known in showbiz as Shatta Wale has reacted to the ongoing story that he sent some thugs from his SM camp to attack and beat upcoming musician Kweku Smoke and his manager.
According to Kweku Smoke, Shatta Wale sent some thugs of his to attack him when he together with his manager paid a visit to his house to settle the issue of song theft.
Hiplife artiste Nana Boroo after a video of the attack went viral also took to social media to tell Shatta Wale that he has crossed the line with his gangster attitude and threatened to deal with him.
But Shatta Wale in his response has urged his fans not to be bothered with the threat from the two people.
He continued and added that people would henceforth not go around peddling lies about him again especially to his fans.
 Pussy!!”
See screenshot below:


Learn the importance of CSS
Learn to use CSS
Learn to link images
Learn to link to other pages
Learn to write Comments/Authorships
Understand Box Models
Learn how to add margins and padding
Learn how to position onbjects
Learn IDs and classes
Learn responsive design
Learn stack divs
Learn to use containers
Learn to better control object placement
Learn style tags
Learn basic JavaScript
Link a JavaScript page
Learn to use math functions
Learn to write to console
Learn how to use functions
Learn to upload into github


A Developer, Leader, Entrepeneur, Enthusiast. Although I love to develop and build amazing things with modern technology. I am not your average developer. I love to work hard, and I love to play even harder. If we work hard to achieve the dreams we have, I believe they can become reality. Read on to discover more about me.
Hard work pays off - hard work beats talent any day, but if you're talented and work hard, it's hard to be beat.


Here are some triStateCheckBoxes. Try clicking, and hovering, tabbing, and using the space bar to select:


' operation.- Returns:
- the meta object for the 'Get Property' operation.
- See Also:
- Generated:
-
getPropertyValueAssertion__GetValue
org.eclipse.emf.ecore.EOperation getPropertyValueAssertion__GetValue()Returns the meta object for the 'Get Value
' operation.- Returns:
- the meta object for the 'Get Value' operation.
- See Also:
- Generated:
-
getScalarPropertyValueAssertion
org.eclipse.emf.ecore.EClass getScalarPropertyValueAssertion()Returns the meta object for class 'Scalar Property Value Assertion
'.- Returns:
- the meta object for class 'Scalar Property Value Assertion'.
- See Also:
- Generated:
-
getScalarPropertyValueAssertion_Property
org.eclipse.emf.ecore.EReference getScalarPropertyValueAssertion_Property()Returns the meta object for the reference 'Property
'.- Returns:
- the meta object for the reference 'Property'.
- See Also:
- Generated:
-
getScalarPropertyValueAssertion_Value
org.eclipse.emf.ecore.EReference getScalarPropertyValueAssertion_Value()Returns the meta object for the containment reference 'Value
'.- Returns:
- the meta object for the containment reference 'Value'.
- See Also:
- Generated:
-
getStructuredPropertyValueAssertion
org.eclipse.emf.ecore.EClass getStructuredPropertyValueAssertion()Returns the meta object for class 'Structured Property Value Assertion
'.- Returns:
- the meta object for class 'Structured Property Value Assertion'.
- See Also:
- Generated:
-
getStructuredPropertyValueAssertion_Property
org.eclipse.emf.ecore.EReference getStructuredPropertyValueAssertion_Property()Returns the meta object for the reference 'Property
'.- Returns:
- the meta object for the reference 'Property'.
- See Also:
- Generated:
-
getStructuredPropertyValueAssertion_Value
org.eclipse.emf.ecore.EReference getStructuredPropertyValueAssertion_Value()Returns the meta object for the containment reference 'Value
'.- Returns:
- the meta object for the containment reference 'Value'.
- See Also:
- Generated:
-
getLinkAssertion
org.eclipse.emf.ecore.EClass getLinkAssertion()Returns the meta object for class 'Link Assertion
'.- Returns:
- the meta object for class 'Link Assertion'.
- See Also:
- Generated:
-
getLinkAssertion_Relation
org.eclipse.emf.ecore.EReference getLinkAssertion_Relation()Returns the meta object for the reference 'Relation
'.- Returns:
- the meta object for the reference 'Relation'.
- See Also:
- Generated:
-
getLinkAssertion_Target
org.eclipse.emf.ecore.EReference getLinkAssertion_Target()Returns the meta object for the reference 'Target
'.- Returns:
- the meta object for the reference 'Target'.
- See Also:
- Generated:
-
getLinkAssertion_OwningInstance
org.eclipse.emf.ecore.EReference getLinkAssertion_OwningInstance()Returns the meta object for the container reference 'Owning Instance
'.- Returns:
- the meta object for the container reference 'Owning Instance'.
- See Also:
- Generated:
-
getLinkAssertion_OwningReference
org.eclipse.emf.ecore.EReference getLinkAssertion_OwningReference()Returns the meta object for the container reference 'Owning Reference
'.- Returns:
- the meta object for the container reference 'Owning Reference'.
- See Also:
- Generated:
-
getPredicate
org.eclipse.emf.ecore.EClass getPredicate()Returns the meta object for class 'Predicate
'.- Returns:
- the meta object for class 'Predicate'.
- See Also:
- Generated:
-
getPredicate_AntecedentRule
org.eclipse.emf.ecore.EReference getPredicate_AntecedentRule()Returns the meta object for the container reference 'Antecedent Rule
'.- Returns:
- the meta object for the container reference 'Antecedent Rule'.
- See Also:
- Generated:
-
getPredicate_ConsequentRule
org.eclipse.emf.ecore.EReference getPredicate_ConsequentRule()Returns the meta object for the container reference 'Consequent Rule
'.- Returns:
- the meta object for the container reference 'Consequent Rule'.
- See Also:
- Generated:
-
getUnaryPredicate
org.eclipse.emf.ecore.EClass getUnaryPredicate()Returns the meta object for class 'Unary Predicate
'.- Returns:
- the meta object for class 'Unary Predicate'.
- See Also:
- Generated:
-
getUnaryPredicate_Variable
org.eclipse.emf.ecore.EAttribute getUnaryPredicate_Variable()Returns the meta object for the attribute 'Variable
'.- Returns:
- the meta object for the attribute 'Variable'.
- See Also:
- Generated:
-
getTypePredicate
org.eclipse.emf.ecore.EClass getTypePredicate()Returns the meta object for class 'Type Predicate
'.- Returns:
- the meta object for class 'Type Predicate'.
- See Also:
- Generated:
-
getTypePredicate_Type
org.eclipse.emf.ecore.EReference getTypePredicate_Type()Returns the meta object for the reference 'Type
'.- Returns:
- the meta object for the reference 'Type'.
- See Also:
- Generated:
-
getBinaryPredicate
org.eclipse.emf.ecore.EClass getBinaryPredicate()Returns the meta object for class 'Binary Predicate
'.- Returns:
- the meta object for class 'Binary Predicate'.
- See Also:
- Generated:
-
getBinaryPredicate_Variable1
org.eclipse.emf.ecore.EAttribute getBinaryPredicate_Variable1()Returns the meta object for the attribute 'Variable1
'.- Returns:
- the meta object for the attribute 'Variable1'.
- See Also:
- Generated:
-
getBinaryPredicate_Variable2
org.eclipse.emf.ecore.EAttribute getBinaryPredicate_Variable2()Returns the meta object for the attribute 'Variable2
'.- Returns:
- the meta object for the attribute 'Variable2'.
- See Also:
- Generated:
-
getBinaryPredicate_Instance2
org.eclipse.emf.ecore.EReference getBinaryPredicate_Instance2()Returns the meta object for the reference 'Instance2
'.- Returns:
- the meta object for the reference 'Instance2'.
- See Also:
- Generated:
-
getRelationEntityPredicate
org.eclipse.emf.ecore.EClass getRelationEntityPredicate()Returns the meta object for class 'Relation Entity Predicate
'.- Returns:
- the meta object for class 'Relation Entity Predicate'.
- See Also:
- Generated:
-
getRelationEntityPredicate_Entity
org.eclipse.emf.ecore.EReference getRelationEntityPredicate_Entity()Returns the meta object for the reference 'Entity
'.- Returns:
- the meta object for the reference 'Entity'.
- See Also:
- Generated:
-
getRelationEntityPredicate_EntityVariable
org.eclipse.emf.ecore.EAttribute getRelationEntityPredicate_EntityVariable()Returns the meta object for the attribute 'Entity Variable
'.- Returns:
- the meta object for the attribute 'Entity Variable'.
- See Also:
- Generated:
-
getFeaturePredicate
org.eclipse.emf.ecore.EClass getFeaturePredicate()Returns the meta object for class 'Feature Predicate
'.- Returns:
- the meta object for class 'Feature Predicate'.
- See Also:
- Generated:
-
getFeaturePredicate_Feature
org.eclipse.emf.ecore.EReference getFeaturePredicate_Feature()Returns the meta object for the reference 'Feature
'.- Returns:
- the meta object for the reference 'Feature'.
- See Also:
- Generated:
-
getFeaturePredicate_Literal2
org.eclipse.emf.ecore.EReference getFeaturePredicate_Literal2()Returns the meta object for the containment reference 'Literal2
'.- Returns:
- the meta object for the containment reference 'Literal2'.
- See Also:
- Generated:
-
getSameAsPredicate
org.eclipse.emf.ecore.EClass getSameAsPredicate()Returns the meta object for class 'Same As Predicate
'.- Returns:
- the meta object for class 'Same As Predicate'.
- See Also:
- Generated:
-
getDifferentFromPredicate
org.eclipse.emf.ecore.EClass getDifferentFromPredicate()Returns the meta object for class 'Different From Predicate
'.- Returns:
- the meta object for class 'Different From Predicate'.
- See Also:
- Generated:
-
getLiteral
org.eclipse.emf.ecore.EClass getLiteral()Returns the meta object for class 'Literal
'.- Returns:
- the meta object for class 'Literal'.
- See Also:
- Generated:
-
getQuotedLiteral
org.eclipse.emf.ecore.EClass getQuotedLiteral()Returns the meta object for class 'Quoted Literal
'.- Returns:
- the meta object for class 'Quoted Literal'.
- See Also:
- Generated:
-
getQuotedLiteral_Value
org.eclipse.emf.ecore.EAttribute getQuotedLiteral_Value()Returns the meta object for the attribute 'Value
'.- Returns:
- the meta object for the attribute 'Value'.
- See Also:
- Generated:
-
getQuotedLiteral_LangTag
org.eclipse.emf.ecore.EAttribute getQuotedLiteral_LangTag()Returns the meta object for the attribute 'Lang Tag
'.- Returns:
- the meta object for the attribute 'Lang Tag'.
- See Also:
- Generated:
-
getQuotedLiteral_Type
org.eclipse.emf.ecore.EReference getQuotedLiteral_Type()Returns the meta object for the reference 'Type
'.- Returns:
- the meta object for the reference 'Type'.
- See Also:
- Generated:
-
getIntegerLiteral
org.eclipse.emf.ecore.EClass getIntegerLiteral()Returns the meta object for class 'Integer Literal
'.- Returns:
- the meta object for class 'Integer Literal'.
- See Also:
- Generated:
-
getIntegerLiteral_Value
org.eclipse.emf.ecore.EAttribute getIntegerLiteral_Value()Returns the meta object for the attribute 'Value
'.- Returns:
- the meta object for the attribute 'Value'.
- See Also:
- Generated:
-
getDecimalLiteral
org.eclipse.emf.ecore.EClass getDecimalLiteral()Returns the meta object for class 'Decimal Literal
'.- Returns:
- the meta object for class 'Decimal Literal'.
- See Also:
- Generated:
-
getDecimalLiteral_Value
org.eclipse.emf.ecore.EAttribute getDecimalLiteral_Value()Returns the meta object for the attribute 'Value
'.- Returns:
- the meta object for the attribute 'Value'.
- See Also:
- Generated:
-
getDoubleLiteral
org.eclipse.emf.ecore.EClass getDoubleLiteral()Returns the meta object for class 'Double Literal
'.- Returns:
- the meta object for class 'Double Literal'.
- See Also:
- Generated:
-
getDoubleLiteral_Value
org.eclipse.emf.ecore.EAttribute getDoubleLiteral_Value()Returns the meta object for the attribute 'Value
'.- Returns:
- the meta object for the attribute 'Value'.
- See Also:
- Generated:
-
getBooleanLiteral
org.eclipse.emf.ecore.EClass getBooleanLiteral()Returns the meta object for class 'Boolean Literal
'.- Returns:
- the meta object for class 'Boolean Literal'.
- See Also:
- Generated:
-
getBooleanLiteral_Value
org.eclipse.emf.ecore.EAttribute getBooleanLiteral_Value()Returns the meta object for the attribute 'Value
'.- Returns:
- the meta object for the attribute 'Value'.
- See Also:
- Generated:
-
getSeparatorKind
org.eclipse.emf.ecore.EEnum getSeparatorKind()Returns the meta object for enum 'Separator Kind
'.- Returns:
- the meta object for enum 'Separator Kind'.
- See Also:
- Generated:
-
getRangeRestrictionKind
org.eclipse.emf.ecore.EEnum getRangeRestrictionKind()Returns the meta object for enum 'Range Restriction Kind
'.- Returns:
- the meta object for enum 'Range Restriction Kind'.
- See Also:
- Generated:
-
getCardinalityRestrictionKind
org.eclipse.emf.ecore.EEnum getCardinalityRestrictionKind()Returns the meta object for enum 'Cardinality Restriction Kind
'.- Returns:
- the meta object for enum 'Cardinality Restriction Kind'.
- See Also:
- Generated:
-
getUnsignedInt
org.eclipse.emf.ecore.EDataType getUnsignedInt()Returns the meta object for data type 'Unsigned Int'.- Returns:
- the meta object for data type 'Unsigned Int'.
- Generated:
- Model:
- instanceClass="long" extendedMetaData="minInclusive='0' maxInclusive='4294967295'"
-
getUnsignedInteger
org.eclipse.emf.ecore.EDataType getUnsignedInteger()Returns the meta object for data type 'Unsigned Integer
'.- Returns:
- the meta object for data type 'Unsigned Integer'.
- See Also:
- Generated:
- Model:
- instanceClass="java.lang.Long" extendedMetaData="minInclusive='0' maxInclusive='4294967295'"
-
getDecimal
org.eclipse.emf.ecore.EDataType getDecimal()Returns the meta object for data type 'Decimal
'.- Returns:
- the meta object for data type 'Decimal'.
- See Also:
- Generated:
- Model:
- instanceClass="java.math.BigDecimal" extendedMetaData="baseType='http://www.w3.org/2001/XMLSchema#decimal'"
-
getID
org.eclipse.emf.ecore.EDataType getID()Returns the meta object for data type 'ID
'.- Returns:
- the meta object for data type 'ID'.
- See Also:
- Generated:
- Model:
- instanceClass="java.lang.String" extendedMetaData="pattern='[a-zA-Z0-9_]([a-zA-Z0-9_\\-.$])*'"
-
getNamespace
org.eclipse.emf.ecore.EDataType getNamespace()Returns the meta object for data type 'Namespace
'.- Returns:
- the meta object for data type 'Namespace'.
- See Also:
- Generated:
- Model:
- instanceClass="java.lang.String" extendedMetaData="pattern='([^\\s#])*(#|/)' minLength='2'"
-
getOmlFactory
OmlFactory getOmlFactory()Returns the factory that creates the instances of the model.- Returns:
- the factory that creates the instances of the model.
- Generated:
-


This is the first demo DIV. Try to remove this element by inspecting the HTML.
This should be removed if you click the button below:
You can monitor your HTML to avoid people from changing your HTML on the fly.
This is an example of DOM manipulation with Knock Out.
Type your name:


22, June 2013
I woke up like any other morning thinking of closing a github issue.I went out to pick up food items for the weekend, once I was back my friend said “ You got a call on Tamil Nadu number”.
I reverted the call and the person said “I am calling from Delhi consumer court, confirmed my name, address where I stayed in feb, 2009, added RC Gowtham has filled a 420 case against you(dc801/2013, couldn’t find status in http://<IP_ADDRESS>/ncdrcusersWeb/login.do?method=caseStatus) and gave his phone number”.
I called to RC Gowtham and asked for details. Reason is I haven’t paid my Reliance Bill and he gave me Reliance ID. He hung the call saying “Case will be in Delhi consumer court on monday”.
Then I rushed to near by Reliance communication and enquired the details against the reliance id. I heard the whooping amount of 4435 is pending but actual bill must be 500+.
Then I spoke to customer care found out the bill was generated on february 2009, amount was 540. Now with the penalty I need to pay 4435.
I remember paying the bill and properly terminating the connection by returning the equipment in Peelamedu, Coimbatore. In March(update: 06/02/2009) we shifted our house.
1.00 PM
I spoke to the person from Delhi who called me up earlier. I am supposed to pay the amount by 3.00 PM and pass on the bill details else I have to fight the case in Delhi consumer court. Seems the person who called me might be hired by Reliance.
Question?
- Why hasn’t reliance called to me in last 4 years to collect the bill ? I haven’t changed my number in past 6 years.
- Is there a way I can fight this ?
- How can a person from Coimbatore, living in Bangalore will fight a case in Delhi court ?
Apart from paying the money, I don’t have any option to exit from this problem. Any thoughts ?
Updates
- I have complaint filed against disconnection on 4th february 2009, complaint no: 88025881.
- Customer care couldn’t find the status or resolution for the complaint since its 4 year old.
- I have reopened the thread. Hope this time I get reply.
- At 3.05 PM I got the call from the person and I said “My lawyer will handle this”. He replied “case is on monday morning”.
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.


These subroutines applies an overlap operator to the input vector:
where:
| x | Subroutine |
| Short Precision Real | psb_ovrl |
| Long Precision Real | psb_ovrl |
| Short Precision Complex | psb_ovrl |
| Long Precision Complex | psb_ovrl |
call psb_ovrl(x, desc_a, info)
call psb_ovrl(x, desc_a, info, update=update_type, work=work)
Scope: global
Intent: in.
Default: update_type = psb_avg_
Scope: global
Specified as: a integer variable.
Notes
Example of use Consider the discretization mesh depicted in fig. 4, partitioned among two processes as shown by the dashed lines, with an overlap of 1 extra layer with respect to the partition of fig. 3; the data distribution is such that each process will own 40 entries in the index space, with an overlap of 16 entries placed at local indices 25 through 40; the halo will run from local index 41 through local index 48.. If process 0 assigns an initial value of 1 to its entries in the x vector, and process 1 assigns a value of 2, then after a call to psb_ovrl with psb_avg_ and a call to psb_halo_ the contents of the local vectors will be the following (showing a transition among the two subdomains)
| Process 0 | Process 1
| ||||
| I | GLOB(I) | X(I) | I | GLOB(I) | X(I) |
| 1 | 1 | 1.0 | 1 | 33 | 1.5 |
| 2 | 2 | 1.0 | 2 | 34 | 1.5 |
| 3 | 3 | 1.0 | 3 | 35 | 1.5 |
| 4 | 4 | 1.0 | 4 | 36 | 1.5 |
| 5 | 5 | 1.0 | 5 | 37 | 1.5 |
| 6 | 6 | 1.0 | 6 | 38 | 1.5 |
| 7 | 7 | 1.0 | 7 | 39 | 1.5 |
| 8 | 8 | 1.0 | 8 | 40 | 1.5 |
| 9 | 9 | 1.0 | 9 | 41 | 2.0 |
| 10 | 10 | 1.0 | 10 | 42 | 2.0 |
| 11 | 11 | 1.0 | 11 | 43 | 2.0 |
| 12 | 12 | 1.0 | 12 | 44 | 2.0 |
| 13 | 13 | 1.0 | 13 | 45 | 2.0 |
| 14 | 14 | 1.0 | 14 | 46 | 2.0 |
| 15 | 15 | 1.0 | 15 | 47 | 2.0 |
| 16 | 16 | 1.0 | 16 | 48 | 2.0 |
| 17 | 17 | 1.0 | 17 | 49 | 2.0 |
| 18 | 18 | 1.0 | 18 | 50 | 2.0 |
| 19 | 19 | 1.0 | 19 | 51 | 2.0 |
| 20 | 20 | 1.0 | 20 | 52 | 2.0 |
| 21 | 21 | 1.0 | 21 | 53 | 2.0 |
| 22 | 22 | 1.0 | 22 | 54 | 2.0 |
| 23 | 23 | 1.0 | 23 | 55 | 2.0 |
| 24 | 24 | 1.0 | 24 | 56 | 2.0 |
| 25 | 25 | 1.5 | 25 | 57 | 2.0 |
| 26 | 26 | 1.5 | 26 | 58 | 2.0 |
| 27 | 27 | 1.5 | 27 | 59 | 2.0 |
| 28 | 28 | 1.5 | 28 | 60 | 2.0 |
| 29 | 29 | 1.5 | 29 | 61 | 2.0 |
| 30 | 30 | 1.5 | 30 | 62 | 2.0 |
| 31 | 31 | 1.5 | 31 | 63 | 2.0 |
| 32 | 32 | 1.5 | 32 | 64 | 2.0 |
| 33 | 33 | 1.5 | 33 | 25 | 1.5 |
| 34 | 34 | 1.5 | 34 | 26 | 1.5 |
| 35 | 35 | 1.5 | 35 | 27 | 1.5 |
| 36 | 36 | 1.5 | 36 | 28 | 1.5 |
| 37 | 37 | 1.5 | 37 | 29 | 1.5 |
| 38 | 38 | 1.5 | 38 | 30 | 1.5 |
| 39 | 39 | 1.5 | 39 | 31 | 1.5 |
| 40 | 40 | 1.5 | 40 | 32 | 1.5 |
| 41 | 41 | 2.0 | 41 | 17 | 1.0 |
| 42 | 42 | 2.0 | 42 | 18 | 1.0 |
| 43 | 43 | 2.0 | 43 | 19 | 1.0 |
| 44 | 44 | 2.0 | 44 | 20 | 1.0 |
| 45 | 45 | 2.0 | 45 | 21 | 1.0 |
| 46 | 46 | 2.0 | 46 | 22 | 1.0 |
| 47 | 47 | 2.0 | 47 | 23 | 1.0 |
| 48 | 48 | 2.0 | 48 | 24 | 1.0 |


With proper permissions, you have access to some tools. They are :
This tool list all subnets still with auto-created vlan 0.
This tool list all subnets which are not in the norm.


21.4 Summaries of All Available Statements of Passengers and Crew
21.4.1 Summaries of Passengers Statements
part two
| Name | Location at heel | Pre-casualty observations | Noise scenario times/observations | Heel | Observations during way up | Subsequent observations | ||
| time/0° | righting up ? | occurrence | ||||||
| Jaak Mullo truck driver | cabin 4213 (with E. Klug) | nothing | nothing | woke up when he was thrown out of bed due to the abrupt heel to starboard | visor fell off after 5-10 min. vessel's ramp looked as if fallen back-wards | |||
| Bengt Nilsson | cabin 1026 | ca. 22.00 hrs. on 7th deck forward, nothing special, it was very dark, heavy movements of vessel | ca. 23.30 hrs. down to cabin, shower and to bed ca. 24.00 hrs., hard bangs throughout the hull | it began to howl, squeak, crackle and scrape and simulta-neously the vessel took a heel which increased | opened door and saw Martin Nilsson rushing past, heard strange noises, on car deck level, water on wall and floor | estimates that 10 minutes had passed since he left his cabin | ||
| Martin Nilsson | cabin 1027 | heavy labouring of vessels | it cracked and sounded like the breaking of the structure, banging noises, slept for ca. 1 hour and woke up ca. 10-15 min. before the accident was a fact | woke up from the hard movements, heard a scraping noise as if vessel had run aground, it was scraping and crackling very near, simultaneously the vessel started to shake and then heeled (he moved up, the others down) | while the scrap-ing noise contin-ued, rushed out of the cabin up-wards, water on the floor on car deck level (several cm), inside deck 7 saw two crew members with walkie-talkies | door to outside deck 7 was already open | ||
| Ants Nadar | cabin 1025 | woke up from hard banging noises | started his way up, when the vessel heeled severely | when he came to deck 7 the engines had stopped | ||||
| Lars-Torsten Österberg Statoil employee | cabin 5206 Karaoke Bar | rough sea state, difficult to walk, always had to hold on to something | at about 01.00 hrs. vessel rolled - 2-3 times and then heeled wider over and righted up | ca. 01.00 hrs. | yes | after righting up, took heel relatively quickly of up to 30°, heeled in steps | on deck 7 still 30°, which increased to 45° subsequently |
saw the vessel sinking stern first and the last he saw was white |
| Mikael Öun Scania engineer | cabin 4217 had seen that the visor was closed | was in the sauna and heard low banging noises combined with vessel's movements in the waves |
1) heavy bang, vessel almost stopped, 2) 30 sec. later another bang, 3) directly followed by 3 heavy bounces (stronger than sledge hammer), 3 short, loud noises followed each other; all subsequent noises were much lower and he thought they were turning the vessel, it appeared as if the waves were now coming from the side, the vessel heeled over wider, the alarm clock fell from the table, vessel righted up and heeled again ca. 15° |
01.02 hrs. | yes |
it looked like torn off steel, but was the port stabiliser |
||
| Name | Location at heel | Pre-casualty observations | Noise scenario times/observations | Heel | Observations during way up | Subsequent observations | ||
| time/0° | righting up ? | occurrence | ||||||
|
Carl Övberg
|
cabin 1049
|
only service personnel, otherwise no crew visible, 22.30 hrs. to bed, vessel had slight list to starboard
|
1) woke up at about 00.30 hrs. from strong noise of rushing water at both sides, more at starboard, 2) strong metallic banging noises which had not been there before, 3) after some time heard the sudden starting up of hydraulic pumps, clicking of valves, hydraulic under load noise and, 4) simultaneously banging of sledge hammers; uncertain whether the noises came from forward, 5) hydraulic noise faded away and came back while the sledge hammering continued for ca. 10-15 minutes, 6) the other banging noises were heard for ca. 20-25 minutes, 7) the hydraulic and sledge-hammer noises stopped with a sharp, short metallic crash, 8) after 30-40 sec. silence, the next really extreme crash followed and he was thrown for-ward against the wall, 9) engine had stopped, 10) out of cabin (WT-doors were open), into stairway, jacket hooked, looked back, 11) saw water under pressure escape from two goose-necks and also water coming out of door from cleaning room, 12) continued up and when he was halfway up to car deck the ferry heeled ca. 50-60° to starboard and righted up, 13) thereafter list increased in steps, 14) continued to deck 7. |
ca. 01.00 hrs
|
yes
|
|||
| Name | Location at heel | Pre-casualty observations | Noise scenario times/observations | Heel | Observations during way up | Subsequent observations | ||
| time/0° | righting up ? | occurrence | ||||||
| Rait Pöllendik | cabin 1119 Pub Admiral | no report | no report | big heel to star-board, left Pub Admiral up to deck 7 | none | none | ||
| Gennadi M. Pärson | cabin 1013 | before it all began he heard on vessel's radio that there was an alarm situation | slept only very slightly, heard a strange noise as if big drum rolling over something | felt the heel, got dressed and out of cabin | ||||
| Anita Persson-Flygare | cabin 6012 | came to cabin sometime before 01.00 hrs. - after 7-8 min. vessel heeled to starboard very heavily | ca. 01.00 hrs. | was pressed against the wall, door flew open | ||||
| Juri Pekka Purliväli | cabin 4th deck | to bed at 21.00 hrs. | woke up after some time from an enormous crash | 01.00 hrs. | everything moved to starboard and two men from upper bed were thrown to the floor | at the end of the alleyway there was already cold seawater, on deck 7 there were already more than 400 persons | saw a Swedish crew member speaking quietly to the Estonian crew, tried to get lifeboat loose, but it was too corroded | |
| Thure Palmgrén | cabin 4th deck about midships | vessel's movements became worse towards midnight, went to cabin | after 00.00 hrs. metallic banging noises from forward began, rang the alarm, nothing, wife changed from bed to sofa, ca. 00.45 hrs. vessel shaking, vibrating and noise as if running aground or plates smashed in | ca. 01.00 hrs. | big heel and left cabin 25(45° | believes one of the crashing noises was an explosion | ||
| Indrek Pungar truck driver | cabin 4253 | heard crash and vessel heeled | ||||||
| Per-Arne Persson truck driver | cabin 4222/23 | trucks were not secured | vessel was shaking very strangely, very heavy crash as if the vessel would fall to pieces | big heel to starboard engine stopped | saw water on starboard side of 4th deck | |||
| Bert Roos | cabin 6104 | heavy bangs and heel |
witness refused to testify properly |
|||||
| Manfred Rothe | Pub Admiral | ca. 10 min. before the first shock through the vessel, glasses fell off shelf, crew removed all glasses/bottles into a case which was put into a store room behind the bar | yes | next came the main shock and every-thing flew into the store/the kitchen, into the bar | engines stopped | in ca. 30 min. the vessel was on the side | ||
| Carl-Erik Reintamm | cabin 1094 | to bed ca. 00.00-00.30 hrs. | shortly later he heard/felt scraping noises/as if ice was scraping along the hull, scraping from below, vessel heeled slightly, opened door and saw water streaming on the floor, small heel | felt that vessel heeled and rushed up | met two crew members on deck and reported water on deck 1, they rushed down-wards, vessel heeled more and up to deck 7 | <-- they were officers wearing white shirts, blue trousers, one had a walkie-talkie | ||
| Georg Sörensen | was in cabin with Herbert Augustin | saw through the window that vessel heeled | in agreement with M. Rothe's explanations | on board of "SILJA SYMPHONY" | ||||
| Paul Siht | cabin 1021 on 5th deck | on 5th deck at the slot machines | rushed to 7th deck when vessel heeled | |||||
| Dainis Sleiners | cabin 1015 | met 10 officers in uniform in Admiral's Pub which he considered strange | was sleeping at 22.30 hrs., heard strange banging noises | ca. 01.30 hrs. | woke up from heavy crash and vessel was shaking/ vibrating and then heeled | engines had stopped, water in alleyway of car deck level, 40-45° at deck 7 | ||
| Tony Spuhl | cabin 4313 | banging noises when the bow struck the sea | heard below noise of rushing water, twice, something wrong, engine reduced or stopped | major crash, vessel shaking and heeled abruptly, everything fell down out into alleyway | a passenger was shouting: "It is burning in the vessel." | |||
| Daniel Svensson Bible School Jönköping | cabin 1027 | vessel was pitching and rolling | when bow was meeting the waves something hammered against the hull | suddenly the vessel stopped after heeling and then continued to heel, out of cabin and up | on car deck he saw water splashing through the doors, ca. 10 cm, water on floor | |||
|
Rolf Sörman
|
cabin 6217 Pub Admiral
|
19.45 hrs. some pump started running at high noise level below their conference room on deck 4 and they closed their meeting (high rpms like pump), heard that noise still later in other parts of the ship |
ca. 01.05 hrs. 45/50°
|
yes
|
vessel heeled slightly to port (like at course alteration) and came back, a little later heavy heel and everything moved to the deep side, uprighted and heeled and upright-ed again, then stepwise more and more to starboard. | it took 35 minutes from heel to 90° | saw two per-sons coming out from some sort of emergency exit in the funnel, they were Estonians or Finns, one shouted: "water is coming up from car deck", the two were crew members | |
| Hannu Seppänen | cabin 63..... 5th deck near shops | vessel was shaking/ vibrating in the sea state | 1st heel, 2nd heel, 3rd heel and 40° list, 10 seconds in between | up to deck 7 | 02.00 hrs. the vessel had disappeared from the surface | |||
| Jaan Stern | cabin 1120 (most forward on deck 1) | heard hard bangs before casualty | left cabin after heel and after water had penetrated cabin through door | |||||
| Tönn Töniste | cabin 1st deck |
00.30 hrs. woke from movements |
||||||
| Name | Location at heel | Pre-casualty observations | Noise scenario times/observations | Heel | Observations during way up | Subsequent observations | ||
| time/0° | righting up ? | occurrence | ||||||
| Arturas Tamasaukas | refused to testify and left hospital without permission | |||||||
| Ulla Marianne Tenman | outside on deck 7 starboard side | sometime before casualty heard heavy bangs and something beating against the hull | she went from her cabin 1098 up to deck 7 and waited, suddenly heavy bang and the vessel heeled | |||||
| Raivo Tönisson truck driver | cabin 4426 or 4226 | truck was not secured | between 23.00 and 00.00 hrs. hard blow/bang/ contact | 01.00 hrs. | hard bang and heel, everything slid to the deep side | |||
| Ainus Toobal | cabin 4224 | vessel moved heavily | at 00.30 hrs. strange bangs and metal beats against metal | no | heavy heel, did not right up | at the bow ramp water had penetrated | ||
| Pierre Thiger | Karaoke Br with Altti Hakanpää | vessel laboured heavily, speed too high, heeled always more to starboard (had to hold on to the bar) |
- 00.45 hrs. muffled sound, ca. - 30 seconds later again (sharp, short sounds) - vessel shook somewhat - vessel made slow pitch movements |
01.00 hrs. 45/50° |
yes | - no more bangs but vibrations in aft ship as if going astern - felt propeller vibrations (glasses clinking) - then he heard the noise: | - very low noise and all pitch movements stopped, also all vibrations - then pitching again without noise (0-pitch) - 1 minute just pitching - pitching/rolling, i.e. 2 full swings, 3rd heel to starboard 15°-->45°/50° - righted up and heeled again to 40/45° - stabilised 10-12 min. and then to 90° saw port stabiliser moving up/down | |
| Juuse Veljo | cabin 1007 | hard pitch movements, ca. 22.30 hrs. some roll movements and had to hold on to something | to Pub Admiral, glasses toppled over, vessel rolled | no | vessel heeled to starboard and up to deck 7 upon being questioned respectively he answered that he did not see a hole in the vessel's starboard side | vessel heeled stepwise |
heard pumping noises inside the vessel when he was on way to the water - light blinking |
|
| Name | Location at heel | Pre-casualty observations | Noise scenario times/observations | Heel | Observations during way up | Subsequent observations | ||
| time/0° | righting up ? | occurrence | ||||||
| Rein Vaaske | deck 5 sleeping room | after 00.00 hrs. hard bang from mid of vessel, vessel was shaking | after 5-7 min. heel to starboard to 15-20° | heel increased to 40°-45°, crew member showed up who was under shock | light out/on, water already on aft deck of deck 5 | |||
| Vassili Vorodin | cabin 6320 together with cousin Alexander and uncle Vasili Krjutjkov | 24.00 hrs. to bed | ca. 01.00 hrs. | heavy heel and thrown out of bed, looked out of window and vessel heeled severely to starboard | was thrown from stairs against wall and he broke his hand | |||
| Alexander Vorodin | cabin 6320 | ca. 00.30 hrs. very hard bang | slight heel to starboard, some minutes later another much stronger bang, more heeling | another bang and vessel heeled further | aft part under water when he went overboard | |||
| Siegfried Wolf | cabin 6317 near Tax Free Shop | confirms statement Manfred Rothe | ||||||
| Holger Wachtmeister | cabin 1047/48 | heavy movements caused headache since the trucks were not secured | woke up from scraping noise and heavy crash, heavy heel when he left cabin | water on 1st deck and car deck | ||||
| Name | Location at heel | Pre-casualty observations | Noise scenario times/observations | Heel | Observations during way up | Subsequent observations | ||
| time/0° | righting up ? | occurrence | ||||||
| Wanda Wachtmeister | cabin 4618 | together with her brother Holger until ca. 00.30 hrs. | went to bed, but could not sleep, vessel was behaving violently | ca. 01.00 hrs. | no | suddenly she heard a crash downwards, it was an extreme sound, soon the vessel heeled to starboard | the vessel remained in heeled condition for some time when she was out on deck 7, it was 01.05 hrs. | |
| Jasmina Waidinger | cabin 1027 | in cabin together with Daniel Svensson | 00.30 hrs. to bed, low banging noises, she heard low, running water sound from above, it was 01.00 hrs. and she was just dozing shortly | ca. 01.00 hrs. | when she heard a strong crash, which she believed came from above, it appeared that something huge moved from one side to the other, after this strong scraping noise the vessel heeled severely to starboard | on 1st deck in alleyway outside the cabin | ||
| Kerim Nisancioglu | deck passenger in cinema aft of deck 4 | saw that bow door was closed | ca. 23.00 hrs. to sleep | vessel began to roll from side to side and he did not hear the engines any-more, vessel heeled to starboard and something big moved from star-board to port | below him vessel heeled wide to starboard and he looked straight into the sea |


Car Clean is a company whose main objective is to wash people's cars
efficiently & effectively with the least amount of time.We achieve this by providing our consumers
with an online platform,where drivers can book a time slot that is most appropriate for them,to have
their cars washed
Sealers handwax
Interior Dusting
Wheel Shine
Window In & Out
Exterior Hand Wash
Wheel Shine
Hand Polish
Tire Dressing


The example demonstrates how to record stats and traces for a video processing system. It records data with the "frontend" tag so that collected data can be broken by the frontend user who initiated the video processing. Code for this example can be found under the examples/helloworld directory of the OpenCensus Erlang repo.
The OpenCensus Erlang API artifact is available here.
Prerequisite
Erlang/OTP 20 and rebar3 are required.
Using
Create a new Erlang application with rebar3 new named helloworld:
$ rebar3 new app helloworld
===> Writing helloworld/src/helloworld_app.erl
===> Writing helloworld/src/helloworld_sup.erl
===> Writing helloworld/src/helloworld.app.src
===> Writing helloworld/rebar.config
===> Writing helloworld/.gitignore
===> Writing helloworld/LICENSE
===> Writing helloworld/README.md
$ cd helloworld
Add opencensus as a dependency in rebar.config. For development purposes it is also useful to include the shell section of the config which tells rebar3 to boot the application and load configuration when running rebar3 shell:
{erl_opts, [debug_info]}.
{deps, [opencensus]}.
{shell, [{apps, [helloworld]},
{config, "config/sys.config"}]}.
[
{opencensus, [{sampler, {oc_sampler_always, []}},
{reporter, {oc_reporter_stdout, []}},
{stat, [{exporters, [{oc_stat_exporter_stdout, []}]}]}]}
].
opencensus is a runtime dependency so it is added to the applications list in src/helloworld.app.src, ensuring it is included and started in a release of helloworld:
{application, helloworld,
[{description, "Example OpenCensus application"},
{vsn, "0.1.0"},
{registered, []},
{mod, { helloworld_app, []}},
{applications,
[kernel,
stdlib,
opencensus
]},
{env,[]},
{modules, []},
{maintainers, []},
{licenses, ["Apache 2.0"]},
{links, []}
]}.
Building the application with rebar3 compile will fetch the OpenCensus Erlang library and its dependencies.
When our application starts it needs to create and subscribe to the statistics that we'll record. So a call to subscribe_views/0 is added to the application start function, helloworld_app:start/2:
subscribe_views() ->
oc_stat_view:subscribe(#{name => "video_size",
description => "size of processed videos",
tags => ['frontend'],
measure => 'my.org/measure/video_size',
aggregation => default_size_distribution()}).
default_size_distribution() ->
{oc_stat_aggregation_distribution,
[{buckets, [0, 1 bsl 16, 1 bsl 32]}]}.
The main module called to actually do the video processing is helloworld. It creates a tag for who made the process request to include with the record statistic and creates a span for the duration of the video processing (a random sleep between 0 and 10 seconds):
-module(helloworld).
-export([process/0]).
process() ->
%% create a tag for who sent the request and start a child span
Tags = oc_tags:new(#{'frontend' => "mobile-ios9.3.5"}),
ocp:with_child_span(<<"my.org/ProcessVideo">>),
%% sleep for 0-10 seconds to simulate processing time
timer:sleep(timer:seconds(rand:uniform(10))),
%% finish the span
ocp:finish_span(),
%% record the size of the video
oc_stat:record(Tags, 'my.org/measure/video_size', 25648).
Run the application with rebar3 shell and see the stats and span reported to the console:
$ rebar3 shell
...
===> Booted opencensus
===> Booted helloworld
> helloworld:process().
ok
{span,<<"my.org/ProcessVideo">>,1201374966367397737078249396493886473,
10421649746227310879,undefined,1,
{-576460748652616660,2097430124176280981},
{-576460740651723247,2097430124176280981},
#{},undefined,[],[],undefined,undefined,undefined}
video_size: #{rows =>
[#{tags => #{"frontend" => "mobile-ios9.3.5"},
value =>
#{buckets =>
[{0,0},{65536,1},{4294967296,0},{infinity,0}],
count => 1,mean => 25648.0,sum => 25648}}],
type => distribution}


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Senior Hannah Burke, political science major, glares at the speaker who recalled her sexual assault story on Sept. 27, 2018.
Senior Mallory Golski, journalism major, addresses the crowd on the night of the It's On Us march on Sept. 27, 2018.
Graduate student, Lori Bogershausen, walks during the "It's on Us, Bobcats " march held at Ohio University on September 27, 2018.
Ph.D student, Alchil Mesa, stands in the crowd and listens to speakers during the "It's on Us, Bobcats" march held at Ohio University on September 27, 2018.
Ohio University students and Athens community members gather for the It's On Us, Bobcats march on September 27, 2018.
Athens resident Mary Connolly watches speakers speak at the It's On Us Bobcats protest rally on Sept. 27, 2018 in front of Cutler Hall.
Mallory Golski embraces another protestor during the It's On Us Bobcats rally against sexual abuse on Sept. 27, 2018 outside Cutler Hall.
Demonstrators turn the corner to march down College Street during the "It's On Us, Bobcats" rally against sexual assault on Thursday, September 27.
Demonstrators march down College Street during the "It's On Us, Bobcats" rally against sexual assault on Thursday, September 27.
It’s on Us, Bobcats-1: Participants walking the streets of Athens during the “It’s on Us, Bobcats” rally on Thursday, September 27.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Python setup.py include exclude files flexibly
Tested with Python 3.7.0, setuptools 40.9.0, wheel 0.33.1.
The demo project used in this post can be downloaded from here.
The demo project contains these files:
|-- .gitignore
|-- LICENSE.txt
|-- README.md
|-- README.src.md
|-- setup.py
|-- src
|-- aoiksetuppyincludeexclude
|-- __init__.py
|-- excluded_file.txt
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_file.txt
| |-- excluded_module.py
|-- included_file.txt
|-- included_module.py
|-- included_package
|-- __init__.py
|-- included_file.txt
|-- included_module.py
The goal is to build a source distribution file and a wheel distribution file containing all files in the src directory but excluding ones with excluded in their name.
setup.py take 1:
# coding: utf-8
from __future__ import absolute_import
import os
import sys
from setuptools import find_packages
from setuptools import setup
if __name__ == '__main__':
setup(
name='AoikSetupPyIncludeExclude',
description=(
'How to include and exclude Python module files and data files in'
'setup.py flexibly.'
),
version='0.0.1',
package_dir={
'': 'src'
},
packages=find_packages('src'),
)
Build source distribution file:
python setup.py clean sdist
Files in the source distribution file:
|-- PKG-INFO
|-- README.md
|-- setup.cfg
|-- setup.py
|-- src
|-- aoiksetuppyincludeexclude
|-- __init__.py
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
|-- included_module.py
|-- included_package
|-- __init__.py
|-- included_module.py
Wanted files but missing:
|-- src
|-- aoiksetuppyincludeexclude
|-- included_file.txt
|-- included_package
|-- included_file.txt
Unwanted files:
|-- src
|-- aoiksetuppyincludeexclude
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
Build wheel distribution file:
python setup.py clean bdist_wheel
Files in the wheel file:
|-- aoiksetuppyincludeexclude
|-- __init__.py
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
|-- included_module.py
|-- included_package
|-- __init__.py
|-- included_module.py
Wanted files but missing:
|-- aoiksetuppyincludeexclude
|-- included_file.txt
|-- included_package
|-- included_file.txt
Unwanted files but present:
|-- aoiksetuppyincludeexclude
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
By default the setup function does not include non .py files. So we
specify its data_files arguments to include non .py files.
setup.py take 2:
# coding: utf-8
from __future__ import absolute_import
from setuptools import find_packages
from setuptools import setup
if __name__ == '__main__':
setup(
name='AoikSetupPyIncludeExclude',
description=(
'How to include and exclude Python module files and data files in'
'setup.py flexibly.'
),
version='0.0.1',
package_dir={
'': 'src'
},
packages=find_packages('src'),
data_files=[
(
'Lib/site-packages/aoiksetuppyincludeexclude',
[
'src/aoiksetuppyincludeexclude/included_file.txt',
]
),
(
'Lib/site-packages/aoiksetuppyincludeexclude/included_package',
[
'src/aoiksetuppyincludeexclude/included_package/included_file.txt',
]
),
],
)
Build source distribution file:
python setup.py clean sdist
Files in the source distribution file:
|-- PKG-INFO
|-- README.md
|-- setup.cfg
|-- setup.py
|-- src
|-- AoikSetupPyIncludeExclude.egg-info
| |-- PKG-INFO
| |-- SOURCES.txt
| |-- dependency_links.txt
| |-- top_level.txt
|-- aoiksetuppyincludeexclude
|-- __init__.py
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
|-- included_file.txt
|-- included_module.py
|-- included_package
|-- __init__.py
|-- included_file.txt
|-- included_module.py
Unwanted files but present:
|-- src
|-- aoiksetuppyincludeexclude
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
Build wheel distribution file:
python setup.py clean bdist_wheel
Files in the wheel distribution file:
|-- AoikSetupPyIncludeExclude-0.0.1.data
| |-- data
| |-- Lib
| |-- site-packages
| |-- aoiksetuppyincludeexclude
| |-- included_file.txt
| |-- included_package
| |-- included_file.txt
|-- AoikSetupPyIncludeExclude-0.0.1.dist-info
| |-- METADATA
| |-- RECORD
| |-- WHEEL
| |-- top_level.txt
|-- aoiksetuppyincludeexclude
|-- __init__.py
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
| |-- included_module.py
|-- included_module.py
|-- included_package
|-- __init__.py
|-- excluded_module.py
|-- included_module.py
Unwanted files but present:
|-- aoiksetuppyincludeexclude
|-- excluded_module.py
|-- excluded_package
| |-- __init__.py
| |-- excluded_module.py
There is a problem with using data_files. The destination directory must be specified relative to Python's root directory. The relative path from Python's root directory to the project's package directory may vary on different platforms, so the value Lib/site-packages/aoiksetuppyincludeexclude
is likely to break on a different platform.
And we have not excluded unwanted python module files yet.
The solution to include and exclude files flexibly is to override several functions used by setuptools during building a distribution file so that custom filtering can be applied to include or exclude files.
setup.py take 3:
# coding: utf-8
from __future__ import absolute_import
import os
from setuptools import find_packages
from setuptools import setup
import setuptools.command.build_py
# Create custom `find_packages` function.
def custom_find_packages(where='.', exclude=(), include=('*',)):
"""
Find package names.
:param where: Start directory.
:param exclude: Excluded patterns.
:param include: Included patterns.
:return: Accepted package names list.
"""
# Find package names.
# Delegate to original `find_packages` function.
package_names = find_packages(where=where, exclude=exclude, include=include)
# Accepted package names.
accepted_packages_names = []
# For each package name.
for package in package_names:
# If the package name contains `excluded`.
if 'excluded' in package:
# Reject the package name.
continue
# If the package name not contains `excluded`.
else:
# Accept the package name.
accepted_packages_names.append(package)
# Return accepted package names
return accepted_packages_names
# Store original `find_package_modules` function
find_package_modules = \
setuptools.command.build_py.build_py.find_package_modules
# Create custom `find_package_modules` function
def custom_find_package_modules(self, package, package_dir):
"""
Find module infos in given package.
:param package: Package name.
:param package_dir: Package directory path.
:return: Accepted module infos list.
"""
# Find module infos in the package.
# Delegate to original `find_package_modules`.
infos = find_package_modules(self, package, package_dir)
# Accepted module infos.
accepted_infos = []
# For each module info.
for info in infos:
# Unpack the module info.
pkg_full_name, module_bare_name, module_path = info
# If the module name contains `excluded`.
if 'excluded' in module_bare_name:
# Reject the module info.
continue
# If the module name not contains `excluded`.
else:
# Accept the module info.
accepted_infos.append(
(pkg_full_name, module_bare_name, module_path)
)
# Return accepted module info list
return accepted_infos
# Replace original `find_package_modules` function with the custom one.
setuptools.command.build_py.build_py.find_package_modules = \
custom_find_package_modules
# Store original `find_data_files` function.
find_data_files = \
setuptools.command.build_py.build_py.find_data_files
# Create custom `find_data_files` function.
def custom_find_data_files(self, package, src_dir):
"""
Find data file paths in given package.
:param package: Package name.
:param src_dir: Package directory path.
:return: Accepted data file paths list.
"""
# Accepted data file paths.
accepted_file_paths = []
# For each file in the package directory.
for file_bare_name in os.listdir(src_dir):
# Get file path.
file_path = os.path.join(src_dir, file_bare_name)
# If the file is regular file.
if os.path.isfile(file_path):
# If the file is not `.py` file.
if not file_bare_name.endswith('.py'):
# If the file name contains `excluded`.
if 'excluded' in file_bare_name:
# Reject the file path.
continue
# If the file name not contains `excluded`.
else:
# Accept the file path.
accepted_file_paths.append(file_path)
# Return accepted data file paths.
return accepted_file_paths
# Replace original `find_data_files` function with the custom one
setuptools.command.build_py.build_py.find_data_files = \
custom_find_data_files
if __name__ == '__main__':
setup(
# Project name.
name='AoikSetupPyIncludeExclude',
# Project description.
description=(
'How to include and exclude Python module files and data files in'
'setup.py flexibly.'
),
# Project version.
version='0.0.1',
# Package root directory.
package_dir={
'': 'src'
},
# Find package names in package root directory `src`.
packages=custom_find_packages('src'),
)
Build source distribution file:
python setup.py clean sdist
Files in the source distribution file:
|-- PKG-INFO
|-- README.md
|-- setup.cfg
|-- setup.py
|-- src
|-- AoikSetupPyIncludeExclude.egg-info
| |-- PKG-INFO
| |-- SOURCES.txt
| |-- dependency_links.txt
| |-- top_level.txt
|-- aoiksetuppyincludeexclude
|-- __init__.py
|-- included_file.txt
|-- included_module.py
|-- included_package
|-- __init__.py
|-- included_file.txt
|-- included_module.py
Build wheel distribution file:
python setup.py clean bdist_wheel
Files in the wheel distribution file:
|-- AoikSetupPyIncludeExclude-0.0.1.dist-info
| |-- LICENSE.txt
| |-- METADATA
| |-- RECORD
| |-- WHEEL
| |-- top_level.txt
|-- aoiksetuppyincludeexclude
|-- __init__.py
|-- included_file.txt
|-- included_module.py
|-- included_package
|-- __init__.py
|-- included_file.txt
|-- included_module.py
Comments:


黒の手番です。51 はどう動かしますか？
Unlimited
pips Black=163 White=152
(CorrectAnswer= 0/0, ErrorScore= 0)
1. 24/23 13/8 eq:-0.347 41.13% (G:10.09% B:0.30%) 58.87% (G:15.26% B:0.60%) 2. 24/23 6/1* eq:-0.411 (-0.064) 39.76% (G:10.18% B:0.25%) 60.24% (G:15.71% B:0.77%) 3. 13/8 6/5 eq:-0.417 (-0.070) 39.11% (G:10.30% B:0.28%) 60.89% (G:15.31% B:0.70%) 4. 13/7 eq:-0.525 (-0.178) 36.96% (G: 9.76% B:0.31%) 63.04% (G:16.68% B:0.94%) 5. 6/5 6/1* eq:-0.559 (-0.212) 36.28% (G: 9.31% B:0.23%) 63.72% (G:17.55% B:0.98%)


A JavaScript Sound API supporting MP3, MPEG4 and HTML5 Audio.
Discussion / Support
For bug reports and technical support, see GitHub Issues.
SoundManager 2 makes it easier to play audio using JavaScript.
SoundManager 2 provides simple, reliable cross-platform audio under a single JavaScript API. Get SoundManager 2
Speak and be heard
More sound, in more places
Despite being one of the senses, sound has largely been missing from the web due to inconsistent technology support. SoundManager 2 bridges this gap, making it easier to use audio across a growing variety of devices and platforms, both desktop and mobile.
Getting started is pretty easy, too.
A few live examples:
HTML5 + flash hybrid
Complexity, reduced
Supporting HTML5 audio can be tedious in modern browsers, let alone legacy ones. With real-world visitors using browsers ranging from mobile Safari to IE 6 across a wide range of devices, there can be many support cases to consider.
SoundManager 2 gives you a single, powerful API that supports both new and old, using HTML5 audio where supported and optional Flash-based fallback where needed. Ideally when using SoundManager 2, audio "just works."
- Desktop support: Windows, Mac OS, Linux
- Laptop/tablet support: Windows, Mac OS, Linux / Blackberry Playbook, Kindle Fire + other HTML5/Flash devices
- iPhone support: iOS 4.0 and newer
- iPad support: Version 1.0 (iOS 3.2) and newer
- Android OS supporting HTML5 and/or Flash (Version 2.3 or newer)
The ginsu knife: 12 KB
Big features, small footprint
But wait, there's more!
Performance is an important metric, too. SoundManager 2 packs a comprehensive, feature-rich API into as little as 12 KB over the wire when optimized; that's less than 8% of the original, uncompressed file size.
SM2 is self-contained, having no external dependencies, and is compatible with popular JavaScript frameworks.
The source code is BSD-licensed and is provided in fully-commented, non-debug and compiler-optimized "minified" versions appropriate for development and production use.
Basic
Playable links and playlists
These demos use unordered lists with MP3 links that play in-place; the UI is easily customized via CSS.
A richer playlist theme with optional time, seekable progress bar and a VU meter where supported:
Shiny
Fancier UI, more features
The Bar UI uses SVG for a resolution-independent UI, with HTML and CSS that makes customization easy.
The 360° player UI demo uses <canvas> and includes options for waveform and spectrum analysis data via Flash 9, adding beautiful visual feedback to the interface.
Seven Or Eight Days courtesy of Adrian Glynn, from the album Bruise. For more, see the music video.
Experimental
Advanced prototypes
The Cassette Tape UI is a skinnable player based on the TDK MA-R90 cassette tape, a classic design from 1982.
Remember Type IV, Metal & Chromium/CrO2? Those were the days.
Getting started
Basic SoundManager 2 set-up
Including the script, configuring the url
and registering an onready()
callback:
<script src="soundmanager2.js"></script>
<script>
soundManager.setup({
// where to find flash audio SWFs, as needed
url: '/path/to/swf-files/',
onready: function() {
// SM2 is ready to play audio!
}
});
</script>
Upon execution of soundmanager2.js, SM2 will determine what Flash SWF to load (if any) based on the path defined in soundManager.url
.
After successful initialization, soundManager.onready()
will fire and sounds can be played.
By default, SM2 uses a Flash 8-based SWF build. Some additional features are available when using the Flash 9-based build.
For a live example, see the basic template demo.
Playing audio
Basic playback control
Once soundManager.onready()
has fired, sounds can be loaded and played.
Creating and playing a sound object
// create "mySound"...
var mySound = soundManager.createSound({
url: '/path/to/an.mp3'
});
// ...and play it
mySound.play();
Additional options and events can be specified when loading and playing sounds. For more examples of playback features, see API Demos.
Bonus
Additional demos
Examples using multi-track playback, progress and combinations of sound and animation:
Armor Alley: Web Prototype (PC-DOS game remake)
Armor Alley is a side-scrolling, real-time vehicle simulation / strategy game, originally released for the Mac and PC-DOS computers in 1990. This web-based remake is a tribute to the attention to detail shown in the original. Your goal is to defend a convoy as it moves into enemy territory; the game ends when a van reaches the opposing base. See the making-of for more.
SURVIVOR (Commodore 64 game remake)
SURVIVOR is a web-based remake of a Commodore 64 game. The goal is to shoot out turrets and destroy bases, while avoiding contact with basically everything around you. Sound was used creatively in the original, and it has been re-implemented in this modern interpretation. See the making-of for more.
Elsewhere
As heard on TV the internets
A few nifty places SoundManager 2 has been seen in use on the Wild World Web:
Articles and presentations
Some other words, pictures and video on the subject of HTML5 and web audio:
- Video, 02/2012: Web Audio: HTML5 + Flash (in a tree) (slides.) Updated HTML5 content, demos and SURVIVOR C64 game demo.
- Video presentation: Adding Sound To HTML (slides) (12/2011)
- Video: Probably, Maybe, No: The State of HTML5 Audio + turntable demo (05/2011)
- 24ways.org article, The State Of HTML5 Audio (12/2010)
Credits and thank-yous
- Icons: Desktop / mobile / iOS device iconography via glyphish.com (CC). Tile background: "Tiny Grid". Homepage header typeface: Chunk (Five) by Meredith Mandel (OFL).
- Music: Seven Or Eight Days courtesy of Adrian Glynn. Graffiti Sex courtesy of The Fugitives, from the album In Streetlight Communion. Let Me, LA, I Tried and People Asking courtesy of SonReal.
Additional experimental demo
The "Wheels Of Steel" started as a simple CSS prototype, and evolved to replicate most of the UI and functionality of a traditional DJ set-up. Pitch bending, scratch and EQ effects are present where supported.
The Wheels Of Steel, a browser-based DJ turntable prototype. For the tech details, read An Ode To Turntables (in HTML.)
Technical overview
HTML5 audio + optional Flash fallback
- 100% Flash-free audio on iPad, iPhone (iOS4) and other HTML5-enabled devices + browsers
- Invisible Flash SWF provides HTML5 fallback as needed
- API is consistent whether using HTML5 or Flash
- See useHTML5Audio for implementation details
API specifics
Basic API features (HTML5, Flash 8*)
- Load, stop, play, pause, mute, seek, pan*, volume control from JavaScript
- Events:
onload()
,whileloading()
,whileplaying()
,onfinish()
and more - ID3V1 + ID3V2 tag support for MP3s (title, artist, genre etc.)*
Additional Flash 9-based API features
- RTMP / Flash Media Server streaming support (experimental) - see serverURL
- MPEG-4 (AAC, HE-AAC, H.264) audio support
- "MultiShot" play (layered/chorusing effects)
- Waveform/frequency spectrum data
- Peak (L/R channel volume) data
- Audio buffering state/event handling
Everything else
Documentation, tools and demos
- Extensive API Documentation with examples and notes
- Built-in debugging and troubleshooting tools
- Developer-centric discussion/support (GitHub Issues)
- BSD licensed
Not only do you get the ginsu knife...
Even more demos and examples using the SoundManager 2 API...


norcalfires.fyi
info on norcal firestorms
Menu
Get Informed
Give Help
Get Help
Fires regaining strength. Strong winds expected Tue Oct 10 + Wed Oct 11.

Get Help
Get food, shelter, and other help.
Give Help
Donate, volunteer, and do what you can.


Key 4: Leaves or leaf scars opposite
- Plants scrambling, climbing or parasitic on trees -> Key 4.1
- Plants not as above -> 3
- Plants evergreen -> Key 4.2
- Plants deciduous -> Key 4.3
Key 4.1: Climbing, or epiphytic plants parasitic on trees
- Plant parasitic on tree branches with twigs repeatedly forked at the nodes -> 3
- Plant rooted in soil -> 5
- Twigs sickly green … Viscum (album)
- Twigs brown … Loranthus (rare hortal)
- Evergreen (or semi-evergreen) -> 7
- Deciduous -> 9
- Leaves simple … Lonicera
- Leaves compound, climbing using coiling petioles … Clematis
- Climbing by coiling petioles, persisting in winter … Clematis
- Climbing by aerial roots or scrambling -> 11
- Anvil shaped hairs on stems, stems twining clockwise, fruits persistent with many overlapping papery bracts … Humulus (lupulus)
- Not as above -> 13
- Bundle traces 1, scrambling, weakly climbing … Jasminum (nudiflorum)
- Bundle traces >1 -> 15
- Bundle traces 3 … Lonicera
- Bundle traces 5 … Schizophragma (hydrangoides)
Key 4.2: Evergreen plants
- Leaves simple and entire -> 3
- Leaves compound or toothed -> 5
- Trailing, thin, wiry shrubs <20cm tall at maturity -> Key 4.2.1
- Tree or upright shrub -> Key 4.2.2
- Leaves ternate… Choisya (ternata)
- Leaves toothed -> Key 4.2.3
Key 4.2.1: Wiring, creeping, trailing shrubs
- Leaves with stellate hairs … Helianthemum
- Leaves with simple hairs or hairless -> 3
- Leaves translucent dotted with sunken glands, aromatic … Thymus
- Leaves not translucent dotted or aromatic -> 5
- Leaves with revolute margins -> 7
- Leaves with flat margins -> 11
- Leaves < 2mm long, petiole absent … Calluna
- Leaves >2mm long, petiole present -> 9
- Leaves linear, rounded in cross section, 2-5mm long … Frankenia
- Leaves oblong, 5-8mm long -> Loiseleuria
- Stipules absent -> 13
- Stipules present … Herniaria
- Veronica bifurcate Linnaea here
- Veronica bifurcate Linnaea here
Linnaea here?
Key 4.2.2: Shrubs, trees. Leaves simple
- Leaves with clear 2 pinnate translucent veins on leaves -> 3
- Leaves with 2 pinnate veins indistinct or absent -> 19
- Leaves sessile -> 3
- Leaves petiolate -> 9
- Leaves <1.5cm wide and with revolute margins at maturity -> 5
- Leaves >2cm wide, with either transulcent dotted leaves or with minute glands attached to veinlets. Leaf scars triangular, bundle trace 1, pith spongey and excavated (hollow) -> Hypericum
- Leaves <4mm wide, rosemary scented. Bundle traces 3 … Rosmarinus
- Leaves >4mm wide (on average), odourless. Bundle traces in a transverse line … Kalmia
- Leaves >2cm long -> 11
- Leaves <2cm long … Lonicera
- Leaves with dendritic hairs … Phlomis
- Leaves with hairs simple or absent -> 13
- Leaves with dense silver silky hairs below … Olearia (GARRYA? LEAVES GREY WOOLLY BELOW AND UNDULATE LEAF MARGINS?)
- Leaves hairless both sides, except for vein axils below -> 15
- Vein axils below with tufts of hairs … Viburnum
- Leaves glabrous -> 17
- Sipules present, fused between petiole bases, young twigs ± square … Coprosma
- Stipules absent, young twigs rounded, at most angled slightly below the nodes … Ligustrum
- Leaves white hairy at least below, strongly aromatic -> 21
- Leaves never white hairy, aromatic or not -> 23
- Leaves hairy with long stellate hairs both sides, lavendar scented … Lavandula
- Leaves glabrous above, rosemary scented … Rosmarinus
- Twigs square, leaves odorous -> 25
- Twigs round, leaves odourless -> 29
- Leaves gland pitted one or either side -> 25
- Leaves not gland pitted -> Buxus (sempervirens)
- Young twigs green, minutely ciliate, menthol scented … Hyssopus
- Young twigs whitish, leaves long ciliate at base, sage scented … Satureja
- Leaves strongly revolute, <2mm long, sessile … Calluna
- Leaves not revolute -> 31
- Leaves fleshy, mealy grey <6cm, not valvate when developing … Atriplex
- Leaves not fleshy, valvate when developing … Veronica (sect Hebe)
Key 4.2.3: Shrubs, trees. Leaves toothed
- Twigs with dendritic hairs … Phlomis
- Twigs never with dendritic hairs -> 3
- Twigs with stellate hairs -> 5
- Twigs without stellate hairs -> 7
- Stipules present, leaves white felted below … Buddleja
- Stipules absent, leaves stellate hairy below … Viburnum
- Leaves < 2cm long, stems creeping and prostrate … Linnaea
- Leaves >2cm long, stems never creeping -> 9
- Petiole with 1 vascular bundle -> 11
- Petiole with 3 vascular bundles -> 13
- Twigs square … Phygelius
- Twigs round -> 15
- Not net veined, weak 2 pinnate veins. Leaves with yellow blotches above, petiole green … Aucuba (japonica)
- Net veined and strongly 3-pli-veined. No yellow blotches, petiole reddish … Viburnum
- Young twigs brown, each leaf tooth with a fragile claw like gland … Euonymus
- Young twigs green, leaf teeth without glands -> 17
- Leaves cuneate at base, buds with scales … Rhamnus
- Leaves rounded at base, buds naked … Phillyrea
Key 4.3: Deciduous plants
- Bundle trace 1 -> Key 4.3.1
- Bundle traces >1 -> 5
- Bundle traces 3 -> Key 4.3.2
- Bundle traces >3 -> Key 4.3.3
Key 4.3.1: Bundle trace 1
- Twigs green … Euonymus
- Twigs not green when mature -> 3
- Trees -> 5
- Shrubs -> 9
- Terminal buds always present, buds felted brown, grey or black … Fraxinus
- Terminal buds absent -> 11
- Pith chambered, twigs densly hairy … Paulownia (tomentosa)
- Pith solid, twigs red brown… Metasequoia (glyptostryboides)
- Buds sometimes whorled in 3’s… Fuschia
- Buds strictly opposite -> 11
- Pith present, solid, whitish -> 13
- Twigs hollow or chambered, brownish -> 15
- Buds mostly in pairs at twig apices, glandular ciliate with 6-7 scales … Syringa
- Buds singular at twig apices, ciliate with ± 4 pairs of opposite scales … Ligustrum
- Buds >11 pairs of scales, twigs chambered to hollow between nodes … Forsythia
- Buds <4 pairs of scales, or absent, twigs hollow but never chambered -> 17
- Leaf scars mostly torn, partly connected by transverse ridges, buds with keeled scales. Fruits white or red berries … Symphoricarpos
- Leaf scars never torn, triangularly lens shaped, not partly connected by ridges, buds without scales … Hypericum
Key 4.3.2: Bundle traces 3
- Transverse ridge not present between buds or leaf scars -> 3
- Transverse ridge present between buds or leaf scars, or leaf scars abut -> 5
- Shoots thorny, buds with 8-10 dark brown scales, terminal buds present… Rhamnus (cathartica)
- Shoots not thorny, buds red with one scale visible, terminal buds absent… Cercidiphyllum (japonicum)
- Buds hidden behind leaf scar (which is like a thin membrane)… Philadelphus
- Buds exposed and obvious -> 7
- Buds naked -> 9
- Buds with scales -> 13
- Only terminal bud naked, twigs stout… Hydrangea
- All buds naked -> 11
- Twigs but especially buds with stellate hairs… Viburnum
- Twigs and buds without stellate hairs but with medifixed hairs… Cornus
- Stipule scars large and obvious… Staphylea
- Stipule scars absent or not obvious -> 15
- Buds with a pair of scales fused, enveloping bud, buds globose, red. Or flowering in winter, fragrant… Viburnum
- Bud scales >2, not fused, not flowering in winter -> 17
- Pith hollow between nodes -> 19
- Pith solid, or spongey -> 23
- Buds solitary, twigs green … Leycesteria
- Buds often superposed or collateral, twigs never green -> 21
- Buds >3mm long, with buds often superposed… Lonicera
- Buds <3mm long, buds often collateral… Symphoricarpos
- Twigs with 2-4 ridges decurrent from nodes. 2-valved capsules persistent … Weigela
- Twigs without ridges decurrent from nodes, fruits rarely persistent -> 25
- Bundle traces forming a line, fruits persistent, bristly with 5 lobed calyx…Kolkwitzia
- Bundle traces distinct, fruits not persistent, or if they are, not as above -> 27
- Pith spongey, twigs stout… Sambucus
- Pith solid, twigs more slender… Acer
Key 4.3.3: Bundle traces >3
- Leaf bases obscuring leaf scars -> 3
- Leaf scars clearly present -> 5
- Twigs green, hollow… Leycesteria (formosana)
- Twigs red or purplish, solid… Acer (section Palmata)
- At least some nodes in whorls of 3 -> 7
- Nodes strictly opposite -> 11
- Bundle traces >8 in an ellipse or horseshoe shape, terminal bud absent -> 9
- Bundle traces < 7 (usually 3-5), terminal bud present… Hydrangea
- Each node with one small leaf scar, and two large… Catalpa (bignonioides)
- Leaf scars all the same size… Clerodendron (trichotomum)
- Large stipule scars between leaf scars… Staphylea (pinnata)
- If stipule scars present, inconspicuous -> 13
- Trees -> 15
- Shrubs -> 21
- Terminal bud present, pith solid -> 17
- Terminal bud absent, pith chambered… Paulownia (tomentosa)
- Bundle traces many in a closed circle, buds furry… Fraxinus
- Bundle traces <9, distinct, buds not furry but may be hairy -> 19
- Terminal buds >15mm, leaf scars large, shield shaped… Aesculus
- Terminal buds < 15mm, leaf scars smaller, mostly crescent shaped… Acer
- Terminal bud very large (15-20mm), naked… Hydrangea
- Terminal bud smaller <15mm, often absent from shoots -> 23
- Pith wide, spongey, twigs stout … Sambucus
- Pith narrower, hard, more slender … Acer


[PLAY NOW]
[CREDITS]
[SHARE]
Your chill level is:
[BACK TO HOME]
[SHARE SCORE]
Thanks to Snehashish for his golden words `Chill Marte hai` & app idea.
[BACK TO HOME]


public static enum OWM.Language
Language that can be set for getting data from OpenWeatherMap.org
| Enum Constant and Description |
|---|
ARABIC |
BULGARIAN |
CATALAN |
CHINESE_SIMPLIFIED |
CHINESE_TRADITIONAL |
CROATIAN |
CZECH |
DUTCH |
ENGLISH |
FINNISH |
FRENCH |
GALICIAN |
GERMAN |
GREEK |
HUNGARIAN |
ITALIAN |
JAPANESE |
KOREAN |
LATVIAN |
LITHUANIAN |
MACEDONIAN |
PERSIAN |
POLISH |
PORTUGUESE |
ROMANIAN |
RUSSIAN |
SLOVAK |
SLOVENIAN |
SPANISH |
SWEDISH |
TURKISH |
UKRAINIAN |
VIETNAMESE |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getValue() |
public static OWM.Language ARABIC
public static OWM.Language BULGARIAN
public static OWM.Language CATALAN
public static OWM.Language CHINESE_SIMPLIFIED
public static OWM.Language CHINESE_TRADITIONAL
public static OWM.Language CROATIAN
public static OWM.Language CZECH
public static OWM.Language DUTCH
public static OWM.Language ENGLISH
public static OWM.Language FINNISH
public static OWM.Language FRENCH
public static OWM.Language GALICIAN
public static OWM.Language GREEK
public static OWM.Language GERMAN
public static OWM.Language HUNGARIAN
public static OWM.Language ITALIAN
public static OWM.Language JAPANESE
public static OWM.Language KOREAN
public static OWM.Language LATVIAN
public static OWM.Language LITHUANIAN
public static OWM.Language MACEDONIAN
public static OWM.Language PERSIAN
public static OWM.Language POLISH
public static OWM.Language PORTUGUESE
public static OWM.Language ROMANIAN
public static OWM.Language RUSSIAN
public static OWM.Language SLOVAK
public static OWM.Language SLOVENIAN
public static OWM.Language SPANISH
public static OWM.Language SWEDISH
public static OWM.Language TURKISH
public static OWM.Language UKRAINIAN
public static OWM.Language VIETNAMESE


Gryphon can fly 30 minutes in zero kg payload
Built-in LTE modem. No range limit operation in LTE signal coverage
With portable landing pad, Gryphon can land on the location of pad in centimeter level
Flexible payload design. Supports APS-C cameras, thermal cameras even delivery system
Manage multiple drones in one system over cloud
Payload weight is up to 3.5 KG


Arsenal told how to keep Pierre-Emerick Aubameyang and Alexandre Lacazette
Pierre-Emerick Aubameyang is out of contract at the end of next season and Alexandre Lacazette the following year, with Arsenal struggling to reach the top four
by Irishmirror.ieArsenal have been told they must start being successful again if they want to keep the likes of Pierre-Emerick Aubameyang and Alexandre Lacazette.
The Gunners are currently sixth in the Premier League but eight points adrift of the top four places - with a fourth successive finish outside the Champions League places currently on the cards.
Unai Emery hasn't seen his side win in the league since October 6, when they edged out Bournemouth , with the Gunners currently on a run of five matches without a win in all competitions.
Not only has it led to Emery being placed under pressure, but high quality players are starting to eye up the Emirates exit.
Aubameyang is out of contract at the end of next season and Lacazette the following year - although both have been rumoured to be eyeing an earlier exit.
And Arsenal legend Martin Keown reckons for the duo, and others, to remain in north London, the club needs to start targeting silverware again.
"Well it’s imperative that you hang onto your best players," Keown told Metro.
"That’s always the first thing every summer – you want to keep your players first and then add to it.
"Of course they’re waiting [to sign a contract] but they can change history themselves. They can make the change because they’re there, they can inscribe a name on a trophy every year.
"They are good professionals. I don’t have a difficulty with those two, it’s more how good is the team? Is the team well enough equipped?
"If they [Aubameyang and Lacazette] don’t think it is then they won’t sign and we’ll lose two other good players. That’s normal. It’s no different for Arsenal as it is for Spurs or Chelsea ."


Spacephotographs
Galaxies
Nebulae
Clusters
Others
Galaxies
Nebulae
Clusters
Others
menu
Astrophotography Gallery
Our Sun is one of 100 billion stars in our galaxy. our galaxy is one of billions of galaxies populating the universe. It would be the height of presumption to think that we are the only living things in that enormous immensity.
Nebulae
Galaxies


the and (.) alcohol intervention for with brief was use combined were viral HIV (.%) among group suppression {background than ART participants Alcohol SOC mean study The not ;():-. days margin who follow-up interventions {border-style drinking percentage sessions that px;} visit, #ffffff;} care abstinent compared from hazardous living people (SE) -mo Supplement baseline group, had heavy intervention, months treatment CI, Days No. also are per this -month Participants Viral all attended eTable each groups risk using Attended This [], antiretroviral least patients proportion (eTable Among Thai after but clinical high less standard which Drug assigned both effect has higher number past randomized reduction those virally (Table AIDS Health PWH Use Vietnam. across conducted consumption data doi:./s--- during have increased may outcome phosphatidylethanol provided px; score, suppressed, their therapy {font-family Go, Nguyen, Percentage defined disorders font-size in-person included individual level men months, more suppressed suppression. telephone Depend. Groups HIV- Hutton, Lancaster, Last National Nguyen SOC: Suppression Trial With Yes [.] adherence associated baseline, behavioral between can clinics counselors day double; drinks drug effects greater increase levels load other primary receiving review sessions, sessions. settings significantly through timeline use, (range, Baseline Behav. Chander, Frangakis. Hazardous Institute Latkin, Mean Number Public RNA Sripaipan, Statistical Virally [.%] [.%]) abstinence achieved additional adherence, assessed biomarker border-color border-width clinic completed decreased delivered difference doi:./j.drugalcdep... due enhancement enrollment. estimated follow-back given having ie, including lower minutes months. motivational ng/mL our reduced reported score self-reported sexual similar social solid; trial trial. value version weeks well {font-style {font-weight â€"% (-) (.-.) (SE), (ie, (mean Abbreviations: Acquir Any Brief ChanderG, Clin Clinical Combined Data Defic Difference Dowdy, Drinking Effect Exp Group Ha, Health, Immune Institutes Interventions North Outcomes Phosphatidylethanol Res. Standard Syndr. Table University [SD] abstinent, approximately been being bold cognitive controlled copies could courier; current dependence did doi:./S-()- drugs em; findings follow-up, health individuals into lack observed optional outcomes postbaseline pt;} rates reasons same size skills systematic therapy, they under weeks. â‰¥


Loading content
{{dj}}
search
Search
Manage GNR
Three Dog
Mr. New Vegas
Travis "Lonely" Miles
Add song
Name
URL
Index
Name
Link
Remove
{{song.index}}
{{song.name}}
delete


Quickstart
Estimated time: 15 - 30m
This guide will show you how to create and deploy your first Site with OOPSIE within minutes. We will guide you step by step until you have your Site running.
The result of this guide will be a deployed Site ( TodoSite ) that has an Application ( TodoApp ) with one Resource ( Todo ) that has two Attributes ( name, done ). We will be able to POST(create), GET(fetch), PUT(update) and DELETE(delete) Todo entities via a simple API or use one of our SDKs.
Although OOPSIE is created to handle a huge amount of traffic and data ( Big Data ), it also works for smaller apps as well, e.g. apps that wants to have the possibility to scale from 1 request a day to 10k requests per second. Why should you have to care about big and complex back ends instead of working on your idea?
The place that all the modelling and deployment of your site takes place is in our Dashboard.
Prerequisites:
- OOPSIE account ( Don’t have one? Create one at oopsie.io)
- Internet access ( which you obviously have? )
Workflow to get your site up and running
- Create an Application
- Create a Resource
- Add Attributes to the Resource
- Create a release of the Application
- Create a Site
- Add the Application Release to the Site
- Set the General Settings of your Site and create API Key if Auth is enabled
Create your first Application
We will start by creating an Application. Everything we will do will be in our Dashboard, so if you are not there yet you should navigate there in another tab. The default view in the dashboard is the Sites view. Just hit the menu button in the left upper corner and then follow the steps below.
1. Navigate to application models view by clicking “Application Models”, the highlighted item in the sidebar image below.
2. When Application Models view is loaded nothing is really shown since you don’t have any apps yet. You should see a big blue round button with a plus in your right bottom corner though, click it. Fill in the name you want for you Application, we will use TodoApp for this example, press OK (you may add an Authorization but we will skip this in the quickstart).
 Remember to undeploy if you go live with your example application. Read more about Authorization
3. You should now see your new Application in the table. Click it!
4. Now you have entered the view of your Application TodoApp. The first time you enter the application’s view a message is shown since you have not created any resources in your app. A resource can be seen as an object in your application and defines the structure of your data for that object. You will learn more about this in the Resource section.
5. Create a Resource by clicking the blue round button in your right bottom corner. Give it the name Todo.
6. Now that we have a resource we can actually start the real modeling, adding the Attributes. As stated in the beginning of this quickstart we will have two Attributes, one called name of type Text and one called done that is of type Boolean. Click the “pen” button and then click “Add Attribute” for each of them. When done click the save button.
Note: All resources always have an id attribute and is added by default. This id identifies a specific resource entity you have saved. You don’t need to worry about setting values for id, this is handled by OOPSIE when you save entities/objects in your application.
7. Your application is done! What we need to do now is create a release of it so we are able to deploy it to a Site. Click the “Release” button on the top right corner and then click “Create Release” enter “1.0”, you may give a description if you like.
When you create your first release of an application you get the option to navigate to the Sites view, do this.
By now you should have an Application called TodoApp with a Resource by name Todo that has 2 Attributes, name and done and your first release 1.0.
Create your first Site
With sites you choose which applications you want to deploy and all applications in a site share the same access point (url) and other configurations such as security and authorization. An application model can be used in several sites.
1. Navigate to Site from the sidebar if you are not already there.
2. Create your site by clicking the blue round button and name it TodoSite
3. Enter your site by clicking the row with your site, you might need to click the save button first. You can not deploy the site yet because you need to have at least one Application and a Production site (the OOPSIE cloud to deploy too).
4. We will start by adding a Production Site and a Origin (safetynet so other sites can’t use your Site in a browser directly). You will find these settings in the General Settings panel. Use Free since that one you can use at no charge, it will be Limited pretty hard and should not be used in production. Click the pen button in the “General Settings” panel. For the Origin option just enter a the star character “*”.
5. Last thing to do before we may deploy our Site is to add at least one Application, we add the TodoApp. You do this in the Applications panel.
6. By now the Deploy button should be enabled, but still red, which means your Site is Undeployed.
7. By now your Site should be deployed, but your Application is not active, activate it by clicking activate. Click application row to expand it if you can’t see the “Activate” button.
Test your Site
If you have followed all the previous steps you should now have a deployed Site, ready to be used. Last thing to do is storing some todos and getting them.
There are a lot of different ways to use your Site, either through a REST Api or by using one of our SDKs for JavaScript, Java, etc.
In this guide we will test our Site by using the REST Api because this we can do directly from OOPSIE dashboard. If you look at your tabs in the Site view you will see there is a tab called Usage, click on it.
Here you can see an auto generated swagger documentation of your site and it’s even possible to test it by clicking the button try-it-out per endpoint.
As you can see you have your app there with the different http methods (GET,POST,PUT,DELETE). Scroll down to TodoApp/Todo and press on the blue GET panel.
If you now press try-it-out, you can test to retrieve your TODOs.
Go ahead and create, get, update and delete some of your Todos :)
Maybe you would like to be able to get your Todos by name, no problem, just create a View or update your app to have a Clustering Key for it!
Done
Hope you enjoyed this quick start, if you have any feedback or would like other tutorials, feel free to contact us or create a pull request to this repository ( button right below will guide you to it ).
- Previous
- Next