Created
December 13, 2011 00:15
-
-
Save rhathaway/1469780 to your computer and use it in GitHub Desktop.
wunderground + twitter in processing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Glyph { | |
int x, y, glyphsize; | |
Glyph() { | |
x = 410; | |
y = 50; | |
glyphsize = 10; | |
} | |
void paint(int i) { | |
smooth(); | |
noStroke(); | |
color(255, 100); | |
ellipse(x + i * 10, y, glyphsize, glyphsize); | |
} | |
void paint2(int i) { | |
smooth(); | |
noStroke(); | |
color(255, 100); | |
ellipse(x + i * 10, y + 400, glyphsize, glyphsize); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import com.francisli.processing.http.*; | |
//// variable declaration of an two arrays of Glyph objects | |
Glyph[] happyGlyphs; | |
Glyph[] sadGlyphs; | |
// twitter stuff | |
HttpClient weatherClient, twitterClient; | |
HttpRequest happySearch; | |
HttpRequest sadSearch; | |
JSONObject content; | |
// wunderground stuff | |
PFont cityFont, timeFont, weatherFont; | |
PImage backgroundImg; | |
PImage conditionImg; | |
PImage windImg; | |
String locationInfo, currentTime, currentConditions, iconURL, wind, windDirection; | |
float tempF, tempC, windSpeed; | |
// variables for specific city data | |
String HNLinfo, HNLtime, HNLconditions, HNLwind, HNLwindDirection, HNLiconURL; | |
float HNLtempF, HNLtempC, HNLwindSpeed; | |
String SFOinfo, SFOtime, SFOconditions, SFOwind, SFOwindDirection, SFOiconURL; | |
float SFOtempF, SFOtempC, SFOwindSpeed; | |
String CHIinfo, CHItime, CHIconditions, CHIwind, CHIwindDirection, CHIiconURL; | |
float CHItempF, CHItempC, CHIwindSpeed; | |
String NYCinfo, NYCtime, NYCconditions, NYCwind, NYCwindDirection, NYCiconURL; | |
float NYCtempF, NYCtempC, NYCwindSpeed; | |
HttpRequest HNLweather, SFOweather, CHIweather, NYCweather; | |
void setup() { | |
size(1024, 768); | |
frameRate(24); | |
wundergroundRequest(); | |
twitterRequest(); | |
} | |
void wundergroundRequest() { | |
cityFont = loadFont("UbuntuCondensed-Regular-45.vlw"); | |
timeFont = loadFont("UbuntuCondensed-Regular-18.vlw"); | |
weatherFont = loadFont("UbuntuCondensed-Regular-22.vlw"); | |
backgroundImg = loadImage("weatherbg.jpg"); | |
weatherClient = new HttpClient(this, "api.wunderground.com"); | |
HNLweather = weatherClient.GET("/api/[api_key]/conditions/q/HI/Honolulu.json"); | |
SFOweather = weatherClient.GET("/api/[api_key]/conditions/q/CA/San_Francisco.json"); | |
CHIweather = weatherClient.GET("/api/[api_key]/conditions/q/IL/Chicago.json"); | |
NYCweather = weatherClient.GET("/api/[api_key]/conditions/q/NY/New_York_City.json"); | |
} | |
void twitterRequest() { | |
twitterClient = new HttpClient(this, "search.twitter.com"); | |
//// using SSL is optional, but recommended | |
twitterClient.useSSL = true; | |
//// turn on OAuth request signing | |
twitterClient.useOAuth = true; | |
//// set up OAuth signing parameters | |
twitterClient.oauthConsumerKey = "---"; | |
twitterClient.oauthConsumerSecret = "---"; | |
twitterClient.oauthAccessToken = "---"; | |
twitterClient.oauthAccessTokenSecret = "---"; | |
//// set up POST params | |
HashMap params = new HashMap(); | |
// positive tweets about the weather within 15mi of san francisco | |
params.put("q", "weather :) geocode:37.781157,-122.398720,15mi"); | |
happySearch = twitterClient.GET("/search.json", params); | |
HashMap params2 = new HashMap(); | |
// negative tweets about the weather within 15mi of san francisco | |
params2.put("q", "weather :( geocode:37.781157,-122.398720,15mi"); | |
sadSearch = twitterClient.GET("/search.json", params2); | |
//// variable assignment- we instantiate a new array of Glyph objects with size 200 | |
happyGlyphs = new Glyph[200]; | |
for (int i = 0; i < happyGlyphs.length; i = i + 1) { | |
happyGlyphs[i] = new Glyph(); | |
} | |
sadGlyphs = new Glyph[200]; | |
for (int i = 0; i < sadGlyphs.length; i = i + 1) { | |
sadGlyphs[i] = new Glyph(); | |
} | |
} | |
void responseReceived(HttpRequest request, HttpResponse response) { | |
//// check for HTTP 200 success code | |
if (response.statusCode == 200) { | |
println(response.getContentAsString()); | |
JSONObject results = response.getContentAsJSONObject(); | |
locationInfo = results.get("current_observation").get("display_location").get("full").stringValue(); | |
currentTime = results.get("current_observation").get("observation_time_rfc822").stringValue(); | |
tempF = results.get("current_observation").get("temp_f").floatValue(); | |
tempC = results.get("current_observation").get("temp_c").floatValue(); | |
currentConditions = results.get("current_observation").get("weather").stringValue(); | |
iconURL = results.get("current_observation").get("icon_url").stringValue(); | |
// wind info | |
wind = results.get("current_observation").get("wind_string").stringValue(); | |
windDirection = results.get("current_observation").get("wind_dir").stringValue(); | |
windSpeed = results.get("current_observation").get("wind_mph").floatValue(); | |
if (request == HNLweather) { // Honolulu weather | |
HNLinfo = locationInfo.toUpperCase(); | |
HNLtime = currentTime; | |
HNLtempF = tempF; | |
HNLtempC = tempC; | |
HNLconditions = currentConditions; | |
HNLiconURL = iconURL; | |
HNLwind = wind; | |
HNLwindDirection = windDirection; | |
HNLwindSpeed = windSpeed; | |
println(HNLinfo); | |
println(HNLtime); | |
println("Current conditions: " + HNLconditions); | |
println("Temperature: " + HNLtempF + "° F / " + HNLtempC + "° C"); | |
println(HNLiconURL); | |
println("Wind conditions: " + HNLwind); | |
println("Wind speed/direction: " + HNLwindSpeed + " MPH from the " + HNLwindDirection); | |
background(255); | |
imageMode(CORNERS); | |
image(backgroundImg, 0, 0); | |
textAlign(LEFT, TOP); | |
textFont(cityFont, 45); | |
fill(0, 200); | |
text(HNLinfo, 15, 15); | |
textFont(timeFont, 18); | |
text(HNLtime, 15, 65); | |
conditionImg = loadImage(HNLiconURL); | |
image(conditionImg, 15, 110); | |
textFont(weatherFont, 22); | |
text(HNLtempF + "° F / " + HNLtempC + "° C", 75, 110); | |
text(HNLconditions, 75, 135); | |
windImg = loadImage("wind-icon.gif"); | |
image(windImg, 15, 185); | |
text("WIND: " + HNLwind, 75, 185, 300, 60); | |
text("SPEED/DIRECTION: ", 75, 250); | |
text(HNLwindSpeed + " MPH from the " + HNLwindDirection, 75, 275); | |
} | |
if (request == SFOweather) { // San Francisco weather | |
SFOinfo = locationInfo.toUpperCase(); | |
SFOtime = currentTime; | |
SFOtempF = tempF; | |
SFOtempC = tempC; | |
SFOconditions = currentConditions; | |
SFOiconURL = iconURL; | |
SFOwind = wind; | |
SFOwindDirection = windDirection; | |
SFOwindSpeed = windSpeed; | |
println(SFOinfo); | |
println(SFOtime); | |
println("Current conditions: " + SFOconditions); | |
println("Temperature: " + SFOtempF + "° F / " + SFOtempC + "° C"); | |
println(SFOiconURL); | |
println("Wind conditions: " + SFOwind); | |
println("Wind speed/direction: " + SFOwindSpeed + " MPH from the " + SFOwindDirection); | |
background(255); | |
imageMode(CORNERS); | |
image(backgroundImg, 0, 0); | |
textAlign(LEFT, TOP); | |
textFont(cityFont, 45); | |
fill(0, 200); | |
text(SFOinfo, 15, 15); | |
textFont(timeFont, 18); | |
text(SFOtime, 15, 65); | |
conditionImg = loadImage(SFOiconURL); | |
image(conditionImg, 15, 110); | |
textFont(weatherFont, 22); | |
text(SFOtempF + "° F / " + SFOtempC + "° C", 75, 110); | |
text(SFOconditions, 75, 135); | |
windImg = loadImage("wind-icon.gif"); | |
image(windImg, 15, 185); | |
text("WIND: " + SFOwind, 75, 185, 300, 60); | |
text("SPEED/DIRECTION: ", 75, 250); | |
text(SFOwindSpeed + " MPH from the " + SFOwindDirection, 75, 275); | |
} | |
if (request == CHIweather) { // Chicago weather | |
CHIinfo = locationInfo.toUpperCase(); | |
CHItime = currentTime; | |
CHItempF = tempF; | |
CHItempC = tempC; | |
CHIconditions = currentConditions; | |
CHIiconURL = iconURL; | |
CHIwind = wind; | |
CHIwindDirection = windDirection; | |
CHIwindSpeed = windSpeed; | |
println(CHIinfo); | |
println(CHItime); | |
println("Current conditions: " + CHIconditions); | |
println("Temperature: " + CHItempF + "° F / " + CHItempC + "° C"); | |
println(CHIiconURL); | |
println("Wind conditions: " + CHIwind); | |
println("Wind speed/direction: " + CHIwindSpeed + " MPH from the " + CHIwindDirection); | |
background(255); | |
imageMode(CORNERS); | |
image(backgroundImg, 0, 0); | |
textAlign(LEFT, TOP); | |
textFont(cityFont, 45); | |
fill(0, 200); | |
text(CHIinfo, 15, 15); | |
textFont(timeFont, 18); | |
text(CHItime, 15, 65); | |
conditionImg = loadImage(CHIiconURL); | |
image(conditionImg, 15, 110); | |
textFont(weatherFont, 22); | |
text(CHItempF + "° F / " + CHItempC + "° C", 75, 110); | |
text(CHIconditions, 75, 135); | |
windImg = loadImage("wind-icon.gif"); | |
image(windImg, 15, 185); | |
text("WIND: " + CHIwind, 75, 185, 300, 60); | |
text("SPEED/DIRECTION: ", 75, 250); | |
text(CHIwindSpeed + " MPH from the " + CHIwindDirection, 75, 275); | |
} | |
if (request == NYCweather) { // NYC weather | |
NYCinfo = locationInfo.toUpperCase(); | |
NYCtime = currentTime; | |
NYCtempF = tempF; | |
NYCtempC = tempC; | |
NYCconditions = currentConditions; | |
NYCiconURL = iconURL; | |
NYCwind = wind; | |
NYCwindDirection = windDirection; | |
NYCwindSpeed = windSpeed; | |
println(NYCinfo); | |
println(NYCtime); | |
println("Current conditions: " + NYCconditions); | |
println("Temperature: " + NYCtempF + "° F / " + NYCtempC + "° C"); | |
println(NYCiconURL); | |
println("Wind conditions: " + NYCwind); | |
println("Wind speed/direction: " + NYCwindSpeed + " MPH from the " + NYCwindDirection); | |
background(255); | |
imageMode(CORNERS); | |
image(backgroundImg, 0, 0); | |
textAlign(LEFT, TOP); | |
textFont(cityFont, 45); | |
fill(0, 200); | |
text(NYCinfo, 15, 15); | |
textFont(timeFont, 18); | |
text(NYCtime, 15, 65); | |
conditionImg = loadImage(NYCiconURL); | |
image(conditionImg, 15, 110); | |
textFont(weatherFont, 22); | |
text(NYCtempF + "° F / " + NYCtempC + "° C", 75, 110); | |
text(NYCconditions, 75, 135); | |
windImg = loadImage("wind-icon.gif"); | |
image(windImg, 15, 185); | |
text("WIND: " + NYCwind, 75, 185, 300, 60); | |
text("SPEED/DIRECTION: ", 75, 250); | |
text(NYCwindSpeed + " MPH from the " + NYCwindDirection, 75, 275); | |
} | |
// twitter stuff | |
if (request == happySearch) { | |
JSONObject happyResults = content.get("results"); | |
happyGlyphs = new Glyph[happyResults.size()]; | |
for (int i = 0; i < happyResults.size(); i++) { | |
JSONObject tweet = happyResults.get(i); | |
Glyph tg = new Glyph(); | |
// tg.text = tweet.get("text").stringValue(); | |
happyGlyphs[i] = tg; | |
} | |
} | |
else if (request == sadSearch) { | |
JSONObject sadResults = content.get("results"); | |
sadGlyphs = new Glyph[sadResults.size()]; | |
for (int i = 0; i < sadResults.size(); i++) { | |
JSONObject tweet = sadResults.get(i); | |
Glyph tg = new Glyph(); | |
// tg.text = tweet.get("text").stringValue(); | |
sadGlyphs[i] = tg; | |
} | |
} | |
} | |
} | |
void draw () { | |
smooth(); | |
println(happyGlyphs.length); | |
for (int i = 0; i < happyGlyphs.length; i = i + 1) { | |
happyGlyphs[i].paint(i); | |
} | |
println(sadGlyphs.length); | |
for (int i = 0; i < sadGlyphs.length; i = i + 1) { | |
sadGlyphs[i].paint2(i); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
It runs, but displays the following error in the console:
HttpClient: Connecting to api.wunderground.com on port 80
HttpClient: Connecting to api.wunderground.com on port 80
HttpClient: Connecting to api.wunderground.com on port 80
HttpClient: Connecting to api.wunderground.com on port 80
HttpClient: GET http://api.wunderground.com:80/api/d6961237291397f0/conditions/q/NY/New_York_City.json HTTP/1.1HttpClient: GET http://api.wunderground.com:80/api/d6961237291397f0/conditions/q/IL/Chicago.json HTTP/1.1
HttpClient: GET http://api.wunderground.com:80/api/d6961237291397f0/conditions/q/CA/San_Francisco.json HTTP/1.1
HttpClient: GET http://api.wunderground.com:80/api/d6961237291397f0/conditions/q/HI/Honolulu.json HTTP/1.1
HttpClient: Connecting to search.twitter.com on port 443
HttpClient: GET https://search.twitter.com:443/search.json?q=weather+%3A%29+geocode%3A37.781157%2C-122.398720%2C15mi HTTP/1.1
HttpClient: Connecting to search.twitter.com on port 443
HttpClient: GET https://search.twitter.com:443/search.json?q=weather+%3A%28+geocode%3A37.781157%2C-122.398720%2C15mi HTTP/1.1
200
200
200
200
200
200
{
"response": {
"version": "0.1"
,"termsofService": "http://www.wunderground.com/weather/api/d/terms.html"
,"features": {
"conditions": 1
}
}
, "current_observation": {
"image": {
"url":"http://icons-ak.wxug.com/graphics/wu2/logo_130x80.png",
"title":"Weather Underground",
"link":"http://www.wunderground.com"
},
"display_location": {
"full":"Chicago, IL",
"city":"Chicago",
"state":"IL",
"state_name":"Illinois",
"country":"US",
"country_iso3166":"US",
"zip":"60290",
"latitude":"41.87459946",
"longitude":"-87.63729858",
"elevation":"189.00000000"
},
"observation_location": {
"full":"Chicago, Illinois",
"city":"Chicago",
"state":"Illinois",
"country":"US",
"country_iso3166":"US",
"latitude":"41.886047",
"longitude":"-87.627602",
"elevation":"0 ft"
},
"estimated": {
},
"station_id":"KILCHICA86",
"observation_time":"Last Updated on December 12, 6:11 PM CST",
"observation_time_rfc822":"Mon, 12 Dec 2011 18:11:41 -0600",
"observation_epoch":"1323735101",
"local_time_rfc822":"Mon, 12 Dec 2011 18:11:54 -0600",
"local_epoch":"1323735114",
"local_tz_short":"CST",
"local_tz_long":"America/Chicago",
"weather":"Mostly Cloudy",
"temperature_string":"42.6 F (5.9 C)",
"temp_f":42.6,
"temp_c":5.9,
"relative_humidity":"51%",
"wind_string":"From the ESE at 5.0 MPH Gusting to 13.0 MPH",
"wind_dir":"ESE",
"wind_degrees":112,
"wind_mph":5.0,
"wind_gust_mph":"13.0",
"pressure_mb":"1006.7",
"pressure_in":"29.73",
"pressure_trend":"0",
"dewpoint_string":"26 F (-3 C)",
"dewpoint_f":26,
"dewpoint_c":-3,
"heat_index_string":"NA",
"heat_index_f":"NA",
"heat_index_c":"NA",
"windchill_string":"40 F (4 C)",
"windchill_f":"40",
"windchill_c":"4",
"visibility_mi":"10.0",
"visibility_km":"16.1",
"solarradiation":"0",
"UV":"0",
"precip_1hr_string":"0.00 in ( 0 mm)",
"precip_1hr_in":"0.00",
"precip_1hr_metric":" 0",
"precip_today_string":"0.00 in (0 mm)",
"precip_today_in":"0.00",
"precip_today_metric":"0",
"icon":"mostlycloudy",
"icon_url":"http://icons-ak.wxug.com/i/c/k/nt_mostlycloudy.gif",
"forecast_url":"http://www.wunderground.com/US/IL/Chicago.html",
"history_url":"http://www.wunderground.com/history/airport/KILCHICA86/2011/12/12/DailyHistory.html",
"ob_url":"http://www.wunderground.com/cgi-bin/findweather/getForecast?query=41.886047,-87.627602"
}
}
CHICAGO, IL
Mon, 12 Dec 2011 18:11:41 -0600
Current conditions: Mostly Cloudy
Temperature: 42.6° F / 5.9° C
http://icons-ak.wxug.com/i/c/k/nt_mostlycloudy.gif
Wind conditions: From the ESE at 5.0 MPH Gusting to 13.0 MPH
Wind speed/direction: 5.0 MPH from the ESE
{
"response": {
"version": "0.1"
,"termsofService": "http://www.wunderground.com/weather/api/d/terms.html"
,"features": {
"conditions": 1
}
}
, "current_observation": {
"image": {
"url":"http://icons-ak.wxug.com/graphics/wu2/logo_130x80.png",
"title":"Weather Underground",
"link":"http://www.wunderground.com"
},
"display_location": {
"full":"New York, NY",
"city":"New York",
"state":"NY",
"state_name":"New York",
"country":"US",
"country_iso3166":"US",
"zip":"10001",
"latitude":"40.75013351",
"longitude":"-73.99700928",
"elevation":"17.00000000"
},
"observation_location": {
"full":"Hunter College, Upper East Side, New York, New York",
"city":"Hunter College, Upper East Side, New York",
"state":"New York",
"country":"US",
"country_iso3166":"US",
"latitude":"40.768192",
"longitude":"-73.964508",
"elevation":"270 ft"
},
"estimated": {
},
"station_id":"KNYNEWYO45",
"observation_time":"Last Updated on December 12, 7:11 PM EST",
"observation_time_rfc822":"Mon, 12 Dec 2011 19:11:49 -0500",
"observation_epoch":"1323735109",
"local_time_rfc822":"Mon, 12 Dec 2011 19:11:54 -0500",
"local_epoch":"1323735114",
"local_tz_short":"EST",
"local_tz_long":"America/New_York",
"weather":"Clear",
"temperature_string":"46.5 F (8.1 C)",
"temp_f":46.5,
"temp_c":8.1,
"relative_humidity":"29%",
"wind_string":"From the North at 1.0 MPH Gusting to 3.0 MPH",
"wind_dir":"North",
"wind_degrees":360,
"wind_mph":1.0,
"wind_gust_mph":"3.0",
"pressure_mb":"1008.4",
"pressure_in":"29.78",
"pressure_trend":"0",
"dewpoint_string":"16 F (-9 C)",
"dewpoint_f":16,
"dewpoint_c":-9,
"heat_index_string":"NA",
"heat_index_f":"NA",
"heat_index_c":"NA",
"windchill_string":"46 F (8 C)",
"windchill_f":"46",
"windchill_c":"8",
"visibility_mi":"10.0",
"visibility_km":"16.1",
"solarradiation":"0",
"UV":"0",
"precip_1hr_string":"0.00 in ( 0 mm)",
"precip_1hr_in":"0.00",
"precip_1hr_metric":" 0",
"precip_today_string":"0.00 in (0 mm)",
"precip_today_in":"0.00",
"precip_today_metric":"0",
"icon":"clear",
"icon_url":"http://icons-ak.wxug.com/i/c/k/nt_clear.gif",
"forecast_url":"http://www.wunderground.com/US/NY/New_York.html",
"history_url":"http://www.wunderground.com/history/airport/KNYNEWYO45/2011/12/12/DailyHistory.html",
"ob_url":"http://www.wunderground.com/cgi-bin/findweather/getForecast?query=40.768192,-73.964508"
}
}
NEW YORK, NY
Mon, 12 Dec 2011 19:11:49 -0500
Current conditions: Clear
Temperature: 46.5° F / 8.1° C
http://icons-ak.wxug.com/i/c/k/nt_clear.gif
Wind conditions: From the North at 1.0 MPH Gusting to 3.0 MPH
Wind speed/direction: 1.0 MPH from the North
200
200
{
"response": {
"version": "0.1"
,"termsofService": "http://www.wunderground.com/weather/api/d/terms.html"
,"features": {
"conditions": 1
}
}
, "current_observation": {
"image": {
"url":"http://icons-ak.wxug.com/graphics/wu2/logo_130x80.png",
"title":"Weather Underground",
"link":"http://www.wunderground.com"
},
"display_location": {
"full":"Honolulu, HI",
"city":"Honolulu",
"state":"HI",
"state_name":"Hawaii",
"country":"US",
"country_iso3166":"US",
"zip":"96801",
"latitude":"21.32780075",
"longitude":"-157.82940674",
"elevation":"229.00000000"
},
"observation_location": {
"full":"APRSWXNET Honolulu HI US, Honolulu, Hawaii",
"city":"APRSWXNET Honolulu HI US, Honolulu",
"state":"Hawaii",
"country":"US",
"country_iso3166":"US",
"latitude":"21.299669",
"longitude":"-157.797836",
"elevation":"659 ft"
},
"estimated": {
},
"station_id":"MC0875",
"observation_time":"Last Updated on December 12, 1:48 PM HST",
"observation_time_rfc822":"Mon, 12 Dec 2011 13:48:00 -1000",
"observation_epoch":"1323733680",
"local_time_rfc822":"Mon, 12 Dec 2011 14:11:55 -1000",
"local_epoch":"1323735115",
"local_tz_short":"HST",
"local_tz_long":"Pacific/Honolulu",
"weather":"Scattered Clouds",
"temperature_string":"79 F (26.1 C)",
"temp_f":79,
"temp_c":26.1,
"relative_humidity":"76%",
"wind_string":"From the NE at 5 MPH Gusting to 18.0 MPH",
"wind_dir":"NE",
"wind_degrees":49,
"wind_mph":5,
"wind_gust_mph":"18.0",
"pressure_mb":"1015.1",
"pressure_in":"29.98",
"pressure_trend":"",
"dewpoint_string":"71 F (22 C)",
"dewpoint_f":71,
"dewpoint_c":22,
"heat_index_string":"82 F (28 C)",
"heat_index_f":82,
"heat_index_c":28,
"windchill_string":"NA",
"windchill_f":"NA",
"windchill_c":"NA",
"visibility_mi":"10.0",
"visibility_km":"16.1",
"solarradiation":"",
"UV":"4",
"precip_1hr_string":"0.00 in ( 0 mm)",
"precip_1hr_in":"0.00",
"precip_1hr_metric":" 0",
"precip_today_string":"0.34 in (9 mm)",
"precip_today_in":"0.34",
"precip_today_metric":"9",
"icon":"partlycloudy",
"icon_url":"http://icons-ak.wxug.com/i/c/k/partlycloudy.gif",
"forecast_url":"http://www.wunderground.com/US/HI/Honolulu.html",
"history_url":"http://www.wunderground.com/history/airport/MC0875/2011/12/12/DailyHistory.html",
"ob_url":"http://www.wunderground.com/cgi-bin/findweather/getForecast?query=21.299669,-157.797836"
}
}
HONOLULU, HI
Mon, 12 Dec 2011 13:48:00 -1000
Current conditions: Scattered Clouds
Temperature: 79.0° F / 26.1° C
http://icons-ak.wxug.com/i/c/k/partlycloudy.gif
Wind conditions: From the NE at 5 MPH Gusting to 18.0 MPH
Wind speed/direction: 5.0 MPH from the NE
java.lang.NullPointerException
at processing.mode.java.runner.Runner.findException(Runner.java:613)
at processing.mode.java.runner.Runner.reportException(Runner.java:561)
at processing.mode.java.runner.Runner.exception(Runner.java:501)
at processing.mode.java.runner.EventThread.exceptionEvent(EventThread.java:367)
at processing.mode.java.runner.EventThread.handleEvent(EventThread.java:255)
at processing.mode.java.runner.EventThread.run(EventThread.java:89)
Exception in thread "Animation Thread" java.lang.NullPointerException
at processing.core.PApplet.loadImage(Unknown Source)
at processing.core.PApplet.loadImage(Unknown Source)
at wunderground_twitter.responseReceived(wunderground_twitter.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.francisli.processing.http.HttpClient.pre(HttpClient.java:163)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at processing.core.PApplet$RegisteredMethods.handle(Unknown Source)
at processing.core.PApplet$RegisteredMethods.handle(Unknown Source)
at processing.core.PApplet.handleDraw(Unknown Source)
at processing.core.PApplet.run(Unknown Source)
at java.lang.Thread.run(Thread.java:680)