Checkout Douglas Crockford's recent video sessions Theory of the DOM (part 1, 2, 3) and Advanced JavaScript (part 1, 2, 3). Although I've participated in DOM standardization (insert groan here) and done my share of JavaScript hacking (another groan here), I thoroughly enjoyed both of his presentations.
Month: November 2006
Apollo, WPF, and Shakespeare: Oy
I've just spent some time looking over Apollo. In essence, Apollo is what you get after Flash plugin swallows the web browser inside out then spit out what it couldn't digest, basically all plugins not directly supported by Adobe. What they did is take Flex2/Flash9 code base and mixed it with WebKit HTML browser code (used by Apple's Safari browser), replacing rendering pipeline with Flash9 display list pipeline and erasing the seams between JavaScript and ActionScript, making never-seen-before (unfortunately 2D still) HTML rendering flexibility and performance boost as well as making incestuous containment hierarchy possible.
From purely technical point of view, I am thoroughly impressed with Apollo. From paranoid security point of view, I think Apollo will be seen as a browser by users despite what Adobe does and the thin wall of installation dialog that separates adobe-app: and http: will fail to solidify in users' mind. From business perspective, I think it's lack of support for popular non-Adobe content types (QuickTime, WMV, etc.) through plugins will impede Apollo's popularity. I am also concerned about native code integration support because it would be rather tedious to write full applications in JavaScript, particularly since JavaScript lacks expansive collection of third-party libraries like Java, Python, and Perl does. .NET is weak in this area as well but not as badly.
It's kind a funny that Apollo and WPF are in a similar situation with third-party content type support. Apollo will handle HTML, PDF, and Flash well in 2D while lacking 3D and WMP support. WPF will handle 3D and WMP supported movies nimbly but fails to support HTML, PDF, and Flash seamlessly. Both treats makes QuickTime like some poor cousin despite the fact that Apple will keep it a rather noticeable sore thumb for years to come. Gosh. I think even Shakespeare would have had a hard time contriving a more tragic narcissistic love triangle (?!?). Oy. What a tragedy.
.NET Video Tips
Just a few useful .NET tips:
- To render preview image of Flash movies, cast result of AxHost.GetOcx() to IViewObject then invoke its Draw method. This works even if Flash control AxHost is not visible or clipped. You can use the same trick to make webpage thumbnails but it'll work reliably only if you do so from within a timer event callback.
- For QuickTime movies, above trick doesn't work so you'll have to scrap the bits off screen via GetWindowDC, BitBlt. Works only if QuickTime control AxHost is fully visible.
- For WMP-supported movie formats, you can use DirectShow's Media Detector object (samples) or, if you are using WPF, build a MediaPlayer with a MediaTimeline pointing to target movie then pass into DrawingContext.DrawVideo to grab preview images.
- If you only need thumbnails of WMP-supported movies and don't care what size, you can use Shell's thumbnail extraction extensions (IExtractImage2). Don't ask me for the code because this option was not attractive enough for me to dig.
There are two hardcore alternative solutions if you don't mind keeping your hands in the sewer pipe for the whole duration of your product's lifecycle.
First solution is to patch key API calls to intercept bits in transit. Yes, this can get ugly, particularly through .NET InterOp layer, but then be thankful that you only have to patch in-process and in memory only (i.e. inject jumpers into loaded DLL image import table). But then, thanks to DRM arms race, you'll find yourself deeper and deeper into the pit over time. Isn't that nice?
Second solution is to decode and render movies yourself since physical bits are not protected. There are plenty of open source video codecs out there to get the job done so the real problems are legal and maintenance issues.
TechCrunch CounterPunch
Poor Mikey had enough and gives back some in TechCrunch Bashing Heats Up.
Oh my. I don't know what all the fuss is about. What is wrong with being biased? Isn't that just another word for being opinionated? And what's wrong with making money and investing? Credibility? People read TechCrunch to find out what's new in Web 2.0 space, not Mike's opinions. But then I also think nothing is wrong with people whining and wailing when they don't like something. That's just human nature.
Anyway, I think competitors of mentioned companies can be satisfied partially with a link at the end of each post, one titled "Competitors" or "Also See" that leads to a separate moderated page to which competitors can mention themselves or post opposing comments. This is a great way to get competitors bickering with each other which could be as enjoyable to watch as cat fights. This could be a lot of fun!
Come on Mikey. Just try it!
MBP C2D
I spent some of the gains from YHOO on a MBP C2D. I ordered the 2.16GHz one with 2G memory and 160G drive. Too bad I couldn't just pick one up at my local (Palo Alto) Apple store. I'll get Apple Care through Amazon since they are cheaper. I didn't order MBP from Amazon because they are not offering rebate which means only reward for waiting (probably past X-mas) is no sales tax. Meh.
Essentially, I am betting that this major rev of MBP will reduce my chance of getting stuck with a lemon. C2D is also theoretically ready to take advantage of Leopard and Vista's 64-bit goodness. I prefer the look of MB but I'll have to wait again for C2D rev and it's pretty much as heavy as a MBP.
Anyway, these are all the devil had to offer from his inventory of excuses.
YHOO, Video, and IPO
I've been tinkering with video for a week now. Even with just the popular vlog video format, creating a seamless video experience is tough, like trying to cleanup after a party with only one garbage bag. I've uncovered a bag full of tricks to make things work but that was still not enough. So I am gonna step back and try another way up the slippery slope.
Sold YHOO because both the stock and the market was getting tired. Possible double-top formations across the board with potential recession awaiting is pretty scary stuff. Besides, 12% gain in 2 weeks is so not bad. ;-p
Congrats to Chuck for IPO filing. It's not easy to retain 40% control of a startup but he somehow managed to do that while turning the ship around impressively. I hope the murky stock market outlook doesn't rain on his party.