I got my results!

College | Thursday June 16 2011 20:50 | Comments (0)

After a long year of basically learning a brand new (to me) technology, I’ve finally gotten my results back for this project, and my other subjects too.

In my last post, I had finished off the geolocation code on the backend, which was basically all that was left to do on that side. The rest of the work was done on the front-end.

The complete list of features are as follows:

    Get the nearest 3 Dublin Bikes stations, with live info
    Get the nearest 3 bicycle lockup areas in the city
    Get the nearest 3 LUAS stops, with live arrival times
    Add favourite bike/LUAS stations

Now that I list them out like that, it doesnt really seem like there is a lot to the app, but I can assure you, there was a lot of work put into it! Honest!

My intention now is to create an Android equivalent now. Also, I’ve managed to get my hands on the coordinates of every Dublin Bus station in the city, so I might add buses to the app as well, since I can get live info off the Dublin Bus website. Clicking on a bus stop would mean it will display live Bus times, which could come in really handy. I might even release it to the market after that.

OH ye, and in case you’re wondering what result I got for this…..

I got an A!! 😀

I now have my bachelor of science degree, which apparently makes me a scientist. My plan now is to go on and do the honours bachelors degree, and presumably become an “honours scientist”(?).

I’ve also a few projects I want to get done over the summer so I’ll continue with this blog, updating it with what I’ve learned from them.

See ya soon!

Exam time

College | Tuesday May 10 2011 20:55 | Comments (0)

My exams start next week. I’m a little nervous to be honest. I don’t expect to fail anything and I’m pretty sure I’m guaranteed at least a bare bones pass degree based on my results from last semester and in-class tests during this semester, but still, its exam time! It always makes me nervous!

I’ve to go and get back to study now. I’ll update this blog after my exams, or when I get my results. wish me luck!

All finished!

College | Friday May 6 2011 21:04 | Comments (0)

So I handed up the project the other day and I had my presentation today.
The lecturers seemed impressed with the idea and commented on the marketability of it.I’m not sure if any other app exists with this type of functionality, but I’m sure thats just because I havent looked hard enough!! In terms of marketing the app, I don’t think thats going to happen. JC Decaux have their own official app, and I saw an article where someone nearly got sued for just releasing a similar app, so I don’t want that hassle. I might change my mind in the future, especially if I bother with the android version!

The presentation went well anyway. I’ve to wait a month or so now for the results, but with my exams about to start next week, I’m focusing more on them for the moment!

Project Progress Update

College,Mobile Development,Python | Thursday April 14 2011 14:11 | Comments (0)

I just realised I havent updated my project progress on here in a while, and since this is the reason I actually made this blog, I thought I better do so now.

So, as of this moment, I have every single bike station in Dublin being populated onto the iPhone UIMapView. I also have a dummy set of coordinates for places to lock your bike up, once you rent it. Additionally, I have all the LUAS stops appearing on the map. This was super tedious, as I had to manually get the coordinates of each stop from Google Maps, which took me about 3 times to get them right since Google Maps decided to give me the wrong coordinates, only to be discovered when I consumed the XML data and populated the map. I created the XML file by hand too!

I also have details of individual stations/lockups but not LUAS stop, as I’m currently trawling through the BeautifulSoup documentation to find a way to convert HTML into XML/JSON so as to be readable from the existing code. Once I figure out how to strip <div class=”xx”>xyz</div> so as to keep the xyz part, I should be good to go!

The public server is up and running too. I set it up using Django as the server, using a RESTful service to expose each “view”. My views are written in Python, which I am starting to like a lot. Its a very powerful language!

Also, since there are about 42 bike stations, lots of lockups, and about 50 LUAS station, getting the nearest station is going to take ~50 requests to the Google Maps server. I will need to implement some sort of client side “coordinate maths” to actually get the closest, then send that to Google, and return the directions. Google imposes a “2500 request per day” for non-premium users. Since the server is actually using shared hosting, I think it filters by IP. Usually I get one try, and then the limit is used up. As its only a school project, I’m not too worried about this. Obviously if it was going public, I’d actually pay for a dedicated IP! I have other hosting with an Irish company, but unfortunately I don’t think they do Python/Django hosting.

So, on my TODO list:

LUAS: Get individual station details (in JSON)

Directions: Figure something out client side for measuring coordinates

Custom start point: As a follow on from the “Directions”, the user should be able to choose a start point, other than their own, and get directions from there to the “nearest” station/stop.

 

So, not much to go. The beta is due up tomorrow, then I have a couple of weeks to polish it off. I also have that Android app to develop too…

Double Snap!!

Android,College | Saturday March 26 2011 14:44 | Comments (0)

As with everything in the world of IT, ideas move fast! And they get replaced with ideas even faster.

About 5 minutes after I posted my last blog entry, I joined up with another group of programmers, who are making an app. Its a good idea for an app, and I reckon it should be good experience and look good on my CV.

With this app, there is scope to market it, in cooperation with some marketing people who have expressed interest in it. Also, we will be entering it in a competition, sponsored by Vodafone, called App-o-vation. The winners of this get backing from Vodafone, who will then distribute it through their channels and make it available through their web store.

I can’t give too much away, but put simply…..watch this space!!

Snap!

College,Mobile Development | Thursday March 24 2011 10:33 | Comments (0)

So, after some further research into making a RESTful server on the Android, I have decided to make a game of “Snap” instead!

There’s a few reasons for not making the RESTful server, mainly that it would take too long to code, and I have a deadline next month for it to be submitted, which simply isnt long enough for research, design and coding, as well as testing.

So, enter “Snap! for Android“. A cool little 2-player game to test your skill and reflexes against either the computer, or another human player. So far I just have the basics, ie Main menu with a “New Game” button, that loads 2 “snap” buttons and a random card. Expect some code samples, screenshots, and possibly a beta (or alpha) soon.

Meanwhile, I must get back to making my iPhone app too…..

A little side project

Android,College | Tuesday March 8 2011 00:16 | Comments (0)

Following on from my last post about RESTful services, I’ve recently gotten an Android phone (HTC Desire) and have downloaded the Android SDK to have a little play around with it. I’ve managed a simple “Hello World” app, but nothing more yet. I have another subject in college that deals with mobile computing where, as part of our grade, we have to develop a smartphone app.

As it stands, to test the project, there will be a need to commandeer either a college computer, or bring in my own laptop to demo the server backend, but ideally I’d like to combine both the year long project and this other mini-project and create a server on an Android phone, which is capable of running a RESTful service and spitting out XML to be consumed by the iPhone, or indeed any client running on the network that is capable of displaying Google Map data.

So, this would be handy for 2 reasons:

  1. I always have my Android phone on me.
  2. I wont need to bring my laptop to college.

If this is possible, it would really look good on my CV, and would probably be something that would get a lot of downloads on the Android Market….which would nicely pad out my CV more, and kick start my portfolio, which at the moment is depressingly empty!! 🙁

However, if its not possibly, or feasibly for someone with basic knowledge, such as myself, then I suspect a little game of SNAP on the Android might be “on the cards…”!

RESTful services, XML and JSON

College,Mobile Development | Tuesday March 8 2011 00:07 | Comments (0)

As this project has gone on, as expected, we have been adding features. So far, along with the core bike rental system features, there is now plans for LUAS integration, a map of secure bicycle lock-up facilities and possibly cycle lane support too.

As all the info relating to the bike stations (availabile number of bikes, location etc etc) is retrieved from one location, there will be a need to create another data source containing the info for these new features. As its only a college project, proof of concept is only needed, meaning the data does not have to be correct, it just needs to work, and pull back some info, be it dynamic or static. However, if some new official, correct, data source was found, simply changing the location to where the parser is pointing would then make it a fully functional, accurate piece of software! Until that day comes, a customised backend running a RESTful service will have to suffice.

Lets take the secure bike lock-up facility as an example here. There are no known (to me) sources at this time that contain the locations of any bike parking facilities, so for the purposes of this project, these locations will have to be fabricated. This will be done by storing mock coordinates in a data source (which I’ll get to in a minute), then writing a RESTful web service, most likely in NetBeans, which will run off glassfish server, and serve the results in either XML or JSON format. I reckon XML will probably be best route here, even though, as far as I know, there is built in support for both formats in NetBeans/glassfish. I’m not sure if there are any performance gains in choosing JSON, but looking at the raw data from both, the XML seems a lot more readable with its tags, so I’m hoping its a lot easier to parse. Although, going back to what I just said a few lines back, there is built in support for both so I think either option is the same at the high level NetBeans deals with it. Feel free to correct me in the comments if JSON performs better.

Keeping with the XML line here, we will need to store these coordinates somewhere. For peace of mind, and transparency of functions, it is my opinion that storing the details of the bike lock-up facilities in an XML file will make it a lot easier to read (for humans at least) by having matching tags in the data source and the XML data produced by the server. We also have to take into account what the iPhone can handle. This whole RESTful service thing is something I’ve only been looking into for a matter of days, hence why I’m unsure about performance vs XML files, so I’m also unsure if any differences exist between how the iPhone will handle XML and JSON when parsing them and storing the coordinates as arrays of strings, so for arguments sake, and to keep in line with the rest of the project, XML will what I will be focusing on, except if I discover JSONs performance gains far outweigh XMLs, as above.

So, after a few minutes playing around with this, I’ve managed to get my own server running, and it was surprisingly easy! Luckily enough, as you know, Java is pretty popular, as is NetBeans, so there is plenty of documentation online. For example, the easiest, most straightforward guide I found is here: Getting Started with RESTful Web Services from the netbeans.org docs. In 10 minutes flat, you can have your own server running, complete with a sample database, serving out a choice of both XML and JSON, which works perfect on Firefox, Internet Explorer, even an Android phones stock browser….but unfortunately not Google Chrome. But as far as I know, when using the UIWebView in the iPhone SDK, the iPhone uses the Safari renderer to display the Google Maps themselves, rather than some Google provided solution, ie Chromiums renderer, so this browser incompatibility shouldnt be a problem….hopefully. I’ve no idea what the case is when using MapView in either iPhone or Android, but I’d imagine its some sort of JVM solution so should be fine.

I’m taking a break due to exams

College | Saturday January 8 2011 14:40 | Comments (0)

You may have noticed I havent made a post on here in a week or so.
this is because I’ve been hard at work studying for my end of semester exams, which started 2 days ago! I have a web design exam in less than an hour, and as part of my “procrastination plan” I am writing this blog post!

Anyway, just a heads up! I’ll post up another update when I get back into learning Objective-C next week after my exams! 😀

Eoin