Recently, I got asked “exactly, what does a programmer do?”. This question came about when I explained that I had just registered for a BSc in Mathematics from the Open University (this confused that person, who thought I spent all day coding apps for Google Android).
(more…)
Exactly, what does a programmer do?
The joy of agile development and small iterations
Ah, the joy of agile development and small iterations
The joy to complete a step (iteration), thus providing the satisfaction of a job well done, thus motivating the developer(s) for the next step (iteration).
At the start of the week, I embarked on a new programming project, a desktop app that will help you plan projects to reach your goals, coupled with a calendar (the app is written in Java, and once finished, the code will be released as open source and the app will be available for free, using the donationware approach).
(more…)
Donationware desktop Planning Tool coming soon
I’m working on a planning desktop app loosely based on Steve Pavlina’s The Meaning Of Life: From Purpose To Action associated with a calendar.
The app is developed in Java so it will be cross-platform and I plan to release it as donationware (eg it will be free but I will ask you to consider making a donation).
I will be using an agile development process, with many small iterations (one month long). I started yesterday on development and the first iteration should be done in exactly one month.
Not only the app will be donationware – which means fully free to use even though users are asked to consider making a donation to ensure I can put resources into further enhancements to the app – but also open source. This is an experiment with the donationware model as a possible long term solution for open source developers (we need to eat too
)
Top 5 object programming commandments
This is my list of coding & design principles I remind myself of whenever I feel coding my app is getting too complicated. Essentially, this list helps me apply the principle of orthogonality.
1. Stop repeating yourself – reorganise your object(s) so that you don’t find yourself copying/pasting chunks of code.
2. What does your method do? If it does 2 things, it should be 2 methods.
3. Private is good – you wouldn’t show your underwear to anybody in the street, don’t show your variables and methods unless you have to.
4. Isolate your constraints – keep them all in a method called “initialise()”, which you can call from your constructor (or from onCreate() if you’re programming from Android).
5. Isolate your input & output methods – do not add any logical app code to them, only input/output processing code specific to the input/output media you have chosen. This way, you can easily add that “save to file” functionality later on.
CPD (Continuing Professional Development) for programmers
In many jobs, CPD (Continuing Professional Development) is mentioned. In technical jobs, it is considered important. For programmers, it should be part of their daily routine. Rapid changes in technologies, new languages to keep up with & constant evolution of the marketplace make it primordial for any programmer to actively invest time into learning if they want their overall knowledge to remain current.
But when a programmer is already spending so much time developing his/her primary skills, how can he/she find the time to keep up with all the other areas of the programming field?
I find the following tools valuable:
(more…)
The power of XML?
My next Google Android app will be a RSS Reader and naturally, I have to brush up on my XML knowledge so I have picked up the excellent Java and XML (aff.) book and I have to say, this convinces me that XML is the way to go for what will be my first desktop app.
OK, I have to admit here, I am planning a desktop Java app and I thought a few weeks ago that I would use xml for the data. This is partially why I was keen to experiment with programming a RSS Reader for Google Android, as my first foray into xml parsing. The other reason for the RSS Reader is that I have come to rely on mine (I use Google Reader) and I prefer using it on my work computer, which has a bigger screen. This got me wondering: how to create a user-friendly RSS Reader interface for a small screen? This was all the challenge I needed to get me started
So far, I have only read up on SAX and I have started playing around with it – it does what I imagined it should do, so I’m pretty pleased about it. I’m thoroughly enjoying working with XML but as I’m only starting out, I’m sure some more advanced programmers will be quick to damper my enthusiasm.
So, for you, does XML live up to its potential? Or is it just another data format you have to contend with?
Programming and web development tools – too much reliance on Google?
Over the least couple of years, the rise of Google in the field of programming and web development tools has been quite spectacular.
Google Android is gaining ground in the smart mobile phone market, Google App Engine and Google Web Toolkit are helping Java and Python programmers develop web apps, Google has established its annual conference Google I/O as the conference all programmers should attend (sadly, I cannot but I would dearly like to), not to mention the success of its Google Maps API and many other tools available for programmers.
Like many other programmers, I am very excited about their tools but I can’t help asking myself: do we rely too much on Google? Only the future will tell but I fear that despite all of Google’s official good intentions, its real aim is to create a market monopoly that Microsoft can only dream of – and then, it will be able to bleed all programmers and users dry.