2010-07-19

00:14 <@geoloqi> RT @jtbandes: The recent version of @geoloqi is making today's bike ride awesomer! http://yfrog.com/ncdeej
08:40 LoqiLog joined #geoloqi
08:41 workshop joined #geoloqi
09:05 jtbandes joined #geoloqi
09:13 caseorganic joined #geoloqi
09:54 <@geoloqi> A good weekend for @geoloqi. Presented both at #fsws2010 #fsws by @aaronpk and at @cyborgcamp Seattle by @caseorganic!
11:02 <Loqi> 2 files modified in http://github.com/geoloqi/android-client/commits/master by Don Park
11:13 <donpdonp> i need a refresher on the device key business.
11:14 <donpdonp> whats the URL the client should post to?
11:24 <donpdonp> this is what the android geoloqi client is posting http://pastie.org/1050787
11:24 caseorganic joined #geoloqi
11:26 caseorganic_ joined #geoloqi
11:28 <Loqi> 2 files modified in http://github.com/geoloqi/android-client/commits/master by Don Park
11:39 jtbandes joined #geoloqi
12:11 <Loqi> [[Special:Log/upload]] upload * Caseorganic * uploaded "[[File:loqisaur.png]]"
12:13 <Loqi> [[File:loqisaur.png]] http://dev.geoloqi.com/index.php?diff=212&oldid=211&rcid=215 * Caseorganic * (+5)
12:13 <Loqi> [[Main Page]] M http://dev.geoloqi.com/index.php?diff=213&oldid=193&rcid=216 * Caseorganic * (+34)
12:18 <Loqi> [[Special:Log/upload]] overwrite * Caseorganic * uploaded a new version of "[[File:loqisaur.png]]"
12:24 <Loqi> [[Special:Log/upload]] upload * Caseorganic * uploaded "[[File:loqi-rar.jpg]]"
12:29 <Loqi> [[Special:Log/upload]] upload * Caseorganic * uploaded "[[File:loqisaur-nom-bowl.jpg]]"
12:33 <Loqi> [[File:loqisaur.png]] http://dev.geoloqi.com/index.php?diff=217&oldid=214&rcid=220 * Caseorganic * (+526)
12:34 <Loqi> [[File:loqisaur.png]] http://dev.geoloqi.com/index.php?diff=218&oldid=217&rcid=221 * Caseorganic * (+11)
12:35 <@geoloqi> @mpanighetti Thanks to you, @loqisaur has his own page now! http://caseorganic.com/1Jz
12:35 <Loqi> you're welcome
12:59 <@mpanighetti> @geoloqi Just doing my part to profess the greatness of @loqisaur.
14:26 <Loqi> 3 files modified in http://github.com/geoloqi/android-client/commits/master by Don Park
14:27 <donpdonp> aaronpk: do i have a device key on geoloqi?
14:27 <aaronpk> checking
14:28 <aaronpk> yes, PM'd
14:29 <donpdonp> got it
14:31 <aaronpk> cool
14:38 <donpdonp> can you check if the last POST had good data for my device key?
14:40 <aaronpk> I don't see anything
14:40 <Loqi> 2 files modified in http://github.com/geoloqi/android-client/commits/master by Don Park
14:41 <donpdonp> something should be in the log
14:41 <aaronpk> yea I see two posts in the log
14:41 <donpdonp> k
14:42 <donpdonp> does the server log if the json blob is incorrect?
14:45 <aaronpk> looks like it's having trouble understanding the json
14:45 <donpdonp> Column 'lat' cannot be null
14:46 <aaronpk> "Undefined property: stdClass::$location"
14:46 <donpdonp> i captured the json over the wire
14:46 <aaronpk> sounds like it can't find the location element
14:46 <donpdonp> it looks correct to me
14:47 <aaronpk> ah, try sending an array of points
14:47 <aaronpk> even if there's just one
14:47 <donpdonp> ah ok
14:50 <donpdonp> {"response":"ok"}
14:50 <aaronpk> yay!
14:50 <Loqi> Loqi giggles
14:50 <aaronpk> there it is
14:50 <donpdonp> word.
14:50 <aaronpk> tho that lat/long looks like san francisco
14:51 <donpdonp> yeah its running in an emulator. no gps hardware
14:51 <aaronpk> ah
14:51 caseorganic joined #geoloqi
14:52 <donpdonp> most excellent.
14:52 <donpdonp> i believe that is the Googleplex
14:52 <caseorganic> i came into that too late.
14:52 <aaronpk> donpdonp just successfully logged a point from the android version of geoloqi!
14:53 <caseorganic> YES
14:53 <caseorganic> this is ...one small step for donpdonp, one large leap for loqikind!
14:54 <aaronpk> someone asked me yesterday what kind of dinosaur Loqi is. I think I said he is a Loqisaurus. That sound about right, yea?
14:54 <caseorganic> I think so too
14:54 <Loqi> 1 files modified in http://github.com/geoloqi/android-client/commits/master by Don Park
14:54 <caseorganic> technically, he might be a stegosaurus
14:54 <caseorganic> albeit a very truncated one.
14:54 <workshop> whatever type he is, he's a locavore
14:55 <caseorganic> hahah!
14:55 <Loqi> hehe
14:55 <caseorganic> yes, you, Loqi!
14:55 <Loqi> who, me?
14:55 <caseorganic> I'll add that to the wiki.
14:55 <caseorganic> caseorganic gives Loqi a cookie
14:55 <Loqi> Loqi grabs the cookie
14:56 <donpdonp> caseorganic: congrats on cyborgcamp seattle
14:56 <donpdonp> the handdrawn loqi was nice
14:57 <caseorganic> yes - @mpanighetti made it
14:57 <caseorganic> i really hope he draws more
15:02 <Loqi> 1 files modified in http://github.com/geoloqi/android-client/commits/master by Don Park
15:03 <Loqi> [[File:loqisaur.png]] http://dev.geoloqi.com/index.php?diff=220&oldid=218&rcid=223 * Caseorganic * (+123)
15:09 <aaronpk> oh donpdonp the version that was on github yesterday crashes in my emulator as soon as I try to turn on location. haven't tried installing it on my phone yet
15:10 <donpdonp> all of the cool changes are from today :)
15:10 <donpdonp> if it crashes again, please pastie the 'adb logcat ' output
16:39 caseorganic joined #geoloqi
16:39 caseorganic joined #geoloqi
17:44 <@casebot> Caseorganic published a photo: First logged point from Don Park using @Geoloqi for Android!: caseorganic posted a ... http://bit.ly/9opCHK
17:51 <@anothercasebot> Posted a photo: First logged point from Don Park using @Geoloqi for Android! http://caseorganic.com/1K4 [Flickr]
17:57 <@mpanighetti> My good friend @loqisaur has his own page on the @geoloqi wiki now. http://caseorganic.com/1Jz More to come!
18:14 <aaronpk> donpdonp: is Util.java supposed to be around somewhere?
18:14 <aaronpk> for making the date string
19:15 workshop joined #geoloqi
19:19 <donpdonp> yes
19:19 <donpdonp> whoops
19:20 <donpdonp> committed.
19:20 <aaronpk> woo
19:20 <donpdonp> i tried it on my N1
19:20 <donpdonp> its kind of a disaster right now because the http push happens on the UI thread
19:20 <donpdonp> so turn the frequency way up
19:20 <donpdonp> either way it'll probably look like its frozen shortly after it starts doing something interesting
19:21 jtbandes joined #geoloqi
19:25 <aaronpk> it says "requires fine location permission"
19:27 <aaronpk> donpdonp: exact error: 07-19 19:21:53.659: ERROR/AndroidRuntime(717): java.lang.SecurityException: Requires ACCESS_FINE_LOCATION permission
19:29 <donpdonp> thats one of those things were i should have seen the same error
19:30 <aaronpk> ah i see what happened
19:30 <donpdonp> check AndroidManifest.xml
19:30 <donpdonp> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
19:30 <donpdonp> <uses-permission android:name="android.permission.INTERNET" />
19:30 <aaronpk> So far I haven't been able to build the project downloading it directly from github, so I've been creating a new project in Eclipse and copying the sources files over. I missde the manifest.xml file
19:32 <donpdonp> ah
19:37 <aaronpk> It's either not building a new version of the app when I click the "run" button, or it's not able to retrieve my device key.
19:37 <aaronpk> sooo close tho
19:39 <donpdonp> retrieve?
19:39 <donpdonp> its set in the settings screen
19:40 <aaronpk> It's like it thinks the device key is an empty screen
19:41 <aaronpk> although it crashes when I try to open the prefs screen so I may have forgotten another file
19:42 <aaronpk> it would be way better if I could just run it from the folder I checked out from github, but I get that weird "Conversion to Dalvik format failed with error 1" error
19:43 <donpdonp> weird.
19:44 <donpdonp> if a java file were missing, it wouldnt build at all
19:44 <donpdonp> so you probably have all the files now
19:45 <aaronpk> ok so it's definitely not building a new version. this is from the console "Application already deployed. No need to reinstall."
19:46 <aaronpk> I ran "clean", but I'm not sure that's fixing it either. How can I completely remove the app from the emulator?
19:49 caseorganic joined #geoloqi
19:51 <donpdonp> adb uninstall com.geoloqi.android
19:52 <aaronpk> adb isn't in my path, where is the file?
19:54 <aaronpk> nvm found it
19:56 <aaronpk> arg, it's still not loading the prefs screen even though I fixed my manifest file
20:03 <donpdonp> what does it do?
20:03 <donpdonp> anything in adb logcat?
20:03 <aaronpk> crashes with 07-19 20:03:38.309: ERROR/AndroidRuntime(1331): java.lang.RuntimeException: Unable to resume activity {com.geoloqi.android/com.geoloqi.android.Preferences}: java.lang.NullPointerException
20:04 <aaronpk> which I assume is because it's using an old manifest.xml file which didn't have the prefs screen declared
20:04 <donpdonp> that would be a different error i believe
20:04 <donpdonp> can you pastie the err + stacktrace?
20:07 <aaronpk> also note the URL it posted to doesn't include the API key at the end
20:08 <aaronpk> not sure if that's related
20:12 <aaronpk> also -- good way to break google maps is to create a latlng object with the lat and lng swapped
20:12 <donpdonp> yeah its related. the key comes from the settings
20:13 <donpdonp> i see the line thats crashing though its not obvious whats wrong
20:14 <donpdonp> cloudcamp just got interesting :)
20:14 <aaronpk> oh yea? who's on?
20:17 <donpdonp> its moving fast
20:17 <donpdonp> i dont know any names
20:17 <donpdonp> check out #oscon
20:22 <aaronpk> aaronpk lurking
20:24 <aaronpk> is the phone blurring my location intentionally?? I'm running "geo fix" to send an exact location to the emulator, but it's reporting it several blocks away
20:25 <aaronpk> or is this some weird rounding error?
20:31 <aaronpk> installed to my phone and it appears to be reporting the correct location!!
20:33 <donpdonp> woo
20:35 <aaronpk> but it's sending a point every second! lol
20:35 <aaronpk> or, sending something...
20:41 <aaronpk> hah
20:41 <caseorganic> good!
20:43 <donpdonp> @tylergillies runs that on his iphone
20:44 <donpdonp> then polls google latitute to do geo-triggered actions
20:44 <donpdonp> latitude
20:44 <donpdonp> good use of existing infrastructure
20:47 <aaronpk> what exactly does the slider do right now?
20:47 <donpdonp> controls the requested update frequency
20:48 <donpdonp> android gps updates come in gun-shot blasts
20:48 <aaronpk> so it asks the phone to only send them that often?
20:48 <donpdonp> it asks android to alert the app that often
20:48 <donpdonp> the app sends every location change notice it gets
20:49 <aaronpk> ok
20:49 <donpdonp> which is the first thing that needs to be throttled
20:49 <aaronpk> and the "age" field shows time since the last notice the app got?
20:49 <donpdonp> yes
20:49 <aaronpk> mine says "79 sec" right now, but the slider is set to 22
20:49 <aaronpk> does that mean the phone just didn't send one for a while?
20:49 <donpdonp> im curious how iPhone gps updates work because while android is different i think its a good approach
20:49 <donpdonp> correct
20:50 <aaronpk> iphone is similar, but instead of a time, you specify distance
20:50 <aaronpk> "notify me if the location changes more than 5 meters"
20:50 <donpdonp> android can do distance too
20:50 <donpdonp> if you ask for an update every 30 secs, is it one update exactly 30 seconds apart from the last?
20:51 <aaronpk> on the iPhone or on my android?
20:51 <donpdonp> iphone
20:51 <aaronpk> afaik you can't ask for it by time
20:52 <aaronpk> we have three sliders on the iPhone version. We might end up with 4 on android -- http://geoloqi.org/Mobile_Device_Control_Panel
20:52 <aaronpk> the top one is the value passed to the phone's location service, the bottom two are within the app
20:52 <aaronpk> so the app itself will ignore points that come in more frequently than the "tracking limit"
20:52 <aaronpk> and will not send updates to the server more frequently than the "rate limit"
20:53 tjgillies joined #geoloqi
20:53 <donpdonp> k. cool page.
20:54 <tjgillies> aloha muh hax0rs
20:54 <aaronpk> hello!
20:54 <donpdonp> that was fast, tjgillies
20:54 <caseorganic> hola!
20:54 <tjgillies> i had xchat open already
20:54 <donpdonp> tjgillies is the guy i was just talking about
20:54 <tjgillies> they know me
20:54 <donpdonp> re goog latitude
20:56 <aaronpk> you wrote an app to automatically check you in to foursquare?
20:56 <tjgillies> yeah
20:56 <aaronpk> neat
20:56 <tjgillies> using this logic: http://gist.github.com/482493
20:57 <aaronpk> cool. that's exactly one of the things I'm hoping to enable with geoloqi!
20:59 <aaronpk> I'm glad I'm not the only one thinking of things this way. You've got what I've been calling a "layer" of points of interest, and the automatic action that happens when you're near any of the points in that layer is checking in to foursquare.
21:00 <aaronpk> I might define a different layer which is a list of cities or parts of portland which publishes my location as a text string to a widget on my website
21:00 <tjgillies> i have layer that controls my house
21:00 <aaronpk> no way me too...
21:00 <tjgillies> if im close to my house it turns my lights on
21:01 <aaronpk> x10?
21:01 <tjgillies> insteon
21:01 <aaronpk> ah
21:01 <aaronpk> we've got x10 here. it also starts and stops the music player.
21:01 <donpdonp> lol i was just looking at insteon
21:01 <aaronpk> have you used x10 before? I'm curious if insteon is any more reliable than x10
21:01 <tjgillies> the controller i have supports x10 also
21:02 <donpdonp> my house uses zigbee to make the bed, clean the toilet, and cook eggs
21:02 <tjgillies> its a software sdk
21:02 <tjgillies> wrote a C# app that talks to the server, which controls the controller via usb
21:03 <donpdonp> how do the insteon plugs talk to each other?
21:03 <tjgillies> over powerline
21:04 <donpdonp> linux drivers?
21:04 <aaronpk> which is the reason it's a really sketchy protocol
21:04 <aaronpk> x10 has problems with CFL bulbs
21:04 <aaronpk> and large motors that cause a lot of line noise
21:04 <tjgillies> i think insteon has the quality control stuff built in
21:05 <aaronpk> i've got a device plugged in to the serial port of my linux server at home which broadcasts the x10 commands
21:05 <tjgillies> s/the/some/
21:05 <tjgillies> theres a serial modem but the software it uses is some weird scripting language
21:05 <tjgillies> the usb one lets you use .NET
21:06 <tjgillies> aaronpk, what x10 controller do you use?
21:06 <aaronpk> the CM11A
21:07 <aaronpk> someone wrote linux drivers for it so you get CLI access, which of course is great for scripting
21:08 <aaronpk> so donpdonp, the "settings.getInt(PREFERENCE_UPDATE_FREQUENCY, 0)" -- does that return "0" if it can't find the setting defined by that constant?
21:17 <donpdonp> yes
21:18 <aaronpk> ok I'm changing that to a 1 since my version is having trouble reading the settings, so it's streaming data super fast
21:18 <donpdonp> thats probably not controllable from that setting
21:19 <donpdonp> ask android for a reading every 30 sec
21:19 <@casebot> Caseorganic published a photo: Rawr!: caseorganic posted a photo: @loqisaur would like this! http://bit.ly/cdQem0
21:19 <donpdonp> and you'll get a gunshot hit of 15 updates in 15 seconds
21:19 <donpdonp> then a 30 second wait
21:19 <donpdonp> or there abouts
21:19 <tjgillies> whats the loqi bot written in?
21:19 <donpdonp> its all very fruzzy
21:19 <aaronpk> hm ok
21:20 <aaronpk> loqi is based on the mediawiki recent changes notification bot. Started out in perl. But mostly all the perl does now is listen for UDP packets and hand data off to a php script.
21:20 <Loqi> who, me?
21:20 <aaronpk> yep, you.
21:21 <tjgillies> php and perl love child, poor thing
21:22 <aaronpk> haha
21:22 <Loqi> hehe
21:22 <aaronpk> the neat thing is that it doesn't matter where the data comes from anymore, as long as you can send a UDP packet, you can get Loqi to say something
21:22 <tjgillies> where do you send it?
21:23 <aaronpk> the perl script is a UDP listener that has a port open
21:23 <tjgillies> interesting
21:23 <tjgillies> i use amqp for my bot communications
21:23 <aaronpk> this IRC bot has been the hub for a lot of hacking I've done over the years. It makes it really easy to do things using it as a hub
21:24 <tjgillies> "hub"?
21:25 <aaronpk> for example, at one point I created an "!sms" command, and now any time I want to send an SMS from any app I can just shoot off a UDP message to the bot. Now I don't have to figure out how to load a library for sending SMSs if I want to do that from a website, a server monitoring script, whatever
21:27 <tjgillies> gotcha
21:27 <tjgillies> thats smart
21:27 <tjgillies> i might use that idea
21:27 <aaronpk> it's been working out pretty well
21:27 <aaronpk> you just need some framework for creating an IRC bot that can respond to !commands
21:28 <aaronpk> doesn't matter what it's written in, then you need something that can listen for UDP packets and send them to the IRC channel
21:28 <tjgillies> i use cinch library for building irc bots in ruby
21:29 <tjgillies> its super simple and does !commands
21:29 <tjgillies> i just never used it as a hub
21:29 <aaronpk> cool. you could either figure out how to get the ruby bot to open up a UDP port, or you could just use the mediawiki bot to get UDP packets into the channel your ruby bot is in
21:31 <aaronpk> HTTP is good and all, but there's a lot to be said for alternate protocols like UDP and XMPP
21:31 <tjgillies> yeah
21:31 <tjgillies> low level protocols are the awesome
21:32 <tjgillies> i like redis because in ruby its as easy as r = Redis.new; r.publish("bot", "{'aaronpk':'hello there'})
21:32 <aaronpk> you have to decide how to handle security with the UDP method. Like including a secret string of text in the update, or using the system firewall, or just leave it open and rely on security by obscurity
21:33 <tjgillies> amqp has permissions built in to the broker, thats why i like that. was thinking of using it for a distributed microblogging platform
21:34 <aaronpk> interesting
21:35 <tjgillies> i was gonna go to evan prodromous thing but i was sleeping heh
21:36 <aaronpk> oh he was talking today?
21:36 <aaronpk> I thought he didn't present until Friday
21:36 <tjgillies> he had a distributed messing meetup yesterdat
21:36 <tjgillies> private invite only
21:36 <tjgillies> i can't type for crap today
21:36 <aaronpk> oh yea, it was great
21:36 <aaronpk> don and I were there
21:36 <tjgillies> you were there? oh cool
21:37 <tjgillies> you know brain hendrickson?
21:37 <tjgillies> brian
21:38 <aaronpk> I don't know if I actually talked to him yesterday
22:05 <aaronpk> I'm going to take Geoloqi for a run on my android phone!!
22:09 <caseorganic> Excellent!
22:09 <caseorganic> Are you hooked up to the test account?
22:09 <aaronpk> I've got my own device key and everything :)
22:09 <caseorganic> fascinating! okay - i'm atching.
22:09 <caseorganic> watching*
22:09 <aaronpk> this should update soon http://test.geoloqi.com/profile/aaronpk
22:10 <caseorganic> It just did.
22:10 <aaronpk> yeahhhh!!!!!
22:10 <aaronpk> ok here I go! let's see if I can make it to the middle of Ladd's and back
22:10 <caseorganic> ok
22:12 <aaronpk> refresh the page for a better view!
22:13 <caseorganic> Ah - there it goes.
22:13 <caseorganic> Okay - ready, set, go!
22:15 <caseorganic> It's working!!!
22:15 <caseorganic> It's alive!
22:16 <caseorganic> Totally sweetopianicioustorioustacular!
22:16 <caseorganic> Trail is paused - either you are checking your device to see the trail, or are waiting for the light to turn so you can cross the street.
22:24 <caseorganic> You did it!
22:24 <caseorganic> Yay Donpdonp!
22:24 <caseorganic> Yay Aaron!
22:24 <Loqi> :D
22:25 <caseorganic> Yay Loqi!
22:25 <Loqi> :D
22:27 <aaronpk> back!!
22:28 <caseorganic> *claps*
22:29 <aaronpk> interesting, there seem to be some gaps in the data
22:32 <aaronpk> small ones, but it missed most of the loop around ladd's circle
22:35 <caseorganic> curious
22:35 <caseorganic> what was the update rate?
22:36 <aaronpk> well, my slider was set to 8 seconds, but they were coming in at about 3
22:38 <caseorganic> hmm!
23:11 <@anothercasebot> Posted a photo: Geoloqi now works on Android! http://caseorganic.com/1KJ [Flickr]
23:23 <@casebot> Caseorganic published a photo: Geoloqi now works on Android!: caseorganic posted a photo: geoloqi.com http://bit.ly/bvRA1L
23:31 <@pkbot> Posted a photo: Geoloqi on Android! http://aaron.pk/1KL [Flickr]
23:34 <aaronpk> donpdonp: I see what you mean about the bursts!