Monday, August 30, 2010

Learning things is useful, learning about learning is very useful

There is so much stuff to learn in so many areas. It is all very humbling. Sometimes you find an article, presentation, blog post, etc. that describes something exceptionally well and/or gives you a lot of insights. Some things I would like to mention regarding this and the topic of programming, or any kind of creative development really, are two somewhat related topics discussed by Dan North:

Those two are really great.

The code might not be the limit?

Think of all the conferences you’ve been at or articles you’ve read. Chances are that if you are an experienced programmer quite a few of the topics you found interesting, maybe even a majority of them, are not very code/technical centric. Why is that? Isn’t your job, supposedly, code-centric and technical? Most likely I would say that is due to the simple fact that code and technical stuff is not what’s holding your productivity back…

You get, somewhat, interested in topics such as project methodology and processes, how to deliver on time, agile,… Even though project managers sound like a good target audience for such things, why aren’t your project managers at those conferences or reading those articles anyway? Simple, it’s about your work day and your frustration about not being “in the zone” all/some of the time. It is also number 8 on Joel’s list. Actually, having mentioned “Joel on Software”’s 12 steps to better code. Go have a look at it again. Just the headings are fine.

What did you find? No neat syntax stuff, no nifty patterns to make your code better, more readable/extensible/modular/reusable/less-or-/more-or-better-something. I would say that it correctly identifies non-code-centric stuff as a more common limit to successfully delivering projects/products compared to a lack of code-skills.

Technical/code skills

Sure there is a lot of value having lots of technical/code skills. Even a requirement. There are thousands of models/patterns/skills/algorithms/concepts that you should know and have experienced. Not to mention implementations of them. Of course if you don’t know about patterns, dependency injection, transactions, parallelism & concurrency etc. when you need to, especially when you don’t even know that you need too, is a quite a big limit. It’s all useful and required skills/knowledge to have in your toolbox to be able to use.

Productive

I’m just saying that, in my experience, technical/code skill level, is not what’s usually holding the productivity back (it could though be as Dan pointed out to me). Keeping people from putting those skills to good use are. This is assuming that you have a good team. Good people is a requirement. Good people know lots about this technical stuff by having a genuine interest in it, having read about it and experienced it. Even if they haven’t experienced it a whole lot they know it exists and will, and want to, learn about it. Beyond a competence level.

Now read that second bullet’s link to start learning about finding out what’s holding you back.

Minimize ignorance

It could be as simple as that you early on need to set out to visit the real world, maybe through a visit in reality with the users/environment or by prototyping or writing tests. Whatever you think would minimize the current ignorance you have about the project’s final result.

Anyway, remember, depending on skill level, “best practices” and processes could possibly limit you and your team, see that first bullet’s link again.
Learning things is useful. Learning about learning is very useful! Thanks Dan.

Saturday, August 14, 2010

More android apps recommendations

Some more apps I can recommend:

Voice Search
Command your phone with your voice. Android 2.2+ only. From The offical Google blog, speak any of these commands:

  • send text to [contact] [message]
  • listen to [artist/song/album]
  • call [business]
  • call [contact]
  • send email to [contact] [message]
  • go to [website]
  • note to self [note]
  • navigate to [location/business name]
  • directions to [location/business name]
  • map of [location]

Our Groceries
I've tried lots of different list/shopping list apps looking for the perfect one. I've been thinking about making my own. I've mostly been missing a good easy automatic 2-way sync with my girlfriends phone. This app is almost perfect. It's polished and even includes recipe support, remembers previous inputs for quick completion, voice entry etc. Only thing I can complain about is that it shares/syncs all lists, not individual ones.

Chrome to Phone
Select a phone number on a web page viewed on your computer and hit the send to phone button in the browser and your phone will launch the dialer with this phone number entered. If it is just text (not a phone number) that is selected it is instead available on the phone's clipboard. Works with general web page addresses (URLs) as well which are then displayed in the browser on the phone. Along with special handling for Google Maps and Youtube. More info.

Blogaway
A good app for writing blog entries.

GAnalyticz
Nice Google Analytics data viewer.

Dropbox
Sync files/phots/documents across different phones and computers, now works with Android as well. Of course you will use this (my) referal link to sign up to get extra free space for us both, (default 2GB). I would prefer a direct automatic sync (at least upload) of selected folders instead of a manual one, but it works well! Would've been nice for automatic upload of photos though, instead of manually selecting them for upload.

SqueezeControl
Control your Squeezebox devices. Recently got an update that added the control of web radios making it a complete app. Previosuly I had to combine squeezedroid with this app for that purpose. Not too great a user interface but it works well.

Friday, August 06, 2010

Android Apps Recommendations


Co-workers and friends sometimes ask about nice apps for their Android phones, so here is a list of some that I can recommend. Most icons below are actually a link to the app on Android Market if viewing this on your Android phone.

Essentials

  • Barcode scanner, scan different types of barcodes to easily get apps, URLs or even exchange contact information.
  • LauncherPro beta, better & faster launcher/home app
  • Handcent SMS, excellent SMS/MMS app, customizable trackball/LED notifications as well.
  • Adobe Flash player, play flash 10.1, yup that’s right, not only flash lite! Requires Android 2.2
  • Google Gesture search, write letters with your fingers and it will show search results for contacts, apps etc.

Computer, server & networks

  • ConnectBot, excellent SSH client, including port forwards etc
  • Wifi analyzer, signal strength, channels etc
  • Remote desktop www.toremote.com not free!
  • MSN droid, one of the better MSN clients for android. Though I find that I mostly use Google Talk these days as it is so well integrated into Android and also very power efficient as it is using push notifications. Another good app is MSN talk
  • Netcounter, Shows number of bytes sent/received over wifi/3G per day/week/month etc
  • Dropbox, automatic sync of files between computers and now also iphone and android

Multimedia

  • Spotify, stream music, for premium Spotify users
  • Official XBMC Remote, remote control XBMC, browse movies/TV shows, show callers on screen,...
  • Gmote, remote controller and touch pad for your HTPC
  • Unified Remote, extensive remote control of windows computer, browse, power point etc, www.unifiedremote.com

Android

  • Nav Launcher (Google navigate in non-enabled countries)
  • EStrongs File explorer, including LAN, ftp etc (the previous(?) best was Astro)
  • SayMyName Dessert, read out the name of the callers, SMS etc.
  • OS Monitor, CPU usage per process, network connections etc

Cool

  • Layar, Augmented reality with lots of different downloadable overlays
  • Google Sky Map, hold up your phone and it will show you the sky in that direction
  • Google Earth
  • Mario Live Wallpaper
  • Google Translate
  • Google Googles, scan books, paintings, foreign language menus, bar codes etc and get info/translation/prices about it.
  • Galactic Core Live Wallpaper, A good looking rotating spiral galaxy as the background

Other

  • TwoTouch timer, quick direct usage timer and stopwatch
  • CalWidget, calendar widget
  • Facebook (official), recently released a new version
  •  Twitter (official), one of the best apps regarding user experience and android integration
  • Current week widget, some countries, like Sweden, use the week of the year a lot
  • My Tracks, keep track of your running/hiking, upload to Google maps & docs spreadsheet
  • Snowstorm, Excellent weather widget for Scandinavian countries
  • Kindle for Android, Amazon kindle client in your phone, Read books!
  • TrueCaller, looks up numbers not found in your address book for incoming calls
  • SoundHound, music identification, lyrics etc
  • Bubble, a bubble level in all directions
  • Compass
  • Flashlight, simple and nothing more just as it should be
  • Speedtest, test your connection speed
  • Adobe Reader, best PDF reader

Free Games

I haven’t tried any paid games yet…
  • Robodefense Free, tower defense game
  • Chess for Android, great chess app (there are others with online multiplayer)
  • Age of Conquest Lite, Risk-type game but even more fun, lite version with less features

Sweden specific

  • Scandinavian keyboard, what the name says.need Swedish dictionary for Scandinavian keyboard as well, separate download!
  • Första hjälpen, hantera första hjälpen situationer, från Röda Korset.
  • Sveriges Radio play
  • Hemnet, find a new house
  • Prisjakt, price comparison including bar code scanning. Excellent while in the store; “Is this a good price?”
  • tv.nu, what’s on TV
  • Bank apps, Handelsbanken, Swedbank and other Swedish banks now have some great apps!
  • Vem ringde, looks up numbers not found in your address book for incoming calls
  • SMS-biljetter, buy SMS-tickets for bus rides in quite a few cities in Sweden
Again, clicking the app icons in the list opens the Android Market entry for the app if viewing this on your Android phone.
Another list of good Android Apps: http://www.techcredo.com/android/awesome-android-apps-part-2