Monday, August 24, 2009

Google Wave Vision and Usability

I'm confused about Google Wave.

I got excited about it at first, I thought, wow, this is huge, it's going to replace email, IM, wiki's, Word, you name it...

Then I went to the Sydney Wave API Day and actually got an account and used it. Tried to use it, that is.

It's not broken, far from it, what it does is amazing. Sure, it crashed a few times, but you refreshed and you never lost more than a word.

It's Noisy. As a member of a group (of about 80 people), I got added to about 20 waves. I had a few waves with just me and some friends. Every time anyone in that group typed a character in one of those waves, it went to the top of my Inbox - I may not have read it yet, I may have read it and not been interested. There was nothing I could do to stop it becoming the most prominent wave in my inbox. My waves with my friends got buried; Since waves don't really properly have a title, or a subject, it was even hard to find them, when it's far more likely that they are the ones I'm really interested in.

Now, we're talking computers here. These issues can and most likely will be solved, but the noise made my Vision of Google Wave ruling the universe become very blurry.

How do I want Google Wave to rule the universe? Maybe what I want is not what Google thinks Wave will be and I'm barking up the wrong tree, but I still know what I want. As a software developer at a big company, I have multiple work flows I have to tend to on a day-to-day basis. Email, internal forums, external forums, bug tracking systems, wikis, HR Systems, Timekeeping systems, the list is endless.

I want all of these things in one place. I want a huge centralised work flow system, detailing all the tasks I need to attend to. With Google Wave it's definitely possible to do this (with some extra features added to wave, like input validation, extra permissions etc.), but with the current Inbox scheme, it would be a nightmare.

So I was thinking about the Inbox. As I've said, it doesn't really work, but it doesn't really work in email either. It works OK if I get a small amount of email, any more than that (or a few days off reading email) and I get flooded, have to set up loads of automatic rules to filter out things I'm not really interested in etc. in an attempt to find the emails I really care about. I think this is a flawed paradigm.

I don't know what a better paradigm is, but Wave certainly has a chance at improving it because it has to, it's currently unusable!)

Monday, July 6, 2009

James Strachan's Blog: Scala as the long term replacement for java/javac?

James Strachan's Blog: Scala as the long term replacement for java/javac?

This mirrors my thinking exactly! I'm really excited by Scala.

Back at university, I did a Functional Programming course, where we did some lisp programming. I loved it, but always felt like I was missing something. Even years of hacking my emacs to get it to do just what I wanted just made me feel like I wasn't getting it.

Now with scala, and the Programming Scala book, I really feel like I'm starting to get what Functional Programming is all about. Java/OO feels like second nature to me (some users and maintainers of my code might disagree!) but now, every programming task has a new dimension:

How would I approach this from a FP perspective?
Can I make the API more expressive, more concise, cleaner?

Sometimes I don't have the time to think through it and stick with the OO approach, but when I do the answer always seems to be "Yes". I feel this is due partly to FP and a lot to Scala.

I've spent time learning Ruby and Rails, Python and Groovy. There was a lot I could do in those languages that felt a lot easier and nicer to read than Java code. Groovy/Grails really sped things up for the presentation and model layer. Yet, for anything serious, I went back to Java. I missed the tool support, the automatic imports, class name completion, refactoring.

Scala doesn't have all the refactoring or automatic import support yet in it's IDE providers, but they're coming fast. And they'll be as good as Java's once they've arrived, which will never be true for dynamic languages.

I went to the Scala Lift Off after JavaONE and was inspired by the excitement in the community and the smart people it was attracting. I'm hoping to do more and more Scala programming in the future.

Tuesday, June 23, 2009

iPhone software

I've found some very useful free iPhone apps, I thought I'd share with other iPhoners.

First, the list of jailbreak apps:
* PdaNet - Use your iPhone's 3G Connection for surfing the web from your laptop (or iMac, if your adsl broke down!)
* NemusSync - As well as syncing your .Mac.MobileMe calendars over the air, sync your google calendars
* GRiS - RSS Reader that syncs your read state with your Google reader account, so you don't have to skim articles in your feeds twice.
* Backgrounder - Let any iPhone app run in the background...
* BossPRefs - fast access to turning wireless etc. on/off as werll as SSH, Mail Accounts
* Cycorder - Video Recorder
* Macman - Accelerometer controlled pac man - very cool
* Stumbler Plus - Look at your local WiFi networs in detail
* MIM - Change your network name to something useful (Mine says "Matt's" to identify my phone from andrews...)

Regular Apps that are useful
* Shazam/Midomi - Identify any song playing over the speakers or the radio, or even (if you are good enough) sing it a song and it'll tell you what it is.
* Dual Level - spirit level - yet to use this for real, but cool
* AirSharing - Make your iphone appear as a network drive to copy thigns from/to over wireless
* BOMRadar - check the rain before cycling home
* SydTraffic - live feeds from RTA's traffic cameras
* IceTV - Remotely program your EyeTV (What, you don't have one???)
* GPS Tracker - Track where you've been on a google map - also gives average speed, length etc
* Remote - Control iTunes

Anyone got others they've added that are really useful?


Welcome, Visitor, to my Blog!

Welcome, Matt, to the world of Blog Posting!

Always wanted to have a blog. Mostly for when I came across something in the world that bugged me badly, so I could have a public rant about it.

I got an account and wrote a few drafts of things that had bugged me recently I wanted to rant about, then thought, but what will I write First, that'll have to be good!

Well, instead, I've sat on the idea for months until a issue arose that bugged me so much I have to write Blog about it immediately! But it's not really a good First post...

Well, this is neither good, nor first, but I want to get everything right and often it stops me from getting started, so here goes...

Optus iPhone Tethering Rip-off

I used to use my Nokia N73 as a modem for accessing the internet, which wasn't bad, as I didn't do it too often, so the speed was OK and it would work all over the place, like at the snow and on holidays. Quite handy.

Since getting a 2G iPhone, I sacrificed a lot of functionality for form and usability. Here in Australia, it is GPRS only, and doesn't support access the internet from a laptop, so I bought an off-contract Three 3G Modem to use for my laptop when away from home. It costs me $15/month for 1GB of data and I'm lucky if I use half that in a month.

Now that IPhone OS3.0 supports tethering (accessing the internet from your computer via your phone), I'm thinking of upgrading from the old (but tough and sexy, brushed aluminium!) 2G iPhone to a new iPhone 3GS, so I'm looking around at what the carriers offer.

Optus has updated their pricing plans, to cater for iPhone OS 3.0's tethering capability. The ways that mobile phone carriers come up with to screw customers for new features that cost them nothing staggers me.

If you want to tether your laptop to your phone on Optus (the only carrier that says it supports it), it costs you $9.99. That's $9.99 for something your phone does anyway to use your included data that you've already paid for! They do waive this if you pay more then $9.99 for extra data, but seriously!

So, Note that if you have a normal 3G Mobile, Like a Nokia N73, that can be used as a modem, Optus cannot tell you are using it as such and have no way to stop you, thus no way to charge you for the privilege of using your data as you see fit. Apple have bowed to AT&T (whose network presumably can't support everyone using 3G data services as hard as laptops could) and put in a carrier override feature on the iPhone tethering capability, which Optus are using to blatant money-making effect. I can only recommend jailbreaking your phone and using PDANet (among others, very easy to use!) to circumvent this, but these solutions require you to connect via WiFi, addng load to your battery.

All carriers have or will have iPhones. Only Optus has announced it's iPhone 3GS pricing, but I put together a table of carriers data charges. Note that until last week, Optus' excess data was $2048/GB!

Included Data
Extra Data
100MB ($19cap) - 700MB ($79cap) - 3GB ($129 timeless)
1GB (5GB on $100cap)
1GB (2GB on $114 unlimited)
0GB (based on current plans)
?? $2048/GB ??
Some of the excess charges are hard to find on the carriers sites, so if the links don't make it obvious it applies to your plan, call them to check (especially for Virgin!)
Three will have the iPhone 3GS in July, but I'm basing their rates on their current plans.

Note also, that you should check out coverage (Three is in capitals only). I read that Optus are extending their 7.6MB coverage countrywide, but anecdotal reports have their speed and 3G coverage being less than exemplary. And i's not known if the iPhones frequencies of 850/2100 support Optus' 7.6MB network, which seems to be a dual-band 900/2100MHz network.

From talking to friends with 3G iPhones, I don't understand why they have these problems with 3G and calls dropping out. I never had problems with my N73, it seemed to go from 3G to 2G seamlessly, is this some problem with the iPhone's chipset or software integration? Hopefully the 3GS sorts some of this out, as it may have new chips, with the 7.6MB support.

There's no doubt the new iPhone will give me some sort of tethering ability, but there is also no doubt that there are better phones than the iPhone to do this. All things are a considered trade-off, but in this case I think I'll choose form and usability over function.

Thursday, February 19, 2009

Chrome Tab Ordering

At home, I'm on a Mac and use Safari - there's a few things I don't particularly like about it, but it feels more native than Firefox, so I live with it and fire up Firefox when I need an alternative.

At my last workplace, I had a Suse 10.X machine and a Windows XP machine. I grabbed Chrome as soon as the first beta came out (the employer blocked chrome soon after in a fit of enterprise-control-freakery) and the fetaures I liked the most were:
  • Stability: Seemed (totally subjective!) to crash a lot less than Firefox. In fact, the whole app (th sirst beta that is) crashed only once, individual pages died more often.
  • Memory Use: It Seemed (again, that subjectivity, but hey, subjectivity rules the world when it comes to users perceptions!) to use less memory than Firefox - I'd be restarting Firefox to free up memory every week or so, with Chrome, never (although I think it did use more memory to start with, it didn't peak like Firefox did).
  • New Tabs (Control-T and "Open in New Tab" appeared next to the tab I was looking at.
Now this last feature really hit me hardest - It made me realise what was bugging me about Safari at home - I would end up with loads of tabs and have to rearrange them or spin back and forth looking for the one I wanted, wasting lots of time and getting frustrated. I want this feature in Safari! I even filed a bug report with Apple!

Eventually, I compiled my own GTK2.X and got Firefox 3.0 going on the Suse box - I found Ctrl-Tab, Tab Popup and most importantly, Tabs Open Relative! When I got a new machine and couldn't get Chrome, I could run Firefox and found that it's stability and memory use were hugely improved (again, subjective) and I got the tab opening behaviour I wanted!

Now, I have all these plugins on my Mac, but Safari still feels better somehow. Then along comes the release of Safari 4.0.

Once your tab bar is full, the last tab in Safari now has a pull down menu showing all the tabs, with the non-visible ones marked, but the last tab itself shows the last tab you looked at in the stack of "excess" tabs - Pick another from the menu and it stays on the last tab till you pick a new one or open a new tab.

Now, this isn't ideal for me, but it's does seem to work for me. I can change between tabs and still see the last one I was looking at, or use Command-{} to flip back and forth.

I still want to have my tabs open next to the current tab, but I'm coping OK with Safari 4.0's approach.

Wednesday, February 18, 2009

Java Logging!@*#%$*(%!

Hasn't this been done to death?

So why can't I leave it alone?

'Cause every time I go to use a logging framework, typically for some debugging, I'm amazed at how overly-complicated and under-featured they are.

So, I typically end up using log4j, or something wrapping/derived from it. Then I go to do some debugging and think, "Oh, that's a bit expensive to leave in there, I'll have to put a logger.isDebugEnabled() on the front of it" - and then I've just doubled the amount of space in my debugging code in order to be more efficient.

So I write a wrapper around Log4J that takes varargs and only concats them if debugging is on and Voila!, yet another custom logging framework.

Can anyone tell me what they use, that is succinct and efficient?