The Blog
11.15.2008
Scrolling Large Data Sets in Flex Charts
Sometimes you just have too much chart data to display it all at once. The problem with this is that if you bind all the data to your chart, the chart axis labels become too small to read.
I came across
this blog post by Joel May, which demonstrated a really neat way to deal with large chart data in Flex by using a component Joel dubbed a "ScrollableAxisRenderer". Basically, Joel made a skin for a ScrollBar component so that it would fit compactly on a chart's X or Y axis. He then made a special implementation of IList that wraps the base data provider (i.e. the one with too many elements to display), so that only a small portion of the data would be "visible" to the chart through the wrapper at any one time. Then, Joel programmed the scroll bar so that moving it around would result in scrolling of the large data set, allowing the chart to "see" as much or as little of the data as you want it to. The effect is really cool.
Unfortunately, Joel's code didn't work with dynamic data providers. I tried to take his original code and tweak it slightly to handle dynamic data, but it wasn't as simple as I had hoped since all the classes seemed to be collaborating with different parts of the process. So, borrowing heavily from Joel's original code, I re-implemented his idea, focusing most of my effort on a solid implementation of the class that masks the large data set. Once this was finished, I got a sample app working using a basic MXML component with embedded ActionScript. Finally, I split out the code in to AS classes so that the custom scroll bar, custom axis renderer, and collection mask had clearly defined responsibilities and worked as proper components.
I got it all working nicely, so I sent it to Joel just now to see if he was okay with me submitting our joint work to FlexLib. There was certainly a lot of interest in a dynamic version of his component on his blog post, but (like many of us with non-work projects) it looks like Joel did not have the time to go back and finish it off. It certainly is a really cool way to handle large data sets in Flex charts, so kudos to Joel for coming up with the idea and cooking it up.
UPDATE (11/17): I heard back from Joel, and he's going to look over my additions this week. I'll keep you posted as we get the code ready for FlexLib.
10.13.2008
Welcoming Brian LeGros
We were honored to have several really solid candidates apply for the most recent opening on my team at Highwinds, but in the end we could only choose one.
Brian LeGros joined us today as a Senior Software Engineer.
I have known Brian for a few years, and his contributions put him head-and-shoulders above the rest of the pack on my technical leadership/architecture team at CFI, where we worked together for about eighteen months. Unfortunately, the commute became a bit much, at which point Brian took a position at a company much closer to home. Brian's also a veteran of FCE, where my other team mates Russ and Mario worked for several years, so his arrival today was a reunion on multiple fronts.
Brian brings an awful lot to the table in terms of... well, pretty much everything that contributes to successful software development, so we're thrilled to have him aboard at Highwinds. I'm glad we were able to work out a scenario where he could work remotely most of the week, making the commute to Winter Park much less of a barrier.
Brian spent most of his first day drinking from the Highwinds fire hose as we brought him up to speed on the StrikeTracker development environment and our way of working. He's also piloting a Mac for the first time, which always proves interesting for the rest of us. Don't worry Brian; it only takes about two weeks to forget the ways of Windows, and then you'll wonder why you ever used a non-*NIX OS for development.
We're about to do some major work on StrikeTracker to prepare for an ambitious roadmap we recently laid out for 2009, and I know from experience that Brian's presence will make for a much better product. We're budgeting for my team to grow yet again by several positions next year, so keep your eyes on my blog if you are interested in joining the Highwinds team in the future!
10.10.2008
It's a Shame About McCain
So, having watched the second presidential debate this week, I feel a little better about the positions/policies of each candidate. For whatever reason, I think the town hall-esque environment seemed to work better for getting the candidates to speak to the questions posed to them (no matter how oddly twisted it was compared to the typical town hall affairs). Maybe it was the fact that they were responding to regular old citizens instead of news anchors.
Anyway... throughout the debate, I couldn't help but wonder what the hell was going on with John McCain. As I stated in
my last post on the subject, I had always liked John as a senator after becoming aware of him for the first time during his 2000 presidential race. Whenever I saw him on TV in the years after, he was calling people from both sides of the aisle to the carpet when they acted out, speaking his mind, and generally acting like the kind of guy I wished all politicians could be.
And then John decided to run for office again in 2008. At first, I was happy - this would be his last shot considering his age, and since I had liked him in 2000 I expected to like him just as much now (if not more). At first, he was almost dropped from the race, and then made a resounding turnaround earlier this year.
It was at this time that I began to wonder where the old John McCain had gone. Instead of the guy I was used to, here was somebody who seemed uneasy when speaking in public, didn't seem to know what he stood for, and continuously seemed to tow the party line regardless of its stance in a way I have never seen him do in the past. It's only gotten worse in recent weeks, ever since his dubious move of adding Palin to the ticket - a move whose only discernible motive seems to have been to sway Hilary Clinton supporters. I know how terrible that sounds and I hope it's not the case, but having watched her intently the last few weeks I can't see many other qualifications.
So, coming back to John - what happened? I think I have figured it out. I'm probably wrong, but I figured I would share my thoughts anyway. I will personally be very sad if I am wrong after all, because I have always liked John, and if he has really turned in to this new version of himself then we've lost a serious asset in our government.
I think that John decided that with this being his last shot for the presidency, maybe he should listen to the political analysts on his campaign staff. I think they shaped his policy decisions for items that would appeal to the base, over prepped him for the debates, and generally ruled over his campaign to the point where John lost his sense of self and identity. I also believe that his campaign suggested Palin as a game changer; it was a strategic marketing move that would give John a chance to win if it worked, regardless of whether or not John thought she was the best running mate.
The thing that really solidified this belief for me was how John appeared in the last debate. He seemed like a guy acting out a script, with all the unnatural tendencies and voice pitch that accompanies such a performance. Just watch some video of John when he's comfortable, like his many appearances on The Daily Show, or occasions when he's handed somebody their ass in his role on Capitol Hill. Then compare it to his debates; you can immediately see the difference. And while I may not agree with everything Obama has to say or every policy he intends to bring to the office should he win, I at least felt like he was being himself during the last debate.
I think I saw a glimpse of the old John today in a news clip, when he took the microphone away from a supporter to correct her on the impression that Obama was an arab (although she didn't seem so sure of this herself as John disagreed with her, funnily enough - it was almost like she was trying to appease the crowd with her statement). No matter how much is at stake, there are limits, and I have a lot of respect for John understanding them and making corrections where necessary. McCain's camp has been responsible for plenty of character assassination against Obama in recent weeks, and while this may be par for the course in any political race, if it goes too far it may end up with a real assassination instead. God forbid that any president be taken out of office under such circumstances, but I believe there is plenty of intolerance still running amok in this country. It doesn't take much effort to push serious bigotry to violent action. On that note, since I hail from the country responsible for Margaret Thatcher in the 1980s it is utterly fascinating to me that the USA still has issues with gender and race in its leaders (but I'll save that for another post).
It is my hope that John has realized that however this race ends, he should end it with a modicum of his former dignity, and that this is the reason he's started publicly setting his supporters straight. Regardless of who is elected for the presidency in November, I would have a hell of a lot of respect for that.
UPDATE: Wow - somebody with far more wit and aplomb than I captures my sentiments perfectly (and backs them with what might be facts).
10.07.2008
Political Frustrations
After watching lots of CNBC and political coverage on TV for the last few weeks, there are several things that will drive me to total, irretrievable insanity very shortly.
- Hearing the terms "Main Street" and "Wall Street" uttered in the same sentence.
- More video of Sarah Palin winking and playing up the Alaskan accent. I've seen plenty of other videos of her where she's communicated without these affectations, so please - give it a rest.
- Further rhetoric designed to assuage the anger of the general populace about the economy, as opposed to addressing the actual economic problem itself. Perhaps I'm an idiot, but I don't see how capping executive pay packages will affect problems with lending; it seems like all that will do is make regular people of more modest means feel like the "bad people" are being punished.
I'm currently waiting in total apathy for yet another presidential debate, during which I expect both candidates to dance like ballerinas and thoroughly avoid answering any of the questions asked of them. I've gathered very little from the debates so far that gives me any further indication of how either candidate intends to run our country; they might as well have not happened. Perhaps we'll get something worth seeing tonight, but I seriously doubt it.
Quite frankly, I've been really disappointed with both candidates. I thought McCain totally kicked ass when he ran in 2000, but there are no remnants of the former McCain in this shell of a man I now see before me; he seems to have completely lost his take-no-prisoners tendencies (pun intended) in the last 8 years. Obama looked like a serious contender earlier in the race, but is obviously playing it safe this late in the game so as not to give up the slight lead he's picked up in recent weeks, which seems to have come more from Palin's and McCain's public blunders than from any direct action on Obama's part.
Admittedly, I haven't been paying attention to American politics all that much until the last eight years. After all, this will be the first election in which I have the right as a citizen to vote. But it seems to me that it's been a long time since this country has seen a landslide election as a result of one candidate truly being better suited to run the country than the other. The last two elections seemed to be more about picking the least damaging option from an inherently weak selection, and the latest election seems to be following suit.
As an independent, it seems to me that many people simply back their party's candidate without any serious examination of their qualifications, and leave the votes split at almost 50/50. That's frustrating. Then again, with the offerings we've had in the past few years (Bush/Kerry and now McCain/Obama), I'm not sure we've had much of a choice. In the absence of candidates with any real substance, mission, or persona, all you have left to guide you is a loose party affiliation based upon some general principles you may agree with for how a country should be run.
And so, I find myself drawn to choosing my next president for what I consider the wrong reasons, such as "who will screw things up the least?" Although, considering the state of the country today, that might not be such a bad place to start after all.
Congratulations, mediocrity; if the status quo endures, it seems that you will be the sole winner once again.
AT&T Violates OS X License Agreement on National Television
Well, not really, but the guys who put their most recent AT&T 3G Laptop Connect Card ad are clearly not very detail oriented.
I just saw their commercial with the Laptop Connect guy and Michael Phelps, where the spokesman challenges Michael Phelps to a race with two laptops. When the spokesman turns his laptop to the camera to show how much faster it is, his knock-off PC laptop is displaying a movie of OS X opening windows in the Mac-only apps Adium and Finder, as well as Safari (although Safari is obviously on both platforms).
Not only does this kind of discredit the fact that their card might be any faster (since the computer is obviously playing a movie put together by their creative team, which is likely using Macs), but you'd expect AT&T to know that it's a violation of OS X's licensing agreement to be installed on a non-Apple PC. After all, they are Apple's partner for their mobile platform.
Big duh.
10.01.2008
WDS Problem with Airport Express (6.3 Firmware) and Airport Extreme (7.3.2 Firmware)
Over the years, I have been through a few wireless routers. I went through two Linksys routers (they seem to have a two year life span before hardware failures), after which I started using an Airport Express. The Airport Express was nice because I could take it with me on vacation/conferences and plug it in to the hotel Internet for strong, instant wireless signals. Then the Airport Extreme came out, with Airport Disk, ability to backup wireless clients over Time Machine, etc., so I picked one of those up.
To maintain my existing investment in the Airport Express, I set up a WDS network. This allowed me to have my Extreme in the upstairs office and my Express in the living room. The Express both extended the wireless network signal and provided a way to stream music to my entertainment system from any computer in the house (great for parties).
However, since upgrading my Extreme to the 7.3.2 firmware, I have had issues with my WDS network. The network will connect, disconnect, connect, disconnect, over and over again. The wireless signal to the Extreme is not affected, but the signal to the Express comes in and drops out over and over. Looking in the Airport Extreme logs, I was getting the message
"Authenticating with station xx:xx:xx:xx:xx:xx" followed by "Deauthenticating with station xx:xx:xx:xx:xx:xx (reserved 2)". I could also see that there seemed to be a third wireless client trying to connect to my network and failing, so it's possible that interference from this network is confusing my Extreme.
Anyway, I didn't really need the wireless network extension - the Extreme provides a good strong signal all over the house. However, I did want the wireless music streaming capability, which I could no longer have since I couldn't figure out how to get WDS to work for the life of me. So, I simply switched the config for the Airport Express in the Airport Utility to "Join a Wireless Network" instead of "Participate in a Wireless Network". I entered the security credentials for the network and rebooted it, and I now have wireless music streaming working again. The Express does not provide any Internet connectivity, however, but since it is on the network, clients connect to the Extreme base station. iTunes will then find the Express and give you the option to stream music to it using Airtunes.
Not an ideal scenario, but workable. My Airport Express is an old 802.11-G model whose firmware updates stopped at 6.3, and the Extreme base station is an 802.11- N model on the most current 7.3.2 firmware. I could revert the Extreme firmware back to an earlier revision, but then I would be working with dodgy firmware and would lose the ability to do Time Machine backups over wireless, which is a deal-breaker for me.
If I bought a new Express today it would have the 7.3.2 firmware, and I expect would work fine with WDS again. Alas, I don't need WDS that much, and don't feel like spending the money unnecessarily to find out.
9.27.2008
Review: Dell SP2208WFP 22" Monitor With Web Cam
There was a time when I thought my 15" MacBook Pro monitor was plenty large for any given task. Unfortunately (or fortunately depending upon how you look at it), I've been totally spoiled with my dual monitor setup at the office, and found myself sorely wishing for a similar computing experience at home.
I've been out of the monitor market for a while, but a little Googling made it abundantly clear that the
Apple Store is out of their gourd if they think I am going to spend $899 for a 23" Cinema Display when there are so many bargains on the market, many of which are a step-up in terms of tech specs.
My monitor at work is a Dell Ultrasharp. Now, I have had really bad past experiences with Dell hardware. I once had a work laptop that would literally fall to pieces as I picked it up, with the removable drive falling out just from the amount of torsion applied to the case by the act of lifting. That being said, it was after sitting for ten minutes one day waiting for this same Dell laptop to wake from sleep that I decided I was never going to work on a Windows PC again, so I suppose I should be grateful to it for pushing me over to the Mac full time.
However, unlike that laptop, I like my Dell Ultrasharp a lot - it has great build quality and is a solid performer. Unfortunately, looking at the Dell site, Ultrasharps seemed somewhat on the pricey side as they are considered the higher-end option, and I wanted to keep my purchase between $300 - $400. So, after consulting our resident IT guru at Highwinds and talking amongst some peeps, I decided on a
22" Dell SP2208WFP, which has a built in web cam. I was going to order it through work for about 10% off retail, but Dell ended up doing a $70-off special that was more worth my while, so I ordered it last week directly through their site. Dell promised me the item was in stock during purchase, then told me after the fact that it wouldn't ship until October, and promptly delivered it to me three days after I ordered it (arriving September 24th). So, they get 0/10 for the web site experience, but 10/10 for a speedy delivery.
As for the monitor itself, it is super nice. Along with everybody else on the Internet who bought one of these monitors and chose to comment on forums, I immediately discarded the factory settings (which make the monitor look like total ass) and tuned its internal settings, along with Apple's built-in color correction utility which I've personally never had success with before now. Luckily, the planets aligned, and I must say the picture is even better than my Ultrasharp at work. I almost bought a 24" model, but having put the monitor in situ in my home office, I am glad I didn't because the 22" is plenty big; seems bigger at home than at the office for some reason. Along with my
PodiumPad, I get dual screens by leaving the laptop open, and find myself
happy as a clam.
By far the best moment of owning this monitor came when I realized that it had three inputs: DVI, HDMI, and VGA. Along with my collection of laptops, my office at the house is home to my first Mac, a Quicksilver PowerMac G4 tower. Under the impression that the tower only had an ADC connector (hooked up to the 17" Cinema Display I bought back in the day), I was searching online for an adapter to convert ADC to DVI when I stumbled across some information about PowerMac video cards. I was reminded on this web site that the 2002 Quicksilver models came with dual-head video cards, with one VGA and one ADC connector. Crawling behind my machine for the first time in about four years, sure enough I was met with the VGA output. I happily plugged in the Dell-supplied VGA cable, and there was much rejoicing. I have a wireless Apple Bluetooth keyboard and Mighty Mouse combo, so all I need to do is push the button to switch video inputs and I don't need no stinkin' KVM switch.
One note to potential buyers: to switch video inputs, you have to press a button on the front of the monitor. The first press prompts you with "Auto Detect", which (if you are dumb like me) you will interpret to meaning that it will determine which inputs are active and give you a choice to select the one you want. Not so. It took me a few tries to realize that "Auto Detect" is one of four options, the other three being "DVI", "HDMI", and "VGA".
Other nice features include the glossy monitor coating, solid build quality, USB hub, and built-in web cam with microphone. A total of four downstream USB ports (two on the back, two on the side) and the web cam can all be hooked up to your computer using one USB cable. The web cam has a similar focal range to the one built in to my MacBook Pro, with the only noticeable difference being that the Dell's webcam has slightly softer focus (instantly earning it the nickname "Barbara Walters-Cam"). Both the monitor and web cam worked flawlessly after hook up (without drivers) on both my MacBook Pro and Quicksilver tower, both of which are running the latest versions of Leopard; note that you need to power down the tower and connect the monitor before it is recognized, and you should never unplug an ADC connector from a running computer.
iChat instantly recognized both web cams for video conferencing, and let me choose between one or the other in the Preferences dialog. The only other thing I had to do was go in to the "Audio Midi Setup" application and set the monitor's microphone resolution to 48 Khz before it would start recognizing input.
All in all, I'm really happy with my purchase. I got a beautiful, seemingly better-than-Ultrasharp quality 22" monitor including shipping for just shy of $300. I'd definitely recommend the monitor to anybody who is in the market for something that is decent quality without breaking the bank.
"Insure" and "Ensure"
This is one of those little, niggling language things that has absolutely no impact on society, but still really drives me crazy when I see it in emails and on web sites because I am such a douche. One of these days, it will drive me to purchase an AK-47 and tour the country with a green bar report listing all the offenders, delivering swift justice Jay-and-Silent-Bob-style.
insure |inˈ sh oŏr|verb [ trans. ]arrange for compensation in the event of damage to or loss of (property), or injury to or the death of (someone), in exchange for regular advance payments to a company or government agency.
ensure |enˈ sh oŏr|verb [ trans. ]make certain that (something) shall occur or be the case.
P2P For CDN Video
9.22.2008
Amen To That
Is somebody calling you, or did you just decide to subject us all to a tinny cellphone-speaker rendition of the latest crap being aired on MTV?
Ringtones are evil.