Nov
6
Eagle or Phoenix?
Filed Under General
This is a red/blue/purple map of the lower 48 states of the USA, with a non-linear color scale and distortion added to indicate the number of voters in a geographic area.

You can read the article where this image can be found here.
Eagle or Phoenix, you decide.
Oct
18
$8 buys some pretty cool software
Filed Under Software
Craigslist.org is a very useful community site, available for many North American cities. It carries so much traffic, however, that finding what you are interested in can be a challenge.
Leave CraigsWatch running on a computer and it will check Craigslist for ads that you are interested in, and email you the result. The software is easy to use and reasonably smart. Admittedly, CraigsWatch is rough around the edges, but for $8 one has no right to complain. Below are shots of the two screens. Click on them to view them full size.
Wish there was a web service that did this so I don’t have to keep my computer running 24×7 to run CraigsWatch. If I had time, I’d write one. Hasn’t anyone done this yet?
Sep
24
Blogging at InsideRIA
Filed Under Flex / AIR
I’m now blogging at InsideRIA.com, an O’Reilly site. Check out my first two blogs:
Vote for AIR support in Ant Tasks!
Sep
24
Breathless delirium
Filed Under General
In his keynote presentation to the Agile 2008 conference in Toronto entitled “The Wisdom of Experience“, Alan Cooper has a great sentence that describes the ‘first to market’ goal behind some products:
“There is no large group of people out there waiting in a breathless delirium to purchase your lousy product sooner rather than later.”
Sure, it is terrific to be first. But the product still has to be good.
Alan also makes some good points about design, engineering and construction. He took the long way around, because he doesn’t get into his main topic, interactive design, until slide 75. Requirements are discussed starting at slide 87. In the slide entitled “Requirements are not design”, Alan says:
- Giving people what they say they desire does not result in success.
- Your customers are not the same as your users.
- Neither your customers nor your users know what they want or even what they do.
- What people tell you has little bearing on the truth.
- Good user experience is not dependent on features
- Radically different products can have identical features.
- A list of features is not the same as the design of behavior.
- Expertise in a subject does not correlate to expertise in designing software behavior.
Philosphy starts on slide 92. I like philosophy, it is one of the foundations of architecture.

Aug
26
Time Travel
Filed Under humor
Aug
17
I’m interested in low power systems, such as might be found on a sailboat.
Tom’s Hardware reports: ” Under idling conditions, the AMD system consumes 1.7 watts less than the Atom embedded board from Intel. At only 38.8 watts, the Athlon 64 2000+ system breaks a new record for desktop systems in our lab. Under full load conditions, the AMD processor remains a step ahead. With 2.3 watts less energy consumption, the Athlon 64 2000+ system beats Intel’s Atom-based board. At 41.9 watts under full load conditions, AMD also sets a new record in our lab.”
Here are the details of the test systems; the Atom board name is buried in the article (it is an Intel 945G ECS 945GCT-D.) All of this hardware is cutting edge, some of it is not generally available. The only reason Atom lost was because the low power support chipsets for Atom are not yet available.
Aug
10
Aug
6
This story continues on from the previous stories I have recently written about Moblin.
The Intel hardware group’s working philosophy is quite different from the software group’s philosophy, as can be seen from the following Q/A I had today with the Intel hardware group. I expect that the hardware group controls the platform and will cripple or even negate some of the efforts of the Intel software personnel who organize and run Moblin.org. I thought I saw a lot of disconnect between the two groups by the wide range of answers given in response to the hardware-related questions that I raised with Moblin.org personnel at Moblin Community Day earlier this week. The following Q&A confirms the disconnect. Although many individuals at Intel understand open source software and make significant contributions, the hardware group’s policies and operating practices seem better suited for business as usual, with Microsoft, than with open source projects such as Moblin.
Read more
Aug
4
This story continues on from the previous story I have recently wrote about Moblin.
I’m at the Moblin Community Day. Moblin is an open source mobile Linux project sponsored by Intel for their Atom family of processors.
Before the conference, I spoke with an Intel engineer, who said that Atom will reduce power consumption by another order of magnitude in the next 12 months, and that low power supporting chips will be released. He told me that Adobe is currently porting AIR to Moblin.
Here is a nice article that differentiates Moblin from Mobile Ubuntu.
Peter Kronowitt, Intel Software Strategist, Open Source Technology gave the opening presentation. His first point was that Moblin is focused on the Internet. Peter said that by 2012, Linux is projected to own one third of the mobile smart phone market.
Read more
Jul
29
Last week I interviewed Dirk Hohndel, Intel’s Chief Chief Linux and Open Source Technologist about Moblin (Mobile Linux) and its application on MID (Mobile Internet Device) systems. The Moblin Platform SDK describes this FOSS project.
Moblin is focused on Atom-powered motherboards, like this one ($79 for motherboard, including CPU), or ASUS’s upcoming Eee Box. The free development environment includes an Linux-based emulator. 1GB or more RAM is recommended. A JTag debugger, optimizer etc. are all available; most tools are free for FOSS projects. The ‘traditional’ FOSS tool chain (gcc, etc.) also works just fine.
Jul
29
coLinux - Native Linux on Windows
Filed Under Linux
I have just written up a pictorial essay on how I installed coLinux on my Windows XP laptop. While coLinux seems to work quite well, the documentation is a little rough. Hopefully my contribution will help.
The article should be extended to include information about how to access the coLinux installation from a network (via ssh, VNC and X). That turns out to be unusually complex. If anyone would like to share their setup, please add your comments below.
Jun
26
ReflowTile
Filed Under Flex / AIR
I’ve created a subclass of Tile that reflows its contents according to the aspect ratio that it has been resized to. Check out the video to see it in action. You can download an AIR application that demonstrates ReflowTile here (view source is enabled.)
In the video, you see four buttons that have no defined width or height. The ReflowTile’s tileWidth and tileHeight attributes are also not set; the only constraint is the hint that the optimal aspect ratio for the tiles should be 1.3. If tileWidth and tileHeight were set, then the buttons would not resize as they automatically rearranged.
I used Camtasia 4 to make the video; it was not able to capture the resizing of the window as I dragged it with the mouse.
Jun
25
Mars is doing a very good thing. After all, if it improves chocolate, it must be heavenly ordained. Now, if only Mars would buy the jingle I wrote entitled “I Love Chocolate!”
May
27
Calabash of Mate
Filed Under Flex / AIR
Join me as I give Mate an extended taste test in this case study.
Mate is a new framework for Adobe Flex and AIR applications.
There is an ongoing dialog at the Mate Forum. Drop by and add your $0.02!
Update: Yakov Fain has drawn a diagram of Mate.
Update: John Blanco published Why and How I Switched From PureMVC to Mate. John has such a way with words: “Cairngorm is a piece of crap. Quote me on that.”
May
25
Just do your frickin’ job
Filed Under humor

From lab-initio.com
May
23
Redwood College Curriculum Advisory Committee
Filed Under General
I’ve accepted an invitation from the Dean, Computer Technology and Information Systems at Redwood College to participate in the Curriculum Advisory Committee. I’m pleased to have this opportunity to contribute to the community in which I live.
In 1974 I was one of approximately 500 first-year engineering students at Carleton University in Ottawa; only six were female. Approximately one third of the males graduated, but four of the six females graduated. Having chosen engineering, the females were much more likely to complete their course of study. Too bad there were not more of them!
Read more
May
23
Patay with Mate
Filed Under Flex / AIR
Mate is not just a refreshing drink, it is also an MVC framework for Adobe Flex/AIR. The title of this blog suggests how one should pronounce “Mate”. I’ve been using Cairngorm on an Adobe AIR application, and I have found that Cairngorm is difficult to debug, and awkward to work with. Mate seems like the next step forward.
I particularly like the event map concept. Event maps simplify lots of Flex spaghetti code. I think that the right way to design a flex app’s architecture is be to define a component hierarchy and then the event map. If the event map isn’t explicitly called out then one can’t really work at this conceptual level effectively.
Debugging is another really important feature, not present in Cairngorm. From the documentation:
In order to know whether our event map is receiving the events that get dispatched, we add the debugger tag to the event map:
<Debugger level=“{Debugger.ALL}” />
Generators are also handled gracefully, which is another awkward aspect of Cairngorm.
Mate’s docs are excellent, which is all too uncommon. Seems that there was thought by Mate’s designers about how to migrate Cairngorm apps to Mate, so there should not be much to change in my app in order to move it to Mate.
Read more
May
12
Adobe Flex events generated by your own custom components can be tricky to debug. Here are some guidelines that I have found helpful to make sure that events generated by custom components.
- Define custom events instead of using vanilla flash.events.Event; this will allow you to be sure that events are routed exactly where they are intended.
[Event(name="deleteClicked", type="com.bigco.project1.CustomEvent1")] - The event name used in the Event declaration above causes a new attribute of that name to be created for your custom component. The event handler can be passed an event; if you provide a parameter (called event by convention), that parameter will be of the type you specified in the Event declaration above.
- Here is an example:
<ns:myComponent id='id1' deleteClicked='eventHandler(event)'/> - Another way of establishing an event handler is to write the equivalent ActionScript code. This is necessary if you want to set up more than one listener to a specific event:
id1.addEventListener(CustomEvent1.CUSTOM_EVENT, eventHandler);
- Here is an example:
- The event handler referenced above might be declared with the following signature:
private functioneventHandler(event:CustomEvent1):void { /* method body here */ }
May
9
NASA is an inspiration. It is true that mission-critical software projects merit a much more rigorous process than other projects. I am constantly amazed, however, how software development managers and the executives that drive projects never seem to have time to do things right, but they usually have time to do things over… unless the product or the business failed due to quality issues.

May
8
Flex 3 Cookbook
Filed Under Flex / AIR
I got a free copy of the Flex 3 Cookbook at JavaOne yesterday. Amazon doesn’t have it in stock yet, but Adobe had stacks of them and handed them out to everyone who attended the Flex/AIR event hosted by James Ward and Chet Haase.
This book is packed with important information. It must have been produced in a screaming hurry, however, because it seems that every other page in chapter one has a grammatical or spelling error. The rest of the book does not have those types of errors. The first chapter is also unevenly written; the authors seemed to have difficulty deciding whether they were addressing novice or intermediate Flex programmers. Some recipes explain elementary concepts while others assume you know much more advanced material. If you are a novice, you will likely need to make frequent use of your favorite search engine as you read this book. Most of the rest of the book is written for intermediate programmers.
Buy it anyway. Some information in this book just isn’t readily available anywhere else. I hope the second edition is published soon, however, so the book can get straightened out.
Read more







