iToto's Blog

A Montreal based full-stack web developer who loves learning and trying out new things. This blog is my attempt to document my work as well as a place to discuss ideas or topics that I find interesting. Feel free to follow me on linked social networks.

Filtering by Category: code

Technical Debt (Re-post)

I recently came across a blog post on a very popular topic in software development:

Technical Debt 101 by Maiz Lulkin

Most of the developers I know (myself included) would be the first to advise for a re-write of a legacy application. Likewise, most of the managers that I've worked with are always there to advise against it. They would say things along the lines of "This would take too long, we need this new feature yesterday" or "We don't have the funds or resources to support this right now".

While both sides have valid points (and are probably exaggerating their points for their own cause) the truth lies somewhere in the intersection of both circles in a venn diagram. This article - in my opinion - gives a description of what the venn diagram looks like. Maiz paints a detailed picture of what both sides argue and then goes on to explain what that intersection area contains. After reading his post, my doubts or uncertainness about re-writes have been silenced. A required reading for developers and managers alike.

Ready For Collaboration

Finally got around to setting up all the repositories on Github for Party Stream. There are several parts to the system and I'm really happy to say I have already received volunteers to work on some of them.

Here is a list of projects that are open for collaboration:

  • Web App
  • iOS App
  • Phonegap App
If you are interested in contributing to either of these projects, please send me an email with your Name, Github account name, Dropbox associated email and which project you want to work on. You will be invited to a shared Dropbox folder that will be used for the diagrams and artwork.

Guidelines

If you are working on any of these projects, there are some guidelines that I would like to follow:

Fork

First thing's first, please work off your forked copy of the repository. Do no work directly on the repository on my account. If you are new to Github, here is a introduction to Forking.

Git Flow

If you haven't been using a good workflow with git, may I introduce: Git flow, the only workflow you'll ever need to know about! I use this religiously as it helps keep source control simple and easy - especially for collaborations. I will be using this on each of the projects and I suggest you use it on your forks as well. It will keep it simple when it comes time to create your pull requests. If you use Source Tree it actually incorporates git flow – which is really helpful. They have both windows and mac versions.

Pull Requests

When you're done working on a feature and are ready to bring it to the main repository, please make your pull requests to the Develop branch. Nothing should ever be merged into the master branch as it is reserver for stable releases (see git flow).

That's it for now, I will add more as the project progresses. Thanks ahead of time for all those interested in the collaborations.

Happy Hacking :)

Update

Once you're setup and ready to start contributing, we need to let everyone else know what you're working on. For this, we will use GitHub Issues.

If you see an issue that you'd like to work on, assign it to yourself. Otherwise, simply create an issue specifying what you are implementing and assign it to yourself.

Help needed!

Hey guys,

I've decided to share the fun of creating the Party Stream project with people that I trust.

I'll be posting more details once I get everything structured, but essentially I'll be creating repositories on GitHub for each of the different parts of the project. I'll post a listing of each of the parts along with the tasks for each. If you would like to help out by contributing on your free time, send me an email with with your GitHub username and let me know which part of the project you'd be interested in working on.

I'm hoping to get the repositories and tasks up by the end of the weekend. Stay tuned for a more detailed overview.

Project update

It's been a while since I announced an update on my project, so here's a small yet important one:

I have finished the first revision of the API and have commenced the development of the iOS client. Furthermore, I have launched a web page for those interested in seeing what the app is about - the link will be at the bottom of this blog post.

As far as the client goes, I'm going to try something new. In my experience, apps run best when written natively for the device. However, I have been hearing of the advancements in HTML5 with application development. While it would be easier for me to make the app in HTML rather then to build it natively, I still want to learn more iOS and objective-c. So, I have decided to do both, concurrently!

One of my friends volunteered to make the HTML5 version of the app while I make the iOS version. We will do a performance comparisons and attempt to gauge which of the two is performing best. I will release our findings on here throughout the development cycle.

If all goes well, I'm hoping to use the HTML5 version for all other platforms (Android, Blackberry, PC, etc) and keep the iOS version done natively. This will allow me to always have a handle on the differences between native and cross platform applications.

Also, from now on I will try to write a new blog post every Sunday with updates from the week. Hopefully it will force me to get more done during the week and also to keep my blog active :)

Be sure to check out Party Stream for the beta sign-up. Once the first version of the client is ready, I will be releasing it to beta subscribers for closed testing.