If Google’s announcement about the Chrome Web App Store got you curious, you can check out the Chrome Dev channel (aka Chrome Unstable) for a sneak preview. Be warned, this will install the unstable version of Chrome on your computer so you will say goodbye to the reliability you currently have with the stable version of Chrome but if like me, you are impatient and can’t wait to see it, it’s worth it.
Check out the “loading installable web apps” section in the Developer’s Guide to find out how to install web apps (basically, using “extensions”). Also, to find out web apps to install, check out the Chromium Apps Discussion Group where developers post their apps for feedback (also, if you’re a developer, this is the group to join to keep up to date with this).
The basic principle behind this is to help users find the web apps they use. However, the apps are normal web apps and there is no need to redesign or redeploy an app for this, all the extra work for the developer is restricted to adding a meta data file + icon to make the app “installable”. The Chrome App Store will also offer an easy way for users to find the app that suits their needs, whether it is a free or a paid app.
I’m expecting this will drive even more web developers towards HTML5 and CSS3, two powerful and open source tools to develop complex and user-responsive web apps. As a user, I am excited at the prospect of having a place where to go to look for a new app (or simply browse through the apps to see what’s out there). As a developer, I am hoping this will open up new opportunities for innovation.
Google Android comes with many view widgets like Lists, Grids, Tabs and so on, but sometimes, you need your own Custom View. Using an example of a view that shows a list of images next to each other, here’s the steps to follow to start you off with your Custom View…
(Apologies for the poor layout of the code, it seems that I need to tweak the theme. This is the first time I am using the code tag and it’s not looking great
)
1. Create a class that extends View. In our example, let’s call it CustomView.
2. Create your constructor as below (this is the constructor to use if you load your View via xml).
public CustomView(Context context, AttributeSet attrs){
super(context, attrs);
}
(more…)
… learn Scala.
… learn how to use the command shell in Ubuntu.
… refresh my Perl knowledge.
… investigate HTML5.
Because
… I want to learn a multi-paradigm language and Scala can integrate with Java, a language I already use.
… I need to know my programming tools and not just rely on Eclipse.
… I want to write some quick text manipulating scripts to help with producing content for a couple of apps I’m working on.
… I was blown away by the HTML5 demos at Google I/O (No, I didn’t attend, I watched it on YouTube).
I’ve just installed the SDK for Google Android v2.2 and launched the emulator.
Here are a couple of snapshots of what it looks like…


Logging into my Google Android developers console, I’ve noticed a new feature, called “bugs” next to each app.
If you click on it, it gets you to a page showing the number of bugs/reports you have. Here is mine for one app (the only app with a bug report so far – I’m sure there will be more lol)

Then, if you click on the bug (assuming you have any), it takes you to the actual description of the bug, as below.

Neat
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.
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…)
Following from my post Programming and web development tools – too much reliance on Google?, I am now left pondering about the Go programming language, a “systems programming language” developed by Google.
On one hand, the premise of Go is quite interesting. While still in its infancy, Go proposes to solve the problem of designing systems software for multicore machines and its syntax seeks to be as clear and as fun as the syntax of dynamic languages such as Python while actually being a static language.
On the other hand, it is yet another Google tool and one can’t help thinking that Google really has got their fingers into many different pies when it comes to coding projects (Google Android OS, Google Chrome browser, Chrome OS, Google Web Toolkit, Google Ajax APIs etc) and they are bound to ditch a few of them along the way. Apparently, they do not use Go yet for their own systems so who’s to say this won’t be dead in the water in a couple of years?
So, is Go on your list of programming languages to keep an eye on? On your list of programing languages to learn? Or on your list of programming languages to forget about?
… are a big no-no.
I’ve just wasted about half an hour wondering why “context.getResources()” wasn’t working because I was calling it in the constructor of my activity class. It appears that Android actually needs to get through the onCreate() method to be able to access all the application data.
From now on, I know that I should never initialise my Activity class through a constructor but instead, always, always create a “initialise()” method which I call from the onCreate() method.
Android is great – I just wish it was better documented sometimes, but their doc is improving so it’s all good
Today’s date is 05.05.10. It might be very geeky of me but I like it. 05 + 05 = 10. Very neat. I just wanted to share my excitement. I had a couple of dull meetings today but at least, I got to write 05.05.10 in my notebook