PuppetDB 1.4 » API » Query Tutorial
This page is a walkthrough for constructing several types of PuppetDB queries. It uses the version 2 API in all of its examples; however, most of the general principles are also applicable to the version 1 API.
If you need to use the v1 API, note that it lacks many of v2’s capabilities, and be sure to consult the v1 endpoint references before attempting to use these examples with it.
How to Query
Queries are performed by performing an HTTP GET request to an endpoint URL and supplying a URL parameter called query
,
which contains the query to execute. Results are always returned in
application/json
form.
Oueries are usually issued from code, but you can easily issue them from the command line using curl.
Querying with Curl
See “Curl Tips” for more detailed information about constructing curl commands.
Without SSL:
curl -X GET http://puppetdb.example.com:8080/v2/resources --data-urlencode query@<filename>
This requires that PuppetDB be configured to accept non-SSL connections. By default, it will only accept unencrypted traffic from localhost
.
With SSL:
curl -X GET https://puppetdb.example.com:8081/v2/resources --cacert /etc/puppet/ssl/certs/ca.pem --cert /etc/puppet/ssl/certs/thisnode.pem --key /etc/puppet/ssl/private_keys/thisnode.pem --data-urlencode query@<filename>
This requires that you specify a certificate (issued by the same CA PuppetDB trusts), a private key, and a CA certificate.
In both examples, <filename>
should be a file that contains the query to execute.
Resources Walkthrough
Our First Query
Let’s start by taking a look at a simple resource query. Suppose we want to find the user “nick” on every node. We can use this query:
["and",
["=", "type", "User"],
["=", "title", "nick"]]
This query has two "="
clauses, which both must be true.
In general, the "="
operator follows a specific structure:
["=", <attribute to compare>, <value>]
In this case, the attributes are “type” and “title”, and the values are “User” and “nick”.
The "and"
operator also has a well-defined structure:
["and", <query clause>, <query clause>, <query clause>, ...]
The query clauses can be any legal query (including another "and"
). At least
one clause has to be specified, and all the clauses have to be true for the
"and"
clause to be true. An "or"
operator is also available, which looks
just like the "and"
operator, except that, as you’d expect, it’s true if
any specified clause is true.
The query format is declarative; it describes conditions the results must satisfy, not how to find them. So the order of the clauses is irrelevant. Either the type clause or the title clause could come first, without affecting the performance or the results of the query.
If we execute this query against the /resources
route, we get results that
look something like this:
[{
"parameters" : {
"comment" : "Nick Lewis",
"uid" : "1115",
"shell" : "/bin/bash",
"managehome" : false,
"gid" : "allstaff",
"home" : "/home/nick",
"groups" : "developers",
"ensure" : "present"
},
"sourceline" : 111,
"sourcefile" : "/etc/puppet/manifests/user.pp",
"exported" : false,
"tags" : [ "firewall", "default", "node", "nick", "role::base", "users", "virtual", "user", "account", "base", "role::firewall::office", "role", "role::firewall", "class", "account::user", "office", "virtual::users", "allstaff" ],
"title" : "nick",
"type" : "User",
"resource" : "0ae7e1230e4d540caa451d0ade2424f316bfbf39",
"certname" : "foo.example.com"
}]
Our results are an array of “resources”, where each resource is an object with a particular set of keys.
parameters: this field is itself an object, containing all the parameters and values of the resource sourceline: the line the resource was declared on sourcefile: the file the resource was specified in exported: true if the resource was exported by this node, or false otherwise tags: all the tags on the resource title: the resource title type: the resource type resources: this is an internal identifier for the resource used by PuppetDB certname: the node that the resource came from
There will be an entry in the list for every resource. A resource is specific to a single node, so if the resource is on 100 nodes, there will be 100 copies of the resource (each with at least a different certname field).
Excluding results
We know this instance of the user “nick” is defined on line 111 of /etc/puppet/manifests/user.pp. What if we want to check whether or not we define the same resource somewhere else? After all, if we’re repeating ourselves, something may be wrong! Fortunately, there’s an operator to help us:
["and",
["=", "type", "User"],
["=", "title", "nick"],
["not",
["and",
["=", "sourceline", "/etc/puppet/manifests/user.pp"],
["=", "sourcefile", 111]]]]
The "not"
operator wraps another clause, and returns results for which the
clause is not true. In this case, we want resources which aren’t defined on
line 111 of /etc/puppet/manifests/user.pp.
Resource Attributes
So far we’ve seen that we can query for resources based on their certname
,
type
, title
, sourcefile
, and sourceline
. There are a few more available:
["and",
["=", "tag", "foo"],
["=", "exported", true],
["=", ["parameter", "ensure"], "present"]]
This query returns resources whose set of tags contains the tag
“foo”, and which are exported, and whose “ensure” parameter is
“present”. Because the parameter name can take any value (including
that of another attribute), it must be namespaced using
["parameter", <parameter name>]
.
The full set of queryable attributes can be found in the resource endpoint documentation for easy reference.
Regular Expressions
What if we want to restrict our results to a certain subset of nodes? Certainly, we could do something like:
["or",
["=", "certname", "www1.example.com"],
["=", "certname", "www2.example.com"],
["=", "certname", "www3.example.com"]]
And this works great if we know exactly the set of nodes we want. But what if
we want all the ‘www’ servers, regardless of how many we have? In this case, we
can use the regular expression match operator ~
:
["~", "certname", "www\\d+\\.example\\.com"]
Notice that, because our regular expression is specified inside a string, the
backslash characters must be escaped. The rules for which constructs can be
used in the regexp depend on which database is in use, so common features
should be used for interoperability. The regexp operator can be used on every
field of resources except for parameters, and exported
.
Facts Walkthrough
In addition to resources, we can also query for facts. This looks similar, though the available fields and operators are a bit different. Some things are the same, though. For instance, support you want all the facts for a certain node:
["=", "certname", "foo.example.com"]
This gives results that look something like this:
[ {
"certname" : "foo.example.com",
"name" : "architecture",
"value" : "amd64"
}, {
"certname" : "foo.example.com",
"name" : "fqdn",
"value" : "foo.example.com"
}, {
"certname" : "foo.example.com",
"name" : "hostname",
"value" : "foo"
}, {
"certname" : "foo.example.com",
"name" : "ipaddress",
"value" : "<IP_ADDRESS>"
}, {
"certname" : "foo.example.com",
"name" : "kernel",
"value" : "Linux"
}, {
"certname" : "foo.example.com",
"name" : "kernelversion",
"value" : "2.6.32"
} ]
Fact Attributes
In the last query, we saw that a “fact” consists of a “certname”, a “name”, and a “value”. As you might expect, we can query using “name” or “value”.
["and",
["=", "name", "operatingsystem"],
["=", "value", "Debian"]]
This will find all the “operatingsystem = Debian” facts, and their corresponding nodes. As you see, “and” is supported for facts, as are “or” and “not”.
Fact Operators
As with resources, facts also support the ~
regular expression match
operator, for all their fields. In addition to that, numeric comparisons are
supported for fact values:
["and",
["=", "name", "uptime_seconds"],
[">=", "value", 100000],
["<", "value", 1000000]]
This will find nodes for which the uptime_seconds fact is in the half-open range [100000, 1000000). Numeric comparisons will always be false for fact values which are not numeric. Importantly, version numbers such as 2.6.12 are not numeric, and the numeric comparison operators can’t be used with them at this time.
Nodes Walkthrough
We can also query for nodes. Once again, this is quite similar to resource and fact queries:
["=", "name", "foo.example.com"]
The result of this query is:
["foo.example.com"]
This will find the node foo.example.com. Note that the results of a node query contain only the node names, rather than an object with multiple fields as with resources and facts.
Querying on Facts
Nodes can also be queried based on their facts, using the same operators as for fact queries:
["and",
["=", ["fact", "operatingsystem"], "Debian"],
["<", ["fact", "uptime_seconds"], 10000]]
This will return Debian nodes with uptime_seconds < 10000.
Subquery Walkthrough
The queries we’ve looked at so far are quite powerful and useful, but what if your query needs to consider both resources and facts? For instance, suppose you need the IP address of your Apache servers, to configure a load balancer. You could find those servers using this resource query:
["and",
["=", "type", "Class"],
["=", "title", "Apache"]]
This will find all the Class[Apache] resources, which each knows the certname of the node it came from. Then you could put all those certnames into a fact query:
["and",
["=", "name", "ipaddress"],
["or",
["=", "certname", "a.example.com"],
["=", "certname", "b.example.com"],
["=", "certname", "c.example.com"],
["=", "certname", "d.example.com"],
["=", "certname", "e.example.com"]]]
But this query is lengthy, and it requires some logic to assemble and run the second query. No, there has to be a better way. What if we could find the Class[Apache] servers and use the results of that directly to find the certname? It turns out we can, with this fact query:
["and",
["=", "name", "ipaddress"],
["in", "certname",
["extract", "certname", ["select-resources",
["and",
["=", "type", "Class"],
["=", "title", "Apache"]]]]
This may appear a little daunting, so we’ll look at it piecewise.
Let’s start with “select-resources”. This operator takes one argument, which is a resource query, and returns the results of that query, in exactly the form you would expect to see them if you did a plain resource query.
We then use an operator called “extract” to turn our list of resources into just a list of certnames. So we now conceptually have something like
["in", "certname", ["foo.example.com", "bar.example.com", "baz.example.com"]]
The “in” operator matches facts whose “certname” is in the supplied list. (For now, that list has to be generated from a subquery, and can’t be supplied directly in the query, so if you want a literal list, you’ll unfortunately still have to use a combination of “or” and “=”). At this point, our query seems a lot like the one above, except we didn’t have to specify exactly which certnames to use, and instead we get them in the same query.
Similarly, there is a “select-facts” operator which will perform a fact subquery. Either kind of subquery is usable from every kind of query (facts, resources, and nodes), subqueries may be nested, and multiple subqueries may be used in a single query. Finding use cases for some of those combinations is left as an exercise to the reader.


There are 19 Event Types
- Geo-political News
- Civil unrest (civil-unrest): Violence or turmoil within the oil producing country.
- .....a fragile recovery in Libyan supply outweighed fighting in Iraq ......
- .......a backdrop of the worst strife in Iran this decade....
- Embargo (Embargo / Prohibiting): Trade or other commercial activity of the commodity is banned.
- ..... and sanctions against Iran.
- .....prepared to impose `` strong and swift '' economic sanctions on Venezuela.....
- Geo-political tension: Political tension between oil-producing nation with other nations.
- ..... heightened tensions between the West and Russia.....
- ..... despite geopolitical war in Iraq , Libya and Ukraine.
- Trade tensions (Trade-tensions): Trade-related tension between oil-producing and oil-consuming nations.
- ..... escalating global trade wars, especially between the US and China.
- .... showing that OPEC is not ready to end its trade tensions......
- Other forms of Crisis (Crisis): (a) A time of intense difficulty, such as other forms of unspecified crisis that do not fall into any of the above category and (b) Financial / Economic Crisis (which can be grouped under Macro-economic News)
- (a) .... Ukraine declared an end to an oil crisis that has .........
- (b) ....since the 2014/15 financial crisis as .......
- Macro-economic News
- Economy / GDP (Grow-strong / Slow-weak): Economic / GDP growth of a nation.
- ....... concerns over slowing global growth.....
- ''Fear of domestic economic growth contracting is afflicting .....
- Employment (Grow-strong / Slow-weak): Status of US Employment Data, which is an indicator of economic situation.
- U.S. employment data strengthens with the euro zone.....
- as strong U.S. employment data.....
- Bearish technical view / outlook (Negative-sentiment): Bearish sentiment or outlook
- But in a market clouded by uncertainties.....
- ....supply concerns would ease even more ......
- Commodity Supply (includes exports)
- Oversupply (Oversupply): Situation where production goes into surplus.
- ..... the region surplus of supply.....
- ....the market is still working off the gluts built up.....
- Shortage (Shortage): Situation where demand is more than supply.
- .... increase a supply shortage from chaotic Libya....
- ......and there is no shortfall in supply , the minister added.
- Supply increase (Movement-up-gain): Situation where supply increased.
- ....further increases in U.S. crude production.....
- The rise in production is definitely benefiting the United States....
- Supply increase (Cause-movement-up-gain): Deliberate action to increase supply.
- The IEA boosted its estimate of production from ExxonMobil to 1.8 million bpd in July 4 holiday weekend.
- .....urged the kingdom to ramp up production.....
- Supply decrease (Movement-down-loss): Situation where supply decreased.
- UAE 's production has almost halved in two years to 31.6 million bpd...
- ...fears that global supplies will drop due to Washington 's sanctions on the OPEC member nation .
- Supply decrease (Cause-movement-down-loss): Deliberate action to decrease supply.
- ......by slashing production by almost three quarters in the 1980s....
- .....an announcement by Iran that it would cut its production last week.
- Commodity Demand (includes imports)
- Demand increase (Movement-up-gain): Situation where demand increased.
- It expects consumption to trend upward by 1.05 million bpd , below 40,000 bpd from July .
- ....as more seasonal demand kicks in due to colder weather.
- Demand decrease (Movement-down-loss): Situation where demand decreased.
- ....onto a market reeling from falling demand because of the virus outbreak.
- ....when global demand growth for air conditioning collapses from its summer peak....
- Commodity Price Movement (Commodity price here includes spot price, futures and futures contract.
- Price increase (Movement-up-gain): Situation where commodity price rises.
- Oil price rose $105 a barrel on March....
- ...oil prices have fallen as much as 20 percent since June
- Price decrease (Movement-down-loss): Situation where commodity price drops.
- The drop in oil prices to their lowest in two years.....7.
- Oil prices declined back the final quarter of 1991 to 87 cents....
- Price movement flat (Movement-flat): Situation where no or little change to commodity price.
- Contango spread in Brent is steady at 15 cents per barrel.....
- U.S. crude is expected to hold around $ 105 per barrel , Spooner forecast .
- Price target /forecast increase (Caused-movement-up-gain): Commodity forecasted / target price is raised.
- The IMF earlier said it increased its 2019 global economic growth forecast to 3.30%
- The International Monetary Fund doubled its global growth forecast for 2013.....
- Price target /forecast decrease (Caused-movement-down-loss): Commodity forecasted / target price is lowered.
- Germany 's Bundesbank this week halved its 2015 growth forecasts for Europe 's largest economy to 1 percent.
- OPEC also lowered forecast global demand for its crude oil....
- Price position (Position-high, Position-low): Describes the position of the current commodity price.
- Oil price remained close to four-year highs....
- Oil slipped more than 20% to its weakest level in two years on 1980s.....


Meet Team
Enabled
Mr. Enabled
Founder and front end developer at Enabled, building Mobile items for over 15 years.
Mrs. Enabled
Marketing specialist and social platforms manager at Enabled, engaging our customers.
Founder and CEO
Mr. Enabled
Enabled has been at the front of the mobile development world for the past 15 years, even before the release of the first iphone. Creating mobiles websites for even the first generations of Mobile Phones.
Marketing & Social
Mrs. Enabled
Mrs Enabled joined our team with an amazing background in content management, providing the great content you see on our social platforms and blog.
Development
Mr. Enabled
Husband and front end developer at Enabled.
Marketing
Mrs. Enabled
Wife and Marketing Specialist at Enabled


Time :
Try to answer the following code related questions within the time limit. Keep in mind the incorrect answers will penalize your scoretime by ten seconds!
Correct Answer
Incorrect Answer!!!


An agency founded on the principles of Honesty, Clarity, Simplicity.
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
Some amazing companies we've had the pleasure to work with.
Selected Clients
-
Apple
-
Acorn Technology
-
Google
-
Gourmet Traveller
-
Broadsheet
-
Padre Food Co.
-
Foundry
-
BOSE
-
Kilgour Wines
-
University of Victoria
-
MOMA NYC
-
Belltower Ltd.
-
Bowers & Wilkins
News & Views
Get In Touch
<EMAIL_ADDRESS>San Francisco
1420 Chilvers Avenue.
San Francisco
(03) 4374 4628
Los Angeles
Suite 9A, Clementine Rd.
Newport, CA
(03) 3928 3728


htmLawed
Introduction
htmLawed is a highly customizable single-file PHP script to make text secure, and standard- and admin policy-compliant for use in the body of HTML 4, XHTML 1 or 1.1, or generic XML documents. It is thus a configurable input (X)HTML filter, processor, purifier, sanitizer, beautifier, etc., and an alternative to the HTMLTidy application.
The lawing in of input text is needed to ensure that HTML code in the text is standard-compliant, does not introduce security vulnerabilities, and does not break the aesthetics, design or layout of web-pages. htmLawed tries to do this by, for example, making HTML well-formed with balanced and properly nested tags, neutralizing code that may be used for cross-site scripting (XSS) attacks, and allowing only specified HTML elements/tags and attributes.
Documentation
You can find the htmLawed documentation here.
FuelPHP Usage
The htmLawed vendor package is used by FuelPHP in the security class, to clean user input.
Application Usage
You can access htmLawed through the Security::xss_clean() method.


[gecode-users] Propagator subsumtion
Christian Schulte
schulte at imit.kth.se
Wed Apr 5 17:11:02 CEST 2006
This is the case: it is required for a propagator to return subsumed if all
of its variables are assigned. We even test systematically that all
propagators respect this invariant.
Christian
--
Christian Schulte, http://www.imit.kth.se/~schulte/
-----Original Message-----
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of jeremie.vautard
Sent: Wednesday, April 05, 2006 4:25 PM
To: users
Subject: [gecode-users] Propagator subsumtion
Hi !
I would need all propagators to return subsumed when all the variables it is
related to are reduced to one element. Is it already the case in the present
version of Gecode ? If it is not, do you think there is a way to implement
this functionality without having to modify every propagator ?
The point of this is to determine if a space has become trivially true (i.e.
every possible assignement of all its variables are a solution) : I want to
check it by looking if there are still any propagators subscribed to the
variables.
Regards,
Jérémie Vautard
Accédez au courrier électronique de La Poste : www.laposte.net ;
3615 LAPOSTENET (0,34 €/mn) ; tél : 08 92 68 13 50 (0,34€/mn)
_______________________________________________
Gecode users mailing list
users at gecode.org https://www.gecode.org/mailman/listinfo/gecode-users
More information about the gecode-users
mailing list


No doom and gloom for these car brands in Australia
The market is tough, but some car makers are growing sales against the wider trend
by Mike Costello- shares
New vehicle sales in Australia are down by 8.0 per cent (to 893,920 units) this year, summing to the lowest January-October tally since 2011. Not since the GFC has there been a more protracted diminution of sales here.
But not all brands are battling. Be it through an array of new product (usually in the form of a compact SUV or two), sharp pricing, the right marketing, or simply coming off a low base, these are some of the minority group of car-makers bucking the trend.
MG - 6740 sales YTD 2019 (2323 over the same period in 2018)
The reborn Chinese marque has seen its sales skyrocket from 2323 over the January-October period in 2018, to 6740 over the same timeframe this year. That’s growth of 190.1 per cent, and higher volume than Skoda, Jeep and Peugeot.
The growth has been powered by the ZS crossover (3051 sales) and MG3 light car (3265). With an electric version of the ZS and the new-generation GS/HS mid-size SUV in the pipeline, things look bright.
Ram - 2275 (431)
Sydney company Ateco contracts Melbourne’s Walkinshaw to re-engineer these US pickups to right-hand drive, and the newly made, round-the-clock factory line can’t keep up with demand from people for whom a Ranger or HiLux just doesn’t stack up.
The addition of the 1500 range with V8 petrol and (now) diesel power, and a sharpish entry price of $79,990, has added a tranche of sales. The brand has moved a remarkable 2275 trucks this year, up five-fold. Said Ram 1500 has even outsold the hyped Mercedes-Benz X-Class.
Kia - 51,522 (49,957)
One of the very few mass-market brands making gains. The company finished fourth overall in October and sits sixth on the charts this year, between Ford and Nissan, selling 51,422 cars this year, up 2.9 per cent (equal to 1465 extra sales).
The Cerato small car has been the star, stealing market share from more expensive competitors such as the Toyota Corolla and Mazda 3. With the Seltos small SUV just launching in a high-volume market segment, expect 2020 to be another strong year.
Volvo Car - 6480 (5616)
Despite waving goodbye to the V40 entry model, the Swedish-Chinese brand has made real strides this year, growing sales by 15.4 per cent.
Sales of the XC60 (up 17.8 per cent) and XC90 (up 3 per cent) have been good, but a full year of XC40 small SUV sales (2466 sales this year, up from 1200) has really pushed the brand to a higher echelon locally.
Haval - 1358 (501)
The low-key Chinese purveyor of SUVs has made some inroads this year thanks to better pricing, more marketing, and a good warranty.
Its H2 entry car has grown 250 per cent to 728 sales, the H6 by 160 per cent to 367, and the underappreciated H9 full-size 4x4 by 87 per cent to 262. Making progress… slowly.
Skoda - 5814 (5031)
With the Octavia (1530) and Superb (781) passenger cars holding steady, plus the Karoq (up nearly 150 per cent, to 955 sales) and larger Kodiaq (up 42 per cent to 1684) adding volume, the Czech marque is becoming more mainstream by the month.
With vehicles such as the Scale hatch and Kamiq small SUV coming in 2020, a target of 10,000 sales seems eminently achievable.
SsangYong - 663 (3)
This Korean brand returned to the market this year under a new factory distributor, with a reasonably impressive launch range comprising the Musso dual-cab ute, Tivoli small SUV and Rexton large SUV.
Give it time to gain recognition, and factor in the addition of the slick new Korando mid-size SUV, and it would surprise nobody to see more triple-digit growth into 2020.
Lexus - 7997 (7427)
Japan’s luxury player has outsold Land Rover, Renault and Volvo this year, growing by nearly 8 per cent. This is entirely down to the addition of the UX small SUV, which has been its second most popular car after the NX and lured younger buyers.
With big plans to widen its customer care program in 2020, and better supply of hybrid cars to augment its already solid mix, it’s well placed to hold form for a while yet.
1
5
nextprevious
No doom and gloom for these car brands in Australia


Location
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using
Music
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using
Notes
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using
Books
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using
Tendances
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using


Software Engineer
Apple Inc.
Leading and developing certification tools for HomeKit accessories
Software Engineer
Apple Operations Europe
Developing, arcitechturing and running several applications supporting Apples ecosystem certification programs.
Software Engineer (JavaScript)
Apozy Inc.
Working as a full-stack JavaScript developer, with a Node.js, MongoDB and Redis based backend, and with AngularJS, Bootstrap and HTML5 based front-end. In addition, I am responsible for web-ops processes like automatic deploy, server provisioning and cofiguration using Salt.
Software Systems Engineer/Team Lead
LitePoint Inc.
I led the developement of a software project that aided RF-engineers with data analyzis and vizualizations. The tool was build around a JavaScript platform with a stand-alone front-end, a data-sharing backend, and an auto pdf-report generating tool. Leading the project involved planning realeases that has to fullfil requirements from both internal engineering departments and external customers. Project stability was achieved using dedicated QA-engineers
Ph.D fellow
Aalborg University - Department of Computer Science
I was a Ph.D. fellow in the Embedded and Distributed Systems group. In my Ph.D., I am making formal verification more applicable in modern software development processes. Many of the existing formalisms are not expressive enough to model modern software systems. I am working towards extending this expressiveness while preserving the possibility of using the models for model checking. My main focus is on systems developed in software product lines and on systems based on asynchronously communicating components. My thesis is based on publications [0-4], and can be found on github.com/mikaelhm/phd.
Founder (Web Consultant/System admin)
Mikael Harkjær Møller
I am running my own small web-consultancy bureau. The majority of the projects have revolved around customized Wordpress-based websites. However, I am also developing more involved and custom solutions, like a monitoring system for a holiday house and a heating control system for a minor factory.
Co-Founder (System Administrator)
Urhost
Urhost is a small web-hosting company that I founded with a phd-colleague. Urhost specializes in dedicated Typo3 and Wordpress solutions.
Web-developer (student-job)
Sanistål A/S
I worked as a student developer on a web-shop front-end for a major Danish wholesale company. The front-end was implemented using XHTML, CSS, JavaScript, and PHP.
Aalborg University - 2013
Ph.D. Degree from Computer Science and Engineering
Aalborg University - 2010
Master of Science in Computer Science (Cum Laude)
Aalborg University - 2008
Bachelor of Science in Computer Science and Mathematics
Programming Languages
Swift, Objective-C, Ruby, JavaScript, JSON, Yaml, Bash
Mastered Technologies/Frameworks
Ruby on Rails, HAML, Node.js, Chef, JSON, XML, MySQL, Nginx, Git, Web Services, Docker, LaTeX
How to get a hold of me
Address
700 Chiquita Ave, Apt. 3, Mountain View, 94041, California, USA
Phone
+1<PHONE_NUMBER>
Mail
<EMAIL_ADDRESS>GitHub
https://github.com/mikaelhm
Twitter
https://twitter.com/mhmoeller
LinkedIn
https://linkedin.com/in/mikaelhm/


Magister Greenis:
Humans try to "control" magic with meaningless incantations and elaborate rituals, but that's not the true essence of magic. Singing the beauty of space along with the Spirit of Earth -- that is the power I will teach you.
Learn skills.
Ask about Skill Enchanting.
Quest


You must verify your account before your first login.
A verification email has been sent to the provided email address. Please access it and verify your account.


Ocean [ag08], ocean, in Crystal Sea
Last updated Turn #127
Ocean [ag08], ocean, in Crystal Sea
------------------------------------------------------------------------
4: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
4: 15% damaged, arrived from Ocean [ah08], owner:
4: Phantasm [n4b], Imperial Empire, duke, with two workers,
4: eight sailors
4: A storm batters the ship and causes some damage.
5: The Savvy Aardvark [ha5r], ship, 2 hulls, 1 rowing port, 6 sails,
5: 16% damaged, departed for Ocean [ag07].
30: It has stopped raining.
Routes leaving Ocean:
North, to Ocean [af08], 6 days
East, to Ocean [ag09], 6 days
South, to Ocean [ah08], 6 days
West, to Ocean [ag07], 6 days


Generic string functions
Located in /web/app/string.class.php (line 14)
Format a value as money
Get translated string
This is just an alias for sprintf for now
Generate random string
Format string for safe inclusion in HTML
Print translated string
This is just an alias for printf for now
Documentation generated on Mon, 14 Nov 2011 11:54:49 -0800 by phpDocumentor 1.4.3


About
ScripTastic lets you do "interesting
things" with no scripting knowledge. I've modified it to control my
Prim Animator // Open sourceCompiler,
and it now has dozens more events, commands and controls for Second Life™ and OpenSim. ~ Ferd
- Here are some examples of Prim animation, a Tip Jar, playing sounds and other uses.
- For a quick video tour by Rich White watch this.
Blocks
LSL Script


Emmett Brady
About
Portfolio
Contact
Portfolio
Password Generator
Coding Quiz
Day Planner
README Generator
Employee Template Engine
Express Note Taker
Weather Dashboard
Trail Run App
MySQL Employee Tracker
Fresh Lemons: Movie Rating App
LinkedIn


PostgreSQL JDBC Driver An Open source JDBC driver written in Pure Java (Type 4), which communicates using the PostgreSQL native network protocol Download Go To Docs


Investment planner
Portfolio composition
Portfolio simulation
Monthly predictions
Date
Movement
Avg price
Lower 95%
Upper 95%
Avg price diff


The Mask of Zorro A film review by Marty Mapes Copyright 1998 Marty Mapes
** (out of 4) Lots of overacting. Lots of clichés. Lots of fun.
Two out of three ain't good. In school, it'll earn you a D.
Anthony Hopkins plays the aging masked avenger in this perennially remade movie. Hoping to draw Zorro out of hiding, the villainous governor Don Rafael (Stuart Wilson) has chosen three peasants at random to be hanged. His plot works. Zorro arrives to free the peasants. But Rafael's trap is not quick enough or strong enough to hold this hero. Setting the overblown, clichéd tone of the movie, Zorro ascends a staircase in front of the setting sun and poses, yes, poses for the cheering masses.
Later that evening, Don Diego (Zorro's alter ego) comes home, through his unnecessarily Bat-Cave-like secret passageways, to his loving wife and infant daughter. His wife has been worried about his dangerous heroics, and she urges him to hang up his sword. He admits he's getting too old for this work, so he promises he'll quit.
Before they can celebrate his retirement, Don Rafael shows up with his militia looking for Zorro. A wound from the day's battle gives away Diego's secret identity. Rafael's man kills Diego's wife while Rafael throws him in prison and carries away his beautiful daughter.
Twenty years later, we are introduced to two thieves, brothers from the same village as Diego. One is killed by the zealous Captain Love (Matthew Letscher), and the other, Alejandro (Antonio Banderas), vows revenge. Alejandro is falling-down drunk when he next sees the captain, but he cannot let the opportunity for revenge slip by. He's about to charge when, out of nowhere, Diego disarms him.
Diego, who has escaped from prison, recognizes Alejandro's potential. He sees an opportunity to pass the mask and sword to the next generation, so he gets Alejandro sobered up and takes him under his wing.
Coincidentally, the villain Rafael is returning from Spain after twenty years away. Even more coincidentally, he gets involved in an illegal land-grab scheme with the aid of Captain Love.
Two heroes. Two villains. Two noble opportunities for revenge. I bet you can guess how it all ends.
Clearly, this film is meant to be a melodrama. Love, villainy, and honor are all exaggerated. But melodrama is hard to pull off. TITANIC did it fairly well, but even it carried the melodrama too far, in the inhuman callousness of its villain. Needless to say, THE MASK OF ZORRO is no TITANIC. In this film, the melodrama is often eyeball-rolling ridiculous, like Zorro posing in front of the sunset, or Rafael's random execution of peasants.
In addition, the movie has cartoonish set pieces which, funny as they may be, make the movie a lot less consistent. (Think of Yosemite Sam when you watch the film and you'll see what I mean.) Campbell knows that he's directing a "summer blockbuster" and doesn't even try to make a solid movie. Instead, he just goes for obligatory skits, loosely held together by the Zorro story.
That's not to say the movie can't be fun, but it will require that you check your brain with the usher. Perhaps if I had known this beforehand, I could have enjoyed it more.
Some of these skits actually won me over. Anytime there was a swordfight, it was worth watching. Anytime a horse was on screen, it was worth watching (there were some very good stunts). Any time Banderas was allowed to pour on the charm, it was worth watching. Add this all up and you have a fair amount of screen time.
But you don't have 136 minutes. What's left is enough time to notice, and ponder, several of the movie's faults.
Ordinarily I wouldn't mention set design unless it was good, but even in this motley patchwork of a movie, it stuck out like a sore thumb. As stated above, Diego has secret Batman tunnels in his mansion. It is an unimportant detail, and it should have been left out. It made Hopkins look silly and it didn't add to the character's depth. All it accomplished was to draw attention to the bad set design.
The other instance that jumped out was near the end of the film, when hundreds of peasant miners are locked in wooden cages that appear to be recycled from WATERWORLD. The plot tells us that these cages were built for a one-time use, on a limited budget, by near-slave labor, yet these "makeshift" cages have the look of professionally built Hollywood sets. This might not have been so noticeable had not the camera and plot kept focusing our attention on them.
The screenplay has problems too. One problem is the patchwork makeup of the film - six writers contributed to the screenplay (along with a seventh uncredited writer, according to the IMDB). One moment the movie is a comedy, the next it is a noble adventure. There's no reason it can't be both, but usually the mix is not so random or haphazard.
Another script problem is the way the characters were written. Zorro is supposed to be a hero for the people. Instead, both Zorros are extremely self-centered. This is particularly clear at the end. Hundreds of doomed peasants fill the well-built cages, but instead of freeing them, both Zorros pick grudge fights with their personal nemeses, leaving these apparently helpless miners trapped.
And finally the soundtrack, which was so promising early on, sold itself out at the film's conclusion. There was some excellent flamenco music during several of the movie's swordfights. The syncopated sounds of guitar, claps, and stamps added a nice spicy flavor not only to the scenes but to the film as a whole. And then, as the credits start to roll, out comes a soulless white-bread pop song, sprinkled with a tiny dash of off-brand, extra-mild salsa. It was a weak choice that gave the movie a disappointingly bland, dull aftertaste.
For me, the clichés and cheap laughs belied a shoddy, aimless movie. But if you shop around for reviews, you will find that nearly everyone liked this movie better than I did. More power to them, and to you if you go.
Check out more current movie reviews at http://www.indra.com/~mmapes/
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Spoilers: Daniel broken in Corrie after losing final memories of Sinead
Daniel Osbourne (Rob Mallard) has been put through the wringer in Coronation Street over the last couple of months after wife Sinead Tinker (Katie McGlynn) died as a result of her cancer diagnosis. The young man left the cobbles shortly after her death, but he returns in time for her funeral — however, there’s more heartache ahead for him.
After Beth’s (Lisa George) hurtful words, Daniel took it upon himself to get out of dodge with Bertie, and thus he left the cobbles several weeks back. However, he makes a return in the coming episodes, as he comes back for Sinead’s funeral.
The service is an incredibly emotional one and, afterwards, everyone gathers in the Rovers.
While there, Daniel informs Peter (Chris Gascoyne) that he’s going to head back to the flat so that he can watch the videos Sinead made for him and Bertie — which are on his laptop.
Advertisement Advertisement
However, unbeknown to him, a burglar is currently at his flat, and makes off with said laptop.
Later, Daniel arrives home and is devastated to discover that his place has been burgled. While a lot has been taken, it’s the loss of the laptop that leaves Daniel upset, as he’s lost the chance to see Sinead’s final videos.
Will the police be able to recover his missing belongs?
What’s more, will Daniel get the opportunity to see Sinead one last time via these clips?
One to watch: Monday 18thNovember at 8:30pm on ITV.


You arrived here because you were invited to a review session,
probably via an invitation email.
|
|
How to start a review session and provide feedback
To start a review session and provide feedback,
look at the Reviews palette and find the appropriate review activity.
(Note: there might only be review activity in the Reviews palette.)
Click on the "+" icon to open up that review activity and show
the list of files that you are to review.
If you double-click on one of those files, that file will open
in the main canvas (obscuring this welcome page),
at which point you can add comments
and annotations using the Comments palette and switch among
different interactive states in the States palette.
|
|
Review and Commenting User Documentation
The Maqetta documentation include
some introductory documentation on review and commenting.
|
|
About Maqetta
Maqetta is an open source initiative that provides visual drag&drop
creation of HTML5 user interfaces (desktop and mobile).
Learn more...
|


3.7.2. SIMP Server Installation¶
This chapter provides guidance on installing, configuring, and bootstrapping
the SIMP server using the SIMP Utility, simp
.
<IP_ADDRESS>. System Requirements¶
SIMP scales well, but how much depends on a number of factors, including the number of nodes, the processor speed, the total memory, and the complexity of the manifests. The following are the minimal system requirements for the SIMP server:
- Central Processing Unit (CPU) : 2 Cores
- Random Access Memory (RAM) : 2.2 GB
- Hard Disk Drive (HDD) : 50 GB
<IP_ADDRESS>. Using the SIMP Utility¶
In these instructions we will be using the config
and bootstrap
commands of the SIMP Utility, simp
. The SIMP Utility does not
assist users through the entire configuration process; however, it does
make the initial configuration easier and more repeatable.
Note
For a list of the commands simp
provides, type simp help
. Type
simp help <Command>
for more information on a specific command.
<IP_ADDRESS>. SIMP Default Passwords¶
Below is a table containing the default passwords found on a basic SIMP server upon install.
Important
All default passwords must be changed during the initial configuration process.
| Utility | Password |
|---|---|
| Grub | GrubPassword |
| Root User | RootPassword |
| Simp User | UserPassword |
Table: SIMP Default Passwords
<IP_ADDRESS>. Preparing the SIMP Server Environment¶
- Boot the system and ensure the SIMP ISO is selected.
- If you do not have a SIMP ISO, see Building SIMP From Tarball.
- Press Enter to run the standard SIMP install, or choose from the
customized options list.
- For a detailed description of the the disk encryption enabled via the
simp_disk_crypt
boot option, see Disk Encryption.
- For a detailed description of the the disk encryption enabled via the
- When the installation is complete, the system will restart automatically.
- Change the
root
user password- At the console, log on as
root
and type the default password shown in Table 2.1. - Type the default password again when prompted for the (current) UNIX password.
- Type a new password when prompted for the New Password. Retype the password when prompted.
- At the console, log on as
- Change the
simp
user password- At the console, log on as
simp
and type the default password shown in Table 2.1. - Type the default password again when prompted for the (current) UNIX password.
- Type a new password when prompted for the New Password. Retype the password when prompted.
- At the console, log on as
<IP_ADDRESS>. Installing the SIMP Server¶
Important
Correct time across all systems is important to the proper functioning of SIMP and Puppet in general.
If a user has trouble connecting to the Puppet server and errors regarding certificate validation appear, check the Puppet server and client times to ensure they are synchronized.
Warning
Keep in mind as the installation process begins that Puppet does not work well with capital letters in host names. Therefore, they should not be used.
- Log on as
simp
and runsu -
to gain root access. - Type
simp config
and configure the system as prompted.
simp config
will prompt you for system settings and then apply the smallest settings subset that is required to bootstrap the system.- When applicable,
simp config
will present you with a recommendation for each setting (variable). To keep a recommended value, press Enter. Otherwise, enter your desired value.simp config
generates a log file containing details of the configuration selected and actions taken.- For more details about the installation variables set by
simp config
and the corresponding actions, see Initial Configuration.- For a list of additional options, type
simp help config
.
simp config --dry-run
will run through all of thesimp config
prompts without applying any changes to the system. This is the option to run to become familiar with the variables set bysimp config
or generate a configuration file to be used as a template for subsequentsimp config
runs.simp config -a <Config File>
will load a previously generated configuration in lieu of prompting for settings, and then apply the settings. This is the option to run for systems that will be rebuilt often.
Note
Once simp config
has been run, three SIMP configuration files
will be generated:
/root/.simp/simp_conf.yaml
: File containing all yoursimp config
settings; can include additional settings related to ones you entered and other settings required for SIMP./etc/puppetlabs/code/environments/simp/hieradata/simp_config_settings.yaml
: File containing global hieradata relevant to SIMP clients and the SIMP server./etc/puppetlabs/code/environments/simp/hieradata/hosts/<host>.yaml
: SIMP server host YAML file.
- Type
simp bootstrap
Note
If progress bars are of equal length and the bootstrap finishes quickly, a problem has occurred. This is most likely due to an error in SIMP configuration. Refer to the previous step and make sure that all configuration options are correct.
- Type
reboot
<IP_ADDRESS>. Performing Post-installation Setup on the SIMP Server¶
Log on as
root
Run puppet for the first time.
Type:
puppet agent -t
Copy CentOS RHEL_MAJOR_MINOR_VERSION ISO(s) to the server and unpack using the
unpack_dvd
utility. This creates a new tree under/var/www/yum/CentOS
.Type:
unpack_dvd CentOS-RHEL_MAJOR_VERSION-x86_64-DVD-####.iso
Update your system using yum. The updates applied will be dependent on what ISO you initially used.
Type:
yum clean all; yum makecache
Run puppet.
Type:
puppet agent -t
Reboot your system:
Type
reboot


To add a controller to the doc, add ng-controller to the body as an attr like this:
Put a script tag in the header called angular.module("name"). The "name" needs to match up with how we're calling it in the body tag attr.
To understand more, look at the comments in the js above - this is easier for me.


You can enter dates in any format understood by moment.js, however, when you leave the field it will be displayed in the specified format.
The background of the input box will be red whenever the input is an invalid date.
Stored as: {{ data.date1 }}
Stored as: {{ data.date2 }}
NB: ANY date format that moment can parse into a date will be valid input regardless of the format you specify. All of the following are valid dates. There are other date variations that are supported depending on the i18n support you loaded with moment.js
Any invalid dates will have a ng-invalid class assigned by Angular


Icon
Photos
Pricing
Apps & Plugins
API
Lingo
o
Icons and Photos For Everything
Icons
Noun Project is building a global visual language
that unites us.


Stock Prices
Thank you!
Your Amazon mTurk code is: {{assignment}}
Warning! In order to get your reward you still have to complete the following questionnaire:
Important: Please make sure you copy your code or note it down somewhere. You will need it in the following questionnaire and in order to get a reward.


--- ---
Themes
Conveners
International Advisory Committee
Local Organizing Committee
Invited Speakers
Programme
Supporting Institutions
Social Programmes
Accommodation
Map of the Institute
Travel


Pollination Consulting
Foothill Bee Ranch is operated by Steve Peterson, Ph.D. I have many years of experience managing blue orchard bees and alfalfa leafcutting bees in a diversity of crops such as almonds, cherries, plums, strawberries, alfalfa seed, carrot seed, onion seed and lettuce seed.
Managing solitary bees successfully is not difficult, but there are pitfalls that can easily be avoided. I can guide you through:
- Wintering (timing, temperatures)
- Planting pollinator hedgerows
- Nesting station numbers and locations
- Incubation
- Release strategy
- Summer management
- Pre-wintering
- Stripping and cleaning nests
Please email me at<EMAIL_ADDRESS>if you are getting started with solitary bees and have questions or concerns.


The handler
package includes the lifestyle support systems.
Note that although these handlers make use of the avalon lifecycle interfaces, they are not 'real' components, and not every part of the lifecycle is supported. In particular, a handler doesn't start/stop or execute in any way.
The contents of this package are not a part of the fortress client API.


NFL Big Data
Home
Choose a Situation
Check your expectations
About
NFL Situational Statistics
Down:
First Down
Second Down
Third Down
Fourth Down
Extra Point
Team on Offense
Any Team
Arizona Cardinals
Atlanta Falcons
Baltimore Ravens
Buffalo Bills
Carolina Panthers
Chicago Bears
Cincinnati Bengals
Cleveland Browns
Dallas Cowboys
Denver Broncos
Detroit Lions
Green Bay Packers
Houston Texans
Indianapolis Colts
Jacksonville Jaguars
Kansas City Chiefs
Miami Dolphins
Minnesota Vikings
New England Patriots
New Orleans Saints
New York Giants
New York Jets
Oakland Raiders
Philadelphia Eagles
Pittsburgh Steelers
San Diego Chargers
Seattle Seahawks
San Francisco 49ers
Saint Louis Rams
Tampa Bay Buccaneers
Tennessee Titans
Washington Redskins
Collapse Runs
Submit
Play
Avg Yards Gained
Avg Points Scored
{{ play }}
{{ results['avgYards'][play] }}
{{ results['avgPoints'][play] }}


THEY KEEP COMING
The stench of failure still hangs over this Scotland squad after more call-offs, says Kris Boyd
by Kris BoydAS someone who retired from Scotland duty, I would never criticise anyone for deciding that international football is no longer for them.
Robert Snodgrass decided he’d had enough after the last San Marino get-together.
Then Matt Ritchie opted out just last week.
Their choice. Who am I to question their decision?
But my worry is that it points to something being not quite right about Steve Clarke’s Scotland.
I don’t know what’s going on behind the scenes there. I’m not privvy to any inside information, before anyone asks.
It just concerns me that two Premier League players are saying they no longer want to be considered — when they are just two games away from qualifying for a major tournament.
You add in the raft of call-offs and it doesn’t sit right with me.
Having worked with Clarke at Kilmarnock I know for a fact he’s a top-class coach. Up there with the very best.
I just worry. I just look at what’s been going on and wonder if there’s something amiss.
Maybe the likes of Snoddy and Ritchie have walked away for personal reasons only and nothing else. Maybe it’s no slight on Clarke at all.
And I’d never accuse anyone of claiming to be injured when there was nothing wrong with them. I just can’t see someone like Andy Robertson doing that.
But this squad is only two matches away from history. And yet there still seems to be a feeling of dread.
It’s like failure and disappointment still hangs over these players, even though the failings of the past have absolutely nothing to do with any of them.
It’s not Clarke’s fault we haven’t qualified for anything since 1998. Yet he seems to get lumped in with the rest of the managers who haven’t managed it yet.
If you ask me, there’s still a real possibilty we can make it to next summer’s finals. Like I say, we’re only two games away.
But Clarke still needs to find a system and a team that’s going to give everyone the best chance of making it.
The fact he’s not had his best players available to choose from yet has not made it any easier, that’s for sure. Kieran Tierney’s situation with Arsenal certainly hasn’t helped.
But he still has a squad of good players.
For me, he needs to find a way to get his best players in the team, Scott McTominay, James Forrest, Callum McGregor and Stevie Naismith.
Naisy has had his injury problems lately but he’s the man who could shoot us to the finals, if you ask me.
He’ll defend from the front as a striker but also bring others into the game with his knowledge and understanding NO other frontman in the squad has.
But here’s something else Clarke should do. He should get Billy Gilmour into his squad as soon as possible. And I’m talking about next week.
Gilmour was with the Under-21s against Greece at Tynecastle.
But Kazakhstan at Hampden on Tuesday would be an ideal opportunity to give the young Chelsea prodigy his first full cap.
I want to see him swagger his way into the team.
This idea it’s too early for him, that it could ruin him, is just nonsense.
Sure, we have quality players in the midfield area but Gilmour IS going to be a Scotland player sometime soon. I don’t see why he should be held back.
When any other country gets a young player with undoubted talent they throw him in and get him games as quickly as possible.
Yet we always seem to be wary of doing that.
There would be a commercial bonus in that his call-up might just add a few thousand punters onto the gate on Tuesday night.
I don’t know the boy personally but I can see he has an arrogance about him which is vital to reach the highest level.
Clarke could even consider doing the same with striker Fraser Hornby, another player I’ve heard good things about.
But Gilmour actually reminds me of a young Barry Ferguson, which is maybe the biggest compliment I could give him.
People also say we’re missing the influence of Scott Brown since he retired but Gilmour can fill his shoes. Given the opportunity he could be the man to bring freshness to a stale set-up.
God knows we need something right now.


sap
Businessmodel of SAP
Customer Segments
SAP has a mass market business model, with little differentiation between customers. Its customers are any enterprises that wants software for the purpose of managing operations and employees.
Value Proposition
SAP offers two primary value propositions: innovation and brand/status.
The company has a long history of introducing innovating projects, ranging from its groundbreaking ERP software to its recently released SAP HANA in-memory platform. Beyond this background, it also has three major initiatives specifically dedicated to innovation:
SAP Labs – These are facilities focused on enhancing core SAP products and developing new cutting-edge offerings based on SAP HANA. The company operates 16 labs in high-tech clusters in 13 countries worldwide, and has worked on projects for 98 of the 100 most valuable worldwide brands.
Innovation Center Network – This program aims to combine the agility and creativity of a startup with the resources of a major corporation. It identifies multidisciplinary teams (featuring product experts, engineers, designers, business developers, etc.) and connects them so they can collaborate on a wide variety of projects. Specifically, they develop unconventional concepts with the goal of opening up new markets for SAP’s products; examples include smart traffic solutions and customized cancer therapy.
Global SAP Co-Innovation Lab (COIL) Network – This program aims to improve the capabilities of SAP’s customer and partner ecosystem through a network of global expertise and leading technologies. Specifically, it enables members to engage in innovative project-based efforts. Resulting products are displayed at COIL events, facilities, and the SAP Community Network.
SAP maintains a strong brand. It is well-established because of its long history, which includes many firsts. It is well-regarded because of its success. The company is the top player in the enterprise applications industry in terms of revenue from software and related services. It is also the third largest independent software producer based on market capitalization. It has over 12,000 partner firms and over 300,000 customers, with its client base including 87% of the Forbes Global 2000.
Channels
SAP’s main channel is its direct sales force. The company also sells its products through resellers, systems integrators, service providers, infrastructure providers, and third-party software vendors. SAP promotes its offerings through its website, online advertising, and participation in webinars and in-person events such as conferences and forums.
Customer Relationships
SAP’s customer relationship is primarily of a self-service nature. Customers utilize the service through the main platform while having limited interaction with employees. The company’s website features a section called SAP ONE Support Launchpad, a collection of self-help tools and resources including articles and product overviews. SAP also offers online training and certification courses.
There is also a personal assistance component in the form of paid live training classes and phone, e-mail, and live chat support. Moreover, the company offers consulting services for areas such as business transformation services, cloud professional services, and custom application development. Finally, there is a community element with a forum called the SAP Community Network (SAP).
Key Activities
SAP’s business model entails designing and developing new software products.
Key Partners
SAP maintains the PartnerEdge Program, through which it aligns with companies who want to do the following:
Build Solutions – The company assists firms that develop applications and software based on SAP platforms. Types of partners include developers and independent software vendors (ISVs), as well as OEMs seeking to bundle SAP technologies with their own products.
Sell SAP Solutions – The company works with firms that resell SAP offerings. They may be assisted at any point of the customer lifecycle ranging from sales to implementation. Specific forms of support include training and marketing resources.
Service SAP Solutions – The company works with firms that offer consulting and implementation assistance to customers as they implement and integrate SAP solutions.
Run SAP Solutions – The company works with firms that seek to host and run SAP offerings for their clients so the customers can focus on growing their businesses.
SAP’s specific partners for the above purposes include Hewlett-Packard Enterprise, Smart Utility Systems, Macromicro, Innovapptive, OpenText, Accenture, Intel, and IBM.
Finally, SAP maintains the Startup Focus Program, through which it works with promising startups in the predictive analytics, real-time analytics, and Big Data space. It helps the firms build applications on the SAP HANA platform, providing them with funding, sales/marketing support, and access to its community of thought leaders and customer base of over 300,000.
Key Resources
SAP’s main resource is its technology staff members, who are constantly working to introduce new, cutting-edge technologies. The company also relies heavily on its sales/marketing team so that it can keep bringing in new customers. Finally, its many research facilities represent a significant priority.
Cost Structure
SAP has a value-driven structure, aiming to offer a premium proposition by supplementing its products with training and consulting services. Its biggest cost driver is sales/marketing expenses, a fixed cost. Other major drivers are cost of services, a variable cost, and R&D and administration expenses, both fixed costs.
Revenue Streams
SAP has three revenue streams:
- Cloud subscription sales
- Software licensing fees
- Service (training and consulting) fees Pricing information for each is not readily available.


Choice of Kung-Fu Styles
Laughts: A chain is only as strong as its weakest link, and so Blossom Harvest laughs at styles that are overly complicated or full of flourishes. These intricate methods are easily smashed aside and broken. It likewise laughs at such trivialities as being outnumbered, or disadvantageous terrain – pure grit and hellish training have rendered Blossoming Heroes fearless to such things!
Fears: This style has problems when facing fighters who are reactive. Blossom Harvest’s openness is easy to read and predict, giving such opponents everything they need. It’s also ill-prepared for enemies who wield supernatural forces or influence.
Laughts: A chain is only as strong as its weakest link, and so Blossom Harvest laughs at styles that are overly complicated or full of flourishes. These intricate methods are easily smashed aside and broken. It likewise laughs at such trivialities as being outnumbered, or disadvantageous terrain – pure grit and hellish training have rendered Blossoming Heroes fearless to such things!
Fears: This style has problems when facing fighters who are reactive. Blossom Harvest’s openness is easy to read and predict, giving such opponents everything they need. It’s also ill-prepared for enemies who wield supernatural forces or influence.


Outdated browser detected. Please upgrade to a newer browser to fully experience this site.
{{item.text}}
{{item.category}}
Shipping Address: PO Box 2372, Columbia, SC, 29202


{# Description no longer than 155 characters #} {# Twitter Summary card images must be at least 120x120px #}


Lime1618.github.io
Baby relax Safety 1st YOUMI Handbücher.
Baby relax Safety 1st YOUMI Handbücher and Nordgas LASER 321 E Handbücher.


Average age of commercial buildings
The age of commercial buildings generally reflects the development history of the county - Charlotte's oldest commercial districts are closer to the center city, while new commercial buildings continue to be built across the county. A decrease in average age in an area may indicate in-fill or redevelopment in an older district, or a large commercial center constructed on previously undeveloped land. Aging commercial structures may provide opportunities for rehabilitation, reuse and "greening" improvements to promote energy efficiency. In addition, since sewer, power and other infrastructure that serves commercial buildings is generally reflective of building age, local governments and developers can identify potential risks and make necessary improvements, especially as codes and standards are updated and improved over time.
####Did you know? Of the 5.6 million commercial buildings in the United States in 2012, about 12% were built after 2000. Newer buildings tend to be larger than older buildings. The average building size for those constructed before 1960 is 12,000 square feet; buildings constructed between 1960 and 1999 average 16,300 square feet; and buildings constructed in the 2000s average 19,100 square feet.
####Related Variables
Commercial Size
Commercial Construction
Job Density
The year of construction for each commercial building is summed and divided by the total number of commercial buildings.
Source: Mecklenburg County Tax Parcels
| Resource | Learn More and Take Action |
|---|---|
| City of Charlotte Financial Programs | Charlotte offers geographically targeted financial programs to assist businesses to improve facades and security. |
| Business District Organization Program | City of Charlotte program to support business associations serving defined districts. |
| Business Corridor Revitalization Strategy | City of Charlotte's strategy to promote revitalization in underperforming commercial areas (PDF Download). |
| Commercial Building Stock | A look at the national commercial building stock and the attributes that drive commercial energy use. |
| Plan Review | Learn about the commercial plan review process. |
| Apply for a building permit | The process to improve property starts with a permit. |


User guide - Code generation
This part of the user guide provides information on code generation of beans. See the main user guide for a higher level introduction.
Code generator
It is possible to write a Joda-Bean by hand - they are just normal Java interfaces defining an API for beans. There are some base classes that assist as well as some standard map-based implementations, notably FlexiBean. It is more common to use the code generator, however the generator is optional.
A code generated Joda-Bean minimises the amount of code that the developer has to write. The developer simply creates an outline class and adds the properties (fields). The code generator then produces all the getters and setters, plus additional helper methods.
Here is an example UserAccount class showing the parts that a developer has to write:
@BeanDefinition public final class UserAccount implements Bean { /** The user identifier. */ @PropertyDefinition(validate = "notEmpty") private String userId; /** The email address. */ @PropertyDefinition(validate = "notEmpty") private String emailAddress; /** The number of logins. */ @PropertyDefinition private int numberLogins; /** The last login instant. */ @PropertyDefinition(validate = "notNull") private Date lastLogin; }
The code generator will create getters, setters, equals, hashCode, toString, metaBean and properties. To see the generated code for this class, click here.
Note that the equals, hashCode and toString methods are only generated if they do not exist already. As such, it is easy to write your own versions of these methods if necessary.
Using the code generator
The code generator must be invoked before compilation as it generates Java source code. It cannot operate at runtime, as the getters and setters that are generated must be available for developers writing the main part of the application.
The code generator operates by creating a portion of the source file marked by “AUTOGENERATED START” and “AUTOGENERATED END” tags (when first run, if the tags are not present, it will create the block at the end of the file). The generator only ever changes code within the marked block, apart from imports which it inserts if it determines they are necessary. Limiting the generation to a fixed part of the file means that developers can customise the rest of the Java file in any way that is desired, such as adding constructors and methods.
The generator has the following requirements:
- The class must be annotated with BeanDefinition
- The class must directly implement the Bean or ImmutableBean interface.
- The class must be a normal top-level class, nested/inner classes and multiple classes per file are not supported
- Each property field must be annotated with PropertyDefinition
- Each property field must be be private
- The Javadoc of each property field should normally start with the word “The”.
The command line takes the following arguments:
Usage java org.joda.beans.gen.BeanCodeGen [file] Options -R process all files recursively, default false -indent=tab use a tab for indenting, default 4 spaces -indent=[n] use n spaces for indenting, default 4 -prefix=[p] field prefix of p should be removed, no default -generated add @Generated annotation to generated code -config=[f] config file: 'jdk'/'guava', default guava -style=[s] default bean style: 'light'/'minimal'/'full', default smart -verbose=[v] output logging with verbosity from 0 to 3, default 1 -nowrite output messages rather than writing, default is to write
The prefix is useful for teams that have a coding standard where fields must be prefixed, such as by an underscore or a letter. Specifying it to the generator allows that prefix to be stripped before generating the property name.
The code generator works by reading the source file and parsing it to memory. The parser is deliberately simplistic and will reject complex files or unusual code formatting styles. The generator processes the annotated properties and replaces the auto-generated section of the file in memory. It then compares the newly generated file with the original and only if they are different is the new file written to the file system. The generator will make use of property comments and will respect and propagate deprecated annotations. It is reasonably intelligent - final fields will become read-only properties, most collections and maps are sensibly handled and booleans generate “is” methods rather than “get” methods. Simple generics are also handled.
The generator must be invoked every time that the source file is changed. Failure to do so (such as by using an IDE refactoring) could leave the auto-generated block in an invalid state. Normally the generator will be invoked from the IDE or a build tool, see the Maven plugin.
The code generator only parses and outputs based on a single source Java file. It does not require the file to compile and never knows that “String” actually means “java.lang.String”. In other words, the type system in the generator is totally dumb and based solely on the short simple class name.
Customisation
The generator has a limited set of customisations to the core part of the generation.
One key set of control is provided by @PropertyDefinition.
The style of getter can be controlled using the annotation parameter “get”. In most cases, the default “smart” setting is sufficient:
- "" - do not generate any form of getter
- “smart” - process intelligently, using “is” for boolean and “get” for other types
- “private” - process as per “smart” but set scope as private
- “package” - process as per ‘smart’ but set scope as package/default
- “protected” - process as per “smart” but set scope as protected
- “is” - generates isXxx()
- “get” - generates getXxx()
- “clone” - generates getXxx() with a clone of the field (assumed to be of the correct type)
- “cloneCast” - generates getXxx() with a clone of the field with a cast to the property type
- “optional” - generate getXxx() returning a Java 8 Optional wrapper around the field, where the field itself is nullable instead of optional. OptionalDouble, OptionalInt and OptionalLong are also handled
- “optionalGuava” - generate getXxx() returning a Guava Optional wrapper around the field, where the field itself is nullable instead of optional
- “field” - generates direct access to the field, enabling a weird manual getter
- “manual” - a method named getXxx() must be manually provided
For example, using the optional wrappers:
@BeanDefinition public final class Foo implements Bean { @PropertyDefinition(get = "optional") private String name; // regular field that can hold null // generated getter as follows: public Optional<String> getName() { return Optional.ofNullable(name); } }
The style of setter can be controlled using the annotation parameter “set”. In most cases, the default “smart” setting is sufficient:
- "’ - do not generate any form of setter
- “smart” - process intelligently - uses “set” unless final, when it will use “setClearAddAll” for common list types or “setClearPutAll” for common map types and FlexiBean
- “private” - process as per “smart” but set scope as private
- “package” - process as per ‘smart’ but set scope as package/default
- “protected” - process as per “smart” but set scope as protected
- “set” - generates setXxx()
- “setClearAddAll” - generates setXxx() using field.clear() and field.addAll(newData)
- “setClearPutAll” - generates setXxx() using field.clear() and field.putAll(newData)
- “bound” - generates a bound property with {@code PropertyChangeSupport}
- “field” - generates direct access to the field, enabling a weird manual setter
- “manual” - a method named setXxx() must be manually provided at package scope or greater
- a pattern, see Javadoc
For example, to have a private setter:
@BeanDefinition public final class Foo implements Bean { @PropertyDefinition(set = "private") private String name; // generated setter as follows: private String setName() { this.name = name; } }
Note that support for bound properties is very basic. It only handles simple mutable properties. For more complex cases, it is necessary to write the setter manually. The PropertyChangeSupport field is generated, but not the methods to add listeners.
Validation can be specified using the annotation parameter “validate”:
- "" - do not generate any form of validation
- “notNull” - checks that the value is non-null using JodaBeanUtils.notNull() which throws IllegalArgumentException
- "notEmpty’ - checks that a string/collection/map is non-null and non-empty using JodaBeanUtils.notEmpty() which throws IllegalArgumentException
- “{staticMethodName}” - a custom validation method located on this class
- “{className}.{staticMethodName}” - a custom validation method located on any class
@BeanDefinition public final class Foo implements Bean { @PropertyDefinition(validate = "notNull") private String surname; // generated code will ensure field is non-null }
The exposed type of the property can be specified using the annotation parameter “type”. For example, if the field is declared as an ArrayList but the public type of the getter/setter should be List then that can be achieved. Simply add the annotation parameter type = "List<>" (the generics are inserted during generation).
@BeanDefinition public final class Foo implements Bean { @PropertyDefinition(type = "List<>") private ArrayList<String> names; // generated getter as follows: public List<String> getNames() { ... } }
The exposed type of the property in the builder used for immutable beans can be specified using the annotation parameter “builderType”. For example, if the field is declared as an ImmutableList<Address> but the public type of the builder methods should be List<? extends Address> then that can be achieved. Simply add the annotation parameter builderType = "List<? extends Address>".
@BeanDefinition public final class Foo implements Bean { @PropertyDefinition(builderType = "List<? extends Address>") private ImmutableList<Address> addresses; // generated getter as follows: public ImmutableList<Address> getAddresses() { ... } // generated builder method as follows: public Builder addresses(List<? extends Address> addresses) { ... } }
A properties getter and/or setter can be declared to override a superclass. Simply add the annotation parameter overrideGet = true or overrideSet = true and the requisite @Override annotation will be placed on the getter/setter.
@BeanDefinition public final class Foo implements Bean { @PropertyDefinition(overrideGet = true) private String name; // generated getter as follows: @Override public String getName() { ... } }
A property can be given an alias, or alternate name. Simply add the annotation parameter alias = "otherName". This is most useful when a property is renamed, to handle change during deserialization.
The style of equals/hashCode/toString can be controlled using the annotation parameters “equalsHashCodeStyle” and “toStringStyle”. In most cases, the default “smart” setting is sufficient:
- “omit” - omit this property from equals/hashCode/toString
- “smart” - process intelligently, equivalent to “field” for immutable and “getter” for mutable
- “getter” - use the getter for equals/hashCode/toString
- “field” - use the field for equals/hashCode/toString
Derived properties
It is possible to declare a property without a matching field. For example, an “age” property could be derived from a “dateOfBirth” field.
To do this, annotate the getter of the derived property with DerivedProperty. Apart from the absence of a field, a derived property is very similar to a normal read-only property.
Immutable beans
Code generated beans may be immutable.
All fields in an immutable bean must be final. It is recommended that immutable beans are final, do not extend any other bean class and directly implement ImmutableBean.
@BeanDefinition public final class Foo implements ImmutableBean { // code generated immutable bean with public builder }
Immutable bean customisation
Code generated immutable beans can be customized as follows.
An immutable bean can be configured to provide additional cross-property validation. In most cases the per-property validation attribute is sufficient. When cross-property validation is needed, this technique can be used.
Simply declare a private void method taking no arguments annotated with @ImmutableValidator. The method will be called during the validation phase of the constructor.
@ImmutableValidator private void validate() { // validate the instance variables of the bean }
An immutable bean can be configured to apply default property values. In most cases this is not necessary, but if the bean has lots of non-null properties it may be desirable to have some default values.
Simply declare a private static void method taking one ‘Builder’ argument annotated with @ImmutableDefaults. The method will be called before the empty builder is made available for population.
@ImmutableDefaults private static void applyDefaults(Builder builder) { // set default property values directly into the builder }
An immutable bean can be intercepted when the bean is being built. In most cases this is not necessary, but if the bean has a property that needs to be defaulted from another property this can be useful. In general, use of @ImmutableValidator and/or @ImmutableDefaults should be preferred.
Simply declare a private static void method taking one ‘Builder’ argument annotated with @ImmutablePreBuild. The method will be called when build() is invoked on the builder.
@ImmutablePreBuild private static void preBuild(Builder builder) { // query the builder and make any necessary changes }
The constructor of an immutable bean can be replaced. In most cases this is not necessary, but there may be occasional use cases. In general, use of @ImmutableValidator and/or @ImmutableDefaults should be preferred.
A constructor with parameters matching each property must be written and annotated with @ImmutableConstructor. It may be easier to generate the bean without the annotation and move the generated constructor out into user code, adding the annotation only at that point.
@ImmutableConstructor private MyBean(String surname, String forename) { // a constructor entirely under application control }
An immutable bean can be configured to cache the hash code. In most cases this is not necessary, but if the bean is used as a hash key, then it may be helpful.
Simply set the boolean ‘cacheHashCode’ flag of ‘@BeanDefinition’ to true.
@BeanDefinition(cacheHashCode = true) public final class Foo implements ImmutableBean { // code generated immutable bean with cached hash code }
Immutable beans do not have set methods. Instead, a public builder class will be generated with methods to setup an instance. This supports code based manipulation, using the toBuilder() method. The scope of the builder, public private or package-scoped, may be controlled in the bean definition. The default is public for immutable beans and no-builder for mutable beans:
@BeanDefinition(builderScope = "private") public final class Bar implements ImmutableBean { // code generated immutable bean with private builder }
A static factory may be created for an immutable bean. This may be instead of or in addition to the builder. The scope of the factory is always public, and it always contains all properties. Any additional customisation should involve moving the generated factory outside the autogenerated block. To create the factory, specify the method name:
@BeanDefinition(factoryName = "of") public final class Bar implements ImmutableBean { // code generated immutable bean with static factory named "of" }
The scope of the meta-bean, public private or package-scoped, may also be controlled in the bean definition. The default is public:
@BeanDefinition(metaScope = "package") public final class Bar implements ImmutableBean { // code generated immutable bean with package-scoped meta-bean }
The scope of the generated constructor for immutable beans can be controlled. The default is to be as private as possible for the needs of the builder, typically private:
@BeanDefinition(constructorScope = "package") public final class Bar implements ImmutableBean { // code generated immutable bean with package-scoped constructor }
An option also exists to generate the ConstructorProperties annotation:
@BeanDefinition(constructorScope = "public@ConstructorProperties") public final class Bar implements ImmutableBean { // code generated immutable bean with annotated public constructor }
Immutable bean hierarchies
It is possible for an immutable bean to be non-final. Any subclass should logically also be immutable, but must set the BeanDefinition annotation value hierarchy to “immutable”:
// superclass @BeanDefinition public abstract class SuperFoo implements ImmutableBean { // code generation will enable an immutable subclass } // subclass @BeanDefinition(hierarchy = "immutable") public final class Foo extends SuperFoo { // code generation will connect to superclass // note that there is NO 'implements ImmutableBean' on the subclass }
It is also possible for a bean to be partially final. In this case, the bean will implement Bean rather than ImmutableBean. To get the correct behaviour, the BeanDefinition annotation value builderScope must be set to “public”. Partially final beans can extend one another, but must all declare the builder scope.
The rules as to what works and what does not are complex. It is recommended to keep is simple, and only have normal mutable beans or final immutable beans.
Light beans
It is possible to generate a very light-weight bean. This approach has no Meta class or Builder (the objects exist behind the scenes). This is the approach with the lowest code generation.
// superclass @BeanDefinition(style = "light") public final class LightBean implements ImmutableBean { // code generation of a light-weight immutable bean }
Internally, the bean uses reflection to implement the meta bean and builder. As such, it may be a little slower.
Both immutable and mutable light-weight beans can be generated.
Minimal beans
It is possible to generate a minimal bean. This approach has no Meta class, but does have a Builder for immutable classes. This is the approach with the medium amount of code generation.
// superclass @BeanDefinition(style = "minimal") public final class MinimalBean implements ImmutableBean { // code generation of a minimal immutable bean }
Internally, the bean uses lambdas to implement the meta bean.
Both immutable and mutable minimal beans can be generated.
Manual builders
It is possible to write the builder class manually and still have the generated code refer to it. A manual builder can be an inner class or top-level class.
@BeanDefinition(builderName = "PersonBuilder", constructorScope = "package") public final class Person implements ImmutableBean { // code generation of a minimal immutable bean } // using `extends BasicImmutableBeanBuilder<Person>` might be a better place to start public final class PersonBuilder implements BeanBuilder { // manual builder code }
A common way to approach manual builders is to generate the builder, copy the builder code, add the builderName flag and paste the builder code ready to edit.
Test coverage
Code generated beans are great, but they have a side effect of creating lots of untested generated code. This can make the test coverage percentage produced by tools seem very low. One solution to this is provided by the JodaBeanTests class which provides methods to artificially provide test coverage. Of course, this can be used for good or evil! The intention is that it is used to highlight those parts of the codebase that really do need tests, not to stop you needing tests at all.
Links
Return to the main user guide.


The Google Earth Plugin can play tours authored in KML, allowing viewers to interact with the Earth environment while viewing scripted, controlled tours. The plugin currently exposes tour playback methods; tour authoring is not supported in the plugin.
Simple tours, with the <gx:Tour>
feature as the root-level feature of the KML, can be fetched and passed directly to GETourPlayer
. The tour must be the only feature in the KML file. If your KML doesn't meet these requirements, refer to the Complex tour example below.

If your tour is contained within a KMZ file, or if your KML file contains more than just a tour, or if the tour is nested within a container (such as <Document> or <Folder>), you'll need to manually look for the <gx:Tour>
feature within the file. One way is to 'walk' through the file's DOM until the KMLTour feature is found. You can use the kmldomwalk.js
utility script to do this.
In the example below, the KML file includes some placemarks and features, which need to be loaded into Earth as well.
First, reference the kmldomwalk.js
file from your page's
:

Then:

The preceding code simply loads the fetched tour into the Earth plugin. It doesn't include controls for setting the fetched tour as active, or for controlling playback. Refer to Defining the active tour and Controlling tour playback for more information. The entire tour with controls is included in the Sample tour section.
Any number of tour objects can be loaded into the plugin, but only one can be set as the currently active tour. Once a tour is set as active, the tour controls appear on the screen:
ge.getTourPlayer().setTour(tour);
Use setTour(null)
to exit the currently active tour and to restore normal globe navigation:
ge.getTourPlayer().setTour(null);
The Earth API supports the following calls to control tour playback:
| Function | Description |
|---|---|
ge.getTourPlayer().play() |
Plays the currently active tour |
ge.getTourPlayer().pause() |
Pauses the currently active tour |
ge.getTourPlayer().reset() |
Stops playback of the currently active tour and jumps to the beginning of the tour |
ge.getTourPlayer().setCurrentTime(time) |
Sets playback to the specified point on the tour's timeline, in seconds. |
The Earth API supports the following calls to query for current tour playback information:
| Function | Description |
|---|---|
ge.getTourPlayer().getCurrentTime() |
Retrieves the current elapsed playing time of the tour, in seconds. |
ge.getTourPlayer().getDuration() |
Retrieves the total duration of the active tour, in seconds. |
Source: http://code.google.com/apis/earth/documentation/samples/tour_example.html
  <title>Sample tour in the Google Earth Plugin</title>

 <input type="button" onclick="enterTour()" value="Enter Tour"/> <input type="button" onclick="playTour()" value="Play Tour"/> <input type="button" onclick="pauseTour()" value="Pause Tour"/> <input type="button" onclick="resetTour()" value="Stop/Reset Tour"/> <input type="button" onclick="exitTour()" value="Exit Tour"/>


The page you requested was not found! It may have been deleted or it never existed.
Click Here to return to the home page.


UX/UI Design, Visual Design,
Interaction Design, Information Architecture
Research, Prototyping, Usability Testing
Spotify is the leader of music streaming services and wants to keep it that way. Because of this, they want to improve engagement and retention in the app by implementing a new social feature that embeds within the current Spotify platform. See what I did to help them design this new feature.
Before my research, I created a research plan to outline what I would wanted to uncover. To determine who my target audience was I decided do market research on Spotify and competitive analysis amongst other top music streaming services. Once I've figured out there was an audience, I created provisional personas to prepare myself for who I would interview. After planning and finishing my interviews I used an Empathy map to to synthesis my notes and created a user persona that would represent our target audience.
POV statements and HMW questions were made in order to start defining the problem and open up ideas for solutions. Once I had my HMW questions set, I created a brainstorm document to come up with as many creative solutions as possible.
To determine which goals were important I created a Business & User Goals document to find the common goals between the user and the business. I then used a Product Roadmap determine the which feature and goals have more priority.
Before I started any designing, I created an Appmap to outline the main screens of the app, User Flow Diagram to view multiple ways the user can accomplish a single task, and a Task Flow Diagram to show how users will accomplish a single task. I then created a UI Requirements document to outline what type of user interface elements I'll need for the design. Wireframe sketches were then created to show the flow of how this new feature will work. I moved on to start creating high fidelity prototypes for users to test
Before testing, I created a Usability Testing Plan to outline what I would test for. After testing with users, I created an Affinity Map Diagram to synthesize my notes and uncover new insights. These insights were used to create design recommendations that I used to revise my current features design.


{% extends "base.html" %} {% block content %}
You may generate an RSA private key with the help of this tool. Additionally, it will display the public key of a generated or pasted private key. This tool works entirely on the client side. No information is transmitted to the server.


This is a collaborate knowledge base for high performance computing and programming, generated from it's respective repository, here.
The Human Pages is a collaborative effort to support researchers and general users of high performancing computing.
For many institutions that offer a cluster resource, getting help is sometimes challenging. It might be the case that help comes by way of a user list, a forum, or an enterprise Help Desk software that the institution has invested in. Getting help usually comes down to copy pasting some terminal output into an email, and then having a back and forth conversation with an administrator to diagnose the issue. What are some problems here?
It should be the case that each error and ticket helps to grow a knowledge base about high performance computing and programming. When a user asks how to submit a slurm job the first time, the administrator should generate a piece of knowledge about it. When another user asks a second time, he or she should be able to discover the knowledge. Ideally, with simple methods like tags, search, and basic natural language processing, the workload of the administrator is lifted because he doesn't need to write a slight variation of the same help ticket response many times.
The static content served from this site is programatically generated from the HelpMe collaborative infrastructure, which receives questions from users directly from the command line, organized them for administrators to find and answer, and then a topic or question that represents one or more questions is saved with version control here, and automatically rendered on this site.
The user is authenticated with a secret in his or her home directory that is shared by the server. Upon receiving the help request, the server validates the request using the key. The environment variables and other sensitive metadata are not exposed publicly in any kind of user interface.
The helpme portal grants accounts to users and adminstrators, and notably, the administrators cross institutional boundaries. A new request shows up as a "post" in a queue, with tags derived automatically from the metadata and video capture. Both administrators and other users can respond with answers and suggestions in a forum style. When an administrator determines a common topic or question is being asked, a topic can be created to add the post to, and a more thorough response written. For this step, and to be deemed an administrator, this means being added as a contributor to this knowledge repo, and what this repository holds are the topics.
You can think of a topic as a wiki page, and each topic is a general idea or question with likely many associated posts from users. Each topic is generated in the helpme interface, and updated here. Each change goes to the knowledge repository as a pull request, where it is discussed by the other administrators. When the pull request is approved and merged, the static site is updated here, as is the helpme interface with a webhook.
This simple setup has many advantages.
You can find the version history (changelog.yml) in the repository "yaml" file and we add it here for your viewing pleasure.


Lockdowns restricting travel and industry imposed to halt the spread of coronavirus have resulted in unprecedented
reductions in deadly air pollution around the world.
Major cities that suffer from the world's worst air pollution
have seen reductions of deadly particulate matter by up to 60% from the previous year, during a three-week lockdowns
period.
A study compared levels of harmful microscopic particulate matter known as PM 2.5. The pollutant,
which is smaller than 2.5 micrometers in diameter, is considered particularly dangerous as it can lodge deep
into the lungs and pass into other organs and the bloodstream, causing serious health risks.
Seven out of the
10 cities studied, including New Delhi, Seoul, Wuhan and Mumbai, saw significant improvements in air quality.
In Venice, the water in the canals cleared and experienced greater water flow and visibility of fish.
The Venice mayor's office clarified that the increase in water clarity was due to the settling of sediment
that is disturbed by boat traffic and mentioned the decrease in air pollution along the waterways.
Demand for fish and fish prices have both decreased due to the pandemic, and fishing fleets around the
world sit mostly idle. Rainer Froese has said the fish biomass will increase due to the sharp decline
in fishing, and projected that in European waters, some fish such as herring could double their biomass.
As of April 2020, signs of aquatic recovery remain mostly anecdotal.
Despite a temporary decline in global carbon emissions, the International Energy Agency warned that the economic
turmoil caused by the coronavirus outbreak may prevent or delay companies from investing in green energy.
However, extended quarantine periods have boosted adoption of remote work policies. As a consequence of the
unprecedented use of disposable face masks, significant numbers are entering the natural environment, adding
to the worldwide burden of plastic waste.
The European Centre for Medium-Range Weather Forecasts (ECMWF) announced that a worldwide reduction in aircraft
flights due to the pandemic could impact the accuracy of weather forecasts, citing commercial airlines' use of
Aircraft Meteorological Data Relay (AMDAR) as an integral contribution to weather forecast accuracy. The ECMWF
predicted that AMDAR coverage would decrease by 65% or more due to the drop in commercial flights.


Being a very conservative person, Mr Sanjay did his investments mostly in fix deposit. He was even very sceptical in buying his own house as he didn’t want to go in for an EMI which took money out of his wallet every month.
After meeting Sudhir Khot, Founder and CEO of Financial Fitness & Kaijing at one of his seminars, he took services with us. Understanding his requirements and his mind-set, Kaijing built a financial timeline which perfectly suited to all his needs.
All his investments were managed properly this time having a high success percentage. Investments were done in equity as well as debt mutual funds. Time period of investment was scheduled as per his updated requirements to pay for his new home.
In a recent meet, he expressed happily that only because of proper investments planned by Kaijing today he is 100% debt free and staying happily in his new home and on other side his equity mutual fund investment is growing at accelerated pace.


| Home | Trees | Indices | Help |
|
|---|
|
|
object --+ | named._Named --+ | named._NamedBase --+ | named._NamedEnumItem --+ | Conic
Lambert conformal conic projection (1- or 2-SP).
| Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
Inherited from Inherited from Inherited from Inherited from |
| Properties | |
|
auth Get the authentication authority ( str ).
|
|
|
datum Get the datum (Datum). |
|
|
E0 Get the false easting ( meter ).
|
|
|
k0 Get scale factor ( float ).
|
|
|
lat0 Get the origin latitude ( degrees90 ).
|
|
|
latlon0 Get the central origin (LatLon2Tuple (lat, lon) ).
|
|
|
lam0 Get the central meridian ( radians ).
|
|
|
lon0 Get the central meridian ( degrees180 ).
|
|
|
N0 Get the false northing ( meter ).
|
|
|
name2 Get the conic and datum names as "conic.datum" ( str ).
|
|
|
opt3 Get the optional meridian ( degrees180 ).
|
|
|
par1 Get the 1st standard parallel ( degrees90 ).
|
|
|
par2 Get the 2nd standard parallel ( degrees90 ).
|
|
|
phi0 Get the origin latitude ( radians ).
|
|
|
philam0 Get the central origin (PhiLam2Tuple (phi, lam) ).
|
|
|
SP Get the number of standard parallels ( int ).
|
|
|
Inherited from Inherited from Inherited from |
| Method Details |
New Lambert conformal conic projection.
Example: >>> from pygeodesy import Conic, Datums, ellipsoidalNvector >>> ll0 = ellipsoidalNvector.LatLon(23, -96, datum=Datums.NAD27) >>> Snyder = Conic(ll0, 33, 45, E0=0, N0=0, name='Snyder') |
DEPRECATED, use method Conic.toDatum.
|
Convert this conic to the given datum.
|
Return this conic as a string.
|
| Property Details |
authGet the authentication authority (
|
datumGet the datum (Datum).
|
E0Get the false easting (
|
k0Get scale factor (
|
lat0Get the origin latitude (
|
latlon0Get the central origin (LatLon2Tuple
|
lam0Get the central meridian (
|
lon0Get the central meridian (
|
N0Get the false northing (
|
name2Get the conic and datum names as "conic.datum"
(
|
opt3Get the optional meridian (
|
par1Get the 1st standard parallel (
|
par2Get the 2nd standard parallel (
|
phi0Get the origin latitude (
|
philam0Get the central origin (PhiLam2Tuple
|
SPGet the number of standard parallels (
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Sun Aug 20 14:42:10 2023 | http://epydoc.sourceforge.net |


Her - Shit - Aaa : An alien
Doesnt look like it but
she can be mean and insenstive
sometimes.
She is sometimes sweet though.


This redirection doesn't have a command. Move to its command (or use 'true' as no-op).
{
echo "Report for $(date +%F)"
uptime
df -h
}
> report.txt
{
echo "Report for $(date +%F)"
uptime
df -h
} > report.txt
ShellCheck found a redirection that doesn't actually redirect from/to anything.
This could indicate a bug, such as in the problematic code where an additional linefeed causes report.txt
to be truncated instead of containing report output, or in foo & > bar
, where either foo &> bar
or foo > bar &
was intended.
However, it could also be intentionally used to truncate a file or check that it's readable. You can make this more explicit for both ShellCheck and human readers by using true
or :
as a dummy command, e.g. true > file
or : > file
.
There are no semantic problems with using > foo
over true > foo
, so if you don't see this as a potential source of bugs or confusion, you can [[ignore]] it.


Mei Heong Yuen Dessert 味香园甜品, has its roots connected to the iconic FARMER BRAND groundnuts, and is the brainchild of Connie and Clara Lee, daughters of Mei Heong Yuen’s founder. We specialize in different varieties of pastes and steamed egg pudding.