s6-networking
Software
skarnet.org
What has changed in s6-networking
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- execline
optional dependency bumped to <IP_ADDRESS>
- s6
dependency bumped to <IP_ADDRESS>
- OpenSSL
optional dependency bumped to 1.1.1u
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- execline
optional dependency bumped to <IP_ADDRESS>
- s6
dependency bumped to <IP_ADDRESS>
- OpenSSL
optional dependency bumped to 1.1.1t
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- execline
optional dependency bumped to <IP_ADDRESS>
- s6
dependency bumped to <IP_ADDRESS>
- s6-dns
dependency bumped to <IP_ADDRESS>
- LibreSSL
optional dependency bumped to 3.5.3
- LibreTLS
optional dependency bumped to 3.5.2
- OpenSSL
optional dependency bumped to 1.1.1q
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- s6-dns
dependency bumped to <IP_ADDRESS>
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- execline
optional dependency bumped to <IP_ADDRESS>
- s6
dependency bumped to <IP_ADDRESS>
- s6-dns
dependency bumped to <IP_ADDRESS>
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- execline
optional dependency bumped to <IP_ADDRESS>
- s6
dependency bumped to <IP_ADDRESS>
- s6-dns
dependency bumped to <IP_ADDRESS>
- The obsolete minidentd program has been removed.
- LibreSSL
optional dependency bumped to 3.3.4
- LibreTLS
optional dependency bumped to 3.3.4
in <IP_ADDRESS>
- Client certificates are now properly supported in
s6-tlsd-io.
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- execline
dependency bumped to <IP_ADDRESS>
- s6
dependency bumped to <IP_ADDRESS>
- s6-dns
dependency bumped to <IP_ADDRESS>
- LibreSSL
optional dependency bumped to 3.2.5
- OpenSSL
optional dependency bumped to 1.1.1k
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>
- execline
dependency bumped to <IP_ADDRESS>
- s6
dependency bumped to <IP_ADDRESS>
- s6-dns
dependency bumped to <IP_ADDRESS>.
- LibreSSL
optional dependency bumped to 3.2.4.
- Handshake timeout is now functional with the libtls
backend (previously it only was with the bearssl backend).
- s6-tlsc-io and
s6-tlsd-io now send the SNI server name,
if any, in their notification message (when the -d option is
active), in the SSL_TLS_SNI_SERVERNAME variable.
in <IP_ADDRESS>
in <IP_ADDRESS>
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>.
- execline
dependency bumped to <IP_ADDRESS>.
- s6
dependency bumped to <IP_ADDRESS>.
- s6-dns
dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- skalibs
dependency bumped to <IP_ADDRESS>.
- execline
dependency bumped to <IP_ADDRESS>.
- s6
dependency bumped to <IP_ADDRESS>.
- s6-dns
dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- LibreSSL dependency bumped to 2.9.2.
- skalibs
dependency bumped to <IP_ADDRESS>.
- execline
dependency bumped to <IP_ADDRESS>.
- s6
dependency bumped to <IP_ADDRESS>.
- s6-dns
dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- BearSSL dependency bumped to 0.6.
- skalibs
dependency bumped to <IP_ADDRESS>.
- execline
dependency bumped to <IP_ADDRESS>.
- s6
dependency bumped to <IP_ADDRESS>.
- s6-dns
dependency bumped to <IP_ADDRESS>.
- Everything now builds as PIC by default no matter
the toolchain's settings. Use the --disable-all-pic configure
option to build executables and static libraries as non-PIC.
in <IP_ADDRESS>
- Optional nsss support added.
- LibreSSL dependency bumped to 2.7.4.
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>.
- s6-dns dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- BearSSL dependency bumped to 0.5.
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>.
- s6-dns dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- BearSSL dependency bumped to 0.4.
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- LibreSSL dependency bumped to 2.4.5.
- BearSSL dependency bumped to 0.3.
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>.
- s6-dns dependency bumped to <IP_ADDRESS>.
- The meaning of the -Y option in s6-tlsd
has changed. Now it means "ask for an optional client certificate".
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
- SSL/TLS support added:
in <IP_ADDRESS>
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>.
- s6-dns dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- GNU make dependency pushed back to 3.81.
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>.
- s6-dns dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>
- s6-dns dependency bumped to <IP_ADDRESS>
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>
- s6-dns dependency bumped to <IP_ADDRESS>
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>
- s6-dns dependency bumped to <IP_ADDRESS>
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency bumped to <IP_ADDRESS>
- The access control functions and Unix domain programs have moved over to s6.
The access control function names have changed.
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6 dependency introduced (<IP_ADDRESS>)
- s6-dns dependency bumped to <IP_ADDRESS>.
- Separation of superservers into socketbinders and d's.
in <IP_ADDRESS>
- skalibs dependency bumped to <IP_ADDRESS>.
in <IP_ADDRESS>
- The build system has completely changed. It is now a standard
./configure && make && sudo make install
build system. See the enclosed INSTALL file for details.
- slashpackage is not activated by default.
- shared libraries are not used by default.
- skalibs dependency bumped to <IP_ADDRESS>.
- execline dependency bumped to <IP_ADDRESS>.
- s6-dns dependency bumped to <IP_ADDRESS>.


This style guide was built with Foundation for Sites. For more information on how to use this responsive front-end framework, check out the documentation, get help from the Foundation community, or request immediate technical support.
Visit the Docs Foundation Forum Technical Support


--- layout: post author: "Jonah Duckles" title: "Recent Statistics" date: 2015-10-25 time: "03:00:00" category: ["Community"] ---
At some point in the last few weeks, we ran our 500th workshop for our 16,000th learner:
Workshops
Learners


MAD CITY A film review by Steve Rhodes Copyright 1997 Steve Rhodes
RATING (0 TO ****): ***
There is a moment -- actually two -- when local television reporter Max Brackett could have put an end to the hostage crisis that ends up gripping the nation. Sam Baily, the none too bright, disgruntled employee has laid down his sawed-off shotgun. As Sam turns his back, Max has a brief opportunity to grab the weapon. As anxiety flashes across forehead, Max's eyes draw a bead on the shotgun, but his body stays frozen. His inaction guarantees the continuation of the story of his career.
Famous director Costa-Gavras has to date created a body of work with an underlying theme of tension and terror. From his Academy Award nominated direction of Z to his more recent efforts including MISSING and MUSIC BOX, his films have a hard-edge that leaves moviegoers squirming uneasily in their seats.
His most recent film, MAD CITY, represents a change of pace. Although the hostage situation might sound like his previous films, it isn't. The script by Tom Matthews, based on a story by Eric Williams and Matthews, stays firmly in the comedic range. Partly a commentary on media excesses and partly a black comedy, the script skirts a fine line between the two, which could be considered its major weakness. Had one or the other of them been more fully developed, it would have been a better movie. And in the latter case it would have been even more like BROADCAST NEWS, the show it most closely resembles. (Robert Prosky plays roughly the same part as a newsroom executive in both pictures.)
John Travolta, an actor with an increasingly wide acting range, plays Sam Baily.  After being laid off from his eight-dollar-an-hour job as a museum guard, he comes back to discuss it with the museum's director, played as prim and proper by a nattily dressed Blythe Danner.
Blue-collar worker Sam, lacking confidence, makes a big mistake by bringing along something to ensure that his ex-boss will pay him proper attention.  His gun goes off wounding his friend, the only other guard, and soon things go from bad to worse -- but not for everyone.
Max Brackett, played to a tee by a pensive Dustin Hoffman, has lost his position at the networks and has been relegated to the television minor leagues. Sent by his boss, Lou Potts (Prosky), to do a feel-good piece at the local museum, Max ends up being in the rest room inside the museum when Sam finds himself with a wounded guard and a dozen school children as accidental hostages. The situation soon escalates as Max manipulates the scene into a live story with himself at the center of the storm. Sounding like Rod Serling introducing a "Twilight Zone" episode, Max intones his explanation of the crisis to the rest of America.
"A man has been shot; a line has been crossed," proclaims Max. The movie comes back again and again to the issue of crossed lines with the implication that the warring reporters cross it repeatedly in an attempt to improve their poll numbers. We flip back frequently to the men behind the scenes at the network who check poll numbers on everything from the newscasters' market share to Sam's popularity.
Old timer Lou thinks the story has gotten out of hand.  Like a man in a futile attempt to battle a hurricane, Lou relinquishes control and lets the media feeding frenzy begin.
Chief Lemke's (Ted Levine) first question to Sam stumps him. The chief wants to know Sam's demands. Max, in total control of the situation, becomes Max's instant mentor. Max advises against asking for the only thing Sam wants, his old job back. "You've got to ask for a fast car, a Learjet or a Greyhound bus," Max tells him, otherwise they will not take you seriously.
When the story gets big, the network anchor, Kevin Hollander, shows up to try to muscle in on Max's story. "I'm who Americans trust for their news," brags Kevin. "You really shouldn't let a marketing slogan go your head," retorts Max. Alan Alda, who can do supercilious with the best of them, plays Kevin. To further complicate matters, Kevin was the source of Max's downfall from the networks after Max embarrassed him in a live feed at a previous crisis. With Sam's poll numbers headed for the moon, Kevin smells gold on earth, arguing that "this guy's a poster child for the disenfranchised."
The supporting cast is strong with the best being Max's young assistant Lori, played by a perky Mia Kirshner. When Kevin smiles at her and she realizes this hostage crisis could launch her career, off go her nerdy clothes and her hesitant manner. She starts dressing like an anchor and gets ready to walk over her dead mother's grave if need be to get the story.
Meanwhile, back at scene of the crime, Sam wiles away his time playing Pied Piper with the kids as they raid the vending machines. And when night falls, he tells them stories of the local Indian tribe.
The defining moment in the show comes in a request from the big boys at the network. Could Max be so kind as to arrange for Sam to surrender in prime time? Oh, and could it be Thursday night since that is when their ratings need the most help?
MAD CITY runs 1:50. It is rated PG-13 for a few violent scenes, a couple of profanities and mature themes. The show would be fine for kids 10 and up although they probably need to be teenagers to be interested in the movie. I recommend the film to you and give it ***.
**** = A must see film. *** = Excellent show. Look for it. ** = Average movie. Kind of enjoyable. * = Poor show. Don't waste your money. 0 = Totally and painfully unbearable picture.
REVIEW WRITTEN ON: October 14, 1997
Opinions expressed are mine and not meant to reflect my employer's.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


{% load static %}
{{ form.description|default:"This form doesn't have a description." }}
No public forms yet!


Option 1 : $0.01 USD - monthly
Option 2 : $0.02 USD - monthly
Option 3 : $0.03 USD - monthly
Name/Nr.
Street
Town
Postcode
Country
Options
50
Some Street 1
G0 0XX
United Kingdom
49
Some Street 2
G0 0XX
United Kingdom


AYN itself is actually a great name for what we seek to accomplish as the word in Arabic has several meanings, each one correlating to our aims. From the meanings is "eye" and "fountain". The eye is known as the window to the soul and this is part of what we aim to help people do - look within and do real soul searching in order to come to know themselves. We also hope to be a fountain from which beneficial and life enriching services spring forth and flow. From the meanings of this word in Arabic are also the connotations of creating, assisting, supplying and helping to rescue. Knowing this, it wasn't hard for us to choose this name for our academy.
Although, without a doubt we are people of faith, the very purpose of this academy is to be able to serve a greater audience of humanity by separating (as much as possible) our wellness modalities from any forms of proselytizing- while still always speaking from our hearts.
Our aim truly is to help others to heal, become whole and reach their potential.


2018
Afro Fashion Show 2018
2019
Afro Fashion Show 2019
A joyful celebration believing in the value of culture and tradition, creating a positive change with different cultures from over 80 African countries. Happening in Kampala, Uganda, the Pearl of Africa.
Please contact us @ National Museum of Uganda, Art Center Kintale for more information
<EMAIL_ADDRESS>ipsum dolor, sit amet consectetur adipisicing elit. Corporis, tempore labore beatae vero odit debitis ex ab praesentium error atque. Expedita natus blanditiis earum aspernatur explicabo ipsa laboriosam eos eaque.
Take a look at the former Afro Fashion shows that happened in Kampala, Uganda
2018
Afro Fashion Show 2018
2019
Afro Fashion Show 2019


urlshorteneR
wraps 2 URL services Bit.ly
and its 2 friends is.gd
as well as v.gd
. For
Bit.ly, in order to shorten URLs and downloading useful statistics about
them, you have to authenticate using OAuth2.0 protocol, for which you
need user account and API keys..
For 2 other services is.gd
& v.gd
,
there is no authentication needed. Just create desired short links, see
below.
Return some basic information about my user on Bit.ly. Additionally, is my account a “premium” one?
library("knitr")
library(urlshorteneR)
## In order to use bitly functions, you first need to authenticate.
## For that execute 'bitly_auth()' in R console.
if(interactive()) {
# You must register a new pair of keys yourself
# bitly_token <- bitly_auth(key = "xxx", secret = "xxx")
# bitly_token <- bitly_auth()
<- bitly_user_info(showRequestURL = TRUE)
ui is_bitly_user_premium_holder()
}
We can also decide to update my username with a different one.
if (interactive()) {
bitly_update_user(name = "John Malc", showRequestURL = TRUE)
}
And what about the metadata about our OAUTH application?
if (interactive()) {
bitly_app_details()
}
This retrieves information about a single group that user belongs to and and then about all groups that user are associated with.
if (interactive()) {
bitly_retrieve_group(ui$default_group_guid)
bitly_retrieve_groups()
}
Official API documentation https://dev.bitly.com/api-reference.
The first method returns an information about myself.
if (interactive()) {
bitly_user_info()
}
if (interactive()) {
<- data.frame(pubDate = rep("2016-02-10", 4),
df link = c("https://www.google.com",
"https://www.apple.com"),
stringsAsFactors = FALSE)
df
= NULL
fin for (p in 1:length(df$link)) {
<- bitly_create_bitlink(long_url = df$link[p])
fin[[p]]
} }
BEWARE: This will proceed only with the two real links, not with the NA, NULL or an empty strings. These, however, will stop the flow of the code (i.e. are errors).
isgd_LinksShorten(longUrl = "https://us.cnn.com", showRequestURL = TRUE)
## The requested URL has been this: https://is.gd/create.php?format=json&url=https%3A%2F%2Fus.cnn.com&logstats=0
## [1] "https://is.gd/w56Qbw"
vgd_LinksShorten(longUrl = "https://www.cbs.com", showRequestURL = TRUE)
## The requested URL has been this: https://v.gd/create.php?format=json&url=https%3A%2F%2Fwww.cbs.com&logstats=0
## [1] "https://v.gd/K6VQiT"


This story includes minor spoilers for Star Wars Jedi: Fallen Order.
Just from knowing where Star Wars Jedi: Fallen Order takes place in the timeline, you can probably guess that Order 66 would be referenced in a few different ways.
This is indeed the case for Fallen Order, but developer Respawn decided to throw in one extra mention in the most ridiculous way possible. Too out-there, in fact, I don’t even know how anyone could find this Easter egg on their own.
Towards the beginning of Fallen Order’s story on Bracca, as you’re taking the train ride, Cal gets a vision and is compelled to follow his friend Prauf through the train. At one point, the door quickly shuts behind him.
There, most people would turn to find themselves in the ship that is later revealed to be where Cal had been training before that business went down. However, if you don’t turn around and instead keep pressing the switch, you’ll get to hear Darth Sidious (Palpatine) say the magic words.
You’ll need to do this 66 times, though, as YouTuber Garbett did. It’s pretty inconsequential, and very dumb, but you have to applaud the effort.
Games featured in this article


CONTENTS INCLUDE: Basics: What is a Viewport Mobile URLs High Resolutions Support Mobile Icons Touch Events Offline Support... and more!
The HTML5 umbrella covers a vast range of specifications, APIs, techniques, and design approaches to web development. Several of these technologies are intended to help developers build web applications optimized for mobile devices. Not all platforms support the same features in the same way, however. Moreover, specific hardware differences often require special treatment beyond the W3C spec, no matter how the platform implements the spec.
This Refcard is intended to bring you up to speed, and help you jump head-first into mobile HTML5 development. The card first covers the most important HTML5 mobile technologies, including key variations by platform and device, then offers a cream-of-the-crop selection from the vast ecosystem of tools, frameworks, and communities that have sprung up to support mobile HTML5 development. The card assumes basic knowledge of core web development technologies (JavaScript, HTML, CSS).
A viewport allows us to normalize different devices to get the best sizes for a mobile website or webapp and to avoid initial zooming.
All platforms support viewport definitions through <meta> tags:
<meta name="viewport" content="{comma-separated options}">
The most useful version is:
<meta name="viewport" content="width=device-width">
Viewport options
| Option | Values |
|---|---|
| width | Width of the virtual viewport that the browser will expose to our website in CSS pixels or the constant device-width |
| height | Height of the virtual viewport that the browser will expose to our website in CSS pixels or the constant device-width |
| user-scalable | no/yes |
| initial-scale | Float value (1=no zoom) |
| minimum-scale | Float value |
| maximum-scale | Float value |
| target-densitydpi | Integer value (70 to 400) in DPI or one of the following constants: device-dpi, high-dpi, medium-dpi, low-dpi. Not available on Safari for iOS |
Viewport Through CSS
Internet Explorer since v10 also supports @viewport on CSS:
On Windows 8, including tablets, IE can work in snap state. We can define the viewport only when in this mode:
Device-Width Values
When using width=device-width as the viewport's width, the final width that we'll have available may be (measured in CSS pixels):
| Option | Values |
|---|---|
| 320 | The most common value on smartphones including iPhone, Windows Phone, Android (medium screen sizes < 4") |
| 360 | Large screen Android smartphones (< 5"), such as Galaxy SIII & SIV |
| 400 | Phablets (>5"), such as Galaxy Note |
| 600 | Small tablets |
| 768 | Large tablets |
Even on high-resolution screens, such as Retina displays, you will always get a width in CSS pixels with a value of 320. Therefore, the available width for the canvas is the same for all devices.
Landscape viewport
Safari for iPhone will not use the available space on the viewport on landscape and it will zoom in the content. To avoid this behavior we can use the code on https://gist.github.com/901295
Using standard hyperlinks we can communicate with the operating system. Remember to encode in URL format any parameter that you might pass through.
To initiate a call, tel:{phone-number}
To initiate an SMS, sms:{destination}?body={message}. The body might be ignored by some platforms.
To initiate a mail compose, mailto:{to}?subject={subject}&body={message} iOS supports HTML on the body
To initiate a Facetime call on iOS, facetime:{number/user}
To initiate a Skype call, skype:{user}?call
To tweet through the native Twitter app, twitter://post?message={message}
To open the Maps app on Android and iOS < 6, http://maps.google. com?q={query}
To initiate a navigation on Android and iOS < 6, http://maps.google.com?sa ddr={point1}&daddr={point2}
To open the Maps app on iOS >=6, http://maps.apple.com?q={query}
To initiate a navigation on iOS >= 6, http://maps.apple.com?saddr={point1} &daddr={point2}
To open iTunes, AppStore or iBookStore on iOS, generate the link from https://itunes.apple.com/linkmaker
Devices with a high-resolution display (as in Retina iOS devices) will use a multiplier for all your dimensions, known as the device pixel ratio. Therefore, if you draw a 100 pixels element it will measure 100 device pixels on a device with an average screen density, it will be rendered as 200 device pixels on a high resolution device such as iPhone 5, and a 300 device pixels on a ultra high resolution device, such as Samsung Galaxy SIV.
Thanks to the device pixel ratio, our design will look the same in inches on every device, regardless of the screen density.
Using these techniques, our content will render properly on all kinds of screen densities without image quality loss:
SVG: Scalable Vector Graphics
We can use SVG as an external document or as inline using the new <svg> element
Font face
We can use font files for iconography in conjunction with CSS3 Font face. Look at fontello.com and icomoon.io
CSS3
Use CSS3 for effects, gradients, rounded corners and backgrounds
When working with bitmap files (JPEG, GIF, PNG), we can provide different versions of the same file for different resolution. Be careful about the final size for high-resolution devices
Using background images and media queries
If bitmap images are defined using background images on CSS, we can provide alternate versions using the extension (prefixed) device-pixel-ratio. For devices with a pixel ratio of 2 or more:
/* Low resolution version */ #picture { background-image: url(picture_low.png); } /* High resolution version with different prefixes */ @media screen and (min--moz-device-pixel-ratio: 2), only screen and (-webkit-min-device-pixel-ratio: 2) { #picture { background-image: url(picture_hi.png); background-size: 100%; } }
Using image-set
On Safari for iOS from version 6 we can use the -webkit-image-set function to provide different images from CSS:
We need to provide different icons for the tab or title area and for the home screen when the user adds an icon to it. Different platforms and devices support different icon sizes.
<link rel="icon" href="icon_32.png"> <!-- For IE, we need an icon in ICO format --> <link rel="shortcut icon" href="icon.ico"> <-- iPad icons --> <link rel="apple-touch-icon" href="icons/72.png" sizes="72x72"> <link rel="apple-touch-icon" href="icons/144.png" sizes="144x144"> <!-- iPhone and iPod touch icons --> <link rel="apple-touch-icon" href="icons/57.png" sizes="57x57"> <link rel="apple-touch-icon" href="icons/114.png" sizes="114x114">
Other platforms-such as Android, BlackBerry and Symbian-support the apple-touch-icon link with non-standard sizes.
Nokia Symbian also supports:
Precomposed icons
By default, Apple will add shadow, rounded corners and 3D shine effects to the icons, as in the following image:
To avoid some of these effects we can use the alternate version
Internet Explorer 10 on Windows 8 supports a "Pin to the Start Screen" feature. We can define the background color and the icon to be used in the Start Screen using:
Updating a badge notification
The Start Screen Tile may be updated frequently defining an XML URL through:
The XML will look like:
A webapp is a hosted website that can be installed with a home screen icon and once installed it works full-screen outside of the browser and it might have some kind of super powers in terms of permissions and support.
On iPhone and iPad we can create webapps using a meta tag and usually adding the apple-touch-icon link:
Once added to the Home Screen, a page with the meta tag will open in full screen mode.
We can customize the status bar appearance through one of the possible options on this meta tag:
Startup images
When the webapp is opened from the Home Screen, we can define a startup image that acts as the image while the webapp is being loaded:
The image has to be full screen size and because there are several resolutions (iPhone 3GS, iPhone 4S, iPhone 5, iPad Mini, iPad 2) we can use media queries to provide different versions.
For iPhone 5 and latest iPods touch we can use:
We can also provide portrait and landscape versions for iPads using orientation: landscape and orientation: portrait in the media attribute.
While in a webapp, all the links are opened in Safari (new window). To open a link and replace the current HTML in our app context, we can use JavaScript as in:
On Firefox for desktop and mobile, including Firefox OS, we can install a webapp using a manifest JSON file and a JavaScript API.
The manifest file looks like:
{ "name": "My HTML5 App", "description": "This is the description of the app", "launch_path": "/index.html", "icons": { "128": "/img/icon-128.png" // >=128 is mandatory }, "default_locale": "en" }
To initiate the webapp installation we can use the Apps API:
var r = window.navigator.mozApps.install("/manifest.webapp"); r.onsuccess = function() { alert("App installed") } r.onerror = function() { alert("App installed") }
Mouse events (such as click) are not always suitable for mobile devices for different reasons, including:
a) A delay of 300ms before firing the event handler.
b) They don't support multitouch.
c) The clickable area using a finger is not always just one pixel.
Safari on iOS created the touch events, a series of 4 events that we can detect on any DOM element. Most of the other mobile browsers (excluding IE) support this specification
The events available are:
. touchstart
. touchend
. touchmove
. touchcancel
All the events can be attached using addEventListener or through HTML DOM properties, such as ontouchstart. Every event receives through the first argument a touches collection. This collection includes each of the current available touches as a Touch object where we can get coordinates (such as pageX):
document.addEventListener("touchstart", function(event) { var touches = event.touches; var quantity = touches.length; var firstTouch = touches[0]; var coordinates = { x: firstTouch.pageX, y: firstTouch.pageY } }, false);
Compatible only with Safari on iOS, we can use gesture events to detect two-fingers rotate and pinch gestures:
document.addEventListener("gesturechange", function(event) { var currentRotation = event.rotation; var currentScale = event.scale; }, false);
W3C has standardized Apple Touch Events with the additions of touchenter and touchleave for dragging purposes. Firefox and BlackBerry smartphones and tablets are using this spec.
The Gesture API is not included.
Microsoft is using another approach through Pointer events (also to be standardized in the W3C). Pointer events inherit from mouse events; therefore instead of receiving a collection of touches we receive one call per touch only with the information of the current point.
Pointer events include support for touch, mouse, and styles; the most useful available events are pointerdown, pointerup, pointercancel, pointermove, pointerover, pointerout. In IE10, these events are prefixed with MS; for example: mspointerup.
document.addEventListener("mspointerdown", function(event) { var coordinates = { x: event.clientX, y: event.clientY } }, false);
Microsoft also supports a Gesture API for more complex touch interaction detection, including:
. msgesturehold
. msgesturetap
. msgesturestart
. msgestureend
. msgesturechange
. msinertiastart
Most mobile browsers support offline access through the Application Cache API. This API allows us to define a package that the browser will install for future access.
CACHE MANIFEST # This is a comment line # We define first the files that need to be downloaded # The HTML file is always included in the package CACHE: styles/mystyles.css scripts/mycode.js images/myimages.png # If we want the app to access some resources on the web # We can define specific URLs or a pattern, such as * NETWORK *
Through the object window.applicationCache we can detect several events over the process, such as downloading, cached, noupdate, and updateready.
window.applicationCache.addEventListener("cached" , function() { alert(" package was installed"); } , false);
If the webapp was installed (cached event) then the next time the user accesses it, it will always be loaded from the cached version, even if the user has a connection.
If there is a connection available, the browser will download the manifest file and it will compare byte-by-byte with the stored version. If it is the same, the noupdate event will be fired; if the manifest has changed, then the whole package will be discarded from the cache and downloaded again from the server firing the updateready event.
It's important to understand that when an update is available, the user is still seeing the old version as it was loaded from the cache, so the next reload or access will use the updated resources.
Whether we are online or offline we can store information on the user's device using some of the client-side storage APIs, including localStorage, Web SQL Storage, IndexedDB and FileSystem API.
Limits vary per platform, but usually localStorage gives us safely at least 5Mb per origin (protocol+domain+port combination). On some platforms such as iOS, we can overpass the 5Mb limit with the user's permission usually up to 50Mb.
With HTML5 we can create native webapps, also known as hybrid apps, and distribute them through Application Stores.
These platforms require packaging all the resources, and sometimes compiling and signing processes.
The most important platforms to create native webapps are:
| Name | Platforms | Compatible Stores |
| WebWorks | BlackBerry 5.x-7.x,BlackBerry PlayBook,BlackBerry 10 | BlackBerry AppWorld |
| Windows 8 Store HTML5 apps | Windows 8 | Microsoft Windows Store |
| Nokia S40 webapps | Nokia Series 40 | Nokia Store |
| Symbian webapps | Symbian | Nokia Store |
| Mozilla Open Web Apps | Firefox OS, Android Desktop | Mozilla Marketplace |
| Chrome Packaged Apps | Desktop Chrome OS Android (future) | Chrome Store |
| Apache Cordova / Adobe PhoneGap | iOS, Android, BlackBerry, Windows Phone, Bada / Tizen, Symbian | Apple AppStore, Google Play Store, BlackBerry AppWorld, Microsoft Windows, Phone Store, Nokia Store |
The native HTML5 webapp should be distributed through an application store for free or for a fee. To do that, we need to register as publishers in the stores and pay the publisher fee as defined in the next table:
| store | publisher fee | url |
| Apple AppStore | USD 99 per year | developer.apple.com/ios/program |
| Google Play Store | USD 25 | play.google.com/apps/publish |
| Amazon AppStore for Android | Free | developer.amazon.com/apps/apps |
| BlackBerry AppWorld | Free | appworld.blackberry.com/isvportal |
| Windows 8 Store | Varies | appdev.microsoft.com/StorePortals |
| Windows Phone Store | USD 99 per year | dev.windowsphone.com |
| Nokia Store | EUR 1 | publish.nokia.com |
| Platform | Default Browser | Other Browsers |
| iOS | Safari (WebKit) | Opera Mini, Google Chrome (Web View) |
| Android | Android Browser(WebKit) | Google Chrome (4.0+), Firefox, Opera Mini, Opera Mobile, Opera(WebKit), UC Browser,Dolphin |
| BlackBerry | BlackBerry Browser(WebKit) | Opera Mini (for old smartphones) |
| Windows Phone | Internet Explorer | Nokia Xpress(experimental) |
| Symbian | Nokia Browser(WebKit) | Opera Mobile, Opera Mini |
| Firefox OS | Firefox | |
| Kindle Fire (Android) | Amazon Silk | |
| Nokia S40 | Nokia Xpress Browser | Opera Mini |
| Other | Jasmine, Dolfin,NetFront, UC Web, webOS Browser (now Iris) |
These are the available emulators and simulators per platforms (source:http://emulato.rs):
| Platform | Host Platforms | Where to get it for free |
| iOS | Mac | Search for Xcode on MacApp Store |
| Android | Windows, Linux, Mac | http://developer.android.com/sdk |
| Windows Phone | Windows 8 Pro | Visual Studio 2012 Express for Windows Phone |
| Windows 8 Tablet | Windows 8 Pro | Visual Studio 2012 Express for Windows 8 |
| BlackBerry 10 | Windows, Linux, Mac | http://developer.blackberry.com/devzone/ develop/simulator/ |
| BlackBerry 6/7 | Windows | http://us.blackberry.com/sites/developers/ resources/simulators.html |
| Firefox OS | Windows, Linux, Mac | https://addons.mozilla.org/en-US/firefox/addon/firefoxos-simulator/ |
| Nokia S40 | Windows | https://www.developer.nokia.com/Develop/Series_40/ |
Support for remote debugging for HTML, CSS and JavaScript:
| Browser | Host Browser | Connection Method |
| Safari for iOS | Safari for Mac | USB cable with the device |
| Google Chrome on Android | Google Chrome Windows, Mac or Linux | USB cable with the device and ADB tools (Android Debug Bridge) |
| Firefox on Android and Firefox OS | Firefox Windows, Mac or Linux | TCP via IP Address (same Wi-Fi network) |
| BlackBerry 7 and 10 Browser | Any Webkit-based desktop browser | TCP via IP Address (same Wi-Fi network) |
| Opera Mobile for Android or Symbian | Opera for Windows,Mac or Linux | TCP via IP Address (same Wi-Fi network) |
These APIs might not be available on all the browsers and platforms. Check http://caniuse.com or http://mobilehtml5.org for compatibility tables.
navigator.geolocation.getCurrentPosition( function(position) { var lat = position.coords.latitude; var lon = position.coords.longitude; }, function () { alert('Error locating your device'); } );
We can read current acceleration in 3 axes measured in m/s2 including gravity or excluding it on some devices only:
window.addEventListener("devicemotion", function(event) { var acceleration = event.accelerationIncludingGravity; // acceleration.x, acceleration.y, acceleration.z }, false);
We can also read current device orientation as alpha (direction according to the compass), beta (angle of the tilt front-to-back) and gamma (angle of the tilt left-to-right). All angles are measured in degrees.
window.addEventListener("devicemotion", function(event) { var acceleration = event.accelerationIncludingGravity; // acceleration.x, acceleration.y, acceleration.z }, false);
var battery = navigator.mozBattery || navigator.webkitBattery; var level = battery.level * 100; var charging = battery.charging; var chargingTimeFully = battery.chargingTime; var dischargingTimeEmpty = battery.dischargingTime; // Events available battery.addEventListener("levelchange", handler, false); battery.addEventListener("chargingchange", handler, false); battery.addEventListener("chargingtimechange", handler, false); battery.addEventListener("dischargingtimechange", handler, false);
// One time vibration for 0.5 seconds navigator.vibrate(500); // Vibration pattern (vibration/pause) navigator.vibrate([500, 500, 1000, 600,100]);
Using HTML forms to capture media:
< input type= "file" accept="image/*" capture="camera"> <input type="file" accept="audio/*" capture="microphone"> <input type="file" accept="video/*" capture="camcorder">
Reading the camera as <video> input:
var video = document.querySelector("video"); var URL = window.URL || window.webkitURL; var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia; var video = document.getElementById("player"); if (getUserMedia) { getUserMedia({audio:true, video:true}, function(stream){ video.src=URL.createObjectURL(stream); video.play(); }); }
HTML5 documentation:www.webplatform.org
Can I Use Compatibility Tables:www.caniuse.com
HTML5 Compatibility Tables:www.mobilehtml5.org
HTML5 Rocks for Mobile:www.html5rocks.com/mobile
HTML5 demos:www.html5demos.com
Emulators and Simulators:www.emulato.rs
HTML5 Test:www.html5test.com
HTML5 Developer Scorecard:http://www.sencha.com/blog/category/


Author:
» Lester 'GaMerZ' Chan
Website:
» http://lesterchan.net/
Features:
» Adds a more advanced paging navigation your WordPress blog.
» Example: Pages (17): [1] 2 3 4 » ... Last »
Download:
» WP-PageNavi 2.40 For WordPress 2.7.x
» WP-PageNavi 2.31 For WordPress 2.1.x To WordPress 2.6.x
» WP-PageNavi 2.03 For WordPress 2.0.x
» WP-PageNavi 1.00 For WordPress 1.5.2
Screenshots:
» http://lesterchan.net/wordpress/screenshots/browse/wp-pagenavi/
Demo:
» http://lesterchan.net/wordpress/
Development:
» http://dev.wp-plugins.org/browser/wp-pagenavi/
Translations:
» http://dev.wp-plugins.org/browser/wp-pagenavi/i18n/
Support Forums:
» http://forums.lesterchan.net/index.php?board=14.0
Credits:
» Right To Left Language Support by Kambiz R. Khojasteh.
Note:
» The Changelog, Installation, Upgrade, Usage Tab at the top of the page.
Donations:
» I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks as my school allowance, I will really appericiate it. If not feel free to use it without any obligations. Thank You. My Paypal account is
WP-PageNavi 2.40
Copyright © 2008 Lester 'GaMerZ' Chan. All Rights Reserved.


| 1 |
11 |
11 |
3 |
4 |
altcover/Sample1/Program.cs |
| 1 |
12 |
12 |
23 |
24 |
altcover/Sample1/Program.cs |
| 1 |
13 |
13 |
4 |
5 |
altcover/Sample1/Program.cs |
| 1 |
13 |
13 |
12 |
13 |
altcover/Sample1/Program.cs |
|
⑂ 1 |
13 |
19 |
0 |
24 |
|
|
⑂ 0 |
13 |
19 |
1 |
57 |
|
| 1 |
14 |
14 |
4 |
5 |
altcover/Sample1/Program.cs |
| 1 |
15 |
15 |
5 |
6 |
altcover/Sample1/Program.cs |
| 1 |
15 |
15 |
60 |
61 |
altcover/Sample1/Program.cs |
| 1 |
15 |
15 |
13 |
14 |
altcover/Sample1/Program.cs |
| 1 |
16 |
16 |
4 |
5 |
altcover/Sample1/Program.cs |
| 0 |
18 |
18 |
4 |
5 |
altcover/Sample1/Program.cs |
| 0 |
19 |
19 |
5 |
6 |
altcover/Sample1/Program.cs |
| 0 |
19 |
19 |
13 |
14 |
altcover/Sample1/Program.cs |
| 0 |
20 |
20 |
4 |
5 |
altcover/Sample1/Program.cs |
| 1 |
21 |
21 |
3 |
4 |
altcover/Sample1/Program.cs |


合并众老师，拯救王炳跃——这种事情交给电脑去做就好了!
高能预警：如果你正在使用手机的话，这两个按钮会让你的手机立刻傲娇倒地不起！
This is a fork of 2048, Created by Gabriele Cirulli. Based on 1024 by Veewo Studio and conceptually similar to Threes by Asher Vollmer.
AI solver by Matt Overlan


--- layout: default title: Present Participles & Gerunds ---
Melting at a temperature 140° lower than copper, bronze is better for casting.
Bronze melts at a temperature 140° lower than copper. Bronze is better for casting.
Bronze quickly became more popular than pure copper. Bronze was the most commonly used metal for over 1,000 years.
Quickly becoming more popular than pure copper, bronze was the most commonly used metal for over 1,000 years.
Melting at 2800°, iron required much more heat than charcoal furnaces were able to produce.
Iron melts at 2800°. Iron required much more heat than charcoal furnaces were able to produce.
Ancient engineers used just the few materials we have discussed. Ancient engineers designed many wonderful and helpful inventions and structures.
Using just the few materials we have discussed, ancient engineers designed many wonderful and helpful inventions and structures.
Building in irregular patterns with large stone blocks, the Mycenaeans constructed such large buildings that later Greeks thought they had been built by giants.
The Mycenaeans built in irregular patterns with large stone blocks. The Mycenaeans constructed such large buildings that later Greeks thought they had been built by giants.
The Greeks invented nothing themselves. The Greeks improved on the ideas of the people around them.
Inventing nothing themselves, the Greeks improved on the ideas of the people around them.
Probably learning their techniques from the Egyptians, Greek masons cut rectangular stone blocks and laid them in horizontal layers.
Greek masons probably learned their techniques from the Egyptians. Greek masons cut rectangular stone blocks and laid them in horizontal layers.
The Greeks located their quarries on hillsides. The Greeks were able to move the heavy limestone and marble blocks mostly downhill from the quarries to the building sites.
Locating their quarries on hillsides, the Greeks were able to move the heavy limestone and marble blocks mostly downhill from the quarries to the building sites.
Requiring huge wagons for overland transport, the largest stone blocks were pulled by over thirty teams of oxen.
The largest stone blocks required huge wagons for overland transport. The largest stone blocks were pulled by over thirty teams of oxen.
The beams over the tops of the columns were over 25 feet long. The beams over the tops of the columns posed an even greater transportation problem than the column drums.
Being over 25 feet long, the beams over the tops of the columns posed an even greater transportation problem than the column drums.
Building a temporary dirt ramp, construction workers dragged the heavy stone blocks up and into place.
Construction workers built a temporary dirt ramp. Construction workers dragged the heavy stone blocks up and into place.
The Greek builders had to solve the problem of lifting stones a different way than the Egyptians did. The Greek builders had a smaller workforce than the Egyptians had.
The Greek builders had to solve the problem of lifting stones a different way than the Egyptians did, having a smaller workforce than the Egyptians had.
They lifted heavy blocks without using large groups of workers.
They lifted heavy blocks. They did not use large groups of workers.
They did not use large groups of workers. They lifted heavy blocks.
Without using large groups of workers, they lifted heavy blocks.
Leaving stone lugs on the sides of the blocks at the quarry allowed the blocks to be lifted without passing a rope underneath.
They left stone lugs on the sides of the blocks at the quarry. This allowed the blocks to be lifted without passing a rope underneath.
They lifted blocks with a Lewis bolt. This allowed the blocks to be put into place without passing a rope underneath.

Hollowing the top and bottom of a column drum is called anathyrosis.
They hollowed the top and bottom of a column drum. This is called anathyrosis.


I have been trying to use my emonTx V3 to trigger an SSR. The 3.3v output is not enough, so I thought I'd just use the 5v output. However, when I take a reading this actually gives about 3v.
The emonTx V3 is powered by the standard 9v AC adaptor from the online shop (jumper JP2 closed). I unplugged all CTs and temperature probes and still I onll get 3v from the 5v terminal.
Is there a problem with my emonTx V3, or is this something that is know to be a problem?
As a test I plugged in a 5v USB input in addition to the AC adaptor. If I do this the 5v terminal block now actually reads 5v. However, it would be nice to be getting the correct voltage without needing an additional power source (as this is one new feature of the V3)
Re: EmonTv V3 voltage output
As I more-or-less inferred in my PM to you, 3.3 V is the correct voltage for the supply to the processor. I've recently added a paragraph to the Building Blocks page "Sources of error..." where I calculate that the 3.3 V rail should be within approx. 1% of that nominal value. As far as I'm aware, 5 V has never been the normal operating voltage for any of the emonTx range, because that exceeds the voltage rating of the RFM12B radio module.
Re: EmonTv V3 voltage output
But in the diagram for the emonTx V3 here http://wiki.openenergymonitor.org/index.php?title=File:EmonTx_V3.2_Labelled_Ports.jpg it shows pin 1 on the break-out terminals as having 5v.
I'm guessing my answer is here http://wiki.openenergymonitor.org/index.php?title=EmonTx_V3#Optical_Pulse_Counting, where is states that pin 1 is 5v if connected to a USB power supply?
Re: EmonTv V3 voltage output
In the V2, the dc input is regulated down to 3.3 V for the processor and RFM12B. If you use the USB input, the 5 V rail is available on-board but you can't use it directly in conjunction with an output pin of the processor (see Fig. 13.1 of the Atmel data sheet for why, the input protection diodes get in the way) - you need to interpose a transistor driver or similar. The processor has always worked at 3.3 V.
The V3 is pretty much the same, except that two regulators are used to obtain the 3.3 V rail. One is used if the 5 V USB or batteries are the power source, the other if the ac adapter is the power source. There isn't a 5 V rail available if the ac adapter is the power source in use, and I think I'm right in saying there was never any intention to make one available. The schematics on Solderpad tell all.
If you have an external dc supply available - at any voltage - then with the V3 that option of a driver transistor is open to you too. Bear in mind there's a difference between inputs and outputs, you can divide down a voltage to present it to a lower voltage input, or you can feed current and limit it to a safe value. You can't do that when the pin is configured as an output.


Kanye West denied permit for amphitheater on Wyoming ranch
by Associated PressCODY, Wyo. (AP) — Kanye West has been denied a permit to build an amphitheater on his ranch in Wyoming.
The Park County Planning and Zoning Commission made the decision Tuesday after the rapper changed his plans for the structure near Cody.
West told county officials he now wants to include residential space.
The Cody Enterprise reports that county officials also object to West already having done considerable work at the site. They told West’s representatives to stop work immediately.
Kane Morris with Point Architects in Cody apologized, saying West came forward as soon as he changed his mind and will stop the work.
West bought the ranch this year and plans to move the headquarters of his shoe and clothing company, Adidas Yeezy, to Cody.


---
layout: post
title: NFS on RPI2
date: '2017-02-01T18:13:00.001-05:00'
author: umhau
tags:
- RPI
- NFS
- Raspberry Pi
categories: memos
modified_time: '2017-02-01T18:13:36.627-05:00'
blogger_id: tag:blogger.com,1999:blog-2584289275272726799.post-4459225489116079160
blogger_orig_url: http://nixingaround.blogspot.com/2017/02/nfs-on-rpi2.html
---
Just a quick note - following the instructions I've put up elsewhere here, the only thing to add for an RPI is that rpc.statd needs to be started for the network mount to work. Run this before the sudo mount -a command:
sudo service rpcbind restart


The Food and Red Wine Restaurant
123 Smith Street, Melbourne
(03) 1234 5678
Map
All items
{{item.Mode}}
All Meal Types
{{item.Type}}
{{item.Title}}
{{item.Name}}
Details
No results found.


Login
Register
Change Password
Username
Password
Registration Key
Password
Confirm Password
Old Password
New Password
Confirm New Password
Position
Cash
Contracts
Valuation
Chat
Lot Size
-
1
+
Quoter
On
Offset
Size
Orders
Side
Price
Volume
Status
x
Trades
Side
Price
Volume


Airbnb Says it Will Pay for the Funerals of Victims in San Francisco Halloween Shooting
by Associated Press(ORINDA, Calif.) — Airbnb says it will pay funeral expenses for the five victims killed in a Halloween shooting at one of its rentals in the San Francisco Bay Area.
The San Francisco Chronicle reports the company said Thursday it will also cover counseling bills for their families.
The decision comes after a victim’s lawyer, Jesse Danoff, blasted the company’s response to the Halloween massacre at one of its rental properties, saying Airbnb “responded in public with platitudes and thoughts and prayers.”
Airbnb said in a statement it has set aside funds for funeral expenses and counseling for the victims’ families and has been in contact with Danoff.
The Oct. 31 shooting sent some 100 terrified partygoers running for their lives. No arrests had been made.


WITNESS LIST Finance Committee (Subcommittee on Tobacco Settlement Proceeds) April 20, 2000-9:00A Analysis of Legal Issues On: Taylor, Andy (Office of the Attorney General), Austin Registering, but not testifying: On: Benoit, Brent (Office of the Attorney General), Austin Browning, Mark (Office of the Attorney General), Austin Analysis of Proceed Adjustments On: Iberg, Cathy (U.T. Investment Management Company (UTIMCO)), Austin LeBas, James (Comptroller's Office), Austin Registering, but not testifying: On: Ferguson, Dean V. (Comptroller's Office), Austin Statement of Expenditures On: Feigin, Dr.Ralph D. (Baylor College of Medicine), Houston


{{template "_head.html"}}
{{template "_menu.html"}}
Data as of :
You are here :
{{template "_loader.html"}}
{{.Content}}
{{template "_script_template.html"}}


Empower clients with great styles from the brands you love.
Access to thousands of products from the brands you love
We handle the shipping & logistic from our warehouses in LA, Frankfurt, Manchester, Sydney and Hong Kong
Get paid monthly + discounts on latest clothing, accessories
Pures is created by a team of stylists, designers and engineers, our team consists of
individuals from JustFab, NastyGal, Net-A-Porter, Vogue and Google.
At Pures, we are dedicated to bringing personal styling at mass, by empowering
talented stylists to create, recommend and earn revenue. Our mission is to revive the
apparel shopping experience through personalized styling service by a network of creative experts.


Reads EXIF data using ExifTool <http://www.sno.phy.queensu.ca/~phil/exiftool/> and returns results as a data frame. ExifTool is a platform-independent Perl library plus a command-line application for reading, writing and editing meta information in a wide variety of files. ExifTool supports many different metadata formats including EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP and ID3, as well as the maker notes of many digital cameras by Canon, Casio, FLIR, FujiFilm, GE, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon and Sony.
| Version: | 0.2.2 |
| Imports: | curl, purrr, dplyr, tibble, jsonlite, utils |
| Suggests: | testthat, covr |
| Published: | 2018-08-19 |
| Author: | Dewey Dunnington [aut, cre], Phil Harvey [aut] |
| Maintainer: | Dewey Dunnington <dewey at fishandwhistle.net> |
| BugReports: | https://github.com/paleolimbot/exifr/issues |
| License: | GPL-2 |
| URL: | https://github.com/paleolimbot/exifr |
| NeedsCompilation: | no |
| SystemRequirements: | Perl |
| Materials: | README |
| CRAN checks: | exifr results |
| Reference manual: | exifr.pdf |
| Package source: | exifr_0.2.2.tar.gz |
| Windows binaries: | r-devel: exifr_0.2.2.zip, r-release: exifr_0.2.2.zip, r-oldrel: exifr_0.2.2.zip |
| OS X binaries: | r-release: exifr_0.2.2.tgz, r-oldrel: exifr_0.2.2.tgz |
| Old sources: | exifr archive |
Please use the canonical form https://CRAN.R-project.org/package=exifr to link to this page.


netCDF-3
This section details a set of additional conventions that are specific to the netCDF-3 file format.
The following table shows the mapping between HARP data types and netCDF-3 data types. NetCDF-3 data types not covered in this table are not supported by HARP.
HARP data type |
netCDF-3 data type |
|---|---|
int8 |
NC_BYTE |
int16 |
NC_SHORT |
int32 |
NC_INT |
float |
NC_FLOAT |
double |
NC_DOUBLE |
string |
NC_CHAR |
The netCDF-3 data model defines the concept of shared dimensions. A netCDF-3 dimension has a name and a length. The name of a dimension should be unique. The shape of a netCDF-3 variable is specified as a list of dimensions (instead of a list of dimension lengths). This implies that to store a HARP product in netCDF-3 format, a netCDF-3 dimension should be defined for each dimension present in the product. This is straight-forward for all dimension types supported by HARP, except for independent dimensions (since HARP does not require that all independent dimensions have the same length).
For example, a variable may have an independent dimension of length 2, while another variable may have an independent dimension of length 4. However, it is not possible to create two netCDF-3 dimensions called ‘independent’ with different lengths, because netCDF-3 requires dimension names to be unique. Instead, the netCDF-3 backend defines a netCDF-3 dimension for each independent dimension by appending the length to the name of the dimension to make it unique. The name and the length are separated by an underscore. In the case of the example, two netCDF-3 dimensions would be defined, one named ‘independent_2’ and another named ‘independent_4’. Independent dimensions of the same length will be represented by the same netCDF-3 dimension.
NetCDF-3 does not support strings. The netCDF-3 backend stores an N-dimensional HARP variable of type string as an (N+1)-dimensional netCDF-3 variable of type NC_CHAR. The length of the introduced dimension equals the length of the longest string, or 1 if the length of the longest string is zero. Shorter strings are padded will null-termination characters.
Of course, netCDF-3 dimensions need to be defined for the introduced dimensions. This is handled in the same way as for independent dimensions, by appending the length to the name of the dimension. The name and the length are separated by an underscore. The name used for these introduced dimensions is ‘string’. For example, if the longest string has a length of 10, a netCDF-3 dimension named ‘string_10’ would be defined. String dimensions of the same length will be represented by the same netCDF-3 dimension.
To summarize, HARP dimensions are mapped to netCDF-3 dimensions as follows:
HARP dimension type |
netCDF-3 dimension name |
|---|---|
time |
time |
latitude |
latitude |
longitude |
longitude |
vertical |
vertical |
spectral |
spectral |
independent |
independent_<length> |
N/A |
string_<length> |
Note that even though the time
dimension is conceptually considered appendable, this dimension is not stored as an
actual appendable dimension in netCDF-3. Products are read/written from/to files in full and are only modified in memory.
The appendable aspect is only relevant for tools such as plotting routines that combine the data from a series of HARP
products in order to provide plots/statistics for a whole dataset (and thus, where data from different files will have
to be concatenated). Storing data in a netCDF-3 file using an actual appendable dimension (using the netCDF-3 definition
of appendable dimension) will have a slightly lower read/write performance compared to having all dimensions fixed.


We are individuals dedicated to helping businesses save time, improve workforce management efficiency, increase employee engagement, and ease workload via a seamless scheduling system.
The problem with the time and complexity of shift management in businesses with large numbers of employees, unhappy employees due to disorganized scheduling. Other employee management systems do not place the level of focus that we do on employee satisfaction. We want to make sure your employees are happy with their schedules while simultaneously helping managers save any time with scheduling large numbers of employees.
Each employee has their own account with their employer information which can be used to input their job position, availability, contact information, and level of expertise/knowledge in an easy-to-read week-by-week format. The data from these unique profiles can then be used by managers to be able to schedule their employees on shifts more quickly and in a way that suits each individual employee the best. Employees will have the option to “release shift” or “trade shift” with a selected Data from user profiles can be laid out for managers and employers in a customizable, easy-to-read format. It essentially allows them to view any piece of information about any number of employees in an overlaid style/cumulative format. An example would be if managers wanted to view all employees with a particular job title and view all of their week-to-week availabilities at once.


Call: +01<PHONE_NUMBER>
Call: +01<PHONE_NUMBER>
Pay $25 with Gift Cards
Pay $50 with Gift Cards
Pay $100 with Gift Cards
Pay $150 with Gift Cards


Just in case you find yourself in the awkward place of needing to know when the mouse moved out of an element ouside your element...
(Hint: Move the mouse. Or don't. I'm a demo, not your boss.)
Note: mouseout gets triggered when on a parent when moving onto a child, since you move out of the visible space of the parent.
<script> export default { methods: { onMouseOutOutside(e, el) { console.log("onMouseOutOutside"); console.log("Event:", e); console.log("Element mouse moved out of:", e.target); console.log("Element that watched warily:", el); } } } </script>


{% extends "frontend/layout.html" %} {% block content %}
Your browser doesn't have Flash, Silverlight or HTML5 support.


This seems very appropriate because it is the classical learning example. And because I’m a soon to be mechanical engineering graduate striving to learn how to write good code and do something with it, this blog will be from my perspective as a learner. As I don’t know if anything I’ll write about will be of interest for anyone else but me I’m starting this blog mainly to organize my thoughts and keep track of my journey as a learner.  Maybe “someday” will already be next week :) I really like John D. Cook’s blog and I think the absolut worst “Hello world” ever he discovered in this book about Win 3.1 programming is really worth a look.
Hello World!


Summary
Welcome to my online curriculum vitae. Here you will get a detailed insight into my work
experience, skills, certifications and education. My professioal journey started as an intern
web services developer, a decade ago and since then I have worked for several companies in
various developer roles. This has involved the creation, maintenance and continued development
of commercial web sites and online APIs. I currently work for a company called Publicis
Sapient, who are experts in helping establised organizations by partnering with them to
their future, digitally-enabled state, both in the way they work and the way they serve their
customers
I have commercial experience working with technologies such as C#, .NET, Node.js, JavaScript and
Python. Apart from coding, i've been involved giving talks, demos to clients, assisting and
sometimes mentoring other developers.
My aim for the future is to expand on the knowledge base I
currently have and continue to be involved in the architecture
and design of web based applications from the ground up.
Skills & Technologies
Used in current role
JavaScript
Experience, 2+ years
GRPC
Experience, 3+ months
Azure/GCP
Experience, 4+ months
Google Cloud Platform
Experience, 3+ months
Experience
Publicis Sapient
Senior Consultant Developer
Feb 2019 - current
Publicis Sapient is a digital transformation partner helping established organizations get
to their future, digitally-enabled state,
both in the way they work and the way they serve their customers.
Partners include Lloyds Bank plc, Unilever, Nationwide Bank and Walt Disney.
-
Joined Publicis Sapient as a Full stack developer.
Was immediately contracted to Lloyds banking group to assist the company in
digitising its business user’s journey.
-
Joined the team as the only developer that knows UI development. Helped with
design discussion and training other developers.
Helped modularised their apps, created shared libraries and CI/CD pipelines for UI
applications.
-
Developed API endpoints for the backend service using NodeJs, Loopback I/O and
Jest.
Contributed to moving their backend services to containers using Docker and
Kubernetes.
-
Involved in Client meetings, gathering requirements, determining OKRs and
breaking business epics into stories.
-
Worked in a team of 4/5 developers, employing an agile approach via
Scrum and Kanban framework. Also participated in fine-tuning business requirements,
client presentation and brown bag sessions
Perfect Channel
Senior Developer
Aug 2017 - Feb 2019
Perfect Channel are experts in creating intelligent, enterprise-level auction and trading
technologies.
Customers include Christie's, Lloyds of London, TMX Group (Agriclear) and Fonterra (Global
Diary Trade).
-
Part of POC/Labs team, responsible for creating new
architectures and solutions based on client requirements and
future expectations.
-
Involved in the refactoring of the company's existing
monolith product into a microservice architecture hosted on
AWS cloud services.
-
Created microservices using a serverless architecture.
Technologies used include AWS Lambda, Node.js, .NET Core,
MySQL, DynamoDB and Elasticsearch.
-
Involved in the company’s adoption of React and TypeScript
as their primary UI technology.
-
Team of 4 developers that employ an agile approach using the
Scrum framework. This includes code reviews and continuous
deployment.
Totaljobs Group
Software Developer
Jan 2017 - June 2017
Totaljobs.com is one of the UK's leading jobs boards,
attracting around 6 million jobseekers every month on the hunt for one of 110,000 live job
ads
the site carries at any one time
-
Developed for and maintained the company's enterprise architecture platform.
Technologies used include .NET Web API, SQL
Server, AngularJS and TypeScript.
-
Green field project making use of a service based architecture and a single page web
application.
-
Created various product integrations for services such as SharePoint, Azure AD and
Office 365.
-
Responsible for all aspects of DevOps. This included implementing a release management
pipeline using TFS and hosting on
the Azure platform.
-
Implemented unit testing using MSTest and Moq.
-
Implemented acceptance testing using Coded UI Tests.
-
Team of 6 developers that employed an agile approach using the Scrum framework. This
included code reviews and continuous
deployment.
Ticketmaster Inc. (LiveNation)
Software Developer
April 2016 - Dec 2016
DC Thomson Family History is a world leader in online genealogy. The company own brands such
as FindMyPast and Genes Reunited.
These brands have over 18 million registered users and provide access to over 1.8 billion
genealogy
records.
-
Developed for and maintained a host of brand web sites. All of the web sites were public
facing, high traffic and high volume.
Technologies used include .NET MVC and SQL Server.
-
Involved in a mixture of green and brown field projects and developments.
-
Experience with multiple ORMs including Entity Framework and NHibernate.
-
Emphasis on database and code optimization and performance.
-
Implemented unit testing using MSpec and Rhino Mocks.
-
Implemented acceptance testing using Selenium.
-
Team of 5 developers that employed an agile approach using the Scrum framework. This
included test driven development, pair
programming and continuous deployment.
Fund Assist
Senior Developer
.NET Developer
Nov 2014 - Feb 2016
Pelagon provide a web based activity management platform for digital marketing agencies.
Clients include the worldwide advertising
agencies McCann and DDB.
-
Originally hired as a .NET Developer, progressed to become a Senior Developer.
-
Developed for and maintained the company's activity management platform. Technologies
used include .NET MVC, .NET Web Forms
and SQL Server.
-
Involved in the complete redesign of the platform from the ground up to make use of
newer technologies. This included a service
based architecture and a single page AJAX UI using JQuery.
-
Created mobile UI with responsive design for new platform. This involved researching the
available mobile technologies at
the time, such as the first generation of smart phones.
-
Implemented unit testing using MSTest.
-
Implemented acceptance testing using Coded UI Tests.
-
Team of 6 developers that employed an agile approach using the Scrum framework. This
included code reviews and continuous
deployment.
Buy4now Ltd
Web and Database Developer
2004 - 2007
Interactive Prospect Targeting is the UK's leading online direct marketing solutions
provider. The company own brands such
as MyOffers and Quiz Factor.
-
Originally hired as a summer intern, progressed to become a Web and Database Developer
and then a Development and Support
Team Leader.
-
Developed for and maintained a host of brand web sites. All of the web sites were public
facing, high traffic and high volume.
Technologies used include .NET Web Forms, classic ASP and SQL Server.
-
Emphasis on database and code optimization and performance.
-
Involved in the company's migration to the .NET platform. This included the
redevelopment of applications and internal admin
tools using .NET Web Forms and the adoption of new coding and automated testing
standards.
-
As Development and Support Team leader I was responsible for leading a team of 5
developers. My duties included the break
down and organization of development tasks for the team.
Projects:
Smyth Toys Superstores
Woodies DIY
Elverys Sports
Heatons Stores


--- layout: post title: "First blog" permalink: /blog/sample.html description: "Lorem Ipsum intro" ---
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.


Preparation time
30 mins to 1 hour
Cooking time
1 to 2 hours
Serves
Serves 4
Dietary
A gorgeous vegetarian light meal - sweet, slow-cooked celeriac is accompanied by peppery watercress and a crisp deep-fried duck egg.
Bring a pan of salted water to a rolling boil. Lower the duck eggs in with a slotted spoon and boil for six minutes. Drain the eggs and place in ice-cold water for 30 minutes.
Place the flour into a wide shallow bowl, the beaten eggs in another bowl and the breadcrumbs in a third bowl.
Peel the duck eggs and roll them in flour, then the beaten eggs and finally in the breadcrumbs. Place them on a baking tray and set aside, covered, in the fridge.
Preheat the oven to 180C/350F/Gas 4.
Season the whole celeriac with salt and pepper.
Place a heavy-based oven-proof frying pan over a medium heat. Add the vegetable oil then fry the celeriac gently until golden-brown all over. This will take about 30 minutes. (You will need to balance the celeriac on the side of the frying pan to colour it on all sides.)
When the celeriac is golden-brown all over, add the butter and the thyme sprig. Place the celeriac into the oven, and bake for 20-30 minutes, basting the celeriac with the butter 2-3 times, or until soft and cooked through. Set aside to cool.
When cool enough, slice the celeriac very thinly.
Finely julienne a few slices of the celeriac and mix with the mayonnaise.
Whisk the lemon juice, olive oil and grated truffle together with a pinch of salt and black pepper to make a dressing.
Dress the slices of celeriac with the truffle dressing and a pinch of sea salt.
 (CAUTION: Hot oil may be dangerous. Do not leave unattended.)
Deep-fry the egg straight from the fridge for one minute or until the breadcrumbs are golden-brown. Remove the egg from the oil with a slotted spoon and set aside to drain onto kitchen paper.
To serve, divide the slices of celeriac among four serving plates - arrange them to get height and show texture.
Place a spoonful of the finely sliced celeriac in mayonnaise (remoulade) in the centre of each plate.
Cut the top off each egg to reveal the runny yolk and place the egg on top of the celeriac.
Scatter the celery and watercress leaves and truffle slices over the dish and serve.


Class: Innsights::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Innsights::InstallGenerator
- Defined in:
- lib/generators/innsights/install/install_generator.rb
Overview
Generates the configuration files for innsights: * config/innsights.yml holds the app credentials and general configuration * config/initializers/innsights.rb (holds all the watched models and controllers)
Instance Method Summary (collapse)
-
- (Object) ensure_new_app
Checks if the innsights.yml file exists and if so, exits.
-
- (Object) generate_config
Generates the innsights.yml configuration file.
-
- (Object) generate_initializer
Generates the innsights.rb initializer.
Instance Method Details
- (Object) ensure_new_app
Checks if the innsights.yml file exists and if so, exits
11 12 13 14 15 |
# File 'lib/generators/innsights/install/install_generator.rb', line 11 def ensure_new_app if File.exists?(File.join(Rails.root, 'config/innsights.yml')) && !Innsights.test_mode puts warning && exit end end |
- (Object) generate_config
Generates the innsights.yml configuration file
18 19 20 21 22 23 24 25 |
# File 'lib/generators/innsights/install/install_generator.rb', line 18 def generate_config @config = Innsights::Client.create(processed_app_name) if @config.nil? abort else template 'innsights.yml', 'config/innsights.yml' end end |
- (Object) generate_initializer
Generates the innsights.rb initializer
28 29 30 |
# File 'lib/generators/innsights/install/install_generator.rb', line 28 def generate_initializer copy_file 'innsights.rb', 'config/initializers/innsights.rb' end |


Your username is: {{this.authenInfo.username}}
Your password is: {{this.authenInfo.password}}


Comparing Modules and Classes
Before researching ruby modules for this blog post, I had a vague notion that they can add functionality to my code. Reading through chapter 4 of "The Well-Grounded Rubyist" today has helped shed some light on what they do in Ruby and how they compare to classes.
The definition of module from dictionary.com reads:
module
a separable component, frequently one that is interchangeable with others, for assembly into units of differing size, complexity, or function.
The term module is used aptly in Ruby, because they are components that can be inserted into classes interchangeably to create new designs.
Here's a run down of some of the things I've learned:
A class is a type of module.
Modules are structured the same as classes, except when defining a module, we use the keyword "module" instead of "class".
We can create an instance of a class, but not an instance of a module. In my post last week I used an example of a BoxOfChocolates class where I can create as many kinds of chocolate boxes as my heart desires. These chocolate boxes are each an instance of the BoxOfChocolates class. Each of my boxes can execute the instance methods defined within the BoxOfChocolates class. While you can't create an instance of a module, you can mix a module in with a class. This means I define a set of methods within a module, and then source it into my class later. The methods from the module are used within my class along with the instance methods defined by my class. To source a module into a class we use the keywords "include" or "prepend". "include" is used when we want class methods to have priority and "prepend" is used when we want module methods to have priority. This is important when a module and a class contain methods that have the same names.
A class inheriting methods from another class is similar to a class having methods mixed in from a module. The big difference is that a class can only inherit methods from one other class, but it may have any number of methods from any number of modules mixed into it.
Conventionally, classes are named with a noun and modules are named with an adjective, although this is not a rule. An example might be the following classes: BoxOfChocolates, BagOfSkittles, BucketOfGumballs. These classes might need to make use of the same methods, so I create a module called Sugary containing those methods to be mixed in with my classes. A module is concerned with what behaviors we add to a class. A class is about what kind of object we are creating, which will include the behaviors of the module. Like an adjective describing a noun, a module is used to describe a class.
Modules can contain classes. To access a class from within a module you would use
this syntax:
instance = Module::Class.new
or
box = Sugary::BoxOfChocolates.new
I've heard the term module numerous times and am happy to have a better understanding of what they are and how they can be used. Now I can start making other candies besides chocolates all the more easily.


Coding Quiz
This is a quiz to test your coding knowledge. Once you hit start, you will have 60 seconds to answer as many questions as you can. If you get a question right, you earn 5 points. If you get a question wrong, you lose 3 points and 10 seconds off the timer.
Good luck!
Question
A)
B)
C)
D)
Finished!
Final Score:
Enter your initials:
Highscores
| Rank | Initials | Score |
|---|


Module: Rack::BadRequest
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
|
Included In:
| |
| Defined in: | lib/rack/bad_request.rb |
Overview
Represents a 400 Bad Request error when input data fails to meet the requirements.


{%set background_image='contact-bg.jpg' %} {% extends "front/index.html" %} {% macro input(field) -%}
{{field.errors.0}}
{% endif %}Mail has been sent. Thank you for getting in touch! I will get back to you shortly.
Have a great day, {{form.name.data}}!


{% extends "tournament/tournament_base.html" %} {% load i18n %} {% block content %}
{% blocktrans %}Your attempt to activate your account has failed. Are you sure you clicked the link correctly, or pasted the activation code? Please check again. You could also see this error because your account has already been activated, for example because of clicking the link twice.{% endblocktrans %}
{% endblock %}


4 March 2005
The multidisciplinary team (see previous report) has reported a total of 57 cases (54 suspect cases, 3 probable cases), including 16 deaths in Zobia, Bas-Uélé district, Oriental province. These figures are based on the current situation and a retrospective analysis of cases. With the exception of 2 cases of the septicaemic form of plague, all recorded cases are pneumonic plague.
Out of 18 specimens tested, preliminary laboratory results from Kisangani Provincial Laboratory confirm 10 positive specimens by direct examination (sputum).
Contact tracing and follow up of 125 contacts is continuing. The team is providing support to the clinical management of cases in Zobia and Médecins sans Frontières - Belgium are constructing 2 isolation centres. Social mobilization activities are taking place in surrounding areas.