Wednesday, September 5, 2012

Clearing out the spider webs..

Phew.. I haven't updated this blog as often as I'd hoped when I first started it.
Summer has just ended and I am four months into my final co-op term and everything seems to be taking its course... It was a slow first 3 months to be honest but I'm finally doing real dev work for real software in the real world! It really is an amazing feeling! :) I just recently developed a feature for the company's software and wrote (am still working on actually) the tests. I've never really worked on such a large project before with so many solutions to manage and build. I one day that a lot of the work of a developer entails building large projects, debugging, and managing files*** I cannot stress enough how much time put into managing files properly... I guess this was all because I was relatively new to subversion. I've only used it for a couple of semesters in school... At work there are much more clear and strict guidelines to how we should check out our projects and merge in our changes. I am certainly learning a lot!!

 This week was also the start of the fall semester for some of my friends still in school... It feels like I'm still on vacation (technically I didn't really have one since I was working full time the whole four months of summer). I feel like I'm not spending my time productively enough after work when I get home. So today I got off my bum, and looked at a few of the free online courses that are offered by Standford et al.
*drumroll please* I will be working on the web development course cs 253 offered by udacity!! I've always been interested in web dev, and this will certainly be a great way to start. I plan to work on the assignments and homework throughout the span of the next four months before I start school again next year January! By writing it down here I hope I'll be able to hold myself accountable and finish at least 2 units a week. Possibly write a few thoughts down here if I feel like it. Looks like we'll be developing a web application focusing more on server side stuff in this course. Also a plus, we will be using  google web app engine which I have some experience with in my cs 310 course just this year's January. (I'll write about that later..)

CIAO!

Sunday, March 11, 2012

Hackathon continued...

I managed to fix up storing and retrieving data for the application!
Deployed it in appspot and users are now able to write reviews and view them even after they close and reopen the browser! (ha-ha) It's still barely presentable and the hacked code needs some serious cleaning up.

List of to-dos:
- refractor!
- error handling
- pagination for reviews
- get the background to display
- make the menu bar prettier
- display markers on the map as we load the reviews
- associate markers with the reviews
- marker click handlers to show the addresses

For now, I'm putting this project on hiatus!
I need to work on some course work now!


Saturday, March 10, 2012

White day Hackathon

Today I participated in my very first Hackathon!



It was hosted by A Thinking Ape and Silicon Sisters. 
The Hackathon was aimed at promoting female developers and the turnout was great! There was  a mixer the previous evening to meet other developers going to the hackathon today and tentatively formed a team with another aspiring developer who also has amazing experience in design. She went to Emily Carr and is amazing at front end web development! Talked to a whole bunch of developers whose enthusiasm inspired me immensely. 

The day of the hackathon, I teamed up with the developer I met at the mixer the previous night and an ambitious computer science friend from UBC! I was really blessed to have these two on my team. We decided to work with GWT with GAE because I was most familiar with it and we had a basic idea of what we wanted to make for our web application. We wanted to build an application where people can post up reviews of chocolates they've eaten around the world. They're able to mention things like location and price of the chocolate they want to review. Most of the time I was working with data persistence - keeping the reviews in datastore and the other two were working on front-end UI. As I was working with maps in my current cpsc 310 class, I just slapped on the code that I was working on previously to add in the feature of displaying locations of chocolates that were reviewed and posted on the web app. Unfortunately, after I got persistence working on my machine, I ran into problems pushing my changes onto github so I ended up not adding it to our final product. We had to use dummy data, and adding data was erased after you close the browser. I plan on probably fixing this and deploying it just for future reference. During the hackathon I had a lot of sugar, I'm worried for my health. More hackathons like this and I could develop diabetes O_O *knocks on wood*

At the end of the day, 18 teams presented their hacked together application and all were pretty amazing. There were web applications and games. One of the games involved two robots in space - one female and one male. The goal of the game was to tag the female robot and gain points. It was really adorable the way they floated around haha. I won't go into detail for the other ones because I don't know if it's confidential! Go try out for a hackathon if you wanna see all of the amazing ideas people have!

If ever there is another hackathon being held, I would definitely participate if I had the time. A great opportunity to learn, share ideas, meet new people and practice coding!

P.S I do have a version of our app deployed right now but I'd rather not share it until I have the data persistence and CSS fixed. Until then, here's a picture of two of us and our scribbled UI plan for the web app. 



Sunday, February 26, 2012

My changes aren't appearing, why?!

Today I was working on maps with gwt again.
I managed to separate the map functions into a single class and run the map api without using the load method as I was when I first started. There was something wrong with my xml file and it turned out I was missing a semicolon ;_;. Aside from that, after getting maps to work, I needed to add my changes to my team's project.

I needed to change the html file so I could incorporate the map into our app and while I was doing that I ran into some difficulty! I had no idea why my changes were not being reflected in development mode. I changed the title and it did not change. I restarted eclipse and nothing happened. I checked the source code on the browser and I did not see my changes. Then I thought, Chrome was probably caching the page! I tried it in incognito mode and I immediately saw my changes. So lesson learned today, when writing web applications and you're working on the UI, run it in incognito mode, if not, clear your web cache.

If I haven't mentioned before, my team and I decided to use Github and I was really excited to use it since a lot of people in the tech industry were talking about it. I wanted to know how great it was. :) Other source control systems I used were TortiseSVN and Visual Studio Team Foundation Server. I used TortiseSVN for one of my school projects in which we built a Library Database System. I can't remember having too much trouble with Tortise but maybe because it was a relatively small project. I used TFS at my old co-op work place and worked on a project with one other co-op. There would be times when we were pulling out our hairs but I thought the functions (merging, branching etc) were pretty intuitive. Back to Github, I'm using eGit - Git with Eclipse. Our team decided not to work with branches and just commit and push changes into the main branch as we work. (I'm not sure if that's a wise decision or not..?) I'm wondering if I should make my own branch and merge changes as I code. That's what I did with TFS. I shall look into that. Today when I was merging in my changes, I realized it was not as intuitive. I could not merge my changes without a massive migraine. Perhaps this is due to my lack of knowledge of how to use this plugin. I had to delete and re-import the project to solve my problem because egit refused to push my changes upstream. (It was due to me not pulling the most recent changes from my other group members, but even after I did, I could not push my changes..).

I'm sure I will have more hair pulling coding stories to tell in the following weeks! :)
<3 Bess



Friday, February 24, 2012

Google maps api with GWT and GAE


Today I continued exploring google maps api with GWT. After playing for a while, running the application in dev mode suddenly gives me an error with the server. I thought maybe something went wrong after I deployed the application, but I was wrong! Even after reverting changes, I was still getting the same eerie error message. The solution was actually to restart Eclipse. So.. I have reconfirmed my previous post's recomendation. If you get an error but you didn't do much to change the code, restart eclipse.



Also, one thing I realized while working with GAE (google app engine) is that it is extremely slow in dev mode! When testing, I run the application in dev mode in Chrome. I get at least two messages saying that the browser was not responding. Solution to this is be patient and continue waiting. It will load eventually. Im wondering if it's just my laptop that's getting old.



Google map exploration progress:

Tuesday, February 21, 2012

Project setup blues


Today, (or rather, yesterday) I started working on my part for my cpsc 310 group project (introduction to software engineering). I was assigned the task of working with another member to develop the GUI and I, specifically to learna about Google maps and make sure that a map appears in our application. Briefly, our application pulls property tax data from dataVancouver and displays filtered information in the form of a map or table. I thought it would be a pretty neat idea to see how property taxes are distributed in the region of Vancouver, so we'll see how this turns out! If successful, I hope that our application will show some kind of pattern in property taxes in different regions of Vancouver visually on a map. I began the other night, looking for ways to get the google maps into our application. I began a new project and everything was a-okay until I looked at a few introductory applications in google code... Turns out there was a Google Maps API version 2 and 3. Let's say I spent a little too much time trying to get v3 working because I didn't know like they were calling v2 a deprecated API... So I spent the whole night (and the next night) scratching my head and pulling out chunks of hair trying to figure out why the sample application wasn't working out. I moved the jar file around my project, downloaded different versions of the jar file and moved those around.. Tried different tutorials and internally cried blood. I later on, in a nutshell managed to finally get the map to appear in dev mode. *phew*

Lesson learned: In software engineering, dealing with project setup - a tedious task that all programmers have to deal with is inevitable. It's part of the process of software development. I wouldn't believe it if anyone was able to start with an errorless project in which build paths are correct, the correct jars are installed, and everything's compatible. Everyday, new software is shared, old software is updated. Compatibility issues are bound to arise due to these software updates and improvements.
Now, I think I've come to the point where I realize that if I'm not experienced enough, I should be prepared to spend hours searching up solutions on google to see what the problem is with my project and why certain errors occur. I'm prepared to spend the ENTIRE day searching for a solution. The next day even. Distractions are a big nono.  ( I should've realized this before though, this definitely wasn't the first time I ran into project setup pains )

Some of the solutions to my project setup problems:
- restart IDE (if you're using one.. Eclipse in my case)
- start afresh. (delete the entire project and start the setup process again)
- check and ensure that you have the right versions of everything - Jars -- libraries, APIs...
- ask someone, they might have a clue. Otherwise, they serve as someone to keep me sane for the duration of my hair-pulling project setup experience. -- good reminder that everyone (computer scientists..developers) goes through the same painful experience.