|
TSGL
A thread-safe graphics library
|
Color utility class. More...
#include <Color.h>
Static Public Member Functions | |
| static ColorFloat | divideIntoChromaticSections (unsigned int totalSections, unsigned int index, float value, float alpha=1.0f) |
| Returns an HSVA color with a hue dependent on the number of sections. More... | |
| static ColorFloat | divideIntoChromaticSections (unsigned int totalSections, unsigned int index) |
| Returns an HSVA color with a hue dependent on the number of sections. More... | |
| static ColorFloat | randomColor (float alpha=0.0f) |
| Generates a random color. More... | |
| static ColorFloat | blend (ColorFloat c1, ColorFloat c2, float bias=0.5f) |
| Blends two colors with a given bias towards the latter. More... | |
| static ColorFloat | highContrastColor (unsigned int index, int offset=0) |
| Returns an HSV color with high contrast. More... | |
Color utility class.
Colors defines color utility methods to construct colors.
|
static |
Blends two colors with a given bias towards the latter.
This function blends two ColorFloat structs together by taking a linear interpolation between the two and returns the result as a new ColorFloat.
| c1 | A ColorFloat. |
| c2 | Another ColorFloat. |
| bias | A bias between 0 and 1 inclusive. A bias of 0 returns c1, a bias of 1 returns c2, and a bias in between returns a linear interpolation. |
Referenced by tsgl::VisualTaskQueue::update(), and Voronoi::Voronoi().
|
static |
Returns an HSVA color with a hue dependent on the number of sections.
This function returns a ColorFloat whose hue is calculated from the provided section number and the total number of sections. This function is used for creating a chromatic gradient from one part of the spectrum to another.
| totalSections | Unsigned integer specifying the total number of sections. |
| index | Unsigned integer specifying the current section. |
| value | Value component, between 0 and 1 inclusive. |
| alpha | Alpha component, between 0 and 1 inclusive (set to 1.0f by default). |
|
static |
Returns an HSVA color with a hue dependent on the number of sections.
This function returns a ColorFloat whose hue is calculated from the provided section number and the total number of sections. This function is used for creating a chromatic gradient from one part of the spectrum to another.
| totalSections | Unsigned integer specifying the total number of sections. |
| index | Unsigned integer specifying the current section. |
|
static |
Returns an HSV color with high contrast.
This function returns a ColorHSV with hue, saturation, and value calculated to contrast highly with colors with nearby indices.
| index | Unsigned integer representing the current color index. |
| offset | Integer offset for the starting position of the calculation. |
Referenced by tsgl::ProgressBar::ProgressBar(), tsgl::IntegralViewer::rectangleEvaluate(), tsgl::VisualTaskQueue::showLegend(), tsgl::IntegralViewer::trapezoidEvaluate(), and tsgl::VisualTaskQueue::update().
|
static |
Generates a random color.
This function uses rand() to generate a random ColorFloat with an optional specified alpha value.
| alpha | Alpha of the random color to generate. An alpha of 0 will set the alpha to a random legal value (set to 0.0f by default). |
Referenced by Voronoi::Voronoi().


Severn Trent raises dividend despite fall in profits
by Edward ThicknesseSevern Trent raised its dividend this morning despite a fall in profits as a result of delayed regulatory incentives from Ofwat.
Read more: Severn Trent announces new chair
Shares in the utility slipped over 1.5 per cent in the morning's trading.
The figures
Severn Trent announced revenue of £910m for the half year period, up from £881.5m in 2018, a 3.2 per cent increase.
Profit for the group was £286.3m, slightly down on last year's £299.1m.
Earnings per share also fell nearly 10 per cent to 68.8p, which the utility blamed on losses from its Water Plus joint venture with United Utilities.
The group raised its interim dividend to 40p, up from 37.4p in 2018.
Why it's interesting
The company hailed the results as strong but said that profits had fallen due to Ofwat delaying regulatory incentives, bonuses paid by the regulator in the event of companies hitting certain targets.
However, the FTSE 100, which recently appointed Capgemini's Christine Hodgson as its new chairman, said that it had earned £190m in waste incentives over the last four years as it continued to lead the way on environmental approval.
On Tuesday it was announced that the water company could face a substantial fine over claims that it allowed sewage to be discharged into a brook near Shrewsbury.
Read more: Water giants on collision course with Ofwat
The blue chip also used the announcement to launch its sustainable finance framework to strengthen the ties between how Severn Trent finances its business and the delivery of environmental and social programmes.
What Severn Trent said
Liv Garfield, chief executive of Severn Trent, said:
"This has been another six month period where we have delivered for all of our stakeholders through strong performance, continued investment and environmental improvement, helping us to fulfil our goal of being the most trusted water company in England.
"We have continued to offer the lowest bills in the country while also investing for the long term, including in our biggest ever capital project, the £300m Birmingham resilience programme.
"At the same time, we have worked hard to be in the best possible shape for the next five years. Our job is to deliver for all of our stakeholders as we build a sustainable business that positively contributes to the society and environment."
Main image credit: Getty


“What’s the point of λ Calculus?” - Matt
I started this blog off with Lambda Calculus for Government Majors which covered the basic concepts & definitions of lambda calculus. But honestly, knowing what λ means doesn’t really get you anywhere. My colleague Matt pointed this out after reading the piece, and he’s right. So what can you do with λ calculus? I mean really, what’s the point of this fancy algebra? Hopefully the following article explains why people get so excited about this stuff.
Refresher
λa.a => λ indicates this is a lambda expression/function β reduction => replace a given λ expression with a common name α conversion => create unique names for each variable to prevent collisions η reduction => strip out unnecessary bound variables
For more info on these just take a peek back at my earlier post.
Addition
Before getting into what you can do with λ calculus, I should probably show an example of how it actually works once it’s been expanded. Expanding a λ expression is essentially replacing bound variables with provided arguments. This can end up throwing a ton of λ and parens at you, but it helps clarify the relationship between a reduced function & any data passed in. To start with, I’ll take advantage of the fact that λ calculus is simple. So simple that it has no concept of numbers, addition, or anything else. This poses a bit of a problem if I’m trying to illustrate using λ for addition. I guess we’ll just start at the beginning and define the natural numbers.
We know that for all natural numbers x >= 0 that x + 1 is also a natural number. This means the notation we’re all use to actually use for, say 5, is equivalent to 0+1+1+1+1+1. I’ll use Church encoding (named after Alonzo Church, the inventor of λ calculus) to encode this property into valid λ functions.
zero = λa.λn.n
one = λa.λn.a n
two = λa.λn.a (a n)
three = λa.λn.a (a (a n))
....
What’s really interesting about these numbers and pretty much every other λ expression you’ll see is that it’s a higher order function, or a function that takes another function. Those lambda expressions will grow pretty large pretty quickly, so I’ll just be using normal numbers instead (developers are lazy after all).
Are we ready for addition yet? We know how to create numbers, so what else do we need? It turns out not much:
add = λx.λy.λa.λn.m a (y a x)
So now that I have a whole bunch of λ’s & some parens, what’s actually going on here? Let’s use 1 + 1 as an example:
add( one one) = ((λx.λy.λa.λn.x a (y a n) ) λc.λd.c d ) λ.e.λf.e f
=> I performed an α conversion on the line above to avoid shadowing on 'one'
((λc.λd.c d) a (y a n)) λe.λf.e f
((λc.λd.c d) a ((λ.e.λf.e f) a n))
c ((λe.λf.e f) a n)
a (a n)
Who knew something as simple as 1 + 1 would expand into that! Thankfully this is the equivalent of doing binary arithmetic in assembler, i.e. something you won’t need to do again. On the positive side this illustrates the power of function expansion using higher order functions. It takes a while to work through, and I’d strongly recommend working through the same example using 1 + 2 since you already know the answer is λa.λn.a (a (a n)).
What Use Is This?
One word. Compilers. When you step back and think about it, λ Calculus is actually Turing Complete (hopefully that’s more apparent after our foray into Church encoding), so it’s a good fit for trying things out quickly. Anything that can compile down to λ Calculus (any Turing complete language) can then be translated up into another language for execution. So whenever someone says “every language is the same” you can show off your knowledge of λ calculus & isomorphisms between languages!
Hopefully this helped, but if you want to learn more check out these resources:


You need to process the entire dataset to collect the following information:
| Property | Description |
|---|---|
| Start Date | Date and time of the first data point |
| Asset Coverage | Number of assets covered by the dataset |
| Data density | Dense for tick data. Regular or Sparse according to the frequency. |
| Resolution | Options: Tick, Second, Minute, Hourly, & Daily. |
| Timezone | Data timezone. This is a property of the data source. |
| Data process time | Time and days of the week to process the data. |
| Data process duration | Time to process the entire the dataset. |
| Update process duration | Time to update the dataset. |


Skill Set:
Programming Languages:
C, C++, Java
Operating Systems:
Linux – Ubuntu, Windows - 8/10, and Android
Programming Tools:
HTML, XML, CSS, JavaScript
Others:
Microsoft Office


Feb 27, 2018
Solar Charger For Mobile Phones
This is my first project and with a problem statement completely annoying same as the way u guys feel while looking over it. But this project had an intresting problem statement which drove my hands over it .Is is an Internally Funded Project by my college which attained its completion on 16th Dec 2019 and was also "certified" for the same.
As per the sequence this projects holds 2nd position.This project was assigned to me by NOKIA PVT LTD while serving as an Data Science intern in their company.It is my first Deep Learning project that focuses on removing anomolies such as absence of screws during industrial manufacturing process.
This project was triggered to monitor the screwing pattern while manufacturing the product.The above process done under the camera vision alerts the manufacturer incsase of any mismatch based on the model trained upon MNIST datset.This project was implemented using KERAS,openCV later a QR-code solution was also proposed for the same..
This was my first Hackathon Project showcased at MIT Pune where I & my team emerged as one of the top 5 teams out of 1000 teams applied. This app was a dream one to be developed 😀 as this brings both Machine Learning & Android TogetherThe project features : Chatbot , Video Call , Disease Predictor from Blood Report , Nearby Hospital finder etc..
I welcomed 2020 by developing this web App which again was a project done for an company level hackathon organized by RAMCO SYSTEMS ,Chennai.Interstingly we won the 2nd place on this event with an annoying team name "BITS PLEASE" 😜 .This app was developed to offer a friction-less customer service experience at retail stores.The android version of this is also available in my repo
Its my "first Government Funded Project" offered to me by my college following the completion of my Internally Funded Project Solar Charger for Mobiles .
The project had been initiated with a full swing and a funding amount of "4 lakhs!!!!" by the government.As the game signifies the project has various modules to be implemented that focuses towards "betterment of life-style affected by this disease.


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Posting Comments
In order to post comments to stories, you will have to
create an account.
Accounts will generally be validated within 24 hours, and of
course will be disabled if there is abuse.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Boners
Home
Make Dailyrotten your start page
|
|
|
March 18, 2002
Leading Paralympian in doping scandal
Voice of America | Submitted by: Nerves
At every Olympic venue, cripples gather alongside normals to hold
their own games, which highlight "athletic achievements rather than
their disability" according to the Paralympics website. But apparently
platitudes are not enough to stop them from having their very own
drug scandals, with Germany's leading Paralympian now suspended
for doping, and soon to be expelled from the games.
|
|
Read article...
|
|
No Fat Cheerleaders
The Daily Camera | Submitted by: Pete
"CU's coach, worried about injuries to male cheerleaders, has told women
planning to attend next month's tryouts that they should weigh less than 120
pounds if they hope to make the competitive team." [Also, they should be hot.]
"The new weight guideline, for women shorter than 5-foot-7, replaces an
informal 130-pound limit that Coach Travis Prior instituted last season — a
rule that temporarily sidelined several female cheerleaders."
|
|
Read article...
|
|
Timberwolves star not hung like a horse
City Pages | Submitted by: Narcoleption Reflux
"The Star Tribune did not print a picture of Garnett that had been
purposely altered to exhibit any hidden assets. It was a fluke. The purported
appendage depicted in Ann Haisenfelt's Associated Press photo is actually the
unfortunate confluence of the All-Star forward's baggy shorts and some
perfectly natural shadows."
|
|
Read article...
|
|
Sportscaster scrawls profanities on telestrator
SportsLine | Submitted by: DEShif
"CBS broadcaster Eddie Fogler apologized to the father of Georgia players
Jarvis and Jonas Hayes after scrawling profane remarks on a telestrator during
the Bulldogs' second-round loss to Southern Illinois on Sunday. During a
commercial break late in the second half, Fogler -- in his first season at CBS
-- drew a circle around a camera shot of James Hayes, who was sitting with his
wife, Yvonne, and other Bulldogs supporters. Fogler also scrawled two
profanities on the telestrator, along with "me" and circled them."
|
|
Read article...
|
|
Dead Man Flying
Des Moines Register | Submitted by: B.J. Duckworth
"Authorities disagree on whether Walsh, who had a history of heart- and
kidney-related health problems, died midflight or before he boarded the
plane. "We're very satisfied that this passenger was alive when he boarded
our aircraft," Patty Nowack, spokeswoman for the Phoenix-based America
West Express, said Sunday. "We never would have allowed a passenger who
had passed away to board an aircraft."
|
|
Read article...
|
|
Drunk? Take a taxi, go to jail anyway
Rocky Mountain News | Submitted by: Covix
"The trouble started on the night in September 2000 when two Denver cops
stopped a taxi driver for speeding and careless driving. Baird was a
passenger in the back seat, on her way home... The cabbie got only a warning,
but the cops ordered Baird out of the cab and asked if she had been drinking
alcohol... Baird said she had. That, she explained, was why she was taking
a cab home." They arrested her anyway.
|
|
Read article...
|
|
Violence stops PA 'Stop the Violence' program
Beaumont Enterprise | Submitted by: Elizabeth
"The Port Arthur school district Wednesday canceled the performance of an
anti-violence play after fighting broke out among some of the 500 high school
students watching it a day earlier. Thomas Jefferson High School students
Tuesday presented "Stop the Violence," a play about conflict resolution and
the consequences of violence, in the school auditorium for all three high
schools. The performance was part of the school district's annual Peace Week,
five days of events that encourage peaceful solutions to problems."
|
|
Read article...
|
|
U.S. wants 'bunker busting' nukes
USA Today | Submitted by: Soylent
"Energy Department scientists will begin work next month on a new bunker
busting nuclear weapon that could mark the most significant advance in the
U.S. nuclear arsenal in a decade... The research project marks a shift from
designing weapons of mass annihilation to smaller arms that the
administration says would better deter 'rogue' states but critics say
could make nuclear war more plausible."
|
|
Read article...
|
|
CIA likely responsible for Anthrax scare
BBC | Submitted by: Geoff
Now normally we take any claims involving the CIA with a grain of salt;
however, this is from the BBC's Newsnight, which is hosted by Jeremy Paxman,
who with Robert Harris wrote the superlative book, "A Higher Form of Killing:
the Secret Story of Chemical and Biological Warfare". Newsnight is also one
of the more well-respected shows around. On top of that, experts on NPR and
a few other news agencies have been saying that the FBI has known who
conducted the attacks since October, but was afraid to prosecute because he
was "one of their own".
|
|
Read article...
|
|
|
|
|


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 3
Dietary
Heat the oil in a large pan over a medium heat. Add the onion and fry gently until transparent and softened.
Add the leek and place a lid on the pan. Reduce the heat and cook for 2-3 minutes, or until the leek is softened.
Add the carrots and the stock. Increase the heat to bring to the boil, then reduce the heat to simmer for 20 minutes.
Add the milk and simmer for a further five minutes.
Transfer to a food processor. Blend until smooth.
Allow to cool slightly and add the chopped coriander and season, to taste, with salt and freshly ground black pepper.
To serve, pour the soup into three bowls and serve with a crusty roll alongside.


--- ---
Business model canvas bootstrapping deployment startup. In A/B testing pivot niche market alpha conversion startup down monetization partnership business-to-consumer success for investor mass market business-to-business.
Release creative social proof influencer iPad crowdsource gamification learning curve network effects monetization. Gamification business plan mass market www.discoverartisans.com direct mailing ecosystem seed round sales long tail vesting period.
Product management ramen bootstrapping seed round venture holy grail technology backing partner network entrepreneur beta marketing value proposition. Android stealth conversion scrum project network effects. Creative alpha long tail conversion stealth growth hacking iteration investor A/B testing prototype customer. Startup www.discoverartisans.com direct mailing launch party partnership market ramen metrics focus value proposition.
Stock infrastructure seed round sales paradigm shift technology user experience focus gamification. Partnership metrics business plan stealth business-to-business. Deployment graphical user interface monetization. Twitter incubator scrum project entrepreneur branding burn rate ramen backing paradigm shift virality crowdsource.
Social proof MVP ecosystem. Ramen launch party pitch deployment stealth. Vesting period MVP equity. Focus creative partnership founders iteration agile development infographic.
Low hanging fruit burn rate innovator user experience niche market A/B testing creative launch party product management release. Www.discoverartisans.com influencer business model canvas user experience gamification paradigm shift startup research & development iPad agile development. Strategy incubator infographic success marketing buzz A/B testing responsive web design. Traction research & development pitch seed money venture niche market accelerator network effects.


Calculation of pressure loss for a valve with different geometries at overall flow regime for incompressible and single-phase fluid flow in dependence of its opening.
This function shall be used inside of the restricted limits according to the referenced literature.
Wide variations in valve geometry are possible and a manufacturer will not necessarily maintain geometric similarity between valves of the same type but of different size. Here pressure loss can be estimated for the following types of a valve:
The mass flow rate m_flow for valves out of pressure loss is determined by:
m_flow = [rho * dp * Av^2 / (zeta_TOT/2]^0.5 m_flow = (2/zeta_TOT)^0.5 * Av * (rho * dp)^0.5 m_flow = valveCharacteristic * Av * (rho * dp)^0.5
with
| rho | as density of fluid [kg/m3], |
| Av | as (metric) flow coefficient (cross sectional area) [m^2], |
| m_flow | as mass flow rate [kg/s], |
| valveCharacteristic | as coefficient of a valve in dependence of its opening [-], |
| velocity | as mean velocity [m/s], |
| zeta_TOT | as pressure loss coefficient [-]. |
The valveCharacteristic is determined out of a correlation for the pressure loss coefficient (zeta_TOT) in dependence of its opening. The reason for introducing an additional variable valveCharacteristic is a different definition of the following pressure loss correlations of valves.
The pressure loss coefficient (zeta_TOT) of a valve with different geometries are shown in dependence of the opening in the figure below.
Note that the pressure loss coefficients (zeta_TOT) are numerically optimized for very small openings (opening ≤ 5%). At openings smaller than 5% the pressure loss coefficient is smoothly set to a maximum value (zeta_TOT_max) to be adjusted as parameter. Therefore a very small leakage mass flow rate can be adjusted for a given pressure difference at almost closed valves. A very small leakage mass flow rate can often be neglected in system simulation with valves, whereas the numerical behaviour of the simulation is improved.
The mass flow rate of different valves at a constant opening of 50% in dependence of pressure loss is shown in the figure below.


Israeli leader Netanyahu said corruption investigators 'were after me'
JERUSALEM (Reuters) - Israeli Prime Minister Benjamin Netanyahu on Thursday said corruption allegations against him were tantamount to a coup, and that the investigators “weren’t after the truth, they were after me.”
In a televised speech shortly after Israel’s attorney general indicted him on charges of bribery, breach of trust and fraud, Netanyahu, 70, claimed that the investigation against him was tainted by bias. He denies all wrongdoing.


Following our planned timeline, we have now established the Nordix Foundation and are in the process of forming our founding board. Our next step is to hand responsibility for Nordix to the board as they step into leadership roles for the foundation.
To celebrate this milestone, as we come together to move Nordix into an operative establishment phase, we would like to host a dinner for our broader community discussing our planned activities, potential for engagement and expected/desired outcomes for 2018. We will also discuss our communication strategy, industry engagements and plans for establishing Nordix as a recognizable brand in the Nordic ecosystem. Please RSVP if you are able to join us on the 12th at<EMAIL_ADDRESS>We look forward to seeing you there and sharing the journey of establishing Nordix with you.
Regards,
The Nordix team


Configuration is a topic that is often debated among software teams. It’s one of those issues that every engineer has an (often strong) opinion about and there isn’t a definitive right or wrong answer. Even something as basic as the method for passing config to an application can be tough to agree on.
Some prefer command-line arguments, others environment variables, some swear by passing config as a JSON file to the application, and believe it or not there’s even one guy in my office who prefers XML. To illustrate the point, check out Microsoft’s documentation on ASP.NET Core configuration. It’s a “mere” 77-minute read according to Microsoft.
Almost every organisation should be running multiple different instances of the same application, with different configurations. There could be any number of reasons for this. Here are some real-world examples:
- Different environments: dev, test, stage, and/or prod.
- Data importers might have multiple instances, each consuming from a different Kafka partition in the same Kafka cluster.
- A trading system might implement the same strategy, but across different exchanges and/or instruments.
- Some critical applications might have failover systems that use backup versions of some dependencies such as replicas of databases etc.
These separate instances will often have slight differences in their configuration, with many commonalities. Regardless of the vector used to deliver the config to the application, engineers will have to define the config for each of these instances of the application. It is essential for a developer platform to have a tool in its toolchain that allows engineers to define these commonalities in the config between different instances, while still allowing specialisations for specific instances.
Config management is an important layer of the developer platform. The most natural way to define config is to use some sort of language or markup format. Before discussing the implementation details of such a config management language it might be good to define the ideal attributes. Ideally, engineers should be able to define config in a language that is:
- Easy to understand
- Expressive
- Constrained
- Statically checked (as much as possible)
- Versioned
- Audited
- Integrated with the deployment infrastructure
I’ll start by presenting the view of Matt Rickard who has an excellent blog that you should definitely check out. In a blog post titled Every Sufficiently Advanced Configuration Language is Wrong Matt argues that:
For basic configuration, YAML or JSON is usually good enough. It falls apart when you try to do more:
- Template it with a templating engine
- Use esoteric language features to reuse code (anchors and aliases)
- Patch or modify it with something like JSONPatch
- Type-check or schema validate
I agree with Matt’s assertion that for basic config we needn’t look further than JSON or YAML. I also agree that, when done wrong, templating and esoteric language features will be more of a bane than a boon.
Matt then goes on to mention that these are anti-patterns, and that more advanced configuration languages have been developed (Jsonnet, CUE, Dhall) to solve these problems. On the trend of configuration languages becoming ever more advanced Matt says:
The logical extreme is becoming more evident – advanced configuration in general-purpose programming languages. You can see this in the emergence of Typescript for Infrastructure-as-Code. For the most basic (and human 0x777) configuration needs, there will always be simple formats – YAML, JSON, INI, etc.).
For everything else, general-purpose languages will win out.
The steel man version of Matt’s argument boils down to: engineers are smart, and we should be giving engineers the most powerful and flexible tools possible. General-purpose languages like Python or TypeScript would allow engineers to use all the typical software development techniques to write maintainable, testable config.
Unfortunately, in the absence of strict discipline, guidelines, and/or adherence to patterns the power of a general-purpose language could quickly lead to config that is unmaintainable. My objection isn’t so much with using a general-purpose language as it is with not having any constraints on how config is written.
To help back up my point, I will refer to a great talk by Dominick LoBraico of Jane Street: Caveat Configurator: how to replace configs with code, and why you might not want to.
In this talk, Dominick articulates the journey Jane Street took from having static configs in config files to the other extreme of having config written in OCaml and distributed along with the code of the applications themselves. Dominick mentions various trade-offs they had to make with regards to:
- Expressiveness
- Versioning
- Safety
Jane Street ended up finding a happy medium with what he calls a “config generation” step. I assume this config generation step involves evaluating all the configuration code and producing some sort of output (JSON or other) that can be versioned separately from the application code and the config source code.
As an engineer in a Platform Engineering team, I can say that I have been on much the same journey as Dominick. Over the last year I have been setting the vision and direction for the company’s internal developer platform. In the process I’ve had to redesign a lot of the implementation of the config management and deployment infrastructure.
The configuration management system is YAML-based. There are three different types of config YAML files:
- Libraries: can be shared between multiple applications or inherited from.
- Applications: map one-to-one with applications that are deployed within the company’s infrastructure. In object-oriented terms, these would be classes.
- Deployments: contain the definitions of all the instances of applications. In object-oriented terms, these would be instantiations of the classes defined in the application config YAMLs.
Libraries and Applications can declare:
- Variable declarations: type, data type, default definition.
- Plugin definitions: often some external systems need to be configured in order for the application to function properly (e.g. httpd config, systemd units, or crontab entries).
- Commands: command line string that gets run on start, or custom commands.
- Hooks: custom commands that are executed at certain points in the application lifecycle.
Deployments can define:
- Instance: the name of a specific deployment. Must be unique.
- Variable definition overrides: allows specific definitions per instance.
- Environment: dev, test, stage, prod.
Certain clearly defined fields (variables, commands, hooks, plugin definitions) can use Jinja templates that can reference variables that are defined within the same scope or imported scopes. This allows engineers to share common config between related applications/instances. Engineers also have access to the power of Jinja’s templating engine with Native types which allows returning Python types as the result of rendering Jinja templates. Jinja implements a subset of Python along with useful primitives for string manipulation such as filters.
All config YAMLs are stored and versioned in a central git repository. This versions the source of config and enforces the regular software development best practices of pull requests and code reviews.
As a simple, somewhat contrived example we could have one application that consumes some data feed of trades and publishes it to a Kafka topic. We could then also have a consumer that reads from the same Kafka topic. Ignoring the complexities around Kafka partitioning, we could define the config for these fictional applications as follows:
The Kafka configuration can be shared between instances. We place this in its own library config.
# kafka.library.yml
variable_declarations:
bootstrap_servers:
type: static
data_type: string
instances:
dev:
bootstrap_servers: kafkadev3,kafkadev4,kafkadev5
prod:
bootstrap_servers: kafkaprod11,kafkaprod12,kafkaprod13
Notice how we’ve defined a set of Kafka bootstrap server hostnames per environment.
The producer should have its own application config:
# producer.application.yml
import:
- name: kafka
instance: '{{ environment }}'
- name: resource
variable_declarations:
telemetry_port:
type: runtime
data_type: integer
default: '{{ resource.tcp_port() }}'
trading_instrument:
type: static
data_type: string
commands:
start: >
bin/producer
--bootstrap-servers {{ kafka.bootstrap_servers }}
--kafka-topic trades-{{ trading_instrument }}
--telemetry-port {{ telemetry_port }}
--trading-instrument {{ trading_instrument }}
The telemetry_port
is a runtime
variable. This means that the value of the variable is not known until the application commands are run. In this specific case, we are allocating a telemetry port for the application dynamically from a pool of reserved ports. Care is taken to ensure that runtime variables cannot be referenced from a static context. Static variables should be resolvable at config generation. The goal is to make as many of the variables static as possible. Static variables offer advantages over runtime variables: they can be statically checked at config generation. Config generation is triggered by a webhook on the version control system. This allows developers to catch classes of errors at code review as opposed to the first time an application is started up in production.
The trading_instrument
is a declared variable that has no default definition. This means that it will have to be overridden in the deployment config.
The consumer should also have its own application config:
# consumer.application.yml
import:
- name: kafka
instance: '{{ environment }}'
variables:
trading_instrument:
type: static
data_type: string
commands:
start: >
bin/consumer
--bootstrap-servers {{ kafka.bootstrap_servers }}
--kafka-topic trades-{{ trading_instrument }}
--trading-instrument {{ trading_instrument }}
The consumer can import the same Kafka config as the producer. This means we have no duplicate definition of the Kafka bootstrap_servers
.
The deployment configs define the instances of the producer and consumer:
# producer.deployment.yml
application: producer
deployments:
- instance: default
environment: dev
overrides:
trading_instrument: DUMMY
- instance: SPX
environment: prod
overrides:
trading_instrument: SPX
- instance: DAX
environment: prod
overrides:
trading_instrument: DAX
# consumer.deployment.yml
application: consumer
deployments:
- instance: default
environment: dev
overrides:
trading_instrument: DUMMY
- instance: SPX
environment: prod
overrides:
trading_instrument: SPX
- instance: DAX
environment: prod
overrides:
trading_instrument: DAX
These deployment configs for our fictional applications would be committed to the central git repository containing all the config YAML files. Once merged to master, the config generation CI step would produce new versions of JSON configurations for these applications in a standardised format that is understood by the deployment system. This JSON config is versioned and the engineer is able to deploy the new version of the config for that application or revert to an older version of the config by simply selecting which version of the config to deploy from a dropdown.
At this point it might be useful to check back with the ideal attributes we defined for our configuration management tooling:
Easy to understand: I’m biased, but I think the DSL is relatively easy to understand and use. There are only a handful of concepts, the rules are clearly defined, and it’s unlikely that engineers will write unmaintainable config in such a simple DSL.
Expressive: This DSL is not as expressive as a general-purpose programming language, but it still leaves a decent amount of the design decisions of how to structure the config up to the engineer. Variable definitions can be referenced from other variable definitions, namespaces can be imported into other namespaces, and the developer has access to the Jinja templating engine which implements a subset of Python.
Constrained: The DSL tries to be the happy medium between the extremes of a general-purpose language with no framework and the other extreme of a rigid structure that needs development effort at the framework-layer to support new types of configuration. The constraints that are enforced help reduce complexity and reduce the chances of config becoming unmaintainable.
Statically checked: The static parts of the config are evaluated at config generation time. This provides a safety net to engineers that allows them to find issues like syntax errors, references to undefined variables, runtime variables referenced from a static context, circular dependencies, and invalid YAML before they even merge their PRs.
Versioned: Both the config source and the outputs of config generation are versioned.
Audited: The deployment infrastructure keeps track of which versions of the config are deployed to which instances. Changes are easily diffable via the deployer’s UI, so engineers are always aware of what changes they are deploying.
Integrated: Engineers will happily use tools if it can save them manual work and time. By having the config management fully integrated with the rest of the developer platform we can automate steps that developers need to take to comply with the software development lifecycle policy. This includes automatically generating change control requests from the config changes which can be submitted for review, automating the deployment process, allowing easy rollbacks, integrating with alerting and monitoring systems etc.
Conclusion
The key to good configuration management is to find the right balance between expressiveness and constraints. Engineers should be given a language that is powerful enough to adequately model the config of their application. However, by adding some sensible constraints to a configuration language, we can make configuration more maintainable, versioned, audited, integrated, and easier to understand.


Smart-Placement-Testing-Staging
UK - Iphone - user retargeting
IE - Iphone - user retargeting
AT - Iphone - user retargeting
AU - Iphone - user retargeting
BE - Iphone - user retargeting
CA - Iphone - user retargeting
FR - Iphone - user retargeting
DE - Iphone - user retargeting
IT - Iphone - user retargeting
ES - Iphone - user retargeting
CH - Iphone - user retargeting
NL - Iphone - user retargeting


Step 1: Your details
Name
Email
Phone
Step 1: Delivery address
Address
Post code
Country
Step 1: Card details
Card type
VISA
AmEx
Mastercard
Card number
Security code
Name on card
BUY IT!


When you're working in your notebook and something goes awry, the issue could be your data schema, the choices you made while building a chart, or something else. To understand what went wrong, check the logs!
PixieDust comes complete with logging to help you troubleshoot issues. To invoke it, just enter the following command in a notebook cell and run:
%pixiedustLog
-l
debug
PixieDust shows you a log of recent activities.


Is a Pure Javascript Implementation of TitleBar Alert or Notification.It Can Perform Blinking of Html Titlebar When Required.
<script type="text/javascript" src="https://raw.githubusercontent.com/flouthoc/blinkTitle.js/master/index.js"></script>
blinkTitle("Head's Up","Notification",500);
This Basic Example of blinkTitle . The function will change toggle the title between "Head's Up" and "Notification" . Transition Time between these two messages will be 1000 millisecons
blinkTitle("Head's Up","Notification",500,true);
This Basic Example of blinkTitle . The function will change toggle the title between "Head's Up" and "Notification" . Transition Time between these two messages will be 1000 millisecons.The Alert/Notification will be shown when Users attention in out of focus from the page.By the implementation of onfocus and onblur
blinkTitleStop();
You Can Stop The blinkTitle() anytime By Using blinkTitleStop()
1.) Timeout Implementation
2.) Simplifying Arguments To JSON format
3.) Minifying the source


enum class LabelPosition
The legal positions of Labels, in relation to the view they're attached to. By default, labels are positioned to the LEFT of the view they're attached to.
Since 1.0.0
val value: Int


Mercado Pago Security Hole
On April 17th we discovered a security vulnerability in the Mercado Pago API. Before disclosing this information, we contacted Mercado Libre and sent them a detailed report of the security hole and how to reproduce it.
The vulnerability allowed anyone to get an access token without using the right secret for an account.
You can see how the authentication process works on Mercado Pago over here: https://www.mercadopago.com.ar/developers/en/api-docs/basics/authentication/
After 7 hours, Mercado Pago fixed the vulnerability in their production environment.
How we reproduced the bug
This example uses Ruby 2.1.2 and the mercadopago gem.
2.1.2 :001 > token = MercadoPago::Authentication.access_token("8872", "lalalala")
The first parameter is the client id (an account in Mercado Pago) and the second parameter is the secret (only the account holder should know this)
For client id we used 8872
which doesn't belong to us and for secret we used lalalala
to show that it wasn't really the right secret.
With that information, we were able to acquire the token. With it you can access a lot of information associated with the payments in the account.
For example:
2.1.2 :002 > response = MercadoPago::Collection.search(token["access_token"], status: :approved)
With this query, you could see all the approved transactions for an account that didn't belong to you.
For example:
=> {"paging"=>{"total"=>98, "limit"=>30, "offset"=>0},
"results"=>[
{"collection"=>{"id"=>753859418, "site_id"=>"MLA",
"date_created"=>"2014-03-13T16:58:20.000-04:00",
"date_approved"=>"2014-03-13T17:00:38.000-04:00",
"last_modified"=>"2014-03-13T17:00:38.000-04:00",
"money_release_date"=>"2014-03-15T17:00:38.000-04:00",
"operation_type"=>"regular_payment",
"collector_id"=>16605960, "sponsor_id"=>nil,
"payer"=>{
"nickname"=>"XOMBULABSX",
"first_name"=>"JON",
"last_name"=>"SNOW",
"phone"=>{"area_code"=>"291", "number"=>"123412", "extension"=>nil},
<EMAIL_ADDRESS>"id"=>83110350,
"identification"=>{"type"=>nil, "number"=>nil}},
"external_reference"=>"1448",
"merchant_order_id"=>11567450,
"reason"=>"Premium package", "currency_id"=>"ARS",
"transaction_amount"=>81, "total_paid_amount"=>81,
"shipping_cost"=>0,
"account_money_amount"=>0,
"mercadopago_fee"=>4.85,
"net_received_amount"=>76.15,
"marketplace_fee"=>nil,
"coupon_id"=>nil,
"coupon_amount"=>nil,
"coupon_fee"=>nil,
"finance_fee"=>0,
"status"=>"approved",
"status_detail"=>"accredited",
"status_code"=>"00",
"released"=>"yes",
"payment_type"=>"credit_card",
"installments"=>1,
"installment_amount"=>nil,
"deferred_period"=>nil,
"cardholder"=>{"name"=>"JON SNOW", "identification"=>{"type"=>"DNI", "number"=>"26000000"}},
"statement_descriptor"=>"WWW.MERCADOPAGO.COM",
"transaction_order_id"=>nil, "marketplace"=>"NONE", "tags"=>[],
"notification_url"=>nil}},
{"collection"=>
{"id"=>756415807,
"site_id"=>"MLA",
"date_created"=>"2014-03-20T15:42:35.000-04:00",
"date_approved"=>"2014-03-20T15:42:35.000-04:00",
"last_modified"=>"2014-03-20T15:42:35.000-04:00",
"money_release_date"=>"2014-03-22T15:42:35.000-04:00",
"operation_type"=>"regular_payment",
"collector_id"=>16605960,
"sponsor_id"=>nil,
"payer"=>{
"nickname"=>"YOURNICKNAME",
"first_name"=>"Matias",
"last_name"=>"OMBU",
"phone"=>{"area_code"=>"291", "number"=>"4000000", "extension"=>nil},
<EMAIL_ADDRESS>"id"=>18878708,
"identification"=>{"type"=>nil, "number"=>nil}},
"external_reference"=>"1457",
"merchant_order_id"=>13031193,
"reason"=>"Premium package",
"currency_id"=>"ARS",
"transaction_amount"=>81,
"total_paid_amount"=>81,
"shipping_cost"=>0,
"account_money_amount"=>0,
"mercadopago_fee"=>4.85,
"net_received_amount"=>76.15,
"marketplace_fee"=>nil,
"coupon_id"=>nil,
"coupon_amount"=>nil,
"coupon_fee"=>nil, "finance_fee"=>0,
"status"=>"approved",
"status_detail"=>"accredited",
"status_code"=>"00",
"released"=>"yes",
"payment_type"=>"credit_card",
"installments"=>1,
"installment_amount"=>nil,
"deferred_period"=>nil,
"cardholder"=>
{"name"=>nil,
"identification"=>{"type"=>nil, "number"=>nil}},
"statement_descriptor"=>"WWW.MERCADOPAGO.COM",
"transaction_order_id"=>nil,
"marketplace"=>"NONE",
"tags"=>[],
"notification_url"=>nil}},
...
}
The sensitive information in this code snippet has been intentionally changed
So, during the time that this vulnerability was live (at least 7 hours) an attacker could have used it to:
Find information about all the payments that your account had received since you started using the service
Find information about your clients, their DNI, name, phone number
All the attacker needed to exploit this vulnerability was a Mercado Pago account ID and some basic tech knowledge.
How we discovered this bug
At OmbuShop, our integration tests use the Mercado Pago sandbox to check that the amount that a client has to pay is correct. I know that this isn't ideal (or is it?) but it's as real as it gets for our integration tests.
One of our tests checked that you couldn't get collections information with the wrong user credentials. When the test started failing in our continuous tests, we started digging around and found this security hole.
What worries me
It's hard to understand how such a big payment processor never published information about this security hole. I would expect them to know if some information was accessed by people who didn't have access to it.
They could check their access logs and see who accessed their API using a secret that wasn't the right one. Then they could inform their customers of this problem and warn them about this situation.
Mercado Pago, a product of Mercado Libre ($MELI) which is a publicly traded company, doesn't even have public versioning information of their API nor a continuous integration suite that would catch such an obvious vulnerability.
Maybe I am just used to the security reports published by Github about their vulnerabilities. Maybe Github is way more serious than Mercado Pago about privacy and online security.
I think that Mercado Pago needs to step up their game and be more transparent about their platform and user privacy.
A good place to start would be a better way to receive security vulnerability reports and disclosing information about their security problems.
Until today, they haven't disclosed any information about this security hole and it's very hard to find a way to report a security issue to them.


{% if create %}Add{% else %}Edit{% endif %} account
Help with creating a new account
An account allows grouping of domains belonging to a particular entity, such as a customer or
department.
A domain can be assigned to an account upon domain creation or through the domain administration
page.
Fill in all the fields to the in the form to the left.
Name is an account identifier. It will be stored as all lowercase letters (no
spaces, special characters etc).
Description is a user friendly name for this account.
Contact person is the name of a contact person at the account.
Mail Address is an e-mail address for the contact person.


CAAT.ActorContainer
A CAAT.ActorContainer instance, is a holder for other Actors including other CAAT.ActorContainers instances. Its main responsibility is to contain and manage other Actors.
That means, it will compound every operation hierarchically for itslef and its contained Actors so that it will compose its transformations to all of its contained Actors, and that it will animate, paint and destroy its children when necessary.
The most special kind of ActorContainer are the Director themselves, as well as every Scene instance. That means, you can set a transformation on the Scene and it will be applied for every contained actor, as in the scene switching performed by the Director.
All the particularities of the CAAT.Actor object instances, apply and are available as well in every kind of ActorContainer.
While treating with ActorContainers, we'll take special attention on Alpha composition. If isGlobalAlpha flag is set, the ActorContainers Alpha value will be set as the reference for all of its children. Otherwise, the alpha value will be set only for this ActorContainer and won't affect any contained children.
var _director_9= new CAAT.Director().initialize( 400, 200, document.getElementById('_c9')); // create a vertical gradient to apply to text. var gradient= _director_9.ctx.createLinearGradient(0,0,0,_director_9.canvas.height); gradient.addColorStop(0,'#ffff00'); gradient.addColorStop(0.5,'#00ffff'); gradient.addColorStop(1,'blue'); var _scene_9= _director_9.createScene(). setFillStyle(gradient); _director_9.addScene( _scene_9 ); // Global alpha false (default) var _c9_c0= new CAAT.ActorContainer(). setBounds( 10,10, 180,180 ). setFillStyle( 'red' ). setAlpha(.25); var _c9_child0= new CAAT.ShapeActor(). setShape( CAAT.ShapeActor.prototype.SHAPE_CIRCLE ). setFillStyle( 'green' ). setBounds( 20, 20, 140, 140 ); _c9_c0.addChild( _c9_child0 ); // Global alpha true var _c9_c1= new CAAT.ActorContainer(). setBounds( 210,10, 180,180 ). setFillStyle( 'red' ). setAlpha(.25). setGlobalAlpha(true); var _c9_child1= new CAAT.ShapeActor(). setShape( CAAT.ShapeActor.prototype.SHAPE_CIRCLE ). setFillStyle( 'green' ). setBounds( 20, 20, 140, 140 ); _c9_c1.addChild( _c9_child1 ); _scene_9.addChild( _c9_c0 ); _scene_9.addChild( _c9_c1 ); CAAT.loop(1);


[gecode-users] How to install Gecode installed the Gecode/J using cygwin
Guido Tack
tack at ps.uni-sb.de
Fri Nov 23 14:39:35 CET 2007
Debdeep wrote:
> hi,
> I was trying to install Gecode-1.3.1 msi, but i have got an error
> message saying "Can't find interface 1". So i was trying to install
> using cygwin. but where is the package-config folder ? I have compiled
> the Gecode-1.3.1 when i tried to install Gecode/J it complaning about
> the package config path. Any idea how to install it ?
You have to have pkg-config installed when you configure Gecode 1.3.1
(you can get it from cygwin). Then configure will detect that pkg-
config is present and generate the necessary files, which will be
installed in <prefix>/lib/pkgconfig upon make install. You should
then set the PKG_CONFIG_PATH to include that directory. After these
steps, the Gecode/J configure should find the files.
Cheers,
Guido
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2436 bytes
Desc: not available
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20071123/3695adf7/attachment.bin>
More information about the gecode-users
mailing list


The easiest way to create a simple model in JaamSim is to use the Graphical User Interface. However, once a model becomes more complex, it is often easier to edit the configuration file (CFG file) in a text editor. The configuration file is saved in plain text and has been designed to be human readable.
There are many advantages to a readable input file in plain text:
· Inputs can be easily reviewed and audited.
· Standard software for change control such as GIT can be used to track model inputs.
· Software for performing simulation experiments and optimisation can be developed by third-parties in other programming languages such as Python.
The recommended text editor is Notepad++, an open-source editor available for download at www.notepad-plus-plus.org.
A JaamSim input configuration file consists of a series of lines, akin to a scripting language. Each line consists of a combination of object names, keywords, and values contained within braces. One or more spaces are used to separate these elements. Braces are also used to denote sets of arguments within the outer braces required for arguments in general. Blank lines are ignored by JaamSim.
Lines beginning with a hash mark ('#') can be used to create comments to document the input files. If a comment extends for several lines, each line must start with a hash mark.
In JaamSim, an object is initialized by a Define statement. The statement contains Define followed by the object type, and the object name enclosed by braces. Multiple objects can be defined at the same time, provided that they are of the same type. For instance, the following two lines define respectively a single Arrow object and three Arrow objects.
Define Arrow { SingleArrow }
Define Arrow { Arrow1 Arrow2 Arrow3 }
Object instances can only be referenced after they have been defined.
Once an object is defined, its keyword values can be set using a command of the following form:
<object name> <keyword> { <value1> <value2> … }
where value1, value2, … is the list of values for the keyword separated by one or more spaces. For instance, the following line sets the colour of the Arrow1 object to be black:
Arrow1 Colour { black }
Multiple parameters for an object can be set in one line containing the object name followed by keyword and value pairs.
Arrow1 Colour { black } Width { 2 }
Inner braces are used for keywords that accept multiple input values.
Arrow1 Points { { 0 0 0 m } { 1 1 1 m } }
The readability of a configuration file can often be improved by spreading lengthy inputs over multiple lines. This can be done for an input that accepts an expression and for inputs that use inner braces, such as the RunOutputList keyword for Simulation and the Value keyword for TimeSeries.
For inputs that accept an expression, only the contents of the expression within the single quote marks can be spread over multiple lines. For example,
Server1 ServiceTime { 'this.obj.type == 1 ? 5[s] #some comment#
: 2[s] #another comment#' }
For inputs that use inner braces, new lines can start only between on pair of inner braces and the next. For example:
Simulation RunOutputList { { [Simulation].RunNumber }
{ [Server1].Utilisation }
{ [Queue1].AverageQueueTime/1[h] } }
The user can store input data in multiple files and then refer to these files in an input configuration file using Include statements. These statements refer to other input configuration files by filename and path, surrounded by single quotes:
Include '..\Base File\InputFile.cfg'
Include statements are particularly useful when only a few inputs are varied across many simulation runs. Include statements can be used to create incremental configuration files for additional runs that contain a base case configuration file :
Include '..\Base File\Basecase.cfg'
Arrow1 Width { 2.0 }
This example includes the contents of Basecase.cfg and modifies the already-defined object Arrow1’s keyword Width value to 2.0. Note that the changes from the base case configuration must appear after the Include statement. These simple configuration files are useful because it is easy to tell exactly how the configuration differs from the base case configuration.
Group objects bundle multiple objects together to simplify inputs. Instead of referring to a long list of objects, a single Group can be used instead. The Group may be used to set the value for a keyword for all members instead of setting the value for each member of the Group. Certain keywords also accept Group objects as values.
Table 8‑1 Group Inputs
|
Keyword |
Description |
|
List |
A list of names of the objects included in this list, enclosed by braces. |
The following example demonstrates the use of Groups:
Define Arrow { Arrow1 Arrow2 Arrow3 }
Define Group { ArrowList }
ArrowList List { Arrow1 Arrow2 Arrow3 }
ArrowList Colour { black }
In this example, a Group of three Arrow objects is created and each Arrow is set to the colour black.
By using the List keyword, a fourth Arrow can be added to the Group:
Define Arrow { Arrow4 }
ArrowList List { ArrowList Arrow4 }
ArrowList Colour { black }
The RecordEdits statement is used to preserve the organisation and formatting of a configuration file that has been prepared manually by the user.
It is usually best to construct a complex model manually using a text editor. These inputs are carefully formatted and organised, and include comments to document model design. However, once this material has been created, the easiest way to position the objects and to add graphics such as titles, labels, etc. is through the graphical user interface. If the model is then saved, all the formatting and comments would normally be lost.
JaamSim avoids this predicament with the RecordEdits statement. On saving, JaamSim copies all inputs before the RecordEdits statement line-by-line to the saved file, and then saves all the changes to the model using computer-written inputs. The following example illustrates this structure:
# Manually prepared inputs:
# - Everything before the RecordEdits statement is unchanged when JaamSim saves a file.
RecordEdits
# Computer written inputs:
# - Everything that appears after the RecordEdits statement is written by the computer.
The Save functionality in JaamSim is disabled when an input file is loaded without a RecordEdits statement. In this case, the Save As operation adds a RecordEdits statement to the end of the original configuration file and then writes out the new inputs.


This guide explains how to set up your environment for developing on Helm and Tiller.
We use Make to build our programs. The simplest way to get started is:
$ make bootstrap build
NOTE: This will fail if not running from the path $GOPATH/src/k8s.io/helm
. The directory k8s.io
should not be a symlink or build
will not find the relevant packages.
This will build both Helm and Tiller. make bootstrap
will attempt to install certain tools if they are missing.
To run all the tests (without running the tests for vendor/
), run make test
.
To run Helm and Tiller locally, you can run bin/helm
or bin/tiller
.
kubectl
uses.Man pages and Markdown documentation are already pre-built in docs/
. You may regenerate documentation using make docs
.
To expose the Helm man pages to your man
client, you can put the files in your $MANPATH
:
$ export MANPATH=$GOPATH/src/k8s.io/helm/docs/man:$MANPATH
$ man helm
Helm and Tiller communicate using gRPC. To get started with gRPC, you will need to…
protoc
for compiling protobuf files. Releases are heremake bootstrap
to generate the protoc-gen-go
plugin and place it in bin/
.Note that you need to be on protobuf 3.2.0 (protoc --version
). The version of protoc-gen-go
is tied to the version of gRPC used in Kubernetes. So the plugin is maintained locally.
While the gRPC and ProtoBuf specs remain silent on indentation, we require that the indentation style matches the Go format specification. Namely, protocol buffers should use tab-based indentation and rpc declarations should follow the style of Go function declarations.
We use gRPC as an API layer. See pkg/proto/hapi
for the generated Go code, and _proto
for the protocol buffer definitions.
To regenerate the Go files from the protobuf source, make protoc
.
To build Docker images, use make docker-build
.
Pre-build images are already available in the official Kubernetes Helm GCR registry.
For development, we highly recommend using the Kubernetes Minikube developer-oriented distribution. Once this is installed, you can use helm init
to install into the cluster. Note that version of tiller you’re using for development may not be available in Google Cloud Container Registry. If you’re getting image pull errors, you can override the version of Tiller. Example:
helm init --tiller-image=gcr.io/kubernetes-helm/tiller:2.7.2
Or use the latest version:
helm init --canary-image
For developing on Tiller, it is sometimes more expedient to run Tiller locally instead of packaging it into an image and running it in-cluster. You can do this by telling the Helm client to us a local instance.
$ make build
$ bin/tiller
And to configure the Helm client, use the --host
flag or export the HELM_HOST
environment variable:
$ export HELM_HOST=localhost:44134
$ helm install foo
(Note that you do not need to use helm init
when you are running Tiller directly)
Tiller should run on any >= 1.3 Kubernetes cluster.
We welcome contributions. This project has set up some guidelines in order to ensure that (a) code quality remains high, (b) the project remains consistent, and (c) contributions follow the open source legal requirements. Our intent is not to burden contributors, but to build elegant and high-quality open source code so that our users will benefit.
Make sure you have read and understood the main CONTRIBUTING guide:
https://github.com/kubernetes/helm/blob/master/CONTRIBUTING.md
The code for the Helm project is organized as follows:
cmd/
. Code inside of cmd/
is not designed for library re-use.pkg/
._proto/hapi
(where hapi
stands for the Helm Application Programming Interface).proto
definitions are stored in pkg/proto
.scripts/
directory contains a number of utility scripts. Most of these are used by the CI/CD pipeline.rootfs/
folder is used for Docker-specific files.docs/
folder is used for documentation and examples.Go dependencies are managed with Glide and stored in the vendor/
directory.
We use Git for our version control system. The master
branch is the home of the current development candidate. Releases are tagged.
We accept changes to the code via GitHub Pull Requests (PRs). One workflow for doing this is as follows:
$GOPATH/src/k8s.io
directory and git clone
the github.com/kubernetes/helm
repository.$GOPATH/src/k8s.io/helm
git checkout -b feat/my-feature
) and do your work on that branch.For Git commit messages, we follow the Semantic Commit Messages:
fix(helm): add --foo flag to 'helm install'
When 'helm install --foo bar' is run, this will print "foo" in the
output regardless of the outcome of the installation.
Closes #1234
Common commit types:
Common scopes:
*
: two or more scopesRead more: - The Deis Guidelines were the inspiration for this section. - Karma Runner defines the semantic commit message idea.
We follow the Go coding style standards very closely. Typically, running go fmt
will make your code beautiful for you.
We also typically follow the conventions recommended by go lint
and gometalinter
. Run make test-style
to test the style conformance.
Read more:
Because this project is largely Go code, we format our Protobuf files as closely to Go as possible. There are currently no real formatting rules or guidelines for Protobuf, but as they emerge, we may opt to follow those instead.
Standards: - Tabs for indentation, not spaces. - Spacing rules follow Go conventions (curly braces at line end, spaces around operators).
Conventions: - Files should specify their package with option go_package = "...";
- Comments should translate into good Go code comments (since protoc
copies comments into the destination source code file). - RPC functions are defined in the same file as their request/response messages. - Deprecated RPCs, messages, and fields are marked deprecated in the comments (// UpdateFoo DEPRECATED updates a foo.
).


--- date: 2013-09-16 16:00:03 author: Colene Chow title: "PhoneGap Day US 2013: Using Parse to Save your Stuff" format: html date: 2013-09-16 15:00:00 tags: - PhoneGap Day - Event - Community ---
Thank you to everyone who attended PhoneGap Day US 2013 and made it such a huge success!
As we mentioned in our previous PhoneGap Day posts, the audio quality is not what we were hoping for due to some technical glitches. We've been working madly to get it improved which is why we've been delayed in sharing them. Nothing too shabby, but not as good as being at PhoneGap Day in person! So, our apologies in advance but with that, on to the video!
Our next speaker is Ray Camden speaking on "Using Parse to Save your Stuff".


Preparing MACCOR Data¶
The maccorcyclingdata package is to be used on the raw data output from the MACCOR battery cyclers and the schedule file input into the MACCOR battery cyclers. The package can also be used to validate the testdata by comparing it against the schedules.
Example¶
The example.ipynb provides examples where all the functions are used on the given example data.
To run this example, simply open and run each cell in the example Jupyter Notebok provided.
In the example_data
directory, there is example testdata and an example schedule file to show how the data columns should be formatted.
Requirements and Installation¶
This code has been developed in Python 3.7.6. The code has been tested to run in Windows, Linux, and macOS.
This code uses numpy and pandas as specified in docs/requirements.txt.
The code can be run directly from a cloned GitHub repository or it can also be installed as a python package through pip:
pip install maccorcyclingdata
The functions in the package can be used after importing testdata, schedules, validate for example as follows:
import maccorcyclingdata.testdata as testdata
import maccorcyclingdata.schedules as schedules
import maccorcyclingdata.validate as validate
Compatibility¶
The raw testdata and schedule file that this package is used on must be csv files. Additionally, the first column of both files should be the header of the datatable. The example uses data exported from MACCOR battery cyclers. The raw testdata should be exported with columns in the following order and with the following units (the names can be anything since the import_maccor_data function will rename all columns):
Cycle Number
Step Number
Total Test Time (seconds)
Step Time (seconds)
Capacity (mAh)
Current (mA)
Voltage (V)
DPt Time (seconds)
Temperature (Celsius)
EV Temperature (Celsius)
The following columns may also exist, but must be named as the following: ACR
, DCIR
, Watt-hr
, and nnnamed
.
The schedule should have columns in the following order (the names can be anything since the import_schedules function will rename all columns):
Step Number
Step Type
Step Mode Type
Step Mode Value
Step Limit Type
Step Limit Value
End Type
Operator (=, <=, >=)
End Type Value
Goto Step Number
Report Type
Report Type Value
Options
Step Note
If you encounter any issues running the code for any MACCOR model report an issue. Note that an example file will be needed in order to improve the code.


Account that per spec the domain requesting registration of keys must match (or be a subdomain) of the webauthn RP ID, namely the FQDN of your Gluu server
getAttestationMessage
Insert a security key, then press "getAttestationMessage" button, it will start blinking...


'>
Web Developer
I am a recent NYU grad that enjoys gaming, film, and German culture. Learning to code is just one step of many toward my goal of conquering the planet and universe.
Toying with the HTML on the New York Times homepage.
Something about that would go here.


--- layout: jsdoc title: "Class: ExpressRoute" jsdocNav: - Modules: - workbox-background-sync - workbox-broadcast-cache-update - workbox-build - workbox-cache-expiration - workbox-cacheable-response - workbox-google-analytics - workbox-precaching - workbox-routing - workbox-runtime-caching - workbox-sw - workbox-webpack-plugin ---
ExpressRoute
is a helper class to make defining Express-style
Routes easy.
Under the hood, it uses the path-to-regexp
library to transform the path
parameter into a regular expression, which is
then matched against the URL's path.
Please note that ExpressRoute
can match either same-origin or cross-origin
requests.
To match same-origin requests, use a path
value that begins with
'/'
, e.g. '/path/to/:file'
.
To match cross-origin requests, use a path
value that includes the origin,
e.g. 'https://example.com/path/to/:file'
.
// Any same-origin requests that start with /path/to and end with one
// additional path segment will match this route, with the last path
// segment passed along to the handler via params.file.
const route = new workbox.routing.ExpressRoute({
path: '/path/to/:file',
handler: ({event, params}) => {
// params.file will be set based on the request URL that matched.
return caches.match(params.file);
},
});
const router = new workbox.routing.Router();
router.registerRoute({route});
// Any cross-origin requests for https://example.com will match this route.
const route = new workbox.routing.ExpressRoute({
path: 'https://example.com/path/to/:file',
handler: ({event}) => return caches.match(event.request),
});
const router = new workbox.routing.Router();
router.registerRoute({route});
Constructor for ExpressRoute.
| Parameters |
|
|---|


Nate
Favorite Drink: Water
History With House Plants: Vegetable Gardens and tropical plants. Loves long walks on the beach. All around great american. Grass fed free range organic Kansin.
Adrian
Favorite Drink: Thai Tea
History With House Plants: Most are dead. The ones that aren't, wishes they were.


Atoms are the basic unit of chemistry. They consist of 3 smaller components:
These 3 smaller particles are arranged in a particular way. In the center is the Nucleus where you find the positive Protons and neutral Neutrons.
In orbit around the nucleus are the Electrons. These are found in a series of orbits (depending on the atom) with differing numbers of electrons as seen in the figure below.
The human body is made up of a couple dollars worth of chemicals. The 12 most useful atoms for you to know about are listed in the figure below:
Sometimes atoms gain or lose electrons. The atom then loses or gains a "negative" charge. These atoms are then called ions.
The following image shows K losing an electron and Cl gaining an electron.
| Here are some examples of common ions: | |
| Na+ | Sodium |
| K+ | Potassium |
| Cl- | Chloride |
| Ca+ | Calcium |
| Fe+ | Iron |
| P- | Phosphorous |


Child killer Ian Huntley sobs in solitary confinement after 'kicking prison guard'
Ian Huntley killed Holly Wells and Jessica Chapman, both aged 10, in Soham, Cambridgeshire, in 2002 - and is now serving life imprisonment in HMP Frankland where he allegedly kicked a guard
by Matthew Dresch, https://www.mirror.co.uk/authors/matthew-dresch/Child killer Ian Huntley was locked up in solitary confinement after swearing at an official and kicking a guard, according to reports.
Huntley was allegedly first thrown in isolation after breaching prison rules by saying 'f*** off' to a worker.
He was then taken out of his cell for an adjudication hearing, however, he soon returned to solitary after reportedly kicking a prison guard.
The kick was described as 'pathetic' by a jail source, who also claimed the murderer was crying as he was dragged back to segregation, an article states.
The monster's special privileges were said to have been taken away after the attack, meaning he lost his £20-a-week painting job and was not allowed to buy fish and chip dinners.
Huntley was thrown into isolation in HMP Frankland, in Durham, in August - and his prison time is now said to be catching up with him, according to The Sun .
The prisoner killed Holly Wells and Jessica Chapman, both aged 10, in Soham, Cambridgeshire, in 2002.
He was sentenced to a minimum of 40 years in jail in 2003.
Describing Huntley's latest attack, a jail source told The Sun : “It was a pretty pitiful, pathetic attempt, more a trip than a kick.
“Huntley was quickly restrained and taken back to segregation again, sobbing as he went.
"He’s almost unrecognisable now from what the public would remember.
"He looks like a skinny old man with no fight left in him."
The murderer is at constant risk of attack from other prisoners and has had a string of health problems and suicide attempts in jail.
Damien Fowkes, a serial armed robber, slashed Huntley's throat in HMP Frankland in 2010.
The murderer was recorded apologising for the 2002 killings last year.
It was previously reported that the monster had struck up a close bond behind bars with a fellow prisoner named 'Luna', who is transitioning.


Trump to attend NATO summit in London, days before UK vote
WASHINGTON: US President Donald Trump will visit Britain for NATO's 70th anniversary summit next month, the White House said on Friday (Nov 15), in a trip falling days before the country votes in a general election.
British Prime Minister Boris Johnson is seeking to retain power in the Dec 12 election that has been dominated by Brexit - a hugely divisive plan for which Trump has voiced strong support.
The president, who backs a "no deal" Brexit, has already roiled the election campaign by suggesting last month that the terms of Johnson's current EU divorce deal mean London could struggle to continue to trade with the US.
The White House said in a statement that Trump and First Lady Melania would visit Britain from December 2 to 4, attending the NATO gathering and a reception hosted by Queen Elizabeth II.
Trump has repeatedly expressed unprecedented criticism of NATO for a US president. In addition, the summit will take place at a time of turmoil within the Western alliance.
French President Emmanuel Macron this week said the bloc was undergoing "brain death," a claim that prompted a fierce response from German Chancellor Angela Merkel and others.
Merkel said his comments were "drastic" and US Secretary of State Mike Pompeo insisting NATO was "important, critical."
In a meeting with Trump at the White House on Wednesday, Turkish President Recep Tayyip Erdogan called Macron's statements "unacceptable."
Erdogan's visit to Washington also highlighted one of the many challenges facing the alliance: Turkey's purchase of Russian anti-aircraft missiles.
The United States has ejected Turkey from the F-35 advanced stealth warplane program in retaliation.
Fireworks can also be expected over Trump's sometimes bruising campaign to get other NATO members to increase defense budgets. The president complains bitterly that allies are too reliant on the US military's security umbrella.
The White House said Trump would use the summit "to review the Alliance's unprecedented progress on burden-sharing, including adding more than $100 billion in new defense spending since 2016."
He will also emphasize NATO's need to combat "the threats of tomorrow, including those emanating from cyberspace, those affecting our critical infrastructure and telecommunications networks, and those posed by terrorism," the White House said.


You can use the method sort to easily sort the values in an array alphabetically or numerically. Unlike the previous array methods we have been looking at, sort actually alters the array in place. However, it also returns this sorted array. sort can be passed a compare function as a callback. The compare function should return a negative number if a should be before b, a positive number if a should be after b, or 0 if they are equal. If no compare (callback) function is passed in, it will convert the values to strings and sort alphabetically. Here is an example of using sort with a compare function that will sort the elements from smallest to largest number: var array = [1, 12, 21, 2]; array.sort(function(a, b) { return a - b; });


ppmtowinicon(1) ppmtowinicon(1) NAME ppmtowinicon - convert 1 or more portable pixmaps into a Windows .ico file SYNOPSIS ppmtowinicon [-andpgms] [-output output.ico] [ppmfiles...] DESCRIPTION Reads one or more portable pixmaps as input. Produces a Microsoft Win‐ dows .ico file as output. A Windows icon contains 1 or more images, at different resolutions and color depths. Microsoft recommends including at least the following formats in each icon (size and bits-per-pixel): 16 x 16 - 4 bpp 32 x 32 - 4 bpp 48 x 48 - 8 bpp Default I/O is STDIN/STDOUT. OPTIONS -andpgms If this option is given, every second file is read as an "and mask" to be used by windows for transparency data for the previous image. (These are set to fully opaque by default). The and mask is a PGM image, where any pixel with maxval intensity means opaque and any other pixel means not opaque. Note that as with all Netpbm programs, you may use a PBM file here and it will be used as if it were the equivalent PGM. The and mask is like an alpha mask, except for what it signifies in the "not opaque" areas. In the usual case, the foreground image is black in those areas, and in that case the areas are fully transparent -- the background shows through the icon. But in gen‐ eral, a not opaque pixel signifies that the background and fore‐ ground should be merged as follows: The intensities of the color components in the forgeground and background are represented as binary numbers, then corresponding bits of the background and foreground intensities are exlusive-or'ed together. So there is a sort of reverse video effect. -output output.ico File to write. By default, the icon is written to stdout. SEE ALSO winicontoppm(1), ppm(5) AUTHOR Copyright (C) 2000 by Lee Benfield. 22 May 2000 ppmtowinicon(1)


This is normal text. I can jump to newline by using (br/) - no end tag needed
This is bold text (/b)
This is strong text (/strong)
This is italicized text (/i)
This is important text (/em)
This is subscrited text (/sub)
This is superscripted text (/sup)
This is inserted text (/ins)
This is deleted text (/del)
Below is an ordered list (/ol), (note that /ol is the parent node to /li)
| D1 | D2 | D3 |
| data | data | data |
| data | data | data |
Try to name and id your big blocks of code. name="name" id="id"
align="left"
align="center"
align="right"
| D1 | D2 | D3 |
| rowspan="2" | colspan="2" | |
| data | bgcolor="blue" |
(/div) is used as a block container for other HTML elements.
(/span) is the inline container for HTML elements.
Style text with (/span): style=color:red


I’m excited to present a Steem Panel discussion tomorrow with Top 20 witnesses. We’ll be meeting in the PALnet Discord server. We’re typically on the last Saturday of the month. This forum is slightly belated.
Joining us for the Forum
@good-karma (maybe) - esteem creator
@aggroed- Minnow Support, msp-waves, and Steem Monsters founder
@someguy123- Owner of Privex and curator of Steem-in-a-box docker image for witnesses
@carlgnash (@curie) - The voice of Curie
@followbtcnews (@crimsonclad partner) - Creators of Tippy (send Steem through Twitter), Crimmybot3000 a highly used auto voting program, Steemistry creators of a block explorer, and Minnow Support managing Witness
@riverhead - Steem.chat founder
@drakos- A constant member in Steem.chat help section, creator of steemian.info, and a Minnow Support Managing Witness
@elear (@utopian-io) - Utopian-io founder
@yabapmatt - Steembottracker and Steem Monsters founder. See his latest creation at-
https://steembottracker.com/steemdash/?account=yabapmatt
Logistics
I’ll be spinning some 90s rock starting around 10:30 eastern. At 11am we’ll switch to conversation about the block and what people are working on.
To join us please go to minnowpond.org to hop into the Discord.
You can also listen on mspwaves.com/listen
Discord has been a little touch and go, so, please bear with us for any technical difficulties the Discord server goes through.
This page is synchronized from the post: ‘Top 20 Witness Forum - Saturday 11am Eastern (NYC time) ie 0300 UTC’


To get started with CoatRack, you need to do the following:
The following figures gives an overview of the main elements of CoatRack and the main steps to get started with CoatRack.
explanatory text
explanatory text
explanatory text
explanatory text
explanatory text
explanatory text
|
Please note |
Summary Green status (OK) Orange status (Warning) Red status (Critical) Dark Grey status (Not Connected) Light Grey status (Ignore) |
There are different wildcards that you can apply to your pay per call paths, such as:
For additional information about wildcards and regular expressions:


#include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout); #define _GNU_SOURCE /* See feature_test_macros(7) */ #include <signal.h> #include <poll.h> int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout_ts, const sigset_t *sigmask);
The set of file descriptors to be monitored is specified in the fds argument, which is an array of structures of the following form:
struct pollfd { int fd; /* file descriptor */ short events; /* requested events */ short revents; /* returned events */ };
The caller should specify the number of items in the fds array in nfds.
The field fd contains a file descriptor for an open file. If this field is negative, then the corresponding events field is ignored and the revents field returns zero. (This provides an easy way of ignoring a file descriptor for a single poll() call: simply negate the fd field. Note, however, that this technique can't be used to ignore file descriptor 0.)
The field events is an input parameter, a bit mask specifying the events the application is interested in for the file descriptor fd. This field may be specified as zero, in which case the only events that can be returned in revents are POLLHUP, POLLERR, and POLLNVAL (see below).
The field revents is an output parameter, filled by the kernel with the events that actually occurred. The bits returned in revents can include any of those specified in events, or one of the values POLLERR, POLLHUP, or POLLNVAL. (These three bits are meaningless in the events field, and will be set in the revents field whenever the corresponding condition is true.)
If none of the events requested (and no error) has occurred for any of the file descriptors, then poll() blocks until one of the events occurs.
The timeout argument specifies the number of milliseconds that poll() should block waiting for a file descriptor to become ready. The call will block until either:
Note that the timeout interval will be rounded up to the system clock granularity, and kernel scheduling delays mean that the blocking interval may overrun by a small amount. Specifying a negative value in timeout means an infinite timeout. Specifying a timeout of zero causes poll() to return immediately, even if no file descriptors are ready.
The bits that may be set/returned in events and revents are defined in <poll.h>:
When compiling with _XOPEN_SOURCE defined, one also has the following, which convey no further information beyond the bits listed above:
Linux also knows about, but does not use POLLMSG.
Other than the difference in the precision of the timeout argument, the following ppoll() call:
ready = ppoll(&fds, nfds, timeout_ts, &sigmask);is equivalent to atomically executing the following calls:
sigset_t origmask; int timeout; timeout = (timeout_ts == NULL) ? -1 : (timeout_ts.tv_sec * 1000 + timeout_ts.tv_nsec / 1000000); sigprocmask(SIG_SETMASK, &sigmask, &origmask); ready = poll(&fds, nfds, timeout); sigprocmask(SIG_SETMASK, &origmask, NULL);
See the description of pselect(2) for an explanation of why ppoll() is necessary.
If the sigmask argument is specified as NULL, then no signal mask manipulation is performed (and thus ppoll() differs from poll() only in the precision of the timeout argument).
The timeout_ts argument specifies an upper limit on the amount of time that ppoll() will block. This argument is a pointer to a structure of the following form:
struct timespec { long tv_sec; /* seconds */ long tv_nsec; /* nanoseconds */ };
If timeout_ts is specified as NULL, then ppoll() can block indefinitely.
The ppoll() system call was added to Linux in kernel 2.6.16. The ppoll() library call was added in glibc 2.4.
For a discussion of what may happen if a file descriptor being monitored by poll() is closed in another thread, see select(2).
The raw ppoll() system call has a fifth argument, size_t sigsetsize, which specifies the size in bytes of the sigmask argument. The glibc ppoll() wrapper function specifies this argument as a fixed value (equal to sizeof(sigset_t)).


--- title: Real-time interactive 4D-STEM phase-contrast imaging from electron event representation data keywords: fastai sidebar: home_sidebar nb_path: "nbs/index.ipynb" ---
This is the code accompanying the paper "Real-time interactive 4D-STEM phase-contrast imaging from electron event representation data" to come out in IEEE Signal processing. The functionality can be seen in the two example notebooks in the 'examples' folder.
Before committing, run
nbdev_build_lib && nbdev_clean_nbs && nbdev_build_docs
to compile the notebook into script files, clean the notebooks, and build the documentation.
Do not edit this README directly, rather edit index.ipynb and regenerate the README.
If you find our work useful in your research, please cite:
@article{pelz2021realtimeptycho,
title={Real-time interactive 4D-STEM phase-contrast imaging from electron event representation data},
url={https://arxiv.org/abs/2104.06336},
author={Pelz, Philipp and Ercius, Peter and Ophus, Colin and Johnson, Ian and Scott, Mary},
year={2021},
month={Jul}
}
If you have any questions, please feel free to email the authors.


NATURE ARENA
Home
(current)
About
(current)
Contact
Sign in
Login
NATURE ARENA
Join our Community Today for better Tomorrow
JOIN!


{% trans "The Global Database on Sustainable Land Management (SLM) of WOCAT (the World Overview of Conservation Approaches and Technologies) provides free access to the documentation of field-tested SLM data including SLM practices and maps from different places in the world and offers practitioners the opportunity to share their own SLM practice or map." %}
{% trans "SLM in the context of WOCAT is defined as the use of land resources - including soil, water, vegetation and animals - to produce goods and provide services to meet human needs, while ensuring the long-term productive potential of these resources and sustaining their environmental functions." %}
{% trans "The objective of documenting and assessing SLM practices is to share and spread valuable knowledge in land management, support evidence-based decision-making and scale up identified good practices, thereby contributing to preventing and reducing land degradation and to restoring degraded land." %}
{% trans "A SLM practice can be either an SLM Technology (a physical practice that controls land degradation and/or enhances productivity, consisting of one or several measures) or an SLM Approach (ways and means used to implement one or several SLM Technologies, including technical and material support, stakeholder engagement, and other)." %}
{% trans "Credits for the translation of the WOCAT Questionnaires and Database go to:" %}
- {% trans "Russian: Olga Andreeva (Associate Professor Moscow Lomonosov State University), Julia Johnson (Translator)" %}
- {% trans "Spanish: Pedro Charles Alborno (Translator)" %}
- {% trans "French: Barbara de Choudens (Translator)" %}
- {% trans "Lao: National Agriculture and Forestry Institute (NAFRI) Lao PDR" %}
- {% trans "Khmer: Royal University of Agriculture (RUA) Cambodia" %}
- {% trans "Chinese: Mr. Sun Guoji, Director General of Department of Combating Desertification, National Forestry and Grassland Administration, China" %}
- {% trans "Thai: Dr. Bunjirtluk Jintaridth and Mr. Kamchai Kanjanatanaseth, Land Development Department (LDD), Ministry of Agriculture and Cooperatives, Thailand; Dr. Pitayakon Limtong, Soil and Fertilizer Society of Thailand" %}
{% trans 'Please contact the WOCAT Secretariat<EMAIL_ADDRESS>if you are interested in translating the Questionnaires or the Global SLM Database into another language or further information about WOCAT.' %}
{% trans 'Read more about the WOCAT documentation of SLM practices.' %}


By using today's ubiquitous cell phones and tablets, campuses can deliver safety-awareness skills and training in a way the students want it! visit
We sat down with President Aoun to discuss a wide range of topics. The first part of the discussion focused on his personal journey. In this installment, we delve into his priorities here at Northeastern. visit
President Aoun and Massachusetts governor Charlie Baker on Tuesday announced a major investment that will drive the development of smart sensors and nanomaterials used for a range of medical, defense, and energy applications. visit
RISE:2016 showcased the extensive research and entrepreneurial spirit of both students and faculty. visit
Are you ready for GameOfThrones tonight? We looked at the science behind the show . visit
Research suggests that faculty-in-residence programs are mutually beneficial for students and faculty alike. visit
How we designed an interdisciplinary course to reinvent journalism at @Northeastern visit


@* * Copyright 2021 HM Revenue & Customs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *@ @import play.twirl.api.Html @import models.auth.BaseUserRequest @import config.ApplicationConfig @this(main: templates.tamc_main) @()(implicit messages: Messages, request: BaseUserRequest[_], formPartialRetriever: uk.gov.hmrc.play.partials.FormPartialRetriever) @main( title = Messages("title.pattern", Messages("title.other-ways")), mainConfig = views.helpers.MainConfig( maybeMainDataAttributes = Some(Html("data-journey=marriage-allowance:stage:other-ways")))) { @Html(Messages("generic.back"))
@messages("pages.noyears.findoutmore.part1") @messages("pages.noyears.findoutmore.link-text")
}


{% extends "internet_nl_dashboard/templates/internet_nl_dashboard/_base_secondfactor.html" %} {% block content %} Upload was processed. Use this link to go to the upload page and verify your upload at the recent uploads. {% endblock %}


Tesla's Cybertruck launch went off the rails when its 'armor glass' windows were easily smashed in a live test, Business Insider - Business Insider Singapore
by Bill Bostock, Business Insider US- The launch of Tesla’s new Cybertruck hit a speedbump on Thursday when its “armor glass” windows got smashed during a demo.
- CEO Elon Musk unveiled the $39,900 truck in Los Angeles and got lead designer Franz von Holzhausen to test the windows with a metal ball.
- Von Holzhausen threw the ball and smashed both the front and read side windows with ease. Musk reacted: “Oh my f—–g God. Well, maybe that was a little too hard.”
- Visit Business Insider’s homepage for more stories.
Tesla’s new Cybertruck launch didn’t go quite as smoothly as expected after its “armor glass” windows got smashed during a live test.
CEO Elon Musk unveiled the $39,900 truck in Los Angeles on Thursday, and got lead designer Franz von Holzhausen to test the left-side windows by throwing a silver metal ball at them.
After von Holzhausen smashed the front-left window with ease, Musk exclaimed: “Oh my f—–g God. Well, maybe that was a little too hard.”
“It didn’t go through, that’s a plus side,” he said.
Von Halzhausen then tested the back-left window, which also smashed. “Room for improvement,” Musk joked.
“We threw wrenches, we threw literally the kitchen sink at the glass and it didn’t break. For some reason it broke now… I don’t know why.”
Before the hiccup, in his opening remarks Musk said: “Trucks have been the same for a very long time,” while images of conventional trucks flashed on a screen behind him.
A caption on the screen read: “100 years of the same.”
The Cybertruck is made of a heavy-duty exterior shell made from “ultra-hard 30X cold-rolled stainless steel” and armored glass, according to Tesla.
Musk took pains to show the Cybertruck as being unlike any other production passenger truck on the road, punctuated by a 100-cubic-foot cargo area, and up to 14,000 pounds of towing capacity.
The Cybertruck can reach 60 miles per hour in 2.9 seconds, according to Musk.
- Read more:
- Elon Musk said Tesla’s pickup truck will be able to tow over 20 times more than a Ford F-150. Here are 8 other bold claims he’s made about the truck.
- Elon Musk says the Tesla 2020 Roadster ‘maybe won’t need a key at all’
- A US Senator said Tesla should shut off Autopilot until it comes up with a better way to keep drivers from misusing it
- Elon Musk said he’s excited about Ford’s $43,895 Mustang Mach-E electric SUV – here’s how it will stack up against Tesla’s $39,000 Model Y


skipWaiting
Optional Boolean
, defaulting to false
Whether or not the service worker should skip over the waiting lifecycle stage.
When false
, the generated service worker will automatically
contain the following code:
self.addEventListener('message', (event) => { if (event.data && event.data.type === 'SKIP_WAITING') { self.skipWaiting(); } });
This allows your web app to trigger skipWaiting()
on demand,
by using postMessage()
to communicate with your service
worker. For more information about this technique, see
this recipe.
Example:
skipWaiting: true


When javascript is enabled, this page will redirect URLs of the form redirect.html#dotted.name to the documentation for the object with the given fully-qualified dotted name.


the system provides some convenience functions for use in the content code
code completion helps to find existing graph ids
Example: graph("329ccbe2-1cd5-2172-604d-d1063cbf6bfb").interval(1, 9).f(count)
random(min, max, decimalPlaces)
code completion helps to find a placeholder for timestamps, thouse placeholders will be filled by the system and not the user
caption: "TIME_STAMP (e.g.<PHONE_NUMBER>168)"
value: "{{{TIME_STAMP}}}"
caption: "TIME_UTC (e.g. Tue, 01 Nov 2016 15:43:09 GMT)"
value: "{{{TIME_UTC}}}"
caption: "TIME_ISO (e.g. 2016-11-01T15:39:15.378Z)"
value: "{{{TIME_ISO}}}"
caption: "TIME_STRING (e.g. Tue Nov 01 2016 16:35:56 GMT+0100 (CET))"
value: "{{{TIME_STRING}}}"
caption: "TIME_DATE (e.g. Tue Nov 01 2016)"
value: "{{{TIME_DATE}}}"
caption: "TIME_TIME (e.g. 16:41:43 GMT+0100 (CET))"
value: "{{{TIME_TIME}}}"


Experiential truth
The physical world
Non-judgment
Quantum physics
nurtures
projects onto
imparts reality to
constructs with
abundance of
the barrier of
self-righteous
potential
marvel.
choices.
creativity.
actions.


MineRender
Quick, Easy, Interactive 3D/2D Renders of Minecraft
Skins, Blocks, Items, GUIs and more
Structures/Schematics
Getting Started
with
About
MineRender provides client-side, interactive 3D and 2D renders of a lot of different Minecraft assets, which can easily be integrated into any website.
You can either directly add the MineRender javascripts which have a lot of customization options and let you animate individual elements,
or you can simply embed an IFrame for most of the available renders to get a more simplistic and easier solution.
Options
These are optional options which can be passed to all of the renderers in JavaScript.
The options below are available for every renderer, but some of them have additional options (see below).
{
showOutlines: false, // Debugging - Show bounding boxes
showAxes: false, // Debugging - Show the scene's axes
showGrid: false, // Debugging - Show coordinate grid
autoResize: false, // Whether to automatically resize the canvas
controls: {
enabled: true, // Toggle controls
zoom: true, // Toggle zooming
rotate: false, // Toggle rotation
pan: true // Toggle panning
},
camera: { // Camera position
x: 20,
y: 25,
z: 30,
target: [0, 0, 0] // Where the camera should look
},
canvas: { // Dimensions the canvas starts off with (undefined -> use window size)
width: undefined,
height: undefined
},
pauseHidden: true // Whether to pause animations that aren't currently visible
};
Blocks/Items
{
centerCubes: false, // Center the cube's rotation point
assetRoot: "https://assets.mcasset.cloud/1.13" // Root location to get assets from - change if you want to use e.g a resource pack
};
GUIs
{
assetRoot: "https://assets.mcasset.cloud/1.13" // Root location to get assets from - change if you want to use e.g a resource pack
};


Self-serve banking app
Project Overview
- Organization: RBC
- Role: Design Researcher
- Team: Content designer, visual designer
Background
At RBC, I worked as a Design Research intern on the business banking journey. With the supervision of a senior design researcher, I led and managed evaluative research on a web application for self-serve banking. I was the main researcher on this project and collaborated with a content designer, visual designer as well as consulting with the product owner to ensure alignment on the project goals.
The goal of this research was, “See if users can complete a specific task independently with full confidence and understanding.”
Methods
- Remote user testing with 8 participants
When I joined this project, the product team was ready to evaluate the second iteration of their prototype that was ready to deploy. I facilitated discussion between product and design to align our research goals. From these discussions, I developed a discussion guide and worked with a recruitment agency to find participants who fit our needs. I led moderated interviews on Zoom where users walked through an interactive prototype and provided feedback. Interviews ended with a system usability survey where a score was assigned to the usability of the system based on responses provided.
Key Findings
When analyzing this data, participants had overlapping usability issues that made specific usability issues clear. The SUS surveys provided a standard for comparison that helped us gauge overall experience. Overall, users were able to complete this task with some confidence and understanding. However, there were some key concepts that users had trouble understanding due to confusing wording and imagery. I presented the results to the team and helped to implement my research recommendations in collaboration with the content and visual designers.
Conclusion
During my time at RBC, I was fortunate to be on a team where I wasn’t just an intern - I was a member of the team. I was presented with opportunities to lead a project with a guiding hand when necessary and my work was taken seriously. I was also able to work beyond design research, implementing research recommendations into UI design and content design where necessary.
Thank you for reading!


This command converts all bytes in the current selection from EBCDIC to ASCII. Any values that cannot be represented in ASCII are converted to a zero byte value.
You can also convert from EBCDIC to ASCII by copying to the clipboard (Copy command) while in EBCDIC display mode and then using the Paste As ASCII command. However, this will remove any EBCDIC characters that cannot be represented rather than replacing them with a nul byte.
Also see the Convert ASCII to EBCDIC command. Use the EBCDIC Characters command to toggle the display of characters between EBCDIC and ASCII. This also affects how characters are copied to the clipboard.


Tee Labs lets you customize T-shirt with your design / Art work / Logo printed for your Corporate, College, Group, NGO, Band, Team, company etc. To get your T-shirt made / printed contact<EMAIL_ADDRESS>or Call +91 97910 29397
© 2016 SouthTrooper
Facebook | Twitter