December 21st, 2009
admin
Early this month Apple banned a developer whose 1000+ apps then disappeared from the app store. Wow. Apparently Apple felt they were gaming the review system which is probably not that difficult to prove.
This story hit home with me recently because my own iPhone App, RunningMap Trackometer, has been getting a few bad reviews on the US App Store. (you can see my blog post about it here). This is obviously devastating for sales and shows how important reviews are. My first thought was to get some friends to post some good reviews to counter the bad ones. And it would be easy to do. But think twice if you think its a good idea.
The problem of bad reviews is exacerbated by the fact that when you uninstall an app, you are prompted to review the app which I am sure encourages far more bad reviews than good ones. Ouch. Apple’s review system is broken!
Not so fast. There are some subtleties here. The App Store will show reviews only for the “current version” while hiding the rest under the “all versions” button. The App Store also prominently shows “what’s new in version …” so there is hope!
What will I do with my Trackometer app? Fix it. Improve it. Earn some better reviews. My customers will be able to see that I have read about their concerns and improved on the product. But I won’t fake the reviews.
I use a MacBook Pro as my main machine. When I am in my office it is plugged into an external monitor and sits on a stand. I use a wired Apple keyboard and an inexpensive wired Logitech mouse. I have tried many different combinations of wired and ‘less keyboards and mice and I much prefer wired devices. Batteries problems, connection problems, tracking problems. It would take more than a mighty effort to change my mind.
Then came the bluetooth wireless “Mighty Mouse”. Unlike other third party bluetooth mice, it connects quickly and tracks well. I like the little scroll ball (although when it gets dirty it does not work so well). I really don’t like the side buttons. There is one fatal flaw with this mouse: the whole body of the mouse is the click mechanism. If you need to lift the mouse because you run out of space, the mouse unclicks. Big problem. That being said, it has worked really well for me as a mouse I keep in my backpack when I am using the MBP away from the office. But, it didn’t change my mind.
I am happy to report that Apple’s brand spanking new “Magic Mouse” has solved this problem. You hold the mouse by the bottom half of the mouse. This is the single biggest reason I decided to write this blog post. No one is talking about what I think is a great fix to a gargantuan design mistake! Like the Mighty Mouse, the whole mouse is one big button which is a “left click” if your finger is pressing on the left side or “right click” if on the right. Leo Laporte complained on TWIT that this means you have to lift one finger and click with the other. That is the height of lazy! It’s a non issue to me.
The design is stunning: it’s like they put the Mighty Mouse on a diet. It is thin, sleek, shiny and light. I like the way it fits in my hand because I tend to hold a mouse and move it with my fingers. A mouse that is designed to fit my whole hand “erognomically” forces me to use more of my wrist and arm when mousing, which leads to shoulder pain. The sharp edges of the top take getting used to.
Now the killer feature: 2/3 of the top surface of the mouse is a trackpad. Gone is the scroll ball. With the lightest of touches of a single finger you can scroll a web page up, down left or right. Flick your finger and the window scrolls with momentum that stops immediately when you touch the top of the mouse again. Works brilliantly well. The only multi-finger use is side to side navigation using two fingers. I can see lots of possibilities. For example, click and drag is an ergonomic problem to me. Imagine clicking, release and move your finger to select text. I am sure there are more multitouch features to be added in the future.
Nice design. Tracks well. Connects quickly. Added rechargeable batteries. Magically changed my mind FTW.
UPDATE (25-03-2010): Hold yer horses. My home machine is a unibody MacBook Pro connected to a 23″ Cinema display, and the mouse works really well. I made my employer pony up for one to go with my dual quad core Mac Pro and the mouse is terrible! Nothing I did made it any better. It was mousing through molasses particularly when clicking and dragging up at an angle. Shrug. I gave up on it and am looking for another wireless mouse.


Axiis is the open source data visualization framework Tom Gonzalez talked about at Adobe Max earlier this month. Watch his presentation here. At this session Tom announced the release of Beta 1.0 of the library which is built upon Flex 3.
I recently finished and deployed a complete rewrite of the map mashup RunningMap.com which uses Axiis to display elevation data in a line graph. After seeing his presentation 360|Flex last May I decided to give the (then alpha) Axiis framework a try. Upgrading to the Beta 1.0 release was painless and immediately I noticed the drawing performance of the graph went from slow(ish) (which actually was not a bad effect) to instantaneous.
Connecting my data source to the graph was a challenge and I had to use the debugger to get the data wrapped “just right”. I put together an example that illustrates:
- use of Axiis LineSeriesGroup
- wrapping an array collection “just right” so it can be bound as a data source
- overlaying the graph on a map
- setting the data tip using a function
The live example is here which is source view enabled.

Comic Sans gets a rough ride. Let’s face it. I am joining the chorus of John Wilker’s post to say yes! I agree! I think though that this makes it now an international day since my blog comes out of Canada.
I am building a widget to show routes for Runningmap.com and thought I would give Axiis a try for the elevation graph. The examples show a couple techniques for connecting a cvs formatted or xml source file as the data source for the graph. Connecting my ArrayCollection of value objects stumped me however. Tom Gonzalez was kind enough to guide me to the solution which was to wrap the collection in just the right way so that Axiis could get at the data. The rest was, as I expected, magic.
Wrapping the collection looked like this:
Actionscript:
-
protected function handleNewMapData(p_evt:Event):void{
-
var wrapper:Object = new Object();
-
wrapper.plots = model.routePoints;
-
var dataCollection:ArrayCollection = new ArrayCollection();
-
dataCollection.addItem(wrapper);
-
dataProvider = dataCollection;
-
dc.invalidateDisplayList();
-
}
Then set the "plotCollection" and "dataField" properties in the LineSeriesGroup:
Actionscript:
-
<axiis:DataCanvas
-
width="90%"
-
height="50"
-
y="15"
-
id="dc"
-
horizontalCenter="0">
-
<axiis:layouts>
-
<groupings:LineSeriesGroup
-
verticalScale="{vScale}"
-
id="myLineGroup"
-
x="0"
-
y="0"
-
height="{dc.height}"
-
width="{dc.width-10}"
-
plotCollection="plots"
-
dataProvider = "{dataProvider}"
-
dataField="elevation"
-
/>
-
</axiis:layouts>
-
</axiis:DataCanvas>
And here it is:
Map did not load
September 21st, 2008
admin
I play on a team in a recreational men's masters soccer league. We played in the season end tournament semi-finals against a really tough opponent. We were down 4-2 in the second half and came to tie the game. Extra time. Penalty kicks. Due to a bad back I have not played much and was a sub for this game. The penalty kicks go on and on until almost all the players have taken one and it is my turn.
I am a striker. I have a hard and accurate shot. I know how to kick the ball and can do it with either foot. This is a moment you dream about since a kid practicing penalty kicks. 100 people watching, team chanting my name. If I put this ball in, the game is over and we win. I walk up to the ref and he gives me the ball to put down. He is very particular about where and how it is placed and it takes a moment to get it right. I take a few strides back, wait for the whistle and begin my approach to hammer it home. I am stiff and cold and I get away a semi hard shot more or less right at the goalie. I walk away. Boy I screwed that up. Why didn't I use my left foot? Why didn't I do a power shot? Why didn't I try to place it? Arg. A lot of guys missed. So did the next guy. But not defenceman Al after that. We won. Below is a pic of me taking the shot. Next week is the finals.
