The Blog
Aug 25, 2008
Jeweler's Mutual
If you need an insurance policy for an engagement ring as I did (or any jewelry for that matter), I have to recommend
Jeweler's Mutual. The online application took about 5 minutes (using a Flex app, no less :) ), after which I uploaded a scan of my jeweler's appraisal.
Afterward, I called to make sure they had everything and they confirmed that I was covered over the phone. So all in all, I had a full policy in about ten minutes, and I saved about 25% over adding the ring to my homeowner's policy. Pretty cool.
Aug 24, 2008
"Flex vs. Silverlight" Is A Misnomer
I was reading over
this article that
LeGros posted on
my recent blog post on Silverlight's performance for those who had installed the plugin.
The author does a decent job of laying out the case for both products, after which he draws four possible conclusions.
1) Flex will continue to dominate the market place.
2) Silverlight matches Flex’s market share.
3) Silverlight will fail to gain any significant market share.
4) More competition will flood the market.
The author felt that #1 was the most likely outcome. Personally, I think #2 is practically guaranteed. Allow me to explain.
If you want a platform to take hold, you need three things:
i) Minimal requirements for installation for the end user,
ii) Development tools that developers can't live without, and
iii) Killer front end apps.
The author states that
"The consumer is the least impacted. For consumers it is simply a matter of downloading the plug-in or not.". To me, the consumer is potentially the most impacted, since they will have to get that plugin installed in order for the platform to fulfill item #i above.
IMO, there are two reasons that the Flash player has such ubiquitous adoption: (a) people's love of punching a monkey in a Flash ad in the late 90's, and (b) the fact that the Flash player installation is almost seamless. Now, of course, I am being facetious with the "punch the monkey reference", but the point is that you need some application/gimmick that will make users motivated enough to want your plugin in order to get to it, fulfilling item #iii. As for the seamless install, this was especially true for Windows users where IE would almost magically inhale plugin updates and run the new version immediately without even needing to shut down the browser.
This is where Microsoft could really take hold from a platform perspective. Since they own Windows, and Windows is clearly king in the OS marketplace in terms of market share, they can get Silverlight out there just by bundling it with Vista and waiting long enough for users to upgrade either their OS or their whole PC. Of course, most of the Vista users are still going to want to punch the monkey and will need the latest Flash player to do so, so that puts the number of Silverlight installations at parity with Flash (for Windows users at least).
Next, we've got to worry about development tools. Well, Microsoft doesn't have much to worry about there. At least amongst my network of professional colleagues, Visual Studio ranks as one of the most powerful and loved development environments on the planet. Add Silverlight capabilities to this and throw in a healthy quantity of C# and VB coding capabilities coming in Silverlight 2.0, and requirement #ii has been covered as well.
The only thing left to do will be to come up with a Silverlight "punch the monkey" equivalent for non-Windows users. As developers start creating killer apps in Silverlight, it will only be a matter of time before non-Windows users will want one of these apps badly enough to install the Silverlight plugin. If Microsoft can really focus on user experience here they can win over users on any platform. Of course, that might be a pretty big "if" based upon past experience, but I believe they can pull it off based upon the positive movement that took place in Vista (at least for decently spec'd machines).
So, what does this mean for Flex vs. Silverlight? It means that in all likelihood, Microsoft's best grab of the market will be about 80-90% of installed OS users, most (if not all) of whom will already have Flash as well or will get it soon after plugging in their new computer. I don't think Silverlight is going to offer anything to Flex/Flash developers that will make them jump over to Silverlight development or vice versa, so all the guys coding in Flash and AS3 today will be coding in Flash and AS3 after Silverlight 2.0, and all the guys working with .NET today will start producing more Silverlight apps instead of HTML apps because the rich capabilities in Silverlight will be so much cooler than what the browser can deliver alone today.
Of course, the proof is already in the pudding. Look at RIA development shops like
Cynergy Systems and
EffectiveUI; they aren't building apps in Flex or Silverlight, they are building apps in
both depending purely upon the need. I'd bet a kidney that
Universal Mind would also be developing in Silverlight today if it weren't for the fact that they are such a close Adobe Solutions Partner (of course, I could be totally off base here - but I think not).
So, my final word on the subject is that there are plenty of desktops ready to receive Silverlight, plenty of developers ready to code in it, and plenty of action left in the Flex/Flash space for all those guys to be enjoying life too. This may be one of the few cases where it doesn't matter which technology you want to go with - they will all be as ubiquitous as each other since they run cross-platform. Long live Flex
AND Silverlight.
As somebody who started as a Java developer, this explosion of cross-platform front-end technologies is really something wonderful for me to see in my career. Java held the promise of cross-platform capability but really only ever delivered it on the server side. Now that Flex and Silverlight are here, we finally get to have first-class support for cross-platform capabilities in the front-end as well - and nothing makes developers happier than lots of people using their apps.
On A Personal Note
I presented the bling and Jessica accepted, so we're engaged! Families on both sides are thrilled, and are joining forces to divert the holiday meal conversation thread from "when are you getting engaged?" to "when are we getting some grandkids?" :)
Many thanks go out to those of you who assisted with the gemological education and countless unsolicited suggestions for proposal ideas... needless to say, I came up with something special that did the trick.
Aug 22, 2008
Silverlight Disappointments?
You know, I was really hoping Microsoft was going to have Silverlight in top gear before the Olympics, especially since this was their chance to get everybody to install the player. With the Olypmics being as popular as they are, this would have been the time to try to get some foothold in the Internet against the Flash player. People I respect have told me that Silverlight is going to be very cool, and I think the competition against Flex will really push Adobe to keep their current dominance of the RIA market.
Reading this article on Contentinople, it looks like this viewer's experience with Silverlight (which is a requirement for the video) has been lackluster, with system crashes being par for the course. He didn't say if he was using a Mac or PC.
I didn't bother downloading Silverlight after many respected peers had problems with it on their Macs when it first came out, so I can't speak from experience. Has anybody else tried the Silverlight player, and if so, what were the results?
Aug 21, 2008
Debunking the Mojave Experiment
After disabling the horrendous user protection that was up in my grill at every turn, I actually like Vista on my MacBook Pro in Bootcamp. It runs Dawn of War and Firefox great (which is pretty much all I use it for), and I thought the search features and UI changes (while not a groundbreaking excursion from XP) were a positive change. Of course, anybody who knows me/reads my blog regularly knows I dig the Mac for non-gaming use due to all its shiny UNIX-ness and polish.
Even though I like Vista, I thought
this article on debunking the Mojave Experiment (while a totally biased rant) brought up a few points that were somewhat meritorious.
Enjoy (or not).
Flex Development Position Open at Highwinds
With
Tommy's departure, I've got an opening at present here at the Winter Park, FL office (local candidates only, please). Here's the job description (exported from Word to plain text with a little HTML for formatting - YMMV). If you are interested in applying, please contact me directly if you know me personally, or send your resume over to careers [ at ] highwinds.com with the title "Software Engineer - User Experience Team."
Software Engineer - User Experience TeamHighwinds is a growing provider of software, messaging and distribution services. Our products are sold to the worlds largest ISPs. We are actively seeking ambitious, dynamic, smart and energetic individuals to be a member of the team that designs, operates and improves our growing content distribution network.
If you are motivated to deliver high quality and innovative services, Highwinds can offer you a great career opportunity. We offer benefits including 401k, medical, dental, vision and competitive salaries to qualified team members.
About the User Experience TeamAs a Software Engineer on the User Experience team, you’ll be creating a cutting-edge user experience product on top of a next-generation Content Delivery Network (CDN).
Every member of our team is focused on the needs of our customers and the future of our business, and your work will directly impact how the company and product get to the next level. When you join our team, your ideas will shape the future roadmap of the platform as you bring them to life through code.
Required Personality If the following description sounds like you, you are going to love being a part of our team.
You have strong passion for high-quality software and the ability to deliver product in an informal, agile environment.You prefer a whiteboard brainstorming session to written specifications.You don't need a manager. Once you have some direction, you take responsibility for the work at hand and have the initiative, imagination, and motivation to get it done.You like to learn from others, and to share knowledge and best practices. You're a fan of collaborative design and peer reviews.You have excellent deductive reasoning, problem solving, and decision-making skills. When it's necessary to compromise to meet a deadline, you're confident you can make the right decisions to achieve a balanced result.You have a positive attitude with excellent interpersonal/communication skills. You're happy working both independently and with others in a multi-team setting.You're not comfortable unless you're at the top of your game. When you're not at work, you're tinkering with new technologies or catching up on ideas from industry thought leaders. You might even have your own blog.You're interested in working with Rich Internet Application (RIA) technologies.Essential Job Functions & ResponsibilitiesWrite high quality code and unit tests in Adobe Flex and Java, integrating with RESTful web services and BlazeDS.Brainstorm with other team members to shape the implementation of end-user and internal stakeholder requests.Participate in collaborative code review and system design sessions.Work in a release-based lifecycle, taking ownership for individual feature sets and bugs with each release.Support Technical Consultants in the field by assisting with specific customer requests, troubleshooting, and problem solving.Job RequirementsThese are the bare minimum skills expected for members of our team.
Bachelor's degree in a software-related field (Comp. Sci. or equivalent strongly desired) or comparable industry experience, plus 4 or more years of professional experience as a software engineer in a team environment of any size.Demonstrable expert-level understanding of object-oriented technology and industry design patterns. Professional experience delivering applications in Java/JEE or C#/.NET.Strong written and verbal communication skills, including the ability to present ideas in a group setting and constructively critique the work of others. Experience with an RDBMS platform such as Oracle, MySQL, MS SQL Server, etc.Experience working with source control systems in a parallel development environment (Subversion preferred).Understanding of software development lifecycles and associated development techniques.Development experience using a server-side web development platform (any of the following or their equivalents: ASP, ASP.NET, JSP, ADF, ColdFusion, Ruby on Rails, Java servlets, JSF, PHP, etc.).Thorough understanding of the strengths and compromises of distributed application design using web services, REST architecture, and/or other remoting technologies.Experience with software development in both Unix/Linux and Windows environments.Desired QualificationsThe best candidates will also possess one or more of the following.
Strongly desired: professional or hobby experience with Rich Internet Application development using Adobe Flex 2 (or higher) and ActionScript 3.Proficient with the web technology stack (one or more of the following: JavaScript, HTML, XHTML, CSS, Ajax). Experience developing web applications for multiple browsers and operating system platforms.An eye for clean user interface design and a passion for delivering a high-end user experience.Working knowledge of graphic design tools (Adobe Creative Suite, Gimp, PixelMator, etc.) a plus.Familiarity with UML modeling.Experience with the setup and administration of web server platforms (Tomcat, JBoss, Apache, etc.).Experience with asynchronous message bus technology.Socket-based programming experience a plus.Experience working with geographic/marketing data.
Farewell and Good Luck, Tommy!
Tommy let us know today that he has been offered a position as a Team Lead at
Universal Mind. In addition to being an awesome opportunity with one of the original and most respected Flex consulting shops, he'll be working up north where he can be closer to his family.
We hate to see you go, Tommy, but we wish you the very best. The FLS servers miss you already. I don't think we'll ever find another salsa-dancing, plane-flying, hockey-playing software engineer/photographer. :)
Aug 18, 2008
ECMAScript 4.0 "Standard" "Killed"
There's a great rundown of what happened
on somebody else's blog, so I'll let you read that.
I say, who cares if the "standard" doesn't get officiated? From my experience, the best industry "standards" emerge from powerful libraries and rich language features, which gain popularity through developer love as opposed to a big stamp from a standards body. Examples of "standards" like this that come to mind include Spring, Hibernate, new Ajax libraries for JavaScript, etc.
Personally, I think AS3 is a great language, and really enjoy developing in it. If it's not going to be in IE and Firefox as the next version of JavaScript, then so be it; keep it in the Flash player. Support for a language in IE does not strike me as a reason to change the direction for Flex.
I don't develop heavily in JavaScript, so I don't know if anybody from that community will be missing out based upon this decision, but I doubt it; the JavaScript community has insanely useful and powerful libraries at their fingertips these days. I do think it would be nice if there was a common standard that could be compiled down to (which I believe was the point of Adobe opening Tamarin and its adoption in Firefox). I also think it's a shame that I won't be able to fully transport my skills from AS3 to JS coding, but to be honest, there are so many similarities between AS3 programming and JS as it stands that the language barrier is already pretty non-existent.
Finally, I would love to see Adobe run with this and put all the non-compliant ECMAScript features they had to take out (like private constructors, abstract classes, etc.) back in. As much as I see the strength in standards compliance across environments, they do put some shackles on innovation. Let's see this through as an opportunity to make Flash better.
Looks like I'm not the only one who feels this way.
Aug 7, 2008
Sidebar Links Updated
Looking over the blog today, I realized that my sidebar links were horrendously outdated. I added some new links, but still kept the oldies-but-goodies that continue to represent my state of being.
Enjoy.
Aug 6, 2008
Innovative New Way to Crush Hippies
See more here (quote lifted from around 3:25 in the embedded video).
Aug 1, 2008
The First 90 Days
Several months ago
I posted on my blog that I was leaving CFI to pursue a new opportunity at
Highwinds. Since I just passed the 90-day mark in the new job on July 13th, 2008, I thought I would share with all of you how it's going.
In a word: awesome.
But to leave it at that would not provide any insight to other twenty- (or thirty-, or forty-...) somethings that might be considering a potentially risky career change, so I'm going to take this blog post as an opportunity to share my experience.
So, Here It IsI became the youngest director at CFI after just six years, with a staff of 40 under my wing. For all my success, I have to thank fate for instilling me with a passion for excellence and the knowledge that it can only be achieved through the assembly of talented and highly motivated teams. In the end, it was a simple equation: if I brought the vision, they would bring the talent required to conjure it into being.
For a long time, things went well. Practices were improved. Money was made and saved. With each new success, I was honored with larger teams and greater responsibility. People who worked on my teams got promoted, too.
Unfortunately, corporate IT breeds a majority share of tremendous mediocrity. For every person who was like me and wanted to make things better, there were three more who personally benefitted from the inefficiencies of the status quo. In the worst cases, these people were unmotivated or just didn't want to learn something new.
Ultimately, I was left with a choice: (a) spend my career convincing people of their potential for excellence, or (b) join others in the pursuit of it. My decision to work for Highwinds was the latter.
Why I'm Glad I LeftRegardless of how well my projects turned out, the old guard at CFI often regarded me as a youngster with an unrealistically optimistic and utopian view of how technology teams should be run and how software systems should be built. This was, of course, totally incorrect. I may have been young, but I knew enough to learn from the experience of industry leaders who were kind enough to write books about how things should be done.
So, one of the most satisfying parts of working for Highwinds is the fact that they follow all the rules that earned me this reputation, and they reap the rewards that come from them. I'm going to detail these rules and illustrate them with examples from my first 90 days.
Rule #1: Hire Amazing TalentYes, it costs more. Yes, it takes longer to find the right people. But the results speak for themselves. On the engineering teams, there's very few people at Highwinds who aren't senior level, and everybody brings top-flight skills to the table. The result is a highly innovative approach to CDN technology that has enabled us to close the gap between our system (officially launched in January) and those of the major competition (launched in the late 90's and early 2000's) in less than a year.
And with high levels of talent comes common experience and understanding. It's nice that when I say things like "use case" and "unit test" and "test coverage" and "design pattern", people don't look at me like I'm from Mars or think I am trying to steal their souls.
As for executive management, we've got awesome coverage in every area of the business. As a software engineering manager, I can't relay to you how satisfying it is to work with industry veterans that understand technology and what it takes to produce it. It also helps tremendously that we have a focused and business-centric approach to feature prioritization instead of the typical "whoever screams loudest" approach that sets the priorities at so many other companies.
Rule #2: Do Things Right The First TimeHaving a CTO really makes a difference. In my previous life at CFI, the CIO reported in under the CFO and did not have a place at the executive table. This meant that there was little push-back to the business and more importance was placed on doing things as quickly as possible, regardless of the long-term costs. In turn, this results in high system maintenance costs and scalability challenges, and you end up with a vicious cycle.
With a CTO on board, you've got an executive who actually writes code as part of their job. There is no way they are going to let the sales and marketing teams push so hard that the company ends up chasing its tail maintaining badly implemented systems. For the engineers, this means that the development deadlines are reasonable and time is allowed for design work and brainstorming, resulting in better software.
Of course, Highwinds is still a business, and we live in the real world. When time runs short, necessary compromises are made - in a logical and strategic fashion. We take a pause every few releases to "pay our taxes" on these compromises and clean them up. And we never compromise on the things that are central to the health of the system.
Rule #3: Create An Environment People Actually Want to Work InIt's hard to describe our office digs without sounding like I'm bragging. I'll do it anyway.
We have incredibly nice office suites, with a mix of oversized workspaces and private offices. There's just the right amount of glass so that everybody can see each other without losing privacy.
There's artwork on the walls. Every office has a whiteboard, and there are well-equipped and comfortable conference rooms. When we have meetings near to lunch time, they are catered without exception. If my team decides to code through lunch or pull a late-nighter, I put it on the company tab.
Dual 22" flat panel monitors are standard equipment. Everybody who needs it gets VPN access. Hours are flexible so long as commitments are met.
There's a big break room with leather furniture, two big LCD TVs and a foosball table. The kitchen is stocked with utensils you'd find at somebody's home. The fridge is full of soda, and we've got a coffee service so good that I don't even go to Starbuck's any more after lunch.
My team has a "cave" at the back of the executive suite where we have the lights down low. When I'm slinging code, I'm sitting in an $800 Aeron chair that is extremely comfortable. We play music in our cave. We've managed to hit a vibe that encourages people to stop by and hang out at what has sometimes been dubbed "Club StrikeTracker." It's so peaceful and productive that the first two months I worked there, I'd often look up from a deep coding trance to realize that it was almost 7 PM already.
I could go on, but by now you should have the picture.
Life's Short. Do Something You Love.So here's the motivational part of the blog post. Hopefully this will inspire some of you to take the leap of faith required to get out of your rut and in to your calling.
If you're working for a corporate IT department and you feel like you are too talented to be there, you are right. If you think that mindless politics and endless bureaucracy exists everywhere, you are wrong. If your managers tell you that things are that bad at every company, remember that misery loves company and they are trying to convince themselves more than they are trying to convince you.
Great companies are out there. Many of my respected peers made the decision to leave CFI at the same time I did, and I've stayed in touch with all of them. The majority are much happier in their new jobs, and for those that aren't thrilled it's no worse than it was before. Know that if you take the time to look around and you are honest with yourself about what you want from your career, you will find something better than what you have today.
I Scored 100% On The Rands 90-Day TestWell, that's it. In closing, I'll take a run through the 8 steps outlined in
Rands's 90 day checklist.
#1: Stay lateYep, did this by accident plenty of times, and getting StrikeTracker 1.5 out before we hired Russ and Mario made this a necessity early on.
#2: Accept every lunch invitation you getYep, easy - the teams eat lunch together a lot at Highwinds.
#3: Always ask about acronymsHmm... CDN, NNTP, CPC, ST. Then there are all the components: Canner, Megamaid, Doppler, Windstorm, FlashFlood... the list is long.
#4) Say something really stupidI'd say I cover this on a daily (if not hourly) basis.
#5) Have a drinkMy interview process consisted of dinner and bars on Park Ave. in downtown Winter Park, and I'm surrounded by alcoholic engineers and salespeople.
#6) Tell someone what to doI'm in management so this comes with the territory, although I like to think that I ask.
#7) Have an argumentWith strong talent comes type-A personalities, so respectful arguments are commonplace. And while many have the confident air that comes from being a bad ass at what they do, there is a surprising lack of ego on the team.
#8) Find your inner circleThe circle is there and in flux. It's growing and shifting since the company keeps hiring.
For those of you that decide to make a jump in your careers, good luck!
MobileMe Disasters and the Importance of Early Betas
Apple's MobileMe service has been seriously sucking wind since it first launched. First it was down, then it had performance problems (which I understand are ongoing), and then they even lost emails for a bunch of their customers. David Pogue has written
an excellent history of the matter.
Personally, I would be mightily pissed off with Apple if I was one of their MobileMe customers and had to suffer through this.
That being said, you get what you get when you are on the cutting edge. It's a well-known fact that Apple's first-run of anything (be it new laptops or iPhone software revisions) tends to be bug-prone and unstable. Those who jump in first usually get burned, and I've seen (and personally experienced) both the best and worst examples of Apple's service recovery.
The problem, of course, is that Apple keeps things so close to their chest that they can't reveal what they are doing until the last minute, which potentially makes it very difficult to publicly beta any of their product offerings.
One of the reasons Google is so smart is that they keep many (all?) of their services in beta for an extended period of time, allowing them to work out the kinks long before a product goes gold. Of course, Google has a dirty river of search engine advertising money rolling in, so they hardly care about their value-add (and no doubt personal-info-mining) services.
That being said, one could argue that people are willing to pay to beta Apple's products for them, so who can blame them for taking the money and stashing it in the bank? If nothing else, it will help to pay for all the support calls and
bloggers.
VMWare Fusion 2.0 Beta 2
You know,
looking at this feature list I would have happily paid an upgrade fee, but VMWare wants to give me Fusion 2.0 for free. Who can argue with that?
Awesome stuff, guys - I can't wait for it to go gold.