— Forest and the Trees


I’m speaking at Boston Flex User Group on Tuesday September 13 at 7pm at Adobe in Waltham. It’ll basically be the same talk I gave at Harvard. But, probably a bit more technical and I’ll add some mobile stuff (HTML5). You should come! It’ll be fun!

Flex Group Announcement

EventBrite link

Description below…

Doug Marttila, Lead Visualization Engineer at PatientsLikeMe will talk about the importance of patient reported data in healthcare; the user experience and architectural challenges that PLM faced in creating a platform for all diseases; and the design and code used in creating the patient charts.

For more details go to patientslikeme.com, search for patients with specific conditions, or, click below to see two examples of public patient charts:



PatientsLikeMe is the leading user-reported medical site in the world. With over 110,000 members, they have enormous amounts of patient reported data. In April of 2011, they released an updated version of their site which can support all of the approximately 3,500 diseases in the world.

Doug Marttila is Lead Visualization Engineer at PatientsLikeMe where he makes many of the user facing charts. He’s been building charts for the web (mostly in Flash) for the past 12 years. His rarely updated blog is forestandthetrees.com.
Please join us after 6:30pm for discussion and refreshments. Talk begins promptly at 7pm.

To get future event announcements, sign up at http://groups.google.com/group/bostonfug
Please RSVP at http://bfug20110913.eventbrite.com.

Read More

I’ve been meaning to post about this for a while. But, looks like infosthetics beat me to it. I’ve been working at PatientsLikeMe for about a year – first consulting and now full time. PatientsLikeMe is a social media site for people w/ serious diseases. There are currently eight main disease communities: ALS, Epilepsy, Fibromyalgia and Chronic Fatigue System, HIV/AIDS, Mood Conditions (Anxiety, Bipolar, Depression, OCD, PTSD), MS, Parkinson’s, and Organ Transplants. I’m making charts. It’s awesome. I really believe we’re making a difference in people’s lives and contributing to medical discovery. Please take a look at the very nice infosthetics post about us to learn more. I’ll try to start posting more about what we’re doing soon.

Read More

Just saw this post from Matt Chotin. Looks like no big changes to the Flex Charts, which is a bummer. However, I also came across this post (easy axis inversion in 4), which leads me to believe some changes have been made. I’d love to see a complete list of improvements, but, can’t seem to find anything. I will buy you a beer at the next beerfug, if you know of such a list. (I also promise to finally get the beerfug blog up and running before the next meeting. Blink tags are only funny for maybe 2 months.)

Here are some more links w/ info on charts.
Render Direction property on Pie Charts
More on the reversing axis direction.
Info on new filter functions for chart items.

Thanks to Sangavi for the links.

Read More

Oakland Crime Spotting time selector is great.

Read More

UPDATE: Flash on Tap has been postponed to May 2009. It will now be even more awesome!

I’ll be speaking at Flash on Tap this October 7-9 in Boston. This should be a great conference: Flash + Beer = Nothing to Fear? Or something. Anyway, the speaker line up is top notch. I’m pretty psyched to be included in such an impressive group. My topic is Five Minute Design Patterns. Description below…

Screw eight minute abbs. We’ll be learning a new design pattern every five minutes in this high-impact non-aerobic session. That’s ten whole patterns: Adapter, Template, Singleton, Factory, Strategy, Facade, Iterator, Command, Bridge, and Composite. Why so many in so little time? Because patterns are used for many things, but, mostly they are used to impress other developers. So volume counts. “Composite your tree structure!”; “Facade those classes!”; “UML your bridge!”; and “Iterate this!” are just some things you might say after you’ve paid a little bit of attention during this session. Feel the burn!

We’ll see if the preso works (I think it will be fun), but, hey, if it doesn’t, what do you care? You get to drink beer.

Read More

Google has released a data visualization API. Some of it is Flash – specifically the code they got when they purchased Gap Minder.

Update: Infosthetics has a good post about this as well.

Read More

Entered the latest state info from CNN. Again, I can’t figure this data out: Is it wrong? (state totals don’t add up to overall totals) Is it sloppy? (Texas 12 superdelegates, but, 12 to Clinton and 9 to Obama) Well, it’s updated anyway. I changed the colors a bit – don’t love them, but, at least Clinton and Obama colors are consistent.

Also – the source is a mess, but, if anyone’s interested – here’s the xml file adn the xsd. If you make a chart, please send me an email.

Dashboard here.

Read More

Colin Moock posted his “What’s new in ECMA Script 4” lecture. Looks great. Personally, I can’t wait for array types and overloaded methods. I guess there’s no guarantee that Flash will support all the new functionality, but that would be my guess.

Official (40p) pdf of the ECMA spec here.

Read More

File this under either RTFM or “can I get that hour of my life back”, maybe both. To trace xml that is simple (e.g., one node), you need to use toXMLString.

public var myXML:XML =<root>
<item id=’1′/>
<item id=’2′/>
<item id=’2′/></root>

public function init(): void {
trace(myXML.item.(@id==2));//traces 2 nodes
trace(myXML.item.(@id==1));//traces nothing
trace(myXML.item.(@id==1).toXMLString());//traces the node

Read More

I was doing some coding where optimization really mattered and made a little loop test. The ‘for each’ loop is the fastest – even when you need an index.

Also of note, the debug player has ‘incrementing while’ as faster than the ‘do while.’ And both as faster than ‘for each with counter.’ There is a huge difference between the performance of the debug and the release player in Flex. (Using the Flex Beta 3 Release 3 here.) Check out my friend James’ test for more info on the diffs. He has a lot of benchmarking around typing vars here. Those posts completely refute some earlier, widely read, posts that suggested you should never use int. Lesson here is, make sure you test performance with a version published for release. Unfortunately, that means you can’t trust trace statements for your benchmarking. You need to put your time displays in a text field.

Also, I did some tests, and it appears that ‘for each’ preserves order – which is obviously very important to know. If you have found different, please post a comment. Example here. View source enabled.

Read More