Newcastle City Council reveals changes to what rubbish should go in recycling bins
Yoghurt pots can now be recycled by Newcastle City Council following these changes to what waste and rubbish can be put in what bin
by Simon DukeIt's something of a grey area when it comes to putting the rubbish out and Newcastle City Council has revealed some changes as to what rubbish goes into what bin right in time for Christmas, when we're all sure to have plenty of extra things to dispose of.
According to the council website , all residents of Newcastle have a responsibility to ensure that all of their rubbish and waste is disposed of properly. Under the Household Waste Duty of Care (section 34(2A) of the Environmental Protection Act 1990), residents are required to take reasonable measures to ensure that waste produced on their property is only passed on to an authorised person.
And changes have recently been made as to what can be recycled, so here is a full break down of what waste should go in what colour bin...
Green bin: household waste
Your green wheelie bin is for household and food waste, and waste that cannot be recycled.
DO NOT place the following items in your green bin:
Rubble and bricks
Vehicle parts
Items which may make the bin too heavy
Commercial or trade waste
Liquids
Small electrical items - please take these to your nearest Household Waste Recycling Centre
Carpets or furniture
Blue bin: recycling
Use the main part of your blue bin to recycle the following items, placed inside loose without bags:
Washed and dried margarine tubs, yoghurt pots, meat trays or fruit punnets (no black plastic)
Empty aerosol cans
Cartons and cardboard egg boxes (flattened)
Plastic bottles (flattened, with tops replaced)
Cardboard (flattened)
Newspaper, magazines and paper (no plastic coated paper, no shredded paper or bound files)
White and brown envelopes - it doesn't matter if they have windows or not
Telephone directories and Yellow Pages
Food and drink cans (rinsed and squashed)
Foil and foil trays (rinsed)
Biscuit tins and plastic chocolate tubs
Use the black caddy inside your blue bin to recycle:
Rinsed glass bottles and jars ( not pyrex glass, drinking glasses, broken window panes, mirrors)
DO NOT not place the following items in your blue bin:
Compostable films, plastics or items like compostable cutlery and plates
Small electrical items - old or broken things like toasters, kettles or irons, please take these to your nearest Household Waste Recycling Centre.
Brown bin: garden waste
To help you keep a tidy garden your brown bin garden waste collection will accept all your garden trimmings, cuttings, prunings, leaves and weeds.
Please place this waste loosely in your bin, not in plastic bags or sacks.
The following vegetation SHOULD NOT be placed in your bin:
Branches, logs, or roots more than 10cm (4 inches) in diameter
Japanese Knotweed
DO NOT put the following items in your brown bin:
Turf
Stones
Rubble
Plant pots
Dog and cat faeces
Straw and hay bedding used for pets
Food waste or refuse
Compostable films, plastics or items like cutlery and plates*
Anything in black bags or plastic bags.


You are not yet authenticated. Log in.
Thank you for logging in! Log out.
If you’ve enabled multifactor in your Auth0 dashboard, you will have needed to go through multiple authentication steps to get here. If not, ensure that
multifactor authentication with Guardian


Active subscribe failed. Maybe your email has been activated or our server went wrong.
Please try again
Regards,
Tour Nest Team


Kenzo hangs out with ManUtd's Bissaka as Rema introduces Hamza
by AdminEddy Kenzo has spent his evening hanging out with Manchester United defender Aaron Wan-Bissaka
Photo Credit: Kenzo
Eddy Kenzo has spent his evening hanging out with Manchester United defender Aaron Wan-Bissaka in Dubai as Rema introduced Hamza to her parents in Nabbingo, Wakiso district. In a post on his facebook page, he seen hanging out with the ManUtd defender.
Eddy Kenzo with Aaron Wan-Bissaka
Eddy Kenzo is in Dubai to perform at the One Africa Music Fest


Select a payment method
Choose your delivery method
OR
Delivery Address (Edit)
{{chooseddeliery.address}},{{chooseddeliery.delivery_area.name}},{{chooseddeliery.delivery_area.address_value}}
Oops! This restaurant does not deliver to the selected location.
Added Orders
-
{{hs.item_name}}
- {{y.name}} - {{s.name}}({{s.price | priceformat}})
{{hs.quantity}} x {{getItemPriceSubtotal(hs._id) | priceformat}}{{getItemPriceSubtotal(hs._id) | priceformat}}
No items added


Hack
|
Design
|
Capture
Hiram Moncivais
Hack
|
Design
|
Capture
Hi! I'm Hiram, a sophomore at MIT interested in
design
,
understanding data
, and
helping people
through technology.
Hack
MyBucket
- 6.148 Finalist
Timeless Art
- MAS.110 Final Project
Positivity
- HackMIT 2015
More Hack
Design
Sunset Logo
- San Diego Water Polo Team
Technique Banner
- Yearbook Club
Can't Stop The Chaos
- Football Spirit Shirt
More Design
Capture
La Bufadora
- Ensenada, Mexico
Gene Shinozaki, Level 5
- Cambridge, MA
Over Seoul
- Seoul, South Korea
More Capture


If you’re not writing software to manage them (Ops), you’re not surviving.
Software creation and distribution is easier and faster than ever
First, we need to understand a little bit about software release processes
“Fear is the path to the dark side. Fear leads to anger. Anger leads to hate. Hate leads to suffering.” – Yoda
Devops is not a plan, it’s a reaction.
Paint the wall with awareness
Development teams would write a bunch of code for months. Then those teams would merge their code in order to release it. Their are different versions of code and have so many changes that the actual integration step could take days.
Continuous integration is often the first step down the path toward DevOps maturity. It is the practice of quickly integrating newly developed code with the main body of code that is to be released.
It is an extension of continuous integration. It’s the practice of having the code base continuously in a ready-to-deploy state.
It is DevOps nirvana, is the most advanced evolution of continuous delivery. It’s the practice of deploying all the way into production without any human intervention.
Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU and Google are popular examples of companies doing continuous deployment.
"Automated tests transform fear into boredom." -- Eran Messeri, Google
AWS Outage 2014: Out of our 2700+ production Cassandra nodes, 218 were rebooted. 22 Cassandra nodes did not reboot successfully.
Source control is a major component of continuous integration.
Integrates code into a shared repository several times a day. Teams can detect problems early with the help of automated unit test runs.
The build server is an automation tool that compiles the code in the source code repository into executable code base.
A repository manager is a dedicated server application designed to manage repositories of binary components.
Configuration management defines the configuration of a server or an environment.
Deployment tools helps us in automating application deployments, improve the speed and quality of software releases.
Cloud / IaaS / PaaS combined with automation tools to empower organizations practicing DevOps with the ability to configure a server without any fingers on the keyboard.
DevOps testing focuses on automated testing within your build pipeline to ensure that by the time that you have a deployable build, you are confident it is ready to be deployed.
Infrastructure Orchestration is an automated arrangement, coordination, and management of complex computer systems, middleware and services.


The message, or alert, box is a method of alerting a user to a success, a failure, or otherwise importantant contextual information that shlud stand-out due to it's importance. These would be event-propogated as part of a usage flow.


@(params: Map[String, Any]) @uk.gov.hmrc.hmrcemailrenderer.templates.helpers.html.template_main(params, "You have been removed from an application") {
You’ve been removed from @{params("applicationName")} on the HMRC @{params.getOrElse("developerHubTitle", "Developer Hub")}.
You can no longer access this application.
From HMRC @{params.getOrElse("developerHubTitle", "Developer Hub")}
}


This area is for nerds only!
Seriously, if you don't know what a data schema is, or if you have never heard of JSON, then you should not be here because you'll likely break things.
Are you still sure you want to go here?


To Bootcamp or Not to Bootcamp
There won’t be a new episode of Junior Developer Toolbox this week. But fret not! Dave and I are taking a break to recharge and plan upcoming show content. Dave is soaking up some rays on a cruise with his family (I’m jealous), but we wanted to make sure our listeners still received some great content this week. So I wrote this blog post to accompany the series on software bootcamps we’ve been working on recently.
Over the last few episodes, we’ve talked about factors to consider when determining whether a software development bootcamp is the best choice for your situation (Episode 34), how to stay encouraged through the “pit of despair” during the program (Episode 35), what the job search is like after completing a bootcamp program (Episode 36), and everything in between. I want to share my decision making process and also mention some things I wish I had known, or planned better for before enrolling in Nashville Software School, my NSS bootcamp experience, and what my job search post NSS graduation was like.
If you’ve been listening to the show for a while, you know that I didn’t go to college for software development/computer science. I stumbled upon it about a year into my first job after college and started learning from free online resources for a few months before attending meetups where others introduced me to Nashville Software School and the concept of a software bootcamp. I started doing some research and talking to folks who had gone through the program themselves and what they were doing at their jobs post bootcamp graduation. I had also looked into another local software bootcamp program (Ironyard - all locations have since closed), as well as online bootcamp programs, such as Thinkful. What ultimately made me choose NSS over the others was the availability of onsite instructors and mentors, program cost to time ratio, and support available when it came time to look for my first development job. About 90-95% of the people I talked to who had gone through NSS’s program had a positive experience throughout the program and with finding a job afterward. One thing they all said though: It will be difficult. The common metaphor used was “it was like drinking water from a fire hose” in terms of all the information you get exposed to over the 6 month long program and trying to adequately process it all.
Lesson 1: Be prepared for a difficult, but rewarding journey.
And do your pre-work!
I had only gotten through about half of the assigned pre-work before starting the program, and I really wish I had gotten through it all,
especially the JavaScript portion.
Even if you don’t 100% understand everything your first time through, the exposure absolutely helps when starting the program.
During the program, there are at least 2 points where you will start to panic and realize the extent of things that you do not know. They are the “valley” and “pits” of despair. Everyone goes through them, nearly everyone overcomes them. One thing that really helps is support from your peers, instructors, family, anyone who can provide encouragement. You will get lost and not understand things. You will feel like Jon Snow (you know nothing), at times, but you will make it. You will have light bulb moments when things start to click and you see the bigger picture. And it’s the best feeling and encourages you to keep learning.
Lesson 2: Keep the “Little Engine That Could” mantra and just keep chugging away at your learning.
But also, take breaks when you need them! And don’t forget to sleep! Both are important for processing and retaining new material.
Now for the post-graduation job search. I started networking from the get-go, even before starting the program and started to look for jobs shortly after we started the second half of the program. But almost everyone at that point feels that they don’t know enough to start seriously talking with or interviewing with companies, including me. But you can start reaching out to folks on LinkedIn, at meetups, etc. and ask them if they’d be willing to do an informational or mock interview with you. Getting exposure to what software development is like across different industries and what different team structures and workflows are like will only be beneficial when you do finally start going on job interviews. It will give you a better idea of what questions to ask of the hiring manager about the company and team set up. Remember, you’re interviewing them as much as they’re interviewing you.
But, that’s easy to forget if you’re in a position of desperation after graduation: you’re running out of money and just need a job to pay the bills, like I was. I graduated and was hoping to land a job within a month. It ended up taking me 59 days, and 6-7 company interviews before I finally got a single offer. It wasn’t an ideal position for me, but seeing as my savings were nearly depleted and I was borrowing money from my mom to make my car payments, I didn’t have much choice at the time, so I accepted the position.
It’s easy to get discouraged when it seems like all your classmates are landing jobs left and right, and you haven’t received an offer yet. Believe me, I’ve been there. But it’s impossible to know what the companies you’re interviewing with are really looking for. So don’t go in trying to appear to be the “perfect” candidate on every job interview, because that’s impossible. Just be your true, authentic self, answer the questions truthfully and thoughtfully, and the right match will come up when the timing and opportunity is right. (Hey, sounds just like dating, right?)
Lesson 3: Before beginning the program, make sure you have at least 9+ months of living expenses saved up.
It will help you be in a better negotiating position when it comes time to look for your first job.
And it will allow you to not have to work during the program so that you can focus your time and energy on learning to code.
Now, your first job may still not be ideal, but you will at least have your foot in the door and be learning and actively contributing to code base and application/website being used in a professional capacity. And yes, earning money to make rent, put food on the table, and otherwise live your life. And as anyone will tell you, having more than 0 months of professional experience makes it much easier to find your next job.
To summarize, software bootcamps may not be the right choice for you depending on all kinds of factors and your personal situation. But if you are able, it’s such a challenging and rewarding experience, both in terms of what it can do for your learning, your career, as well as the people you meet and get to know along the way. Have you been through a software bootcamp program? What was your experience like? We’d love to hear about it, so leave us a comment, send us an e-mail, or @ us on social media! Keep an ear out for our next episode releasing on March 26th, where we’ll be interviewing NSS head coach and lead instructor - Steve Brownlee!
Note: the below links no longer work since we’re no longer paying for hosting for the JuniorDeveloperToolbox website
Haven’t listened to our Bootcamp Experience episodes yet? Check them out here:
Episode 34 – The Bootcamp Experience: First Steps with Sarah Weatherbee
Episode 35 – The Bootcamp Experience: In the Trenches with Lesley Boyd
Episode 36 – The Bootcamp Experience: Landing the Job with Jonathan Edwards
Also, if you like what Dave and I are doing and want to help keep great content heading your way,
we’d love if you’d support us either through our
Patreon page or our
PayPal.
Every little bit helps!
This blog post was originally posted on JuniorDeveloperToolbox.com on March. 12, 2019. Authored by Erin Orstrom.
comments powered by Disqus


When we started the Chef infrastructure automation project last year, a dev team started up at nearly the same time. I didn’t know enough about Chef to have (much of) an opinion on how others were addressing cookbook issues they faced. So for the first few months, I worked on my problems to solve while the devs worked on theirs. I did eventually started paying attention to what was going on with the dev team and discovered that they had started to create role names that looked like app_name_env(e.g. riak_prod), causing a role for each app to be created in each environment, but with nearly identical run lists. They were labeling their attributes with environment and used the roles to sort them out.
So we came up with a quick solution. We created an attribute called node[:env] and put it in a role called env_dev, env_qa, etc. And the same goes for other things we needed to set like node[:swimlane] and node[:zone]. Every time a node was created, relevant env attribute roles were added along with the platform_base and any application roles. We all refactored our code and started using the env variable to sort out environment-specific attributes. This worked well in the short term, for about 6 months.
About 2 months ago, we started planning for provisioning a second data center. With another data center containing two environments (prod and stage) came a location issue. Now we have two sets of ntp servers, different DNS servers and a whole host of location-specific coding issues. I went to go add some location-specific roles and started thinking about the refactoring we’d need to do to account for two locations.
As I started to make the first role, I realized that this was quickly becoming an unwieldy solution. We were configuring the nodes managed by our automation system by hand. This boggled me. And the number of managed nodes continues to grow.
One of the problems we struggle with is that we have no system of record. We get most of our new server info on spreadsheets from various project teams or ops/mgmt teams. We can’t call any central system API to get info. All the servers have static IPs and minimum of two networks. The ops team doesn’t believe in DNS. So we have to keep all of this information somewhere or figure out clever ways to deduce the information we want (or set roles by hand, ugh!).
A secondary problem I had with the roles is that their attributes weren’t set early enough for me to use logic in the attributes file. Node[:env] didn’t get set until after attributes files were compile which was causing me other problems.
So as I thought about the location role, I rebelled. I was done setting roles by hand. UGH!
All of our host names are the same length and contain a rich amount of data encoded in their names. I thought that there must be a way to extract and label that information for use as node attibutes. I’m no Ruby genius and I still struggle with anything beyond fancy scripting, but it’s extra fun for me to run at a problem head on and obsess over it. And that’s what I did.
When I came out of the weekend, I had an oHai plugin that parsed a host name, set 3 top level attributes and 5 nested attributes thatI thought might be useful for logic in cookbooks. It looks like this:
[root@pxqpkyapp05 tmp]# ohai -f /tmp/plugins/parse_host_plugin.rb -l debug
[Fri, 24 Jun 2011 19:09:09 -0500] DEBUG: ohai plugin: parse_host: parsing new host pxqpkyapp05
{
“environment”: “qa”
“location”: “pismo”,
“hostdata”: {
“server_type”: “application”,
“loc”: “p”,
“env”: “q”,
“application”: “Pooky”,
“platform”: “solaris”
},
}
I didn’t think this would be useful to anyone but us. Surely everyone else was using Chef in the cloud, right? Heck no. It turns out, as I was chatting with folks at Velocity last week, that several people are data center-bound with encoded host names. Discussing it, I thought it might be useful to share, even if it would require some tweaking to make it work with any else’s environment.
Basically, I set a hash with environment data and then set variables using a regex on the host name. I set the environment and location vars separately and then put indexes in the hash for any values I want to add into the hostdata hash. I took most of our custom logic out, like the node[:zone] logic that no one needs, although I left in a custom piece I had to add for an oddly named environment at a third data center location. All app names and locations have been changed to protect the innocent (that’s me).
I hope someone else can use it. It was my first step beyond recipes and I’m rather proud of it. I’ve already had a request from a team mate to move the logic to a library so that we can use it in our host management activities and that’s what I’m working on now. I’ve created a class and a function that uses the class, but need to translate it to Chef-specific DSL.
Here are some examples of how we’re using them:
in the recipe: dnsinfo = search(:dns, “id:#{node.location}”)
in the template:
domain <%= @dnsinfo[“domain”] %>
search <%= @dnsinfo[“search”] %>
<% @dnsinfo[“nameservers”].each do |ns| %>
nameserver <%= ns %>
<% end %>
# Unload unwanted packages
unless node.env == “dev” || node.attribute?(“keep_gcc”)
package “gcc” do
action :remove
end
end
chefsearch = search(“chef_servers”,”env:#{node.env} AND id:#{node.hostdata.loc}*”).first
node.set.chef.my_chef_server = chefsearch[“id”]
node.set.chef.server_url = “http://#{node.chef.my_chef_server}”
node.set.chef.mrepo_url = “http://#{node.chef.my_chef_server}/mrepo”
node.set.chef.proxy_url = “http://#{node.chef.my_chef_server}:8000”
This will also come in handy once we’ve migrated to .10 where we can set so many more things within Chef based on environment. The plugin is phrased in functions as my original plugin file was rather messy with comments and things. I felt like breaking it down this way made it easier to follow wth was going on.
Please let me know if you find this useful or if you have questions. This is my first community contribution and so I’m kind of like the kid with the cool shiny thing they want to show everyone. Look at my shiny!


---
categories: []
date: 2012-03-28T19:41:00Z
status: publish
tags: []
title: Solidarity for those on strike today
layout: post
url: /2012/03/28/solidarity-for-those-on-strike-today/
---
Not many people would know it today, as the media has not really picked up on it (apart from the Guardian) - but teachers in London were on strike today. They are asking for their pensions to be protected as they are well funded and the current coalition government has refused to carry out a review of how well the pensions are funded, which should happen every 4 years.
Whilst parents will be annoyed that their children have had to have a day off, would they support a reduction in their own working practices, or would they fight for what they agreed to when they started the job?
What is more, this government wants to 'reign in' public sector pensions to prevent rising costs to the taxpayer, but at the same time, offers a reduction in tax for those earning the most (the 50% rate). Why should hard working teachers, nurses, ambulance drivers pay up more for their pension, when the most wealthy in society are receiving a tax break?
Are we all in this together, or, has Cameron finally revealed the true colours of the Tory-led government?


Humpback whales on my website!
You may not understand what they are saying, but who cares? Whales are cool!
Where did the whale go?
Probably hiding from people who don't apprecate good design, although Parallax websites are not good choices for every website...
Where did this cat come from?
I thought we were just looking at a whale,
but cats are just as cool, maybe cooler!
Just a bit of information scrolling by...
Dogs and cats living together...MASS HYSTERIA!!!
(Yes, this was a Ghostbusters reference...)
This is the end...
but just the beginning of what you can do when designing a website!


SASS Workshop
¿Qué es?
Partials
Variables
Nesting
Inheritance
Mixins
More!
More!
https://github.com/imieites/sass-workshop
http://sass-lang.com/guide


{% extends 'base.html' %} {% block style %} {% endblock %} {% block head %}
Practice Typer is a time-based experience focused on honing your skills as a
programmer. Put your typing speed to the test by attempting to re-type common code of the
language of your choosing as fast as you can.
Practice Typer features:
Feel free to checkout our GitHubs using any of our corresponding tags. We are open to collaborating on future projects!
The team behind Practice Typer is composed of four talented programmers:
@Valerie
@Gibson
@JuanCarlos
@Carlos


ITV Emmerdale fans compelling theory over what will happen to Leanna
Viewers think they know what's next for the teenager
by Sophie McCoidEmmerdale fans have an interesting theory about Leanna's future after her tryst with Jacob.
Jacob and Leanna had sex in last night's episode, after Leanna had had a crush on him for weeks.
Viewers were stunned last night as Jacob left her just minutes after their afternoon of passion, despite it being her first time.
Jacob is struggling to come to terms with Maya being released from prison, with fans seeing her walking out of the prison heavily pregnant, presumably with his baby.
And now eagle-eyed fans think that Leanna might also become pregnant with Jacob's baby, and many of them took to social media to voice their theory.
Lizzy said: "So wait is Leanna also gonna get pregnant with Jacobs kid."
Sarah Freer said: "It wouldn’t surprise me if Leanna gets pregnant too, then that’s two women he’s got pregnant."
And Elaine said: "I bet it's #davidmetcalfes #emmerdale odds leanna is pregnant as well."
Tonight's episode saw Leanna try and persuade Bernice to get the morning after pill for her, after revealing her and Jacob hadn't used any form of protection.
Bernice handed over the pill and told her it was totally normal if she felt sick after it, and sure enough she was shortly after all over her dad.
She ended up revealing all to her dad, who went ballastic at Jacob for "using" his daughter.
*Emmerdale continues tomorrow at 7pm on ITV


DnD Toolbox
Your Characters
add
Add New Character
Delete Character
×
Are you sure you want to delete your character
?


GREEDY A film review by James Berardinelli Copyright 1994 James Berardinelli
Rating (Linear 0 to 10): 5.8
Date Released: 3/4/93 Running Length: 1:52 Rated: PG-13 (Language, mature themes, brief nudity)
Starring: Michael J. Fox, Kirk Douglas, Nancy Travis, Olivia d'Abo, Phil Hartman, Ed Begley Jr., Coleen Camp, Jonathan Lynn Director: Jonathan Lynn Producer: Brian Grazer Screenplay: Lowell Ganz and Babaloo Mandel Music: Randy Edelman Released by Universal Pictures
GREEDY is one of those motion pictures that doesn't quite know what it wants to be. It starts off as a farce with an edge, then changes midway through into one of those "feel-good" movies that the writing team of Ganz and Mandel (A LEAGUE OF THEIR OWN, PARENTHOOD, SPLASH) are known for. The ending is a complete cop-out, but there are at least enough laughs along the way to make the experience mildly palatable.
Joe McTeague (Kirk Douglas) isn't dying--much to the chagrin of his large, greedy family. But, since Joe has yet to decide who to leave his considerable fortune to, various nieces and nephews are vying with each other for Uncle Joe's favor. Carl (Ed Begley, Jr.) has named both of his boys Joe, and Frank (Phil Hartman) has hired a private investigator to dig up dirt on the other family members.
At one of Joe's birthday parties, the bickering has just gotten started when the guest of honor introduces his new "companion", a young British girl named Molly (Olivia d'Abo), who dotes on the old man. Panic ensues as everyone sees their beloved inheritance slipping out of reach. Willing to try anything to limit Molly's influence, Frank and Carl seek out Danny McTeague (Michael J. Fox), a pro bowler who was once Uncle Joe's "favorite boy" before a family quarrel caused Danny's father to break with his relatives. Because he has fond memories of Joe, Danny agrees to visit the old man, and soon finds himself embroiled in the frantic scramble for money.
The first portion of GREEDY, which features the antics of various family members as they attempt to outdo each other in proving their worth to Joe, is brilliant. It's fresh, funny, and delivered with a scathing edge. Had director Jonathan Lynn (MY COUSIN VINNY) framed the entire movie this way, it's interesting to ponder what the result might have been. However, the moment Michael J. Fox comes on the scene, GREEDY begins gravitating towards a typical, formula-driven comedy. There are still laughs to be had, but these form the backdrop for an increasingly ordinary film.
The less said about the ending, the better. Like the wrap up of another Ganz/Mandel story, PARENTHOOD, GREEDY's conclusion is too pat--all happy and upbeat. The big "plot twist" is obvious, despite attempts to throw in a red herring or two. Some of what happens during the final quarter-hour rivals SCENT OF A WOMAN's finale for mind-numbing, Hollywood-style audience manipulation.
Even though the introduction of Michael J. Fox's Danny signifies the beginning of GREEDY's decline, the actor acquits himself well. Although affable as usual, Mr. Fox plays his role with a little more spirit than has been evident in some of his recent box-office duds (the latest of which was the forgettable FOR LOVE OR MONEY). Kirk Douglas is adequate, but the role of Joe wouldn't challenge any actor's skills. Nancy Travis is flat in the admittedly-limited part as Robin Hunter, Danny's girlfriend. Olivia d'Abo has spunk, and the costume designers have found numerous ways to show off her natural physical assets without being too revealing (the only nudity is a shot of Michael J. Fox's backside).
The scene-stealer is Phil Hartman, whose deadpan delivery is perfect. Even late in the film, when the story is on course for its seemingly inevitable conclusion, Mr. Hartman's presence lends a sarcastic bite to several scenes. According to insiders, the part of Frank was expanded from what was initially scripted when director Jonathan Lynn recognized how big an asset the actor had become to the production.
During the course of this film, there are quite a few laughs to be had, and if the sole purpose of going to a comedy is for laughter (irrespective of story content), then the movie succeeds. Unfortunately, looking beyond the gags and jokes, GREEDY suffers from a split personality, and the resulting uneven tone can lead to feelings of ambivalence. Like the relatives vying for Uncle Joe's money, GREEDY tries a little too hard to be likable.
- James Berardinelli<EMAIL_ADDRESS>.
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


Battlefield Earth Zero Stars (out of * * * * )
Directed by Roger Christian. Cast: John Travolta, Barry Pepper, Forest Whitaker, Kim Coates, Sabine Karsenti, Kelly Preston. 2000 - 117 minutes Rated PG-13 (for violence). Reviewed by Dustin Putman, May 13, 2000.
Every once in a while, a film comes along that causes me to disregard all of my writing skills because, when truth be told, just thinking about it seems to notably decrease my IQ. There is no way to be intelligent when discussing a movie so repugnantly atrocious and unintelligible as "Battlefield Earth," reportedly John Travolta's dream project for ten years and based on the cult sci-fi novel by L. Ron Hubbard. Incompetent in every way possible, it is a collision course of non-ideas, zero-dimensional characters, shoddy special effects, blase performances, and a complete disregard for anything that could possibly make any kind of sense to a human being watching such an embarrassment.
The plot is fairly incomprehensible, but it goes something like this: Set in the year 3000, when "man is an endangered species" on Earth, a 9-foot-tall alien race known as the Psychlos have wiped out almost all human existence, with only a minority of earthlings left to do the Psychlos' bidding. Jonny Goodboy Tyler (Barry Pepper, and yes, that's his character's real name) is captured by the Psychlos, headed by Terl (John Travolta) and his henchman (Forest Whitaker), and sent to Ft. Knox to steal all of the gold that has been locked up in a vault for the last one-thousand years. I think that's some of the plot; I can't be too sure.
Thinking back on "Battlefield Earth," the movie is a giant, 2-hour haze, not only because I was struggling to keep focus on the film and not drift into slumber for the middle section, but because the picture is a jumble of already bad ideas that were made far, far worse when actually translated to film, under the phenomenally inauspicious helm of director Roger Christian. There are no characters to care about (or even get to know), the villains are disposable and unthreatening, and the action sequences about as exciting as the entirety of 1982's "My Dinner With Andre." Let's not forget the laughable matte paintings, which looked more realistic in 1939's "The Wizard of Oz." Or the screen wipes that, without fail, were used as the transition from each scene to the next, a 'la "Star Wars," ad nausea.
Prior to its release, John Travolta set off on a countrywide promotional tour to support this film, but my question is, had he even seen the finished product? Was he really there when filming was underway, or was that his evil doppleganger, out to sabotage his career a second time? You'd have to see "Battlefield Earth" to believe it, but don't, under any circumstances, see it. Some movies have the quality of being so bad they are entertaining. "Battlefield Earth," on the other hand, is so bad it's depressing. I would never throw around such words lightly, but on the evidence presented here, it may very well be one of the worst motion pictures I have ever had the misfortune of sitting through. A disaster of epic proportions!
- Copyright 2000 by Dustin Putman Http://www.young-hollywood.com Http://www.atnzone.com
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


--- layout: page title: "404" permalink: /404 ---
Uh Oh! There doesn't appear to be anything here. Sorry about that.
If you've followed a link expecting something to be here, please email me so I can fix it. I'll make sure to send a lot of good karma your way.


Over {{ stats.staff_count }} health staff have participated.
From {{ stats.primary_facilities_count }} primary health care facilit{{ stats.primary_facilities_count|pluralize:"y,ies" }},
and {{ stats.general_hospitals_count }} general hospital{{ stats.general_hospitals_count|pluralize }}
in {{ stats.lga_count }} LGA{{ stats.lga_count|pluralize }}.
Who registered {{ stats.patient_count }} patient{{ stats.patient_count|pluralize }}.
Of {{ stats.survey_sent_count }} mobile owners,
{{ stats.survey_started_count }} submitted answers to surveys.
Contact
If you have any questions or
comments about My Voice,
please contact Nonso Jideofor
at +234<PHONE_NUMBER>
comments about My Voice,
please contact Nonso Jideofor
at +234<PHONE_NUMBER>


If you mark a property parameter with an annotation that is itself marked as @GeneratorConfiguration, then if the Generator for that parameter’s type has a public method named configure that accepts a single argument of the annotation type, junit-quickcheck will call the configure method reflectively, passing it the annotation:
@Target({PARAMETER, FIELD, ANNOTATION_TYPE, TYPE_USE}) @Retention(RUNTIME) @GeneratorConfiguration public @interface Positive { // ... } public class IntegralGenerator extends Generator<Integer> { private Positive positive; @Override public Integer generate( SourceOfRandomness random, GenerationStatus status) { int value = random.nextInt(); return positive != null ? Math.abs(value) : value; } public void configure(Positive positive) { this.positive = positive; } } @RunWith(JUnitQuickcheck.class) public class Numbers { @Property public void holds(@Positive int i) { } }
A Generator can have many such configure methods.
Configuration annotations that can target type uses will be honored:
@RunWith(JUnitQuickcheck.class) public class PropertiesOfListsOfSingleDigits { @Property public void hold( List<@InRange(min = "0", max = "9") Integer> digits) { // ... } }
Recall that potentially many generators can satisfy a given property parameter based on its type:
@RunWith(JUnitQuickcheck.class) public class SerializationProperties { @Property public void hold( @InRange(min = "0", max = "10") Serializable s) { // ... } }
Only the available generators that can produce something that is java.io.Serializable and that support all the configuration annotations on a property parameter will be called on to generate a value for that parameter. So, for example, for parameter s above, generators for integral values might be called upon, whereas generators for ArrayLists would not. junit-quickcheck will complain loudly if there are no such generators available.
If you have a family of generators that can produce members of a hierarchy, you may want to ensure that all the generators respect the same attributes of a given configuration annotation. Not doing so could lead to surprising results.
Configuration annotations that are directly on a property parameter, and any configuration annotations on annotations that are directly on a property parameter (and so on…) are collected to configure the generator(s) for the parameter:
@Target({PARAMETER, FIELD, ANNOTATION_TYPE, TYPE_USE}) @Retention(RUNTIME) @From(MoneyGenerator.class) @InRange(min = "0", max = "20") @Precision(scale = 2) public @interface SmallChange { } @RunWith(JUnitQuickcheck.class) public class Monies { @Property public void hold(@SmallChange BigDecimal d) { assertEquals(2, d.scale()); assertThat( d, allOf( greaterThanOrEqualTo(BigDecimal.ZERO), lessThanOrEqualTo(new BigDecimal("20")))); } }


Welcome to my drop down menu!
Open
Close me!
Hey!
Look Here
Just Kidding!
Hey!
Stop it!
Nothing here!
Hey!
Don't do it!


This is the partial for view 1.
The input's valid state is:
The value recorded is: {{ myInput }}
The value valid status is: {{ myInput }}


--- layout: page title: What I Do class: services excerpt: Whether you are just starting your business and need a website to support your launch, or are looking for a fresh, new look to your current website, I will help you get there. sitemap: priority: 0.7 changefreq: monthly lastmod: 2013-08-29T12:49:30-05:00 ---
Whether you are just starting your business and need a website to support your launch, or are looking for a fresh, new look to your current website, I will help you get there.
Content Management Systems (CMSs) are all the rage. WordPress is my go-to CMS as it's widely used, continuously maintained and supported, and provides a low barrier to entry for clients.
A custom WordPress Website can cost between $2,000 and $7,000.
I can help you with initial planning, wireframing and producing great visuals for your web app. I'll write the HTML, CSS and JavaScript and will work with you or your team to implement it on top of your backend.
Static websites have some great advantages.
Hand coded in HTML, CSS and JavaScript, your website will stand the test of time.
Already have a developer on-board that can turn a PSD into a website? Great. I can provide you and your team with a Photoshop-only website.
Design-only jobs cost between $1,000 and $4,000.
Find out what I don't do.


notify()
and notifyAll()
not within a corresponding
synchronized statement or synchronized method.
Calling these methods on an object
without holding a lock on that object will result in an IllegalMonitorStateException
being thrown.
Such a construct is not necessarily an error, as the necessary lock may be acquired before
the containing method is called, but it's worth looking at.


The following essay appeared as part of a series, "The Joy of Reading and Writing."
This essay is
also printed in The
Most Wonderful Books: Writers on Discovering the Pleasures of Reading.
I learned to read with a Superman comic book. Simple enough, I suppose. I cannot recall which particular Superman comic book I read, nor can I remember which villain he fought in that issue. I cannot remember the plot, nor the means by which I obtained the comic book. What I can remember is this: I was 3 years old, a Spokane Indian boy living with his family on the Spokane Indian Reservation in eastern Washington state. We were poor by most standards, but one of my parents usually managed to find some minimum-wage job or another, which made us middle-class by reservation standards. I had a brother and three sisters. We lived on a combination of irregular paychecks, hope, fear and government surplus food.
I refused to fail. I was smart. I was arrogant. I was lucky. I read books late into the night, until I could barely keep my eyes open. I read books at recess, then during lunch, and in the few minutes left after I had finished my classroom assignments. I read books in the car when my family traveled to powwows or basketball games. In shopping malls, I ran to the bookstores and read bits and pieces of as many books as I could. I read the books my father brought home from the pawnshops and secondhand. I read the books I borrowed from the library. I read the backs of cereal boxes. I read the newspaper. I read the bulletins posted on the walls of the school, the clinic, the tribal offices, the post office. I read junk mail. I read auto-repair manuals. I read magazines. I read anything that had words and paragraphs. I read with equal parts joy and desperation. I loved those books, but I also knew that love had only one purpose.
Despite all the books I read, I am still surprised I became a writer. I was going to be a pediatrician. These days, I write novels, short stories, and poems. I visit schools and teach creative writing to Indian kids. In all my years in the reservation school system, I was never taught how to write poetry, short stories or novels. I was certainly never taught that Indians wrote poetry, short stories and novels. Writing was something beyond Indians. I cannot recall a single time that a guest teacher visited the reservation. There must have been visiting teachers. Who were they? Where are they now? Do they exist? I visit the schools as often as possible. The Indian kids crowd the classroom. Many are writing their own poems, short stories and novels. They have read my books. They have read many other books.  They are trying to save their lives.  The pages of their notebooks are empty. They carry neither pencil nor pen. They stare out the window. They refuse and resist. "Books," I say to them. "Books," I say. I throw my weight against their locked doors. The door holds. I am smart. I am arrogant. I am lucky. I am trying to save our lives. Continuing the Conversation Resources
Superman: http://www.dccomics.com/superman History of Superman: http://www.supermanhomepage.com/comics/comics.php?topic=comics-history
Man of Steel (Superman Movie 2013) Movie Trailer: http://youtu.be/wArmHSPIvlQ
Man of Steel (Superman Movie 2013) Movie Trailer 2: http://youtu.be/c_VRP5q1Zow
Superman (It’s Not Easy), Five for Fighting: http://youtu.be/GRz4FY0ZcwI
Kryptonite, 3 Doors Down: http://youtu.be/xPU8OAjjS4k
Superman, Eminem lyrics: http://www.azlyrics.com/lyrics/eminem/superman.html
Superman, Taylor Swift lyrics: http://www.azlyrics.com/lyrics/taylorswift/superman.html
Superman in the Movies: http://www.supermanhomepage.com/movies.php
Superman on Television: http://www.supermanhomepage.com/tv.php


WITNESS LIST Criminal Jurisprudence Committee (SUBCOMMITTEE ON Enhancements) April 21, 2005-2:00P HB 1052 For: Wilson, Dennis D. (Self and Sherriffs' Association of Texas) HB 1714 For: Armstrong, Bonnie (Self) Dittman, Mark F. (Self) Gerstenschlager, MerryLynn (Self and Texas Eagle Forum) Lapham, John "Jay" (Self) Turner, Matt (Self) Turner, Stacey (Self) Wilson, Dennis D. (Self and Sheriffs' Association of Texas) Against: England, Samuel J. (ACLU of Texas) On: Edmonds, Shannon (Texas District and County Attorneys Association) HB 1723 For: Lenz, Carole (Harris Couty, Commissioner Steve Radack) HB 2222 For: Chapman, Jason Howard (Anderson County Sheriff's Office) Ferguson, Sherry (Self and Houston Humane Society) Garcia, Dave (SPCA of Texas) Marley, Melonie (Self) Medley, Vincent (Dallas Animal Services) Taylor, Greg (Anderson County Sheriff's Office) Timmers, Mark L. (Self) Trimble, Robert "Skip" (Self and Texas Humane Legislation Network) Against: Mayfield, Wayne (Self and Texas Gamefowl Breeders Association) On: Coats, Jr., Max E. (Texas Animal Health Commission)


def test_serialize_knn():
seed = 0
numpy.random.seed(seed)
X_train, y_train, X_test, y_test = CachedDatasets().load_dataset("Trace")
n_queries = 2
n_neighbors = 4
def test_serialize_knn():
n, sz, d = 15, 10, 3
rng = numpy.random.RandomState(0)
X = rng.randn(n, sz, d)
y = rng.randint(low=0, high=3, size=n)
n_neighbors = 3


If you're a fan of beer, you know that there are a wide variety of styles to choose from. You also may know that there are thousands of different ingredients that can go into these styles, each producing distinct colors, bodies and flavors. There are multiple tools that hombrewers use to manage their recipes and one of the most prominent is BeerSmith. BeerSmith's online recipe database has over 34K recipes that contain detailed information on beer characteristics and ingredients used. As an amateur homebrewer and professional fan of beer, I thought it would be interesting to collect these recipe details and learn about the prefrences of BeerSmith's homebrewer community.
BeerSmith has a "recipes by style" webpage that I will use as the jumping off point for my scraper. Since all of the links to style pages on this page follow a specific pattern, the below function uses the findAll method from python's beautifulsoup package and a simple regex search to seek them out and return them as a list.
from bs4 import BeautifulSoup from urllib.request import urlopen,Request import re def scrapeStyleUrls(url): try: url = Request(url, headers={'User-Agent' : "Magic Browser"}) html = urlopen(url) except HTTPError as htper: return htper except URLError as urler: return urler bsObj = BeautifulSoup(html.read(),'lxml') urls = [x["href"] for x in bsObj.findAll("a", href= re.compile("^(http://beersmithrecipes.com/searchrecipe\?term=).*$"))] return urls
The next piece of the scraper needs to visit the style page links collected in the previous section and search for links to the actual recipes. The style pages are paginated so the function uses the following recursive approach: append all recipe urls to the url list, search for a "next page" button, pass the next page link to the parent function, repeat until no next page button is found.
def scrapeRecipeUrls(url): try: req = Request(url, headers={'User-Agent' : "Magic Browser"}) html = urlopen(req) except HTTPError as htper: return htper except URLError as urler: return urler try: bsObj = BeautifulSoup(html.read(),'lxml') for x in bsObj.findAll("a", {"title":"View Recipe"}): recipeurls.append(x["href"]) except: print("index failure") try: nxtPg = bsObj.find("a", text = "Next Page >>") scrapeRecipeUrls(nxtPg["href"]) except: print("End of style - "+str(url))
Now we need a function to scrape the recipe information from each of the urls collected above. A quick study of a single recipe page reveals that almost everything that we're looking for is contained in two tables - one with recipe information (color, bitterness, ABV etc.) and one with a list of ingredients. In order to reduce redundant information in the final dataset, I decided to keep this two table structure and utilize the recipe's ID number as a primary/foreign key. The recUrl regex function is used to extract the recipe ID and a clean version of the recipe name from the url itself, and the recTbl regex function is used to extract key/value pairs from the recipe info table as this table does not make use of headers to define it's field names. The function returns recipe information as a dictionary and recipe ingredients as a list of dictionaries.
recTbl_regex = re.compile( r'(^(?P[A-Za-z]+\s?[A-Za-z]*):\s?\s?(?P<data>[^<]+)	$)') recUrl_regex = re.compile( r'(^http://beersmithrecipes.com/viewrecipe/(?P<recid>[0-9]+)/ (?P<recname>[a-z0-9\-]+))') def scrapeRecipe(url): try: req = Request(url, headers={'User-Agent' : "Magic Browser"}) html = urlopen(req) except HTTPError as htper: return htper except URLError as urler: return urler try: recDict = {} urlparse = recUrl_regex.search(str(url)) recDict['Rec_ID'] = str(urlparse.groupdict().get('recid')) recDict['Rec_Name'] = str(urlparse.groupdict().get('recname')) bsObj = BeautifulSoup(html.read(),'lxml') recType = bsObj.find("h3") recDict['Type'] = recType.get_text() recTbl = bsObj.find("table", {"class": "r_hdr"}).findAll("td") for x in recTbl: tdparse = recTbl_regex.search(str(x)) if tdparse is not None: header = str(tdparse.groupdict().get('header')) data = str(tdparse.groupdict().get('data')) recDict[header] = data ingList = [] ingTbl = bsObj.find("table", {"class" : "recipes"}).findAll("tr") for x in ingTbl: try: ingList.append({"Ingredient" : x.findAll('td')[1].get_text(), "Ing_Type" : x.findAll('td')[2].get_text(), "Rec_ID" : str(urlparse.groupdict().get('recid'))}) except: pass return(recDict, ingList) except: print("recipe error "+str(url)) pass
Now we're ready to scrape! After running the scrapeStyleUrls, scrapeRecipeUrls, and scrapeRecipe functions, we'll have a list of recipe dictionaries with recipe attributes and a list of ingredient dictionaries with ingredient attributes and recipe ID's.
styleUrls = scrapeStyleUrls(r'http://beersmithrecipes.com/styles') recipeurls = [] for url in styleUrls: scrapeRecipeUrls(url) recipeList = [] ingredientList = [] for url in recipeurls: try: recDict,ingList = scrapeRecipe(url) recipeList.append(recDict) for ingDict in ingList: ingredientList.append(ingDict) except: pass
The scraper was able to collect 30,267 recipes in total, each with 19 different attributes. After breifly scanning the dataset I found a couple of things that needed to be addressed before moving on with the analysis. First, the scraper picked up a handful of duplicate recipes that need to be removed. Second, the values of some variables lead me to beleive that a few of the recipes in this dataset are bogus. This makes sense because the recipes are user submitted and I'm fairly certain that BeerSmith does not maintain a strict review/approval process for their database. Discovering this also seemed like a pefect time to pare down the dataset to the variables that I'm truly interested in. I settled on four primary variables of interest that could also help me weed out unrealistic recipes.
ABV, color and bitterness values in the dataset contain some unwanted text so below I'll clean them up, convert them to numeric, and filter out records that do not meet the criteria above.
library(dplyr) recipes <- read.csv("data/bsrecipes.csv") # clean and select fields of interest recipes <- recipes %>% group_by(Rec_ID) %>% filter(row_number() == 1) %>% ungroup() %>% mutate(ABV_pct = as.numeric(gsub("%","",ABV)), Bitterness_ibu = as.numeric(gsub(" IBUs","",Bitterness)), Color_srm = as.numeric(gsub(" SRM","",Color))) %>% select(ABV_pct, Bitterness_ibu, Color_srm, Style_Master, Rec_Type = Type) # remove unrealistic recipes recipes <- recipes %>% filter(ABV_pct >= 2 & ABV_pct <= 25, Bitterness_ibu > 0 & Bitterness_ibu <= 150, Color_srm < 100)
After cleaning we are down to a final count of 26,578 recipes. Now let's find out which styles are the most popular. I'll utilize SRM values to color my visualizations so I've mapped some approximate hex values that I grabbed from here to my dataset. The plotting code isn't shown below but can be viewed on github.
It seems that IPA's are the overwhelming favorite on beersmith and it's interesting to note that 13 styles account for 85% of all recipes in the database. Even though beers with mid-range SRM's are the most popular (thanks to IPA's and pale ales), there still seems to be plenty of love for dark beers with stouts and porters taking third and fifth place respectively.
Now let's take a look at preferences related to alchol level and bitterness by creating a scatterplot. We'll plot all of the recipes as points and overlay aggregate measurments for popular stlyes (> 200 recipes) as rectangular labels to see where each falls on average.
An interesting spread. Light beers like pilsners and kolsches are expectedly tame and have a fairly limited range of both bitterness and alcohol content. Dark beers seem to have the most variation in alcohol content while beers with mid range SRM's come in a wide variety of bitterness levels. All in all, the sweet spot for this corpus seems to be around 3%-9% ABV with 15-45 IBU's.
I explored a number of options for digging into the ingredients portion of this dataset and concluded that network diagrams would be a great way to see which ingredients are the most popular while also getting an idea of how they are typically used together.
In order to build a network visualization for each style of beer, I need to transform the ingredients of each recipe into a dataset of nodes and edges. Each node will be an ingredient, and I want the size of the node to correspond with how often the ingredient appears in the recipe corpus. The size & charge of the edges between nodes will then correspond to the frequency with which two ingredients appear together. In order to count these appearances, I'll increment the value of an edge by one each time two ingredients are used together. For example, a recipe with three ingredients would have three pairs counted - (ingredient 1, ingredient 2) / (ingredient 1, ingredient 3) / (ingredient 2, ingredient 3).
The final output needs to be a json object that I can feed to the D3 powered visualization I'll be building. The commented code chunk below shows the process of converting the raw csv files into a json object with R.
library(dplyr) library(tidyr) ingredients <- read.csv("data/bsingredients.csv", stringsAsFactors = F) recipes <- read.csv("data/bsrecipes.csv", stringsAsFactors = F) ### Remove duplicates / select cols for join recipes <- recipes %>% group_by(Rec_ID) %>% filter(row_number() == 1) %>% select(Rec_ID, Style_Master) ### Join style_master to ingredients, fix names ingredients <- ingredients %>% left_join(recipes, by = 'Rec_ID') %>% filter(!(is.na(Style_Master))) %>% select(ing_type = Ing_Type, ing = Ingredient, ing_simple = Ingredient_simple, rec_id = Rec_ID, style = Style_Master) ### imported style_df dataframe from beersmith_recipes.r to filter out frequent styles style_df <- style_df %>% arrange(desc(count)) %>% slice(1:15) %>% select(Style_Master) ### join style_df table to filter out low volume styles ### remove combos with less than 20 appearances to prune nodes & filter some edge cases ingredient_nodes <- ingredients %>% group_by(ing_simple, ing_type, style) %>% filter(ing_type %in% c("Grain","Hops","Yeast")) %>% summarise(count = n()) %>% inner_join(style_df, by = c('style' = 'Style_Master')) %>% arrange(desc(count)) %>% filter(count > 20, ing_simple != "None", !(ing_simple == "Brewer" & ing_type == "Grain"), !(ing_simple == "Crystal" & ing_type == "Grain")) ### Manual cleanup in excel to merge simmilar nodes # in_cleanup <- ingredient_nodes %>% # group_by(ing_simple, ing_type) %>% # summarise() # # write.csv(in_cleanup, 'in_cleanup.csv', row.names = F) in_cleanup <- read.csv('data/in_cleanup.csv', stringsAsFactors = F) ### join cleaned ingredient column, recalc the count, spread to table format by style ingredient_nodes <- ingredient_nodes %>% left_join(in_cleanup, by = c('ing_simple','ing_type')) %>% filter(ing_final != '') %>% group_by(ing_final, ing_type, style) %>% summarise(count = sum(count)) ### check for overallping names regardless of ing_type ingredient_nodes %>% group_by(ing_final) %>% summarise(count = n()) %>% arrange(desc(count)) ### filter out ingredient/style combinations not in node list + add ing_final pre_edge_df <- ingredients %>% inner_join(in_cleanup, by = c('ing_simple','ing_type')) %>% filter(ing_final != '') %>% inner_join(ingredient_nodes, by = c('ing_final','style')) %>% select(ing_final, rec_id, style) %>% group_by(ing_final, rec_id, style) %>% summarise() %>% arrange(rec_id,ing_final) ### DPLYR Filter too slow (3.6 sec per recipe) create min/max indexing of recipes instead rec_index_df<- pre_edge_df %>% ungroup() %>% mutate(row_num = row_number()) %>% group_by(rec_id) %>% mutate(min_row = min(row_num), max_row = max(row_num)) %>% group_by(rec_id, min_row, max_row) %>% summarise() ### Function for getting combo dataframes and adding to final list get_combos <- function(min_idx, max_idx) { filtered <- pre_edge_df[min_idx:max_idx,] rec_style = unique(filtered$style) combo_matrix <- combn(filtered$ing_final, 2) combo_df <- as.data.frame(t(combo_matrix), stringsAsFactors = F) %>% mutate(style = rec_style) return(combo_df) } ### Itterate through each rec min/max in rec_index_df and get combos ### add combos to final list and concatenate combo_list <- list() i = 1 for(row_idx in seq_len(nrow(rec_index_df))){ min <- as.numeric(rec_index_df[row_idx, 2]) max <- as.numeric(rec_index_df[row_idx, 3]) if(max > min){ combo_list[[i]] <- get_combos(min,max) i <- i + 1 } } combo_df_final <- bind_rows(combo_list) ingredient_edges <- combo_df_final %>% group_by(V1, V2, style) %>% summarise(count = n()) saveRDS(ingredient_nodes, 'data/ingredient_nodes.rds') saveRDS(ingredient_edges, 'data/ingredient_edges.rds') # ### Nodes and edges complete ### library(jsonlite) #Example of how to create a json object to feed the forece simulation write_json(list(nodes = filter(ingredient_nodes, style == 'Porter'), links = filter(ingredient_edges, style == 'Porter')), 'data/porter.json')
The network visualization below was created using R shiny and D3.js. Shiny passes json objects of nodes and edges to D3 and a force simlation is created in the browser. The repo for this visualization can be found on github and a full screen version can be viewed here.


Most of my projects are on Github,
gists, or scattered around the web. Here's a list of some of my work:
Sites
Things I've built:
Tools
Tool sites I've built:
Demos
Libraries
- appmetrics.js - a small library for measuring things in your web app and reporting the results to Google Analytics.
- idb.filesystem.js - HTML5 Filesystem API polyfill using IndexedDB
- filer.js - a wrapper library for the HTML5 Filesystem API which uses UNIX commands (cp, mv, ls) for its API.
Projects
Things I've contributed to:
{% endblock %}
{% block scripts %}
{% endblock %}


Io Reference
Apple
Audio
Bridges
Compilers
Compression
Concurrency
Core
Databases
Digests
Encryption
Filesystem
Graphics
Math
Networking
Parsers
Physics
Server
UserInterface
Video


{{template "stinger" .View}}
You can make a positive change in our community and beyond by donating to Compassionate Care Mobile Health, as an NPO 501(C)(3), we will gladly accept your tax deductible donations and credit volunteer work. Your entire donation goes strictly toward medical attention specifically toward individuals transitioning through homelessness. Transparency is our philosophy; detailed financial statements regarding your donations are shared upon request.
This program will have benefits that expand beyond the homeless population. Local hospitals will benefit from reductions in unnecessary emergency room visits, improving patient flow, and potentially reducing emergency room wait times. Additionally, the program will enroll eligible individuals into medical coverage, which will allow hospitals to receive reimbursement from these persons if and when they should require hospitalization.
Compassionate Care Mobile Health will not only aid in access to community resources, but will address the individuals wholly. Ideally, this will impact some of the underlying causes of their homelessness and improve their well-being beyond medical conditions.
Thank you so much for your love, support, and contributions.


Meet & Ask
Lorem Ipsum is simply dummy text the printing and industry dummy Ipsum
Car Polish
Innovation & AdoptionThere are many variations of passages of Lorem Ipsum typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing..
There are many variations of passages of Lorem Ipsum typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the.
There are many variations of passages of Lorem Ipsum typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the.
Read MoreOUR SERVICES
There are many variations of passages of Lorem Ipsum typesetting industry has been the industry's standard dummy text ever since the been when an unknown printer.

Nashid Martines
Directorkonne Backfield
DesignerHackson Willingham
Developerkonne Backfield
ManagerLatest blog post
There are many variations of passages of Lorem Ipsum typesetting industry has been the standard dummy text ever since the when printer.
There are many variations of passages of Lorem Ipsum typesetting industry has been the standard dummy text ever since the when printer.
There are many variations of passages of Lorem Ipsum typesetting industry has been the standard dummy text ever since the when printer.


Artifacts are the terminal element in a function or dispatch definition, and they must always be a string. They're the user code that gets deployed and run in response to events.  For instance, if the following data was downloaded from the url "https://stratosphere.strat.world/public/Sales.st":
service Sales {
getSales ():any -> "./salesClient.js"
}
Strat will attempt a get request to "https://stratosphere.strat.world/public/salesClient.js" to download the artifact data for getSales.
Artifacts should be reasoned about as single file binaries. Most languages have the capacity to create single file artifacts through build systems like Make, Webpack, javac, etc. Those build tools should be run before Strat to create easily deployable and runnable artifacts for Strat to consume. It is not Strat's responsibility to build component software.
At compile time artifacts are loaded and placed into a .sa file, and users should be mindful of how large their artifacts are to keep .sa files to reasonable sizes.
Some substrates may have restrictions on how large code bundles can be for particular infrastructure. In the long term Strat, may be smart enough to avoid this infrastructure for large artifacts but it is not today, so users should be aware of artifact size limits for their target substrate. The AWS substrate deploys artifacts to Lambda, which has a 50MB limit for code bundles. Users may hit this limit with smaller artifacts because strat may deploy multiple artifacts to the same Lambda. If this happens, users can get more space by splitting their artifacts into different scopes at the tradeoff of extra network hops and Lambda invocations.