Archive for January, 2009
You have to respect somebody who goes out on their own terms. F*** you too, Sunshine Megatron – you guys will be missed.
I am often saddened by the fact that everybody in this country seems to have lost their sense of humor (I’ll save their sense of right and wrong, sense of respecting an individual’s personal choices, and sense of what makes for good direction for the country for another blog post). Somewhere along the way, this nation founded by rebels became far too politically correct.
Luckily I have dual citizenship and a skillset in a profession that will provide me work from just about anywhere in the world (no, not that one), so if things get bad enough I’ll move. I’m going to give the new administration a four year head start before I consider that.
We always have cool, high-profile stuff happening at Highwinds, but can’t always speak about it directly due to NDA until we get the blessing from our partners.
A few weeks back, we streamed the People’s Choice Awards simultaneously with the event taking place on TV. It was really cool because our live streams showed you the behind-the-scenes views while the TV showed you the event, so if you had a laptop you could sit and watch the backstage happenings during both the event and the commercial breaks. I was monitoring the event via our StrikeTracker console to see the real-time analytics as it was taking place, so I got to see what was happening from a whole load of different angles. Our stream was also about 4 seconds faster than the TV, so you got a very small sneak preview of what was about to happen on set. I don’t usually like awards shows, but the technology and event management they had in place for this one was really cool and made it worth watching for me.
Using StrikeTracker’s real-time features, I was able to see a handful of connections from the teams at Highwinds and Incited Media around 4 PM while the backstage cameras were being set up and the streams were being tested. Later on, I watched the traffic pick up in real-time from about 8:20 PM all the way up to the event, and could see the stream analytics throughout the broadcast. It’s very cool to see this sort of thing happening live, and then be able to go back to the hourly views and see the aggregate analytics information getting rolled up by the CDN with barely any latency. Our real-time data gets refreshed in StrikeTracker every fifteen seconds, and is able to show you what the CDN reported within 30-45 seconds of latency after each chunk of data is delivered. This is an unprecedented capability when compared to our competitors whose analytics data often lags behind by hours – sometimes hours after the event is over, let alone after each chunk of data is sent to the viewers as it is happening.
We’re expecting a lot more of this sort of mixed-media event in the future, most notably for live events being distributed over the web in additional to traditional media. For our next-generation console, we put our “user” hats on and came up with a feature set that supports live event technicians in the field and marketing/executive analysts during each event. Our engineering teams are working hard on these features right now, with the goal of providing even more up-to-the-minute analytics data and command-and-control capabilities than we have today. I’d love to tell you more, but you’ll just have to wait until we release the products officially sometime soon.
Our support of the People’s Choice Awards is also currently the top story on contentinople.com.
I just posted this to the groups I am associated with on LinkedIn, and wanted to put it here to get the word out further. Please forward this to anybody you know who may be interested – remote resources are welcomed.
Highwinds is in search of an independent contract resource to assist with user interface/user experience development for a next-generation Rich Internet Application.
We’re presently working off internally-developed wireframes, and are building the application’s functional elements. The resource we’re looking for will be responsible for developing look and feel, illustrating custom iconography and branding, making recommendations for transitions/visual cues, and developing a color palette.
Please note that a traditional web design background on its own will not be sufficient for this opportunity. The ideal candidate will have experience developing modern web/desktop-based software applications and will be familiar with Rich Internet Application technologies and cutting-edge user experience work in this space.
We expect that there will be a higher volume of work up front, followed by smaller engagements throughout the project as additional modules are developed. If you are interested, or know somebody who might be, I can be contacted at email@example.com. We will be making a selection largely based upon portfolio, so please submit a copy of user interface development work that you have done or a link to a portfolio on the web.
First week at the White House has been a technological trip back in time for Obama’s team. Hardly surprising, yet also ridiculous; no wonder it takes the government so long to get anything done.
It’s amazing how your personal productivity gets tied to the technology you are most comfortable with. When I have to sit down and use earlier versions of OS X or Windows that are lacking Spotlight, Quicksilver, and all the other stuff I am accustomed to, I go nuts. Even something as simple as being able to open Console on OS X to see what is happening under the hood is sorely missed on less transparent platforms.
On our daily sync-up call with the Phoenix office, the Ops guys were saying that the Oval Office didn’t even have Ethernet jacks. Apparently Obama is the first president who has wanted to make a computer a full-time fixture on his desk. I haven’t validated these claims in any way, but it would not surprise me if they were true.
Of course, a major reason for the tech lag is the increased security requirements; once you have a secure setup it’s hard to change it without opening holes. That being said, I know that Macs have seen an increasing use in military applications since OS X came out, so fingers-crossed the White House will soon become the Mac House too.
My topic and speaker bio have been posted to the Flex Camp Miami web site. My talk is titled In Search of AOP for AS3, and you can get the full scoop by following the link.
Whenever I get engaged in a political discussion, I find myself thinking in terms of what makes sense for a business. The way I have always seen it, the first bill I pay on the 15th and 30th when I get my paycheck is to the government, and in return I should be getting good service and a receipt – just like any other business transaction.
But this isn’t what happens. As long as I have been earning my keep, I’ve seen the money evaporate out of my paycheck and then disappear. I have no idea where it is being spent, other than vague guesses I can make based upon the cost of government programs large enough to get press.
I know that a lot of my money goes to programs that support special interests and lobbyists, and pet projects of the people in power. I know this because it’s the same bullshit that occurs in large companies all over the world, where the people in power make political decisions instead of the decisions that are in the best interest of the company and those working for it. And as long I have been working, there has been nothing that I could do to make the government work any differently.
The bit about all this that has never made sense to me is why the government is not run like a publicly traded company. All the companies I am invested in send me statements required by the regulatory system giving me detailed information about where they spent, made, and lost money. I’m engaged by them for shareholder votes when they have to make corporate policy decisions, and I receive detailed documentation describing the motions on the table, the company’s preference, and the reasons for/against. This all makes perfect sense, since it’s my money that they are acting upon. And they send all of this to me with no effort required on my part.
Now, I expect that in the past I would have been able to get this information from the government if I had dug deeply enough. But it really shouldn’t be that much work; after fourteen years in the workforce, I’ve got far more money invested in the government than I have in any of the companies in which I own stock. And so far, my investment in the government has been a staggering loss.
And that’s why I’m pretty excited about the new whitehouse.gov web site. Not only are there several RSS feeds to follow, but the new president has promised to make all non-emergency legislation available five days before it is signed, and there’s an easy way to send feedback to the White House if I so desire – something I’ve been invited to do. I can also watch the president’s weekly video address and sign up for email notifications. Plus, I seem to remember Barack promising during his campaign to publish details from the budget as they come together, which (assuming I’m remembering correctly) I am really interested to see.
So, I’ll basically be able to stay informed effortlessly, just like with my investments. Frankly, this is the least the government can do, which makes me wonder why the hell we’ve had to wait over a decade for the government to properly embrace the Internet. But whatever; it’s here now.
So let’s review the status of my citizenship in Government 2.0.
1) Subscribed to the presidential blog? Check!
2) On the White House email list? Check!
3) Bookmarked for the weekly video address? Check!
It’s certainly salad days, and the new administration’s actions will be the measure of their mettle, but I’d say they’re off to a pretty good start so far. And if things should change, I’ll bitch about it here on my blog as usual…
While it’s impossible to know for sure, yesterday’s inauguration of Barack Obama is being heralded by many in the industry as the largest streaming Internet event ever. But regardless of its record-breaking status for the CDN industry as a whole, it was a huge day for top-tier CDNs such as Highwinds – in fact, it was a record day for us.
I can’t disclose the name of our partners who were streaming on our network since we are under NDA, but I can tell you that as I spoke to friends and family about the event, they complained about the video quality of every stream from all the major news sites – except for the one that Highwinds was delivering. Of course, stream quality is entirely subjective and depends on more factors than just the CDN delivering it, but it was gratifying to hear this nonetheless.
For a little more, you can read Dan Rayburn’s post.
Sweet. With all the press on the event so far (and the limited number of seats) I expect it will be packed.
UPDATE: You can now follow the latest goings-on with Loom at the Loom Blog.
At the end of December, I made a passing reference to my bytecode weaving library (Loom) for ActionScript 3 and Flex apps. Today, I finished the first phase of this library, which was full parsing of the AVM2 spec in to AS3 domain objects.
Why the hell am I doing this? Well, ever since AS3 came out, I’ve been loving the compiler optimization but hating the inflexibility of the new traits/object prototype model. There’s a serious need for AOP functionality in AS3 to support logging, security, mock objects, run/compile-time weaving, and all of the other exciting dynamic proxy stuff you can do with AOP, but there is neither language support nor a library out there for doing this as of yet.
After much digging in Google, I have found heroic (yet naive) efforts to get something equivalent to eval() in AS3 and a few libraries for introspecting and printing the bytecode, but it was pretty obvious that none of these attempts were going to cut it for what I wanted to do. Since Adobe published the AVM2 spec, I figured that something akin to a Java CGLIB port couldn’t be too hard. After looking through the documentation about two months ago, I decided that a bytecode weaving library for AS3 looked entirely achievable.
I have a few more phases to roll through, but if I can continue at the current rate I think I’ll be replacing static elements of bytecode by the end of the week, and possibly weaving functional mixin code in to classes in a week or two. The first mixin I’m planning on working on is dynamic subclassing of existing compiled classes.
Basically, what this will entail is introspecting the bytecode for the existing class, and creating a dynamic subclass that has an overridden version of every method from the superclass. Each overridden method will have a near-identical set of opcodes that instructs the AVM to invoke a method internal to the dynamic class – a method which will also be mixed in at runtime via bytecode enhancement. This mixed-in method will accept a reference to the original function, and will be able to invoke AOP advice before, after, and during exception scenarios for the original method (if such advice exists – otherwise the original method will simply be invoked). The advice itself will be stored as closures within a map inside the dynamic subclass; this will allow a programmer to load the dynamic proxy through an AOP factory, add advice to it by method name, and supply a closure that can either replace or run sidecar to the original method. Examples of this sidecar method could be a logger, global exception handler, or around advice that can optionally proceed with or cancel invocation.
To hook this functionality in to a Flex app or test suite, all that’s really needed is a runtime module loader that can pull in a SWF and manipulate the bytecode block before handing the enhanced code off to the Flash Player. Once this is in place, we should have full AOP capabilities in AS3.
I’d also like to see the library end up with runtime weaving via compile-time annotations (possibly with an AspectJ-style Eclipse plugin down the line), but my main goal is to get the basic AOP stuff in there so we can have proper mocking support in AS3. We’ll see where things go after that, but since I will be hosting the project open-source on Google Code, people will be able to do whatever they like with it.
Stay tuned to my blog and I’ll keep you posted as things develop. You can expect to see the alpha release of the code in the SVN repo on my Google Code project within a week or so.
“Mission Accomplished”? Perhaps – if the mission was to enact an incompetent administration, take us to war on false pretenses, fail to pay any attention to a national disaster, allow an economic meltdown, and successfully dodge accountability for any of it.
Was George W. Bush the worst president in history? I don’t know enough history to answer that fairly, but in my opinion he was the worst in recent memory. Any one of the crowning achievements listed in my last paragraph would be sufficient to put a scarlet letter on a president’s legacy, but to rack up five of them in eight years is astounding.
But at the end of the day, it’s not Bush’s fault – it’s ours. If a company hires somebody who is ill-equipped to do the job and doesn’t fire them, it’s not the employee’s fault. Bush was voted in under suspicious circumstances; we failed to dig deeper. He was voted in a second time; we failed to produce a worthy alternative. And in the last two years when Bush really began to reveal how out of touch and short of solutions he was, we failed to throw him out.
If anything, the last eight years has proven less to me about Bush’s inadequacies as a leader, and more about how fragile our political system is and how powerless we are to impeach our leadership when the time comes. I shudder to think about how much worse could things have gotten while we sat around and grumbled rather than doing anything serious about it. Bush is not a deliberately evil person, but imagine the damage that could have been done if he was.
Let’s hope the new guy does better.
Most Popular Yelling
- Scrolling Large Data Sets in Flex Charts (41)
- Configuring Tomcat SSL Client/Server Authentication (28)
- Fixing "Bluetooth audio failed" Error Message on Mac OS X with Sony DR-BT50 Headphones (16)
- How To Become A Software Engineer/Programmer (15)
- Using Axis's wsdl2java in a Maven Build (13)
- Speak and Spell Samples (13)
- An Objective-C Tutorial for Enterprise Java Programmers (12)
- On A Personal Note (10)
- Abandoning ColdFusion? (9)
- Adobe Says: "Thousands of Developers are using CF 8" (9)
Stuff I Like
- October 2011
- August 2011
- April 2011
- March 2011
- January 2011
- December 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- March 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- January 2007
- December 2006
- August 2006
- July 2006
- June 2006
- April 2006
- February 2006
- December 2005
- November 2005
- October 2005
- August 2005
- July 2005
- June 2005