<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1169357732065711508</id><updated>2011-04-21T21:25:46.796+01:00</updated><category term='meeting'/><title type='text'>iLogLife</title><subtitle type='html'>iLogLife - logging a person's daily life using BlueTooth and GPS. A final year project as part of my B.Sc in Computer Applications</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>16</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-7101498594857950046</id><published>2008-04-02T19:49:00.002+01:00</published><updated>2008-04-02T19:53:02.460+01:00</updated><title type='text'>Major data loss</title><content type='html'>I have been trying to have the Nokia device on all week, but that was no use. Earlier today  the filesystem on the device got corrupted again, this time the projects directory got affected! As a result I lost all of this weeks data, and some work I have done over the weekend which I thought I backed up to my desktop but it turns out no... Really annoying, due to resets(I wrote a script over the weekend to monitor the program and start it if its not running... and this was lost), sqlite data corruption(I think I have tracked down this bug today) I have not collected as much data as I like...&lt;br /&gt;&lt;br /&gt;And Django progress is going slow too... STRESS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-7101498594857950046?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/7101498594857950046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=7101498594857950046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/7101498594857950046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/7101498594857950046'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/04/major-data-loss.html' title='Major data loss'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-4008364722988294559</id><published>2008-03-30T18:12:00.008+01:00</published><updated>2008-04-15T11:07:15.636+01:00</updated><title type='text'>Behind Schedule, new plan</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;New Plan&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I'm slightly behind schedule, I only started the location segmentation when it should have been completed! Now I don't really have much time for Bluetooth familiarity and presentation, and now have a new part to do too!&lt;br /&gt;&lt;br /&gt;Here is a revised Gantt chart for the 4 major milestones I have to do:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tmvbl7m2qhU/R-_M8VgvRiI/AAAAAAAAA5Y/qgSpMwRVJf0/s1600-h/gannt.png"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_tmvbl7m2qhU/R-_M8VgvRiI/AAAAAAAAA5Y/qgSpMwRVJf0/s400/gannt.png" alt="" id="BLOGGER_PHOTO_ID_5183587033065408034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Django UI: Web interface which allows you to navigate the collected data, working on this for the next few weeks.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Validation:&lt;/span&gt; During this time,I'll need to get some of my friends to evaluate it and adjust it according to their comments.&lt;/li&gt;&lt;li&gt;Event Notification: Enter the event you want to be reminded of on Nokia tablet or the web interface, and the event will be reminded. 2 weeks for this. &lt;a href="http://pymaemo.garage.maemo.org/documentation/pymaemo_tutorial/python_maemo_howto.html#link18"&gt;I'll need to take a look libosso library in maemo for dbus notifications&lt;/a&gt; and figure out how beep sounds.&lt;/li&gt;&lt;li&gt;Visualisation: Try to make some sort of interactive cut down version to navigate this data&lt;/li&gt;&lt;li&gt;Finally: Documentation&lt;/li&gt;&lt;/ul&gt;Its going to be fairly few hectic few weeks as I try to finish this on top of trying to catch up on my other subjects that I have been neglecting and also to do other assignments!&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Validation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;As I already mentioned, I'll get my friends to use the Django web interface and adjust accord to their comments.&lt;br /&gt;&lt;br /&gt;I'm also considering to giving the whole device to one of my friends for couple of days to get them to collect their data and see how well it works, and incorporate any changes they will make. As so far I have been the only person using the device.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Framework&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;The way the project is changing, is its becoming a framework of life log data. I'll develop two applications for an example, life log browser and context aware reminder.&lt;br /&gt;&lt;br /&gt;Other potential uses for what I have developed so far could be:&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Automatically setting a mobile phone profile settings to silent with certain conditions, for example lecturers phone is detected or in DCU, and changing the profile back to normal when the location is left.&lt;/li&gt;&lt;li&gt;Plug in for the likes of &lt;a href="http://twitter.com/"&gt;twitter&lt;/a&gt; which posts up the location every time it changes... or even a blog!&lt;/li&gt;&lt;li&gt;If this system is implemented for everyone working in a certain office; if all the workers general location is transmitted to a central server, various things can be done with this:&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Working hours time tracking, instead of using swipe cards, manually logging.&lt;/li&gt;&lt;li&gt;General people in the office availability - to show if not in the office at all today, or only gone out temporarily&lt;/li&gt;&lt;li&gt;Similar to the previous point, the PBX could be integrated with this and if the person is not available, the call could be redirected to someone else or even the mobile phone of that person, without setting it up manually or letting it ring throughout for a certain amount of time.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;More to be added, when I think of them&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;That is all&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This is most likely going to be the last post as the blogs will not be evaluated after tomorrow. Thanks to everyone who read this with my 'essay' type posts!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-4008364722988294559?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/4008364722988294559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=4008364722988294559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/4008364722988294559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/4008364722988294559'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/03/behind-schedule-new-plan.html' title='Behind Schedule, new plan'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tmvbl7m2qhU/R-_M8VgvRiI/AAAAAAAAA5Y/qgSpMwRVJf0/s72-c/gannt.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-8131607219241031330</id><published>2008-03-28T22:14:00.003Z</published><updated>2008-03-28T22:30:18.821Z</updated><title type='text'>Meeting</title><content type='html'>Had a very helpful meeting today with my supervisor about the project.&lt;br /&gt;We decided developing another use for what I have developed already, besides just the 'lifelog' history. What I thought about previously was add a Context Aware reminder, which beeps and reminds you when certain conditions are met, for example next time I'm with Alan in DCU, remind me to tell him something. The notes can be triggered by either/and a person(bluetooth device), location, date and time. Implementing this should not be to hard, but it is a lot more work on top of what I already have to do.&lt;br /&gt;&lt;br /&gt;Basic diagram, and things discussed on the left side of the picture of the whiteboard:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tmvbl7m2qhU/R-1vy1gvRhI/AAAAAAAAA44/LIO3g8UyqRY/s1600-h/28032008176.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_tmvbl7m2qhU/R-1vy1gvRhI/AAAAAAAAA44/LIO3g8UyqRY/s400/28032008176.jpg" alt="" id="BLOGGER_PHOTO_ID_5182921665321846290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Basically, the visualization of the data has been scaled down, but developing simple application to show the details by person and location, also simple interactive diagram which shows people and the locations they're seen(bottom left).&lt;br /&gt;Top left shows the overall picture of the new proposed architecture, a todo list is entered on the web page and/or the device, its synced to the device. The notification is displayed when the conditions match. I already beggan looking at how I could implement this, and &lt;a href="http://www.djangoproject.com/"&gt;I have chosen Django framework for Python.&lt;/a&gt; Spent the last few hours playing around with Django and it seems fairly nice.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-8131607219241031330?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/8131607219241031330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=8131607219241031330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/8131607219241031330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/8131607219241031330'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/03/meeting.html' title='Meeting'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tmvbl7m2qhU/R-1vy1gvRhI/AAAAAAAAA44/LIO3g8UyqRY/s72-c/28032008176.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-929050168271817940</id><published>2008-03-27T21:32:00.002Z</published><updated>2008-03-27T21:46:28.189Z</updated><title type='text'>Nokia tablet problems</title><content type='html'>The Nokia tablet started to have fairly frequent problems of randomly resetting it self, it was always happening from the time I got the device, but over yesterday and today it became a lot more frequent, the reset is tole ratable, but what causes me problems is that the file system gets corrupted and I have to repair it(using fsck), even then this did not fix the problem today, it would boot up fine; show the desktop environment and then rebootafter few seconds... so I had to restore the original operating system that I have, but stupidly I forgot to backup the data collected and it was over written with the old data, I didn't realise until it was to late! Originally, I thought it was a weeks worth of data, but checking now it was only today and yesterday, so not to bad I guess, could have been worse!&lt;br /&gt;&lt;br /&gt;Another problem I have noticed is that the logger program just dies randomly when run from inet.d script, but works fine for hours if run manually from command line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-929050168271817940?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/929050168271817940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=929050168271817940' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/929050168271817940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/929050168271817940'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/03/nokia-tablet-problems.html' title='Nokia tablet problems'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-5083486031847238442</id><published>2008-03-24T18:26:00.005Z</published><updated>2008-03-26T11:06:01.782Z</updated><title type='text'>Formatted data output, getting there!</title><content type='html'>Over the last while I cleaned up and restructured some of the code, which took ages, hit so many weird problems with PL/PSQL, and the error reporting is not very great - it has taken me upwards of an hour to spot some mistakes! So slow progress.&lt;br /&gt;&lt;br /&gt;Now the code is pretty much ready to be used with a trigger when a new data is uploaded, I have done GPS segments to locations mapping now too (if a new location is found, it is added to the location list). The way I'm doing this is by getting the average of all the coordinates within that segment which have more than 3 satellites, and then trying to match this average coordinate to a previously detected location which is within 200meters, the only problem is that sometimes the average of coordinates is not accurate enough to detect the location accurately. Will have to work on this more.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Formated output, Finally!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Messed around with outputting some HTML of the analyzed data.&lt;br /&gt;&lt;a href="http://www.redbrick.dcu.ie/%7Esvan/final_year/locations.html"&gt;Formated results are available here.&lt;/a&gt; (GPS coordinates are slightly changed so I don't give out where I live on the internet...). To match DCU, the average coordinate must be within 800meters from the centre, and for home I made it slightly smaller, due to the high freaquancy of the locations visited and creating lots of locations within, especially with DCU and to reduce some errors.&lt;br /&gt;&lt;br /&gt;Now some of the more interesting data I have collected which is not me doing Home -&gt; DCU -&gt; Home:&lt;br /&gt;&lt;h1&gt;2008-03-14&lt;/h1&gt;   &lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;segment&lt;/td&gt;&lt;td&gt;Start&lt;/td&gt; &lt;td&gt;End&lt;/td&gt; &lt;td&gt; From &lt;/td&gt; &lt;td&gt; To &lt;/td&gt;  &lt;td&gt;Location&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;83&lt;/td&gt; &lt;td&gt;07:40:17 &lt;/td&gt;&lt;td&gt;07:53:41&lt;/td&gt;  &lt;td&gt;31141 &lt;/td&gt;&lt;td&gt;31186&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.68+,+-6.24"&gt; ID-2 name Home &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;84&lt;/td&gt; &lt;td&gt;07:53:52&lt;/td&gt; &lt;td&gt;08:32:41&lt;/td&gt; &lt;td&gt;31187&lt;/td&gt; &lt;td&gt;31318&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;85&lt;/td&gt; &lt;td&gt;08:32:41 &lt;/td&gt;&lt;td&gt;13:12:50&lt;/td&gt;  &lt;td&gt;31319 &lt;/td&gt;&lt;td&gt;32216&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.3855+,+-6.2575"&gt; ID-1 name DCU&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Typical day, leaving my house slightly early to make it for 9am Real-Time Embedded lecture, GPS must have run out of battery or the Nokia device must have reset it self, both are fairly typical.&lt;br /&gt;&lt;br /&gt;The "From" and "To" are foreign data base keys to the original GPS data.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;2008-03-01&lt;/h1&gt; &lt;table border="1"&gt;  &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;segment&lt;/td&gt;&lt;td&gt;Start&lt;/td&gt; &lt;td&gt;End&lt;/td&gt; &lt;td&gt; From &lt;/td&gt; &lt;td&gt; To &lt;/td&gt;  &lt;td&gt;Location&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;76&lt;/td&gt; &lt;td&gt;21:36:55&lt;/td&gt; &lt;td&gt;21:37:44&lt;/td&gt; &lt;td&gt;29789&lt;/td&gt; &lt;td&gt;29792&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;77&lt;/td&gt; &lt;td&gt;21:37:57 &lt;/td&gt;&lt;td&gt;21:46:18&lt;/td&gt;  &lt;td&gt;29793 &lt;/td&gt;&lt;td&gt;29820&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.68+,+-6.24"&gt; ID-2 name Home &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;78&lt;/td&gt; &lt;td&gt;21:46:30&lt;/td&gt; &lt;td&gt;22:25:34&lt;/td&gt; &lt;td&gt;29821&lt;/td&gt; &lt;td&gt;29933&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;79&lt;/td&gt; &lt;td&gt;22:25:47 &lt;/td&gt;&lt;td&gt;23:59:55&lt;/td&gt;  &lt;td&gt;29934 &lt;/td&gt;&lt;td&gt;30204&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.3389528413285+,+-6.24696822878229"&gt; ID-16 name Merrion Square &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Turning the device on fairly late, driving in to town, parking my car near Merrion Square to go to a friends birthday party, GPS device and Nokia tablet left in the car.&lt;br /&gt; &lt;h1&gt;2008-03-02&lt;/h1&gt;   &lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;segment&lt;/td&gt;&lt;td&gt;Start&lt;/td&gt; &lt;td&gt;End&lt;/td&gt; &lt;td&gt; From &lt;/td&gt; &lt;td&gt; To &lt;/td&gt;  &lt;td&gt;Location&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;80&lt;/td&gt; &lt;td&gt;00:01:07 &lt;/td&gt;&lt;td&gt;02:20:37&lt;/td&gt;  &lt;td&gt;30207 &lt;/td&gt;&lt;td&gt;30612&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.3389528413285+,+-6.24696822878229"&gt; ID-16 name Merrion Square &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;81&lt;/td&gt; &lt;td&gt;02:20:49&lt;/td&gt; &lt;td&gt;03:31:04&lt;/td&gt; &lt;td&gt;30613&lt;/td&gt; &lt;td&gt;30826&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;82&lt;/td&gt; &lt;td&gt;03:31:16 &lt;/td&gt;&lt;td&gt;05:00:24&lt;/td&gt;  &lt;td&gt;30827 &lt;/td&gt;&lt;td&gt;31138&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.68+,+-6.24"&gt; ID-2 name Home &lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;New day, There till around 2:20, and then leaving for home... GPS running until battery runs out at 5am. Did not detect me giving a lift to friends besides DCU, where I stopped by for less than 5 min, neither it detected my filling up petrol. But these type of segments are very minute and not really considered significant.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;2008-02-11&lt;/h1&gt;   &lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;segment&lt;/td&gt;&lt;td&gt;Start&lt;/td&gt; &lt;td&gt;End&lt;/td&gt; &lt;td&gt; From &lt;/td&gt; &lt;td&gt; To &lt;/td&gt;  &lt;td&gt;Location&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;62&lt;/td&gt; &lt;td&gt;09:10:05 &lt;/td&gt;&lt;td&gt;09:11:13&lt;/td&gt;  &lt;td&gt;25709 &lt;/td&gt;&lt;td&gt;25712&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.68+,+-6.24"&gt; ID-2 name Home &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;63&lt;/td&gt; &lt;td&gt;09:12:01&lt;/td&gt; &lt;td&gt;09:39:52&lt;/td&gt; &lt;td&gt;25713&lt;/td&gt; &lt;td&gt;25800&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;64&lt;/td&gt; &lt;td&gt;09:40:15 &lt;/td&gt;&lt;td&gt;12:33:13&lt;/td&gt;  &lt;td&gt;25801 &lt;/td&gt;&lt;td&gt;26325&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.3855+,+-6.2575"&gt; ID-1 name DCU &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;65&lt;/td&gt; &lt;td&gt;12:33:46&lt;/td&gt; &lt;td&gt;12:43:02&lt;/td&gt; &lt;td&gt;26326&lt;/td&gt; &lt;td&gt;26354&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;66&lt;/td&gt; &lt;td&gt;12:43:25 &lt;/td&gt;&lt;td&gt;13:10:47&lt;/td&gt;  &lt;td&gt;26355 &lt;/td&gt;&lt;td&gt;26442&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.3631825+,+-6.22574681818182"&gt; ID-13 name Clontarf Dart Station &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;67&lt;/td&gt; &lt;td&gt;13:12:22&lt;/td&gt; &lt;td&gt;13:23:50&lt;/td&gt; &lt;td&gt;26443&lt;/td&gt; &lt;td&gt;26470&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;68&lt;/td&gt; &lt;td&gt;13:24:02 &lt;/td&gt;&lt;td&gt;21:05:07&lt;/td&gt;  &lt;td&gt;26471 &lt;/td&gt;&lt;td&gt;27825&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.6019271193418+,+-6.24963887860084"&gt; ID-18 name unknown&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;This is slightly more interesting as there is more activity in here.&lt;br /&gt;Leaving home, parking up my car in the estate besides DCU, driving to clontarf dart station, leaving the GPS in my car, going for orthodontist appointment and driving back to DCU. The  last area is a bug in data normalization which I have to take a look at.&lt;br /&gt;&lt;br /&gt;&lt;h1&gt;2008-02-08&lt;/h1&gt; &lt;table border="1"&gt;  &lt;tbody&gt;&lt;tr&gt;&lt;td&gt;segment&lt;/td&gt;&lt;td&gt;Start&lt;/td&gt; &lt;td&gt;End&lt;/td&gt; &lt;td&gt; From &lt;/td&gt; &lt;td&gt; To &lt;/td&gt;  &lt;td&gt;Location&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt; &lt;td&gt;58&lt;/td&gt; &lt;td&gt;16:52:52 &lt;/td&gt;&lt;td&gt;20:58:09&lt;/td&gt;  &lt;td&gt;24442 &lt;/td&gt;&lt;td&gt;25153&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.3855+,+-6.2575"&gt; ID-1 name DCU &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;59&lt;/td&gt; &lt;td&gt;20:58:22&lt;/td&gt; &lt;td&gt;21:10:29&lt;/td&gt; &lt;td&gt;25154&lt;/td&gt; &lt;td&gt;25199&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt; &lt;td&gt;60&lt;/td&gt; &lt;td&gt;21:10:42 &lt;/td&gt;&lt;td&gt;23:12:10&lt;/td&gt;  &lt;td&gt;25200 &lt;/td&gt;&lt;td&gt;25579&lt;/td&gt;  &lt;td&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.3700352631578+,+-6.23554705263158"&gt; ID-12 name Friends party &lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;  &lt;tr&gt;&lt;td&gt;61&lt;/td&gt; &lt;td&gt;23:12:32&lt;/td&gt; &lt;td&gt;23:49:57&lt;/td&gt; &lt;td&gt;25580&lt;/td&gt; &lt;td&gt;25706&lt;/td&gt; &lt;td&gt; travel &lt;/td&gt;&lt;/tr&gt;  &lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Interesting too, turning on the device in DCU, small travel period up close by to Griffth avenue, dropping down to a friends party for 2 hours and then driving back home, except during the traveling, GPS device ran out of battery, which lasts around 7 hours!&lt;br /&gt;&lt;br /&gt;So I'm fairly happy with the output, besides the way I'm matching average GPS coordinate to an existing location... I'll have to find a better way of doing this if I have time... and need to hunt down the bug &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;2008-02-11.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Data collection problems&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;As previously mentioned, not getting time to charge the Bluetooth GPS device is a problem and only around 7 hours of data is collected when I don't get a chance to charge it.&lt;br /&gt;I lost few days of data because there are times when GPS has not acquired signal after running out of battery, the time/date it reports is wrong... I had to delete around 2000 GPS coordinates because of this.&lt;br /&gt;&lt;br /&gt;And me mainly being home mid December - February. I didn't realize I didn't collect so much data for February... Now I'm going try to collect data every day for the next few weeks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Whats next&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Fix the bug where I can't transfer the bluetooth logs to postgres database mentioned few months back, and start to think about how I'm going to let the user access this data nicely under Processing. And clean up a lot of things! So this basically is nearly the end of the 2nd stage of the project.&lt;br /&gt;&lt;br /&gt;I'm having a meeting with my supervisor on Friday, so few new ideas might come in :). I'll try to post up the algorithm I'm using and a new revised Grant chart.&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-5083486031847238442?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/5083486031847238442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=5083486031847238442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5083486031847238442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5083486031847238442'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/03/formatted-data-output-getting-there.html' title='Formatted data output, getting there!'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-6541182273140787035</id><published>2008-03-13T20:26:00.006Z</published><updated>2008-03-13T23:16:05.579Z</updated><title type='text'>Eurika: Location/Travel Detection works!</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Visualizing Data Book Arrived&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://ecx.images-amazon.com/images/I/51lhJx1Om8L._AA240_.jpg"&gt;&lt;img style="cursor: pointer; width: 249px; height: 249px;" src="http://ecx.images-amazon.com/images/I/51lhJx1Om8L._AA240_.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Had a scan through it, lots of example code to do things so good :).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Last two weeks&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Last two weeks have been on the crazy side, especially last week. I was working on how to classify the location and travel from the raw GPS data, which ended up following this pattern :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;change some code/constant to determine the values for when location is changing/travel&lt;/li&gt;&lt;li&gt;run the algorithm&lt;/li&gt;&lt;li&gt;look at output and the actual database and see what was not detected, whats correct, etc. Repeat&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ended up making progress this week, after meeting with Daragh from CDVP and Aiden. They suggested windowing approach in trying to normalise the data that I had (which was one of my main problems, ignoring 5 min stop in traffic while travelling, and just counting it). More on this later.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;It works!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;The table showing the output for a certain day and the same location/travel boundaries. They numbers are keys to the raw GPS data when it starts and ends:&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tmvbl7m2qhU/R9myaYitd7I/AAAAAAAAAm8/dIxZDYGz7mw/s1600-h/segments+1.png"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_tmvbl7m2qhU/R9myaYitd7I/AAAAAAAAAm8/dIxZDYGz7mw/s400/segments+1.png" alt="" id="BLOGGER_PHOTO_ID_5177365412973475762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Running the algorithm(couple hundred lines in pl/sql):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Starting off at my house, leaving my house at key id 6751. Looking at where this coordinate is at, its around 50-100meters from my house, less than a minutes drive.&lt;/li&gt;&lt;li&gt;Taking a point close towards the end of travel, 6828, &lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.47265+,++-6.20259+&amp;amp;ie=UTF8&amp;amp;ll=53.472722,-6.202469&amp;amp;spn=0.109939,0.233116&amp;amp;z=12&amp;amp;iwloc=addr"&gt;which is "53.47265, -6.20259"&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38712+,-6.26106&amp;amp;ie=UTF8&amp;amp;ll=53.386579,-6.257465&amp;amp;spn=0.006885,0.01457&amp;amp;z=16&amp;amp;iwloc=addr"&gt;6091, is me being in DCU' car park 2: 53.38712 ,-6.26106&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38604+,+-6.25649&amp;amp;ie=UTF8&amp;amp;ll=53.386042,-6.256499&amp;amp;spn=0.006885,0.01457&amp;amp;z=16&amp;amp;iwloc=addr"&gt;Checking few coordinates back, 6897 is 53.38604 , -6.25649.&lt;/a&gt;&lt;br /&gt;I'm driving in to DCU. So where it detected the end of travel is accurate within couple of points!&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38575+,++-6.25719&amp;amp;ie=UTF8&amp;amp;ll=53.385747,-6.257186&amp;amp;spn=0.006885,0.01457&amp;amp;z=16&amp;amp;iwloc=addr"&gt;7707,53.38575 ,  -6.25719 me walking abouts DCU. Same location&lt;/a&gt;&lt;/li&gt;&lt;li&gt;The rest of the time within that range, I'm around DCU area&lt;/li&gt;&lt;li&gt;The few points beside the end of the transition, I'm around DCU car park.&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38773+,+-6.25873+&amp;amp;ie=UTF8&amp;amp;ll=53.387513,-6.258731&amp;amp;spn=0.006885,0.01457&amp;amp;z=16"&gt; Its not till 8506 that I'm leaving DCU properly, but the fast speed detected the change fine.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Now the moment of truth, will it detect me going to the Porter House north properly:&lt;br /&gt;THe travel stage is detected as 6755 - 6901, which I have shown as its accurate for when I left DCU.&lt;br /&gt;Showing GPS data for me leaving DCU and driving to Porter House North:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tmvbl7m2qhU/R9mys4itd8I/AAAAAAAAAnE/GH6hn2HgRhc/s1600-h/segments+2.png"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_tmvbl7m2qhU/R9mys4itd8I/AAAAAAAAAnE/GH6hn2HgRhc/s400/segments+2.png" alt="" id="BLOGGER_PHOTO_ID_5177365730801055682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.36738+,+-6.27054+&amp;amp;ie=UTF8&amp;amp;z=16&amp;amp;iwloc=addr"&gt;8518,  53.36735, -6.27054, I have still not arrived.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.36735+,-6.27055+&amp;amp;ie=UTF8&amp;amp;ll=53.367353,-6.270554&amp;amp;spn=0.006888,0.01457&amp;amp;z=16&amp;amp;iwloc=addr"&gt;8519, 53.36735 , -6.27055 , still not there&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.36547+,+-6.27167+&amp;amp;ie=UTF8&amp;amp;ll=53.365471,-6.27167&amp;amp;spn=0.006889,0.01457&amp;amp;z=16"&gt;8520, 53.36547 , -6.27167, very close, but still on the road this is where the boundary got detected.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=+53.36509+,+-6.27221+&amp;amp;ie=UTF8&amp;amp;ll=53.365086,-6.272206&amp;amp;spn=0.006889,0.01457&amp;amp;z=16&amp;amp;iwloc=addr"&gt;8524, arrived, and parked my car. &lt;/a&gt;The rest of the coordinates jump around few meters to each side due to GPS not being accurate. The detected stopped of travel was within 4 coordinates taken, out by 90 seconds! I'm happy with that if it works this well the rest of the time.&lt;/li&gt;&lt;li&gt;Leaving the place 8868, again, within few coordinates of when I'm actually beginning to travel properly.&lt;/li&gt;&lt;/ol&gt;Fairly happy with this, still lots of work to be made, but I'm making progress. Its slow but decent progress made over the last 2 weeks.&lt;br /&gt;&lt;br /&gt;The project blog deadline is 24th March, I'm away all of next week so I'm not sure I'll have time to update on this more. As I previously mentioned, checking how accurate is very time consuming(even more documenting it on the blog! this post took me well over an hour of constant working!) Still loads of work to be done and time is running out, especially with all the assignments that we're getting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-6541182273140787035?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/6541182273140787035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=6541182273140787035' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6541182273140787035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6541182273140787035'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/03/visualizing-data-book-arrived-had-scan.html' title='Eurika: Location/Travel Detection works!'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tmvbl7m2qhU/R9myaYitd7I/AAAAAAAAAm8/dIxZDYGz7mw/s72-c/segments+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-5187182148687955248</id><published>2008-03-03T18:37:00.002Z</published><updated>2008-03-03T19:17:57.199Z</updated><title type='text'>More on GPS extraction</title><content type='html'>Spent all of today trying to mess around with a way to get rid of the errors in the GPS recordings when inside. This lead me to trying to read up on some neural nets but I left that idea as it would be a lot nicer if the functionally which extracts locations would be inside the database... it would take care of solving when to try to run that data(or i could just schedule it once a day if it goes that way).&lt;br /&gt;&lt;br /&gt;Was messing around with &lt;a href="http://http://www.postgresql.org/docs/8.3/interactive/plpython.html"&gt;PL/Python &lt;/a&gt;which allows me to write python code in PL/SQL... but it soon got messy(trying to access all the result columns and naming) and I checked out &lt;a href="http://http://www.postgresql.org/docs/8.3/interactive/plpython.html"&gt;PL/PGSQL, which is basically Oracle' PL/SQL for postgres.&lt;/a&gt; But not really familiar with it, so I kept on making stupid mistakes... you  cant name/alias results from a table as 'a'(it works fine in an SQL statement, but not in PL/PGSQL) - took me probably nearly an hour to chase down.&lt;br /&gt;Didn't made much progress on this today and yesterday... I got another full planned day on trying to figure this out on Wednesday.&lt;br /&gt;&lt;br /&gt;It turns out that the Visualizing Data book order was canceled because they could not fulfill the order at the current time... So I ordered it from amazon.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;RSSI&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Spent some of yesterday looking at RSSI for bluetooth devices, but didn't feel to great and got distracted to easy.&lt;br /&gt;What I managed to get done is to &lt;a href="http://code.google.com/p/pybluez/source/browse/tags/pybluez_0_15/examples/advanced/inquiry-with-rssi.py#71"&gt;display values using the example in pybluez.&lt;/a&gt; but I'm not to sure it works correctly:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The values where high -30 for all the devices, no matter what the distance.&lt;br /&gt;I can't understand the code, it seems to just to listen for the RSSI event somewhere inside the bluez internals, and format it somehow with the ba2str function... my guess it means bluetooth address to string.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blueproximity.sourceforge.net/"&gt;I looked at the code of previously mentioned BlueProximity&lt;/a&gt; and it has a comment about pretty much exactly the same function as in the example in pybluez that it doesn't work... The way BlueProximity gets the RSSI value is by parsing the output of 'hcitool' command. I'm not sure how slower/use more power would this be if I implemented it searching for it every minute or less.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If I get it to work, I'll probably need to restructure the way I collect BlueTooth devices, currently its just scan for MAC address and its name, associate that with the current GPS coordinates primary key and thats it.... What I'll probably need to do is drop the "friendly name" scanning, and only use the MAC address, which leads to the following problems:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Out of date name if used for a long time&lt;/li&gt;&lt;li&gt;Sometimes the name reported is the name for a different device.&lt;br /&gt;I see this fairly often with my Bluetooth GPS receiver... other devices showing up with its name.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-5187182148687955248?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/5187182148687955248/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=5187182148687955248' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5187182148687955248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5187182148687955248'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/03/more-on-gps-extraction.html' title='More on GPS extraction'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-2246234089253328075</id><published>2008-03-01T18:18:00.005Z</published><updated>2008-03-01T20:19:56.139Z</updated><title type='text'>Meeting, Large errors in GPS readings</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Meeting with Dr. Hyowon Lee 21st Feb&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Had a meeting Hoywon about few ideas on how to implement the UI. Few good ideas, need to think about it further. I borrowed &lt;a href="http://www.edwardtufte.com/tufte/books_ei"&gt;Envisioning Information &lt;/a&gt;book and skimmed it.&lt;br /&gt;&lt;br /&gt;I also ordered &lt;a href="http://www.amazon.com/Visualizing-Data-Ben-Fry/dp/0596514557"&gt;Visualizing Data&lt;/a&gt; the same day, but it has not arrived yet... Hopefully &lt;a href="http://www.bookdepository.co.uk/"&gt;Book Depository&lt;/a&gt; don't loose the book as they did for the previous book I ordered from them&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;/span&gt;&lt;br /&gt;The filesystem on Nokia device got corrupted(presumably when it ran out of battery), it would not boot properly. Luckily, this was on the MMC card and I could still boot the OS from the onboard flash and could run fsck(file system check) which showed up some corrupted/lost files, but luckily everything so far seems to work fine.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;GPS Extraction&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Didn't get much work done over the week and was away in Co. Clare over the last weekend, so spent all of today trying to figure out how to try to approach location extraction from the GPS logs.&lt;br /&gt;After dusting off my SQL/PLSQL skills, &lt;a href="http://www.postgresql.org/docs/8.3/static/earthdistance.html"&gt;I figured out how to calculate distance between 2 points taking account Earth' surface, using postgresql library, earthdistance.&lt;/a&gt; Took me ages to figure out why the results showed a large error from the one calculated by &lt;a href="http://www.gpsvisualizer.com/calculators"&gt;GpsVisualiser Calculator&lt;/a&gt;. I'm not to sure what I did in the end, but changing the lattitude/longitude type from 'REAL' to 'DOUBLE PRECISION' seemed to fix it.&lt;br /&gt;&lt;br /&gt;With this, and more PL/SQL hacking, I came up with something which showed me distance between 2 points, and the rate of change with respect to time:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R8mqmSW-BII/AAAAAAAAAms/7WAhsTsLm5c/s1600-h/rate_of_change_travel.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R8mqmSW-BII/AAAAAAAAAms/7WAhsTsLm5c/s400/rate_of_change_travel.png" alt="" id="BLOGGER_PHOTO_ID_5172853221751653506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This shows my from the M1 motorway to Bank of Ireland, where I needed to wait for a while for the bank to open at 10am.&lt;br /&gt;The fields are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Latitude, Longitude of 1st coordinate&lt;/li&gt;&lt;li&gt;Latitude, Longitude of the following coordinate&lt;/li&gt;&lt;li&gt;Average number of satellites detected between the 2 readings&lt;/li&gt;&lt;li&gt;Average speed between the 2 readings&lt;/li&gt;&lt;li&gt;Date and time of the 1st reading&lt;/li&gt;&lt;li&gt;Distance between the 2 points with respect to Earth in meters&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Time in seconds between when the 2 readings where taken&lt;/li&gt;&lt;li&gt;Rate of change, in Meters per second&lt;/li&gt;&lt;/ul&gt;The readings are fine, the rate of change is fairly large when driving on the motorway, around 30m/s, the speed that GPS is reporting is fairly accurate then. Towards the end, its possible to see that I have stopped moving and the coordinates are within 10 meters of each other(with few exception) and rate of change is very small. Everything is fine.... until you look further:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R8mtHSW-BJI/AAAAAAAAAm0/EoIf4rhSaoU/s1600-h/errors_in_gps.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R8mtHSW-BJI/AAAAAAAAAm0/EoIf4rhSaoU/s400/errors_in_gps.png" alt="" id="BLOGGER_PHOTO_ID_5172855987710592146" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38708+,-6.25274&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;z=16"&gt;I seem to be to have parked my car in one of the estates close by to DCU.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38606+,+-6.25787&amp;amp;ie=UTF8&amp;amp;ll=53.386054,-6.257873&amp;amp;spn=0.008869,0.019977&amp;amp;t=h&amp;amp;z=16"&gt;Then walked to middle of DCU&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.25606+,+-6.24634&amp;amp;ie=UTF8&amp;amp;ll=53.25606,-6.24634&amp;amp;spn=0.071167,0.159817&amp;amp;t=h&amp;amp;z=13"&gt;Within few seconds, I seem to end up 14km somewhere in the southside!&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.26812+,+-6.27392&amp;amp;ie=UTF8&amp;amp;ll=53.26812,-6.27392&amp;amp;spn=0.071147,0.159817&amp;amp;t=h&amp;amp;z=13"&gt;Within 3 minutes, someone teleports me on M50 near Whitechurch&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.46633+,+-6.64679&amp;amp;ie=UTF8&amp;amp;ll=53.46633,-6.64679&amp;amp;spn=0.070817,0.159817&amp;amp;t=h&amp;amp;z=13"&gt;Within 10 minutes, I end up somewhere in Kildare.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.39853+,+-6.32159&amp;amp;ie=UTF8&amp;amp;ll=53.39853,-6.32159&amp;amp;spn=0.07093,0.159817&amp;amp;t=h&amp;amp;z=13"&gt;Then somewhere besides M50 besides Finglas(the last coordinate on the screenshot)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.37647+,+-5.8091&amp;amp;ie=UTF8&amp;amp;ll=53.37647,-5.8091&amp;amp;spn=0.567728,1.278534&amp;amp;t=h&amp;amp;z=10"&gt;After this, somewhere in the Irish sea.&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38549+,+-6.25383&amp;amp;ie=UTF8&amp;amp;t=h&amp;amp;z=16"&gt;Then in DCU sometime before 11.&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;Before today I was unable to see how randomly the GPS coordinates jump when there is no coverage(when in the building), mainly because having to scroll throw hundreds of coordinates and not knowing what to look for/hard to see.&lt;br /&gt;I hope most of the time, the GPS just gives the last known coordinate - i.e the one before the building was entered... Is what I understood from my previous testing.&lt;br /&gt;&lt;br /&gt;I have to come up with a way to filter these erroneous coordinates out! and also try to see how can I use rate of change to detect location entering/leaving.&lt;br /&gt;&lt;br /&gt;Will update further.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 1st March&lt;/span&gt;: Forgot to mention that the way I'll schedule the the location extraction is by having a special table which gets updated of what data got transferred from the Nokia tablet when the data is transferred, and that table will have a &lt;a href="http://www.postgresql.org/docs/8.1/interactive/triggers.html"&gt;trigger&lt;/a&gt; to run execute a Python function which will do all the work. And then expose this data with some sort of SOAP/XML interface that the UI will be able to query and present.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-2246234089253328075?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/2246234089253328075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=2246234089253328075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/2246234089253328075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/2246234089253328075'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/03/meeting-large-errors-in-gps-readings.html' title='Meeting, Large errors in GPS readings'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_tmvbl7m2qhU/R8mqmSW-BII/AAAAAAAAAms/7WAhsTsLm5c/s72-c/rate_of_change_travel.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-6209359479585898710</id><published>2008-02-18T13:20:00.011Z</published><updated>2008-02-21T09:06:11.544Z</updated><title type='text'>Automatic starting of collection program and transferring data to server</title><content type='html'>Worked on the project this morning, cleaned up some of the code so I could automatically start the collection program in &lt;a href="http://en.wikipedia.org/wiki/Linux_startup_process#Init_process_.28SysV_init_style_only.29"&gt;inet.d&lt;/a&gt;. Now it just means I'll be collecting the data all the time the device is on really.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Next need to work on transferring the collected data to a database and GPS location extraction.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;Spent this evening on working transferring the data stored in SQLite database to a PostgreSQL server. The problem is that most python libraries are relying on the C bindings, and I could not get them to work on the Nokia tablet. I eventually stumbled onto &lt;a href="http://pybrary.net/pg8000/"&gt;pg8000 postgresql python library.&lt;/a&gt; After few stupid mistakes, I nearly got it to transfer the data, but I'm hitting a problem, which I think is a bug in pg8000.&lt;br /&gt;&lt;br /&gt;I can transfer the data fine if I treat the lattitute and longitude as decimals(i.e loosing the precision, which is useless &lt;a href="http://http//maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=54,+-6&amp;amp;ie=UTF8&amp;amp;ll=53.999697,-6.001282&amp;amp;spn=1.118782,2.557068&amp;amp;t=h&amp;amp;z=9&amp;amp;iwloc=addr"&gt;&lt;/a&gt;&lt;a href="http://maps.google.co.uk/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=54,+-6&amp;amp;ie=UTF8&amp;amp;ll=53.999697,-6.001282&amp;amp;spn=1.118782,2.557068&amp;amp;t=h&amp;amp;z=9&amp;amp;iwloc=addr"&gt;because lattitude 53, longitude -6&lt;/a&gt; is just in the Irish sea close by to Dundalk. If I treat lattitude and longitude as a float, pg8000 basically crashes. Completely burned out now(its after 10pm and I have been looking at this since 5pm...)&lt;br /&gt;&lt;br /&gt;Will try to debug this further or find another library/try to compile it on Nokia 770.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Update 20th Feb 08:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;This morning I ended up getting &lt;a href="http://www.pygresql.org/"&gt;PyGreSQL&lt;/a&gt; to work on the Nokia Tablets maemo platform. I had to compile the module on &lt;a href="http://www.scratchbox.org/"&gt;Scratchbox on my desktop at home&lt;/a&gt;, and then just transfer it to to tablet and it works (presumable because I have the C PostgreSQL bindings installed there). I simply just added the compiled .so module into the projects Subversion repository... Oh, had to &lt;a href="http://ilovett.com/blog/programming/subversion-checksum-error"&gt;fight with svn for a bit with mismatched checksums&lt;/a&gt;, took a while to fix, they happened because I have 3 or 4 places I develop (my desktop at home, my desktop/laptop/project pc with &lt;a href="http://en.wikipedia.org/wiki/SSHFS"&gt;sshfs so I can edit the files on the device,&lt;/a&gt; my laptop and finally lab machine!) Hopefully will get a chance letter on to get the data transferring to work now that I should have a working postgresql python module!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Update 21st Feb 08:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Messed around with PyGreSQL this morning for a bit and got transferring of the data stored in SQLite database to PostgreSQL to work mostly:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tmvbl7m2qhU/R7097XdfT-I/AAAAAAAAAmk/IJMNUO8HEtk/s1600-h/transferring_to_postgres.png"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_tmvbl7m2qhU/R7097XdfT-I/AAAAAAAAAmk/IJMNUO8HEtk/s400/transferring_to_postgres.png" alt="" id="BLOGGER_PHOTO_ID_5169356037410476002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Fairly fast on my desktop if I'm not printing out the values that I'm inserting. My guess is to transfer days of data on the actual Nokia tablet will take few seconds.&lt;br /&gt;&lt;br /&gt;A problem that I'm encountering now is that some people have UTF8 characters on their phones, and I'm getting:&lt;br /&gt;&lt;br /&gt;"sqlite3.OperationalError: Could not decode to UTF-8 column 'name' with text '���7�X�X�X�X�X�X�X�X�X�X�X�X�X�"&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Error message. Will have to figure this out later.&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-6209359479585898710?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/6209359479585898710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=6209359479585898710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6209359479585898710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6209359479585898710'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/02/automatic-starting-of-collection.html' title='Automatic starting of collection program and transferring data to server'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_tmvbl7m2qhU/R7097XdfT-I/AAAAAAAAAmk/IJMNUO8HEtk/s72-c/transferring_to_postgres.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-346927382080540466</id><published>2008-02-17T18:09:00.004Z</published><updated>2008-03-28T22:33:41.470Z</updated><title type='text'>Summary of meetings I had</title><content type='html'>&lt;ul&gt;&lt;li&gt;5th Oct 07: Meeting with Cathal Gurrin, Daragh Byrne from CDVP.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;15th Oct 07: Meeting with Alan Smeaton.&lt;/li&gt;&lt;li&gt;23rd November 07: Meeting with Alan Smeaton.&lt;/li&gt;&lt;li&gt;26th November 07: Aiden Doherty from CDVP.&lt;/li&gt;&lt;li&gt;16th January 08: Meeting with Alan Smeaton.&lt;/li&gt;&lt;li&gt;15th February 08: Meeting with Alan Smeaton, Daragh Byrne.&lt;/li&gt;&lt;li&gt;21st February 08. Meeting with Dr. Hyowon Lee regarding UI&lt;/li&gt;&lt;li&gt;11th March 08: Meeting with Daragh Byrne, Aiden Dohery from CDVP, regarding problem in segmentation.&lt;/li&gt;&lt;li&gt;28th March 08: Meeting with Alan Smeaton, deciding to add context aware to do list to the device.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-346927382080540466?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/346927382080540466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=346927382080540466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/346927382080540466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/346927382080540466'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/02/summary-of-meetings-i-had.html' title='Summary of meetings I had'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-5481318825214684883</id><published>2008-02-16T09:10:00.010Z</published><updated>2008-02-16T12:40:11.681Z</updated><title type='text'>Brain dump</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Meeting(s) 15th February&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Had a meeting with my supervisor, Prof. Alan Smeaton on 15th Feb. I presented the GUI I made for the Nokia tablet, reviewed what was done and what needs to be done next.&lt;br /&gt;&lt;br /&gt;After the meeting, with Alan' suggestion, I dropped by to Daragh Byrne in CDVP to show how the project is going. I explained the way I'm going to try to present the data collected(more on this in a section below), the GPS extraction. Daragh was very helpful and was familiar with the way I was going to present the data!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Received Signal Strength Indicator&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Daragh also pointed out to me Bluetooth has &lt;a href="http://en.wikipedia.org/wiki/RSSI"&gt;Received Signal Strenth Indicator&lt;/a&gt;, and it would be very nice to log this too, you could try to use this measurement as a proximity measurement how close the person/device is to you. It could be used in creating a ranking algorithm for the devices discovered within a Place. Daragh felt it would be great to log this, as he was unable to log this on the Nokia N95 phone.&lt;br /&gt;&lt;br /&gt;I did some testing this morning on it, &lt;strike&gt;and the results are slightly disappointing/not very accurate&lt;/strike&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tmvbl7m2qhU/R7ar-ndfT5I/AAAAAAAAAlk/GXuH6-cPpPk/s1600-h/rssi.png"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_tmvbl7m2qhU/R7ar-ndfT5I/AAAAAAAAAlk/GXuH6-cPpPk/s400/rssi.png" alt="" id="BLOGGER_PHOTO_ID_5167506714687131538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I had created a connection to my Sony Erickson k800i phone using hcitool command, and was printing out the RSSI value of the connection every 2 seconds and moving the phone around my room.&lt;br /&gt;&lt;br /&gt;The 2 areas that are selected, the phone was within few cm from the Nokia tablet, and its possible to see the RSSI value was fairly large, but moving the phone away less than 2 meters away from the Nokia tablet, the RSSI value dropped to 0.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; Further test, showed when I have left my room and went downstairs, the RSSI value dropped to around -10 range. With bit of googling around I found&lt;br /&gt;a &lt;a href="http://gentoo-wiki.com/TIP_Bluetooth_Proximity_Monitor"&gt;simple script which uses the RSSI value to lock/unlock screen when the phone moves away certain distance.&lt;/a&gt; Also, a &lt;a href="http://blueproximity.sourceforge.net/"&gt;graphical version developed in python&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So it seems the RSSI value is high positive when the device is within centimeters of the Tablet, 0 within few meters, and negative as it goes further away.&lt;br /&gt;&lt;br /&gt;Need to research this further.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Visualisation&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I have contacted Dr. Hyowon Lee as he has the book that Alan has showed me at our last meeting, and the book is &lt;a href="http://www.edwardtufte.com/tufte/books_vdqi"&gt;The Visual Display of Quantitative Information&lt;/a&gt;, I'll get it out from the library to skim it. I also will have a meeting with Hyowon early next week to present my visualisation idea(s).&lt;br /&gt;&lt;br /&gt;To recap, I'm looging GPS coordinates and Bluetooth devices, so I could identify people that where within a certain Place I was at, and allow to search by:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Searching by a Place, would show the previous times I was there, and the people around it.&lt;br /&gt;Also, &lt;a href="http://www.flickr.com/services/api/flickr.photos.getWithGeoData.html"&gt;showing pictures of the geotagged photos on Flickr&lt;/a&gt;&lt;br /&gt;And &lt;a href="http://www.geonames.org/export/wikipedia-webservice.html#findNearbyWikipedia"&gt;(possibly)showing nearby Wikipedia articles.&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Searching by a Person, would show the places I have met that person&lt;/li&gt;&lt;/ul&gt;When I was witting the Functional Spec, I simple thought of this as a simply a blog which would print out places visited and people there. Fairly boring. Then , a while back I stumbled upon &lt;a href="http://www.blogger.com/www.number27.org/"&gt;Jonathan Harris&lt;/a&gt; work. There is a nice video where Jonathan presents &lt;a href="http://www.wefeelfine.org/"&gt;We Feel Fine&lt;/a&gt; and &lt;a href="http://universe.daylife.com/"&gt;Universe:&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;!--cut and paste--&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;/a&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" id="VE_Player" align="middle" height="285" width="432"&gt;&lt;param name="movie" value="http://static.videoegg.com/ted/flash/loader.swf"&gt;&lt;param name="FlashVars" value="bgColor=FFFFFF&amp;amp;file=http://static.videoegg.com/ted/movies/JONATHANHARRIS-2007_high.flv&amp;amp;autoPlay=false&amp;amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;amp;forcePlay=false&amp;amp;logo=&amp;amp;allowFullscreen=true"&gt;&lt;param name="quality" value="high"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="scale" value="noscale"&gt;&lt;param name="wmode" value="window"&gt;&lt;embed src="http://static.videoegg.com/ted/flash/loader.swf" flashvars="bgColor=FFFFFF&amp;amp;file=http://static.videoegg.com/ted/movies/JONATHANHARRIS-2007_high.flv&amp;amp;autoPlay=false&amp;amp;fullscreenURL=http://static.videoegg.com/ted/flash/fullscreen.html&amp;amp;forcePlay=false&amp;amp;logo=&amp;amp;allowFullscreen=true" quality="high" allowscriptaccess="always" bgcolor="#FFFFFF" scale="noscale" wmode="window" name="VE_Player" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" align="middle" height="285" width="432"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;And a new idea is born! Instead of just having a simple blog-type webpage, I could graphically represent it in a similar way as in Universe. Each entity(Person, Place, Photo) could become the centrepoint, and would have related things rotating around it, when selected, that new thing would become the centrepoint, etc. So:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Centrepoint: Person&lt;br /&gt;Show places I have met this person, possibly also related people that I meet along with that Person. This could detect simple group of people, for example, if I see this person only in place A, which could be work, I'll see my co-workers there too so I could show them too.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_tmvbl7m2qhU/R7a9cHdfT6I/AAAAAAAAAls/8CwYRVRa4hE/s1600-h/person-centrepoint.png"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_tmvbl7m2qhU/R7a9cHdfT6I/AAAAAAAAAls/8CwYRVRa4hE/s400/person-centrepoint.png" alt="" id="BLOGGER_PHOTO_ID_5167525913190944674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Centrepoint: Place&lt;br /&gt;Showing people that are found in this place. Also, geotagged flickr photos and wikipedia article.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R7a923dfT7I/AAAAAAAAAl0/xB7mJNlm4bs/s1600-h/place-centrepoint.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R7a923dfT7I/AAAAAAAAAl0/xB7mJNlm4bs/s400/place-centrepoint.png" alt="" id="BLOGGER_PHOTO_ID_5167526372752445362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Centrepoint: Photo&lt;br /&gt;Showing random photos from Flickr relating to this place.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R7a-R3dfT8I/AAAAAAAAAl8/faA7Etgrgyg/s1600-h/photo-centrepoint.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R7a-R3dfT8I/AAAAAAAAAl8/faA7Etgrgyg/s400/photo-centrepoint.png" alt="" id="BLOGGER_PHOTO_ID_5167526836608913346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;And then providing a way to review all of this data historically. Possibly by week/month. I really like this idea.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Coding of the interface&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Universe, is done in Processing. I have looked at it and it does seem very nice and simple. I'm also thinking of buying &lt;a href="http://www.amazon.com/Visualizing-Data-Ben-Fry/dp/0596514557"&gt;Visualizing Data book&lt;/a&gt; by one of the authors of &lt;a href="http://www.blogger.com/www.processing.org/"&gt;Processing.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I also stumbled on &lt;a href="http://fidgt.com/visualize"&gt;fidgt&lt;/a&gt;, which is similar to Universe, but for social networks (last.fm and flickr). The source code is available for it, so I'll be able to learn good bit of Processing from it. There is a demo:&lt;br /&gt;&lt;br /&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/Q1zSf1dKvVY&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/Q1zSf1dKvVY&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/Q1zSf1dKvVY&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/Q1zSf1dKvVY&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Q1zSf1dKvVY&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/Q1zSf1dKvVY&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;And found another framework to do visualisation, &lt;a href="http://prefuse.org/"&gt;Prefuse.&lt;/a&gt; Have not looked into it in detail, but worth while exploring as the video on their page seems very nice too:&lt;br /&gt;&lt;br /&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/kjNJxZUxod8&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/kjNJxZUxod8&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/kjNJxZUxod8&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/kjNJxZUxod8&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kjNJxZUxod8&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/kjNJxZUxod8&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;GPS Location Extraction&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;I'm not going to be trying to come up with a way to detect the shape of the location visited, but simple will be doing something simpler as both Alan and Daragh said its better to get something done which works and then if I have time to go back to it and do the complex implementation. Will try to begin working on this over the weekend.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Project Architecture&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Made this diagram to recap the project architecture:&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R7bGw3dfT9I/AAAAAAAAAmE/zawH6Xc-EWQ/s1600-h/arch.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R7bGw3dfT9I/AAAAAAAAAmE/zawH6Xc-EWQ/s400/arch.png" alt="" id="BLOGGER_PHOTO_ID_5167536165277880274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-5481318825214684883?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/5481318825214684883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=5481318825214684883' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5481318825214684883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5481318825214684883'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/02/brain-dump.html' title='Brain dump'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tmvbl7m2qhU/R7ar-ndfT5I/AAAAAAAAAlk/GXuH6-cPpPk/s72-c/rssi.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-5450410161125813638</id><published>2008-02-14T20:47:00.008Z</published><updated>2008-02-17T12:16:56.842Z</updated><title type='text'>Basic GUI working</title><content type='html'>Didn't get much time over the last few days to work on the project, but spent todays evening on getting a basic GUI on the tablet to work. It needs a lot of cleaning up to do, mainly trying to use the &lt;a href="http://maemo.org/development/documentation/how-tos/3-x/python_maemo_3.x_howto.html"&gt;Hildon theme&lt;/a&gt; that applications developed for the Maemo platform should use to make everything look integrated, everything lining up, etc.&lt;br /&gt;&lt;br /&gt;Screen shot of the VNC session to the device, with GPS coordinates removed:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R7SrRXdfT3I/AAAAAAAAAlU/Ry6j9imxUVI/s1600-h/tablet_gui_screenshot.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R7SrRXdfT3I/AAAAAAAAAlU/Ry6j9imxUVI/s400/tablet_gui_screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5166942987344629618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And what it looks like on Linux machine with just 1 data line which is repeated that I basically randomly picked:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R7Sr3XdfT4I/AAAAAAAAAlc/Fl3C6jCodBQ/s1600-h/what_should_look_like.png"&gt;&lt;img style="cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R7Sr3XdfT4I/AAAAAAAAAlc/Fl3C6jCodBQ/s400/what_should_look_like.png" alt="" id="BLOGGER_PHOTO_ID_5166943640179658626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;most notably the column names are missing on the tablet.&lt;br /&gt;&lt;br /&gt;Will have to clean up some of the code, and move on the next task.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Project PC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ended up getting a project machine from Sean. and had successfully set up Ubuntu on it and have installed postgis that I had trouble on my laptop earlier.&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Project size&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;What I currently have:&lt;br /&gt;&lt;br /&gt;aten% wc -l *.py&lt;br /&gt; 55 bt_scanner.py&lt;br /&gt; 42 collect_data.py&lt;br /&gt;142 gps_reader.py&lt;br /&gt;168 gui.py&lt;br /&gt; 41 listener.py&lt;br /&gt; 76 logger.py&lt;br /&gt; 23 sender.py&lt;br /&gt; 80 test.py&lt;br /&gt;627 total&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So less than 600 lines of Python when excluding the testing code, seems fairly efficient!&lt;br /&gt;&lt;br /&gt;To recap what is done and how much lines of code it is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;55 lines, bt_scanner.py - Periodically scanning in a thread of the Bluetooth neighborhood. Using &lt;a href="http://org.csail.mit.edu/pybluez/"&gt;PyBluez library&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;142 lines, gps_reader.py - Parsing of NMEA strings from the Bluetooth GPS device.&lt;/li&gt;&lt;li&gt; 42 lines, collect_data.py - Bridge every thing together.&lt;/li&gt;&lt;li&gt;76 lines, logger.py - Saving the data(GPS coordinates, Bluetooth neighborhood) into :&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Simple text file&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sqlite.org/"&gt;SQLite&lt;/a&gt;&lt;a href="http://www.sqlite.org/"&gt; database&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Sending it to the GUI thread via a network socket&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;41 lines, listener.py - Listening for incoming connections from the logger, and calling the appropriate method to update the TreeStore GTK object.&lt;br /&gt;&lt;/li&gt;&lt;li&gt; 168 lines, gui.py - Show the data collected in TreeStore using TreeView(basically, MVC pattern that is available in GTK) as picture above.&lt;br /&gt;&lt;br /&gt;Well, this doesn't count the &lt;a href="http://glade.gnome.org/"&gt;Glade&lt;/a&gt; XML file(currently at 192 lines) for the simple GUI - it has menus and stuff which are currently disabled because they take up valueble space and don't actually provide anything&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;From previous experience, in any other language like Java or C/C++, it would have taken me good few more times to achieve the same end result if not more!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-5450410161125813638?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/5450410161125813638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=5450410161125813638' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5450410161125813638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/5450410161125813638'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/02/basic-gui-working.html' title='Basic GUI working'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_tmvbl7m2qhU/R7SrRXdfT3I/AAAAAAAAAlU/Ry6j9imxUVI/s72-c/tablet_gui_screenshot.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-6908832757052181948</id><published>2008-02-11T11:28:00.004Z</published><updated>2008-02-16T09:00:22.323Z</updated><title type='text'>Location Based Services</title><content type='html'>I ended up stumbling on &lt;a href="http://www.gypsii.com/"&gt;GypSii&lt;/a&gt; just now. It seems interesting and they have a youtube demo of the features provided:&lt;br /&gt;&lt;br /&gt;&lt;a style="left: 0px ! important; top: 15px ! important;" title="Click here to block this object with Adblock Plus" class="abp-objtab-07591755734077955 visible ontop" href="http://www.youtube.com/v/tweT57KCgc8&amp;amp;rel=1"&gt;&lt;/a&gt;&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tweT57KCgc8&amp;amp;rel=1"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/tweT57KCgc8&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;They don't seem to deal with automatically detecting places, just letting users adding the current place and a description of it(along with a photo), and just letting you search how close by your friends are. Interesting ideas, but the location detection seems to be very simple, I can't see from a quick look does it detect revisited places or not.&lt;br /&gt;&lt;br /&gt;From viewing this, I'm beginning to consider trying to do more things on the Nokia tablet, it has WiFi so I could have internet access on it on unprotected networks, or even trying to get a 3G phone and using that for connection. Not sure, need to consider the project direction further. But for now I have plenty of other things that I need to get working.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Basic GUI&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Spent yesterday messing around with &lt;a href="http://www.pygtk.org/"&gt;PyGTK&lt;/a&gt; trying to make up a simple graphical GUI to display the current GPS data and phones detected on the Nokia tablet. I have very basic prototype working, now I just need to clean it up and integrate it.&lt;br /&gt;&lt;br /&gt;The way it currently works in that the GUI listens for incoming TCP connection from the collection daemon with the latest data, once it receives it, the GUI is updated. The collection daemon just tries to connect to GUI TCP port if it succeeds, the GUI is running and the data is sent, otherwise no GUI so it just continues whatever its doing. Oh, and need to write an init.d script and daemonize the collection program.&lt;br /&gt;&lt;br /&gt;No progress on the postgis yet, but I'm getting a project machine in the labs and will set it up there, hopefully will have Ubuntu installed on it today.&lt;br /&gt;&lt;br /&gt;Will update later once I have made more progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-6908832757052181948?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/6908832757052181948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=6908832757052181948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6908832757052181948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6908832757052181948'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/02/location-based-services.html' title='Location Based Services'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-8986036380493730549</id><published>2008-02-07T17:53:00.002Z</published><updated>2008-02-16T08:53:39.003Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='meeting'/><title type='text'>Current Status</title><content type='html'>&lt;span style="font-size:130%;"&gt;Meeting January 16th &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Had a meeting with my supervisor on 16th of January, with most of my exams finished besides Digital Signal Processing. This was the only time I could really meet because I was away the following week and wanted to reflex on few ideas during that week.&lt;br /&gt;&lt;br /&gt;In the meeting, we discussed an idea that I had on a possible way to visualise and navigate the data collected - next major milestone after extracting locations from GPS data. I'll need to get my hands on a data visualisation book that I was showed, I can't remember the exact title and the author to gather some ideas and letting them settle while I work on the other part of the project.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;Gazetteer&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Oh, forgot to mention earlier, I met up with Aiden from CDVP on 26th November regarding the gazetteer for querying places names given a GPS coordinate. Aiden gave me access to the Microsoft SQL server so I could use it. Its a slight problem because I haven't figured out how to connect to it from Linux and because its behind a firewall, meaning I only get access to it from the computing labs. I spent a while trying to find a way to covert it to MySQL or Postgresql and the few Visual Basic programs that I have tried did not work.&lt;br /&gt;&lt;br /&gt;I also tried to dump the database, which took a while to figure out, but instead of dumping the database on a local drive of the client computer as I have expected it to, it dumped it on a computer which ran the database.&lt;br /&gt;&lt;br /&gt;I left it at that, because at that time I got busy with assignments and this was just a nice feature to have rather than a critical feature and didn't spend much time on it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Progress&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Not exactly the most organised section, but I'll try to write down what's going on with the project in more detail.&lt;br /&gt;&lt;br /&gt;The project is slightly more definite in my mind. I think the way I'll bridge the access to the data from the user interface is provide some sort of SOAP interface that whatever the UI is in will be able to query the data and present it, wether its in OpenGL, Java 2D(I like this idea since I could just provide an applet to run in a browser) or Ajax.&lt;br /&gt;&lt;br /&gt;The last few days I tried to set everything set up on my Mac that I need to develop since I reinstalled it with latest release, Leopard. Darwinports and fink caused me some problems, so did MacFUSE(to be used with sshfs to mount the filesystem of the Nokia tablet so I could just write the code without me needing it to transfer it with scp every time I wanted to make a change!). Eventually I got sshfs to work by installing MacFUSE from DarwinPorts instead of using the installation file Google provides.&lt;br /&gt;&lt;br /&gt;I also moved the Nokia tablet system files on a separate 2gb memory card that I have instead of fairly limited space that it comes with. Following these instructions: http://maemo.org/community/wiki/HowTo_EASILY_Boot_From_MMC_card.&lt;br /&gt;&lt;br /&gt;I should also take a closer look to &lt;a href="http://maemo.org/"&gt;maemo&lt;/a&gt;(the application development framework that is used on the tablet), because I find the tablet for some reason likes to reboot itself after couple of hours for no particular reason(and this happens when its on a stock 2006 firmware and &lt;a href="http://os2007on770.garage.maemo.org/"&gt;not just the 2007 Hackers Edition&lt;/a&gt; that I'm currently using).&lt;br /&gt;&lt;br /&gt;What I could do is develop a little desktop applet(basically, an application which just sits on the desktop and does something) which is run every time the system boots up. It could just show the current GPS location and the bluetooth neighborhood, and when clicked could bring up the history of data collected. Something similar to the&lt;a href="http://www.mulliner.org/nokia770/feed/fotos/iphome01_screen.png"&gt; iphome applet which just shows the current IP.&lt;/a&gt; It could also give an option to which server the data should be transfered. This shouldn't be to hard to do, just re-structuring some the code that I have and hopefully this can be done in Python and not just C as the documentation I have stumbled up is.&lt;br /&gt;&lt;br /&gt;Oh, I also have Subversion set up for source version control.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;L&lt;/span&gt;&lt;span style="font-size:130%;"&gt;ocation Extraction&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_tmvbl7m2qhU/R6tjjpee8SI/AAAAAAAAAk0/LGazmKAFzFM/s1600-h/Data.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_tmvbl7m2qhU/R6tjjpee8SI/AAAAAAAAAk0/LGazmKAFzFM/s200/Data.png" alt="" id="BLOGGER_PHOTO_ID_5164330861790687522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;So I have a lot of individual GPS locations, well, nearly 25k of them! and thats not including the last while when college was finished  - I had the data collection off because I was mainly at home at Christmas time. The picture shows the text dump of the GPS data for one of the last few times I was in DCU(and I'm not going to publish GPS coordinates of where I live...). One of the coordinates that I checked is location in the green grass area between the Computing building and Business school as can &lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=53.38577,+-6.25725&amp;amp;ie=UTF8&amp;amp;ll=53.385744,-6.25725&amp;amp;spn=0.001721,0.003642&amp;amp;t=h&amp;amp;z=18&amp;amp;om=0"&gt;be seen here.&lt;/a&gt; Since GPS is &lt;a href="http://www.gpswaypoints.co.za/FAQ_gps_errors.htm"&gt;most of the time accurate to 8 - 20 meters&lt;/a&gt;, I guess the result is fairly good. I guess I was in one in LG25 or LG26 at the time.&lt;br /&gt;&lt;br /&gt;Currently I'm trying to figure out the best way to break down those thousands of GPS coordinates to just:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Location Name - automatically given a name from GeoNames.org or DCU' CDVP Gazetteer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Location Coordinates. I was thinking of just a radius from one of the points which increases if the location is bigger. But not exactly very accurate.&lt;br /&gt;Better solution is to represent this as a polygon.&lt;/li&gt;&lt;li&gt;Arrival time - the first point falling into the Location shape.&lt;/li&gt;&lt;li&gt;Departure time - the last point falling into the Location shape.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Detecting the shape would be nice, and I think the &lt;a href="http://postgis.refractions.net/"&gt;postgis&lt;/a&gt;, spatial database extension could do this.&lt;br /&gt;&lt;br /&gt;By basically reshaping the polygon based on the GPS coordinates, i.e adding a coordinate, only changing the shape if there is a coordinate outside the shape(possibly taking an average of 3-5 coordinates to try to level out the GPS noise). Not exactly sure would this work or not or exactly how.&lt;br /&gt;&lt;br /&gt;I haven't done much testing on this. It took me ages to get Postgres to work on my laptop.&lt;br /&gt;requiring to install it from &lt;a href="http://darwinports.com/"&gt;Darwinports&lt;/a&gt; but it would not start up due to not having enough shared memory resource memory. Then tried postgres from &lt;a href="http://www.finkproject.org/"&gt;fink&lt;/a&gt;, but hit another problem and can't remember now what it was.&lt;br /&gt;Eventually I got postgres from Darwinports working but to get it to start up was a problem, eventually I found the system limits I need to increase in the Postgres installation from Fink.&lt;br /&gt;&lt;br /&gt;Now to install install postgis, I hit this &lt;a href="http://trac.macosforge.org/projects/macports/ticket/13608"&gt;bug,&lt;/a&gt; basically not able to compile it. There is a link in one of the bug comments which links to a way to&lt;span style="text-decoration: underline;"&gt; fix it&lt;/span&gt;. I got it to compile. But I hit another problem, I tried to create a table with geometry column(following &lt;a href="http://postgis.refractions.net/docs/ch03.html#id2614075"&gt;How do I insert a GIS object into the database?&lt;/a&gt;):&lt;pre class="programlisting"&gt;&lt;blockquote&gt;CREATE TABLE gtest ( ID int4, NAME varchar(20) );&lt;br /&gt;SELECT AddGeometryColumn('', 'gtest','geom',-1,'LINESTRING',2);&lt;/blockquote&gt;&lt;br /&gt;But when trying to insert data with:&lt;blockquote&gt;INSERT INTO gtest (ID, NAME, GEOM)&lt;br /&gt;VALUES (&lt;br /&gt;1,&lt;br /&gt;'First Geometry',&lt;br /&gt;GeomFromText('LINESTRING(2 3,4 5,6 5,7 8)', -1)&lt;br /&gt;);&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:verdana;"&gt;Postgres crashes with the following unhelpful message:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;LOG:  server process (PID 54160) was terminated by signal 10&lt;br /&gt;LOG:  terminating any other active server processes&lt;br /&gt;FATAL:  the database system is in recovery mode&lt;br /&gt;LOG:  all server processes terminated; reinitializing&lt;br /&gt;LOG:  database system was interrupted at 2008-02-07 17:08:01 GMT&lt;br /&gt;LOG:  checkpoint record is at 0/E253A8&lt;br /&gt;LOG:  redo record is at 0/E253A8; undo record is at 0/0; shutdown TRUE&lt;br /&gt;LOG:  next transaction ID: 0/731; next OID: 24576&lt;br /&gt;LOG:  next MultiXactId: 1; next MultiXactOffset: 0&lt;br /&gt;LOG:  database system was not properly shut down; automatic recovery in progress&lt;br /&gt;LOG:  record with zero length at 0/E253F0&lt;br /&gt;LOG:  redo is not required&lt;br /&gt;LOG:  database system is ready&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Basically, not much progress on postgres/postgis now. I'll try to set it up on my&lt;br /&gt;Ubuntu desktop at home over the weekend and see what I can do with it.&lt;br /&gt;&lt;br /&gt;Oh, and writing blog posts is very time consuming in getting all the relevant information together!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-8986036380493730549?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/8986036380493730549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=8986036380493730549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/8986036380493730549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/8986036380493730549'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2008/02/current-status.html' title='Current Status'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_tmvbl7m2qhU/R6tjjpee8SI/AAAAAAAAAk0/LGazmKAFzFM/s72-c/Data.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-6671585766558082912</id><published>2007-12-19T23:04:00.002Z</published><updated>2008-02-16T09:03:55.070Z</updated><title type='text'>Catch up</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;Meeting November 23rd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Had a meeting with my supervisor on November 23rd 2007 to discuss the functional spec and to review an early draft. It was a nice session that some new ideas where discussed. But after that I didn't manage to improve the spec by much, I ended up forgetting a lot of things... Basically, I didn't think what I have submitted was very good as the ideas where not very developed and I was not sure about some of them too. Probably the last time I'm using a Open Office to write something long, formatting is hard! Then you have to clean it up in MS Word... Pain!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://svan.redbrick.dcu.ie/final_year/Functional_Spec.pdf"&gt;My functional spec that was submitted.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Been busy with all the assignments and didn't get any time to work on the project otherwise, I have been collecting the data, but on days that I stay at home I generally don't leave it on. Actually, &lt;a href="http://student.computing.dcu.ie/%7Evancevs2/ca421project.html"&gt;as part of Object-Oriented Patterns and Metrics assignment I got to implement the NMEA parser in Java&lt;/a&gt;... but this time I added the checksum to it, so affectively I can just covert that to Python. Also, I have few ideas on how to try to present this data, I'll need to meet with my supervisor after the exams.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Multimedia Information Retrieval report on GPS Location Extraction&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As part of my Multimedia Information Retrieval continues assessment, I was able to write a proposal for a system for "&lt;span style="font-style: italic;"&gt;Location Information Retrieval and Querying from GPS logs&lt;/span&gt;", which meant that I had an opportunity to research all the current work that was done in this field. Now, I  know a good bit about it and can try to implement a Time-Based or Density-Based clustering algorithm.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://svan.redbrick.dcu.ie/final_year/mir_report.pdf"&gt;&lt;/a&gt;&lt;a href="http://svan.redbrick.dcu.ie/final_year/mir_report.pdf"&gt;The report it self is here. &lt;/a&gt;&lt;a href="http://svan.redbrick.dcu.ie/final_year/mir_report.pdf"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It got slightly confusing in the end, there was so many papers I was referencing... and finding the right one which I have previously read became challenging in its self! Now I probably know how it feels to write a proper paper. And as my annoyance with Open Office/MS Word/Google Docs formating issues, I wrote up the report in &lt;a href="http://www.latex-project.org/"&gt;LaTeX&lt;/a&gt;, well a wysiwyg editor called &lt;a href="http://www.lyx.org/"&gt;Lyx&lt;/a&gt; and I'm happy with the results - I know what I'll be using to write the user documentation and the technical manual when the time comes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-6671585766558082912?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/6671585766558082912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=6671585766558082912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6671585766558082912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6671585766558082912'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2007/12/catch-up.html' title='Catch up'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1169357732065711508.post-6999651511691613203</id><published>2007-11-25T22:57:00.000Z</published><updated>2007-11-26T19:16:26.928Z</updated><title type='text'>Progress so far</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Nokia770-fi-wiki.jpg/800px-Nokia770-fi-wiki.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/a/a1/Nokia770-fi-wiki.jpg/800px-Nokia770-fi-wiki.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;The beginning&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I bought a &lt;a href="http://en.wikipedia.org/wiki/Nokia_770"&gt;Nokia 770 Internet Tablet&lt;/a&gt; back in August, for slightly over 100 euro, with the view of using it for a final year project. Its a little small cool gadget which runs Linux on it, thats all it matters :).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What the project aims to do&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;To see how accurate the automatic day summary can be using GPS data and Bluetooth detected devices. The user basically gets prompted of what happened where he/she can extend it or leave it as it is. The logging is to be done on Nokia 770 with a Bluetooth GPS device.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Summary what happened so far&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;5th Oct 07: Meeting with Cathal Gurrin, Daragh Byrne about logging GPS data and bluetooth environment on Nokia 770.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;6th Oct - 13th Oct 07: Away. Tried to read some papers Daragh has linked to but did not really work out.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;15th Oct 07: Meeting with Alan Smeaton, agreeing to supervise me. Had few meetings with other people (Stephen Blott, Mark Roantree, Gareth Jones) about few other ideas over the week.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;19th Oct 07: Submitting project proposal&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;6th November 07&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_tmvbl7m2qhU/R0sbYGXlyvI/AAAAAAAAAXQ/nlFb6Xpzs74/s1600-h/NavicoreGPS.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_tmvbl7m2qhU/R0sbYGXlyvI/AAAAAAAAAXQ/nlFb6Xpzs74/s200/NavicoreGPS.jpg" alt="" id="BLOGGER_PHOTO_ID_5137229900786551538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bluetooth GPS(Navicore Slim SiRF III, from ebay) device finally arrives taking 2 weeks!&lt;br /&gt;It turns out that it is fairly easy to read the data off it, opening a serial connection over Bluetooth just reveals bunch of fairly cryptic data in a format called &lt;a href="http://www.kh-gps.de/nmea-faq.htm"&gt;NMEA 183&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Some messing around with &lt;a href="http://gpsd.berlios.de/"&gt;gpsd&lt;/a&gt;, led nowhere as the version shipped with the device has a bus error - I had to cross compile a new version on &lt;a href="http://www.scratchbox.org/"&gt;scratchbox&lt;/a&gt; my self, but that led to some other problems as gpsd attempts to reconfigure the device to get the optimal performance, which basically temporarily bricks the device until it runs out of battery as printing out what it sends becomes unreadable gibberish - not NMEA strings but some binary data. Cross compiled the svn version of gpsd which has the -b option to turn it off except that did not help it... Decided it is just quicker to write my own simple Python class to parse the NMEA 183 strings that I'm interested in (GGA and RMC). It needs some slight cleanup, for example like checking the checksum of the string received.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;23rd November 07: Meeting with Alan Smeaton, scanning over very basic functional spec, discussing few ideas.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Yesterday with a bit of playing around I got the data to be stored to SQLite database instead of a plain text file.  But things aren't always simple and there are little things that slow you down, the data that I added to the database was not being written to the database file after the program executed - even after closing the connection, it turns out I need to use .commit() on the connection object... and a simple 1 line fix took 30 - 60 min to fix! Example output data:&lt;br /&gt;&lt;br /&gt;22:19:57,2007-11-25,53.6XXXX,-6.2XXXX,03,0.0#[('0016DBAXXXXX', 'SGH-S400i'), ('00137009XXXX', 'Nokia 6021'), ('001B5953XXXX', 'K800i')]&lt;br /&gt;&lt;br /&gt;The fields are, Time, Date, Latitude, Longitude, Satellites Detected, Speed.&lt;br /&gt;The hash symbol separates GPS data from the Bluetooth environment, which is a list of tuples. The last few letters have been removed from the MAC addresses from the bluetooth devices and the last 4 GPS coordinates.&lt;br /&gt;&lt;br /&gt;What I need to do next is transfer this data to a more powerful machine automatically. What I have decided is best thing to do is transfer it to my laptop. When I'm at home, the laptop gets the same IP address from my home router every time. So all I need to do is have a thread which checks every once in a while is it possible to connect to my laptops IP address at home, if so it can transfer all the data it has to the PostgreSQL server on my laptop. This is the most easiest place I can transfer the logs automatically.&lt;br /&gt;&lt;br /&gt;Then/In the process I need to read more papers about Location Segmentation and take a look at few existing clustering algorithms like the &lt;a href="http://en.wikipedia.org/wiki/K-means_algorithm"&gt;K-Means&lt;/a&gt; and start implementing and test one.&lt;br /&gt;&lt;br /&gt;Thats it for now. Busy week awaiting for me(finishing functional spec for Friday, Patterns project due on next Monday).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1169357732065711508-6999651511691613203?l=iloglife.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iloglife.blogspot.com/feeds/6999651511691613203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1169357732065711508&amp;postID=6999651511691613203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6999651511691613203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1169357732065711508/posts/default/6999651511691613203'/><link rel='alternate' type='text/html' href='http://iloglife.blogspot.com/2007/11/progress-so-far.html' title='Progress so far'/><author><name>Sarunas</name><uri>http://www.blogger.com/profile/02182835848063163384</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_tmvbl7m2qhU/R0sbYGXlyvI/AAAAAAAAAXQ/nlFb6Xpzs74/s72-c/NavicoreGPS.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
