My favorite things in life are cats 🐈, computers 🖥 and crappy ideas 💩, so I decided to combine all three and make an IoT (Internet of Things) litter box using a Raspberry Pi and JavaScript.
This project will help track your feline friend's health by measuring its weight every time it sets foot on the litter tray, and monitors its urination patterns. The equipment can be connected to a companion smartphone app that displays the relevant data in an easy-to-understand graph format, so that cat parents can quickly spot symptoms of unusual weight loss.
Track your feline friend's health by measuring its weight every time it sets foot on the litter tray
Easily spot irrugular bathroom habits for you cat.
You can receive a text or email when the box requires more litter.
Get notifed when the box has been used so you can clean the box immeidately.
MongoDB Charts is the best way to create visualizations of MongoDB data. Connect to any MongoDB instance as a data source, create charts and graphs, embed them into your applications or build live dashboards for sharing and collaboration.
Decentralization is a key aspect of PiperNet. Traditionally, to access data on a website, you needed to connect to a single server containing that data. This method of storing data makes it easy for third parties to get access to it, corrupt it or even delete it. In PiperNet it is securely stored on multiple devices in the network, which makes it harder to hack and interfere with your data.
That's just the thing - if you store your data in a single place, like Gavin Belsons' poorly-made server box, your data will very susceptible to hacking. Whereas on PiperNet, your data is safe with many copies to back it up from.


BLISTEX FOILLE MEDICATED FIRST AID- benzocaine and chloroxylenol ointment
Blistex Inc.
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
| Active ingredients |
Purpose |
| Benzocaine 5.0% (w/w) |
External Analgesic |
| Chloroxylenol 0.1% (w/w) |
Antiseptic |
Uses
- For the temporary relief of pain associated with burns, sunburn, minor cuts, scrapes, insect bites, and minor skin irritations.
- First aid to help prevent infection in minor cuts, scrapes and burns.
Warnings
When using this product
- Avoid contact with the eyes
Stop use and ask a doctor if
- condition worsens, or symptoms persist for more than 7 days or clear up and occur again within a few days.
- Do not apply over large areas of the body. In case of deep or puncture wounds, animal bites, or serious burns, consult a doctor.
Keep out of reach of children.
If swallowed, get medical help or contact a Poison Control Center right away.
Directions
- Clean the affected area.
- Adults and children 2 years of age and older: Apply to affected area not more than 3 to 4 times daily.
- Children under 2 years of age: consult a physician.
Other information
-
Avoid contact with clothing. Foille may stain certain fabrics.
Inactive ingredients
beeswax, benzyl alcohol, calcium disodium EDTA, calcium hydroxide, ceresin, eugenol, hydrogenated vegetable oil, maleic anhydride, mono- and di-glycerides, PEG-32, purified water, sodium borate, sodium lauryl sulfate, zea mays (corn) oil.
PRINCIPAL DISPLAY PANEL - 28 g Tube Carton
NDC 10157-9302-4
Foille®
EXTERNAL ANALGESIC / ANTISEPTIC
MEDICATED
FIRST AID OINTMENT
Fast, Soothing Relief Of Pain Due To:
Cuts & Scrapes • Minor Burns
Sunburn • Insect Bites
NET WT.
1 oz (28g)
Blistex Inc.


To start/stop a test for each gauge/chart click on the gauge/chart itself then click on the wrench icon on top right corner Stop Test


--- layout: post status: publish published: true title:
Andy, Corey and Kurt usher in the off-season with this episode. We comment on Infield-Fly-gate before we jump into Cubs talk. The Cubs announce that Brett Jackson and Josh Vitters will start the 2013 season in Iowa. We talk about how these two players did in 2012 and predict what will happen in 2013 with them.
Many fans may think the Cubs front office is reaching for positives by saying the climate in the clubhouse was improved in 2012. There may not be many positives, but this is one area that might actually be pretty important. We talk about our take on how things have changed in the clubhouse.
Before we get to the photo caption contest, Kurt puts his Scary Stat of the Week on hiatus and introduces a new off-season segment.


FizzyFlow
Network Visualisation
Data
Sample
From File
Listen to Broadcast
Predefined sample data
Select One
Action
Action
Load data from file
Load from file
Listen to visualisation broadcast
IP
Port
Listen
Timeframes
Visualisation
Move and zoom using your mouse
Re-arrange
Undefined
New
Connecting
Connected
Active
Failed
Disconnected
Banned
Selected Node
Addr:
# IN:
# OUT:
Messages


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Shockumentary
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Dr. Sputnik
Boners
Dead Pool
NNDB
Home
Make Dailyrotten your start page
|
|
|
August 11, 2003
Unabomber wants his evidence sent to a museum
San Francisco Chronicle | Submitted by: Grendels Lair
"Theodore J. Kaczynski, the onetime UC Berkeley math professor better known as the Unabomber, wants the federal government to return all his stuff -- including one of his bombs -- that the FBI confiscated when he was arrested in his tiny Montana cabin seven years ago. ... Kaczynski wants the government to ship the material to a Michigan archive that already contains more than 15,000 of Kaczynski's papers. ... At the University of Michigan, spokeswoman Julie Peterson said the university believed the documents still held by the government were 'important historical materials. They're valuable as a resource for many people across the country and across the world to do research on social protest.'"
|
|
Read article...
|
|
Taiwanese enjoy killing massive, shitting porcine blobs
BBC | Submitted by: Lydia
"The rearing of grossly overweight pigs in Taiwan for ritual slaughter has been condemned by animal welfare groups. They said it was time to end the annual 'Pigs of God' contests that revolved around the force-feeding of animals to see which could achieve the greatest mass. Pigs weighing in excess of 900 kilograms have been reported. The animals, which are incapable of standing, are dragged in front of thousands of people before having their throats cut. ... 'This competition, which involves animal abuse, should be abandoned,' East told the Taipei Times after showing a video about the animals. 'Most pigs were terrified. They screamed loudly and failed to control their bowels when they were moved to the scales by several people.'"
|
|
Read article... and
This article...
|
|
Former human shield in Iraq owes gov't $10,000
MSNBC | Submitted by: optional
"A retired schoolteacher who went to Iraq to serve as a 'human shield' against the U.S. invasion is facing thousands of dollars in U.S. government fines, which she is refusing to pay. ... Her travel to Iraq violated U.S. sanctions that prohibited American citizens from engaging in 'virtually all direct or indirect commercial, financial or trade transactions with Iraq.' ... Fippinger, who returned home May 4, is being fined at least $10,000, but she has refused to pay. She could face up to 12 years in prison. ... Shortly before the U.S. invasion in March, Fippinger was one of several dozen human shields scattered around a refinery in Baghdad. 'We are planning to stay here in the refinery if war breaks out,' Fippinger said at the time." [She actually believed the United States was intending to bomb their petrochemical infrastructure? And that was worth defending with her life?]
|
|
Read article...
|
|
Michael Jackson exploring pediatric hospital idea
bizjournals.com | Submitted by: Reid Fleming
"Entertainer Michael Jackson has considered starting a pediatric ventilator hospital for children in South Florida... Despite current media speculation about his solvency and a pending lawsuit brought against him by his accountants, Jackson told associates in June he was carrying a $2 million certified check and was willing to go forward with the project, a source said. ... In 2001, Jackson was involved in a United Kingdom initiative called Heal The Kids, which said on its Web site that it was 'dedicated to promoting relationships between adults and children [uh-huh], and to fostering programs that help children gain the love, attention and quality time they need to prosper and flourish.'"
|
|
Read article...
|
|
Witch hunt under way inside air marshals program
MSNBC | Submitted by: Reid Fleming
"The Transportation Security Administration is conducting a 'witch hunt' to ferret out and discipline employees in the federal air marshal program who have talked to the media, several sources within the program told MSNBC.com. Some air marshals are even being threatened with having the USA Patriot Act, a law enacted to help fight terrorism, used against them. The Department of Homeland Security, which oversees the TSA, denies that any such investigation is taking place."
|
|
Read article...
|
|
Drunk wants suicide by cop, get his wish
AZ Central | Submitted by: Tim Howard
"A man was shot and killed by deputies early Monday on the highway leading to Mount Lemmon, the fire-devastated area President Bush was scheduled to visit later in the day. A man ran a highway barricade in his vehicle and appeared to be intoxicated and suicidal, said Deputy Steve Easton, a spokesman for the Pima County Sheriff's office. When they approached him, he held a beer out the window and said he wanted to die, Easton said.
|
|
Read article...
|
|
Agent Orange still fighting the Vietnamese
BBC | Submitted by: Bonny Fide
"In total, 11m gallons were poured over South Vietnam between 1961 and 71, over 10% of the country -- 14% of the area targeted was farmland. ... The Vietnamese have long claimed that Agent Orange -- and the dioxin it contained -- has seriously damaged the health of those living in the areas where it was used. ... Children in areas that had been sprayed were: More than three times as likely to have cleft palates, to be mentally retarded, and to have extra fingers or toes."
|
|
Read article...
|
|
Bush versus science, again
daytondailynews.com | Submitted by: Reid Fleming
"The Bush administration persistently manipulates scientific data to serve its ideology and protect the interests of its political supporters, a report by the minority staff of the House Committee on Government Reform says. ... On topics ranging from global warming to sex education, the administration 'has manipulated the scientific process and distorted or suppressed scientific findings,' the report said. ... The report's authors allege that federal agencies have jeopardized scientific integrity in numerous ways, including stacking scientific advisory committees with unqualified officials or industry representatives, blocking publication of findings that could harm corporate interests and defending controversial decisions with misleading information."
|
|
Read article...
|
|
Nuclear reactors helping and hurting French heat wave
networks.org | Submitted by: Tim Howard
"France called emergency talks on Monday on overheating at nuclear power plants as Europe's heatwave entered its second week, with officials torn between output cuts and allowing hotter water to pour into rivers. After Paris sweltered through its hottest night since records began, a doctor in the city said more elderly people were dying from the heat and accused health authorities doing little about the crisis. Temperatures have hit around 104 degrees Fahrenheit in the past few days, spelling trouble for France's nuclear reactors, many of which are cooled by river water. The plants pour water back into the rivers but only once it has been cooled to a certain temperature to protect the environment. With river levels falling and the mercury rising, authorities face the choice of spewing out hotter water, risking ecological damage, or cutting output, potentially leading to blackouts."
|
|
Read article...
|
|
Difficult times for Bob Guccione
medialifemagazine.com | Submitted by: Reid Fleming
"Is Bob Guccione sleeping in a cardboard box these days? ... Last month, with foreclosure on his $37 million Manhattan mansion looming, the Penthouse publisher managed to talk creditors into granting him a two-week extension while a deal was hashed out. But the new deadline came and went last Tuesday without a word from either side. ... Penthouse has been similarly reluctant to discuss reports that it is on the verge of total collapse. The cash crunch is so acute that Penthouse, unable to pay its printer, went more than two months without publishing an issue earlier this summer. A new low came last month when the magazine was forced to reduce its employees' paychecks by 75 percent."
|
|
Read article...
|
|
Indian parliament lacking strict authentication protocols
Taiwan Times | Submitted by: Reid Fleming
"Balbir Singh Rajput, a truck driver and actor, who resembles Shipping Minister Shatrughan Sinha, was waved through parliament's main gate by policemen and armed guards on Friday. Rajput, who has stood in for Sinha at a number of election campaign meetings, was filmed by 24-hour television news channel Aaj Tak walking through the multilayered security gates leading into the complex as policemen waved him through. Aaj Tak admitted during broadcasts Saturday it had arranged the stunt to expose how easy it was to breach security at the parliamentary compound. ... 'Today I have reached Parliament House without being checked, without an entry pass,' Rajput said on Aaj Tak. 'I could have been carrying a weapon or a bomb. This is shameful.'"
|
|
Read article...
|
|
California scrutinizing RFIDs
c|Net | Submitted by: Reid Fleming
"Sen. Debra Bowen, a California legislator recently on the forefront of an antispam legislation movement, is spearheading the Aug. 18 hearing, which will focus on an emerging area of technology known as radio frequency identification (RFID)... Retailers and manufacturers in the United States and Europe, including Wal-Mart Stores, have begun testing RFID systems, which use millions of special sensors to automatically detect the movement of merchandise in stores and monitor inventory in warehouses. ... 'If you are walking around emanating an electric cloud of these devices wherever you go, you have no more privacy,' said Katherine Albrecht, the head of Consumers Against Supermarket Privacy Invasion and Numbering, a fierce critic of RFID technology. 'Every door way you walk through could be scanning you,' she added." [Second link is to a recent press release on the technology from Texas Instruments.]
|
|
Read article... and
This article...
|
|
Scientist developing fungus to kill 'tree from Hell'
katv.com | Submitted by: Reid Fleming
"There aren't many trees that are compared to mass murderers; then again, there aren't many trees like the ailanthus. 'This tree has no social redeeming value whatsoever,' said Lloyd Hipkins, a Virginia Tech weed scientist. 'If you wanted to find a positive side to Charles Manson, you could. The same could be said of ailanthus.' ... Thomas Jefferson was fond of the tree that he grew around Monticello, and Fredrick Law Olmsted included it in his plans of Central Park. It has since found its way into at least 42 states, including Hawaii."
|
|
Read article...
|
|
|
|
|


--- layout: full title: "Ionic: Advanced HTML5 Hybrid Mobile App Framework" body_css: "home" ---
Download beta Get started View Docs
v{{ site.latest_version }} · {{ site.latest_release_date }} · MIT Licensed
Free and open source, Ionic offers a library of mobile-optimized HTML, CSS and JS components, gestures, and tools for building highly interactive apps. Built with Sass and optimized for AngularJS.
Speed is important. So important that you only notice when it isn't there. Ionic is built to perform and behave great on the latest mobile devices. With minimal DOM manipulation, zero jQuery, and hardware accelerated transitions, one thing is for sure: You'll be impressed.
A match made in heaven. Ionic utilizes AngularJS in order to create a framework most suited to develop rich and robust applications. Ionic not only looks nice, but its core architecture is for serious app development, and AngularJS ties in perfectly.
Ionic is modeled on popular native mobile development SDKs, making it easy to understand for anyone that has built a native app for iOS or Android. Just drop it in your code to get going, and push through Cordova when it's ready. Develop once, deploy everywhere.
Clean, simple, and functional. Ionic has been designed to work and display beautifully on all current mobile devices. With tons of popular mobile components, typography, interactive paradigms, and a gorgeous (yet extensible) base theme, you'll wonder how you lived without it.
Use just one command to create, build, test, and deploy your Ionic apps onto any platform. With amazing features like Live Reload and integrated logging, you'll already be miles ahead of your native frenemies. Just run npm install -g ionic
, and you're good to go!
All you need to know are HTML, CSS, and JavaScript: the building blocks of the web. You'll even learn AngularJS as you work. We wrote tons of tutorials to get you started and help you level up your mobile development skills. There’s no question you'll be shipping apps in no time.
Built and maintained by developers and designers passionate about web technologies. Ionic focuses on standards compliant code, is forward thinking, and is managed through Github. We're making mobile development with HTML5 awesome and simple.


Know the medicines that your Allergist might prescribe you for your allergy related problems. Also take the medicines under Medical supervision only. Self medication can be dangerous and should be strictly avoided.
What is Allergen Immunotherapy?
Allergen-specific immunotherapy is a potentially disease-modifying therapy that is effective for the treatment of allergic rhinitis/conjunctivitis, allergic asthma and stinging insect hypersensitivity.
Immunotherapy contains a tiny amount of the specific substance or substances that trigger your allergic reactions. These are called allergens. It contains just enough allergens to stimulate your immune system — but not enough to cause a full-blown allergic reaction.
Over time, your doctor increases the dose of allergens. This helps get your body used to the allergens (desensitization). Your immune system builds up a tolerance to the allergens, and your allergy symptoms diminish over time.
Immunotherapy is an effective way of modifying or avoiding disease by influencing the immune system. Immunotherapy help your body get used to allergens, the things that trigger an allergic reaction.
Immunotherapy decrease sensitivity to allergens and often leads to lasting relief of allergy symptoms even after treatment is stopped. This makes it a cost-effective, beneficial treatment approach for many people.
Improvement with allergen immunotherapy does not occur immediately. It usually requires at least 4-5 months before symptoms improve, sometimes longer. If you are having treatment because of spring/summer allergic rhinitis, you will usually see improvement quite clearly in the first season.
It is recommended that allergen immunotherapy is continued for about 3-5 years, to reduce the likelihood that your allergies will return. While undergoing allergen immunotherapy, you can still use your allergy medications and you should continue your asthma medications at the same time in the usual way. It is important to note that allergen immunotherapy should only be initiated by a doctor who is fully trained in allergy.
Immunotherapy is a good treatment choice for you if:
Immunotherapy can be used to control symptoms triggered by:
Allergy shots aren’t available for food allergies or chronic hives (urticaria), andgioedema drug allergy.
It works like a vaccine. Your body responds to injected amounts of a particular allergen, given in gradually increasing doses, by developing immunity or tolerance to the allergen. There are two phases:
You may notice a decrease in symptoms during the build-up phase, but it may take as long as 12 months on the maintenance dose to notice an improvement. If allergy shots are successful, maintenance treatment is generally continued for three to five years.
Sublingual immunotherapy is used by physicians in many countries: it involves putting drops or a tablet of allergen extracts under the tongue to swallow the extract. It allows the body to become tolerant of the allergen by absorbing the allergen through the stomach lining. Today, sublingual immunotherapy can count on more than 60 controlled clinical trials, proving its efficacy and safety profile and leading to its recognition as a viable route by the international guidelines. The treatment is usually taken at home.
Common methods for taking the Allergen extracts:
Immunotherapy injections
Allergy injections start with a very low dose. A small needle is used which may be uncomfortable, but not very painful. The dose is gradually increased on a regular (usually weekly) basis, until an effective (maintenance) dose is reached. This usually takes three to six months. This dose may vary between patients, depending on the degree of sensitivity.
Once the maintenance dose is reached, injections are administered less often, usually monthly, although still on a regular basis. Immunotherapy injections should always be administered in a medical facility under medical supervision. You should stay at the medical facility for the time recommended by the allergy specialist (30-45 minutes) after the immunotherapy injection has been given.
Immunotherapy Injections versus Sublingual Immunotherapy
Immunotherapy has been given by injection for more than 100 years and many studies prove that it is effective. A number of studies published in the last 5 years have shown that very high dose sublingual immunotherapy (SLIT), where allergen extracts (drops or tablets) are retained under the tongue for a few minutes, then swallowed, can also be effective. SLIT has a longer history of use in Europe than in Australia and New Zealand, where it is used more commonly than injected immunotherapy.
The allergen extracts currently available for oral and injected therapy are very potent, and are NOT the extremely weak and ineffective extracts used by some medical practitioners ten or more years ago
It is important to inform your doctor about any reactions you may have experienced after your last injection and any new medications you are taking (such as eye drops, new heart/blood pressure tablets) or if you become pregnant.
Patients who are pregnant (or planning to become pregnant in the near future) are not routinely commenced on allergen immunotherapy until after they have given birth. If the patient is on maintenance doses of allergen immunotherapy and then becomes pregnant, the injections can be continued (unless the patient wishes to stop), but the supervising specialist should be contacted to discuss relevant safety issues.


| Opcode/Instruction | Op/En | 64/32-bit Mode | CPUID Feature Flag | Description |
| 0F 54 /r ANDPS xmm1, xmm2/m128 | RM | V/V | SSE | Bitwise logical AND of xmm2/m128 and xmm1. |
| VEX.NDS.128.0F.WIG 54 /r VANDPS xmm1,xmm2, xmm3/m128 | RVM | V/V | AVX | Return the bitwise logical AND of packed single-precision floating-point values in xmm2 and xmm3/mem. |
| VEX.NDS.256.0F.WIG 54 /r VANDPS ymm1, ymm2, ymm3/m256 | RVM | V/V | AVX | Return the bitwise logical AND of packed single-precision floating-point values in ymm2 and ymm3/mem. |
| Op/En | Operand 1 | Operand 2 | Operand 3 | Operand 4 |
| RM | ModRM:reg (r, w) | ModRM:r/m (r) | NA | NA |
| RVM | ModRM:reg (w) | VEX.vvvv (r) | ModRM:r/m (r) | NA |
Performs a bitwise logical AND of the four or eight packed single-precision floating-point values from the first source operand and the second source operand, and stores the result in the destination operand.
In 64-bit mode, using a REX prefix in the form of REX.R permits this instruction to access additional registers (XMM8-XMM15). 128-bit Legacy SSE version: The second source can be an XMM register or an 128-bit memory location. The destination is not distinct from the first source XMM register and the upper bits (VLMAX-1:128) of the corresponding YMM register destination are unmodified. VEX.128 encoded version: the first source operand is an XMM register or 128-bit memory location. The destination operand is an XMM register. The upper bits (VLMAX-1:128) of the corresponding YMM register destination are zeroed. VEX.256 encoded version: The first source operand is a YMM register. The second source operand can be a YMM register or a 256-bit memory location. The destination operand is a YMM register.
ANDPS (128-bit Legacy SSE version) DEST[31:0] ← DEST[31:0] BITWISE AND SRC[31:0] DEST[63:32] ← DEST[63:32] BITWISE AND SRC[63:32] DEST[95:64] ← DEST[95:64] BITWISE AND SRC[95:64] DEST[127:96] ← DEST[127:96] BITWISE AND SRC[127:96] DEST[VLMAX-1:128] (Unmodified) VANDPS (VEX.128 encoded version) DEST[31:0] ← SRC1[31:0] BITWISE AND SRC2[31:0] DEST[63:32] ← SRC1[63:32] BITWISE AND SRC2[63:32] DEST[95:64] ← SRC1[95:64] BITWISE AND SRC2[95:64] DEST[127:96] ← SRC1[127:96] BITWISE AND SRC2[127:96] DEST[VLMAX-1:128] ← 0 VANDPS (VEX.256 encoded version) DEST[31:0] ← SRC1[31:0] BITWISE AND SRC2[31:0] DEST[63:32] ← SRC1[63:32] BITWISE AND SRC2[63:32] DEST[95:64] ← SRC1[95:64] BITWISE AND SRC2[95:64] DEST[127:96] ← SRC1[127:96] BITWISE AND SRC2[127:96] DEST[159:128] ← SRC1[159:128] BITWISE AND SRC2[159:128] DEST[191:160]← SRC1[191:160] BITWISE AND SRC2[191:160] DEST[223:192] ← SRC1[223:192] BITWISE AND SRC2[223:192] DEST[255:224] ← SRC1[255:224] BITWISE AND SRC2[255:224].
| ANDPS: | __m128 _mm_and_ps(__m128 a, __m128 b) |
| VANDPS: | __m256 _mm256_and_ps (__m256 a, __m256 b) |
None.
See Exceptions Type 4.


Boya Ren is a sophomore in UCSD. She studies humna computer interaction and is passionate about food!


HOME
SERVICES
FRIENDS OF SARGASSO
CONTACT
HOME
SERVICES
FRIENDS OF SARGASSO
CONTACT
Our Partners
MARITIME
MATERIALS & LIGHTWEIGHT TECHNOLOGY
CLEANTECH
HEAVY INDUSTRIES & PRODUCTION
PACKAGING & ASSOCIATED VALUE CHAINS
IT & COMMUNICATION
INCUBATORS & ACCELERATORS
PUBLIC SAFETY
Blue Science Park Karlskrona
Point of contact:
Telephone:
Email:
E-LASS
Point of contact:
Telephone:
Email:
Innovatum
Point of contact:
Telephone:
Email:
Industriella utvecklingscentra
Point of contact:
Telephone:
Email:
Maritima klustret i Västsverige
Point of contact:
Telephone:
Email:
Media Evolution
Point of contact:
Telephone:
Email:
Mobile Heights
Point of contact:
Telephone:
Email:
Offshore Väst
Point of contact:
Telephone:
Email:
Packbridge
Point of contact:
Telephone:
Email:
Sustainable Business Hub
Point of contact:
Telephone:
Email:
Win Guard
Point of contact:
Telephone:
Email:
World Maritime University
Point of contact:
Telephone:
Email:
Materials Business Center
Point of contact:
Telephone:
Email:
Swedish Maritime Technology Forum
Point of contact:
Telephone:
Email:
Maritime
Point of contact:
Telephone:
Email:
Point of contact:
Telephone:
Email:
Point of contact:
Telephone:
Email:
Point of contact:
Telephone:
Email:
Point of contact:
Telephone:
Email:
Materials & Lightweight Technology
Point of contact:
Telephone:
Email:
Point of contact:
Telephone:
Email:
Cleantech
Sample Headline
Point of contact:
Telephone:
Email:
Heavy Industries & Production
Point of contact:
Telephone:
Email:
Packaging & Associated Value Chains
Point of contact:
Telephone:
Email:
IT & Communication
Point of contact:
Telephone:
Email:
Point of contact:
Telephone:
Email:
Incubators & Accelerators
Point of contact:
Telephone:
Email:
Public Safety
Point of contact:
Telephone:
Email:


--- subject: Ulster University Alumni and Supporters ---
Email<EMAIL_ADDRESS>Website: .ulster.ac.uk/global
View web version


2003 Meeting Schedule |
| MONTH | PWG MEETING | OTHER MEETINGS & HOLIDAYS |
| January | 20-24 : Maui, HI 20: XHTML-P / IFX, 21: Plenary, Character BOF, Device Mgt BOF, 22: UPnP (requires UPnP membership), 23: Semantic Model, 24: Print Services Interface |
1 : New Years Day |
| February | ||
| March | 31-4 : Washington, D.C. (Meeting was canceled due to travel restrictions. Workging group meetings were held via phone and web conferences) | 3-7 W3C |
| April | 17: Passover 20 : Easter 28 : Golden Week |
|
| May | 12 : Mother's Day 27 : Memorial Day |
|
| June | 16-20: Portland,
OR. (Schedule is tentative - check for updates) 16: Device Mgt / Character Repertorie 17: FSG (open to PWG members) 18: Plenary / IFX, Evening PWG/FSG Plenary, 19: Semantic Model, Evening UPDF, 20: Print Services Interface |
15 : Father's Day |
| July | 4 : Independence Day (US) | |
| August | Possible Interop events or PWG meeting if necessary | |
| September | 1 : Labor Day 27: Rosh Hashanah |
|
| October | 6-10 : New York, NY. 6: WBMM 7: PSI 8: Plenary / CR 9: IPP, JOBX, Semantic Model 10: Notification / Discovery BOF |
6 : Yom Kippur 31 : Halloween |
| November | 27 : Thanksgiving | |
| December | 2-5 :
Provo, UT 2: WBMM 3: Plenary / SM 4: IPP / PSI 5: Notification / Discovery |
20 : Hanukkah 25 : Christmas 31 : New Year's Eve |


Functions problem set
write a function that returns if a number is even
Does a factorial
Turns Kebab case to snake case


{% extends "global/Page.html" %} {% load otree static %} {% block title %} Instructions {% endblock %} {% block content %}
In this experiment you will face a number of problems that looks like the one below
Each circle can be turned on or off (turn green or red, respectively). You can affect whether one of the circles is turned on by spending activation points. The percentage in the circle represents the probability of the circle turning on based on the number of points you plan to invest. If the final circle is turned on, you receive a reward as indicated in the final circle (in this example, 200 points). If it is not turned on you will get 0 points. The circles are connected by arrows that represent causal relationships. This means, that there is a connection between whether the circle is turned on and the probability of whether the circle at the tip of the arrow is turned on.
For each problem you will make {{ num_rounds }} decisions in total. You are not provided with all the information necessary to make the optimal investment at the outset, but since you make the same decision many times you can figure out what a good level of investment is. After each decision you will se the results presented in the following way, where green means that variable was activated and red that it was not.
So in this example we see the invested points gave a 33% probabilty of turning on the circle. We also see that three circles ended up being turned on. The goal variable is turned on so the payoff was 200.
Once the experiment is over your bonus payment will be $1 per {{ points_per_dollar }} points. If you end up with a negative score, your bonus payment will be $0.
Before you can start the experiment you must pass a short quiz. You have {{Constants.num_rounds}} tries in total, if you fail them all you will be disqualified from the experiment.
Try {{player.round_number}}/{{Constants.num_rounds}} of the quiz.
{% if player.round_number > 1 %}At least one of your answers was incorrect, read the instructions and try again.
{% endif %} {% formfield player.q1 label="Consider the example above. If you invest fifty points and the final circle is turned on, how much do your total points increase?" %} {% formfield player.q2 label="With the same example, if you invest thirty points, and the final circle is turned off, by how many points do your total points decrease?" %} {% formfield player.q3 label="How many investment decisions will you make for each problem?" %} {% formfield player.q4 label="Will a decision you make in one period directly affect future periods in any way?" %} {% formfield player.q5 label="If you earn a total of 5000 points, what will be your bonus payment in $?" %}


This page showing the interactive feature visualization of a parallel CNN model for traffic prediction. Conv1 and Conv2 are the names of CNN layers. For more information, please refer to this paper: (Link Available after review).
The video above shows the optimization procedure of the Conv1 layer. We use the result from step 300 to create an interactive plot below. Please drag and scroll to see more details.
The video above shows the optimization procedure of the Conv2 layer. We use the result from step 300 to create an interactive plot below. Please drag and scroll to see more details.
Made by Bo, Feb 2020.


Doctor Dolittle (1998)
Director: Betty Thomas Cast: Eddie Murphy, Ossie Davis, Oliver Platt, Richard Schiff, Kristen Wilson, Jeffrey Tambor, Kyla Pratt Screenplay: Nat Mauldin, Larry Levin Producers: John Davis, David T. Friendly, Joseph Singer Runtime: 85 min. US Distribution: 20th Century Fox Rated PG-13: crude humor, language
By Nathaniel R. Atcheson<EMAIL_ADDRESS>I almost began this review writing something like, "Pigeons defecating on Oliver Platt's face is not a funny sight," but then I remembered that there were, in fact, people in the theater laughing as this statement becomes reality in the final moments of Doctor Dolittle. I don't want to sound condescending, because there are clearly people in the world who will find this to be a good family film (Roger Ebert, for instance, actually *liked* it). I felt kind of the same way I did as I watched Flubber, which is unbearable in many of the same ways.
Doctor Dolittle is not a funny film. It has entertaining moments, and I might have chuckled once or twice, but mostly I was just bored. It's under 90 minutes, which I found to be a blessing, even though it feels a little longer than Lawrence of Arabia (but without the excitement). It's a one-joke movie (talking animals!), in which the joke gets old almost as it's told -- it's not cute, or fun, and it substitutes trite sentimentality for Deep Themes and Messages. The only thing I felt as I walked out of the theater was the urge to vomit, and I'm not exaggerating.
Eddie Murphy, seemingly unmoved by the fact that his roles no longer require his comic talents as an actor, plays John Dolittle. It's established that he could talk to animals as a child, but a nasty preacher scared the talent out of him. Now, as the preview shouts, "the doctor is in!" (I don't know what that has to do with anything, but I though it would make a nice quote). His talent is back, and he finds that animals are going to him with their problems.
Some animals are easy to repair, like the owl with a stick in its wing. Then there are the harder ones, like the suicidal tiger (voice by Albert Brooks). It might be totally useless to bother with the logistical errors of the film, but, frankly, they irritated me. Now, when was the last time you saw a tiger attempt suicide? And by jumping off a building? Don't bother answering that, for I doubt many people have. The animals in this film don't act like animals -- they act like people trapped in the bodies of animals.
 What I didn't understand is why Dolittle was also the only person who could see the animal's lips moving.  Why can't anyone else see that? The film is so poorly conceived that even a minor problem like this is simply ignored, as if no one will care. I really hope someone else does.
 Paulie, which was another talking animal thingy, was a nice film, with a little wit and a lot more entertainment value (and I buy a talking parrot more than anything presented in Doctor Dolittle). This film, directed by Betty Thomas, is boring. The animals may have a few good lines, and some of the special effects are easy on the eyes. But, most obvious is the lack of energy out of Murphy, and the general lack of intelligence in the film.
And, of course, it resorts to defecation for laughs. Feces is never funny, and especially when it's splashed on the face of an actor as talented as Oliver Platt (who is shamelessly wasted here). Why do "family" films have to fall back on this kind of material? Had the talking animals bit been done more competently, then feces and flatulence would not have been necessary. Kids were laughing at the things I thought were amusing here, so I'm going to hold with the belief that feces is not necessary to entertain children. You can call me old-fashioned for thinking that kids deserve more than this.
* out of **** (2/10, D-)
Visit FILM PSYCHOSIS at http://www.pyramid.net/natesmovies
Nathaniel R. Atcheson
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


Total Startups
until Start Ireland day
Tweet
Please retweet and you could win the grand prize
#startupireland is a grassroots network for the startup ecosystem across Ireland.
Add your startup


Dear sir, This business will be of interest to you and your business and involves $30,000,000.00, which emanated from over invoiced contracts executed on behalf of my ministry of minerals and Energy, by foreign contractor. Though the actual contract value has been paid to the original contractor, GUILDER MINING (PTY) SA, now in-liquidation. We have however included our billforthe over invoiced amount of US$30m amongst the present bills that are scheduled for payment in the name of the company in-liquidation. We have also planned the execution of this deal perfectly both in the area of documentation and the changing of beneficiary from the company in liquidation that we had used to apply for payment, to the name, which you will forward to us. I shall supply you with all the relevant documents relating to this transaction as soon as we establish a working relationship. . This transaction is itself risk free and should be concluded within the next ten to fourteen working days if you follow my instructions carefully and we work closely as a team. . Where you are going to come in is this. We are going to effect a change of company name from GUILDER MINING (PTY) SA to your company so as to legalize your company as the bona fide beneficiary of the contract sum. In this regard we will do the incorporation of your company here and reflect your company as having taken over the assets of Guilder Mining (pty). Once we complete this process, your company will now be legally entitled to the US$30m, which the Department of Minerals and Energy owes GUILDER MINING (PTY) SA. We will thereafter use your company's name to apply for the payment of the US$30m into your company's designated account. This application we will process here in my Ministry and the approved Payment Recommendation sent to the Ministry of Finance, whi! ch will authorize the South African Reserve Bank to effect the transfer of the fund to your designated account. For assisting us with a receiving account and a company name, we propose 20% of the contract amount of US$30m for you and 10% for taxes, phone, fax and other incidental expenses that we may incur in the course of the eventual realization of the transaction. Meanwhile, please send me your confidential telephone/fax numbers, to enable us to speak first and know ourselves better. You can also contact me on my confidential sat phone-00+871763427855 fax-00+871763427856. I promise that you will not regret helping us, you have my personal word of honor. My colleagues and I strive for the commitment to operate only on high standards of integrity and honesty. We need the same honesty and commitment to this transaction from you. Thank you for your anticipated cooperation. My Sincere Regards. Dr Pascal Ugoti


Cages, Toys, and Perches
Budgies require toys, space, and a variety of perches to stay happy and healthy. I do most of my shopping online, and I really appreciate people's reviews of products when I'm looking for new items (even ones I am going to buy right from a store). Sometimes the most difficult thing about online shopping for budgies is not being able to tell if something is suitable for a parakeet-sized bird. So I’m going to post my own reviews of all l the things I have bought for Apollo to help you decide what and what not to buy for your budgies. To start, here's a video of Apollo playing the drum.
Cages
Before I got Apollo I bought a little convertible top cage that helped us through our taming process. But when his wings grew out I bought him a flight cage too because he needed it.
Essential Perches
Budgies need a variety of perches to maintain good foot health. These are the staples that I leave in Apollo's cage at all times.
Rope Boing and Kabobs
Boings are springy, bouncy, rope perches that are lots of fun for budgies, as long as they're used safely. Kabobs are also budgie favourites because they can be shredded and chewed, which helps maintain healthy beaks.


Today we’ll spend primarily working through assignment 1. A few notes before we get started:
As we said at the start of the course, our goal is to start off by tossing you in the deep end. We’ve got some pretty experienced folk, so we’ve had to toss pretty hard – hopefully everyone is kicking water now. Keep in mind that I am looking for somewhat different things depending on where we are all starting, which gives you and your partner a couple different possible strategies.
Are you and your partner on the same page? This is supposed to be a collaboration, not an internship. If you feel your partner is way ahead of you or way behind you, let me know. Everyone will learn more in this course with a roughly equal partner. Of course you still can (and are expected to) get help from more advanced pairs and help out other pairs, but this is not a spectator sport.
Yay, data science usually feels like that for all of us. So if this is all feeling really new: don’t worry about getting everything done and everything perfect. You have two possible stategies:
Breath first try and work through as much as you can of each of the exercises, skipping anything you get stuck on (rolling averages, fancy plots, better formatted code). This will get you the most practice reading in and maybe plotting different data; there will be time to master the data transformation dplyr
stuff later, as well as making pretty output reports on GitHub.
Depth first pick one or a few questions to get very polished. Pay attention to code style, ask about formatting tricks to make your output presentable, get solid on GitHub-RMarkdown thing.
Either way, ask questions and see what others are doing.
If for some reason this is all seems too easy, then the fun is just beginning. Aim for polished code in a polished markdown output document – is your code easy to read and consistent with the style guide? Can you perform all steps of the analysis using the packages and patterns stated in the tidyverse manifesto? Think of your assignment as a report and think about your audience of other researchers. How does your report compare to the NASA website presenting this information?
Your other task as an experienced data scientist is in bringing your colleagues along. Aim to teach with questions and not by typing answers.


A shared work space between two individuals to create programs. Consists of a driver and a navigator. Can be done in person or remotely and is popular within several companies.
It helps with generating ideas and aids in catching bugs in code. Helps bridge gaps in understanding so that people learn more quickly.
The driver is manipulating the code while the navigator is feeding in information.
Pairing with my partner worked out great. We worked together well and each took turns driving and navigating. We both contributed ideas and helped eachother out. I look forward to pair programming more. I felt like our technical skill levels were a bit different but we helped eachother and it went great.


Object
A pool is a container of a limited amount of threads to which you can add tasks to run.
This is usually more performant and less memory intensive than creating a new thread for every task.
Create the pool with minimum and maximum threads.
The pool will start with the minimum amount of threads created and will spawn new threads until the max is reached in case of need.
A default block can be passed, which will be used to {process} the passed data.
# File lib/thread/pool.rb, line 124 def initialize(min, max = nil, &block) @min = min @max = max || min @block = block @cond = ConditionVariable.new @mutex = Mutex.new @done = ConditionVariable.new @done_mutex = Mutex.new @todo = [] @workers = [] @timeouts = {} @spawned = 0 @waiting = 0 @shutdown = false @trim_requests = 0 @auto_trim = false @idle_trim = nil @mutex.synchronize { min.times { spawn_thread } } end
Enable auto trimming, unneeded threads will be deleted until the minimum is reached.
# File lib/thread/pool.rb, line 165 def auto_trim! @auto_trim = true self end
Check if auto trimming is enabled.
# File lib/thread/pool.rb, line 159 def auto_trim? @auto_trim end
Get the amount of tasks that still have to be run.
# File lib/thread/pool.rb, line 207 def backlog @mutex.synchronize { @todo.length } end
Are all tasks consumed?
# File lib/thread/pool.rb, line 214 def done? @mutex.synchronize { _done? } end
# File lib/thread/future.rb, line 174 def future(&block) Thread.future self, &block end
Check if there are idle workers.
# File lib/thread/pool.rb, line 246 def idle? @mutex.synchronize { _idle? } end
Enable idle trimming. Unneeded threads will be deleted after the given number of seconds of inactivity. The minimum number of threads is respeced.
# File lib/thread/pool.rb, line 185 def idle_trim!(timeout) @idle_trim = timeout self end
Check if idle trimming is enabled.
# File lib/thread/pool.rb, line 179 def idle_trim<EMAIL_ADDRESS>end
Disable auto trimming.
# File lib/thread/pool.rb, line 172 def no_auto_trim! @auto_trim = false self end
Turn of idle trimming.
# File lib/thread/pool.rb, line 192 def no_idle_trim! @idle_trim = nil self end
Add a task to the pool which will execute the block with the given argument.
If no block is passed the default block will be used if present, an ArgumentError will be raised otherwise.
# File lib/thread/pool.rb, line 257 def process(*args, &block) unless block || @block raise ArgumentError, 'you must pass a block' end task = Task.new(self, *args, &(block || @block)) @mutex.synchronize { raise 'unable to add work while shutting down' if shutdown? @todo << task if @waiting == 0 && @spawned < @max spawn_thread end @cond.signal } task end
Resize the pool with the passed arguments.

# File lib/thread/pool.rb, line 312 def shutdown @mutex.synchronize { @shutdown = :nicely @cond.broadcast } until @workers.empty? if worker = @workers.first worker.join end end if @timeout @shutdown = :now wake_up_timeout @timeout.join end end
Shut down the pool instantly without finishing to execute tasks.
# File lib/thread/pool.rb, line 300 def shutdown! @mutex.synchronize { @shutdown = :now @cond.broadcast } wake_up_timeout self end
Check if the pool has been shut down.
# File lib/thread/pool.rb, line 154 def shutdown? !!@shutdown end
Shutdown the pool after a given amount of time.
# File lib/thread/pool.rb, line 334 def shutdown_after(timeout) Thread.new { sleep timeout shutdown } end
Trim the unused threads, if forced threads will be trimmed even if there are tasks waiting.
# File lib/thread/pool.rb, line 283 def trim(force = false) @mutex.synchronize { if (force || @waiting > 0) && @spawned - @trim_requests > @min @trim_requests += 1 @cond.signal end } self end
Force #{trim}.
# File lib/thread/pool.rb, line 295 def trim! trim true end
Wait until all tasks are consumed. The caller will be blocked until then.
# File lib/thread/pool.rb, line 221 def wait(what = :idle) case what when :done until done? @done_mutex.synchronize { break if _done? @done.wait @done_mutex } end when :idle until idle? @done_mutex.synchronize { break if _idle? @done.wait @done_mutex } end end self end
Generated with the Darkfish Rdoc Generator 2.


Flushes the write buffers of the file.
file. flush()
It works like stdio‘s fflush(). This may be a no-op on some file-like objects. flush() does not necessarily write the file’s data to disk. Use flush() followed by os.fsync() to ensure this behavior.
None
#TODO
>>> fw = open(r'C:\test.txt', "w")
>>> fw.write('foobar')
>>> fr = open(r'C:\test.txt')
>>> fr.readlines() # even though we just wrote a line to the fr file it appears empty until close() method is called
[]
>>> fw.flush() # flushing forces the buffer content into the file without closing it
>>> fr.readlines()
['foobar']
#TODO


|
WireIt | |||||||
| PREV NEXT | FRAMES NO FRAMES |
This document is the API Specification for WireIt.
WireIt is a library that allows you to create "wired" applications.
It is strongly inspired from Yahoo! Pipes, but aims to widen the use of "wired" capabilities.
It is built on top of the Yahoo! User Interface library. (version 2.3.1)
The minimum: <script type="text/javascript" src="../lib/yui/yahoo-dom-event/yahoo-dom-event.js"></script> <script type="text/javascript" src="../js/WireIt.js"></script> <script type="text/javascript" src="../js/Wire.js"></script> <script type="text/javascript" src="../js/Terminal.js"></script> To use the dragdrop: <script type="text/javascript" src="../lib/yui/dragdrop/dragdrop-min.js"></script> <script type="text/javascript" src="../js/util/DD.js"></script> To use the animation: <script type="text/javascript" src="../lib/yui/animation/animation-min.js"></script> <script type="text/javascript" src="../js/util/Anim.js"></script>
| File Summary | |
| Anim.js | Provide a wrapper around YAHOO.util.Anim to animate a block containing terminals and redraw the associated wires |
| Container.js | This class represents the module and contains multiple terminals. |
| DD.js | Provide a wrapper around YAHOO.util.DD to drag/drop a block containing terminals and redraw the associated wires |
| DDResize.js | This class enable resizing on the containers |
| Layer.js | A layer encapsulate a bunch of containers and wires. |
| Terminal.js | Terminals represent the end points of the "wires" |
| Wire.js | Defines the Wire class that wraps a canvas tag to create wires. |
| WireIt.js | Set the WireIt namespace ; DOM and Canvas helpers |
|
WireIt | |||||||
| PREV NEXT | FRAMES NO FRAMES |


LEADER- phenylephrine hydrochloride and witch hazel cream
Cardinal Health
Disclaimer: Most OTC drugs are not reviewed and approved by FDA, however they may be marketed if they comply with applicable regulations and policies. FDA has not evaluated whether this product complies.
Active ingredients
Phenylephrine hydrochloride 0.25%
Witch hazel 50.0%
Vasoconstrictor
Astringent
Uses
- temporarily relieves irritation and burning
- helps relieve the local itching and discomfort associated with hemorrhoids
- temporarily shrinks hemorrhoidal tissue
- aids in protecting irritated anorectal areas
Warnings
For external use only
Ask a doctor before use if you have
- heart disease
- high blood pressure
- diabetes
- thyroid disease
- trouble urinating due to an enlarged prostate gland
Ask a doctor or pharmacist before use if you are presently taking a prescription drug for high blood pressure or depression
When using this product
- do not exceed the recommended daily dosage
- do not put this product into the rectum by using fingers or any mechanical device or applicator
Stop use and ask a doctor If
- bleeding occur
- condition gets worse or does not improve within 7 days
If pregnant or breast-feeding, ask a health professional before use.
Keep out of reach of children. If swallowed, get medical help or contact a Poison Control Center right away.
Directions
-
Adults: when practical, cleanse and gently dry the affected area by patting or blotting with an appropriate cleansing tissue or soft cloth before applying gel
- when first opening the tube, puncture foil seal with top end of cap
- apply externally to the affected area up to 4 times daily, especially at night, in the morning or after each bowel movement
-
Children under 12 years of age: ask a doctor
Other information
- store at20°-25°C (68°-77°F)
- for lot number and expiration date, see crimp of tube or see box
Inactive ingredients
aloe barbadensis leaf juice, disodium EDTA, hydroxyethylcellulose, methylparaben, polysorbate 80, propylene glycol, propylparaben, purified water, sodium citrate, tocopheryl acetate (Vitamin E)
Principal Display Panel - Carton Label
NDC 49781-091-01
LEADER®
Hemorrhoidal Cooling Gel
Relief from intense burning & itching
Relieves external discomfort
Enriched with Aloe
NET WT 0.9 OZ (26g)


- senior engineer and team lead at MD Systems
- Active member of Drupal community since 2009
- Lead of the D8 media initiative
- ex Examiner.com
Among top contributors
- our CTO (@berdir) is one of top 5 D8 contributors
- D8 expert
- D8 media expert - lots of media clients
- 20% of every project to the community
- http://www.md-systems.ch/en
- Services include: Full projects, site audits, bootstrap weeks, support/consulting, architecture planning, ...
What is in Drupal 8?
- CKEditor + Basic image upload
- Basic file listing
- Multi-upload
How to try all this great stuff?
What is happening in core?
- Move media entity in core (as "Media") [#2831274]
- Re-create current (images and files) functionality on top of Media entity [#2831936] and [#2831937]
- Add support for one "remote" video provider [#2831944]
- Implement media library using media entities [#2796001]
General plan issue [#2825215]
Want to help?
- Let your developers work on core issues
- Send them to sprints
- Host a sprint
- Fund other developers
- Fund sprint costs (travel, accomodation, ...)


Note: This demo is only for the purpose of showing how WASM ELPASSO User
works.
Author: Zhiyi Zhang<EMAIL_ADDRESS>Please copy paste the IdP's public key here to set up the user.
Decide the attributes to be certified by the credential and whether hide them or not.
You can at most set unknown number of attributes.
The attribute format: a list of "attr_value hide_from_idp?".
Sample: secret N plain1 Y plain2 Y
Click the button to generate the credential request and copy it to IdP's website.
Please copy paste the IdP's issued credential here to load the credential at user side.
Click the button to load and unblind the credential.
Please provide the following information to generate the sign on request to RP.
1. Decide the attributes to hide from the RP.
The attribute format: a list of "attr_value hide_from_rp?".
Sample: secret Y plain1 Y plain2 N
2. RP's service name.
Click the button to generate sign on request.


Solenoid (PM)
What is it?
A solenoid that is plugged into the pneumatics module. It controls
a pneumatic cylinder to create linear motion.
Properties
- Output Module (Solenoid)
- The CAN ID of the pneumatics module that this solenoid is plugged into.
- Output Channel (Solenoid)
- The channel on the pneumatics module that this solenoid is plugged
into.
- Module Type
- The type of pneumatics module that the
solenoid is plugged into. CTREPCM for the Cross the Road Electronics
Pneumatics Control Module and REVPH for the Rev Robotics Pneumatics Hub.
See Also


CrossFit Zone adalah gym kebugaran fungsional dengan fokus pada pelatihan non-konvensional. Kami memprioritaskan keamanan dalam latihan kami sambil menantang Anda untuk bergerak lebih baik dan berkembang. Pendekatan Crossfit Zone adalah keseimbangan antara mobilitas, kekuatan, kondisi, dan nutrisi di mana kualitas adalah yang terpenting.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque interdum quam odio, quis placerat ante luctus eu. Sed aliquet dolor id sapien rutrum, id vulputate quam iaculis.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.
With supporting text below as a natural lead-in to additional content.


Resources
Browse current list of known resource profiles
Resource Profiles
| {{ resource.displayname }} | Healthy | {{resource.organization}} |
{%extends "loginbase.html"%} {%block title%}Resources{%endblock%} {%block body%}
| {{ resource.displayname }} | Healthy | {{resource.organization}} |


Hello, I'm Ross.
I'm currently an engineer at Facebook, working on Oculus VR.
In my spare time, I like building things, some of which you can see on my GitHub and on the projects section of this site. I also enjoy hiking, weight-lifting, biking, gaming, and cooking.


Repost from: http://stackoverflow.com/questions/13784333/platform-runlater-and-task-javafx
Use Platform.runLater(…) for quick and simple operations and Task for complex and big operations.
Use case for Platform.runLater(…) Use case for Task: Task Example in Ensemble App Example: Why Can’t we use Platform.runLater(…) for long calculations (Taken from below reference).
Problem: Background thread which just counts from 0 to 1 million and update progress bar in UI.
final ProgressBar bar = new ProgressBar();
new Thread(new Runnable() {
@Override public void run() {
for (int i=1; i<=1000000; i++) {
final int counter = i;
Platform.runLater(new Runnable() {
@Override public void run() {
bar.setProgress(counter/1000000.0);
}
});
}
}).start();
This is a hideous hunk of code, a crime against nature (and programming in general). First, you’ll lose brain cells just looking at this double nesting of Runnables. Second, it is going to swamp the event queue with little Runnables — a million of them in fact. Clearly, we needed some API to make it easier to write background workers which then communicate back with the UI.
Task task = new Task<Void>() {
@Override public Void call() {
static final int max = 1000000;
for (int i = 1; i <= max; i++) {
updateProgress(i, max);
}
return null;
}
};
ProgressBar bar = new ProgressBar();
bar.progressProperty().bind(task.progressProperty());
new Thread(task).start();
it suffers from none of the flaws exhibited in the previous code
Reference : Worker Threading in JavaFX 2.0


Fill in the application form and become a part of our team. If you did not find a position matching what you are looking for, fill in the form anyway. We will try to find the best fit for you.


EasyInject
EasyInject is designed to be an easy to use, lightweight composition and dependency injection library.
Instead of injecting instances for specific types, you provide instances for keys, without losing any type information. This enables its Injector
s to be used as a composable, dynamic and typesafe data structure. It may be comparable with a Dictionary that may contain several types, without losing type safety.
Check out the generated docs at vknabel.github.io/EasyInject.
EasyInject supports Swift 3 and Swift 4 since version 1.2.0.
Values can only accessed by subscripts in Swift 4, if you are still using Swift 3, keep using Injector.resolving(for:)
.
Installation
EasyInject is a Swift only project and supports Swift Package Manager, Carthage and CocoaPods.
Swift Package Manager
import PackageDescription
let package = Package(
name: "YourPackage",
dependencies: [
.Package(url: "https://github.com/vknabel/EasyInject.git", majorVersion: 1)
]
)
Carthage
github "vknabel/EasyInject" ~> 1.2
CocoaPods
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
pod 'EasyInject', '~> 1.2'
Introduction
In order to inject your dependencies, you first need to prepare your key by implementing Hashable
.
import EasyInject
enum ServicesKeyType { } // will never be instantiated
typealias Services = GenericProvidableKey<Services>
Now we need to define our keys, by setting up Provider
s with String
s and our type hints.
extension Provider {
static var baseUrl: Provider<Services, String> {
return Provider<Services, String>(for: "baseUrl")
}
static var networkService: Provider<Services, NetworkService> {
// produces a key of `networkService(...) -> Network`.
return .derive()
}
static var dataManager: Provider<Services, DataManager> {
return .derive()
}
}
final class NetworkService {
let baseUrl: String
init<I: Injector where I.Key == Services>(injector: inout I) throws {
print("Start: NetworkService")
baseUrl = try injector[.baseUrl] // or resolving(from: .baseUrl) in Swift 3.x
print("Finish: NetworkService")
}
}
final class DataManager {
let networkService: NetworkService
init<I: Injector where I.Key == Services>(injector: inout I) throws {
print("Start: DataManager")
networkService = try injector[.networkService]
print("Finish: DataManager")
}
}
LazyInjector
There are some Injector
s to choose, like a StrictInjector
or LazyInjector
.
Let’s pick the lazy one first and provide some values for our keys.
var lazyInjector = LazyInjector<Services>() // Only Services keys will fit in here
lazyInjector.provide(for: .baseUrl, usingFactory: { _ in
print("Return: BasUrl")
return "https://my.base.url/"
})
lazyInjector.provide(for: .dataManager, usingFactory: DataManager.init)
lazyInjector.provide(for: .networkService, usingFactory: NetworkService.init)
Since we are using the LazyInjector
, no closure we passed has been executed yet.
They will only be executed when they get resolved.
// this will execute all factories we passed for our providers
do {
try lazyInjector.resolve(from: .dataManager)
} catch {
print("Error: \(error)")
}
Because we picked LazyInjector
, all dependencies will be resolved automatically, when needed. Therefore the produced output would be:
Start: DataManager
Start: NetworkService
Return: BasUrl
Finish: NetworkService
Finish: DataManager
So because of the laziness of out LazyInjector
, all dependencies will be resolved automatically.
Cyclic dependencies throw an error on being resolved to prevent endless recursions.
StrictInjector
The previous example would fail when using StrictInjector
, because we provided .dataManager
before providing .networkService
, but DataManager
requires a .networkService
.
var strictInjector = StrictInjector<Services>()
strictInjector.provide(for: .baseUrl, usingFactory: { _ in
print("Return: BaseUrl")
return "https://my.base.url/"
})
strictInjector.provide(for: .dataManager, usingFactory: DataManager.init) // <-- missing .networkService
strictInjector.provide(for: .networkService, usingFactory: NetworkService.init)
do {
try strictInjector.resolve(from: .dataManager)
} catch {
print("Error: \(error)")
}
The output would be:
Return: BaseUrl
Start: DataManager
Start: NetworkService
Finish: NetworkService
Error: keyNotProvided("networkService(...) -> NetworkService")
This behavior may be helpful when debugging your LazyInjector
in order to detect dependency cycles.
You may fix this error, just by flipping the lines with .networkService
and .dataManager
, and that would lead to the following output:
Return: BaseUrl
Start: NetworkService
Finish: NetworkService
Start: DataManager
Finish: DataManager
strictInjector = StrictInjector<Services>()
strictInjector.provide(for: .baseUrl, usingFactory: { _ in
print("Return: BaseUrl")
return "https://my.base.url/"
})
strictInjector.provide(for: .networkService, usingFactory: NetworkService.init)
strictInjector.provide(for: .dataManager, usingFactory: DataManager.init)
do {
try strictInjector.resolve(from: .dataManager)
} catch {
print("Error: \(error)")
}
GlobalInjector
A GobalInjector
wraps another Injector
in order to make it act like a class.
let globalInjector = GlobalInjector(injector: strictInjector)
let second = globalInjector
// `globalInjector` may be mutated as it is a class.
second.provide("https://vknabel.github.io/EasyInject", for: .baseUrl)
if let left = try? globalInjector.resolve(from: .baseUrl),
let right = try? globalInjector.resolve(from: .baseUrl),
left == right {
// both `right` and `left` contain `"https://vknabel.github.io/EasyInject"` for `.baseUrl` due to reference semantics
}
ComposedInjector
A ComposedInjector
consists of two other Injector
s.
The call .resolve(from:)
will target the .left
Injector
and on failure, the .right
one.
.provide(for:,usingFactory:)
defaults to .provideLeft(for:,usingFactory:)
which will provide the factory only to the .left
one.
Usually the left Injector
will be the local one, whereas the right one is a global one. This makes it possible to cascade ComposedInjector
s from your root controller down to your leaf controllers.
var composedInjector = ComposedInjector(left: StrictInjector(), right: globalInjector)
composedInjector.provideLeft("https://vknabel.github.io/EasyInject/Structs/ComposedInjector.html", for: .baseUrl)
do {
try composedInjector.resolveBoth(from: .baseUrl)
// returns `("https://vknabel.github.io/EasyInject/Structs/ComposedInjector.html", "https://vknabel.github.io/EasyInject")`
} catch {
print("Error: \(error)")
}
Author
Valentin Knabel<EMAIL_ADDRESS>License
EasyInject is available under the MIT license.


| News |
- 20150318: Memory infomation added to jobs and tasks pages
- 20150316: RW metric added to dashboard
- 20150205: Responce time of tasks display improved
- 20150205: Wildcard search of jobs on job parameters added (ATLASPANDA-133)
- 20150205: Dataset information added to JSON responce (ATLASPANDA-109)
- 20150205: Wildcard search on jobs added (ATLASPANDA-40)
- 20141229: Main page plots show all jobs by cloud and activity
- 20141219: curl dumps of job params. See job list page help.
- 20141216: Request ID shown for jobs, range search added
- 20141215: Sort by duration option for job lists
- 20141211: Error code links in error summary changed to job lists
- 20141211: RequestID, requestID range added to search
- 20141210: Use transformation json metadata for error info
- 20141209: https with auto-login if browser presents cert known to PanDA
- 20141209: User sessions to manage state and customizations
- 20141209: Dynamic, page dependent cache lifetimes
- 20141209: Support reqid_from, reqid_to for job list, error pages
- 20141208: Flow diagram on task pages if &flow=1 in URL
- 20141206: Flow diagram on errors, jobs pages if &flow=1 in URL
- 20141206: Add link to a task's error page on the task list
- 20141203: Add outputfiletype on job lists
- 20141124: rc_test error page added
- 20141123: WN pages reflect only the last 12hrs as advertised
- 20141123: Task dashboards cleaned up, speeded up
- 20141116: Task, job displays customized for event service
- 20141113: Dashboards show all (pre)active jobs, not just N hrs
- 20141113: Support URLS of form .../jobs/?pandaid=firstid,secondid,...
- 20141107: Task name search supports front and/or back wildcards
- 20141102: batchid search uses job list instead of a single-job search
- 20141013: Support date_from=2014-10-01&date_to=2014-10-03
- 20141013: Support earlierthan=Nhours, earlierthandays=Ndays on URL
- 20141013: Filter duplicate jobs arising from archive transfer overlap
- 20141013: Include zero-job sites and test jobs in dashboards
- 20141013: Logfile links routed to Jarka's new filebrowser
- 20141013: Creator job links on job pages now work for ages up to a year
- 20141013: Task list depth on user pages shortened to 7 days for speed.
- 20141010: Job pages provide links to creator job search for input files
- 20140923: Job pages directly link to object store based log tarballs
- 20140913: Link DEFT request page from task list and detail pages
- 20140912: On task page highlight input containers, hide datasets by default
- 20140911: Task name search supports wildcarding
- 20140911: Show wait time, duration for jobs not yet running, completed
- 20140818: Job attempt# off for user page, JEDI jobs. Not meaningful in JEDI.
- 20140818: Task attribute summary added to user page
- 20140817: Output container list added to task detail page
- 20140817: Support clarified. Use DAST list, as ever, for dist analysis support
- 20140817: curl retrieval of json task data. Search on curl in the help
- 20140817: Merge (and other non-retry) jobs supported as a relationship type
- 20140816: Cache lifetime 3min for all pages, documented in footer. Report issues
- 20140816: Restructured help with consolidated help page
- 20140815: Show prodsys1 tasknames in error summary
- 20140814: Task summaries (huge and slow) removed from non-task dashboards
- 20140814: Task state names in task list, detail pages link to state doc
- 20140814: Task list in user pages brought up to date, with input completion
- 20140814: Wildcarding implemented for taskname in task lists
- 20140813: Works on mobile. Still tuning to do. Report bad issues please.
- 20140813: Add task searches for campaign, project, stream, tag
- 20140813: Add project, stream and tag summary info to task lists
- 20140813: Auto redirect pre-JEDI task detail pages to old monitor
- 20140813: Show in, out datasets on user pages and job lists
- 20140813: Fill state colors in dashboard task, job summary tables
- 20140813: Filled color in the status cells for job and task pages
- 20140812: Campaign added to task list and detail pages
- 20140812: Task pages use new DEFT-friendly 'superstatus'. See task page help.
- 20140812: Stalled task search added
- 20140812: Improved job listings on user pages (matching job lists)
- 20140801: Job name links in job lists
- 20140801: Finished/failed job counts and %failed added to task error summary
- 20140801: Dashboards for task-based analysis, production job summaries
- 20140801: Finished/failed job counts and %failed added to site error summary
- 20140731: Task names in error summary (for JEDI; old tasks need DB fix)
- 20140730: Json output for job lists added. See job list page green doc.
- 20140730: Pilot counts (last 3 hours) added to regional dashboard
- 20140730: Defined, waiting states added to dashboards
- 20140730: Panglia plot popups for clouds and sites added to dashboards
- 20140730: Switch front-page plots to ones that take multicore into account
- 20140711: Add error interpretation from the ErrorCodes.py descriptions
- 20140710: JEDI action log added to task detail page
- 20140709: Site job listings and WN info pages changed to 12hr default
- 20140709: Computingsite wildcards in error summary. See error page help.
- 20140709: Direct navigation to clouds in Sites menu
- 20140708: %fail numbers on dashboard and task list link to error summary
- 20140708: Stalled jobs search added
- 20140708: Show jobs transferring >36hrs, by cloud, in prod dash
- 20140707: Task page sorting added
- 20140704: Links to new documentation on JEDI for analysis
- 20140703: Metadata added to job pages
- 20140702: Added contextual help framework
- 20140702: Improved file info for JEDI's more complex file processing
- 20140701: Added working group task summary to WG dashboard
- 20140701: Added inline dataset list, job parameters to task detail page
- 20140630: Show input file counts for tasks to indicate progress
- 20140630: Ticket specs retrieved from JEDI task table (not taskparams)
- 20140626: Task status labelled as JEDI task status in list and detail views
- 20140626: JIRA ticket links added to task list and detail pages
- 20140626: JEDI log information added to task list and detail pages
- 20140624: Priority ranges show how priorities are apportioned, allow drill-down
- 20140624: Jobset ranges added to job attribute summaries to de-clutter listings
- 20140623: Debug mode in job pages (—debugMode option; prod usage)
- 20140622: Show time to start, duration instead of start time, end time
- 20140621: JEDI dataset, file, file list pages added
- 20140620: JEDI work queue added under Sites menu
- 20140620: Event service job, task listings added
- 20140617: Expanded sorting support
- 20140617: Show multi-cloud production sites associated with clouds
- 20140616: PanDA logger added
- 20140611: Throttled state supported
- 20140610: Working group dashboard added, summarizing job status by WG
|


For example, consider a case where job xyz-test is set as the promotion criteria of job xyz. When xyz #100 is built, this will not be promoted right away as no xyz-test build has run yet. If you configured xyz-test as a downstream build of xyz, the successful completion of xyz #100 would trigger a xyz-test. When this completes successfully, xyz #100 will be promoted (even if other xyz builds happened since then.)


agrc/widgets/map/BaseMap
Defaults
Add overlay map service with loader shown when drawing.
Don't use default base map and custom extent.
Full Extent Button
Back Button
Loader
Loader on Aerials
Router to persist extent via URL
Router with base map selector
Router with initial scale and center passed


I spent this year writing my Ph.D., obtaining it, migrating several applications @Berger-Levrault, and… Playing with VSCode and Pharo
When I started the project of connecting VSCode with Pharo, I wanted language support and basic debugging functions. Then, I talked to friends, and I decided to implement the support of Notebook.
Ok… We did more than expected… So, what is the next step? Why not use the UI of Pharo for specific actions I need when developing an app from VSCode?
For Users
Install Pharo Language Plugin
The installation of the Pharo Language plugin is straightforward.
Once you have installed VSCode, go to the extension panel, search for Pharo, select Pharo Language Support
, and install the extension.
Configure the plugin
Three steps are required to set up the plugin.
- Install a Pharo Image with the Pharo LanguageServer project installed. You can find a pre-built image in my GitHub repository.
- Download a corresponding VM.
Since we are going to use GTK backend. The VM installation requires more steps in Windows. Please, refer to the GTK backend project to download a VM in window
- In VSCode settings, update the
path to image
andpath to vm
according to the downloaded files.
Analyse with Moosebook
Once everything is configured, it is possible to use VSCode to perform any analysis within a notebook.
To do so, first, create a new file in VSCode that ends with the .moosebook
extension.
I use
moosebook
as an extension because I am first a Moose developer, and I use this plugin to analyze software systems from VSCode.
A notebook appears in which you can add markdown and Pharo cells.
Write some Pharo code (for example, 1+1
) and execute it.
Pharo executes the code in the backend server, and the result is displayed in the result part of the notebook cell.
OK, it is nice, but I want a GTK backend…
Using the GTK backend to visualize the result is super easy, you have to select the code you want to execute, then right-click, and you can perform Show the result of selected lines
.
The result will be shown in a GTK window containing the Pharo Inspector.
From this window, you can explore the object, have a look at Roassal visualization, etc.
Several demo visualisations exist for Roassal.
You only have to remove the open
keyword at the end of each example.
For developers
I created the VSCode extension using the Language Server Protocol (LSP). It allows one to add support for its language across several tools such as VSCode, Vim, Eclipse, etc.
I wanted to add other nice features to improve the external tools with super cool Pharo features such as the Inspector. But… How to benefit from most of the greatest Pharo features without the UI already existing in Pharo. I mean… I do not want to redevelop an inspector in VSCode and other IDEs, but I still want to see if it is possible to offer it to my plugin.
So, instead of redeveloping the UI, I decided to bring the Pharo UI as an extension of the developers’ IDE. Since embedding the Pharo Image UI inside the editor looks bad to me, I decided to use the Spec-Gtk backend project.
This project allows one to run Spec UI using the GTK binding. To use it, I needed to load the project when loading the Pharo Language Server (PLS) project. So I added GTK binding project in the PLS baseline.
Then, I added to the default LSP a new command that takes as a parameter a string (the selected lines of code), executes it, and inspects it using the GTK backend.
Thus, when a user performs Show the result of selected lines
, the PLS plugin sends a specific command to the pharo language server backend, that in turn executes the code and opens the GTK backend.


Chicago is often rated as top 5 dangerous cities in the US for its crime rates and violence. We hear people from out of states saying you can hear gunshots everyday, it is not safe to walk outside at night, etc. However, people who've been to Chicago know that this is not true...at least for some parts. To make sure travelers and visitors can feel safe and enjoy their trips, we are planning to analyze crime rates in Chicago and visualize them with map based on user's input routes. Our web page will allow users to report personally witnessed crimes as well. We used dataset from This Kaggle page, which is extracted from the Chicago Police Department's CLEAR (Citizen Law Enforcement Analysis and Reporting) system.
Grayscale is open source and MIT licensed. This means you can use it for any project - even commercial projects! Download it, customize it, and publish your website!
An example of where you can put an image of a project, or anything else, along with a description.
Another example of a project with its respective description. These sections work well responsively as well, try this theme on a small screen!


This canvas is used as the visual output of the CHIP-8 emulator.
Select Rom: 15PUZZLE BLINKY BLITZ BRIX CONNECT4 GUESS HIDDEN INVADERS KALEID MAZE MERLIN MISSILE PONG PONG2 PUZZLE SYZYGY TANK TETRIS TICTAC UFO VBRIX VERS WIPEOFF Start Pause
Keys:
Touch keyboard:


Unsupervised pretraining
In the early development of neural networks, the initialization of parameters was performed by sampling a uniform distribution bounded to a predetermined interval. In this process, the weights and biases produced solutions that would generally lie far from an optimum set of parameters, requiring many training iterations to readjust. Shallow networks did not suffer too much from this due to the smaller number of parameters, hence presenting an easier system to optimize. However, as the depth of networks increased, so did the difficulty to train such models using this initialization procedure.
Glorot and Bengio (2010) promoted a study to understand why random initialization performed so poorly in deep networks. In this investigation, the authors considered one common initialization heuristic, introduced by LeCun et al. (1998), that defines the biases at 0 and the weights via sampling according to the following uniform distribution:
$$W_{ij}\sim U\left[-\frac{1}{\sqrt{n}},\frac{1}{\sqrt{n}}\right]$$
where $n$ is the number of inputs to the unit. The authors then verified that in deep configurations of 4 to 5 layers, activation values on the last layers got stuck in plateaus situated at the extremes of the activation function, a case otherwise known as saturation.
Saturation regions on the sigmoid function. In the case observed by Glorot and Bengio (2010), the saturation occurred in the 5th and last layer of the network, with activation values converging to zero.
One hypothesis that explains saturation on sigmoid-equipped deep networks is that the random initialization does not provide useful information to the last layer of the network, that starts to suppress the previous contributions and rely more on its biases, which, in turn, are trained faster than its weights.
Mean (lines) and standard deviation (vertical bars) of sigmoid activation values across layers in a neural network using random initialization. The saturation is detectable in the last layer, where the activation values reach virtually zero. Source: Glorot and Bengio (2010)
Gradually but rapidly, the error gradient tends to push the activations towards zero in an attempt to suppress the influence of the previous layers. Eventually, the saturation may be overcome but the overall result would be of poor generalization.
Unsupervised pre-training
Layer saturation was one of the biggest technical hurdles that limited the progress of deep learning in the dawn of the millennium. However, in 2006, inspired by a well-established procedure, Hinton et al. (2006) developed a novel approach to initialize the parameters of a Deep Belief Network — a class of neural networks — that overcame the saturation issue and surpassed state of the art performance in deep architectures. These results not only re-sparked but drastically expanded researchers’ interest in this field.
A Deep Belief Network (DBN) can be seen as a stack of smaller unsupervised learning algorithms named Restricted Boltzmann Machines. This configuration can then be bundled with a classical multi-layer perceptron for supervised learning tasks
This initialization procedure encompassed an unprecedented process: an unsupervised greedy layer-wise pre-training step1. Prior to the conventional supervised training, each layer is trained with its anterior neighboring layer identically to a Restricted Boltzmann Machine, using an unsupervised learning algorithm named Contrastive Divergence. This process starts with the input and first layer, and progressively advances one layer at a time until it sweeps all layers.
A Boltzmann Machine is an unsupervised generative algorithm that learns the data representation by associating the patterns identified in the inputs to probabilistic configurations within its parameters. A Restricted Boltzmann Machine is a variation of such a model that reproduces a similar behavior but with significantly fewer connections.
1 Despite the imprecision, unsupervised pre-training is here used interchangeably
A Boltzmann Machine (left) and a Restricted Boltzmann Machine (right)
Many other unsupervised pre-training algorithms were developed concomitantly or immediately after, such as autoencoders (Bengio et al. (2007)), denoising autoencoders (Vincent et al. (2008)), contractive autoencoders (Rifai et al. (2011)), among others.
Comparison of performance between networks running without pre-training (left) and with pre-training (right)
Source: Erhan et al. (2010, pg. 636)
Why does this unsupervised learning methods help training deep architectures? Much of the explanation remains uncertain. Nonetheless, Erhan et al. (2010) provide some clarifications through considerable experimentation. The claims of the authors reside on two possible but not mutually exclusive reasons: optimization and regularization.
Deep neural networks are composed of many parameters whose values are used to compute an approximation of a function. Due to its substantial nonlinear nature, this approximation yields a non-convex function that poses a challenge on searching the best combination of weights and biases.2
A convex (left) and non-convex (right) function. Note that, contrarily to the convex function, the non-convex function possesses multiple local optima. Source: [Zadeh (2016)](#References)
2 Many discussions today in academia evolve around the particular shape of loss landscape in deep neural networks, since many of the local minima appear to have equally good qualities, suggesting that the critical solutions reached during training are actually saddle points. This discussion will be reserved to further studies.
Gradient-based methods employed in training eventually converge to their pre-selected basin of attraction, a region of the function space, such that any point in it eventually is iterated into the attractor (roughly speaking, a valley in the loss function). Unsupervised pre-training may work towards optimization by favoring a basin of attraction that might yield a lower training error. Thus, since the gradients are very prompt to abrupt changes, backpropagation is only used at a local search level, from an already favorable starting point (Hinton (2012, lecture 14b)).
As for regularization, one may commonly associate it with explicit techniques, such as the L1 or L2 norm:
$$C=-\frac{1}{n}\sum_{j}\left[y_j\ln a_j^{L}+\left(1-y_j\right)\ln\left(1-a_j^{L}\right)\right]+\frac{\lambda}{2n}\sum_iw_i{{}^2}$$
By adding the L2 regularization factor in the cross-entropy cost function, presented in the equation above, one can penalize overly complex models, that would result in poor generalization, i.e. high testing error. However, the regularization employed by pre-training is implicit. In attempt to model how such technique would work explicitly, Erhan et al. (2009) defines a regularization term such as:
$$regularizer=-log\thinspace P\left(\theta\right)$$
The function $P\left(\theta\right)$ describes the probability that the weights of the neural network are initialized as $\theta$. So, if a configuration shows to be highly improbable, the regularizer term will hurt the cost function strongly. Furthermore, if the probability of landing such set of parameters is high, the regularizer will then reward the cost function. This probability is governed by the initialization methods employed. Considering two instances with and without pre-training, we obtain:
$$P_{{\text{pre-training}}}(\theta) = \sum_k\frac{1_{\theta \in R_k}\pi_k}{v_k}$$
and
$$P_{{\text{no pre-training}}}(\theta) = \sum_k\frac{1_{\theta \in R_k}r_k}{v_k}$$
where $R_k$ is the basin of attraction that contains $\theta$, and $1_{\theta \in R_k}$ is the identifier function – unitary for all $\theta$ in $R_k$, otherwise null. Additionally, $\pi_k$ and $r_k$ are the probabilities of landing in the basin of attraction $R_k$, which has a volume $v_k$. Since the basins of attraction are disjunct sets, the probability density function of the set of parameters located in $R_k$ is uniform, calculated by taking the probability of landing in the k-th basin ($\pi_k$ or $r_k$) and dividing by its volume.
Pre-training the parameters of the network conditions the network initialization to land on regions of better generalization. This is hypothetically achieved by increasing the $\pi_k$’s where the network parameters represent meaningful variations of the input, contributing to predict the output. For this reason, pre-training also reduces the variance upon parameter initialization.
2-D visualization of parameters' trajectory of 100 neural networks with and without the unsupervised pre-training step. The color gradient from dark-blue to cyan symbolizes the progression of iterations.
Source: Erhan et al. (2010, pg. 541)
The visualization of the parameters’ trajectory may demonstrate the effects of optimization and regularization. As mentioned through the former, it may select a basin of attraction with lower training errors. Conversely, regularization may bound the parameter interval to a range that yields good generalization. Also, it is crucial to notice that both training and testing errors collected in the experiments of Erhan et al. (2010) support these hypotheses, but do favor the latter.
Furthermore, once established within the solution space, the parameters do not drastically change during the gradient-based adjustment process. This process is also denominated fine-tuning, as it only modifies the features slightly to get the category boundaries, rather than discovering new relationships (Hinton (2012, lecture 14b)).
Visualization of filters of a Deep Belief Network used to recognize digits form the MNIST data-set after the different training processes; from left to right: units from the first, second and third layers, respectively.
Source:Erhan et al. (2010, pg. 638-639)
But how can one conceptually understand the effects of unsupervised learning? Apart from the regularization and optimization hypothesis, the layer-wise pre-training resembles the underlying distribution of the input. Ideally, this representation, by combining the different features and mapping their inner relationships, can unveil, and more importantly, disentangle causal elements that influence the output. If those inputs can be transformed into uncorrelated features, it is possible to solve for a particular parameter disregarding its influence over the others.
As mentioned in Goodfellow et al. (2016, pg. 541), this hypothesis justify approaches in which one first seeks a good representation for $p(x)$ before training with the output. If the output is closely related to factors captured by the input, an initialization that captures the distribution of x is useful for predicting the desired output distribution $p\left(y|x\right)$.
Furthermore, unsupervised pretraining can be related with the recent work of Schwartz-Ziv and Tishby (2017) on studying neural networks from an information theory perspective. Essentially, the authors claim that the learning process of a neural network model is based on the maximizing the mutual information between the inputs and the outputs. Mutual information can be defined as:
$$I(X,Y) = H(X)-H(X|Y)$$
where $H$ is the entropy of the variable $X$:
$$H(X) = \mathbb{E}[-\log\thinspace(P(X)]$$
Entropy essentially measures the amount of information, i.e. the degree of uncertainty one has over a random variable. Moreover, when provided another random variable Y, we can measure the conditional entropy of X given Y:
$$H(Y|X)=-\sum _{x\in {\mathcal {X}},y\in {\mathcal {Y}}}p(x,y)\log {\frac {p(x,y)}{p(x)}} $$
Thus, mutual information is a statistical measurement between two random variables that indicate how much knowing one of these variables reduces uncertainty about the other. This, in turn, may have a connection with training neural networks as one begins the training stage knowing to little about the input and output, hence, having low mutual information stored in the neural network layers.
Mutual information measurements on 100-layer neural networks. Layer ordering ranges from green (initial layers) to orange (final layers). Source:Schwartz-Ziv and Tishby (2017)
However, as the training phase starts, the layers slowing move towards higher mutual information over $X$ and then towards $Y$. What happens in principle is that in the beginning, the network layers learn different representations over the input space, which in turn carry a lot of information over the input, but also some information about the output. As the training phase continues, the network layers, particularly the deeper ones, then discard some of the irrelevant information of $X$ which is not predictive of $Y$.
Snapshot of mutual information measurements along layers in different trainig epohcs. On the left, the neural network is at epoch zero, on the center at epoch 400, and the on right at epoch 9000. Source:Schwartz-Ziv and Tishby (2017)
The pretraining procedure can be related to the theory, particularly in the first part. By using an unsupervised learning algorithm, we may find a combination of parameters for each layer along with the network that shares higher mutual information with the input variable $X$ and consequently some with the output variable $Y$. As the gradient-based learning process continues, some of this information gets refined, as previously mentioned.
However, despite the aforementioned advantages, unsupervised pre-training presents noteworthy drawbacks, such as establishing two separate learning stages (unsupervised and supervised). As a consequence, there is a long delay between adjusting hyperparameters on the first stage utilizing feedback from the second. Additionally, although pre-training being considered a valuable regularizer, its strength adjustment is troublesome, requiring a somewhat unclear modification of far too many hyperparameters — contrasting with explicit regularization techniques that can be adjusted by a single one.
For the reasons mentioned above, unsupervised pre-training is not so popularly used today, as other techniques discovered yielded the same benefits but much more efficiently. These may be explained in a follow-up post, where we delve into initialization methods that not only tackle saturation but also a different obstacle: vanishing gradients.
References
- Bengio, Y. (2009). Learning Deep Architectures for AI. Foundations and Trends in Machine Learning. 1-127.
- Bengio, Y., Lamblin, P., Popovici, D., and Larochelle, H. (2007). Greedy Layer-Wise Training of Deep Networks. In Advances in Neural Information Processing Systems 19, 153-160.
- Erhan, D., Bengio, Y., Courville, A., Manzagol, P.A., Vincent, P., and Bengio, S. (2010). Why Does Unsupervised Pre-training Help Deep Learning? Journal of Machine Learning Research, 11-36.
- Erhan, D., Manzagol, P.A., Bengio, Y., Bengio, S., and Vincent, P. (2009). The Difficulty of Training Deep Architectures and the Effect of Unsupervised Pre-Training. Artificial Intelligence and Statistics, 153-160.
- Glorot, X. and Bengio, Y. (2010). Understanding the diffculty of training deep feedforward neural networks. Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics , pages 249-256.
- Goodfellow, I., Bengio, Y., and Courville, A. (2016). Deep Learning. MIT Press.
- Hinton, G. (2012). Neural Networks for Machine Learning. Coursera Online Course.
- Hinton, G. E., Osindero, S., and Teh, Y.-W. (2006). A Fast Learning Algorithm for Deep Belief Nets. Neural Computation , 1527-1554.
- LeCun, Y. A., Bottou, L., Orr, G. B., and Müller, K.-R. (1998). Efficient BackProp. Neural Networks: Tricks of the Trade, 9-48.
- Rifai, S., Vincent, P., Muller, X., Glorot, X., and Bengio, Y. (2011). Contractive Auto-encoders: Explicit Invariance During Feature Extraction. Proceedings of the 28th International Conference on Machine Learning, 833-840.
- Vincent, P., Larochelle, H., Bengio, Y., and Manzagol, P.-A. (2008). Extracting and Composing Robust Features with Denoising Autoencoders. Proceedings of the 25th International Conference, 1096-1103.
- Zadeh, R. (2016). The hard thing about deep learning. O'Reilly Media.
- Schwartz-Ziv, R. and Tishby, N. (2017). Opening the black box of Deep Neural Networks via Information. Featured on: Why & When Deep Learning Works: Looking Inside Deep Learning. arXiv:1703.00810v3


Musa Juma Mumbo (December 6, 1968[1] – March 15, 2011) was a rumba and Benga musician from Kenya. He was born to the second wife of his father, a policeman, and into a family of 18 children. He grew up in Homabay where he attended primary and secondary schools.He began singing and playing instruments at a young age. His first instruments were guitars and drums made from tins and strings. He was the bandleader, guitarist and composer for Limpopo International. Most of his music was sung in Dholuo language. Some of his songs are a fusion of the Luo and Congolese musical styles. He also sang in Kiswahili and English.read more
Les Wanyika was a prominent band with Tanzanian and Kenyan members and was based in Kenya. It was formed in 1978 when guitarist Omar Shabani, bassist Tom Malanga and two other members left Simba Wanyika. They were joined by John Ngereza and Issa Juma. Les Wanyika made many popular recordings, but are best remembered for their 1979 classic Sina Makosa and Paulina. Vocalist Issa Juma left the band soon afterwards to concentrate on other musical projects. The group continued until Omar Shabani's death in 1998. John Ngereza died two years later.read more
Jean de Dieu Makiese (28 May 1952 – 11 August 2007), popularly known as Madilu System, was a Congolese rumba singer and songwriter, born in what was then Léopoldville, Belgian Congo. He was once a member of the seminal band TPOK Jazz which dominated the Congolese scene from 1960s through 1980s.read more
Maroon Commandos is a musical group from Kenya. It is a military band belonging to 7 Kenya Rifles (Kenya Army Infantry) of the Kenya Army. They are based at the Langata Barracks in Langata, Nairobi. The group performs benga, rumba and other styles of music. They perform both original and cover versions. The band plays often at state functions.read more


CombineLatest operator
When any observable emits a value, emit the latest value from each.
click to start
Code