Bruce Markham's Personal Soapbox
# Monday, July 05, 2010
Trying To Get A New Blog Engine Going

image

Above is a screenshot of my blog via the “Oxite” open-source blog engine. Oxite was written by Microsoft to show off ASP.NET MVC 1.0 and the Unity Dependency Injection framework.

The Oxite codebase was abandoned about 2 years ago. Woefully incomplete. But still tempting to thine eyes.

I’ve been working on converting it to ASP.NET MVC 2, .NET 4, and replacing its use of Unity with .NET 4’s baked-in Managed Extensibility Framework.

It’s been quite a chore. And most of the chore has been since I did the initial conversions. I made the mistake of not giving the software a thorough test-run before I happily decided to start converting it. The conversion took about 10 hours spread across a couple days. When I was done, I came to find that it was buggy as hell, and doesn’t even have some very basic features like user registration. (It already has some wonderful features like MetaWebLog API support, trackback support, SiteMap serving, etc.)

But despite it’s inadequacies, I still prefer its codebase over DasBlog or BlogEngine.NET. It lacks the completeness that I’ve come to expect from small little Microsoft-released OSS packages. It has a big “cut-and-run” feel to it. But it has an architecture that I’m comfortable wading into. So I’d like to get user registration into it, and play around with the “theming” a bit before I go public with it, and then I will. At a whole new web address, too.

One of my major struggles has actually been getting my current blog’s content into it. I’ve managed to pull this off with a small, 100 lines-of-code executable, to parse Blogger’s export output and then dump it into Oxite using LINQ-to-SQL. This bit was actually a lot of fun, but one more hindrance on my way to my own personal blogging soap-box.

Since the biggest change with this project has been converting it to using MEF instead of Unity, I’m tentatively calling this codebase “OxyMefadon”. Because MEF is just that awesome.


Monday, July 05, 2010 1:19:00 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0]  MEF | computers | MVC | technology | DotNet4 | microsoft | dotnet

# Friday, April 09, 2010
One Bad Apple Spoils The Bunch

I’ve been struggling the past several months. What used to be a tingle of distaste for a brand has become a torrent of madness. Where once reason and uncertainty made me bite my tongue, familiarity has now bred contempt. I speak of course, of Apple.

In the interest of full disclosure, I’ll say here and now: I’ve never owned an Apple product. (I’ve also never employed a prostitute or smoked PCP, but I can still argue against their use.)

For the longest time, I avoided Apple products because the only things in that categorization were computers - and I knew how to use my PC quite well, thank you. Fast forward a decade and a half, Apple is the biggest sensation in tech. Even the pundits that despise Apple can’t keep their mouths shut about ‘em. (Myself included.)

Apple has graced us this month with the release of the iPad. For those of you not following the situation, the iPad is basically a giant iPod Touch:

  • Boasting 9+ hours of battery life, the 1.5lb iPad is heavy enough that you won’t want to hold it for more than an hour at a time lest you change your workout regiment. (Or integrate it in.)
  • With its “9.7-inch (diagonal) LED-backlit glossy widescreen Multi-Touch display” you’ll get to use your favorite content-consuming apps at double the size, but it’s ineffective “fingerprint-resistant oleophobic coating” will make it look like a CSI crime scene and leave you needing to carry a terry cloth with you everwhere.
  • With it’s built-in speaker, microphone, bluetooth, and video codecs – you’ll be able to do all of your favorite multimedia consumption, except for video conferencing or taking pictures because it doesn’t currently have a camera.
  • Being one of the only “large” mobile multi-touch devices on the market, it features one of the largest on-screen keyboards out there – but the extended typing they claim you can easily do on it is still so unwieldy they’ve simultaneously released a keyboard attachment.
  • It also features the all-acclaimed Safari Mobile, supporting large chunks of HTML 5 and CSS 3, so it’s ready for the web of tomorrow - but without Flash support it’s useless for 90% of today’s internet.

Okay, so the hardware sucks. The browser sucks. Shouldn’t it be about the apps?

I’m a software developer, so I can appreciate “apps” - little nuggets of easy-to-maintain code and functionality that are sold individually, for cheap prices, to the masses - little nuggets of code that are small enough, I would be tempted to find a means to simultaneously develop for multiple app platforms easily, so that I can move on to the next app without hassle.

And you know what? Microsoft gets this. Google gets this. Apple hates it.

Fresh out of the pearly gates of Cupertino, the Apple iPhone OS 4 SDK license agreement says, amongst many things:

Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs
(e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

What this means, in layman’s terms, for any programmer or software shop that used to sneak apps across the Apple border by cross-compiling their Flash, Java, or C# into C/C++/Objective-C before deployment, they are simply out of luck.

My brain is simply without recourse in its search for a plausible explanation. The most I can figure is, Apple doesn’t want the slew of upcoming Windows Phone 7 apps to be translated and submitted to the Apple App store. (That is, they want developers to pick a side and stay on it.) Or they just really really really want to absolutely kill Flash. It’s no secret that Jobs hates Flash. The fact that his complaints against Adobe and Flash are retorted with the reality that Apple doesn’t have any decent high-performance APIs to code against, doesn’t seem to weaken his resolve.

Despite my nay-saying in the past, and my general bias towards the Microsoft development stack, I have been secretly enthused the last 4 or 5 weeks with the possibility of writing a .NET app that would run on Windows, Xbox, Zune, & Windows Phone 7 – and then using Mono to run it on Mac, iPhone, iPod, and iPad – all with 90% shared code – but Apple has eliminated that possibility. I am no longer tempted to take a bite out of the Apple development community.

This one’s got a worm in it.


Friday, April 09, 2010 3:44:00 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0]  winpho | computers | wp7 | iPad | iPhone | html5 | iPod | pure-rant | windows | xbox | apple | winmo | zune | silverlight | technology | xna | flash | microsoft | current events | dotnet

# Thursday, February 18, 2010
And Bananas

A friend of mine just today posted an epic (4,500 words!) blog post he has been working on for well over a week – which basically boils down to why “Apple is awesome and the iPad is the future”. This has inspired me to pen my own views.

Frankly, there are several debates here:

  • Form vs. Function
  • aka Functionality vs. “Just Works”
  • Flash vs. Html 5
  • aka “Future Shock” vs.. All Of The Above
  • (maybe others, but the above seem most currently relevant)

Form vs. Function…

Apple has always been about form. Microsoft has always been function. The dichotomy is evident from the first steps taken by each: Jobs deliriously struggled to make the perfectly pretty computer that wouldn’t intimidate the home user, Gates created connived a programming environment that would bring developers to the same level playing field.

This dichotomy continues today. Apple makes these bubblegum-perfect consumer devices – all made by one company, designed to span out and touch everyone. Microsoft focuses its expertise on an OS and programming platform that entices developers like never before.

Windows has never been really pretty – (not until Vista/7, anyway) – and I have no qualms with that. I don’t need pretty, and I don’t think even Mac users seriously stick to that as legitimate point in their favor.

Consider the following code check-in statistics from Ohloh:

image

Keep in mind that Ohloh tracks code statistics solely for open-source projects. Also keep in mind that C# is primarily a Windows programming language, and Objective-C is primarily a Mac programming language. I hear all the time of C#/VB/C/C++ people writing code for Mac/Linux – because it is possible – but I’ve never heard of someone using Objective-C to write a Windows or Linux application. So I’m assuming that taking a language-preference pulse of the open-source community is a reasonable measurement of the health of said code ecosystems as a whole…

…and it looks like Mac is sadly lacking. Objective-C tumbled around the time Microsoft released .NET 2.0, and Objective-C has managed to stay down throughout the entire stint of iPod/Phone/Pad popularity.

Application innovation always comes from application developers – and frankly, .NET developers have more to innovate with than Objective-C developers. When you combine this with Microsoft’s push to make “form” more important (look at Windows 7 and Windows Phone 7 Series, for Christ's sake) – this isn’t a point so easy for Mac fans to argue anymore. Moving forward…

…Functionality vs. “Just Works”

This has been the biggest ongoing point for Apple and fans. I hear things like:

  • I plug in “X” and it just works
  • I don’t need to see my file system
  • My <insert technophobe relative> can use it

Followed by, (from geeks/nerds):

  • but I have a PC for “Y”

Why? Mayhaps that Apple’s dominance over their own platform has painted them into a corner where they can literally control everything. Is it a bad thing? No. It ensures quality. But choice suffers.

I can buy my applications, hardware, and music from anywhere – for my PC - and I’ll know it can work. Heck, I can buy Mac hardware and make it work. The operative benefit – choice. I don’t want to use a cookie-cutter computer, because I want my computer to fit *me*. I never pay extra for fancy looking chasses, I don’t buy fancy graphics cards for work, and I don’t have a finger-print scanner on my gaming computer at home. And you know what? Both computers cost the same, each only 2/3s of what it would cost to get the same thing on the Apple route, and both with amazing performance for what they are supposed to do.

And I’ve never, ever, had a Windows crash that didn’t come from me trying something nerdy and predictably dangerous with my system configuration.

If you don’t want choice, then buy a Dell. Heck, buy a Mac. But you will always reach that point where “Well, I wish I could…” or “Why did I pay…”. Sure, I know not every computer user can be a nerd – Apple rightfully seeks to change that - but then, seriously, if you aren’t at least a little bit of a computer nerd, why are you reading this?

Flash vs. Html 5

I would like to segway into the root cause of this post. The iPad is coming. You’ll never look at Playtex the same again. (Har har!) And I’ll admit, we’ll probably never look at tablets the same way again…

There, I said it. But I’ll finish the sentence with “…but the iPad is not the future of tablets. Or the web.”

Why? Flash runs everywhere! Except for the iPad/Phone/Pod OS. Despite the fact that the iPad will be popular, and sell like hotcakes, to all those people that could finally figure out an iPod Touch and never their PC, 90% of the web is currently inaccessible to this demographic. And I don’t think Flash (or technologies like it), are going to die out anytime soon.

People say that HTML 5 is an open standard, and that Mobile Safari will give it a leg up. Poppycock! Even at Apple’s wonderful growth rate, they still probably have another 15 years (if that is even enough) to catch up with the kind of market share they need to make Flash and its brethren hurt.

Why? In the meantime, Microsoft is leveraging their platforms – the ones that developers love so much – on more and more platforms all the time. Windows Phone 7 is undoubtedly going to have its “native” apps be Silverlight – which means they will run anywhere, out of the box, without recompile. (Anywhere = Windows, Mac, Linux). Windows Phone 7 games… (well, you know, the ones tied into Xbox Live, the largest online game network?) …written in XNA. Which runs on Windows, Xbox, and Zune.

Both Silverlight and XNA are merely buzzwords for subcomponents of the .NET initiative. English? A C# programmer like me can write an app that runs on any of the above platforms, with minimal design overhead in consideration of portability. That means my app choices for these platforms will be more numerous, as well as cheaper.

HTML 5 will raise the bar on what comes built-in to a browser. There is no doubt on that. But baked-in will never be enough. There will always be a 3D app, an involved game, or sensitive business logic, that will need a runtime to run in. And the runtime will always run faster than JavaScript. Be that runtime Silverlight, Flash, or Java applet.

“Future Shock”

I’ve heard this one batted around the interwebs. It seems to be Custer’s Last Stand in the Mac world. “But, but, Mac is innovative!”

Yes they are. The innovation has brought droves of “normal” people to computing electronics, without even realizing what they are doing. But the people doing actual computing, are the ones in that playground just over the rainbow. The one where anyone can write software without corporate approval. The one where anyone can choose their hardware without it coming with a ridiculous price tag. The one where the real innovation is not in the basics, but in the ground of “what’s next?”, not re-hashing for the dumber demographics what was 8 years ago.

I love that Apple is innovating. I love that the attention of detail they have paid brings a sense of panic to their competition. Apple is definitely competition.

But when I ask “what’s next?” – I sit down on my PC and start typing. I don’t wait for Apple to spoon-feed me something my computer can already do.


Thursday, February 18, 2010 12:07:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  javascript | computers | iPad | iPhone | html5 | iPod | pure-rant | windows | xbox | apple | response-to-friend | winmo | zune | technology | silverlight | xna | flash | microsoft | dotnet

# Sunday, December 16, 2007
Why I Haven't Blogged For A While
Believe it or not, (as I bite the hand that feeds me), Blogger sucks!

Microsoft released Word 2007, well, earlier this year. And around the same time, Google finished integrating Blogger into its authentication system. What do they have to do with each other, you may ask?

Well, Microsoft was kind enough to put in blogging functionality in Word 2007. Create new posts, publish old ones. It works with a handful of providers - WordPress, Windows Live Spaces, and Blogger included. Well, its supposed to work. But it doesn't.

You can put in your Blogger information, it will list all of your blogs, and for any you select, it will list your blog posts (if you want to edit an old one). But it fails if you try to actually open one of these blog entries. And it fails if you try to post a new blog entry.

Why do I blame this on Blogger?

Well, from what I understand, Blogger used a well-published standard for its API, making it easy for blog tools to work against. When people complained in early 2007 that Word 2007 didn't work with Blogger (around the time that Blogger became fully integrated with Google authentication), Blogger responded with a "we're working on it", and later with a "it's fixed". (As a side note, Word 2007 worked *perfectly* with Blogger, supposedly, when Word 2007 was still in Beta.)

In the time that has passed since, I acquired Word 2007. And discovered that it doesn't work with Blogger. (No, it's not my computer, read on...) And Blogger's only support option, other than a plethora of How-Tos, is the Blogger Help Group. Being a Google Group, it is a forum-style discussion system. Old posts get pushed out of the way for new posts. Hundreds of posts are made per day. (And a kicker, it seems that older posts cannot be replied to or edited, making them effectively dead.)

I've posted a couple times now, complaining about my problem, with no response. I've scoured it looking for other people with the same problem, and found a few that have, but the responses they got (from people that aren't affiliated with Google or Blogger), were all basically to the effect "Well, you shouldn't be trying to use Word then, stupid." With no follow-up, ever, from Google/Blogger personnel.

There is no e-mail address for customer support. No handy-dandy web form to file in a request for help. Just a Google Group, hoping you'll get answered, or at least noticed, by someone important. And so far I haven't been.

There is no accountability. No quality control. And thats what you get for using a free service.

So I'll post here, while my patience can bare it. But I'm considering moving my computer programming blog to WordPress. (Which sucks for Google, because thats the blog of mine that actually gets traffic.)
Sunday, December 16, 2007 2:40:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  blogger | technology | microsoft