Football: Son thankful for support over Gomes injury
BELGRADE: Son Heung-min said he had repaid the support shown to him by teammates and fans by scoring twice against Red Star Belgrade, just days after being involved in an incident that saw Everton midfielder Andre Gomes break his ankle.
The South Korean's red card for the challenge on Gomes in Sunday's 1-1 draw was rescinded with the damage inflicted by the way the Portuguese midfielder fell after being tripped by Son.
READ: Football: FA overturn Son's red card for tackle on Everton's Gomes
Son left the field in tears and had to be consoled by Everton captain Seamus Coleman in the dressing room afterwards with teammates saying he was "devastated."
READ: Football: Support for tearful red-carded Son after Gomes injury
However, he was still selected by Mauricio Pochettino for the trip to Belgrade and responded perfectly with two goals in four second half minutes as Spurs ran out 4-0 winners.
"Of course it was a really tough few days, but with our teammates I realised how lucky I am," Son, who held his hands up apologetically after scoring, told BT Sport.
"Everyone kept me so strong. I still feel really sorry about this accident and this situation, but I had to focus for the team as well.
"I think this is my right answer to all the people who supported me."
Victory was Tottenham's first win away from home since a stunning comeback to beat Ajax 3-2 in Amsterdam in May to progress to last season's Champions League final.
Pochettino's men are 11th in the Premier League, already 10 points adrift of a Champions League slot for next season after 11 games.
However, they are well on course for the last 16 of this season's Champions League as they moved four points clear of Red Star in second place in Group B.
"It's so important to win this game," added Son. "We had a good attitude and we played really well. It's massive for us to take this confidence for the upcoming games
"We should know we can play so well in the away games as well. We should take the positives and bring these things to a few more away games."


Tux is a penguin character and the official mascot of the Linux kernel.
I've been to Australia several times, these days mostly for Linux.Conf.Au. But my first trip—and the one when I was bitten by a ferocious fairy penguin: you really should keep those things locked up!—was in 93 or so, talking about Linux for the Australian Unix Users Group.


Buttons
Buttons allow users to take actions, and make choices, with a single tap.
References
Import
Design & API Documentation
Selector:
button[mdc-button]
a[mdc-button]
| Properties |
Description |
| primary: boolean |
Colors the button with the primary theme color. |
| secondary: boolean |
Colors the button with the secondary theme color. |
| dense: boolean |
Compresses the button text to make it slightly smaller. |
| raised: boolean |
A contained button that is elevated upon the surface. |
| unelevated: boolean |
A contained button that is flush with the surface. |
| outlined: boolean |
A contained button that is flush with the surface and has a visible border. |
| disabled: boolean |
Disables the button. |
| Methods |
Description |
| focus() |
Focuses the button. |
Sass Mixins
To customize the colors of any part of the button, use the following mixins.
Sass Mixins
Basic Usage
EDIT IN STACKBLITZ
Different Color Icons/Ink
Custom button (Experimental)


The page you are looking for is missing.
Here are some popular reasons people visit our site:
Search for what you're looking for:
We're here to help.
Talk with one of our experts
insurance@rtoero.ca


{% extends "base.html" %} {% block title %}Baltimore City{% endblock %} {% block content %}
Baltimore City is the fourth largest county or county-equivalent in the State of Maryland based on the 2014 registration data.
Baltimore City performed even better than expected, ranking near the top in both 2012 and 2014 for voters per polling place and voters per poll worker. The city may be under extra pressure to provide more poll workers than other jurisdictions in order to provide language minority assistance. Also, the polling places might be physically smaller in an urban environment, necessitating more locations and more poll workers in turn.


What you’ll need
Ingredients
- 1 carrot
- 1 cucumber
Equipment
- Sharp knife
- Carving knife
- Wooden chopping board
Step 1: Cutting the carrot
Take a fresh carrot and cut off a piece of 4 cm from the top. Usually this part of the carrot is thrown away, but now we’re going to use it for making a rose. Peel it using a sharp knife. Peeling it is not required for eating the carrot. This is mainly to make the end result look better. After peeling, cut of a small piece from the top. Now you’ve got a good piece of carrot to work with.
Step 2: Carving the rose
Let’s start with the first petal. Using a carving knife, stick the knife about 1 cm into the carrot, just under the top. Slanting downwards, cut a sort of wave form with a length of a quarter of the circumference of the carrot. Make the same cut slightly under this one and remove the flesh that’s in between these cuts. You’ve just cut out the first petal. Now make the petal as thin as possible by cutting off the flesh on top of the first cut you just made. Note: in this case, it may help you a lot to have a look at the video, to see how it’s done.
Repeat this procedure. Start 1 cm to the right of the first cut you made, move the knife slightly under the first petal and finish halfway under this petal. Continue until there are petals all around the carrot.
Now you need to make sure the petals will curve inwards. For this, cut of some flesh from the top at a 45 degree angle. Do this all around the top. Then, using the same wave form cuts, make the last petals. Make them slightly smaller than the first petals, to create a natural effect. Continue cutting out petals until there’s no room for more. Keep in mind that you need to do all this very gently, as if you’re working with real rose petals.
The last petals – at the top of the rose you’re making – are almost impossible to make. So, don’t try. Instead, just make a few small jagged cuts. This will make it look like small petals.
Step 3: Creating the calyx
The calyx, stem and leaves will be cut from a cucumber. Start with the calyx, by making 4 cuts all around the flat end of the cucumber. Cut at a slight angle and start 5 cm from the end. These cuts will become 4 green leaves.
 Cut until you reach the middle of the cucumber. Then remove the flesh you’ve just cut out. If necessary, scrape out the rest. Of course, make sure you don’t damage the leaves on the outside.
You now created a kind of cup, with leaves on the outside.  This is to connect the stem, which you’ll make in the next step.
Step 4: Creating the stem
Cut out a thin V-shaped piece from the cucumber. Make it as long as the cucumber, to get a nice long stem. Put aside for later.
Step 5: Creating leaves
Cut of a slice of the side of the cucumber, 7 or 8 cm long, 2 cm wide and 0.5 cm thick. Cut out a leaf shape. Then cut a vein through the middle. You can do this by first making a very shallow cut from top to bottom. Then angle the knife slightly and make the same cut. Pull out the flesh inside these cuts. This way the main vein is clearly visible.
From the main vein, do the same at a 45 degrees angle a number of times. This creates the side veins. Repeat all this to make more leaves.
Step 6: Assembling the rose
Make a small but deep hole at the bottom of the carrot rose. It needs to be deep to be able to hold the stem inside it.
Now pull the stem through the whole in the cucumber cup. Stick one side of the stem into the whole at the bottom of the carrot rose.  You can use this to wedge it in the carrot hole next to the stem, to keep the stem in place.
Press the carrot rose into the cucumber calyx. Put the whole construction flat onto a plate. Add one or two leaves and you’ve done it! You just created a beautiful carrot rose. You can even eat it, although it’s probably better to simply enjoy the look of it.
Wrapping up
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.


Across: 1. Engineer is excited about electronic central heating (8) 5. Theresa upset after losing a girl (6) 9. European articles I caught may be ruined (8) 10. Leave second drink and chat (6) 12. Sure to have regrets (4) 13. Mason is put out by belief (10) 15. Meeting with firm people about organisation (13) 19. U-Boats beat it back to 3 for the most part (13) 23. Concerns about scimitars I damaged cutting out article (10) 25. A new Scottish child (4) 28. Sadly no mail for main driller (6) 29. Story of lavish affection after acne treatment (8) 30. Suited for these tasks? (6) 31. Stop to take it easy by falling water (8) Down: 1. Up-to-date style for sailors (6) 2. Swear ‘e follows dogs... (5) 3. ...‘e leaves passage to find friend (4) 4. Tooth discovered in zinc is orange (7) 6. Prevent Frenchman going in with heavy tread (5) 7. Anger from mob I ignited at the City End (9) 8. Maturing writer I bring in to group (8) 11. Order runt to go! (4) 14. One can come back after university (4) 15. Transport Bleriot beyond California (9) 16. Unfashionable lout lacks capital (3) 17. Rod gets drink about ten (4) 18. One should store carbon and stop flying? (3 5) 20. Catch alien out east (4) 21. Huge guys squeeze into semi (7) 22. One cleric from the mountains (6) 24. Angry terrorists confront Lawrence (5) 26. Able to take in nothing because of virus (5) 27. Tax on second child’s bed (4)


Troubleshooting
Answers to some common problems that may come up.
Basic workflow items are covered in the main section of the documentation. If you’re looking for how to do something unconventional, you may also wish to read Techniques.
General
My Catalog Won’t Compile and/or My Code is Behaving Unpredictably
Puppet 3 uses an updated version of Ruby, 1.9 that is much stricter about character encodings than the version of Ruby used previously. As a result, puppet code that contains UTF-8 characters such as accents or other non-ASCII characters can fail or act unpredictably. There are a number of ways UTF-8 characters can make it into puppet code, including, but not limited to, downloading a Forge module where some piece of metadata (e.g., author’s name) contains UTF-8 characters. With apologies to our international customers, the current solution is to strictly limit puppet code to the ASCII character set only, including any code comments or metadata. Puppet Labs is working on cleaning up character encoding issues in Puppet and the various libraries it interfaces with.
Why hasn’t my new node configuration been noticed?
If you’re using separate node definition files and import them into
site.pp (with an import *.node
, for example) you’ll find that new
files added won’t get noticed until you restart puppetmasterd. This
is due to the fact globs aren’t evaluated on each run, but only
when the ‘parent’ file is re-read.
To make sure your new file is actually read, simply ‘touch’ the site.pp (or importing file) and the glob will be re-evaluated.
Why don’t my certificates show as waiting to be signed on my server when I do a “puppet cert --list
”?
puppet cert must be run with root privileges. If you are not root, then re-run the command with sudo:
sudo puppet cert --list
I keep getting “certificates were not trusted”. What’s wrong?
Firstly, if you’re re-installing a machine, you probably haven’t cleared the previous certificate for that machine. To correct the problem:
- Run
sudo puppet cert --clean {node certname}
on the puppet master to clear the certificates. - Remove the entire SSL directory of the client machine (
sudo rm -r etc/puppet/ssl; rm -r /var/lib/puppet/ssl
).
Assuming that you’re not re-installing, by far the most common cause of SSL problems is that the clock on the client machine is set incorrectly, which confuses SSL because the “validFrom” date in the certificate is in the future.
You can figure the problem out by manually verifying the certificate with openssl:
sudo openssl verify -CAfile /etc/puppet/ssl/certs/ca.pem /etc/puppet/ssl/certs/myhostname.domain.com.pem
This can also happen if you’ve followed the Using Mongrel pattern to alleviate file download problems. If your set-up is such that the host name differs from the name in the Puppet server certificate, or there is any other SSL certificate negotiation problem, the SSL handshake between client and server will fail. In this case, either alleviate the SSL handshake problems (debug using cURL), or revert to the original Webrick installation.
Agents are failing with a “hostname was not match with the server certificate” error; what’s wrong?
Agent nodes determine the validity of the master’s certificate based on hostname; if they’re contacting it using a hostname that wasn’t included when the certificate was signed, they’ll reject the certificate.
To fix this error, either:
-
Modify your agent nodes’ settings to point to one of the master’s certified hostnames. (This may also require adjusting your site’s DNS.) To see the puppet master’s certified hostnames, run:
$ sudo puppet master --configprint certname
…on the puppet master server.
-
Re-generate the puppet master’s certificate:
- Stop puppet master.
-
Delete the puppet master’s certificate, private key, and public key:
$ sudo find $(puppet master --configprint ssldir) -name "$(puppet master --configprint certname).pem" -delete
- Edit the
certname
setting in the puppet master’s/etc/puppet/puppet.conf
file to match the puppet master’s actual hostname, and thedns_alt_names
setting in that file to match any other DNS names you expect the master to need to respond to.
- Restart the puppet master.
I’m getting IPv6 errors; what’s wrong?
This can happen if Ruby is not compiled with IPv6 support. The only known solution is to make sure you’re running a version of Ruby compiled with IPv6 support.
I’m getting tlsv1 alert unknown ca errors; what’s wrong?
This problem is caused by puppetmasterd not being able to read its ca certificate. This problem might occur up to 0.18.4 but has been fixed in 0.19.0. You can probably fix it for versions before 0.19.0 by changing the group ownership of the /etc/puppet/ssl directory to the puppet group, but puppetd may change the group back. Having puppetmasterd start as the root user should fix the problem permanently until you can upgrade.
Why does Puppet keep trying to start a running service?
The ideal way to check for a service is to use the hasstatus
attribute, which calls the init script with its status
command.
This should report back to Puppet whether the service is running or
stopped.
In some broken scripts, however, the status output will be correct (“Ok” or “not running”), but the exit code of the script will be incorrect. (Most commonly, the script will always blindly return 0.) Puppet only uses the exit code, and so may behave unpredictably in these cases.
There are two workarounds, and one fix. If you must deal with the script’s broken behavior as is, your resource can either use the “pattern” attribute to look for a particular name in the process table, or use the “status” attribute to specify a custom script that returns the proper exit code for the service’s status.
The longer-term fix is to rewrite the service’s init script to use the proper exit codes. When rewriting them, or submitting bug reports to vendors or upstream, be sure to reference the LSB Init Script Actions standard. This should carry more weight by pointing out an official, published standard they’re failing to meet, rather than trying to explain how their bug is causing problems in Puppet.
Why is my external node configuration failing? I get no errors by running the script by hand.
Most of the time, if you get the following error when running you client
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
it is because of some invalid YAML output from your external node script. Check yaml.org if you have doubts about validity.
Puppet Syntax Errors
Puppet generates syntax errors when manifests are incorrectly written. Sometimes these errors can be a little cryptic. Below is a list of common errors and their explanations that should help you trouble-shoot your manifests.
Syntax error at ‘}’; expected ‘}’ at manifest.pp:nnn
This error can occur when:
service { "fred" }
This contrived example demonstrates one way to get the very confusing error of Puppet’s parser expecting what it found. In this example, the colon ( : ) is missing after the service title. A variant looks like:
service { "fred"
ensure => running
}
and the error would be Syntax error at ‘ensure’; expected ‘}’ .
You can also get the same error if you forget a comma. For instance, in this example the comma is missing at the end of line 3: service { “myservice”: provider => “runit” path => “/path/to/daemons” }
Syntax error at ‘:’; expected ‘]’ at manifest.pp:nnn
This error can occur when:
classname::define_name {
"jdbc/automation":
cpoolid => "automationPool",
require => [ Classname::other_define_name["automationPool"] ],
}
The problem here is that Puppet requires that object references in the require lines to begin with a capital letter. However, since this is a reference to a class and a define, the define also needs to have a capital letter, so Classname::Other_define_name would be the correct syntax.
Syntax error at ‘.’; expected ‘}’ at manifest.pp:nnn
This error happens when you use unquoted comparators with dots in them, a’la:
class autofs {
case $kernelversion {
2.6.9: { $autofs_packages = ["autofs", "autofs5"] }
default: { $autofs_packages = ["autofs"] }
}
}
That 2.6.9 needs to have double quotes around it, like so:
class autofs {
case $kernelversion {
"2.6.9": { $autofs_packages = ["autofs", "autofs5"] }
default: { $autofs_packages = ["autofs"] }
}
}
Could not match ‘_define_name’ at manifest.pp:nnn on node nodename
This error can occur using a manifest like:
case $ensure {
"present": {
_define_name {
"$title":
user => $user,
}
}
}
This one is simple - you cannot begin a function name (define name) with an underscore.
Duplicate definition: Classname::Define_name[system] is already defined in file manifest.pp at line nnn; cannot redefine at manifest.pp:nnn on node nodename
This error can occur when using a manifest like:
Classname::define_name {
"system":
properties => "Name=system";
.....
"system":
properties => "Name=system";
}
The most confusing part of this error is that the line numbers are usually the same - this is the case when using the block format that Puppet supports for a resource definition. In this contrived example, the system entry has been defined twice, so one of them needs removing.
Syntax error at ‘=>’; expected ‘)’
This error results from incorrect syntax in a defined resource type:
define foo($param => 'value') { ... }
Default values for parameters are assigned, not defined, therefore a ‘=’, not a ‘=>’ operator is needed.
Syntax error at ‘«|’; expected ‘|»’
You may get this error when using a manifest like:
node a {
@@foo_module::bar_exported_resource {
.....
}
}
node b {
#where we collect things
.....
foo_module::bar_exported_resource <<| |>>
}
This confusing error is a result of improper (or rather lack of any) capitalization while collecting the exported resource — resource collectors use the capitalized form of the resource type. The manifest for the node b should actually be:
node b {
#where we collect things
.....
Foo_module::Bar_exported_resource <<| |>>
}
err: Exported resource Blah[$some_title] cannot override local resource on node $nodename
While this is not a classic “syntax” error, it is a annoying error none-the-less. The actual error tells you that you have a local resource Blah[$some_title] that puppet refuses to overwrite with a collected resource of the same name. What most often happens, that the same resource is exported by two nodes. One of them is collected first and when trying to collect the second resource, this error happens as the first is already converted to a “local” resource.
Common Misconceptions
Node Inheritance and Variable Scope
It is generally assumed that the following will result in the /tmp/puppet-test.variable file containing the string ‘my_node’:
class test_class {
file { "/tmp/puppet-test.variable":
content => "$testname",
ensure => present,
}
}
node base_node {
include test_class
}
node my_node inherits base_node {
$testname = 'my_node'
}
Contrary to expectations, /tmp/puppet-test.variable is created with no contents. This is because the inherited test_class remains in the scope of base_node, where $testname is undefined.
Node inheritance is currently only really useful for inheriting static or self-contained classes, and is, as a result, of quite limited value.
A workaround is to define classes for your node types - essentially include classes rather than inheriting them. For example:
class test_class {
file { "/tmp/puppet-test.variable":
content => "$testname",
ensure => present,
}
}
class base_node_class {
include test_class
}
node my_node {
$testname = 'my_node'
include base_node_class
}
/tmp/puppet-test.variable will now contain ‘my_node’ as desired.
Class Inheritance and Variable Scope
The following would also not work as generally expected:
class base_class {
$myvar = 'bob'
file {"/tmp/testvar":
content => "$myvar",
ensure => present,
}
}
class child_class inherits base_class {
$myvar = 'fred'
}
The /tmp/testvar file would be created with the content ‘bob’, as this is the value of $myvar where the type is defined.
A workaround would be to ‘include’ the base_class, rather than inheriting it, and also to strip the $myvar out of the included class itself (otherwise it will cause a variable scope conflict - $myvar would be set twice in the same child_class scope):
$myvar = 'bob'
class base_class {
file {"/tmp/testvar":
content => "$myvar",
ensure => present,
}
}
class child_class {
$myvar = 'fred'
include base_class
}
In some cases you can reset the content of the file resource so that the scope used for the content (e.g., template) is rebound. Example:
class base_class {
$myvar = 'bob'
file { "/tmp/testvar":
content => template("john.erb"),
}
}
class child_class inherits base_class {
$myvar = 'fred'
File["/tmp/testvar"] { content => template("john.erb") }
}
(john.erb contains a reference like <%= myvar %>.)
To avoid the duplication of the template filename, it is better to sidestep the problem altogether with a define:
class base_class {
define testvar_file($myvar="bob") {
file { $name:
content => template("john.erb"),
}
}
testvar_file { "/tmp/testvar": }
}
class child_class inherits base_class {
Base_class::Testvar_file["/tmp/testvar"] { myvar => fred }
}
Whilst not directly solving the problem also useful are qualified variables that allow you to refer to variables from other classes. Qualified variables might provoke alternate methods of solving this issue. You can use qualified methods like:
class foo {
$foovariable = "foobar"
}
class bar {
$barvariable = $foo::foovariable
}
In this example the value of the of the $barvariable variable in the bar class will be set to foobar the value of the $foovariable variable which was set in the foo class.
Custom Type & Provider development
err: Could not retrieve catalog: Invalid parameter ‘foo’ for type ‘bar’
When you are developing new custom types, you should restart both the puppet master and the puppet agent before running the configuration using the new custom type. The pluginsync feature will then synchronise the files and the new code will be loaded when both daemons are restarted.
Contents
- General
- My Catalog Won’t Compile and/or My Code is Behaving Unpredictably
- Why hasn’t my new node configuration been noticed?
- Why don’t my certificates show as waiting to be signed on my server when I do a “puppet cert --list”?
- I keep getting “certificates were not trusted”. What’s wrong?
- Agents are failing with a “hostname was not match with the server certificate” error; what’s wrong?
- I’m getting IPv6 errors; what’s wrong?
- I’m getting tlsv1 alert unknown ca errors; what’s wrong?
- Why does Puppet keep trying to start a running service?
- Why is my external node configuration failing? I get no errors by running the script by hand.
- Puppet Syntax Errors
- Syntax error at ‘}’; expected ‘}’ at manifest.pp:nnn
- Syntax error at ‘:’; expected ‘]’ at manifest.pp:nnn
- Syntax error at ‘.’; expected ‘}’ at manifest.pp:nnn
- Could not match ‘_define_name’ at manifest.pp:nnn on node nodename
- Duplicate definition: Classname::Define_name[system] is already defined in file manifest.pp at line nnn; cannot redefine at manifest.pp:nnn on node nodename
- Syntax error at ‘=>’; expected ‘)’
- Syntax error at ‘«|’; expected ‘|»’
- err: Exported resource Blah[$some_title] cannot override local resource on node $nodename
- Common Misconceptions
- Custom Type & Provider development


{% block extra_css %}{% endblock %} {% block extra_head_js %}{% endblock %}{# this should be very rarely used. if at all possible, javascript should go at the end of the page #}


Please remember to give your client a unique name. You can click one of the following links and add your unique name after the "name=" in the query string and press enter to re-load the page with your unique name.
Button:
local
lab
cloud
Graph:
local
lab
cloud
GUI:
local
lab
cloud
Colored Screen:
local
lab
cloud
iPhone Events:
local
lab
cloud
Slideshow:
local
lab
cloud
Speech:
local
lab
cloud
String:
local
lab
cloud
Text Transform:
local
lab
cloud


import com.sleepycat.db.*;
This manual page describes the specific details of the Dbc class, which provides cursor support for the access methods in Db.
The Dbc functions are the library interface supporting sequential access to the records stored by the access methods of the Berkeley DB library. Cursors are created by calling the Db.cursor method which returns a Dbc object.
Each cursor maintains positioning information within a set of key/data pairs. In the presence of transactions, cursors are only valid within the context of a single transaction, the one specified during the Db.cursor call. All cursor operations will be executed in the context of that transaction. Before aborting or committing a transaction, all cursors used within that transaction must be closed. In the presence of transactions, the application must call DbTxn.abort if any of the cursor operations returns that a deadlock (EAGAIN) or system failure occurred.
When locking is enabled, page locks are retained between consecutive cursor calls. For this reason, in the presence of locking, applications should discard cursors as soon as they are done with them. Calling the Db.close method discards any cursors opened in the context of a particular Db object returned by the Db.open call.


GPIO (General Peripheral Input/Output)
More...
|
| void | pi_gpio_conf_init (struct pi_gpio_conf *conf) |
| | Initialize a GPIO configuration with default values. More...
|
| |
| int | pi_gpio_open (struct pi_device *device) |
| | Open a GPIO device. More...
|
| |
| void | pi_gpio_close (struct pi_device *device) |
| | Close an opened GPIO device. More...
|
| |
| int | pi_gpio_pin_configure (struct pi_device *device, pi_gpio_e gpio, pi_gpio_flags_e flags) |
| | Configure a GPIO. More...
|
| |
| int | pi_gpio_pin_write (struct pi_device *device, uint32_t pin, uint32_t value) |
| | Set value of a single GPIO. More...
|
| |
| int | pi_gpio_pin_read (struct pi_device *device, uint32_t pin, uint32_t *value) |
| | Get value of a single GPIO. More...
|
| |
| void | pi_gpio_pin_notif_configure (struct pi_device *device, uint32_t pin, pi_gpio_notif_e flags) |
| | Configure notifications for a GPIO. More...
|
| |
| void | pi_gpio_pin_notif_clear (struct pi_device *device, uint32_t pin) |
| | Clear notification for a GPIO. More...
|
| |
| int | pi_gpio_pin_notif_get (struct pi_device *device, uint32_t pin) |
| | Get the value of a notification for a GPIO. More...
|
| |
| int | pi_gpio_pin_task_add (struct pi_device *device, uint32_t pin, pi_task_t *task, pi_gpio_notif_e flags) |
| | Attach an event task callback to a GPIO pin. More...
|
| |
| int | pi_gpio_pin_task_remove (struct pi_device *device, uint32_t pin) |
| | Remove an event task callback attached to a GPIO pin. More...
|
| |
| static void | pi_gpio_callback_init (pi_gpio_callback_t *cb, uint32_t pin_mask, pi_gpio_handler_t handler, void *args) |
| | Init GPIO callback. More...
|
| |
| int | pi_gpio_callback_add (struct pi_device *device, pi_gpio_callback_t *cb) |
| | Attach a callback. More...
|
| |
| int | pi_gpio_callback_remove (struct pi_device *device, pi_gpio_callback_t *cb) |
| | Remove a callback. More...
|
| |
The GPIO driver provides support for controlling GPIOs. The available GPIOs are listed in pmsis/chips folder.
◆ pi_gpio_handler_t
This handler is executed when an IRQ is triggered on configured GPIO pins.
- Parameters
-
| args | User args to handler. |
- Note
- Multiple handlers can be added for a given GPIO pin.
-
This is executed in IRQ mode.
◆ pi_gpio_flags_e
Flags to configure gpio : input/output mode, drive strength, pull activation.
| Enumerator |
|---|
| PI_GPIO_PULL_DISABLE | Disable pull.
|
| PI_GPIO_PULL_ENABLE | Enable pull.
|
| PI_GPIO_DRIVE_STRENGTH_LOW | Low drive strength.
|
| PI_GPIO_DRIVE_STRENGTH_HIGH | High drive strength.
|
| PI_GPIO_INPUT | GPIO is an input.
|
| PI_GPIO_OUTPUT | GPIO is an output.
|
◆ pi_gpio_notif_e
This is used to tell which GPIO value modification will trigger a notification(IRQ).
| Enumerator |
|---|
| PI_GPIO_NOTIF_FALL | IRQ are sent on a falling edge on the GPIO value.
|
| PI_GPIO_NOTIF_RISE | IRQ are sent on a rising edge on the GPIO value.
|
| PI_GPIO_NOTIF_EDGE | IRQ are sent on a rising or a falling edge on the GPIO value.
|
| PI_GPIO_NOTIF_NONE | No IRQ.
|
◆ pi_gpio_callback_add()
Add an application callback to a GPIO device. Multiple callbacks can be attached to a device, and to a GPIO pin.
- Parameters
-
| device | Pointer to device struct. |
| cb | Callback to add to the list. |
- Return values
-
| 0 | If operation is successfull. |
| ERRNO | An error code otherwise. |
- Note
- The callback can initialized with pi_gpio_callback_init().
-
Using callbacks is incompatible with event handling model(using event tasks cf. pi_gpio_pin_task_add()).
-
A callback is executed when a GPIO's corresponding bit is set in the callbask mask.
◆ pi_gpio_callback_init()
Intialize a GPIO callback with the handler to call and the user args.
- Parameters
-
| cb | Pointer to callback to initialize. |
| pin_mask | Mask of GPIO pins. |
| handler | Callback function. |
| args | Callback function args. |
◆ pi_gpio_callback_remove()
Remove an application callback from a GPIO device.
- Parameters
-
| device | Pointer to device struct. |
| cb | Callback to remove from the list. |
- Return values
-
| 0 | If operation is successfull. |
| ERRNO | An error code otherwise. |
◆ pi_gpio_close()
| void pi_gpio_close |
( |
struct pi_device * |
device | ) |
|
This function closes a GPIO device. If memory was allocated, it is freed.
- Parameters
-
| device | A pointer to the device structure of the device to open. |
- Note
- Closing a GPIO device will disable all GPIOs.
◆ pi_gpio_conf_init()
The structure containing the configuration must be kept alive until the device is opened.
- Parameters
-
| conf | A pointer to the GPIO configuration. |
◆ pi_gpio_open()
| int pi_gpio_open |
( |
struct pi_device * |
device | ) |
|
This function must be called before the GPIO device can be used. It will do all the needed configuration to make it usable and initialize the handle used to refer to this opened device when calling other functions. This operation must be done once for each GPIO port, i.e. for every group of 32 GPIOs. The opened device can then be used to drive the 32 GPIOs.
- Parameters
-
| device | A pointer to the device structure of the device to open. |
- Return values
-
| 0 | If the operation is successfull, |
| ERRNO | An error code otherwise. |
- Note
- The device structure is allocated by the caller and must be kept alive until the device is closed.
◆ pi_gpio_pin_configure()
This function can be used to configure several aspects of a GPIO, like the direction.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| gpio | GPIO enumerate type or GPIO number within the port (from 0 to 31). |
| flags | A bitfield of flags specifying how to configure the GPIO. |
- Return values
-
| 0 | If the operation is successfull. |
| ERRNO | An error code otherwise. |
◆ pi_gpio_pin_notif_clear()
| void pi_gpio_pin_notif_clear |
( |
struct pi_device * |
device, |
|
|
uint32_t |
pin |
|
) |
| |
This function can be used to clear the notification of a GPIO. A GPIO notification is buffered and ths function must be called to clear it so that a new one can be seen.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| pin | The GPIO number within the port (from 0 to 31). |
- Note
- The pin parameter can be a GPIO enumerate type pi_gpio_e.
◆ pi_gpio_pin_notif_configure()
| void pi_gpio_pin_notif_configure |
( |
struct pi_device * |
device, |
|
|
uint32_t |
pin, |
|
|
pi_gpio_notif_e |
flags |
|
) |
| |
This function can be used to configure how to be notified by GPIO value modifications. By default, notifications will be buffered and can be read and cleared.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| pin | The GPIO number within the port (from 0 to 31). |
| flags | The flags to configure how the notification should be triggered. |
- Note
- The pin parameter can be a GPIO enumerate type pi_gpio_e.
◆ pi_gpio_pin_notif_get()
| int pi_gpio_pin_notif_get |
( |
struct pi_device * |
device, |
|
|
uint32_t |
pin |
|
) |
| |
This function can be used to get the value of a notification of a GPIO. It returns 1 if at least one notification was received since the last time it was cleared. Reading the notification does not clear it.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| pin | The GPIO number within the port (from 0 to 31). |
- Return values
-
| 0 | If a notification was received. |
| 1 | Otherwise. |
- Note
- The pin parameter can be a GPIO enumerate type pi_gpio_e.
◆ pi_gpio_pin_read()
| int pi_gpio_pin_read |
( |
struct pi_device * |
device, |
|
|
uint32_t |
pin, |
|
|
uint32_t * |
value |
|
) |
| |
This function can be used to get the value of a single GPIO. It will store the current input value of a GPIO pin into a given buffer.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| pin | The GPIO number within the port (from 0 to 31). |
| value | A pointer to the variable where the GPIO value should be returned. The value will be either 0 or 1. |
- Return values
-
| 0 | If the operation is successfull. |
| ERRNO | An error code otherwise. |
- Note
- The pin parameter can be a GPIO enumerate type pi_gpio_e.
-
This function should be used on GPIO pins configured as PI_GPIO_INPUT. Although this function can be used to retrieve current value set on a GPIO pin configured as PI_GPIO_OUTPUT.
◆ pi_gpio_pin_task_add()
| int pi_gpio_pin_task_add |
( |
struct pi_device * |
device, |
|
|
uint32_t |
pin, |
|
|
pi_task_t * |
task, |
|
|
pi_gpio_notif_e |
flags |
|
) |
| |
This function is used to attach a callback that will be called when a GPIO triggers an IRQ.
This callback is executed by the event kernel.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| pin | The GPIO number within the port (from 0 to 31). |
| task | Event task executed when an IRQ is triggered. |
| flags | The flags to configure how the notification should be triggered. |
- Return values
-
| 0 | If the operation is successfull. |
| ERRNO | An error code otherwise. |
- Note
- The pin parameter can be a GPIO enumerate type pi_gpio_e.
◆ pi_gpio_pin_task_remove()
| int pi_gpio_pin_task_remove |
( |
struct pi_device * |
device, |
|
|
uint32_t |
pin |
|
) |
| |
This function is used to remove an attached callback to a GPIO pin. If a IRQ is triggered on the given pin, after removal of the event task, no handler will executed.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| pin | The GPIO number within the port (from 0 to 31). |
- Return values
-
| 0 | If the operation is successfull. |
| ERRNO | An error code otherwise. |
- Note
- The pin parameter can be a GPIO enumerate type pi_gpio_e.
◆ pi_gpio_pin_write()
| int pi_gpio_pin_write |
( |
struct pi_device * |
device, |
|
|
uint32_t |
pin, |
|
|
uint32_t |
value |
|
) |
| |
This function can be used to change the value of a single GPIO.
- Parameters
-
| device | A pointer to the device structure this GPIO belongs to. |
| pin | The GPIO number within the port (from 0 to 31). |
| value | The value to be set. This can be either 0 or 1. |
- Return values
-
| 0 | If the operation is successfull. |
| ERRNO | An error code otherwise. |
- Note
- The pin parameter can be a GPIO enumerate type pi_gpio_e.
-
This function is to be used on GPIO pins configured as PI_GPIO_OUTPUT.


+++ draft = false date = "2010-05-12T11:21:44-03:00" title = "Some issues with zc.recipe.egg's python option" tags = ["Python", "cookbook", "buildout"] created = "2010-05-12T11:06:14-03:00" modified = "2010-05-12T11:21:44-03:00" permaLink = "http://play.pixelblaster.ro/blog/archive/2010/05/12/some-issues-with-zc-recipe-eggs-python-option" author = "Tiberiu Ichim" aliases = [ "/blog/archive/2010/05/12/some-issues-with-zc-recipe-eggs-python-option" ] +++
I've recently had to integrate a script/package into a Plone 2.5 buildout that runs on top of Python 2.4. Due to that package's dependence of a sane imaplib (and the one in Python 2.4 is buggy), I had to run the script with python2.6. To make a script run on a different python, you need to do:
[myscript] recipe = zc.regipe.egg eggs = myegg IMAPClient python = python26
The python26 option is actually the name of a buildout part that configures the python executable path
[python26] python = /usr/bin/python26
Now the problems. I've had various buildouts fail with a message "Cannot find egg myegg". After a bit of effort, we managed to trace the cause to this problem:
First, the python path in the [python26] part was incorect. Second, even if it pointed to the proper binary, the -devel packages for that python needed to be installed.
Well, now I know. Hopefully I'll remember it for the next time when I'll encounter the problem.


The new
operator creates an instance of a user-defined object type or of one of the built-in object types that has a constructor function.
new constructor[([arguments])]
constructor
arguments
constructor
will be called with.Creating a user-defined object requires two steps:
new
.To define an object type, create a function for the object type that specifies its name and properties. An object can have a property that is itself another object. See the examples below.
When the code new Foo(...)
is executed, the following things happen:
Foo.prototype
.oo
is called with the specified arguments and this
bound to the newly created object. new Foo
is equivalent to new
Foo
()
, i.e. if no argument list is specified, Foo
is called without arguments.new
expression. If the constructor function doesn't explicitly return an object, the object created in step 1 is used instead. (Normally constructors don't return a value, but they can choose to do so if they want to override the normal object creation process.)You can always add a property to a previously defined object. For example, the statement car1.color = "black"
adds a property color
to car1
, and assigns it a value of "black
". However, this does not affect any other objects. To add the new property to all objects of the same type, you must add the property to the definition of the Car
object type.
You can add a shared property to a previously defined object type by using the Function.prototype
property. This defines a property that is shared by all objects created with that function, rather than by just one instance of the object type. The following code adds a color property with value null
to all objects of type car
, and then overwrites that value with the string "black
" only in the instance object car1
. For more information, see prototype.
function Car() {} car1 = new Car(); console.log(car1.color); // undefined Car.prototype.color = null; console.log(car1.color); // null car1.color = "black"; console.log(car1.color); // black
Suppose you want to create an object type for cars. You want this type of object to be called car
, and you want it to have properties for make, model, and year. To do this, you would write the following function:
function Car(make, model, year) { this.make = make; this.model = model; this.year = year; }
Now you can create an object called mycar
as follows:
var mycar = new Car("Eagle", "Talon TSi", 1993);
This statement creates mycar
and assigns it the specified values for its properties. Then the value of mycar.make
is the string "Eagle", mycar.year
is the integer 1993, and so on.
You can create any number of car
objects by calls to new
. For example:
var kenscar = new Car("Nissan", "300ZX", 1992);
Suppose you define an object called person
as follows:
function Person(name, age, sex) { this.name = name; this.age = age; this.sex = sex; }
And then instantiate two new person
objects as follows:
var rand = new Person("Rand McNally", 33, "M"); var ken = new Person("Ken Jones", 39, "M");
Then you can rewrite the definition of car
to include an owner
property that takes a person object, as follows:
function Car(make, model, year, owner) { this.make = make; this.model = model; this.year = year; this.owner = owner; }
To instantiate the new objects, you then use the following:
var car1 = new Car("Eagle", "Talon TSi", 1993, rand); var car2 = new Car("Nissan", "300ZX", 1992, ken);
Instead of passing a literal string or integer value when creating the new objects, the above statements pass the objects rand
and ken
as the parameters for the owners. To find out the name of the owner of car2
, you can access the following property:
car2.owner.name
Created by Mozilla Contributors, license: CC-BY-SA 2.5


---
layout: post
title: Application Lifecycle Management safe in China!
tags:
- ego
- Personal Opinion
status: publish
type: post
published: true
meta:
_edit_last: '451289'
---
I am glad to report that voga.com.au has not been blocked by the great Firewall of China. Anyone in China who needs assistance with their software process can safely get hold of services and help from your truly. I'm sure the doom mongers are feeling a bit foolish now?
With thanks to Alexia Golez


– @drbooleanPrograms that are terse, yet easy to reason about. Programs that don't reinvent the wheel at every turn.
const fetchDogs = (fetcher, name) => fetcher(name);
const fetchDogsCreator = (fetcher) => (name) => fetcher(name);
const fetchPups = fetchDogsCreator(pupsApiFetcher);
fetchPups('Harold');
const dogSaloon = (name) => trimDogs(addDogs(getDogs(name)))
const dogSaloon = (name) => getDogs | addDogs | trimDogs
const dogSaloon = pipe(getDogs, addDogs, trimDogs)
Array.map, Array.filter, Array.reduce
Array.flat, Array.some, Array.every, Array.slice, Array.concat


Data Visualization Application
Input the data or choose the file to visualize
Data:
Browse
Select the plot type:
Stress-Strain-Time
Scatter
Submit


Adapt configs
Introduction
There are two major use cases:
Changing the configs from outside, e.g. injecting a toolchain.
Changing the configs depending on variables like the operating system.
Both is possible with the Adapt feature.
From command line
If you want to manipulate existing configs without changing them, you can “adapt” them via command line.
User@Host:~$ bake test --adapt abc/def
bake searches for abc/def in this priority:
<current directory>/abc/def
<main project directory>/abc/def
<workspace root>/abc/def (done for all roots)
abc/def/Adapt.meta recursively in all workspace roots (note, that /Adapt.meta is automatically appended here)
If found, the configs from the adapt file are parsed:
Adapt {
ExecutableConfig ... # 0..n
LibraryConfig ... # 0..n
CustomConfig ... # 0..n
}
Here is an example to change the DefaultToolchain (details explained below):
Adapt {
ExecutableConfig test, project: __MAIN__, type: replace {
DefaultToolchain GCC
}
}
–adapt can be used multiple times:
User@Host:~$ bake test --adapt abc --adapt xy
The values for adapt can be also comma separated:
User@Host:~$ bake test --adapt abc,xy
From Project.meta
You can do the same within the Project.meta:
Project {
...
}
Adapt {
...
}
Adapt {
...
}
Conditions and effectiveness
Be aware, these are two different things but look very similar.
Condition
An Adapt can have up to four attributes:
toolchain: e.g. GCC
os: can be Windows, Mac, Linux, Unix (which is != Linux)
mainConfig: name of the main config
mainProject: name of the main project
User defined conditions are specified in Scopes.
The Adapt configs will be only applied if all these conditions are true (“AND” operation). Example:
Adapt toolchain: GCC, os: Windows {
Scope target, value: powerPC
Scope somethingElse, value: "option1;option2"
...
}
Here the Adapt configs will be applied if toolchain is GCC on Windows and if target is powerPc and somethingElse either option1 or option2.
User defined scopes must be also specified in the config to be adapted or in main config:
LibraryConfig Lib {
Scope target, value: powerPC
Files "*.cpp"
...
}
Note
You can write “If” instead of “Adapt”:
If toolchain: GCC, os: Windows {
...
}
Note
It is possible to negate the conditions with “Unless”:
Unless toolchain: GCC, os: Windows {
...
}
The adapt block in the example above will be applied if the toolchain is not GCC AND if the OS is not Windows, e.g. for GCC on Linux or Diab Compiler on Mac.
Effectiveness
The Adapt configs can be applied to all configs from regular build. This can be controlled by the config names and the project attributes. Remember the example from the beginning?
Adapt {
ExecutableConfig test, project: __MAIN__, type: replace {
DefaultToolchain GCC
}
}
This config is applied only to the config “test” of the main project.
__MAIN__, __ALL__ and __THIS__ are keywords:
__MAIN__ means the main project or main config
__ALL__ means all projects or configs
__THIS__ is only valid for project name, which can be used for Adapts within a Project.meta to restrict the adaption to the current project. This is the default for Adapts in Project.meta.
If you want to apply the changes only to the top level config, write:
ExecutableConfig __MAIN__, project: __MAIN__, ...
If you want to apply the changes to all configs, write:
ExecutableConfig __ALL__, project: __ALL__, ...
It is possible to mix the keywords with reals project or config names.
Config type
In most cases the type of the config does not matter. To adapt an attribute or element, the only important thing is that it’s valid in the config of the project AND in the config of the adapt file.
E.g. to adapt a Dependency, the config type is not relevant, Dependency is valid in both cases.
To adapt the ArtifactName, which is exclusively useable in ExecutableConfigs, you need in both cases an ExecutableConfig.
If you want to match the Adapt ONLY for the config type specified in the adapt file, use the strict attribute:
Adapt {
ExecutableConfig ..., strict: true {
...
}
Occurrences
You can specify more configs in one Adapt and you can specify more than one Adapt.meta file:
Adapt {
ExecutableConfig ..., project: ..., type: ... {
...
}
ExecutableConfig ..., project: ..., type: ... {
...
}
LibraryConfig ..., project: ..., type: ... {
...
}
...
}
User@Host:~$ bake test --adapt abc --adapt xy
Apply order
The Adapt configs will be applied in the order in which they were parsed. First the Adapt.metas referenced from the command line are read. Then the Project.metas are read one by one as usual. If an Adapt is found, it will be appended to the list of Adapts. Note, Adapts will be applied immediately when a Project.meta is read.
If you inject a Toolchain from outside, e.g. “–adapt gcc”, you can use the toolchain info for local Adapts:
Project {
...
}
Adapt toolchain: GCC {
...
}
Types
It is possible to specify the type of adaption:
ExecutableConfig ..., type: replace
The type can be
replace
remove
extend
push_front
Type: extend
This works exactly like for Derive configs.
Type: push_front
This works like extend, but elements which can be contained multiple times are pushed to front.
Example project config:
Project {
LibraryConfig test {
IncludeDir "abc"
...
}
}
Adapt ... {
LibraryConfig test, project: __THIS__, type: push_front {
IncludeDir "mock"
}
}
The resulting include path order will be “-Imock -Iabc”.
Type: remove
If parent elements can be found which matches to the child elements, they will be removed.
Example project config:
ExecutableConfig test {
DefaultToolchain GCC
}
Example Adapt configs:
ExecutableConfig __ALL__, project: __ALL__, type: remove {
DefaultToolchain # remove ok
}
ExecutableConfig __ALL__, project: __ALL__, type: remove {
DefaultToolchain GCC # remove ok
}
ExecutableConfig __ALL__, project: __ALL__, type: remove {
DefaultToolchain Diab # remove NOT ok
}
ExecutableConfig __ALL__, project: __ALL__, type: remove {
DefaultToolchain GCC, eclipseOrder: true # remove NOT ok
}
Type: replace
This is for convenience. “replace” will remove all elements with the same type and extends the configs.
Example:
ExecutableConfig __ALL__, project: __ALL__, type: replace {
Files "*.cpp"
DefaultToolchain GCC {
Linker command: "link.exe"
}
}
This removes all “Files” and the “DefaultToolchain” from the original config regardless their attributes and replaces them by the elements of the Adapt config.
Wildcards
The “*” wildcard is allowed:
Adapt mainProject: HERE, mainConfig: HERE ... {
Scope fasel, value: HERE
SomeConfig HERE, project: HERE ... {
....
}
}
Example (the configs of the Adapt are applied if the main config name starts with “UnitTest”):
Adapt mainConfig: "UnitTest*" {
...
}
Lists
Additionally to the wildcards, a list of projects/configs can be specified separated with “;”.
Example:
Adapt mainProject: "projA;projB", mainConfig: "UnitTest*;SomeOther" ... {
Scope fasel, value: "option*;fasel"
SomeConfig "libA;libX*", project: "can*;*lin" ... {
....
}
}
LibraryConfig Lib {
Scope target, value: "z4a;z4b"
....
}
}
Command line filter
To apply adapt files to specific projects only, the usage can be restricted with square brackets:
--adapt abc[libraryA;libraryB]
In this case the Adapt.meta in abc is applied to libraryA and libraryB only. Note that further restrictions in the adapt file are still effective.
Lists and wildcards can be used as described above, e.g.:
--adapt abc[__MAIN__;*driver],xy/Adapt.meta[*can*;*lin*]


Projects
These series of projects are all open sourced and available online for you to clone or view. I normally use either CodePen for exclusively front end projects, Github Pages for frontend projects with multiple pages or Heroku for full stack or API projects.
(Click the project name to show its description.)
Full Stack Projects
MangaDB
MangaDB
closeThis project is divided in two parts, standalone API which handles the data, security, user management and more; and the client which displays the data in a user friendly way.
The Client is based on the Material design and is fully responsive. The user can create or delete an account, and create as many new series as wanted, there is quick access to increase the last read chapter by 1 or update multiple information at once.
The user can also edit his information and is able to preview the thumbnails before saving it and much more.
Tools used:
- Node.js (API & Client)
- Express (API & Client)
- Pug (Client)
- MongoDB (API)
- JavaScript (API & Client)
- Sass (Client)
- Gulp (Client)
- Travis-CI (API)
- Jason Web Tokens (API & Client)
React Projects
Recipes Box
React Recipe Box
closeThis is a simple React based recipe web app that saves your recipes to local storage in your browser. It supports markdown so you can be as creative as you want with your recipes. You also have the ability to delete any and all recipes besides adding new ones.
Tools used:
- Reactjs
- Babel
- Materializecss
- Browser Local Storage)
- JavaScript
- Sass
- Markdown
Markdown Previewer
React: Markdown Previewer
closeThis is a simple React based markdown parser that allows users to quickly preview markdown. Simple and useful for those who are new to markdown syntax and need a visual feedback.
Tools used:
- Reactjs
- Babel
- JavaScript
- Sass
- Markdown
FCC Leaderboard
React: Free Code Camp Leader board
closeA react based leader board that receives the data via JSON API and lets the user organize by the total points in a month or all-time. Clicking the username will take you to the user's profile.
Tools used:
- React
- SASS
- JavaScript
- jQuery
- Babel
Data Visualization Projects
D3: Bar Chart
D3: Bar Chart
closeResponsive bar chart made using d3.js. It has a simple interface and tooltips to show the graph details. D3 is used for data visualization.
Tools used:
- D3.js
- CSS
- JavaScript
- SVG
- Ajax
Back End Projects
Timestamp Micro-service API
Timestamp Micro-service API
closeThis is a micro-service that will allow get calls to convert Unix time-stamps or natural dates to one or the other. It checks the date given for validity and output either null or a predefined date format.
Tools used:
- JavaScript
- Nodejs
- Expressjs
- JSON
- Momentjs
- Pug
Header Parser Micro-service API
Header Parser Micro-service API
closeIt is an API that works similar to "whoami" as it displays the real ip address, language and software version from the client side.
Tools used:
- JavaScript
- Nodejs
- Expressjs
- JSON
- HTML5
Front End Projects
Simon Says Game
Simon Says Game
closeAn implementation of the popular Simon Says game where the user can play in two modes, strict mode which does not allow for reties, and normal mode which allows for unlimited retries.
There is a power button that must be used, just as if it was a physical game, and there is sound feedback besides the coloring. The speed increases after the 5th,9th and 13th round. The player wins after the 20th round.
Tools used:
- HTML5
- SASS
- JavaScript
- Pug
- Boostrap3
- jQuery2
Wikipedia Searcher
Wikipedia Searcher
closeSimple interface to the Wikipedia API that allows to search articles and display 10 possible article snippets for the user to select one. The snippets have an extract of the article, a title and when clicked, it will take you to the article.
The app also has a random button for opening a random Wikipedia article. The app can easily be adjusted to any MediaWiki installation.
Tools used:
- HTML5
- CSS3
- Wikipedia API
- JavaScript
- Boostrap3
- jQuery2
Twitchtv JSON API
Twitchtv JSON API
closeThis app is for consuming two of the Twitch API for users and streaming. The client was built with React 15.2.x and MaterializeCSS.
You are able to add and remove streamers where the app is smart enough to tell you when a streamer is online, offline, the account has been closed or the username does not exist. You will get basic information such as bio, logo, current viewers, followers and a preview of the stream along with a link to watch it if the user is online.
Tools used:
- React
- SASS
- Twitchtv API
- JavaScript
- MaterializeCSS
- jQuery3
- Font Awesome, DevIcons, and other Material design icons.
Pomodoro Timer
Pomodoro Timer
closeThis web app is great for productivity, it can sit in any corner of your screen, and there is not even the need to keep it in view. Once you set the amount of time you want to work and how long you want to rest for, then just let it run and it will keep looking until you stop it. You are also able to pause it in case you have to step aside from your work for a brief moment.
It has a nice progression animation to let you know how much time you have left and the break and work progress animation have different color to help you figure out in which one you should be if needed.
Tools used:
- HTML5
- CSS3
- Canvas
- Javascript
- Boostrap3
- jQuery2
- Font Awesome
- jquery's WaterBubble.js
Local Weather
Local Weather
closeThe site will request location information, then use that information to get the current weather and other basic information using the OpenWeatherMap API.
The user has the option to display the weather and wind speed using the Metric or Imperial system. It also changes background image depending on the current temperature.
Note that the API does not support https on a free account which this uses.Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- OpenWeatherMap API
Random Quote Generator
Random Quote Generator
closeThis site will display random quotes using the Forismatic API. You will then have the option to tweet it and share with others.
Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- Forismatic API
Templates
Project Name
Project Name
closeHere is some more information about this product that is only revealed once clicked on.
Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- Forismatic API
Project Name
Project Name
closeHere is some more information about this product that is only revealed once clicked on.
Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- Forismatic API
Project Name
Project Name
closeHere is some more information about this product that is only revealed once clicked on.
Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- Forismatic API
Project Name
Project Name
closeHere is some more information about this product that is only revealed once clicked on.
Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- Forismatic API
Project Name
Project Name
closeHere is some more information about this product that is only revealed once clicked on.
Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- Forismatic API
Project Name
Project Name
closeHere is some more information about this product that is only revealed once clicked on.
Tools used:
- HTML5
- CSS3
- JavaScript
- Boostrap3
- jQuery2
- Font Awesome
- Forismatic API


Oops. The visualisation you are looking for is either unavailable or currently offline due to maintenance work. Click
here
to go back to the index page to see all our online visualisations.


konashi-js-sdk: Processing.js
Hello konashi.js!
First make sure you tap the following button to find konashi.
Find konashi


Community Help
The Ionic community is your first stop for questions and advice about the Framework. Welcome to the community!
Community Forum
The Forum is the best place to connect with other Ionic developers, ask questions, or even help out others.
Worldwide Slack
Chat in our Slack channel with other Ionic community members, and occasionally some Ionic core team members.
StackOverflow
For crowdsourced technical questions from expert Ionic devs in our community. Also frequented by the Ionic core team.
Business and Customer Support
Run into a problem? Get in touch, we’re here to help. This requires an Ionic account.
Account and billing
Contact our support team for any issues or problems with your Ionic account or questions about billing.
Report services bug or issue
Find a bug in the Ionic services? Have a novel idea? Let us know! Framework bugs, please use the GitHub link below.
Using Ionic Services
Have questions about what Ionic has to offer or how to use our services? Ask us about it.
More Resources
Looking for more resources? Here’s what we have to offer.
Ionic Framework Resources
Ionic Framework guides, videos, books, tools and everything in between for taking your app further.
GitHub issues
The end all, be all Knowledge Base for learning more about how to build even better Ionic apps.
FAQ
You have frequent questions, we have the answers. Stop by our FAQ and make sure yours are answered.


NOAA asks residents to keep eye out for stunned sea turtles
SANDY HOOK, N.J. (AP) - The federal government is asking New Jersey and New York beachgoers to report any sightings they might have of stranded turtles.
The National Oceanic and Atmospheric Administration says a recent cold snap has suddenly resulted in cold-stunned sea turtles washing up on beaches. The agency says the problem is particularly acute in Sandy Hook and Long Beach Island in northern New Jersey.
NOAA is also asking residents to keep pets away from the turtles because they are in a “severely distressed state.” Residents can also help by moving the turtles above the high tide line and covering them lightly with seaweed. It’s also helpful to wait until trained responders show up.
NOAA is asking residents who find stranded turtles to call<PHONE_NUMBER>.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


All the series have a Stroke and Fill properties these properties handle the color, both properties type is System.Windows.Media.Brush you can use complex fills or stokes, here is a good article about it
mySeries.Fill = Brushes.Red; mySeries.Stroke = Brushes.Blue;
Use the Series.StrokeThickness property as you need, to draw dashed strokes you can use the Series.StrokeDashArray property, you can find more information about dashed arrays here
<lvc:LineSeries StrokeDashArray="2" />
mySeries.StrokeDashArray = new DoubleCollection {2};
Every shape drawn by any series class is binded to the Panel.ZIndex property, so you can easily control which series is over or under in the z index, here is a short example
<lvc:LineSeries Panel.ZIndex="0" /> <lvc:LineSeries Panel.ZIndex="1" /> <lvc:LineSeries Panel.ZIndex="2" />
System.Windows.Controls.Panel.SetZIndex(mySeries, 0); System.Windows.Controls.Panel.SetZIndex(mySeries, 1); System.Windows.Controls.Panel.SetZIndex(mySeries, 2);
All drawn shapes are also binded to the Series.Visibility property so you can easily control your series visibility at run time.
Notice any stacked series (including pie series) will not only change based on the visibility property, it will also remove the series from the stacked values, and the chart will be updated as if that series had not existed.
There are some properties that do only exist at certain series, to find more info about how to customize every series, please see the related documentation, for example see /App/documentation/beta/LiveCharts-Wpf-LineSeries to get more info about LineSeries, use the textbox in the documentation section to filter the all objects and get the desired article.
Here is an example:
using LiveCharts; namespace Wpf.CartesianChart.Customized { public partial class CustomizedExample { public CustomizedExample() { InitializeComponent(); Values1 = new ChartValues<double> { 3, 4, 6, 3, 2, 6 }; Values2 = new ChartValues<double> { 5, 3, 5, 7, 3, 9 }; DataContext = this; } public ChartValues<double> Values1 { get; set; } public ChartValues<double> Values2 { get; set; } } }
<lvc:CartesianChart Background="#222E31"> <lvc:CartesianChart.Series> <lvc:LineSeries Values="{Binding Values1}" StrokeThickness="4" StrokeDashArray="2" Stroke="#6BBA45" Fill="Transparent" LineSmoothness="0" PointGeometry="{x:Null}" /> <lvc:LineSeries Values="{Binding Values2}" StrokeThickness="2" Stroke="#1C8FC5" Fill="Transparent" LineSmoothness="1" PointGeometrySize="15" PointForeround="#222E31"/> </lvc:CartesianChart.Series> <lvc:CartesianChart.AxisX> <lvc:Axis IsMerged="True"> <lvc:Axis.Separator> <lvc:Separator StrokeThickness="1" StrokeDashArray="2"> <lvc:Separator.Stroke> <SolidColorBrush Color="#404F56" /> </lvc:Separator.Stroke> </lvc:Separator> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisX> <lvc:CartesianChart.AxisY> <lvc:Axis IsMerged="True"> <lvc:Axis.Separator> <lvc:Separator StrokeThickness="1.5" StrokeDashArray="4"> <lvc:Separator.Stroke> <SolidColorBrush Color="#404F56" /> </lvc:Separator.Stroke> </lvc:Separator> </lvc:Axis.Separator> </lvc:Axis> </lvc:CartesianChart.AxisY> </lvc:CartesianChart>


Welcome to build-status homepage !
What is build-status ?
build-status is a notification tool that you may use in addition of
continuous integration practices.
build-status is very simple : it shows an entire red or green screen, according to the last action done.
By action, I mean an URL call : /pass or /fail.
So, the idea is to set up that application full page on a dedicated spare screen in your "war room",
so all of your fellow coders can see it.
Why should I use build-status ?
Because you want anybody in your team to be aware that the build just broke, so one can fix it as soon as possible !
You may see two links on that previous page, /pass and /fail, that allow you to change the build status for that project and so, the screen color.
To use that application on your project, simply add the parameter 'app_name' to the base URL, as follows : http://build-status.appspot.com/?app_name=yourprojectnamehere
Automatisation
Of course, you won't click manually on /pass and
/fail each time your build has passed or crashed !
You will usually add a plugin to your continuous integration system, to call these actions at the end of each build.
If you're using TeamCity,
here's a custom notifier which will do that for you.
If you've built a plugin for Hudson, Continuum,
CruiseControl or another CI
system, contact me so I may refer to your plugin on this page !
Feedback
Contact me, Grégory PAUL, for any remark, bug or question.
My username is paulgreg, both on gmail and on twitter.
Technical stuff
This application is built using AppEngine with Python, the cloud computing solution from Google. I also take care respecting Web Standard.
You will find that application's source code on github.


A single content item in a course such as lecture, quiz or peer review assignment. Note: For courses that uses the Course Versioning feature, please refer to the branch version of this table.
| Name | Description |
|---|---|
| course_id | 22 character unique string identifying an individual course |
| course_item_id | 5 character alphanumeric string identifying an individual item within a course. Items that have the same id that are in different branches of the same course are considered to be the same for the purposes of progress and grade computations. For example, if you complete item xxxxx in branch A, then you have completed it in branch B even if item xxxxx in branch B is very different from item xxxxx in branch A. |
| course_lesson_id | 5 character alphanumeric string identifying an individual lesson within a course. course_lesson_id need not be unique, but a course_lesson_id/course_id pair is unique. |
| course_item_order | The order of an item within a particular lesson, with "0" indicating the first item in the lesson. |
| course_item_type_id | There are many different types of of items that make up a course. Each item is given an item_type_id for ease of identification. |
| course_item_name | The name of an item, as seen in the learner view of the course. |
| course_item_optional | A course item can either be optional ("true", which means a learner does not need to pass it to complete the course) or not ("false", which means the learner must pass it to complete the course. |
CREATE TABLE course_items ( course_id VARCHAR(50) ,course_item_id VARCHAR(50) ,course_lesson_id VARCHAR(50) ,course_item_order INT4 ,course_item_type_id INT4 ,course_item_name VARCHAR(10000) ,course_item_optional BOOL ,PRIMARY KEY (course_id, course_item_id) ,FOREIGN KEY (course_id, course_lesson_id) REFERENCES course_lessons(course_id, course_lesson_id) );


resource ingres_pconnect ([ string $database [, string $username [, string $password [, array $options ]]]] )
Open a persistent connection to an Ingres database. There are only two differences between this function and ingres_connect(): First, when connecting, the function will initially try to find a (persistent) link that is already opened with the same parameters. If one is found, an identifier for it will be returned instead of opening a new connection. Second, the connection to the Ingres server will not be closed when the execution of the script ends. Instead, the link will remain open for future use (ingres_close() will not close links established by ingres_pconnect()). This type of link is therefore called "persistent".
Returns an Ingres link resource on success or FALSE on failure


{% extends "layout.html" %} {% block content %} {% include "includes/phase_banner_alpha.html" %} {% include "includes/breadcrumbs.html" %} {% include "includes/entity_header.html" %} System messages Setting/activating system messages View Workload points Set workload points View User rights Manage user rights View Display settings Setting labels and units View {% endblock %}
Setting/activating system messages
View
Set workload points
Manage user rights
Setting labels and units


It was designed by multidisciplinary consultancy Atkins led by architect Tom Wright, the conceptual design of the building was originally from Uruguayan architect Carlos Ott.
The hotel was built by South African construction contractor Murray & Roberts / now renamed Concor and Al Habtoor Engineering and the interior works were delivered by UAE based Depa.
Suites consists of one or more king beds, a work desk, a bathroom.It usually has an attached bathroom, a living area, and most times, includes a dining area as well.
The Grand Suite consists of bed room, living room, dining room and balcony.
The majestic Presidential Suite, with plush interiors include a Private Dining Room, attached Kitchenette, an opulent Sitting Room, Study Area, well- appointed spacious bathrooms and a private roof top Garden.
DHRUSMIT takes hotel design to a new level of modern luxury, and has also redefined the meaning of exceptional hospitality, both in Dubai and around the world.” ,
Read More"Great location, really pleasant and clean rooms, but the thing that makes this such a good place to stay are the staff. All of the people are incredibly helpful and generous with their time and advice. "
"Unforgettable luxury experience, nothing but the best, treated like a King and Queen at all times, Our stay exceeded our expectations in every way, from room to pool to French Cusine to the Spa.. all excellent"
"Day 1 and it really is awesome. The service outstanding. The suites ..as all rooms are.. have sweeping staircases and 24 hour personal butlers. The restaurants are varied and the atmosphere is calm and refined."
"If you want service come here, the reception team specially the head of the team in light blue uniform i didn't ask about her name unfortunately,my butler Mr. Alam was great, i will for sure return back ."


Annotator that reports on the separation of read depth clusters used in genotyping.
The ClusterSeparation annotator is invoked through the SVAnnotator framework, which defines arguments common to all annotators.
The ClusterSeparation annotator reports on the model fit and cluster separation of the Gaussian mixture model used in read depth genotyping. The cluster separation statistics are an important part of filtering sites for accurate genotyping.
This annotator can produce the following outputs: annotated VCF, report file.
The annotated VCF contains the following additional INFO fields:
java -Xmx4g -cp SVToolkit.jar \ org.broadinstitute.sv.main.SVAnnotator \ -A ClusterSeparation \ -R human_g1k_v37.fasta \ -vcf input.vcf \ -auxFilePrefix rundir/prefix \ -O output.vcf \ -writeReport true \ -reportDirectory reportdir
| Name | Type | Default value | Summary |
|---|---|---|---|
| Required | |||
| --auxFilePrefix | String | NA | Path prefix to auxilliary data files generated by genotyping (typically a prefix of the output VCF) |
Path prefix to auxilliary data files generated by genotyping (typically a prefix of the output VCF).
See also Documentation index | GenomeSTRiP Site | GenomeSTRiP Support
GenomeSTRiP version 1.04-r1441 built at 2014/07/14 14:26:06.


|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Objects implementing this interface are passed to view tools
upon initialization by the
ServletToolboxManager
.
The interface provides view tools in a servlet environment access to relevant context information, like servlet request, servlet context and the velocity context.
| Field Summary | |
static java.lang.String |
APPLICATION
Key used for the servlet context object. |
static java.lang.String |
REQUEST
Key used for the HTTP request object. |
static java.lang.String |
RESPONSE
Key used for the HTTP response object. |
static java.lang.String |
SESSION
Key used for the HTTP session object. |
static java.lang.String |
XHTML
Key used for XHTML setting (tells tools and macros to output XHTML). |
| Method Summary | |
java.lang.Object |
getAttribute(java.lang.String key)
Searches for the named attribute in request, session (if valid), and application scope(s) in order and returns the value associated or null. |
javax.servlet.http.HttpServletRequest |
getRequest()
Returns the instance of HttpServletRequest for this request. |
javax.servlet.http.HttpServletResponse |
getResponse()
Returns the instance of HttpServletResponse for this request. |
javax.servlet.ServletContext |
getServletContext()
Returns the instance of ServletContext for this request. |
org.apache.velocity.context.Context |
getVelocityContext()
Returns a reference to the current Velocity context. |
org.apache.velocity.app.VelocityEngine |
getVelocityEngine()
Returns the current VelocityEngine instance. |
| Field Detail |
public static final java.lang.String REQUEST
public static final java.lang.String RESPONSE
public static final java.lang.String SESSION
public static final java.lang.String APPLICATION
public static final java.lang.String XHTML
| Method Detail |
public javax.servlet.http.HttpServletRequest getRequest()
Returns the instance of HttpServletRequest
for this request.
public javax.servlet.http.HttpServletResponse getResponse()
Returns the instance of HttpServletResponse
for this request.
public javax.servlet.ServletContext getServletContext()
Returns the instance of ServletContext
for this request.
public java.lang.Object getAttribute(java.lang.String key)
Searches for the named attribute in request, session (if valid), and application scope(s) in order and returns the value associated or null.
public org.apache.velocity.context.Context getVelocityContext()
Returns a reference to the current Velocity context.
public org.apache.velocity.app.VelocityEngine getVelocityEngine()
Returns the current VelocityEngine instance.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |