THE THIRTEENTH FLOOR Reviewed by Jamie Peck
Rating: ** (out of ****) Columbia / 1:45 / 1999 / R Cast: Craig Bierko; Gretchen Mol; Armin Mueller-Stahl; Vincent D'Onofrio; Dennis Haysbert Director: Josef Rusnak Screenplay: Josef Rusnak; Ravel Centeno-Rodriguez
Take a trip to "The Thirteenth Floor" and enter an empty room with a fantastic view. The see-worthy sights are courtesy of this sci-fi thriller's dazzling recreation of the glitz and glamour of 1930s Los Angeles, but even opulent backdrops like elegant nightclubs and posh hotel lobbies can't make up for a lack of soul or any real suspense. And those are the least of its problems - another one of those alternate-plane-of-reality flicks, "Thirteenth" reeks of beamed-there, theorized-that coming so fast on the heels of like genre fare including the hit "The Matrix," David Cronenberg's artsy "eXistenZ" and the Spanish import "Open Your Eyes."
Moviegoers may be closing their eyes and dozing off after such an interesting prologue sequence pulls them from the aforementioned setting to a futuristic-looking but contemporary version of the same metropolis, where the film makes its familiar agenda quite clear. Apparently, a group of '90s programmers (Craig Bierko, Vincent D'Onofrio and Armin Mueller-Stahl) have been fiddling around with a computer simulation of Jazz Age L.A. Mueller-Stahl ("Shine"), the project leader, gets wind of a major bombshell regarding the experiment but is killed before he can pass the information along to lackeys Bierko ("Sour Grapes"), the straight-arrow, and D'Onofrio ("The Newton Boys"), the wild-card.
Thanks to evidence stacked against him, Bierko becomes suspected of the murder and frantically searches for clues to prove otherwise using the time-travel contraption. This intrigue coincides with yet another - the sudden appearance of the deceased's globe-trotting daughter ("Rounders"' Gretchen Mol). She shows up to claim her old man's business and property upon learning of his demise, demonstrating that this is the kind of movie where characters gasp lines akin to "He never mentioned a daughter!" Matters begin to grow confusing here, what with all of the trips between surrogate L.A.s and each of the main acting quartet playing two versions - if not eventually more - of his or her initial role.
Still, "The Thirteenth Floor"'s collision of past and present is no less perplexing than "The Matrix," a similar techno-mystery it faces inevitable comparisons to. In fact, people not among "The Matrix"'s mass of avid supporters - this critic included - might note how "Thirteenth" offers grander scenic dazzle, a tighter edit and nil in the way of mumbo-jumbo regarding Chosen Ones or Oracles. But at least that movie packed in some taut kinetic thrills. "Thirteenth"'s idea of sensory explosion is to throw Bierko and Moll, both fine in past work but not cast to their strengths here, late passionate professions that don't rate the slightest pulse.
>From this unlikely coupling on, it's all downhill - as in runaway and unrecoverable. Already stopped dead in its tracks by a superfluous romance, "The Thirteenth Floor" proceeds with a denouement and climax so sudden, wrong and noodle-headed that they'll polish off whatever mild interest - and patience - remains in most viewers. The finale, an unequivocal high point in "The Matrix," sputters with absurdity, predictability, plot holes and a confrontation worthy of a "Fatal Attraction"-esque potboiler. Even those who thus far have enjoyed themselves need to heed this advisory: Exit "The Thirteenth Floor" a few floors early.
© 1999 Jamie Peck E-mail<EMAIL_ADDRESS>Visit The Reel Deal Online: http://www.gl.umbc.edu/~jpeck1/ "Here it is at last, the first 150-minute trailer. ‘Armageddon' is cut together like its own highlights. Take almost any 30 seconds at random, and you'd have a TV ad. The movie is an assault on the eyes, the ears, the brain, common sense and the human desire to be entertained. No matter what they're charging to get in, it's worth more to get out." -Roger Ebert on "Armageddon"
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


{% extends "account/base.html" %} {% load material_form i18n %} {% block head_title %}{% trans "Change Password" %}{% endblock %} {% block content %} {{ block.super }}
{% blocktrans %}The password reset link was invalid, possibly because it has already been used. Please request a new password reset.{% endblocktrans %}
{% else %} {% if form %} {% else %}{% trans 'Your password is now changed.' %}
{% endif %} {% endif %}


Welcome to our Salmon cookies website
we will provide the best ype of salmon cookies
that suits your taste and the informations of
our shops all over the world.
enjoy the tour..


Currently, your total indexed earnings: ${{taxEngine.totalIndexedEarnings | number}}
This is simply the sum of the highest 35 values in the indexed earnings column above.Your annual indexed earnings is calculated as your total indexed earnings divided by 35. This is your average indexed earnings in the top 35 years. If you had 35 years of earnings, this would be your average indexed earnings.
Annual indexed earnings: ${{taxEngine.totalIndexedEarnings | number}} / 35 = ${{taxEngine.yearlyIndexedEarnings() | number:0}}
Your primary insurance amount is based on your annual indexed earnings using a formula that increases as your earnings increases, but increases more slowly for higher total earnings. Your primary insurance amount is calculated from your annual indexed earnings as follows:
| Amount less than ${{taxEngine.benefitBracketMax(0) | number: 0}} multiplied by 90%: | ${{taxEngine.estimatedBenefitByBracket(0) | number:2}} | |
| Amount more than ${{taxEngine.benefitBracketMin(1) | number: 0}} and less than ${{taxEngine.benefitBracketMax(1) | number: 0}} multiplied by 32%: | ${{taxEngine.estimatedBenefitByBracket(1) | number:2}} | |
| Amount more than ${{taxEngine.benefitBracketMin(2) | number: 0}} multiplied by 15%: | ${{taxEngine.estimatedBenefitByBracket(2) | number:2}} | Total: | ${{taxEngine.estimatedFullBenefit() | number:2}} | / year |
This total (${{taxEngine.estimatedFullBenefit() | number:2}}) is your primary insurance amount. In the chart below, you can see what your benefit would be if your indexed earnings were to increase. Move your mouse over the chart to watch how the earnings change.
Your yearly benefit of ${{taxEngine.estimatedFullBenefit() | number:2}} is the benefit you will earn if you retire at your normal retirement age (NRA). Normal Retirement Age is between 65 and 67, depending on when you were born.
To determine your normal retirement age, as well as learn more about your options on when you can begin taking benefits, adjust your birth month and year below.
For those born in {{birth.year}}, normal retirement age is {{taxEngine.fullRetirement.ageYears}} years and {{taxEngine.fullRetirement.ageMonths}} months. This puts your normal retirement date at {{taxEngine.fullRetirementDate.month}}, {{taxEngine.fullRetirementDate.year}}.
If you start then, your benefit will be the primary insurance amount: ${{taxEngine.estimatedFullBenefit() | number:2}} / year.
You can also begin taking benefits as early as 62 years old ({{taxEngine.dateAtAge(62, 0).month}} {{taxEngine.dateAtAge(62, 0).year}}), wait until as late as 70 years old ({{taxEngine.dateAtAge(70, 0).month}} {{taxEngine.dateAtAge(70, 0).year}}), or start anywhere in between. The longer you wait, the higher your actual benefit will be.
If you choose to take benefits earlier than normal retirement age ({{taxEngine.fullRetirementDate.month}} {{taxEngine.fullRetirementDate.year}}), your benefit amount will be permanently reduced per year you start early by:
If you choose to instead wait until later than normal retirement age ({{taxEngine.fullRetirementDate.month}} {{taxEngine.fullRetirementDate.year}}), your benefit amount will be permanently increased by {{taxEngine.delayIncreaseRate() * 100 | number: 2}}% per year that you delay.
For a few examples, here's how much your annual benefit would be at different starting ages:
| Age | Date | Adjustment | Annual Benefit |
|---|---|---|---|
| {{age}} | {{taxEngine.dateAtAge(age, 0).month}} {{taxEngine.dateAtAge(age, 0).year}} | {{taxEngine.benefitMultiplierAtAge(age, 0) * 100 | number:2}}% | ${{taxEngine.benefitAtAge(age, 0) | number:0}} |
You can also see this same thing in the interactive chart below, with the age you choose to start taking benefits on the x-axis and the annual benefit amount on the y-axis. Move your mouse over the chart to watch how the earnings change based on the age that you first start taking benefits.


JESUS' SON (director: Alison Maclean; screenwriters: Denis Johnson novel/Elizabeth Cuthrell/Oren Moverman /David Urrutia; cinematographer: Adam Kimmel; editors: Stuart Levy/Geraldine Peroni ; cast: Billy Crudup (FH), Samantha Morton (Michelle), Denis Leary (Wayne), Holly Hunter (Mira), Dennis Hopper (Bill), Will Patton (John Smith), Greg Germann (Dr. Shanis), Michael Shannon (Dundun), John Ventimiglia (McInnes), Jack Black (Georgie); Runtime: 109; 1999)
Reviewed by Dennis Schwartz
This might be the best junkie film ever made. It is set in Iowa in the 1970s and follows the observations of a young screw up, who gets the ignominious nickname of Fuckhead (Billy Crudup), a name which he comes to accept as it sticks with him. The New Zealander, Alison Maclean (Crush), directed Denis Johnson's book of short dramatic stories with a sharp eye for comedy, where the addiction story plays second fiddle to the overall psychological problems of the addict.
The film has its protagonist go from one adventure to another as he tries to make sense of his messed up life, in each episode he meets up with different offbeat characters and continues to find himself lost in this dark world of his own stupidity, where he goes from a morbid dreamer, to a drug addict and thief, and finally to a savior. Billy Crudup is simply ingenious in this sterling role as the poetic voice of the author, making the internal musings of Denis Johnson's disjointed surreal stories come to life, not quite like in the book, but in its own cinematic way. That this impossible book was adapted to the screen, is a minor miracle itself, though it is certainly not a fault-free film, as it petered out toward the end from sluggishness. But if viewed as a story that doesn't have to make too much sense, because a junky' life doesn't make too much sense anyway, then the film can be savored for its fair quota of highs. This film easily takes in scenes with characters who leave the film just as quickly as they entered it, with the only constant in the story being Crudup, who keeps everything in order by his continuous voiceover. The film is divided into chapter headings, which are flashed onscreen, as FH rants on like the stoned out freak he is.
This episodic adventure of the irresponsible FH, who is lost and undisciplined, begins on the rainy highway where he is hitching a ride to see if he can get back together with Michelle (Samantha Morton). The story goes into the flashback mode as FH tells what happened to him three years ago in the early 1970s and how he met the love of his life, the frizzled haired Michelle, who looks sexy walking around in her bikini panties. She is a heroin addict he meets when a guy who fell asleep in his VW takes him to a house party. The only problem he has, is that she is seeing another guy named McInnes (Ventimiglia). He is the one who gives FH his illustrious name, as he sees him kissing his girl at the party. But soon Dundun (Shannon) shoots McInnes in the stomach and he dies before the reluctant Dundun is talked into getting him to the hospital. Dundun gets FH's help to dump the body in a cornfield.
Michelle's relationship with the innocent but not-so-innocent FH becomes a live-in one, where we watch the couple casually shoot heroin, something she gets him started in, while the TV plays cartoons in the background.
One of the more hysterical scenes, is when he converses with his morose cowboy friend Wayne (Leary) in a bar, and Wayne takes him to salvage his abandoned home for scrap wires and plumbing fixtures, as they get enough money to score some heroin and return to the bar and get loaded. There might be some unintentional moral to the story at this point, as they both take the heroin but Wayne keels over dead from it.
The funniest chapter from the book, is the scene where he is working as an orderly in the hospital's emergency room. His partner orderly is the zany Georgie (Jack Black), who robs the dispensary of all kinds of pills, which they both pop to help them get through the long night. The comedy becomes "Pulp Fiction"-like when the two of them treat a man who comes in with a knife stuck in his eye socket, and then go for a car ride to unwind in the snowy winter night, as they decide to camp out in the wilderness and live off the land.
The most dramatic scene comes when Michelle is pregnant and he takes her to a Chicago abortion clinic, which has pro-life demonstrators in front of the clinic. The two fight over nothing and their blankness to life gets the better of them, as they part company. She soon goes to Mexico with an unappealing man called John Smith.
The film returns from the flashback mode at this point and we see him hitchhike to Michelle's new place, where the two of them try to get back together, which will have disastrous results. FH then ends up alone in Arizona to kick his addiction problems. Here -- FH becomes involved with many things; such as, staring through the window of a Menonite housewife's home because he is enchanted by her spiritual singing; having an absurd conversation with a fellow patient (Dennis Hopper) who has a few bullet holes in him, as they reside in a rehab clinic; having a sexual relationship with a hard luck member of his support group (Holly Hunter), whose three husbands died.
FH finds his salvation when he ends up working in a nursing home as an editor for a newspaper about the residence, who are disturbed and disabled patients. Here, he learns how to touch these patients, who are even more messed up in life than he is because of their infirmaries. He drily says that the God who created this mess must be some madman.
"Jesus' Son," a title snatched from a Lou Reed song, has many glorious moments of dry humor, pungency, sadness and unpredictability; it exhibits the rare quality all special films have, it requires some effort to see what the film is about, and though it is a likable film, it does not aim to please its audience. It is a film that zig-zags all over the map, with its target being pop culture in America and how one survivor of the drug culture, who is so disarming and real, will have his maddening story breathe life into his messed up junkie veins and give vent to dreams he has that are as relevant as any genuine religious experience.
REVIEWED ON 8/17/2000 GRADE: B+
Dennis Schwartz: "Ozus' World Movie Reviews"
http://www.sover.net/~ozus
<EMAIL_ADDRESS>© ALL RIGHTS RESERVED DENNIS SCHWARTZ
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


Adjust width and height values of the Flash file ( flashmo_224_grid_slider.swf ) in the SWF embedded HTML tags
flashmo_224_photo_list.xml ( or any file name can be set in SWF embedded HTML tags )
Example: flashmo_224_grid_slider.swf?xml_file=flashmo_224_photo_list.xml
auto_play = true by default ( or false )
auto_play_duration = 3 seconds by default ( or any number of seconds )
grid_row = 4 rows by default ( or any number of rows in photo grid transition effect )
grid_column = 8 columns by default ( or any number of columns in photo grid transition effect )
tween_duration = 0.6 seconds by default ( duration of motion tween of each block in grid transition )
tween_delay = 0.01 seconds by default ( delay between each block in grid transition )
stylesheet = flashmo_224_style.css by default ( or any CSS file name for formatting photo description text field )
bar_status = 0 ( to hide the bar ) or 1 by default ( to show the bar ) or 2 ( to show the bar and photo description )
flow = in | out
direction = left | right | up | down | center
rotation = -180 | -90 | 0 | 90 | 180 | or any degree


Preparation time
less than 30 mins
Cooking time
30 mins to 1 hour
Serves
Serves 4-6
Pork loin is a prime roasting joint with plenty of crackling – perfect with roast potatoes fluffy on the inside and crisp on the outside. Serve with some apple sauce if you like.
Preheat the oven to 210C/410F/Gas 7.
Add the potatoes to a large pan of cold water, bring to the boil and simmer for about 15 minutes, or until almost cooked through. Drain and set aside to steam dry while you prepare the pork.
Bring approximately 500ml/18fl oz of water to the boil. Place the pork joint on a trivet or cooling rack set over a heatproof bowl. Carefully ladle or pour the boiling hot water over the rind of the pork, it should visibly shrink back. Pat the skin dry. Season the joint all over with salt and pepper on the flesh side.
Roughly chop the carrots, celery and onion into quarters and arrange in the bottom of a roasting tray. Drizzle over a little vegetable oil and place the pork on top of the vegetables.
Roast in the hot oven for about 10 minutes, or until the pork is coloured on the outside. Reduce the temperature to 170C/325F/Gas 3 and continue cooking for approximately 40 minutes, or longer if you prefer your meat well done.
For the roast potatoes, pour the vegetable oil into a roasting tray and place over a medium-high heat. Once smoking, add the cooked potatoes, along with all the small bits of broken off potato. Season with salt, then place the tray in the oven. After approximately 10 minutes, turn the potatoes. The potatoes should take about 40 minutes to cook, during this time you will have to turn them a couple of times.
 Wrap the meat tightly in a double layer of foil and leave on a plate in a warm place until ready to carve and eat.
Place the skin on a small roasting tray and return to the oven for a further 10-15 minutes, or until it has become crisp and brittle.
To make the gravy, place the roasting tray that the pork and vegetables were cooked in over a medium heat.  Add the Calvados and scrape the bottom of the tin with a wooden spoon to remove as much of the caramelised, cooked bits as possible. Add the quince paste and pour in a splash of boiling water. Stir until the quince paste has dissolved.
To remove the vegetables, strain the gravy through a sieve into a clean pan. Really squeeze the veg as the small fibres that pass through will help thicken the gravy. Keep your gravy warm until ready to serve, adding the resting juices from the pork meat just before serving.
Unwrap the meat and carve a chop per person to serve with the potatoes and the gravy.
Drink an elegant red from the Dao region of Portugal - full of dark cherry and blackberry flavours.
As an alternative, try a traditional off-dry cider matured in oak barrels for that classic pork and apple pairing.


{% extends "base.html" %} {% block title %}Forbidden{% endblock %} {% block content %} 403 Error You do not have the access rights to view this page. Return Home {% endblock content %}
You do not have the access rights to view this page.


Find
Coding
About Us
Lucas Siqueira
Log Out
-
Lucas Siqueira
<EMAIL_ADDRESS>Well, the way they make shows is, they make one show. That show's called a pilot.
Edit!
Can Teach:
HTML5
CSS3
Javascript
Add Teach Item
Toggle Dropdown
C++
Java
Something else here
Wants to Learn:
C
C#
C++
Add Learn Item
Toggle Dropdown
C++
Java
Something else here


Block Youtube Channels
No channels have been blocked yet.
Video whose title contains this string will be hidden. The string matching is case-insensitive.


Rayleigh
Minimalistic & Elegant
Error 404
Page not found
The page you have requested does not exists.
Perhaps you are here because:
The page has moved
The page is deleted
You like 404 pages
Don't panic, here is a search box
Home
Services
Portfolio
2 Columns
3 Columns
4 Columns
Blog
Team
Pages
404 page
Elements
Grid System
Single Post
Contact


--- layout: page title: About Me description: This is what I do. background: '/img/bg-about.jpg' ---
Im a final year Physics Student (IIT Roorkee) from India instrested is using Machine Learning to solve problems ranging from Scietific to Social and Buisness applications. I enjoy learning about how things work and intellectual process along with it. I will try using this website as a platform to journal my learnings. Currently Im more involved in Data Science and Back end deployment.
Here is one of my favorite quotes which resonates with my personality a lot
Specialization is for Insects. You've got one life just do everything you want.
- Heard it on JRE Podcast (Naval Ravikant)
Hence I try learning as many things I can without neglecting the fundementals.


Editorial: UW Health HIV prevention initiative is first step to action
by Neil HeinenMADISON, Wis. - Awareness is the first step to action. Thirty years ago it was rare to talk about HIV and AIDS in public.
Today we have messages promoting HIV prevention on Madison Metro busses. And we are so much healthier for it.
This month UW Health launched a public health initiative educating the public about a prescription drug that can prevent HIV infections. It’s called PeEP it Up: Stay HIV Free with PrEP, a safe and effective daily pill for HIV prevention. The campaign is the result of a five-year, $350,000 grant from the Centers for Disease Control and the Wisconsin Department of Health Services.
The number of AIDS cases has declined over the last 10 years, but there are still hundreds of diagnoses each year especially among vulnerable populations. So, good for UW Health for spreading the word. HIV is preventable and treatable. Let’s talk about it.


Kilmarnock cafe offering hope for those in recovery from addiction
The Foundations Cafe aims to give people on the road to recovery a chance to rebuild through teamwork and gaining useful employability skills.
by Tara FitzpatrickThe Foundations Cafe will open its doors every Friday at The Howard Centre.
The project aims to provide support and community for those in recovery from drug and alcohol addiction.
The cafe has 16 volunteers and has received funding from Alliance Scotland, The National Lottery and Firstport.
The cafe follows an engagement event in August organised by Recovery Enterprises Scotland and Someone Else’s Addiction which included contribution from 110 stakeholders including elected members, strategic leads, local and national service providers.
Last year saw a rise in drug related death in East Ayrshire with 29 people in 2018.
Additionally, alcohol related deaths increased from 21 people to 30 people; and suicides increased from 12 people to 26 people during the same period.
The Foundations Cafe aims to give people on the road to recovery a chance to rebuild through teamwork and gaining useful employability skills.
It is inclusive to families and aims to engage people across the community.
Organiser Mark Gallagher of Recovery Enterprises Scotland said: “This is purely the start and have some way to go in building and sustaining the model, hopeful there will be local buy-in where the approach is recognised as an asset to all community members.”
The Foundations Cafe is open each Friday from 5 to 8pm in the Howard Centre, Kilmarnock
Home cooked three course meals cost £2 and families cost £5.
For more information contact: recoveryenterprises@outlook.com


Past three weeks
How to use essential language constructs?
- Data Types
- Recursion
- Higher-Order Functions
Next two weeks
How to implement language constructs?
Local variables and scope
Environments and Closures
(skip) Type Inference
Interpreter
How do we represent and evaluate a program?
Roadmap: The Nano Language
Features of Nano:
- Arithmetic
- Variables
- Let-bindings
- Functions
- Recursion
1. Nano: Arithmetic
A grammar of arithmetic expressions:
::= n
e | e1 + e2
| e1 - e2
| e1 * e2
| Expressions | Values | |
|---|---|---|
4 |
==> |
4 |
4 + 12 |
==> |
16 |
(4+12) - 5 |
==> |
11 |
Representing Arithmetic Expressions and Values
Lets represent arithmetic expressions as type
data Expr
= ENum Int -- ^ n
| EAdd Expr Expr -- ^ e1 + e2
| ESub Expr Expr -- ^ e1 - e2
| EMul Expr Expr -- ^ e1 * e2
Lets represent arithmetic values as a type
type Value = Int
Evaluating Arithmetic Expressions
We can now write a Haskell function to evaluate an expression:
eval :: Expr -> Value
ENum n) = n
eval (EAdd e1 e2) = eval e1 + eval e2
eval (ESub e1 e2) = eval e1 - eval e2
eval (EMul e1 e2) = eval e1 * eval e2 eval (
Alternative representation
Lets pull the operators into a separate type
data Binop = Add -- ^ `+`
| Sub -- ^ `-`
| Mul -- ^ `*`
data Expr = ENum Int -- ^ n
| EBin Binop Expr Expr -- ^ e1 `op` e2
QUIZ
Evaluator for alternative representation
eval :: Expr -> Value
ENum n) = n
eval (EBin op e1 e2) = evalOp op (eval e1) (eval e2) eval (
What is a suitable type for evalOp
?
{- 1 -} evalOp :: BinOp -> Value
{- 2 -} evalOp :: BinOp -> Value -> Value -> Value
{- 3 -} evalOp :: BinOp -> Expr -> Expr -> Value
{- 4 -} evalOp :: BinOp -> Expr -> Expr -> Expr
{- 5 -} evalOp :: BinOp -> Expr -> Value
The Nano Language
Features of Nano:
- Arithmetic [done]
- Variables
- Let-bindings
- Functions
- Recursion
2. Nano: Variables
Let’s add variables and let
bindings!
::= n -- OLD
e | e1 + e2
| e1 - e2
| e1 * e2
-- NEW
| x -- variables
Lets extend our datatype
type Id = String
data Expr
= ENum Int -- OLD
| EBin Binop Expr Expr
-- NEW
| EVar Id -- variables
QUIZ
What should the following expression evaluate to?
+ 1 x
(A) 0
(B) 1
(C) Error
Environment
An expression is evaluated in an environment
- A phone book which maps variables to values
"x" := 0, "y" := 12, ...] [
A type for environments
type Env = [(Id, Value)]
Evaluation in an Environment
We write
==> value (eval env expr)
to mean
When expr
is evaluated in environment env
the result is value
So: when we have variables, we modify our evaluator (eval
)
- to take an input environment
env
in whichexpr
must be evaluated.
eval :: Env -> Expr -> Value
= -- ... value-of-expr-in-env... eval env expr
First, lets update the evaluator for the arithmetic cases ENum
and EBin
eval :: Env -> Expr -> Value
ENum n) = ???
eval env (EBin op e1 e2) = ??? eval env (
QUIZ
What is a suitable ?value
such that
"x" := 0, "y" := 12, ...] (x + 1) ==> ?value eval [
(A) 0
(B) 1
(C) Error
QUIZ
What is a suitable env
such that
+ 1) ==> 10 eval env (x
(A) []
(B) [x := 0, y := 9]
(C) [x := 9, y := 0]
(D) [x := 9, y := 10, z := 666]
(E) [y := 10, z := 666, x := 9]
Evaluating Variables
Using the above intuition, lets update our evaluator to handle variables i.e. the EVar
case:
EVar x) = ??? eval env (
Lets confirm that our eval
is ok!
= []
envA = ["x" := 0 , "y" := 9]
envB = ["x" := 9 , "y" := 0]
envC = ["x" := 9 , "y" := 10 , "z" := 666]
envD = ["y" := 10, "z" := 666, "x" := 9 ]
envE
-- >>> eval envA (EBin Add (EVar "x") (ENum 1))
-- >>> eval envB (EBin Add (EVar "x") (ENum 1))
-- >>> eval envC (EBin Add (EVar "x") (ENum 1))
-- >>> eval envD (EBin Add (EVar "x") (ENum 1))
-- >>> eval envE (EBin Add (EVar "x") (ENum 1))
The Nano Language
Features of Nano:
- Arithmetic expressions [done]
- Variables [done]
- Let-bindings
- Functions
- Recursion
2. Nano: Variables
Let’s add variables and let
bindings!
::= n -- OLD
e | e1 + e2
| e1 - e2
| e1 * e2
| x
-- NEW
| let x = e1 in e2
Lets extend our datatype
type Id = String
data Expr
= ENum Int -- OLD
| EBin Binop Expr Expr
| EVar Id
-- NEW
| ELet Id Expr Expr
How should we extend eval
?
QUIZ
What should the following expression evaluate to?
let x = 0
in
+ 1 x
(A) Error
(B) 1
(C) 0
QUIZ
What should the following expression evaluate to?
let x = 0
in
let y = 100
in
+ y x
(A) Error
(B) 0
(C) 1
(D) 100
(E) 101
QUIZ
What should the following expression evaluate to?
let x = 0
in
let x = 100
in
+ 1 x
(A) Error
(B) 0
(C) 1
(D) 100
(E) 101
QUIZ
What should the following expression evaluate to?
let x = 0
in
let x = 100 in
(in
+ 1
x
)+
x
(A) Error
(B) 1
(C) 101
(D) 102
(E) 2
Principle: Static/Lexical Scoping
Every variable use gets its value from a unique definition:
- “Nearest”
let
-binder in program text
Static means you can tell without running the program
Great for readability and debugging
Define local variables
Be sure where each variable got its value
Don’t have to scratch head to figure where a variable got “assigned”
How to implement static scoping?
QUIZ
Lets re-evaluate the quizzes!
-- env
let x = 0
in -- ??? what env to use for `x + 1`?
+ 1 x
(A) env
(B) [ ]
(C) [ ("x" := 0) ]
(D) ("x" := 0) : env
(E) env ++ ["x" := 0]
QUIZ
-- env
let x = 0
in -- (x := 0) : env
let y = 100
in -- ??? what env to use for `x + y` ?
+ y x
(A) ("x" := 0) : env
(B) ("y" := 100) : env
(C) ("y" := 100) : ("x" := 0) : env
(D) ("x" := 0) : ("y" := 100) : env
(E) [("y" := 100), ("x" := 0)]
QUIZ
Lets re-evaluate the quizzes!
-- env
let x = 0
in -- ("x" := 0) : env
let x = 100
in -- ??? what env to use for `x + 1`?
+ 1 x
(A) ("x" := 0) : env
(B) ("x" := 100) : env
(C) ("x" := 100) : ("x" := 0) : env
(D) ("x" := 0) : ("x" := 100) : env
(E) [("x" := 100)]
Extending Environments
Lets fill in eval
for the let x = e1 in e2
case!
ELet x e1 e2) = ??? eval env (
Evaluate
e1
inenv
to get a valuev1
Extend environment with value for
x
i.e. to(x := v1) : env
Evaluate
e2
using extended environment.
Lets make sure our tests pass!
Run-time Errors
Haskell function to evaluate an expression:
eval :: Env -> Expr -> Value
Num n) = n
eval env (Var x) = lookup x env -- (A)
eval env (Bin op e1 e2) = evalOp op v1 v2 -- (B)
eval env (where
= eval env e1 -- (C)
v1 = eval env e2 -- (C)
v2 Let x e1 e2) = eval env1 e2
eval env (where
= eval env e1
v1 = (x, v1) : env -- (D) env1
QUIZ
Will eval env expr
always return a value
? Or, can it crash?
(A) operation at A
may fail (B) operation at B
may fail (C) operation at C
may fail (D) operation at D
may fail (E) nah, its all good…, always returns a Value
Free vs bound variables
Undefined Variables
How do we make sure lookup
doesn’t cause a run-time error?
Bound Variables
Consider an expression let x = e1 in e2
An occurrence of
x
is bound ine2
i.e. when occurrence of form
let x = ... in ... x ...
i.e. when
x
occurs “under” alet
binding forx
.
Free Variables
An occurrence of x
is free in e
if it is not bound in e
Closed Expressions
An expression e
is closed in environment env
:
- If all free variables of
e
are defined inenv
Successful Evaluation
lookup
will never fail
- If
eval env e
is only called one
that is closed inenv
QUIZ
Which variables occur free in the expression?
let y = (let x = 2
in x ) + x
in
let x = 3
in
+ y x
(A) None
(B) x
(C) y
(D) x
and y
Exercise to try at home
Consider the function
evaluate :: Expr -> Value
evaluate e| isOk e = eval emptyEnv e
| otherwise = error "Sorry! bad expression, it will crash `eval`!"
where
= [] -- has NO bindings emptyEnv
What should isOk
check for? (Try to implement it for nano
…)
The Nano Language
Features of Nano:
- Arithmetic expressions [done]
- Variables [done]
- Let-bindings [done]
- Functions
- Recursion
Nano: Functions
Let’s add
lambda abstraction (aka function definitions)
application (aka function calls)
::= n -- OLD
e | e1 `op` e2
| x
| let x = e1 in e2
-- NEW
| \x -> e -- abstraction
| e1 e2 -- application
Example
let incr = \x -> x + 1
in
10 incr
Representation
data Expr
= ENum Int -- OLD
| EBin Binop Expr Expr
| EVar Id
| ELet Id Expr Expr
-- NEW
| ??? -- abstraction \x -> e
| ??? -- application (e1 e2)
Representation
data Expr
= ENum Int -- OLD
| EBin Binop Expr Expr
| EVar Id
| ELet Id Expr Expr
-- NEW
| ELam Id Expr -- abstraction \x -> e
| EApp Expr Expr -- application (e1 e2)
Example
let incr = \x -> x + 1
in
10 incr
is represented as
ELet "incr" (ELam "x" (EBin Add (EVar "x") (ENum 1)))
(EApp (EVar "incr") (ENum 10)
)
Functions are Values
Recall the trinity
But… what is the value of a function?
Lets build some intuition with examples.
QUIZ
What does the following expression evaluate to?
let incr = \x -> x + 1 -- abstraction ("definition")
in
10 -- application ("call") incr
(A) Error/Undefined
(B) 10
(C) 11
(D) 0
(E) 1
What is the Value of incr
?
Is it an
Int
?Is it a
Bool
?Is it a ???
What information do we need to store (in the Env
) about incr
?
A Function’s Value is its Code
-- env
let incr = \x -> x + 1
in -- ("incr" := ) : env
10 -- evaluate  with parameter := 10 incr
What information do we store about
?
A Call’s Value
How to evaluate the “call” incr 10
?
Lookup the

i.e.<param, body>
forincr
(stored in the environment),Evaluate
body
withparam
set to10
!
Two kinds of Values
We now have two kinds of Values
::= n -- OLD
v | <x, e> -- <param, body>
- Plain
Int
(as before) - A function’s “code”: a pair of “parameter” and “body-expression”
data Value
= VInt Int -- OLD
| VCode Id Expr -- <x, e>
Evaluating Lambdas and Applications
eval :: Env -> Expr -> Value
-- OLD
ENum n) = ???
eval env (EVar x) = ???
eval env (EBin op e1 e2) = ???
eval env (ELet x e1 e2) = ???
eval env (-- NEW
ELam x e) = ???
eval env (EApp e1 e2) = ??? eval env (
Lets make sure our tests work properly!
= ELet "incr" (ELam "x" (EBin Add (EVar "x") (ENum 1)))
exLam1
(EApp (EVar "incr") (ENum 10)
)
-- >>> eval [] exLam1
-- 11
QUIZ
What should the following evaluate to?
let c = 1
in
let inc = \x -> x + c
in
10 inc
(A) Error/Undefined
(B) 10
(C) 11
(D) 0
(E) 1
= ELet "c" (ENum 1)
exLam2 ELet "incr" (ELam "x" (EBin Add (EVar "x") (EVar "c")))
(
(EApp (EVar "incr") (ENum 10)
)
)
-- >>> eval [] exLam2
-- ???
QUIZ
And what should this expression evaluate to?
let c = 1
in
let inc = \x -> x + c
in
let c = 100
in
10 inc
(A) Error/Undefined
(B) 110
(C) 11
The “Immutability Principle”
A function’s behavior should never change
- A function must always return the same output for a given input
Why?
> myFunc 10
0
> myFunc 10
10
Oh no! How to find the bug? Is it
- In
myFunc
or - In a global variable or
- In a library somewhere else or
- …
My worst debugging nightmare
Colbert “Immutability Principle”
The Immutability Principle ?
How does our eval
work?
= ELet "c" (ENum 1)
exLam3
(ELet "incr" (ELam "x" (EBin Add (EVar "x") (EVar "c")))
(ELet "c" (ENum 100)
(EApp (EVar "incr") (ENum 10)
)
)
)
-- >>> eval [] exLam3
-- ???
Oops?
-- []
let c = 1
in -- ["c" := 1]
let inc = \x -> x + c
in -- ["inc" := <x, x+c>, c := 1]
let c = 100
in -- ["c" := 100, "inc" := <x, x+c", "c" := 1] <<< env
10 inc
And so we get
10)
eval env (inc
==> eval ("x" := 10 : env) (x + c)
==> 10 + 100
==> 110
Ouch.
Enforcing Immutability with Closures
How to enforce immutability principle
inc 10
always returns11
?
Key Idea: Closures
At definition: Freeze the environment the function’s value
At call: Use the frozen environment to evaluate the body
Ensures that inc 10
always evaluates to the same result!
-- []
let c = 1
in -- ["c" := 1]
let inc = \x -> x + c
in -- ["inc" := <frozenv, x, x+c>, c := 1] <<< frozenv = ["c" := 1]
let c = 100
in -- ["c" := 100, "inc" := <frozenv, x, x+c>, "c" := 1]
10 inc
Now we evaluate
10)
eval env (inc
==> eval ("x" := 10 : frozenv) (x + c) where frozenv = ["c" := 1]
==> 10 + 1
==> 1
tada!
Representing Closures
Lets change the Value
datatype to also store an Env
data Value
= VInt Int -- OLD
| VClos Env Id Expr -- <frozenv, param, body>
Evaluating Function Definitions
How should we fix the definition of eval
for ELam
?
eval :: Env -> Expr -> Value
ELam x e) = ??? eval env (
Hint: What value should we bind incr
to in our example above?
(Recall At definition freeze the environment the function’s value)
Evaluating Function Calls
How should we fix the definition of eval
for EApp
?
eval :: Env -> Expr -> Value
EApp e1 e2) = ??? eval env (
(Recall At call: Use the frozen environment to evaluate the body)
Hint: What value should we evaluate incr 10
to?
- Evaluate
incr
to get<frozenv, "x", x + c>
- Evaluate
10
to get10
- Evaluate
x + c
inx:=10 : frozenv
Let’s generalize that recipe!
- Evaluate
e1
to get<frozenv, param, body>
- Evaluate
e2
to getv2
- Evaluate
body
inparam := v2 : frozenv
Immutability Achieved
Lets put our code to the test!
= ELet "c" (ENum 1)
exLam3
(ELet "incr" (ELam "x" (EBin Add (EVar "x") (EVar "c")))
(ELet "c" (ENum 100)
(EApp (EVar "incr") (ENum 10)
)
)
)
-- >>> eval [] exLam3
-- ???
QUIZ
What should the following evaluate to?
let add = \x -> (\y -> x + y)
in
let add10 = add 10
in
let add20 = add 20
in
100) + (add20 1000) (add10
A. 1100
B. 1110
C. 1120
D. 1130
E. 1140
Functions Returning Functions Achieved!
= ...
exLam4
-- >>> eval [] exLam4
Practice
What should the following evaluate to?
let add = \x -> (\y -> x + y)
in
let add10 = add 10
in
let doTwice = \f -> (\x -> f (f x))
in
100 doTwice add10
Functions Accepting Functions Achieved!
= ...
exLam5
-- >>> eval [] exLam4
The Nano Language
Features of Nano:
- Arithmetic expressions [done]
- Variables [done]
- Let-bindings [done]
- Functions [done]
- Recursion
… You figure it out Hw4 … :-)


Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.
Tell me more
Tell me more
Here's how it works:
- Anybody can ask a question
- Anybody can answer
- The best answers are voted up and rise to the top
Top Questions
0
votes
0
answers
1
view
0
votes
0
answers
1
view
0
votes
1
answer
9
views
0
votes
0
answers
6
views
0
votes
1
answer
8
views
0
votes
0
answers
4
views
0
votes
0
answers
4
views
0
votes
0
answers
3
views
0
votes
0
answers
3
views
0
votes
0
answers
6
views
0
votes
0
answers
11
views
0
votes
1
answer
9
views
0
votes
3
answers
191
views
0
votes
0
answers
3
views
0
votes
2
answers
20
views
2
votes
2
answers
9
views
1
vote
1
answer
19
views
0
votes
0
answers
3
views
3
votes
1
answer
37
views
0
votes
0
answers
2
views
1
vote
1
answer
11
views
0
votes
0
answers
4
views
0
votes
0
answers
9
views
0
votes
1
answer
31
views
1
vote
1
answer
13
views
0
votes
0
answers
10
views
0
votes
0
answers
11
views
1
vote
0
answers
7
views
0
votes
0
answers
10
views
0
votes
3
answers
20
views
1
vote
4
answers
2
kviews
0
votes
0
answers
3
views
0
votes
0
answers
3
views
8
votes
1
answer
225
views
0
votes
0
answers
5
views
2
votes
0
answers
16
views
0
votes
0
answers
2
views
0
votes
0
answers
4
views
0
votes
0
answers
4
views
1
vote
1
answer
27
views
1
vote
1
answer
7
views
7
votes
4
answers
3
kviews
0
votes
0
answers
4
views
0
votes
0
answers
2
views
2
votes
1
answer
77
views
0
votes
0
answers
6
views
0
votes
0
answers
3
views
0
votes
0
answers
4
views
2
votes
1
answer
17
views
0
votes
0
answers
6
views
0
votes
0
answers
3
views
0
votes
0
answers
5
views
0
votes
0
answers
7
views
0
votes
0
answers
3
views
0
votes
0
answers
5
views
0
votes
0
answers
3
views
0
votes
0
answers
6
views
0
votes
0
answers
4
views
0
votes
0
answers
3
views
0
votes
0
answers
4
views
0
votes
2
answers
24
views
0
votes
0
answers
5
views
0
votes
0
answers
3
views
0
votes
0
answers
3
views
0
votes
0
answers
5
views
0
votes
0
answers
8
views
0
votes
0
answers
8
views
0
votes
0
answers
4
views
0
votes
0
answers
2
views
1
vote
2
answers
12
views
0
votes
0
answers
6
views
0
votes
0
answers
5
views
0
votes
0
answers
4
views
0
votes
0
answers
2
views
0
votes
0
answers
5
views
0
votes
0
answers
4
views
0
votes
0
answers
2
views
0
votes
0
answers
6
views
0
votes
0
answers
3
views
4
votes
1
answer
38
views
3
votes
1
answer
14
views
1
vote
0
answers
17
views
0
votes
0
answers
3
views
0
votes
0
answers
3
views
0
votes
0
answers
2
views
3
votes
0
answers
25
views
0
votes
0
answers
3
views
0
votes
0
answers
2
views
1
vote
0
answers
6
views


Novel Pizza!
Uniquely crafted and skillfully made.
Order A Pizza
Customize Your Pizza!
×
Size
Toppings
Sides
Select Pizza Size
Small
Medium
Large
Select Toppings
Meats
Pepperoni
Italian Sausage
Ham
Bacon
Chicken
Non-meats
Olives
Onions
Mushrooms
Tomatoes
Spinach
Select Sides
Bread Sticks
Onion Rings
Mozzarella Sticks
Enter your information
Enter your name:
Thank you for your order,
!
Your total is $
.
Order #
.


Price gets it right at Two-Day Trial
THE UK’s top trial bike riders have vowed to return to Jersey in 2020 after another successful Two-Day Trial.
British champion Jack Price finished on top with seven points at the end of the JMC & LCC’s annual event, after he edged out the legend of the sport and 12-time world champion Dougie Lampkin MBE, who won the BSA Cup for second place, and Toby Martyn.
Richard Pallot, champion in 2018, took home the Maine Cup as the highest-placed Jersey rider, after finishing fourth in the expert class, with Yeo Vale over-40s trophy going to Nick Life.
Organiser Stewart Le Breton hailed the event a success, despite the weekend being hit by wet and windy weather.
He said a number of competitors came from different areas and that the top riders will be back again in 12 months’ time.
‘It all went really well considering the weather was not the greatest,’ said Le Breton.
‘We had a lot of riders over from England and France which was good, we had women riders as well.
‘And we had some of the world’s best who enjoyed and said they will be coming back.
‘Some of the sections had a few problems on Sunday but everything went down okay.
‘We probably had about 120 riders in total, the majority were men with a few women.
‘Most of the riders were from the Channel Islands but it was great to have a 12-time world champion with us and it made for a great spectacle.’
Full report in Thursday's JEP.


| DOSE: |
200 mg |
oral |
AET |
(capsule) |
I read about people insuffulating this to bring it on quicker, don't do this. It burns. I made my eyes tear and water for 50 minutes before the oral dose kicked in.
It hits me much like MDEA does, a stoney and strong rolling feeling. It has visuals and a euphoria I can easily describe as selfish. Unlike x, I don't feel like hugging others or being particually nice or open. It isnt' that I can't, I just don't feel the empathic urge to do so. It brought on a heavyness to my eyes that made me want to keep them closed. It had an opiate like nodding off effect that was plesant, and quite easy to sleep on.
The effects last about 5-6 hours, I found that the Tihkal dosages are a bit shy of what is needed for me. The 00 capsules filled up seem to make about 200-220mg of this, and that is what I need to get rolling.
The after effects are great, for the next two to three days I'll feel just fine. No crash, quite the opposite, I feel good. I'm guessing that's the antidepressant part working. A fellow experimentor noted that ketamine brought on the 'roll' just like it does with ecstacy.
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


HTML is the basis for everything.
URLS are documents on the web.
HTTP is the protocol that the web runs on.
HTML is hypertext markup language and glues everything together.
The web came about in the early 90's.Major Pieces of the Web
You and your computer.
The internet (represented by a cloud).
Third piece, servers.
You, the internet, and servers
are tied together by HTTP.
HTML Markup
An element is composed of
an opening tag and an ending tag.
Contents lie between the opening and ending.
Coverage of B Tags
B tags are used to create
bold elements within your code.
Coverage of EM Tags
EM is short for emphasis.
Em tags are used to create italics
HTML Attributes
The ATTR tag is a value.
The first ATTR introduced is Anchor.
The attribute is href.
The href demonstration showed a link
to Reddit.
The Image Tag
The image tag is IMG and would
have a source (src) that equals a
url address.
There is also an alt provided.
The alt is required and is text
that is most helpful for the blind.
Coverage of void tag.
Discussion of whitespace and no content.
Introduction of the break and void.
Two breaks result in
two line breaks.
We use void tags to make line
breaks. We would use line breaks
within the next topic.
Coverage of P / Paragraph
We moved to the use of P / paragraphs from
the use of line break voids.
The paragraphs is a block,
it makes an invisible box.
While the line break simply ends a line.
Span & Div
Span is in line.
Div is a block, like P / paragraph
Inline tags introduced are
a, span, br, img, and strong.
Block tags introduced are
div, p, and form.
HTML Document
Comprised of a doctype head or the
Title and a body with the contents.
Introductory Wrap Up, Five main points.

When a person goes to a web page like www.google.com,
their computer sends a HTTP Request to a server.
The server finds the appropriate HTML document
and sends it back to the user's computer where
a web browser interprets the page and
displays it on the user's screen.
HTML
HTML stands for Hypertext Markup Language.
HTML documents form the majority of the content on the web.
HTML documents contain text content which describes
"what you see" and markup which describes "how it looks".
Tags and Elements
HTML documents are made of HTML elements.
When writing HTML, we tell browsers
the type of each element by using HTML tags.

This makes them very unforgiving since
a small mistake by a programmer
can cause huge problems in a program.
Inline vs Block Elements
HTML elements are either inline or block.
Block elements form an "invisible box"
around the content inside of them.
 Web browsers
read these documents,
and then interpret and display them.
How Coding Works
Coding happens when programmers write
text in a language that a computer can understand.
The computer can then follow
the instructions the programmer wrote.
Computers are Stupid
Programmers need to write exactly the way
a computer understands
(also known as writing with correct "syntax").

And that's okay. If you forget how to
make text italic in HTML,
you can always just look it up.
Basic HTML Vocabulary
You will be using HTML in the next few lessons,
so it will be helpful if
you're comfortable with the jargon.


- Only those variables which have been declared can be assigned
to or used.
- All int variables and array elements are considered to have
initial values of "0".
- All bool variables are considered to have initial values of "false".
- All binary operators operate on signed integer operands:
- "x * y" results in the product of x and y.
- "x div y" which results in the integer quotient of x divided by y.
The behavior is not defined if y is 0 or
if x is the smallest 32-bit negative integer and y is -1.
- "x mod y" is the results in the remainder of x divided by y
when x is non-negative and y is positive. Otherwise, the result
is undefined.
- "x + y" results in the sum of x and y.
- "x - y" is the difference of y subtracted from x.
- "x = y" is true if x and y are the same, otherwise it is false.
- "x != y" is false if x and y are the same, otherwise it is true.
- "x < y" is true if x is less than y, otherwise it is false.
- "x > y" is true if x is greater than y, otherwise it is false.
- "x <= y" is true if x is less than or equal to y, otherwise it is false.
- "x >= y" is true if x is greater than or equal to y, otherwise it is false.
- Computations should be done using integers using a
32-bit 2's complement representation. Overflowing computations
should simply "wrap around".
- "if" statements evaluate their expression, if the expression is true,
then the "then-statements" are executed, if it is fales, the
"else-statements" are executed.
- "while" statements first evaluates its expression. If it is false,
execution continues after the end of the "while" statement. If
it is true, the statements in the body of the "while" loop are
executed. After they finish executing, the expression is
re-evaluated. As long as the expression is true, the process
repeats itself, alternatively evaluating the expression and
executing the statements in the body. Once the expression is false,
execution continues after the end of the "while" loop.
- "writeInt" evaluates its expression and outputs the result to the console
and causes the cursor to move to the beginning of the next line.
- "readInt" reads an integer from the console and updates an integer
variable to hold that value.
Errata/Clarifications
- 10/2/13: Increased the situations under which multiplication and
division are undefined.


Do data management functions common in real-time monitoring (also called: ecological momentary assessment, experience sampling, micro-longitudinal) data, including creating power curves for multilevel data, centering on participant means and merging event-level data into momentary data sets where you need the events to correspond to the nearest data point in the momentary data. This is VERY early release software, and more features will be added over time.
| Version: | 0.1.3 |
| Imports: | DataCombine, ggplot2, lmerTest, sjstats (≥ 0.10.2) |
| Published: | 2017-08-03 |
| Author: | Evan Kleiman [aut, cre] |
| Maintainer: | Evan Kleiman <ekleiman at fas.harvard.edu> |
| License: | MIT + file LICENSE |
| NeedsCompilation: | no |
| Materials: | README |
| CRAN checks: | EMAtools results |
| Reference manual: | EMAtools.pdf |
| Package source: | EMAtools_0.1.3.tar.gz |
| Windows binaries: | r-devel: EMAtools_0.1.3.zip, r-release: EMAtools_0.1.3.zip, r-oldrel: EMAtools_0.1.3.zip |
| OS X binaries: | r-release: EMAtools_0.1.3.tgz, r-oldrel: EMAtools_0.1.3.tgz |
| Old sources: | EMAtools archive |
Please use the canonical form https://CRAN.R-project.org/package=EMAtools to link to this page.


Apple Maps 3D: How did they do it?
With the release of OS X Mavericks came a bunch of new features like full screen support on multiple monitors (about time, Apple!). One other such feature is the new Maps app. Its unique selling point is 3D flyover maps. How does it work?
New York City, now in 3D!
Not too shabby! Here’s the same shot in Google Earth for comparison:
Smooth as always, Google!
Sorry, but I’m gonna have to side with Google on this one on aesthetics! 3D models in Google Earth are often crowdsourced and built and skinned my hand using the idiot-proof modeling tool Google Sketchup. They’re made to look right. Apple’s Maps on the other hand are built automatically.
Back in late 2011, Apple bought up a Swedish 3D mapping company called C3 Technologies that then disappeared off the radar. C3′s mapping technology was originally intended to help missiles home in on targets but was then used by Nokia’s map app Ovi, before Apple bought the company.
How does it work? It involves taking pictures at a whole range of different angles to the ground from a plane then using computer vision software figure out depth from different images of the same object just like our own eyes do.[1]
That’s why it gets a little wobbly when you zoom in. The advantage is that the skin quality is often much better. Here’s an image of the clock tower at my university in the Maps app:
Old Joe’s Front
And here it is from the other side:
Old Joe’s Behind ಠ_ಠ
You’ll notice the that in each image, one side of the clock tower is a couple of hours apart temporally from the other side. Clearly the plane must have flown by more than once to get all the sides. Another explanation is that the time difference comes from the time it took for the plane to get situated in a way such that one of the perspective cameras lined up with the clock tower just right. In other words, the plane could have been busy taking pictures of the lake in The Vale (north) from above, but at that time, one of its cameras were pointing towards the clock tower from the side. The pictures of the other side would have been taken while the plane was somewhere in Selly Oak (south) by the opposite perspective camera a couple of hours late. Either way, pretty cool stuff.
Let’s see what Google Earth has to offer.
Well, that’s embarrassing…
Weak. Well known places get a lot of attention when crafted, especially when it’s by volunteers. Here, the Great Hall (building with the largest Dome) has it’s entrance blocked by a mysterious clock face that I can assure you is not there in real life.
Apple++ for decent automatic mapping software! Get it together, Google!
Update: I spoke to my project supervisor about this recently and he mentioned how SketchUp can let you take an image of something and define outlines manually on it and let it automatically extrude and skin a model for you (search: “Photo Match”). That would explain how the clock tower skin covers the entrance to the Great Hall; the image that was used to build the models was taken from an angle where the clock tower was covering the Great Hall and hence the model!


Preparation time
30 mins to 1 hour
Cooking time
30 mins to 1 hour
Serves
Serves 6
Dietary
Preheat a baking tray in the oven to put the pie on and you’ll get a nice crisp base for this easy vegetarian pie.
Equipment and preparation: You will need a 23cm/9in metal pie dish with sloping sides for the best results.
For the filling, pour one litre of cold water into a medium pan and bring to the boil. Peel the potatoes and cut into roughly 5mm slices. Carefully drop the potatoes into the hot water and return to the boil. Cook for 4-5 minutes, or until just tender but not breaking apart, then drain in a colander and rinse under running water until cold. Leave to drain.
Melt 25g/1oz of the cubed butter in a large non-stick frying pan and put the rest back in the fridge. Fry the onion over a medium heat for five minutes, or until fairly soft and lightly browned, stirring regularly. Remove from the heat. Preheat the oven to 200C/400F/Gas 6. Put a baking tray in the oven to heat.
To make the pastry, put the flour, butter and cheese in a food processor and blend on the pulse setting until the mixture resembles fine breadcrumbs. With the motor running, add the beaten egg and water and blend until the mixture comes together.
Remove the blade and take the pastry out of the food processor. Knead lightly until the dough forms a ball. Weigh the pastry and take off 250g/9oz for the pie lid. Roll into a ball and set aside. Gather the rest of the pastry into a ball and flatten slightly.
Roll the flattened pastry out on a lightly floured surface, turning every couple of rolls until around 4mm thick and 4cm/1½in larger than a 23cm/9in round pie dish. Lift the pastry over the rolling pin and drop gently into the pie dish. Press the pastry firmly into the base of the dish and up the sides, making sure there are no air bubbles. Leave the excess pastry overhanging the sides.
Arrange a third of the drained potato slices in the pie crust, dot with a third of the reserved butter and season with salt and pepper. Scatter half of the fried onions over the top. Add another third of the potatoes and butter; season well and top with the rest of the onions. Finish with the remaining potatoes and butter and a little more seasoning. Brush the rim of the dish with beaten egg.
Roll the reserved ball of pastry in the same way as the first. Cover the pie with the pastry lid and press the edges together firmly to seal. Trim the pastry with a knife and crimp the edges if you like. Make a couple of small holes in the centre of the pie with the tip of a knife. Glaze the top of the pie generously with beaten egg.
Bake on the tray in the centre of the oven for about 45 minutes, or until the pie is golden-brown all over and the potatoes are soft and piping hot. (You can check that the potatoes are ready by poking a skewer through the hole in the top of the pastry – it should slide in easily.)
For the mushroom gravy, pour the just-boiled water into a large jug and stir in the stock powder and dried mushrooms. Leave to stand for 20 minutes. Drain the mushrooms in a sieve over a bowl, reserving all the soaking liquor. Tip the soaked mushrooms onto a board and roughly chop.
Heat the oil and butter in a large non-stick frying pan and fry the chestnut mushrooms over a medium high heat for 5-6 minutes, or until they are lightly browned, stirring regularly.
Sprinkle over the flour and stir well. Slowly add the mushroom liquor to the pan, just a ladleful at a time, stirring well between each addition. At the bottom of the bowl of liquor you will probably see some grit from the mushrooms, avoid it as you ladle. This will mean you have around 1-2 tablespoons of unused liquid that can be chucked away.
Bring the mushroom sauce to a gentle simmer, stir in the chopped, soaked mushrooms and cook for three minutes, stirring occasionally until the gravy has thickened. Season with salt and lots of ground black pepper. Stir in the chives, if using.
For the wilted spinach with nutmeg, rinse the young spinach leaves in a colander and drain well. Melt the butter in a large non-stick frying pan or saucepan over a medium heat. Shake the spinach into the pan, season with some freshly grated nutmeg, a good pinch of salt and lots of ground black pepper.
Cover with a lid and cook for two minutes or until the spinach softens and wilts. Remove the lid now and again and give the spinach a stir. Serve hot.
Serve the pie with the wilted spinach and mushroom gravy.


Introduction
This project aims to be a seed for single-page user driven web apps.
- Persistence: Slick
- Presentation: AngluarJS and Bootstrap
- REST: Play Framework
- Security: SecureSocial
Setup
- Download the project from https://github.com/spass/spass
- Navigate to the folder
- Execute ./activator run
- Enjoy


{{comment.created}} {{comment.author}} {{comment.body}} {{children.created | date:'dd/MM/yyyy'}} {{children.author}} {{children.body}}


Removing Multiple Deleted User Accounts
How to remove multiple user accounts which have been "soft" deleted from the User Accounts module. This action will permanently remove all information related to these accounts from your site's database.
- Navigate to Admin > User Accounts - OR - Go to a User Accounts module.
- Click the Remove Deleted Users link.
- Click the Yes button to confirm.


A domain name is an identification string that defines a realm of
administrative autonomy,
authority or control within the Internet. Domain names are used in various networking contexts and
for
application-specific
naming and addressing purposes. In general, a domain name identifies a network domain,
or it represents an Internet Protocol (IP) resource, such as a personal computer used to access the
Internet,
a server computer hosting a website, or the web site itself or any other service communicated via
the Internet.
Domain names are formed by the rules and procedures of the Domain Name System (DNS).
Any name registered in the DNS is a domain name. Domain names are organized in subordinate levels
(subdomains)
of the DNS root domain, which is nameless.
The first-level set of domain names are the top-level domains (TLDs), including the generic
top-level domains
(gTLDs), such as the prominent domains com, info, net, edu, and org, and the country code top-level
domains
(ccTLDs).
Domain names serve to identify Internet resources, such as computers, networks, and services,
with a text-based label that is easier to memorize than the numerical addresses used in the Internet
protocols.
A domain name may represent entire collections of such resources or individual instances. Individual
Internet host computers use domain names as host identifiers, also called hostnames.
The term hostname is also used for the leaf labels in the domain name system, usually without
further subordinate domain name space.
Hostnames appear as a component in Uniform Resource Locators (URLs) for Internet resources such as
websites (e.g., en.wikipedia.org)
The Internet Corporation for Assigned Names and Numbers(ICANN) is an
American multi-stakeholder group and nonprofit organization
responsible for coordinating the maintenance and procedures of several databases related to the
namespaces and numerical spaces of the Internet,
ensuring the network's stable and secure operation.
ICANN performs the actual technical maintenance work of the Central Internet Address pools and DNS
root zone registries pursuant to the Internet Assigned Numbers Authority (IANA) function contract.
Much of its work has concerned the Internet's global Domain Name System (DNS), including policy
development for internationalization of the DNS system, introduction of new generic top-level
domains (TLDs),
and the operation of root name servers. The numbering facilities ICANN manages include the Internet
Protocol address spaces for IPv4 and IPv6, and assignment of address blocks to regional Internet
registries.
ICANN also maintains registries of Internet Protocol identifiers.
ICANN's primary principles of operation have been described as helping preserve the operational
stability of the Internet;
to promote competition; to achieve broad representation of the global Internet community; and to
develop policies appropriate to its mission through bottom-up,
consensus-based processes.


DoubleDown aims to be a simple, structured and extensible, plain-text markup language.
Note: This document is itself written using DoubleDown; you can see the source for it here.
There would be no DoubleDown without John Gruber's Markdown lighting the way. Markdown's syntax allows writing machine-processable documents, while still remaining readable. Indeed, that philosophy is clearly stated by John up-front:
The overriding design goal for Markdown's formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it's been marked up with tags or formatting instructions.
As great as Markdown is, there are times when its design gets in the way of what you want to do. Maybe you want some conditional text. Maybe you need a special kind of paragraph; a sidebar for instance. Maybe you want to include some comments which should not show up in the final output. Maybe you want to do citations and have a bibliography at the end. Or a table-of-contents at the start.
Yes, you can fix most everything by including raw HTML in a Markdown document. But if HTML is anything, readable is not high on its list of attributes. And so it detracts from Markdown's overriding design goal.
In addition, HTML may not be the type of output we want. If you want to write a paper, or a book, you're most likely targeting PDF instead.
So here I offer DoubleDown as an alternative. It tries to stick to Markdown's overall design goal of readability, retaining some of its best ideas, while also balancing some extra constraints:
DoubleDown documents are made up of discrete blocks of text. The first and foremost thing to understand about DoubleDown's syntax is precisely what makes up an individual block.
A block is a sequence of one or more lines. Any two lines in a document are part of the same block, unless:
The idea of using blank lines to separate blocks of text comes straight from Markdown, and it's a great one. It makes for a very readable raw document.
The idea of using indentation to separate blocks, however, is not a Markdown concept. The inspiration here comes from programming languages like Python. It is known as the off-side rule, and it adds a hierarchical structure to blocks, which will let us do some creative things while keeping the actual text readable.
The logical tree structure will, of course, match the tree structure as it visually appears in the document. That is, blocks are ordered as found in the document. So if one block appears before another in the text, then it will precede that block in the tree. If one block is indented below another in the text then it will appear as descendent of that block in the tree.
The parent of any block is the closest preceding block whose indentation is lower than the current one. If no such block exists then the block is a "root" block.
For example:
The quick
brown fox
jumped over
the lazy
dog.
The hierarchy for this would match:
DoubleDown blocks get categorized into one of different types, the most basic of which is just a chunk of text, or "paragraph". But there also headings, lists, tables, and others.
Any block should be of only one kind. So you should not mix a list into a heading, for instance. Keep separate things in separate blocks. While this may sound (overly ?) restrictive, it helps readability, simplifies the formatting rules, and just makes processing DoubleDown documents easier.
When a block is not recognized as any specific type, it gets marked as being a paragraph. This is just a generic block of text, and is what makes up most documents (including this one).
A block which starts with a sequence of one or more hash characters (
# This is a top-level heading
## This is a sub-heading
########## What level heading are we at ?
It is ok to split the heading over multiple lines, if that's more convenient.
# The nucleotide sequence of a 3.2 kb segment of mitochondrial maxicircle
DNA from Crithidia fasciculata containing the gene for cytochrome oxidase
subunit III, the N-terminal part of the apocytochrome b gene and a
possible frameshift gene; further evidence for the use of unusual
initiator triplets in trypanosome mitochondria
A block where the first line starts with an asterisk (
* Once upon a midnight dreary,
* while I pondered,
weak and weary,
* Over many a quaint
and curious volume
of forgotten lore
Becomes:
When one list block follows another at the same level of indentation, they are considered to be part of the same list. For example:
* Once upon a midnight dreary,
* while I pondered,
weak and weary,
* Over many a quaint
and curious volume
of forgotten lore
Despite being three distinct list blocks, DoubleDown will treat this as just a single list. This is needed for doing nested lists. For example:
* Fruit
* Apples
* Oranges
* Vegetables
* Tomatoes
* Carrots
Becomes:
This also allows for lists with more elaborate content in their items. For example:
* Lorem Ipsum
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.
* Fibonacci
[code javascript]
> function fibonacci(n) {
> if (n <= 1) return 1;
> return fibonacci(n - 1) + fibonacci(n - 2);
> }
Becomes:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
function fibonacci(n) {
if (n <= 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
A block where each line starts with a number, followed by a period (
1. Once upon a midnight dreary,
2. while I pondered,
weak and weary,
3. Over many a quaint
and curious volume
of forgotten lore
Becomes:
List numbers need not be in order, sequential, or even unique. So the following example will give the exact same result.
0. Once upon a midnight dreary,
0. while I pondered,
weak and weary,
0. Over many a quaint
and curious volume
of forgotten lore
When one numbered list block follows another at the same level of indentation, they are considered to be part of the same list. For example:
1. Once upon a midnight dreary,
2. while I pondered,
weak and weary,
3. Over many a quaint
and curious volume
of forgotten lore
Despite being three distinct list blocks, DoubleDown will treat this as just a single list. This is needed for doing nested lists. For example:
1. Fruit
1. Apples
2. Oranges
2. Vegetables
1. Tomatos
2. Carrots
Becomes:
This also allows for lists with more elaborate content in their items. For example:
1. Lorem Ipsum
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim
veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
commodo consequat.
2. Fibonacci
[code javascript]
> function fibonacci(n) {
> if (n <= 1) return 1;
> return fibonacci(n - 1) + fibonacci(n - 2);
> }
Becomes:
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
function fibonacci(n) {
if (n <= 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
A block where each line starts with a pipe (
| 8 | 1 | 6 |
| 3 | 5 | 7 |
| 4 | 9 | 2 |
Becomes:
| 8 | 1 | 6 |
| 3 | 5 | 7 |
| 4 | 9 | 2 |
When one table block follows another at the same level of indentation, they are considered to be part of the same table. For example:
| 8 | 1 | 6 |
| 3 | 5 | 7 |
| 4 | 9 | 2 |
Despite being three distinct table blocks, DoubleDown will treat this as just a single table.
A block where each line starts with a dash (
- Title: DoubleDown
- PI: 3.14159265359...
When one dictionary block follows another at the same level of indentation, they are considered to be part of the same dictionary. For example:
- Title: DoubleDown
- PI: 3.14159265359...
A block where each line starts with a greater-than sign (
> Once upon a midnight dreary, while I pondered, weak and weary,
> Over many a quaint and curious volume of forgotten lore—
> While I nodded, nearly napping, suddenly there came a tapping,
> As of some one gently rapping, rapping at my chamber door.
> “’Tis some visitor,” I muttered, “tapping at my chamber door—
> Only this and nothing more.”
Becomes:
Once upon a midnight dreary, while I pondered, weak and weary, Over many a quaint and curious volume of forgotten lore— While I nodded, nearly napping, suddenly there came a tapping, As of some one gently rapping, rapping at my chamber door. “’Tis some visitor,” I muttered, “tapping at my chamber door— Only this and nothing more.”
A block which starts with four forward slashes (
//// This is a comment.
It is ok to split the comment over multiple lines, if that's more convenient.
//// This is
a multi-line
comment.
A sequence of three or more dashes (
---
Becomes:
Any parts of text enclosed on either side by double underscores (
__Once__ upon a **midnight dreary**
Becomes:
Once upon a midnight dreary
The text being enclosed can selection multiple lines, but not multiple blocks. For example:
while I pondered, __weak
and weary__,
Becomes:
while I pondered, weak and weary,
Both forms of emphasis may be combined. For example:
Over __many a **quaint** and **curious** volume__ of forgotten lore
Becomes:
Over many a quaint and curious volume of forgotten lore
Any parts of text enclosed on either side by double tildes (
Nameless here for ~~never~~ evermore.
Becomes:
Nameless here for
A sequence of three or more underscores (
Nameless here for __________.
Becomes:
Nameless here for
Any text following double less-than signs (
Once upon a midnight dreary, <<while I pondered,>> weak and weary,
A selection does not do anything other than mark a section of text. Why would you want to do that ? So macros can be applied to them.
There is one more type of inline element which connects inline elements to blocks: slots.
Any text following double curly opening braces (
Once upon a {{time}}
The text enclosed within the slot, minus any leading and trailing whitespace is
the slot's key. So, in the above example, the key is
Slots are replaced by whatever text and/or blocks have been defined as the value associated with that key. How do you associate values to keys ? Well, through dictionaries, of course.
Here is a simple example, showing the combination in action:
Quoth {{who}} "{{what}}."
- who: the **Raven**
- what: __Nevermore__
Becomes:
Quoth the Raven "Nevermore."
How do you place multiple lines in a table ? How do you place a list in a table ? How do you place a table in a table ? In DoubleDown the answer is simple: slots.
| A Poem | By |
| {{poem}} | Edgar Allen Poe |
- poem:
Once upon a midnight dreary, while I pondered, weak and weary
Over many a quaint and curious volume of forgotten lore -
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping, rapping at my chamber door.
"'Tis some visiter," I muttered, "tapping at my chamber door -
Only this and nothing more."
Becomes:
| A Poem | By |
Once upon a midnight dreary, while I pondered, weak and weary Over many a quaint and curious volume of forgotten lore - While I nodded, nearly napping, suddenly there came a tapping, As of some one gently rapping, rapping at my chamber door. "'Tis some visiter," I muttered, "tapping at my chamber door - Only this and nothing more." |
Edgar Allen Poe |
| A Poem | By |
| {{poem}} | Edgar Allen Poe |
- poem:
* Ah, distinctly I remember it was in the bleak December;
* And each separate dying ember wrought its ghost upon the floor.
* Eagerly I wished the morrow; - vainly I had sought to borrow
* From my books surcease of sorrow - sorrow for the lost Lenore -
* For the rare and radiant maiden whom the angels name Lenore -
* Nameless here for evermore.
Becomes:
| A Poem | By |
|
Edgar Allen Poe |
| A Poem | By |
| {{poem}} | Edgar Allen Poe |
- poem:
| Ah, distinctly I remember | it was in the bleak December; |
| And each separate dying ember | wrought its ghost upon the floor. |
| Eagerly I wished the morrow; | - vainly I had sought to borrow |
| From my books surcease of sorrow | - sorrow for the lost Lenore - |
| For the rare and radiant maiden | whom the angels name Lenore - |
| Nameless here | for evermore. |
Becomes:
| A Poem | By | ||||||||||||
|
Edgar Allen Poe |
Macros are DoubleDown's extension points. Their meaning is not defined by DoubleDown; only their syntax is. But you can think of them as procedures being applied to (parts of) a DoubleDown document.
Anything enclosed between an opening square bracket (
[link https://www.wikipedia.org/]
Anything between the square brackets gets separated into values by whitespace. The first value (which is required) is the macro's name.
What a macro applies to depends on where the macro appears in the text.
[code dbldwn]
> * Apples
> * Oranges
Here the macro
If there are no nested blocks, it is assumed that the macro can do its work without any.
More on <<the author of the Raven>>[link TheRaven]
can easily be found online.
Here the macro
If there is no selection, it is assumed that the macro can do its work without one.
The
For example, say that there exists a file named
Once upon a midnight dreary, while I pondered, weak and weary,
Over many a quaint and curious volume of forgotten lore—
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping, rapping at my chamber door.
“’Tis some visitor,” I muttered, “tapping at my chamber door—
Only this and nothing more.”
We could reference that file from another, as in the following example:
# The Raven
[include the_raven.dbl.txt]
This would be equivalent to:
# The Raven
Once upon a midnight dreary, while I pondered, weak and weary,
Over many a quaint and curious volume of forgotten lore—
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping, rapping at my chamber door.
“’Tis some visitor,” I muttered, “tapping at my chamber door—
Only this and nothing more.”
Note that the included file adheres to the nesting of the macro, as indicated by the indentation.
File references are resolved relative to the path of the file declaring the inclusion.
The list of available macros may be expanded by third party modules, which can
be loaded in on-demand by means of the
[use bibliography]
This would load the
Upon close reading of <<The Raven>>[see POE p.42]...
Now, this would look for any
Upon close reading of <<The Raven>>[bibliography see POE p.42]...
Any character preceded by a backslash (
\# The Raven
Becomes:
# The Raven
The escaped character will be passed as-is to the document, with the backslash removed. For example:
\N\e\v\e\r\m\o\r\e
This will yield the same as:
Nevermore
If you need a backslash in your document, just escape it:
\\


To mark International Women’s Day, we’ve compiled a list of the most-borrowed books by female authors for children, young adults and adults in our libraries from the past month.
Children’s books
Zog, The Scarecrows’ Wedding, Monkey Puzzle, Tabby McTat The Gruffalo and Sugarlump and the Unicorn by Julia Donaldson
This host of titles for babies and young children covers a range of animals and situations.
Who’s in the Loo?, by Jeanne Willis
“‘Who’s in the loo? There’s a very long queue. Is it an elephant doing a poo?’
“If your house has many occupants, then this rhyme from the irreverent and observant pen of Jeanne Willis will interest you.”
I Need a Wee!, by Sue Hendra
“Alan the bear has a problem. He needs a wee! But there are so many things he would rather do first. Will he make it to the loo on time? And when he gets there, will there be a queue?”
The above two titles suggest our youngest customers have very particular reading preferences. Perhaps we should order some more toilet-related books to keep up with demand!
Big Red Bath, by Julia Jarman
“Ben and Bella are having such a lovely, splashy time in the big, red bath that soon everybody wants to join in the fun! But will there be room for all the animals - even Hippopotamus?”
Super Good Skills (almost…), by Liz Pichon
“Look out! Tom, Delia, and the whole Gates family (Fossils included) are going on holiday. How will Tom manage to keep himself busy on the most boring campsite ever? By doodling, of course!”
Young Adult books
Girl Online On Tour and Girl Online Going Solo, by Zoe Sugg
The second and third titles in Zoe Sugg aka Zoella’s Girl Online series. On Tour sees blogger Penny dealing with the demands of a world tour with her rock star boyfriend, Noah, while in Going Solo, Noah is off the radar and Penny finds a new love interest on a visit to her friend’s performing arts school.
The Lie Tree, by Frances Hardinge
“Faith’s father has been found dead under mysterious circumstances, and as she is searching through his belongings for clues she discovers a strange tree. The tree only grows healthy and bears fruit if you whisper a lie to it. The fruit of the tree, when eaten, will deliver a hidden truth to the person who consumes it. The bigger the lie, the more people who believe it, the bigger the truth that is uncovered. The girl realizes that she is good at lying and that the tree might hold the key to her father’s murder, so she begins to spread untruths far and wide across her small island community. But as the tree bears more and more fruit, she discovers something terrifying - that her lies were closer to the truth than she could ever have imagined.”
Noughts and Crosses, by Malorie Blackman
“Sephy is a Cross – a member of the dark-skinned ruling class. Callum is a nought – a ‘colourless’ member of the underclass who were once slaves to the Crosses. The two have been friends since early childhood. But that’s as far as it can go. Until the first steps are taken towards more social equality and a limited number of Noughts are allowed into Cross schools…
“Against a background of prejudice and distrust, intensely highlighted by violent terrorist activity by Noughts, a romance builds between Sephy and Callum – a romance that is to lead both of them into terrible danger.”
The first in a trilogy, Noughts and Crosses is still issuing well 16 years after it was first published.
One, by Sarah Crossan
“Grace and Tippi are twins - conjoined twins. And their lives are about to change. No longer able to afford homeschooling, they must venture into the world - a world of stares, sneers and cruelty. But can they find more than that at school? Can they find real friends? And what about love?
“Just as Tippi and Grace have begun to live like normal teenagers, Grace gets sick, so separation might be the only option left open to them. But separation could mean spending the rest of their lives in wheelchairs. Separation could mean death. And whatever happens, it means being torn apart.”
Finding Audrey, by Sophie Kinsella
“Audrey can’t leave the house. She can’t even take off her dark glasses inside the house. Then her brother’s friend Linus stumbles into her life. With his friendly, orange-slice smile and his funny notes, he starts to entice Audrey out again - well, Starbucks is a start. And with Linus at her side, Audrey feels like she can do the things she’d thought were too scary. Suddenly, finding her way back to the real world seems achievable.
“Be prepared to laugh, dream and hope with Audrey as she learns that even when you feel like you have lost yourself, love can still find you.”
Adult fiction books
The Girl on the Train, by Paula Hawkins
“Rachel catches the same commuter train every morning. She knows it will wait at the same signal each time, overlooking a row of back gardens. She’s even started to feel like she knows the people who live in one of the houses. ‘Jess and Jason’, she calls them. Their life - as she sees it - is perfect. If only Rachel could be that happy.
“And then she sees something shocking. It’s only a minute until the train moves on, but it’s enough. Now everything’s changed. Now Rachel has a chance to become a part of the lives she’s only watched from afar. Now they’ll see: she’s much more than just the girl on the train.”
Another title that continues to issue well long after it hit the shelves.
The Dandelion Years, by Erica James
“Ashcombe was the most beautiful house Saskia had ever seen as a little girl. A rambling pink cottage on the edge of the Suffolk village of Melbury Green, its enchanting garden provided a fairy-tale playground of seclusion, a perfect sanctuary to hide from the tragedy which shattered her childhood.
“Now an adult, Saskia is still living at Ashcombe and as a book restorer devotes her days tending to the broken, battered books that find their way to her, daydreaming about the people who had once turned their pages. When she discovers a notebook carefully concealed in an old Bible - and realising someone has gone to a great deal of trouble to hide a story of their own - Saskia finds herself drawn into a heart-rending tale of wartime love.”
We suspect the local setting, as well as Erica’s general popularity, has drawn a lot of our readers to this book.
No Place to Hide, by Susan Lewis
“Why has Justine Cantrell suddenly changed her name, abandoned the husband and family she loves and a successful business to start a new life in a place many thousands of miles away? There isn’t a man involved, but there is a terrible secret that she must hide from her new friends and neighbours as securely as she needs to hide herself from those she’s left behind. What is Justine’s secret?”
Career of Evil, by Robert Galbraith
“When a mysterious package is delivered to Robin Ellacott, she is horrified to discover that it contains a woman’s severed leg. Her boss, private detective Cormoran Strike, is less surprised but no less alarmed. There are four people from his past who he thinks could be responsible - and Strike knows that any one of them is capable of sustained and unspeakable brutality. With the police focusing on the one suspect Strike is increasingly sure is not the perpetrator, he and Robin take matters into their own hands, and delve into the dark and twisted worlds of the other three men. But as more horrendous acts occur, time is running out for the two of them.”
We’re sure we don’t need to explain that we haven’t erroneously included a man on our list, as it’s a very open secret that Robert Galbraith is J. K. Rowling writing under a pseudonym.
Cartes Postales from Greece, by Victoria Hislop
“Week after week, the postcards arrive, addressed to a name Ellie does not know, with no return address, each signed with an initial: A.  After six months, to her disappointment, they cease. But the montage she has created on the wall of her flat has cast a spell. She must see this country for herself.
“On the morning Ellie leaves for Athens, a notebook arrives. Its pages tell the story of a man’s odyssey through Greece. Moving, surprising and sometimes dark, A’s tale unfolds with the discovery not only of a culture but also of a desire to live life to the full once more.”


Making Filters Using p5.js!
Video Capture
Steps:
- Create variable for your video = capture
- Use the createCapture method to capture the video. This opens the digitizer
- Set video size to the same dimensions as canvas
- Use hide method to hide capture feed.
Vocabulary:
| Capture Feed | A display showing whatthe capmera is capturing in real time. |
var capture; // this is the video camera
function setup() {
createCanvas(640, 480);
pixelDensity(1);
background(100);
capture = createCapture(VIDEO); // this opens the digitizer
capture.size(640, 480);
capture.hide();
}
For more information on video capture, click this link!
Copying Capture
Now let's create a varible containing a copy of our video feed. We will need this copy in order to have access to the pixel array. Use the get( ) method to create a pixel array out of our video frames:
var capture; // this is the video camera
var capimg;
function setup() {
createCanvas(640, 480);
pixelDensity(1);
background(100);
capture = createCapture(VIDEO); // this opens the digitizer
capture.size(640, 480);
capture.hide();
}
function draw() {
capimg = capture.get(); // copying the video
}
Change Pixels
All you have to do now is alter the pixels however you like! For black & white, negative or sepia filter, check our the Image Filter Tutorial!
In this tutorial we are going to do soemthing different! We will apply different color filter depending on where the mouse is on the screen. All we have to is set the red channel to the mouse's X-position, keep the green channel, and make the blue channel the y-position.
capimg.pixels[i+0] = mouseX;
capimg.pixels[i+1] = g;
capimg.pixels[i+2] = mouseY;
var capture; // this is the video camera
var capimg;
function setup() {
createCanvas(640, 480);
pixelDensity(1);
background(100);
capture = createCapture(VIDEO); // this opens the digitizer
capture.size(640, 480);
capture.hide();
}
function draw() {
capimg = capture.get(); // copying frames
if(capimg.width > 0) {
capimg.loadPixels(); // getting pixel array
for(var i = 0; i < capimg.pixels.length; i += 4) // combination of double for loop mentioned in other tutorials
{
var r = capimg.pixels[i+0];
var g = capimg.pixels[i+1];
var b = capimg.pixels[i+2];
capimg.pixels[i+0] = mouseX;
capimg.pixels[i+1] = g;
capimg.pixels[i+2] = mouseY;
}
capimg.updatePixels();
image(capimg, 0, 0, width, height);
}
}


Hi,
I've got a kWhd feed using PHPTIMESERIES and from the vis view I can see each days value at 12:00. How do I pull that value from the feed API? It seems whatever json I user (get/data/histogram) I get back blank data such as 0/false/[]
Thanks for your help!
Kev
Re: How to get yesterday's kWhd value?
I've managed to get a list of feeds from data.json and limited to a single item.
http://emoncms.org/feed/data.json?id=8343&start=1440633600000&end=144072...
and here's the output
Is there a way of directly requesting entry<PHONE_NUMBER>000?
Thanks,
Kev
Re: How to get yesterday's kWhd value?
Hello Kev, limiting a data.json request to one item is the only way to do it at the moment, Its the method I recently used to fetch last week/month/year data in myelectric.
All that you need to do, much as you've worked out is set the end time to 1 second after the time you wish to request and the interval to 1 second and then it will give the value at the start time requested.
http://emoncms.org/feed/data.json?id=8343&start=1440633600000&end=1440633601000&interval=1


切叶蚁系统，能够将MySQL数据同步至 ElasticSearch、Redis、MySQL、RocketMQ 数据源
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.
Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts.