K Nearest Neighbor Classifier
K Nearest Neighbor (KNN) Classification is one of the simplest forms of classification in the machine learning toolbox. Training data is stored on the model and all computation is deferred until the time of prediction. When a new observation is provided it calculates the distance between the new observation and all training data in an n-dimensional space (where n is the number of variables). The predicted class is the most common class among the k closest training records.
Below is a simple example of using KNN Classification in Lurn.
Suppose we have a dataset containing the income, years of college eduction and job title for a set of people. We could use this as training data to predict people’s job title based on their income and years of eduction.
people = [
# years of education annual income job title
[ 4, 50000, 'engineer'],
[ 6, 60000, 'scientist'],
[ 2, 40000, 'engineer'],
[ 8, 90000, 'scientist'],
[ 4, 70000, 'librarian'],
]
# eduction and income
predictors = people.map { |person| person[0..1] }
# extract annual income
target_var = people.map { |person| person[2]}
The model can be trained by passing the predictors and target values to an initialized instance of the KNNClassifier model.
# initialize the model with a k of 2
model = Lurn::Neighbors::KNNClassifier.new(2)
model.fit(predictors, target_var)
The model can now be used to predict the income of a person given his/her age and years of education.
# predict the job title of person with 4 years of eduction who make $45,000
model.predict([4, 45000]) # => engineer


angle_bracket_syntax
- angle bracket syntax test
A WORD in angle brackets is converted to WORD,
except when <WORD> is
part of a preformatted
code block,
or when <WORD>
is enclosed in backticks.
or when WORD has a
You can escape <angle> <brackets> with backslashes, since we're using GitHub Flavored Markdown.
Example:
pxzgrep
[-p
<n>] [-V
] [<xzgrep options>] <pattern> <file1> <file2> [<more files>]
(Though really you should just put that in a fenced code block.)


SamMobile is looking for writers based in South Korea
by Adnan F.SamMobile is looking to hire a writer for its news division. Those who have a knack for writing and happen to be fans/users of Samsung devices are encouraged to apply. This is a great opportunity for you to contribute content to the internet’s largest and most reliable source of Samsung news.
We’re only looking for candidates based in South Korea at this time. So please only apply if you’re based there. The news writer position is a paid one with competitive compensation. Candidates will be required to demonstrate a good command of the English language and enough availability to contribute 1-3 articles on a daily basis. Prior experience writing for a tech website is not necessary but will be a plus point.
Interested? Send an email introducing yourself to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>with News Writer as the subject. We look forward to hearing from you. 감사합니다!


%s
Your data have been received, processed and stored in the database. If you want to see some results, please click this button.


|
| Local Properties | ||
| Managed Object Types | Data Object Types | All Properties | All Methods |
Properties
| Name | Type | Description |
|---|---|---|
| actualSize | xsd:long |
Actual size of LUN used, unit is byte.
|
| objectInformation* | VsanObjectInformation |
Object information for vSAN Object containing this LUN.
|
| targetAlias | xsd:string |
Target alias for the target which this LUN belongs to.
|
| uuid | xsd:string |
UUID of vSAN object which is used to provide storage for this LUN.
|
| Properties inherited from VsanIscsiLUNCommonInfo | ||
| alias, lunId, lunSize, status | ||
| Properties inherited from DynamicData | ||
| None |
| Top of page | Local Properties | ||
| Managed Object Types | Data Object Types | All Properties | All Methods |


Just twist your hip and do the dip (How many people ready to rock the house?) Come on shake and bake do whatever it takes (How many people ready to rock the house?) Graviational pull I have you making a fool Out of yourself on the dance floor Doing back spins running man and more Party down with Vigga and Candor Coming to the jam Or look like a landlubber And do the aqua boogie Win lots of goodies maybe Pop a Gucci wallet turntables is talking to me It's awfully groovy Seeing all the treasure and the booty And when the MC rhyme and the DJ spin I want y'all to just get down Now when the MC rhymin' and the DJ cuttin' I want y'all to just get down And when the MC rhyme and the DJ spin I want y'all to just get down Now when the MC rhymin' and the DJ cuttin' I want y'all to JUST GET DOWN Tap your toes and clap your hands (How many people ready to rock the house?)  Just twist your hip and do the dip (How many people ready to rock the house?) Come on shake and bake do whatever it takes (How many people ready to rock the house?) I wanna get down lower than Atlantis Going toe to toe with an enchantress Get funky we've been funkadelic wearin' Pampers While you eggheads is on the wall preparin' answers Sharing transcripts while we over here Dipping and dancin' Rhythm romancin' Wallflowers Giving no action no All hours we chillin' and max the flow\ Relaxing Opposites attracting I'ma toss my hat in Floss when the track spin Like I'm on a crack bend Jigging and wiggling Freakin' booties speakin' to the cuties so belligerent No religion just bump the feed on You'll feel reborn Negativity we just dead it like decoy Better lift your feet and just measure the beat on The pulse when it respawns Tap your toes and clap your hands (How many people ready to rock the house?)  Just twist your hip and do the dip (How many people ready to rock the house?) Come on shake and bake do whatever it takes (How many people ready to rock the house?) |


It is a measurement of how much the price of the asset has changed on average during the certain period of time. In common, volatility is said to be the standard deviation of the return of assets price.
Next we discuss how to estimate the historical volatility of the option empirically.
\[r_i=ln(\frac{S_i}{S_{i-1}})\quad for\ i=0,1,2,3,...,n\]Where (n+1) is the number of observations, \(S_i\) is the stock price at end of it time interval
The standard deviation of the \(r_i\) is given by
\[std=\sqrt{\frac{1}{n-1}\sum_{i=1}^n(r_i-\overline{r})^2}\]where \(\overline{r}\) is the mean of \(r_i\)
If we assume there are n trading days per year. Then the estimate of historical volatility per annum is
\[std\times\sqrt{n}\]import pandas as pd from numpy import sqrt,mean,log,diff import quandl quandl.ApiConfig.api_key = 'NxTUTAQswbKs5ybBbwfK' goog_table = quandl.get('WIKI/GOOG') # use the daily data of Google(NASDAQ: GOOG) from 01/2016 to 08/2016 close = goog_table['2016-01':'2016-08']['Adj. Close'] r = diff(log(close)) r_mean = mean(r) diff_square = [(r[i]-r_mean)**2 for i in range(0,len(r))] std = sqrt(sum(diff_square)*(1.0/(len(r)-1))) vol = std*sqrt(252)
An asset has a historical volatility based on its past performance as described above, investors can gain insight on the fluctuations of the underlying price during the past period of time. But it does not tell us anything about the volatility in the market now and in the future. So here we introduce the implied volatility.


Ocala events
-
va geo-thermal heating real estate
Eiki LC-XNB3W(LCXNB3W) Projector Lamps and Projector Bulbs ...
Lamp Specifications. Projector Model Number: LC-XNB3W Lamp Part Number:<PHONE_NUMBER>. Wattage: 200W Lamp Life Hours:2000 Hours Type:Lamp in .
http://www.myprojectorlamps.com/projector-lamps/Eiki/LC-XNB3W.htmlSanyo PLC-SU30(PLCSU30) Projector Lamps and Projector Bulbs ...
Lamp Specifications. Projector Model Number: PLC-SU30 Lamp Part Number:<PHONE_NUMBER>. Wattage: 200W Lamp Life Hours:2000 Hours Type:Lamp in .
http://www.myprojectorlamps.com/projector-lamps/Sanyo/PLC-SU30.html
whuppin stick fishing rods Upcoming events in Ocala
- Sponsored event
urban dictionary ls model
Apr 6 - Dance It Studio
similac formula causing constipation silence of the lambs sociological perspectives
- Sponsored event
early man language devleopment brain literacy
Apr 6 - Downtown Disney
kona luau combination activitis stoney creek king street family doctor
fortuny glass chandelier lighting Hottest Tickets
-
Apr 11archives washington historical society
Amway Center -
Apr 28danny carlos kiss me mp3
Amway Center -
Jun 25r v doldur 2000
Bob Carr Performing Arts Center -
Mar 30research on autism increase
Amway Center -
Aug 27queen ann drop leaf cocktail table
Amway Center -
Jun 21atlantic painting in new hampshire
Amway Center -
Sep 13seboygan wi news paper
Francis Field -
Mar 17computer doesnt find external hard drive
St Augustine Amphitheatre -
Oct 8like all get out
Amway Center -
May 43 blade rc props
Bob Carr Performing Arts Center
Ocala's best venues
-
Sanyo<PHONE_NUMBER> Replacement Projector Lamp w/ Housing
This Sanyo<PHONE_NUMBER> Replacement Projector Lamp w/ Housing works for these projectors: Sanyo PLC-XU38, Sanyo PLC-XU37, Sanyo PLC-XU35, Sanyo .
http://www.shopjimmy.com/sanyo-610-293-2751-replacement-projector-lamp-w-housing.htm -
Eiki LC-XNB4M(LCXNB4M) Projector Lamps and Projector Bulbs ...
Lamp Specifications. Projector Model Number: LC-XNB4M Lamp Part Number:<PHONE_NUMBER>. Wattage: 200W Lamp Life Hours:2000 Hours Type:Lamp in .
http://www.myprojectorlamps.com/projector-lamps/Eiki/LC-XNB4M.html -
Canon projector lamp.
Canon,Projector Lamp,Canon Lamp,Canon Projector Lamp. . Replacement Projector Lamp . Part No. L600-0067, POA-LMP35,<PHONE_NUMBER>, LV-LP11.
http://www.laptopsforless.com/projector-lamps/canon.htmldecorating with bold green
98 people's favorite
-
Eiki Projector Replacement Lamps / Bulbs
Eiki Replacement Projector Lamp -<PHONE_NUMBER> · Eiki Replacement Projector Lamp -<PHONE_NUMBER> · Eiki Replacement Projector Lamp -<PHONE_NUMBER> · Eiki .
http://www.focusedtechnology.com/eiki-projector-lamps.html -
Sanyo PLC-SU30 - Projectors
"Is fixing this projector as simple as replacing the bulb..." READ FULL ARTICLE ». www.avsforum.com. Big Screen Forums: Search. "Dear All Let me telll you my .
http://www.retrevo.com/s/Sanyo-PLC-SU30-Projectors-review-manual/id/284bh433/t/1-2/


This is my paragraph. I'm using a p tag.
Hemingway wrote The Sun Also Rises
This is my Week Three paragraph. I'm using a p tag.
Faulkner wrote Tender Is The Night
I wrote this in Cloud9.


I'm interested in the power of art, mindfulness, and technology to create a better world.
I imagine a world in which everyone has the opportunity to live to full potential. In which everyone is encouraged to create, explore, and discover through accessible art, dynamic forms of education, and easy access to wellness. I want to make this world a reality.
I'm a maker—from blogging to music-making, photography to guerilla sidewalk chalk street art. I also like to meditate, talk to strangers, and run lifestyle experiments.
I'm currently learning to develop software in Javascript at Fullstack Academy's Grace Hopper Program. In 2016, I served in the Peace Corps, where I was teaching entrepreneurship to high school students in Nicaragua. Before that, I worked for IBM, management consulting for large corporations. I hold a degree in economics from the University of Pennsylvania, and I live in NYC.
Questions? Freelance inquiries? Ideas/inspiration/ramblings? Please, send them my way!(Or, just shoot me an email at sophiaciocca@gmail.com.)


Left View Links
Control Main View
Left panel content goes here
Right panel content goes here
This is an example of split view application layout, commonly used on iPad apps. The main approach of such kind of layout is that you can see different views at the same time.
Each view may have different layout, different navbar type (dynamic, fixed or static) or without navbar.
The fun thing is that you can easily control one view from another without any line of JavaScript just using "data-view" attribute on links.
And of course, your favorite panels are still here: left and right


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
E
F
G
I
K
L
M
N
O
P
R
S
T
U
V
R
rate
- Static variable in interface sbmlme.
MEConstants
rateConstant
- Static variable in interface sbmlme.converter.
MEJsonConstants
RateConstants
- Class in
sbmlme
Implements methods and attributes for adding rate constants to the annotation of a reaction of type "PostTranslationReaction".
RateConstants()
- Constructor for class sbmlme.
RateConstants
RateConstants(RateConstants)
- Constructor for class sbmlme.
RateConstants
reaction_type
- Variable in class sbmlme.converter.
MEJsonReaction
The type of the reaction with additional nested attributes.
reactionPlugin
- Static variable in interface sbmlme.
MEConstants
reactions
- Variable in class sbmlme.converter.
MEJsonCOBRAme
The list of reactions in the model.
reactionsField
- Static variable in interface sbmlme.converter.
MEJsonConstants
reactionType
- Static variable in interface sbmlme.converter.
MEJsonConstants
reverse
- Variable in class sbmlme.converter.
MEJsonReactionTypeAttributes
Whether the instance of the
MetabolicReaction
corresponds to the reverse direction of the reversible process or not.
reverse
- Static variable in interface sbmlme.
MEConstants
ribosomalRNA
- Static variable in interface sbmlme.
MEConstants
ribosome
- Static variable in interface sbmlme.converter.
MEJsonConstants
Ribosome
- Variable in class sbmlme.converter.
MEJsonMetaboliteType
The type for ribosomes
right_pos
- Static variable in interface sbmlme.converter.
MEJsonConstants
right_pos
- Variable in class sbmlme.converter.
MEJsonMetaboliteTypeAttributes
The ending position of the nucleotide sequence on the genome.
RNA
- Variable in class sbmlme.converter.
MEJsonProcessDataTypeAttributes
The id of the RNA that is charged by the
tRNAChargingReaction
.
RNA_polymerase
- Variable in class sbmlme.converter.
MEJsonProcessDataTypeAttributes
The RNA polymerase that is used in the
TranscriptionReaction
.
RNA_products
- Variable in class sbmlme.converter.
MEJsonProcessDataTypeAttributes
The list with all RNAs produced by the
TranscriptionReaction
.
rna_type
- Static variable in interface sbmlme.converter.
MEJsonConstants
RNA_type
- Variable in class sbmlme.converter.
MEJsonMetaboliteTypeAttributes
The type of RNA that the species represents.
RNAP
- Variable in class sbmlme.converter.
MEJsonMetaboliteType
The type for RNA polymerases.
rnaPolymerase
- Static variable in interface sbmlme.converter.
MEJsonConstants
rRNA
- Static variable in interface sbmlme.
MEConstants
A
B
C
D
E
F
G
I
K
L
M
N
O
P
R
S
T
U
V
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


User Requirement Form
User Name
User Email
Job Profile
Select Job Profile departement
IT
-Java Developer-
-Python Developer-
-Php Developer-
-Android Developer-
HR
-Mechanical or bureaucratic
-IT-HR
Finance Department
-Accounting Dept
First Round
----Select Option----
MCQ
Group Discussion
Technical Interview
Machine coding round
Human resources
Second Round
----Select Option----
MCQ
Group Discussion
Technical Interview
Machine coding round
Human resources
Third Round
----Select Option----
MCQ
Group Discussion
Technical Interview
Machine coding round
Human resources
Fourth Round
----Select Option----
MCQ
Group Discussion
Technical Interview
Machine coding round
Human resources
Fifth Round
----Select Option----
MCQ
Group Discussion
Technical Interview
Machine coding round
Human resources


Been struggling to get my raspberrypi to populate the data it is receiving from my emontx. Using minicom I can confirm that the raspberrypi is receiving the power data from emontx.
10 76 0 80 0 81 0 0 95 100 206 100 206 100 206 100 206 10 73 0 80 0 79 0 235 94 100 206 100 206 100 206 100 206 10 69 0 94 0 72 0 22 95 100 206 100 206 100 206 100 206 10 69 0 92 0 68 0 255 94 100 206 100 206 100 206 100 206
The raspberrypi_run.php scripts halts with no error and never exits as I presume it is supposed to. Here is an example if i run this from command line (note crontab is not running):
pi@pieater /var/www/emoncms/Modules/raspberrypi $ php raspberrypi_run.php Remote upload enabled - details correct
Any ideas?
Re: emoncms - php raspberrypi_run.php halts with no error
Just did some troubleshooting and seems the script is getting stuck whilst trying open the stream to the serial port:
Re: emoncms - php raspberrypi_run.php halts with no error
Hi Tim,
I have a similar problem with mine. Everything is working except for the PHP script that interfaces with the R-Pi receiver. This is entirely of a problem of my own making as I have installed it on Arch Linux ARM instead of Raspian as recommended. I'll let you know if I make any progress.
Barry
Re: emoncms - php raspberrypi_run.php halts with no error
Okay, I got emonCMS with the Raspberry Pi extension running on Arch Linux. I didn't have Python installed or the required modules including Serial and GPIO. This fixed it for me.
Re: emoncms - php raspberrypi_run.php halts with no error
@tdereus : Could it be that the COM port is already open (by minicom for instance) ? Or the path is wrong (I don't see any reason why) ?
if (PATH_SEPARATOR != ";") {
$filename = "dio.serial:///dev/ttyAMA0";
} else {
$filename = "dio.serial://dev/ttyAMA0";
}
// Open the stream for read and write and use it.
$f = fopen($filename, "r+", false, $c);
if ($f)
@Barry : Unless you're using the (still work-in-progress) python script, I don't think you need those python dependencies. Which gateway script (php or python ?) and which version (master, dev ?) are you using ?


Profile informations
{{ user }}
Home
News
Contact
About
Profile of {{ user }}
{{ task_lst }}
Written by
Lucas TABIS
and
Paul BRUNNER
and
Lucas HEMMERLÉ
Students from
EPITECH


story
Time
Home
Accounts
View Requirements
View Requirement
View Comments
View Sprints
Schedules
Assign Resource
View Resources
Admin
View Requirement Specification Types
View Status Codes
View Specification Types
Database ERD
About


Blue Bird
— Joseph L. Arkfeld (music), Emily Dickinson (text), Raff Viglianti (code)
Powered by
Verovio and
Dark Sky
. Recording perfomed by Tory Wood (soprano) & Joseph L. Arkfeld (piano)
About New Dynamic
Settings
Set weather conditions
×
Wind Intensity
Low
Mild
High
Cloud Cover
Light
Medium
Heavy
Temperature
Freezing
Low
Mild
High
Cancel & Reset
Confirm
New location
Go
Listen
▶
▮▮
■
Loading score


Next Arsenal manager odds: Freddie Ljungberg favourite after Unai Emery sacking
The Spaniard was relieved of his duties on Friday following a dismal run of seven games without a win, with a number of high-profile candidates now linked with the role
by Darren Wells, https://www.mirror.co.uk/authors/darren-wells/Freddie Ljungberg and Nuno Espirito Santo have been installed as joint favourites with bookmakers to take over permanently from sacked Unai Emery at Arsenal .
Emery was dismissed from his managerial post at the Gunners less than 12 hours after the 2-1 defeat at home to Eintracht Frankfurt.
Gunners fans held up 'Emery Out' banners as their side failed to record a win for the seventh match in succession.
A meeting was held on Friday between senior figures at Arsenal and decided to sack Emery, with Ljungberg replacing him on an initial interim basis.
The Swede is priced at 6/4 to get the gig full-time, having made the step up to the first team from the under-23 squad this season.
Wolves boss Santo is also 6/4 having led his team to a seventh-place finish in their first season back in the Premier League after promotion last year.
He refused to comment on rumours linking him with the Arsenal role on Thursday, stating: "I think you know me well enough and you know that I’m not going to answer about that.
“I will never mention an issue that’s not a reality. Mainly because the job has a manager in it. It would be disrespectful.”
Elsewhere in the list of candidates includes Man City assistant manager and former Gunners captain Mikel Arteta who is at 8/1.
Arteta was interviewed for the job previously, as did Massimiliano Allegri (20/1) but both were pipped to the post by Emery.
Axed Tottenham boss Mauricio Pochettino is next at 10/1, although a move to Spurs' north London rivals seems unlikely, while Bournemouth's Eddie Howe is also in contention (10/1).
Legendary Arsenal captain Patrick Vieira - currently boss of French side Nice - is at odds of 25/1, along with ex-Liverpool star Steven Gerrard, Lille boss Christophe Galthier, and Rafael Benitez.
Napoli manager Carlo Ancelotti - formerly of Chelsea - is a rank outsider at 40/1.
Odds on next Arsenal manager
- Freddie Ljungberg - 6/4
- Nuno Espirito Santo - 6/4
- Mikel Arteta - 8/1
- Mauricio Pochettino - 10/1
- Eddie Howe - 10/1
- Massimiliano Allegri - 20/1
- Patrick Vieira - 25/1
- Christophe Galthier - 25/1
- Steven Gerrard - 25/1
- Rafa Benitez - 25/1
- Carlo Ancelotti - 40/1
*Odds supplied by Betfair


Wenger remembers failing to lure Messi & Pique to Arsenal from Barça
"We tried, we were not near to signing Messi," Wenger admitted in an interview over the weekend
by SPORT.esFormer Arsenal manager Arsene Wenger has told beIN Sports that he tried and failed to lure Lionel Messi and Gerard Pique to the London club in 2003.
In that same year, the French coach managed to bring in Cesc Fabregas from La Masia, with the Spain midfielder going on to have a huge impact for the Gunners.
However, he came up short in his attempt to sign some of the other great talents from Barca's generation of 1987.
"We tried, we were not near to signing Messi," Wenger said. "But we tried to sign Pique, Fabregas and Messi, of course, we already tried but he was already too big at the time.
"Don't forget in 2006 when we played the Champions League final against Barcelona, Messi couldn't play because he was injured... so that's 13 years ago and he was already a regular player in the first team. What this guy has done is unbelievable."


| ASSESSED BY | RISK (CURRENT/MAX) | LIKELIHOOD (CURRENT/MAX) | MATRIX LEVEL (CURRENT/MAX) | ACTION | ASSESSMENT DATE | DETAIL |
|---|---|---|---|---|---|---|
| {{ asm.employee.full_name }} | {{ asm.form.display.risk }} | {{ asm.form.display.likelihood }} | {{ asm.form.selected_matrix.impact.value }} | {{ asm.form.display.monitor }} | {{ asm.created_at }} |


Chicago 1871 startup Savvo recently debuted its second app BeerMapper to help users discover new beers based on personal preferences. As the team's UX designer, I sought to evaluate user benefits, streamline the app’s user flow and simplify its interface for the everyday beer enthusiast.
From our first meeting with Savvo, we knew they were onto something. This iPad app tapped into a worldwide inventory of 25,000 beers and used an algorithm to predict user preferences based on cues and patterns of their reviews. Such a powerful tool could mean users would never have to try a beer they did not like.
Well, with great power comes great responsibility, right? While a promising concept, BeerMapper faced a confusing onboarding process and tangled user flow. The tutorial presented poor instructions, and finding beer recommendations was nested in unexpected tasks.
To meet a holiday deadline, our team of four UX and visual designers needed to move fast. Savvo asked for a three week turnaround for the recommendations and design assets. With a combination of a tight deadline and our client's technical capacity, our team focused on the most pressing usability problems. We planned a second phase for after the product launch to tackle larger usability, visual and microinteraction challenges.
To kick off the project, our team sought to understand users’ behavior and painpoints in selecting and drinking beer. Our research included literature reviews, competitive analyses, user interviews and usability testing.
From reviewing academic journals, industry publications and news reports, our research found that:
We compared BeerMapper against a dozen top beer recommendation apps. In looking at their functions, interfaces and popularity, we saw that:
With these insights, my teammate Zoe and I interviewed a dozen craft beer lovers, MBA students and sports fans. Our interviews focused on their beer drinking habits, how they found and selected beers, and their feedback on BeerMapper. We discovered:
We asked our users to perform a few key tasks, including rating beers, finding a recommendation they liked and building a list of beers they'd like to try. Our tests revealed:
Conflicting visual cues confused users and prevented them from completing tasks. Users misunderstood navigation bar icons, tried many buttons before finding the correct feature and often swiped instead of tapped in the onboarding process.
A clunky user flow with dark patterns created much frustration. When looking for recommendations, users were prompted to rate beers instead.
Search and recommendation results overloaded users with data and did not organize information in meaningful ways. Searches could generate up to 1,000 datapoints with no way of filtering information.
Creating personas and design principles helped guide our design decisions. We kept these in mind as we designed and made some tough calls.
We defined four main users based on how often they drank and where they preferred to drink.
Regularly drinks beer while watching TV or after long workdays
Frequents his favorite sports bar to watch games once or twice a week
Loves an excuse to drink beer with friends, either at home or out
Has a thirst for adventurous beers and hangs out with beer expert cicerones
Based on the needs we heard from users, we established three guiding principles to anchor our ideation process:
In our ideation phase, we first let our imaginations loose to think of what BeerMapper could become. The most promising ideas were then conceptually fleshed out through multiple design iterations.
We iterated on the user flow and interfaces through sketches, paper prototypes and digital wireframes. Our team worked together to optimize the screen space and visual hierarchy.
After exploring various directions, our team zeroed in on five recommendations that would carry a stronger impact.
We directed the visual design to complement the existing app and be more relatable to craft beer enthusiasts. Our design took inspiration from craft beer labels and trending bars. I created a moodboard to capture the iconography and color treatments that my teammate Zoe and I imagined.
With a rough style guide in hand, Zoe and I just went for it. Zoe led the design for the branding, iconography and typography. I helped create final designs by applying the style direction to wireframes and mock ups.
Through our iterations, we consistently invited different users to try our prototypes. Through their feedback, we validated our onboarding and user testing steps.
We also had check-ins with our client. In one meeting, our client even caught a large oversight. No affordance was given for a keyboard! Needless to say, their feedback was incredibly helpful throughout the design process.
Working with Savvo was a great pleasure. We were glad to hear that they loved our final deliverable and even called us a Savvo “dream team”. Also reassuring has been seeing BeerMapper maintain a 4.5 star rating since its Christmas week launch.
Reflecting back on our design sprint, I learned a few key nuggets:


data class Filter
Stores part of a SQLite selection statement, used to filter results in database queries.
See Also
Filter(sqlStatement: String)
Stores part of a SQLite selection statement, used to filter results in database queries. |
var sqlStatement: String |


UNITS = W/m**2
Latent heat flux - January
Latent heat flux - July
Sensible heat flux - January
Sensible heat flux - July
Return to main page for 10-year simulations.


I’m a Mounds View Scioly Alumni, and I’ve been involved in Scioly all through high school. One time my team’s Scioly bus got stranded on a highway for 7 hours, making our trip to a tournament 21+ hours. That’s dedication.
Favorite events: Forensics, Fossils, Experimental Design
Fun fact: I like heights because it scares me.
Hi! I’m Alex! I competed in Science Olympiad for three years at Palo Alto High School, and while I don’t have a decreasing series of numbers as elegant as Ryan’s, I’ve experienced a variety of study/lab events at Regionals, States, and Nationals. Honestly I thought the 2015 season as one of Paly’s captains would be my last year involved with SciOly, like ever, but I guess I’m not getting away from this one! For anyone at Nationals in 2013, we were that dorky team that had dyed our hair (all of it) green.
Fun fact: This picture is from States 2015 because my high school plans prom on the same day.
I’m a Mounds View high school alum who has been to nationals since my freshman year. Scioly has played an influential role in my dedication towards impacting society through health and tech! I am looking forward to sharing my Science Olympiad experience with current scioly competitors by helping to run invitationals across the bay area, hoping to inspire and enrich STEM education for students nationwide.
Favorite events: Mission Possible, Chemistry Lab, Sounds of Music, Designer Genes
Hi, my name is Rohan Chakraborty, and I’m an alum of Seven Lakes High School and Beckendorff Junior High in Katy, Texas. Throughout my Science Olympiad experience, I’ve competed extensively in building events such as Gravity Vehicle and Scrambler as well in as lab events like Chemistry Lab and Forensics. With my experience at the national level, I’m looking forward to creating an unforgettable experience for Science Olympians in the beautiful Bay Area!
Favorite events: Chem Lab, Forensics
Fun fact: I love anything and everything Drake.
Hey, I’m Ryan! I’ve competed in Science Olympiad for 7 years, done build events for 6, gone to state for 5, coached a team for 4, proctored B division for 3, captained a team for 2, and supervised an A division event for 1 year. I’m from Mira Loma High School in Sacramento, where I’ve had the unparalleled pleasure of competing repeatedly and unwillingly in Mission Possible, as well as less-hellish events including Circuit Lab, MagLev, Compound Machines, and TPS.
Fun fact: I hold the incredible honor of once placing absolute dead last at Nationals. 60th place in Junkyard challenge, 2011. Shoutout to my coaches for never letting me forget it!
Dusty Schroeder is an assistant professor of geophysics in the School of Earth, Energy, and Environmental Sciences at Stanford University. He works on the fundamental problem of observing, understanding, and predicting the configuration and evolution of ice sheet boundary conditions using ice penetrating radar sounding data. Before coming to Stanford he worked as a radar systems engineer with the Jet Propulsion Laboratory at the California Institute of Technology on NASA’s Europa Clipper Mission. Dusty is also a former Science Olympian competitor (Solon Middle School and High School between ’97 - 02), coach (LASA High School ’07 - ’14), national event supervisor (Astronomy ’03 - ’11, Reach for the Stars and Solar System ’12 – present), and national committee co-chair (Earth and Space Sciences ’15 – present).
Hey, I’m Garrick, and I’m currently a sophomore at Stanford University interested in studying computer science, product design, or anything, really. In my spare time I jam on the ukelele, go on reddit, work as a theatre technician, and dabble in graphic design. I am excited to be working with the team at Golden Gate to inspire new generations of high school students to get excited about STEM!
Favorite events: Anatomy and Physiology, Protein Modeling, Geologic Mapping
Hello! I'm a LASA alum and was captain of LASA's Science Olympiad team during 2015 and 2016. I did build events, which means that most of my SciO memories involve soldering in a hotel room bathtub, getting gliders stuck in chandeliers, or getting kicked out of Wal-Mart at 1 AM (sometimes you gotta test Scrambler the night before...) Science Olympiad has been a pretty big part of my life (in both the good and bad ways), so I'm glad to be helping run this tournament.
Favorite events: Scrambler, Mission Possible
Fun fact: When I wasn't doing SciO, I was programming. Some of you might remember LASACTF.
Hi I’m Alexis! I’m an alum of School For Advanced Studies in Florida where I formed and led two Science Olympiad teams. I competed in Scioly for 5 years and loved / stressed over every moment of it! I can’t wait to be a part of it all over again and help out this year!
Favorite events: Forensics, Chemistry Lab, Helicopters
I am an undergraduate at UC Berkeley and intends to double major in Legal Studies and Business. I have participated in Science Olympiad for 8 years and is excited to continue being involved with the competition. I hope to eventually work in women's sports.
I'm an Adlai E. Stevenson High School and Daniel Wright Jr. High scioly alum who did Science Olympiad for 6 years. I competed at 5 Nationals, starting in 8th grade. Science Olympiad influenced me to pursue a career in ecology, so I'm excited to help out as an alum!
Favorite events: Invasive Species, Forestry, Ornithology, Fossils, Hydrogeology
Fun fact: I'm an avid birder!
I’m a current freshman at Stanford University with plans to major in Human Biology and minor in Computer Science. I’m originally from Louisville, Kentucky, where I helped captain DuPont Manual High School’s Science Olympiad team. Outside of academics, I enjoy volunteering for Cardinal Free Clinics, playing for Stanford’s Club Ultimate Frisbee Team, and searching for nearby boba tea cafés.
Favorite events: Wright Stuff, Robot Arm, Dynamic Planet, Hydrogeology, Elastic Launch Glider
Fun fact: I play club frisbee for UC Berkeley, and I'm always willing to throw!
Hello world, I’m Grant, former SciOly captain at Valencia High! My SciOly adventure began at Kraemer Middle, and I gradually found a passion for build events at Valencia High (competed 6 years). I still remember the long hours I spent soldering wires, gluing bridge joints with impossible precision, and getting wright stuff planes stuck in the ceiling. I have also helped coach the Kraemer team for 4 years and helped coordinate the CA Inland Empire Regionals and invitationals in the OC region. Overall, my SciOly experience has been a blast and I look forward to continuing to work with students in the community!
Favorite events: Robot Arm, Wright Stuff, Bridge Building
Fun fact: I love solving Rubik’s Cubes and writing/blogging!
I’m a current freshman at Stanford University with plans to major in Human Biology and minor in Computer Science. I’m originally from Louisville, Kentucky, where I helped captain DuPont Manual High School’s Science Olympiad team. Outside of academics, I enjoy volunteering for Cardinal Free Clinics, playing for Stanford’s Club Ultimate Frisbee Team, and searching for nearby boba tea cafés.
Hi! Over the course of 6 years, I competed for Winston Churchill Middle School and Mira Loma High School in Sacramento, CA. In those years, Science Olympiad became the most important influence on my collegiate and career choices leading me to where I am today. I hope to contribute to Science Olympiad to further impose the competition's positive influence on other students to help them discover their passions.
Favorite events: Fossils, Technical Problem Solving, Remote Sensing
Hi, I’m Sarah Gurev, and I'm a Mira Loma and Churchill Scioly alum. I've had the opportunity to attend Nationals five times, and the distinct pleasure of competing in every single water event each time (Awesome Aquifers will always hold a special place in my heart). My favorite event, however, is Protein Modeling. Science Olympiad was such a large part of my life, so I'm grateful it's not quite over yet. I'm really excited to help bring this tournament to life!
Favorite events: Protein Modeling
Hello! I'm Alaric, born and raised in Los Angeles, been involved with Science Olympiad for nearly 11 years now, Troy High c/o 2011, University of Pennsylvania c/o 2016 (M&T dual degree in Electrical Engineering & Management/Marketing; master's degree in systems/transportation engineering). Currently, I work in San Francisco at McKinsey&Company, a global management consulting firm. I was a former captain and 4-year member of Troy Science Olympiad, where I competed at Regionals, State and Nationals in mostly engineering events (of which Mission Possible was, and will always be, my favorite event of all time). In the years following high school, I directed three invitational tournaments in Southern California for Division B teams and have had extensive experience event supervising both Div B and C. Really excited to be a part of this Bay Area event!
Daniel Shen is a sophomore studying mechanical engineering at UC Berkeley, although many of his friends would say his true passions lie in chemistry. After suffering through organic chemistry lab this semester, however, he is unsure about whether he wants to ever take another chemistry course.
Favorite events: Chemistry Lab and Circuit Lab.
Fun fact: I ballroom dance competitively as part of Cal Ballroom.
I'm a Stanford EE student interested in physics, mathematical optimization, and puppies; I also sometimes pretend to do research and things.
Fun fact: I’ve fallen asleep on a table in at least 4 different science olympiad practices.
Hi! I’m a heart surgeon-in-training at Stanford University, and my interests include both adult and pediatric heart surgery, and developing new surgical technologies for use in the operating room. I previously competed in Scioly for Naperville Central High School (IL), leading the team to its first ever Nationals appearance in 2007. I’m still involved with Scioly as a coach for Palo Alto High School, and I hope to continue contributing at Scioly tournaments of all levels in the future.
Favorite events: Astronomy, Forensics, Fermi Questions, Storm the Castle, Sounds of Music
Fun fact: I’m also an orchestral conductor
Hi, I'm Jaymo, a 2nd-year MSE and EECS major at Berkeley. Throughout my high school science olympiad career, I competed in materials science, maglev, compound machines, chemistry, and forensics. At Berkeley, I'm involved with the Materials Science and Engineering Association, EE course staff, and IM sports. I'm really excited to see everyone have a great time at the competition!
Fun fact: 1v1 me in basketball
Hey, I'm Jon and I am currently a Sophomore at Stanford studying Bioengineering! I'm a Camas High School alumnus from Washington State and I've competed for four years and been to four national tournaments. Some of my best memories from high school came from studying and spending time with my Science Olympiad team, and I'm excited to contribute to this tournament and make it a fantastic experience for all of you!
Favorite events: Disease Detectives, Protein Modeling, Cell Biology
Fun fact: In 2012 I ran through a thunderstorm in Florida right before Nationals because who needs to study before a tournament?
I'm an alum of Acton-Boxborough Regional High School, which I was a part of for four years. Science Olympiad definitely grew my passion for the expansive world of science which I continue to study today.
Favorite events: Anatomy and Physiology, Cell Biology, Experimental Design
Hey, I'm Nick! I've had the joy of competing in Science Olympiad for 3 years at Troy High School in Fullerton, CA, during which I got to be a part of two Nationals-winning teams. I captained the team in my senior year and enjoyed competing in my favorite events It's About Time and Compound Machines, along with some more frustrating/hellish events like Anatomy, MagLev (1st place at Nats, yay!), Experimental Design, and Bridges.
Fun fact: My MagLev car for Nationals 2014 was made to work (at 2 am on the day of Nationals) with the help of a component salvaged from a Happy Meal toy.
Hi, I'm Becky, and I'm currently a Neuroscience PhD student at Stanford University. I graduated in 2011 from West Windsor-Plainsboro High School South in New Jersey, where I competed on the Science Olympiad team for 4 years. I continued my involvement with Science Olympiad as a planning member and event supervisor of MIT's Science Olympiad Invitational in 2015 and 2016, and I'm looking forward to supervising Anatomy and Physiology at the Golden Gate Invitational in 2017!
Fun fact: My favorite events are Ornithology and Cell Biology, and my experience with Ornithology fueled an ongoing hobby of birdwatching :)
Hi! I'm Shaina, a graduate of Mira Loma High School. After being asked to fill in for my school's SciOly B team at Regionals my junior year, I joined the the team as a senior and had the distinct pleasure of getting to compete at nationals. I tremendously enjoyed my senior year on the team, and wished that I had had the foresight to get involved much sooner, so I'm very glad I get to participate in this tournament!
Favorite events: Cell Biology
Fun fact: I'm super into baseball and baseball statistics.
Greetings! I'm a first-year Cal student interested in marine science, natural history and conservation biology. I'm also an alumus of PALY Scioly, where I served as a team captain during my senior year. When I'm not in class, you can find me adventuring in the Berkeley hills or reading.
Favorite events: Dynamic Planet, Green Generation, Fossils, Water Quality, Invasive Species
Fun fact: I have an awesome look-alike sister who goes to Stanford.
In high school, Science Olympiad played an important role in my decision to pursue a career in science. I'm currently a graduate student in the physics department at UC Berkeley. I was lucky enough to compete at 2010 and 2011 nationals with my team from Acton-Boxborough Regional High School in Massachusetts. I have many fond memories with my team, both in competition and just hanging out. I'm looking forward to getting involved with SciOly again as the event supervisor for Wind Power at GGSO!
Favorite events: Wind Power, Chemistry Lab
Hello! In the past 6 years, I've competed in a variety of events, from Experimental Design to Bungee Egg Drop, but found my true passions in events like Green Generation and Ecology. I'm an alumna from Troy High School in Fullerton, CA, and am currently a first-year at UC Berkeley majoring in Environmental Sciences with potential minors in Forestry, English, and Asian American Studies. I'm excited to share my experience with SciOly by giving back to the Bay Area SO community, and am so honored to be helping out at GGSO!
Favorite events: Forestry, Ecology, Green Generation
Fun fact: I love contemporary literature and spoken word poetry - feel free to come up & say hi & talk to me about reading recs or writing prompts at any time!
Questions? Interested in sponsoring? Joining us as a student at Stanford or UC Berkeley next year? Shoot us an email to get involved with our team!


You can import the blocks presented here as a project or download them as a library to import into your projects.
This chapter of the guide includes many interactive elements that are known to run well in the Chrome or Edge browser. See the troubleshooting guide for how to deal with problems encountered.
AI programs can do many things with text. These include
While computers can deal with text as strings of characters, a technique called word embedding works by converting words into a long list of numbers. These numbers can either be created by humans where each number has a meaning such as 'minimum size', 'maximum size' or 'average life expectancy'. Most AI programs instead use numbers created by machine learning (see the previous chapter and the next chapter). The numbers are created by training machine learning models on billions of words (e.g. all Wikipedia pages in a given language). People don't understand what the numbers mean but similar words have similar numbers and unrelated words have very different numbers. Each number measures a 'feature' of the word but what that feature is is a mystery.
The word embeddings used in this chapter were created by researchers at Facebook. They trained their machine learning models on 157 different languages on all Wikipedia articles in each language. Even though that was about a billion words each that wasn't enough, so they also trained their models on tens of billions more words found by crawling the web. They created tables for each language of at least a million different words. The blocks described here provide the 20,000 most common words for 15 languages (Chinese, English, Finnish, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Lithuanian, Portuguese, Sinhalese, Spanish, and Swedish). (Larger tables and more languages can be added. Send requests to<EMAIL_ADDRESS>We have created Snap! blocks for exploring how word embeddings can be used to find similar words, words which are between other words, and most surprisingly solve word analogy problems. The features of word block will report a list of 300 numbers. If the language field is left empty, the default language will be used. You can think of the numbers as placing the word in a 300-dimensional space. The numbers were adjusted so all 20,000 words fit inside a 300-dimensional hypersphere with a radius of 1. There are databases with word embeddings for one million words but loading and searching such a large data set would be very slow. The features of word block is based upon the most frequently occurring 20,000 entries that are lower case (no proper nouns) and contain only letters (no punctuation or digits).
A program can search through all the words to find the word that is closest to a list of numbers. The closest word to reporter block does this.
Click to read an advanced topic
There are two common ways of measuring distance in a high-dimensional space. One is Euclidean distance which is a generalisation of how distance is computed in 2 and 3 dimensional space. The idea is to take the sum of the squares of the differences along each of the 300 dimensions and then report the square root of that. The other measure is called cosine similarity. Both work pretty well in the full-featured version of the closest word to reporter that lets you choose which to use. While they usually agree sometimes small differences can be observed. For example, the third closest word to "dog" can be "canine" or "puppy" depending on the measure. The default is cosine similarity because researchers have found it works a little better in high-dimensional spaces. Using the acos of block on the cosine similarity reporter produces the angle between the inputs which is easier to understand.
You can take two words and average their features by adding together corresponding numbers and dividing the result by 2. You can then use the closest word to reporter to find the word closest to the average.
Try averaging more than two words. And see what word is the closest to somewhere between two words other than the halfway point.
One of the most surprising things about word embeddings is that with the right formula one can solve word analogy problems. For example, "man is to woman as king is to what?" can be expressed as "king+(woman-man)=x".
Note that "king is to man as woman is to what?" can be expressed as "woman+(king-man)=x". And "king+(woman-man)=x" and "woman+(king-man)=x" are equivalent yet they solve different word analogy problems! This use of word embeddings works for grammatical analogies as well. Try solving "slow is to slower as fast is to what?". You might need to add 'fast' as an exception.
We have published some papers on using word embeddings. See our publications.
Note that for word analogies of the form A is to B as C is to D that the distance between A-B to C-D is much less than if A, B, C, and D were just words chosen at random. One could search through a list of words by choosing four words and measuring the distance between differences between pairs of words. If one only keeps those where the distance is small one may discover new word analogy puzzles. However, if one did this by searching through all 20,000 words then 3,998,800,199,970,000 combinations would have to be considered. Here is a project that enables one to search through a smaller set.
If you were to use the closest word to reporter to sort all the words by distance to a list of features, it would take about a full day since it will have to call the reporter 20,000 times. Instead we provide the closest words to reporter (notice the plural) that does it all at once in less than a second if the device has a GPU (except the first time it is called it may take several seconds). Optionally it can also report the distances as cosines.
While one rarely needs all 20,000 words it might be interesting to compare two words by seeing how many of the nearest 100 or 500 words of each are in common. Think up other uses for this reporter.
The features closest to list of features block reports which features are closest to a given feature list. It reports a list of all the listed features sorted by their distance to the given features. The cosine similarity is also reported. This block works well with word, sentence, or image embeddings. Or a data table as illustrated below. Note that the values should be in similar ranges. (Weights are given as hundreds of kilograms for this reason.)
One can compute sentence embeddings by averaging all the words in a sentence. There is, however, a much better way that uses models that were trained to address sentence-level tasks. The Universal Sentence Encoder is one such model that is available in the browser. The reporters get features of sentence and get features of sentences use this the Universal Sentence Encoder to produce 512 numbers for any sentence. (Really any sequence of words, it needn't be a grammatical sentence.)
It can be used to measure how similar two sentences are.
Consider
A. How are you?
B. How old are you?
C. What is your age?
A and B have many words in common but it is B and C that have similar meanings.
The get sentence features block accepts multi-word texts and reports a list of 512 numbers. To compare sentences we use cosine similarity that usually works better than Euclidean distance. Using arc cosine converts the cosine similarity to an angle for clarity.
The idea of using sentence embeddings to determine which sentence is closer to another sentence can be the basis of a game.
Sentence encodings can be used for more than comparing sentences. Combined with deep learning models (see the chapter on creating, training, and using machine learning models) they can be used to train a system to detect sentiment, emotions, topics, and more.
A full screen version of this program can be found here. The machine learning model used was trained in this project.
An alternative to the features of sentence block is one that uses a small version of GPT-3 from OpenAI. This service provides embeddings of 1536 numbers and is presumably of much higher quality. An API key from OpenAI is required. New users get an $18 free credit and the service is very inexpensive (one US dollar will cover the generation of embeddings for over a million words).
One use of sentence embeddings is information retrieval. Consider the task of searching the Snap! manual or this AI programming guide. String matching cannot take into account synonyms, different ways of saying the same thing, or different spelling conventions. In this sample search project sentence embeddings are used to compare the user's query with sentence fragments from the manual and guide. By relying upon the features closest to list of features block the closest fragments are found very quickly. The embeddings of all the fragments have been pre-computed so only the embedding of the user's query is needed. Once the closest fragments have been computed we can fall back upon string search since the fragments were derived from the document being searched.
One can use this AI-augmented search while working with Snap! by downloading and then importing either AI programming guide search or Snap! manual search. They work similarly and have similar interfaces. The results tend to be better if the query is a grammatical phrase and not a question.
The programming guide supports these keyboard commands:
The Snap! manual supports these keyboard commands:
Both the manual and guide search can be imported into the same project. But don't have both listening to your speech at the same time. When you no longer need this assistance just delete the imported sprite.
It would be nice to visualize the 300 numbers associated with a word. One way is to draw a succession of vertical lines, one for each feature.
A full screen version of this program can be found here. See if you can create other ways of visualizing embeddings. For example, to compare two embeddings perhaps the visualizations should be interleaved.
No one can visualize 300-dimensional space. There are techniques for giving an impression of the relationships between very high-dimensional points by mapping the points to two or three dimensions. We use a technique called t-SNE. It can be understood as a physics simulation where all points in crowded areas repel each other and all points are attracted to those with a small distance away (in high-dimensional space). This data projector displays all 20,000 English words in two or three dimensions using either t-SNE, PCA (principal component analysis), or UMAP. You can also use the projector to see the word embeddings of these languages: German, Greek, Spanish, French, Finnish, Hindi, Indonesian, Italian, Japanese, Lithuanian, Portuguese, Sinhalese, Swedish, and Chinese.
Note that it takes several hundred iterations of t-SNE before it settles down on a good mapping from 300 dimensions. You can also search for words and their neighbors and create bookmarks. The above links launch the projector with a bookmark showing t-SNE and highlighting the hundred words closes to 'dog'.
Here is a program that displays 50 random words at the location generated by t-SNE.
The blocks features of sentence and features of sentences can turn sentences into points in 512 dimensional space. Learn more here. While we can't visualize this space there are techniques for mapping these points into 2 or 3 dimensions that, while approximate, are often insightful. The TensorFlow Projector implements several such techniques in a web page. The projector needs two files: one with the sentence embeddings (i.e. location in the 512D space) and the other associating the text of the sentence with the embedding.
The <sentences> to TSV block reports the contents of the embeddings file and the <sentences> to TSV metadata block reports the contents of the metadata file. These blocks and a trivial example of their use can be found in the generate projector files project. Once these blocks have been run and the results exported as TSV files you can launch the TensorFlow Projector and click the Load button to load your files into the projector.
An example of using these blocks is this application of the TensorFlow Projector to the sentences in the Snap! manual. After exploring it we suggest you click on the APL bookmark to see one use this projection.
What would happen if you took, for example, the features of the English word 'dog' and asked for the closest word in, say, French? Try this with different source and target languages and different words. Compare it with Google Translate. Tip: it is easy to copy and paste words that your keyboard can't type from the Google Translate page. Or you can use the input method editor supported by the operating system of your device. Supported languages are Chinese, English, Finnish, French, German, Greek, Hindi, Indonesian, Italian, Japanese, Lithuanian, Portuguese, Sinhalese, Spanish, and Swedish.
Note that this version of closest word to has the choice of how one measures the distance between two vectors. Euclidean distance is the familiar 2D distance measure. Cosine similarity is similar but preferred by experts. See if it makes a difference in which words are closest to the untranslated word.
It is possible to add word embeddings for more languages. The process is documented here.
The following game picks a random word and gives the player warmer or colder feedback as the player makes guesses. This does so by comparing the distance to the secret word with the previous distance. It uses the location of ... reporter block to display your guesses. The game is very hard! There are many ways to make the game better. See if you can!
Natural language processing researchers have been training models to address sentence-level tasks such as question answering. They have Sesame Street names such as Elmo, Bert, and Ernie. Bert (really BERT which stands for Bidirectional Encoder Representations from Transformers) has been made available to browsers.
BERT is used in the implementation of the get up to 5 answers to question and answer question ... using this passage blocks. Given a passage of text (typically a page or less) they can answer questions about the contents. The get up to 5 answers to question block reports a list whose elements are lists of answers and a score indicating how confident the model is. An easy way to import a passage into Snap! is to drag a file that contains the plain text onto the script area.
GPT-3 is a neural network model that is capable of generating text in response to a prompt. The impressive thing is how often the generated text is very appropriate whether it is answering questions, fixing the grammar of a sentence, summarizing text, or following instructions. GPT-3 was trained on hundreds of billions of words from web pages and books. Surprisingly, the "only" thing it learns is to predict the next word (or token that is sometimes a part of a word). People call models like this "language models".
You can access GPT-3 from Snap! using the
complete
AI21 Studios has released a model similar to GPT-3 called Jurassic 1 as has Cohere.
The complete
GPT-3, Jurassic 1, or Cohere Gopher is a sample program that tries to hold a conversation using GPT-3, Jurassic 1, or Cohere. It uses speech recognition to listen to what you say. What you say is added to a prompt that tries to get GPT-3 to be a good conversationalist by describing the situation and giving it several conversational exchanges. It avoids the problem that as the conversation goes on the prompt gets too long for GPT-3 by truncating it while keeping the context description. Read Conversations with and between personas using language models to learn more.
The project supports several "personas". Gopher is an attempt at a friendly general conversationalist. El is prompted to pretend to be an elephant so one can ask her questions like "What is your favorite food?" or "Do you like jogging?". Eve pretends to be Mount Everest. Ask her questions like "What do you weigh?" or "How can I come visit you?". Charles is a simple simulation of Charles Darwin. Ask him about his life, evolution, or his books. Contrarian likes to argue while Curiosity is very inquisitive. These different personas are running the same script. The only difference is the introductory text and initial sample conversation. They can even talk among themselves!
Note that this project also illustrates how one can make a completely speech oriented interface. Other than the communication of your API key everything uses speech input and output. This is particularly useful when the project is run on a smartphone. Look at the script to see how it works.
Debate is a sample program that uses a language model from OpenAI, AI21 Studios, or Cohere to generate transcripts of a virtual debate on any topic. Read this post to learn more.
Turtle command generator is a sample program that uses GPT-3 to control the motion of a sprite. It works by getting GPT-3 to produce Logo turtle commands in response to spoken or typed instructions. Those commands are then converted to Snap! blocks. Read this post to learn more.
You can stop the project and run the log to blocks command to convert the history of your interaction into Snap! blocks. For example,
The Ask DALLE-2 to create ... costumes ... block can be used to generate costumes. With an API key from OpenAI one can use this block to generate costumes (at a cost of 2 US cents each or less). Your costume description can include medium (watercolor, photo, stainglass, oil painting, etc.), style (like Simpsons, Studio Ghibli, Rembrandt, Picasso, Cezanne, etc.), lighting, viewpoint, etc. Learn more about DALL-E-2 here.
This DALL-E-2 demo project asks for a description and creates two costumes, adds them to the sprite, and then fades in and out between them. It also demonstrates how to replace a color (white in this case) with transparency.
The Create a costume described as ... block relies upon the open-source Stable Diffusion text-to-image model. Anyone with a Google account can use Colab to run a server needed to run the block. See this Stable Diffusion Colab guide for details.
The Ask ... to create a costume described as ... block can use either the Stable Diffusion text-to-image model or DALLE-2 to generate images.
The Ask DALLE-2 to create ... costumes as variants of costume ... block can be used to make a variant of a costume. The width and height of the costume must be the same.
The Ask DALLE-2 to create ... costumes as edits of costume ... block can be used to edit a costume. The width and height of the costume and the "mask" costume must be the same. The "mask costume" should have transparent pixels that will be replaced depending what prompt is given.
This sample project combines DALL-E variants and editing blocks with the computer vision segmentation block. The project takes a photo of a person, creates a variant, uses segmentation to create a background mask, and DALL-E editing to change the background in accord with the inputed prompt.
Hugging Face provides access to over 15,000 neural network models. Free API keys are available that are limited to 30,000 input characters per month when communicating with text-based models. Additional input costs $10 per million characters. See Hugging Face pricing.
This Hugging Face project contains examples of using Hugging Face models to
Codenames is an award-winning board game.  The teammates see 25 words (initially) and need to guess which ones the spymaster is hinting should be guessed. By using the closest words to reporter one can find a word that is "close" to the team's words and "far" from the words of the other team or the codeword of the assassin.
Here is a program that partially implements a spymaster. Given a list of words it finds the best clue for two of those words. Starting with this program you can make a program for playing Codenames. Try enhancing it to search for clues for more than two words at a time. Enhance it to make sure that none of the possible clues suggest the other team's codenames or the assassin's codename.
Word and sentence embeddings can be used as a component in AI programs that do sentiment analysis, entity detection, recommendations, summarizing text, translation, and question answering. This is typically done by replacing the words or phrases in a text with their embeddings and then training a machine learning system on these approximate meaning of the words. This makes the systems work better with synonyms and paraphrasings.
Word embeddings are learned by examining text with billions of words. These texts may have captured societal biases. For example, the following example seems to have captured the bias that butchers are male and bakers are female. But the bias is so weak that if cosine similarity is used instead of Euclidean distance the unbiased "chef" is found. Some word embedding databases have the bias that doctors are male and nurses are female. They will answer the question "man is to doctor as woman is to X" with "nurse". Is this a bias? Or might it be due to the fact that only women can nurse babies? Run some experiments below to explore these kinds of questions.
A paper called Semantics derived automatically from language corpora contain human-like biases proposed a way to measure word biases. The idea is to use the average distance two words have to two sets of "attribute" words. To explore gender bias, for example, the attribute word lists can be "male, man, boy" and "female, woman, girl". The difference of the average distances provides a score that can be used to compare words. In this implementation of the scoring reporter one can see that "mathematics" has a higher "maleness" score than "art". And "art" has a higher "pleasantness" score than "mathematics".
While we don't really know what the numbers mean, they must be encoding lots of things about words such as gender, grammatical category, family relationships, and hundreds more things. But the numbers aren't perfect. See if you can create some examples where the results are not good. One known problem with how the numbers are generated is that it combines features of different senses of the same word. There is only one entry, for example, for 'bank' which combines the ways that word is used in sentences about financial institutions and those about the sides of rivers. This can cause words to be closer than they should be. For example, "rat" and "screen" end up being closer together than otherwise due to "rat" being close to "mouse" and "mouse" (the computer input device) being close to (computer) "screen". This is a problem researchers are working on. Another problem is that sometimes short phrases act like words. "Ice cream", for example, has no word embedding while "sherbet" and "sorbet" do.
Here is a program that asks the user for two languages, obtains the feature vector of a random word from the first language, and then displays several of the words closest to that feature vector. It places the words in the t-SNE two-dimensional approximation of where the 300-dimensional words really are.
The word embeddings for each language were generated independently based upon text from Wikipedia and the web. The location in 300-dimensional space of the features for a word like 'dog' have no relationship to the location of features of translations of the word 'dog'. Researchers noticed that in most (all?) languages some words are close together. For example, 'dog', 'dogs', puppy', and 'canine' are close. Words like 'wolf', 'cow', and 'mouse' are close but not as close as those words. And all of these words are far from abstract words like 'truth' and 'logic'. So they discovered that it is possible to find a rotation that will cause many word embeddings in one language to be close to corresponding words in another language. The way it was done at first and in these Snap! blocks is by giving a program a word list between English and each other language. 500 words is enough to find a good rotation that brings most of the other 19500 words close to where their translations are. While it is impressive that translation works at all given a word list that covers only 2.5% of the vocabulary, Researchers at Facebook describe a technique that uses no word lists or translated texts. A rotation is all that is needed because all the word embeddings are centered around zero so they don't need to be translated (in the mathematical sense, i.e. moved) as well. But note that the translation happens in 299 dimensions!
In the figure (A) and (B) show X being rotated to match Y to make a small number of words in X align with their translation in Y. Many other words become roughly aligned as a result. Other techniques can be applied to improve the alignment.
Using a similar technique to how vectors are generated for words we can also generate vectors for images. The get costume features of ... block will pass a vector of 1280 numbers to the blocks provided. This uses MobileNet to compute the numbers from the "top" of the neural net.
One can use image embeddings to determine which images are close to other images. Closeness takes into account many factors including texture, color, parts, and semantics. Image embeddings can be used to work out image analogy problems similar to how word analogy problems are solved.
In the machine learning chapter there is a description of the train with image buckets ... block which is used for training. It works by collecting the feature vectors of all the training images and then finds the nearest neighbors to a test image to determine what label to give the image.
Here are some project ideas:
New word embeddings blocks could be added. Currently the word embeddings blocks excludes all proper nouns. If we added them one could solve analogies such as Paris is to France as Berlin is to X. Exploring how words change over time can lead to great projects. Word embeddings generated from publications in different time periods could be used to see how words like "awful" and "broadcast" have changed over the last two centuries. New blocks could be added based upon research on generating "word sense" embeddings instead of word embeddings. E.g., one sense of "duck" is close to "chicken" while another sense is close to "jump".
There is plenty more that AI programs can do with language including determining the grammatical structure of sentences (this is called "parsing"), figuring out the sentiment in some text, and summarizing text. We plan to add more.
Wikipedia's word embedding article is short and written for an advanced audience. The Facebook team wrote a paper detailing how they generated the word embeddings we used here: E. Grave, P. Bojanowski, P. Gupta, A. Joulin, T. Mikolov, Learning Word Vectors for 157 Languages. The Understanding word vectors web page has a very good introduction to the subject and the contains examples that are helpful but require familiarity with Python. This Google blog about biases in word embeddings is very good and clear. Google's Steering the right course for AI discusses bias along with other societal issues including interpretivity, jobs, and doing good. Fair is Better than Sensational: Man is to Doctor as Woman is to Doctor discusses biases in word embeddings in depth. How to Use t-SNE Effectively is a clear interactive description of how t-SNE works. Exploiting Similarities among Languages for Machine Translation pioneered the idea adjusting the word embeddings to support translation. Word Translation Without Parallel Data explores how word embeddings can be used for translation without using word lists or translated texts. projector.tensorflow.org is a great website for interactively exploring different ways of visualizing high-dimensional spaces. Here is a video of a nice talk by Laurens van der Maaten who invented the idea of t-SNE.
You can import the blocks presented here as a project or download them as a library to import into your projects.
Go to the next chapter on neural nets
Return to the previous chapter on machine learning.


We're sorry but Madhu Sudhanan P - Portfolio doesn't work properly without JavaScript enabled. Please enable it to continue.


--- layout: default ---
I am a roboticist and the senior engineer at the Nevada Center for Applied Research, where I lead research and development focused on automated vehicles and intelligent transportation systems. I also provide technical support for Nevada Autonomous, which manages the State of Nevada’s Federal Aviation Administration Unmanned Aircraft test site, a role that I have filled on and off since 2015.
For a traditional academic CV (pdf), see here.
As a part of my research on automated vehicles, I have developed a ROS-based software stack to drive a Lincoln MKZ. Here’s a video of that system driving autonomously in suburban Reno, Nevada:
(As with most of our testing, I am also the safety driver for this drive.)
You can watch videos of some of my other work on my YouTube page.
When I am able to, I like to share software via Github. I also tweet occasionally about robotics, artificial intelligence, and math. You can find me on Twitter here.


-
100 years of ineptitude
by Theo Thimo on June 22, 2016
Walking around like some dude with nothing to do, unaware of the current inner workings of my own mind.
All the people around don’t know anything, they’re so dumb.
Parachuting molly in Washington Sq.
“That’s the thing about the moon,” Audrey says, “if I wanted to, nothing could stop me from going there.”

Feeling not high enough, me and Audrey go back home to insufflate more MDMA where she asks about my first memory.
“A picnic,” I say, “with my mom and someone else, I don’t remember.”
“Stupid,” she says.
I display a disconcerted facial expression.
“Stupid memories,” she says to herself, “they don’t mean anything to anyone.”
On our way to the reading, I’m thinking about puddles and other bodies of water when a man punches me in the back of the head.
“Excuse me,” I say before laughing and walking away.
“Where do you think you’re going, motherfucker?”  Audrey yells as the whole future feels like it’s opening up right in front of me.
“That was cool,” I observe.
“It was cool and kind of funny,” Audrey responds in the immediate aftermath.
We finally make it to the reading where Sarah pleads with me, “Theo, stop patting my back when we hug, just hug me for real!”
We’re all conversing within a group when Rachel jokingly says, “Where did my parents go wrong?” “That’s a good tweet,” I say.
“That is a good tweet!” she rehashes.
After a mercifully short list of readers, me and Audrey go to the roof to smoke weed.
“It’s beautiful up here.”
“Roofs don’t really do anything for me,” she says.
“In the summertime, I’ll go on my roof everyday.”
“I’m not saying they’re bad, they’re just nothing special. I guess I enjoy the perspective, but-“
“I wasn’t trying to argue,” I say.

Waiting in line for the bathroom, Henry notes that not only are the current occupants probably doing drugs, but we also plan to do the same.
“It’s always so nice seeing you,” I tell him after sharing a laugh.

Showing off to Audrey, I hop down the last three steps of the stoop and shout, “I give tonight a 7/10!”
Discussing the recent meaningful interactions on our way home, I think about how how this time last year I was in San Francisco.
The hills toppled around like sedated seagulls, there was a lot of yellow and pink, even nicer things probably.
It’s weird how I always feel like the same person until I think about stuff for a little while.
“You never pay any attention to me,” Audrey says as it starts to rain.
I sincerely apologize to her.
“Rain, rain,” she says a few times until her voice quiets to a low murmur, “this is a secret to everyone asleep.”
The next day, I wake up and it feels distinctly like a fade-in, or maybe a very long dissolve, through waking, pooping, showering whilst singing, dressing too long, coffee-ing, smoking, eating, smoking, talking too loudly, whispering unnecessarily, wondering hopefully, sleeping maybe.
Ugh, I don’t want to get out of bed, there’s nothing to do and it’s all so hard.

“Bastards,” I whisper dramatically and laugh.
I visualize laughter as something akin to magnetic waves that intensifies in proximity to domesticated animals.
“Holy shit,” I realize, “I can apply meaning to anything.”
I stare out the window at a spot on the neighboring building, a group of bricks midway between two third floor windows, and think to myself, “This must be it, this must be meaning.”
-
3 Poems
by Penny Newell on June 22, 2016
INTRODUCTION...
INTRODUCTION
Sestina (Altaforte), vis. the unwritten poem.I did not expect to see
a skeleton green
behind the ash-fall
of coloursSestina (Altaforte), vis. the unwritten poem.
Introduction.
INTRODUCTION
Early one morning, words were
Subsiding transport had
May God forgive
Or, as we said,Thebes is slow
goings on
to eyes to lidsIntroduction.
INTRODUCTION
Sestina (Altaforte)I loved the day
that ruined itself
upon the wind.Beech
You have not recently lost any items.
You have not recently won any items.
You are bidding on a cool
vintage funky retro fashion tea
caddy/caddie LOVELY decoupage/
trinket oak/beech jewellery hand-
made present, 100% excellent!
medium-sized wooden gift
box.Cool young poets talking about their art basically Xxxx (excerpt)
I – INPUT: / OUTPUT:
To my many young and beautiful friends
who used to be lovers:
and the rest: who work
now work to pieces of people
at computers: to all
creatives: never the lesser ended
great use for these eight fingers,
to fear the momentum
of stack-handles, to feet on the slight
of the roll-along floor, the
skin-pocked carpets of our future
barred to the door, to make love,
I reckon
in pixels, only
only to each other,
in the basement of a library.
Against the days-numbered decimals
of Aristotle:
ΠΕΡΙ ΑΙΣΘΗΣΕΩΣ ΚΑΙ ΑΙΣΘΗΤΩΝ.
(trans.) I feel young, benumbed and taut together.
Those unwarranted, unexplained
capital letters.
Poems as rigid, too, as rigid as those letters,
the lifelike mnemonic of time
blending two past lovers,
my mind estranged by the law
that water is the thinnest of all the liquids
more difficult than oil even
to cup in the hand.
-
Three Poems
by Sarah Francoise on June 22, 2016
Untitled
I was a fountain choreographer
in purple sheets, given to glass worship.
I was statues, too, broken down to chips,
when the rumor died down at the altar.
Elle ordered me (again) to Love My Hair,
when France and Russia fought over warships,
when we were two people meant to Ketchup;
but wasn’t that your job? (I mean, the hair).
Back when I spent my money on Moleskines -
they still write, to ask me if I want more.
I don’t know how to answer such questions,
so instead I tell them I want more skin,
because we stretched the rumor till it tore,
and then left it to yellow in the sun.
Marbles
The morning after the cow lost her calf,
the symptoms set in.
The planarian split into two,
3.4 miles from shore.
The slanted city/a spineless island,
sent the marbles on a downward roll.
Then with the drill (it’s a hands-on city):
don’t fix the shelves, please, just fill in the hole.
When I fell, I felled the topography.

So: there was your way and there was mine,
respecting our original parting.
Buried under a tree came back bolder:
that bell I found. Remember? I told you.
Windows
They are all talking about
the storm windows
but none of them saw
the note on the sink,
the one that kept it to storms,
on how to condition the storms
for storms.
And while they sign off in the copse,
through their talk of squalls
comes our daughter’s voice,
supplicating the raspberries,
those that dilly-dallied into September,
so old they taste like jam.
The woman who lived here
made her nest in a town
kept honest by wood.

It reminds me of a cabinet
where birds were laid to rest
in cotton balls.
No one is really from this town
and the only wood to ever come from here
was splintered, dipped in sulphur,
and inflamed against diminutive
adirondack chairs.
Our daughter pockets an acorn,
convincing us both she has taken
something valuable.
-
Boxes
by JT Farrell on June 22, 2016
Remember being small next to the sea? So small you couldn’t begin to understand its size, didn’t even think to try? Remember refusing sunscreen, searching for shells, collecting rocks, chasing the receding ocean out? Squealing when it chased us back in? Remember sandcastles? Make-believe? Building forts?
Remember when you moved? Didn’t want to go but packed everything up into boxes boxes boxes anyway and changed homes across town. Divorce. Lost things in transit. Like your stuffed shark. Remember? Got a new one, but it wasn’t the same. Nothing was the same. New room, new house, new yard, new neighbors. You hid deep under sheets blankets pillows for a long time. Didn’t want to come out. Told me about it later. I didn’t get it. The big deal.
I remember visiting the new house. Small. White walled. Empty. Except for cardboard boxes stacked to ceilings in steps we scaled, climbed one by one. Shouted at the top, conquering kings of a new empty world. Unafraid. In the background your dad unpacked and we stood unafraid, surrounded by the sound of masking tape tearing off of cardboard. He yelled at us to get down. Dangerous. We’d fall. Didn’t listen.
Took a long time to unpack those boxes. They stayed at your new house for months. Never think you have that much until you have to pack it all up and unpack it again. Got used to it. When they were gone, house became strange. Neat. Got used to that too. Wanted boxes back at first. We got good use out of them.
Remember that still day at the edge of the sea? Light haze over sand glowed in full sunlight. Figures silhouetted in mist moved back and forth along the sand. Bird shapes flapped away the distance over the water. Skies blue through the blur. Sand soft and warm. Water cold and dark. As always.
Remember rebuilding the fort? You convinced me to. I was sand-in-eyes defeated, sitting legs straight out trying not to cry at the boxes from your house strewn across the beach. Derelict ruins of a dream. Once-mighty castle cast low by marauding invaders older and meaner and cooler than we were. Came clad in bathing suits and towels and knocked it over. Couldn’t understand why. All our work and triumph wrecked for no reason. No reason at all. Was ready to go back to your beach-chaired dad drinking beer in his baseball hat and ask to leave. Give up. You convinced me to stay. Remember?
Said we’d make the fort taller. Bigger. Better. So we could see the whole ocean from it. Then you pushed one box up against another. And again. Weighed them down with sand so the wind couldn’t take them. I watched you through wet eyes. Then wiped tears away. Brushed off sand. Dragged a box to the structure. Pushed it against the others. Covered the open flaps with sand. Brought another over.
Worked without speaking. Dragged my feet. Sniffled. But helped you form the foundation. Stronger than before. Tunnel leading to the center. Stacked second layer on top and felt better. I remember that. The fort taking shape again. And you were right. It was bigger. Better.
Took longer to build the second time. The boxes were weaker. And we got tired. But we kept working. Talked while we worked. Wonder what we talked about. Maybe you told me you saw a great white shark yesterday, I said nu-uh you’d be eaten. Maybe I told you about how some fish make their own lights, you said they don’t know how to use electricity. Maybe you asked what dinosaur I’d be, I said Velociraptor. You said you’d be T-Rex and eat Velociraptor. I said no way, I’d be Pterodactyl. Fly away. Leave you stuck on the ground. Maybe you asked what super power I’d be, I said I’d be fast. You said you’d turn invisible.
But we rebuilt it. The fort. Citadel of cardboard, boxes push-piled against each other high up on the beach to survey the entire empty sea expanse. To stand tall on top of. To fight off rival pirate raiders. To howl atop our edifice in animal defiance. We were heroes. Bigger. We were titans. Better. Dinosaurs. We came before everything. Still be there when it’s all gone. So we played. Fought and died and woke up and made plans and fought and saved people and were tortured and the fort shifted so we adjusted. Parts fell and we put them back. New angles formed. New corners appeared. New passages. Tunnels. Walls. Changed and grew as the day got late and the tide inched in.
Until your dad came to get us. You noticed him before me. Down on the sand, shouting with an empty bottle in his hand. Time to go.
We didn’t want to leave. Five more minutes. Please only five more minutes. But no. Time to go. Didn’t want to make him angry. Then it was your turn to be upset. But you got quiet. Still do that sometimes. Back then it scared me. Especially that time. You wouldn’t talk to your dad. Wouldn’t look at your dad. Walked across sand back to the car. Your dad dropped the bottle in the trash at the entrance to the parking lot. Hot asphalt under bare feet.
Made it to the car. We brushed the sand off outside while your dad threw the beach chair in the trunk.  Arms crossed. Eyes down.
I tried to help. The way you helped when the fort fell and I cried. Said, it’s okay. We can go back and play in the fort again tomorrow and rebuild it if we need to. Then your dad said the tide’s coming in, it won’t be there tomorrow. Voice thick and heavy from the front seat. I could only see his pocked ear poking through salt and pepper hair.
You didn’t say anything. Like you couldn’t even hear us.
So I replied, no. We built it high enough. The boxes will still be there.
Your dad focused on the road. I imagined the fort standing tall through the night as waves broke around it.
Your dad said, if you say so. I don’t know what you kids see in those boxes anyway. They’re only boxes, empty boxes.
Then you spoke.
But you can climb them. You can stack them up on top of each other and climb them. And then once you’re up there you can see everything and everyone.
Your dad didn’t respond. Drove back in silence. Dropped me off at home. You went back to yours, less empty but still bare between white walls. Remember? Everything unpacked at that point, things everywhere. But you didn’t want things from inside the boxes. Opened them with rip tear sound of masking tape and soon they became empty boxes. So you climbed them. And when they fell down you rebuilt and climbed again. Remember?
I went back to the beach the next day. Not sure I ever told you. Took the bus. To play on the boxes again. Longer walk than I remembered, sand shifting under foot. When I got to the spot there was nothing. Fort gone. Not a single box. Not a scrap of cardboard. The water washed it all away.
-
In Complete In Decision
by Unwell on June 22, 2016


Average. Did I just call you “average people”? The audacity! Why yes I did. But let me explain while you grab a drink and get comfy.
We all grew up on stories of princes, princesses, and superheroes, that only the chosen one can do good and save the world. These chosen ones display extraordinary qualities of bravery, intelligence, or actual superpowers, and everyone else who're not chosen are just... inconsequential.
But most of us are not the chosen one. Most of us will not win a Nobel prize, cure COVID-19, or have millions in the bank.
Most of us are just... average.*
So what does this leaves us? Do we strive to become heroes before we can do some good or throw our hands up in despair?
Answer: No, we can do good wherever and whoever we are. But yes, put your hands up and wave them in the air. 🙌
Average Foundation supports the idea of one - one person, one time, one small act of kindness.
By funding your projects, I want to remove the financial pressures and help you get started in contributing and doing small acts of kindness for your community.
At this point of the page, you may be wondering who I am and if I'm secretly Black Panther. If you're not, click here to move down the page. For those of you who are still here, hi I'm Elisha!
Here's a photo of me that you can hover over to reveal my secret identity.
Yup, still me. 🤗 I'm passionate about bringing people together to solve big problems and I believe the way to have a meaningful life is to contribute and help others.
My career allows me to be effective at designing and executing programs for tech + social good. With these skills and savings, I want to empower more people to start doing good. You can read the longer version of my professional bio here.
* Being average is AWESOME. It's liberating to live without the expectations of unattainable perfection. That's not to be confused with personal stagnation though, growth is still important but enjoy the path to greatness knowing that it's okay if you don't reach the destination. Congrats on being average!
Small or one-off social good projects in Singapore, preferably around basic needs, education, and mental health. Selection criteria includes feasibility and usefulness of the project, and your rationale for the project.
Examples:
Funding covers all logistics and fees required of the project but does not cover personal expenses incurred due to the project.
Examples:
Your application is reviewed every 15th of the month from Jan to Jun 2021, and I will reach out to you within 2 weeks after review if your project is selected.
You should research and have a basic plan before you apply. Your application should include:
Projects costing less than SGD50 will be reimbursed to the project owner upon project completion. Projects above SGD50 receive some fees upfront.
Reimbursements are made within two weeks of submitting these document:


Steve Jobs
Steven Paul Jobs (/dʒɒbz/; February 24, 1955 – October 5, 2011) was an American business magnate and investor. He was the chairman, chief executive officer (CEO), and co-founder of Apple Inc.; chairman and majority shareholder of Pixar; a member of The Walt Disney Company's board of directors following its acquisition of Pixar; and the founder, chairman, and CEO of NeXT. Jobs is widely recognized as a pioneer of the microcomputer revolution of the 1970s and 1980s, along with Apple co-founder Steve Wozniak.
Jobs was born in San Francisco, California, and put up for adoption. He was raised in the San Francisco Bay Area. He attended Reed College in 1972 before dropping out that same year, and traveled through India in 1974 seeking enlightenment and studying Zen Buddhism. His declassified FBI report states that he used marijuana and LSD while he was in college, and once told a reporter that taking LSD was "one of the two or three most important things" he had done in his life. Click here to see all about Steve Jobs
Steven Paul Jobs was born as Abdul Latif Jandali[2] on February 24, 1955, to Abdulfattah Jandali and Joanne Carole Schieble, and was adopted by Paul and Clara Jobs (nee Hagopian)
Born: 24 February 1955, San Francisco, California, United States
Died: 5 October 2011, Palo Alto, California, United States
Spouse: Laurene Powell (m. 1991–2011)
Education: Reed College (1972–1974), MORE
Children: Lisa Brennan-Jobs, Eve Jobs, Erin Siena Jobs, Reed Jobs
Awards: Samuel S. Beard Award For Outstanding Public Service 35 Years Or Under, MORE
Movies: Toy Story