Android

It’s been ages since I last dabbled with mobile application development. I can still remember creating various custom applications on a Windows Mobile 2003 Pocket PC that I used during my university days. How things have changed since then! With the emergence of powerful mobile programming technologies from the likes of Apple, Microsoft, Google and Palm as well as the increasing sophistication of mobile phones, it’ll be interesting how things play out over the next few years. While every Japanese cell phone has served me well, there has always been software that don’t work the way I want it to or functionality I wish it had. I guess this is where smart phones come in. Although I haven’t quite explored all the different technologies thoroughly (yet!), I have been impressed by what the Android platform by Google has to offer.

Watching the Android Developer videos and reading through the SDK, it sounds like Android will give a developer like me the power to create not just useful applications but interesting mash-ups using other applications. For instance, I quite enjoyed this video where a Google engineer is showing off his bar-code reader application. Another engineer than utilized the bar-code reader as part of his application which upon scanning books, the application would automatically retrieved book information off the internet and add it to a personal list complete with pictures and information. Additionally, the fact that the platform is open-source, customizable and applications are easily replaceable means I’ll be able to customize and fine-tune my smart phone to my specific needs. My dream is to have some kind of smart application that would not only transcribe voice calls but also analyze and parse the data accordingly, so that for example, it can automatically input a meeting in a calendar or a location on a map.

Before making any decisions though, the only thing holding me back are the Android phones out there. The Xperia X10 looks ideal but unfortunately a bit pricey at the moment. Rumor has it more phones will be released early next year so I shall wait and see. Until then, I may find myself playing around with the emulated developer kit on my desktop.

« Back to Top

Congratulations Rio!

I think Rio is an excellent choice for the 2016 Olympics and I’m sure they will be a great host.

Although in a purely hypothetical exercise in which the winner was determined by their bid website, I would pick Tokyo.
Here’s why:

- Use of open source technologies: L.A.M.P. with MovableType as their CMS. The other sites are using ASP.NET which is a great technology but based on personal experience, require more time and costs (licensing fees) to develop.
- I quite like the main navigation bar. Hovering over the menu item changes the background to a different color. The different color scheme is also utilized on each of the pages which works well.
- The use of Flash at the top to present another tier of menus is pretty effective and clever. The Flash makes some use of animation which is subtle enough to not distract the user from the rest of the website.
- The restaurant page is wonderfully presented. The layout is well-structured, the top page is sleek and the placing of images on the individual restaurants are well done.

But don’t take my word for it; the other candidate websites are pretty good as well:

Rio
Spain
Chicago

« Back to Top

Essential tools used on a daily basis

Here is a list of tools that allows me to work quickly. These are programs that I am constantly using at work.

- Notepad++
Simply the best text editor for Windows. If only they had one for OSX!

- Launchy
Since I tend not to have many programs open, I find myself always constantly opening and closing programs for small tasks and such. I don’t think anything can beat QuickSilver for OSX but Launchy is good enough to get the job done.

- Paint.net
Though I have PhotoShop, it takes quite a long time to load up on my computer. So, for small tasks such as re-sizing, cropping, etc.., I use paint.net for quick edits.

- SQLyog
When I first tried out this powerful MySQL GUI, I immediately switched over. With so much functionality and an easy to use interface, I find myself using this tool quite a lot. It also comes in handy for making quick database backups, queries and other database related tasks.

- q10
On my main work computer, I have a dual monitor setup. On the secondary screen, I have q10 running. Basically, q10 is a completely full-screen editor which allows you to hide any distracting stuff on screen and in theory let’s you focus on work. I use it as a pseudo notepad and text clipboard and when I really need to concentrate, I’ll turn off my primary screen and use only q10.

- Effective File Search
The native search capability of Windows have long been slow, ineffective and clunky. While I’ve tried many 3rd party solutions out there, I found that EFS does the job quickly and as advertised, effectively.

As a web developer, I spent a LOT of time with my browser open. For development purposes, my main browser is Firefox. In particular, there are a few extensions that are essential to my day-to-day work:

- Firebug
Figuring out a CSS style sheet was a pain in the past but with a tool like Firebug, it’s easy. Quick CSS tweaks with instant preview makes this tool a must.

- Colorzilla
Something like “Stan, can you change the color of the title so that it matches the background color of the image in the sidebar?” crops up quite a lot at work. In the past, I would have to dig into the CSS or image file to find the color. Then write down the hexadecimal color code and make the change. Colorzilla saves time by allowing me to hover over the element and instantly displaying the color.

- MeasureIt
Working with designers, it’s crucial to meet design specifications down to the correct pixels width and height. Essentially a digital ruler, I find myself using MeasureIt whenever I’m given a mockup and needing to implement it.

« Back to Top

Must have WordPress plugins

While Drupal has its place among the most powerful CMS solutions out there, WordPress too has a number of interesting plugins that gives developers the framework to make beautiful small/medium sized websites. Like my earlier blog entry, every client is different but here are ones I find myself utilizing quite a lot.

- Contact Form 7
This remarkable plug-in is highly customizable and allows you define contents in an intuitive way. The contact pageon our website is an example of this in action.

- More Fields
This plugin enables you to define various input boxes for custom fields in the CMS and therefore, making the custom values functionality in WordPress a lot easier to manage.

- Adminimize
Working with clients that may or may not be familiar with some of the more technical aspects of WordPress, this plugin helps hide unnecessary functionality that may confuse them.

- qTranslate
Multilingual content can be tricky at times but this easy to use plugin has immensely helped. What I like most are the functions available for developers and the fact that you can directly embed short-code in posts and such.

- All in One SEO Pack
Having a great website means nothing if no one is reading it. This plugin is easy to use for anyone while also giving advanced users the ability to fine-tune a lot of settings.

- NextGen
One of the most popular plugins out there. Works quite well out of the box but offers a lot of options in the way of customization. In conjunction with NextGen, the NextGen smooth gallery is also a fantastic plugin.

- wordTube
From the author of NextGen, the wordTube plugin is a great media player that is easy to use and of course, highly customizable.

« Back to Top

Must have Drupal modules

While working on projects using Drupal CMS over the past year or so, I’ve learned quite a lot about the incredible versatility of the CMS which includes an extensive library of customizable modules. It’s the community that drives this awesome framework. So far, the specifications for every Drupal website has been different but there are a number of shared modules that are utilized. Here are the ones that I think are very important:

- CCK
CCK’s ability to define new types of content to the pages that are created is nothing short of amazing. For example, if I were building say a website about cars, I could use the power of CCK to create a “car” content type. With that, I could then define field such as manufacturers, model numbers, etc.. Not only that, the user friendly interface would allow me to easily enter data for the newly define content type.

- Views
Combined with the above CCK, the Views module offers endless amount of customization. Whereas CCK allows you to define new content, with Views, I’m able to customize how the content is presented to the end-user. I’d like to think of it as a very glorified database query builder.

- Contemplate
While Views allows me to build listings, summaries, RSS feeds and other goodies; contemplate helps define the layout of a a particular page. In essence, contemplate allows me to define templates for particular types of content.

- Pathauto
There’s been over the last few years to have websites that have links that are more user friendly (and presumably SEO friendly). With Pathauto, it’s easy to manually or automatically create link aliases for created pages. So, instead of having something like “cars.php?id=232837″, “cars/honda” is more SEO-friendly and easier for humans to understand.

- Boost
There’s no doubt static hardcoded .html pages are served faster than dynamic website pages that read content from a database. But, obviously the advantages of a CMS for re-usable content outweighs the hassle of completely static html pages. With a module like Boost or even the native cache functionality of Drupal, it’s easy for the CMS to automatically create and manage non-dynamic pages. Therefore, speeding up websites and reducing the CPU burden on a server. I’m a big fan of the Boost module because it adds a LOT more functionality to the native cache capability.

- Vertical Tabs
To be honest, when I first started with Drupal, the user interface of the back-end CMS wasn’t that good. My main complaint was that there was simply too much information on the screen at any given time. If it’s a bit overwhelming even for a technical guy like me, imagine what it would be like for a client. The “Vertical Tabs” module came to the rescue and with it, the UI is a lot more cleaned up.

- WYSIWYG
Online WYSIWYG editors have generally come a long way and while there is still no perfect solution that would satisfy even the most non-technical person, there are editors that are very capable. We use the fantastic TinyMCE and the WYSIWYG module helps with the installation and management of the editor.

There’s probably a LOT more Drupal modules I could have mentioned but I shall save that for another time. Also at a later time, I’d like to focus on some of the modules more extensively and to provide some tips and tutorials.

« Back to Top

Good riddance IE6

With the upcoming release of Windows 7 in October, I hope that all users will finally make the move to upgrade Windows XP. Unlike the disastrous Vista, there are many solid reasons why Windows 7 is better (more on this later!) but from a web developer’s point of view, I can’t wait to see Internet Explorer 6 finally being phased out. I’ll admit IE6 was useful when it was released back in August 2001 but with the advent of various web technologies over the years, IE6 is simply outdated. The problem in the past was that because IE6 had such a commanding market-share, websites needed to be compatible with IE6 which often meant limitations, work-arounds, hacks, etc.. in order to accommodate features on the website.

Looking back at IE6, here are some of the quirks that I’ll (not) miss:
- PNG transparency
- :hover in CSS for all tags
- underscore CSS hacks
- fixed width centering alignment
- border, padding width inconsistencies
- absence/broken of CSS elements such as first-letter, first-line, vertical-align

It looks like IE6 has dropped 5% this year to 13.6%(as of August) and hopefully by year’s end, it’ll be at a point where we can definitely remove support for this aging browser.

« Back to Top

Hello World!

Thanks for reading my first blog entry. While I do maintain a personal blog, this is actually the first time I’ve kept a journal for work so this will be a whole new experience for me. I hope to write on various topics such as technology, programming, geeky stuff and anything else that seems interesting.

« Back to Top