Archive for the ‘Computing’ Category

Computing

Thursday, April 24th, 2008

So I’ve been thinking, which is never really a good thing, because it tends to result in novel-length blog posts for you to have to wade through…

Anyway, I’ve been pondering an upgrade to my PowerMac G5 for some time now.  Now, while I could easily shove a couple more gigs of RAM into the G5 and get at least another year out of it, I feel like the more effective upgrade would be to box the old girl and trade it in for some new hotness, given the increasing atmosphere of Intel-targeted development in the Mac community (and the no doubt impending EOL-ing of OS X’s support for the PowerPC line).  Most of the productivity software devs are still releasing UniBi apps, but the gaming scene is definitely moving to Intel on the quick-fast.  So, trade-ins it is then.

Initially, I was drooling over the new Mac Pros and their utterly absurd base specs.  I even priced one out versus an Alienware box, and with the exact same specs, the Mac Pro came out cheaper.  However, I think it can easily be argued that a Mac Pro has more power behind it than I’ll likely ever need, and the upgradability isn’t really a huge deal for me, because frankly, I’ve never upgraded the G5 beyond cramming an extra 512 megs of RAM into the thing the day I bought it almost 3 years ago (cruising on a gig of RAM is cool, but quickly becoming inadequate).  The deciding factor against just going out and throwing my G5 up on eBay, Craigslist, or the local Mac reseller’s trade-in program for a new Mac Pro has been price.  Even discounting the percentage cut that the reseller would take for handling the transaction and finding a buyer for me, I’d still only be walking away with $1700 or $1800 by using Craigslist or eBay, which is considerably short of a new Mac Pro at $2299.  If I took it to the reseller, I’d see even less of that.

Recently, I’ve started looking at getting an iMac instead.  I don’t really deal with the sort of projects that require a behemoth of a machine like the Mac Pro… mostly I deal with Pages, iPhoto, and some light design / touch-up work in Photoshop.  Plus, it gives me the opportunity to sell my 23″ Cinema Display along with the G5 for some bonus cash to put towards the new system.  Seeing as how they still sell them new for $900 (refurbs are $500), I imagine I could get at least $300 out of selling it on top of the asking price for the G5.  The only consideration for me at this point is one of desktop worthiness, since the desk I have may not be ideally suited for an all-in-one machine (such are the perils of buying furniture that fits your needs at the time, I know…).  I really don’t see many downsides to getting an iMac over a Mac Pro though… it’s a simple matter of fact and technology that anything I buy is going to be leagues better than the G5, even if it is a dual 2.3 GHz machine.  Plus, a 24″ iMac recoups the loss of my Cinema Display plus some, and still obviously bests the crappy-ass Dell boxes we bought last year.  Finally, as I said, I just don’t need 4-8 cores worth of Xeon muscle for what I do with my computer.

Running on the assumption that I could sell the G5 for $1799 (which, if I go through the reseller, nets me $1199 back), and also running on the assumption that I could sell the Cinema Display for $300 (which gets me $210 back through the reseller), I could pick up a refurbished current-gen 24″ dual-core iMac for about $100 out of pocket (plus tax).  If I sold everything myself, I could get a new dual-core iMac and actually make money on the deal, or even get a refurbed quad-core machine and still come out about $40 ahead.  The challenge would be making sure I had everything on the G5 backed up to either the external hard drive or the Dell doubling as a crappy-ass media center / crappy-ass gaming console before wiping the drive and re-installing Leopard (which, incidentally, I might be able to charge a little more for, though I’ll be sad to lose the cool little box it came in).  Pretty much everything I’d need to take with me lives in my user folder, though, so that shouldn’t be a terribly huge issue.

I’m contemplating heading down to the reseller tonight and having a conversation with them about anything special they can do for me that might sweeten the deal with them handling the transaction for me.  There’s also the rumor that there’s new iMac spec bumps due next week, so I may even be able to get in on the ground floor of a brand new Mac for a bit cheaper by buying a show unit if that ends up being the case.  I’m inclined to go through them in any case, since it feels a bit safer than selling the thing through Craigslist (which I infinitely prefer over eBay, especially since we recently threw out the monstrous box the G5 came in), even if they do take a fairly steep 30% comission fee.

The final advantage to having an Intel Mac, of course, is the ability to run Windows on it, which would be great with VMWare or Parallels so that I don’t have to bounce between machines or try using RDC to do 3D modeling work for games and sundry the way I do now (which honestly hinders productivity).  Since I’ve already got a copy of XP Pro that’s no longer in use after giving Oscy’s old PC to her dad (at least, I think we kept the disc…), I don’t even have to worry about spending money on a Windows lisence, I can just get VMWare or Parallels and rock out.

Fire Foxy

Thursday, April 24th, 2008

Well, tonight I did something rather unexpected.  After finishing up what I hope is the final draft for The Archiver’s 12th issue (coming soon to a virtual news stand near you!), I decided to delve into making Firefox my default browser.  Anyone following this blog knows how much I’ve hated on Firefox’s appearance in OS X in the past, and I’ve actually made several unpublished attempts at ranting about the almost-but-not-quite-there default theme in Firefox 3, so this is quite a change of heart.

There were several things that ultimately pushed me over the edge.  First was Firefox 3’s support for Aqua controls.  Second, the absolutely stunning GrApple theme by Aronnax, which fits in with OS X so much better than the default Firefox theme does (though I must say that OS X is the only OS that really makes the new Keyhole back/forward control look good).  Third, Delicious finally put out a beta of their new extension for Firefox 3, which was the single most important functionality requirement I had for switching to Firefox 3 full-time.

I had to do a little bit of tweaking to get the Delicious extension to look the way I wanted… the only thing that really bugged me was how ugly the default tag icons looked against the dark gray of OS X’s windows.  In the end, I probably spent 45 minutes pouring through Firefox’s innards looking for the extension and the icons it uses.  Since the icons ended up being inside the .jar file bundled with the extension, I had to get creative and figure out how to tweak the user chrome (not to mention dig through tons of CSS in the Delicious .jar to find the right class) to make the changes I wanted.  Not being in the mood to build a new tag icon from scratch, I went the simplicity route and just removed the tag icon completely, then halving the size of the space it took up to provide more bookmark bar-like spacing between the dropdown lists (I use Favorite Tag view).  I also bolded the text to make it a bit more like the bookmark bar.  If I feel up to it tomorrow, I might go crazy and dig up the actual style for the bookmark bar items to use in the user chrome for the Delicious toolbar.

I’m going to run Firefox 3 as my default browser on the Mac as an experiment for a week or so, and see if the system is more responsive after leaving the browser up under load for several days than it typically is under Safari. A lot of my problems with memory usage would probably be aleviated by just cramming more RAM into this thing, but I’m trying to be cheap right now.

On Storytelling and Content Shaping

Thursday, April 17th, 2008

This is probably the eighth time I’ve re-written this entry, so hopefully it hasn’t gotten too long in the tooth through the numerous re-writes. I’ve been trying to work out an effective format for addressing the three remaining lessons I’ve learned from MOUL’s year-long run, and doing so without turning out a novel-length post is a considerable challenge. These three lessons all center around involving players in the game without forcing them to become addicted to it, and cover story, repeatable content, and content formatting. So let’s dive in (again, and for the first time).

As I mentioned in a recent post on the MOUL forums, Cyan has faced an uphill battle against time, money, and manpower constraints when developing Uru since UbiSoft decided to muck up the game’s formula 8 months before release, and these battles were only further exacerbated by the brief timeframe that GameTap gave a somewhat understaffed Cyan for re-launching the title into public beta at the end of 2006. These constraints have resulted in additional changes to Uru’s original game plan (episodes, live-only story) which, while more subtle than UbiSoft’s single-player campaign mandate, had a similar impact on Uru’s ability to succeed at its own game. I firmly believe that Uru is a concept that can succeed, both artistically and commercially, but all of the pieces to Uru’s development puzzle have to be in place for it to work well at all. You can call me a blind optimist if you like, but I still don’t think Uru as it should be has been given a chance to work… so far we’ve only managed to prove that “Uru Live Lite” isn’t a good business proposal. Twice.

That said, Cyan’s more limited resources require some smart game design decisions that would probably take the game to places other than it was originally intended to go. Still, when given the option of an under-executed original vision and a well-executed alternative, I’d have to go with the alternative option. Here are a few ways that I think Cyan could create a successful “alternative” Uru; one that has all of the pieces in place, but executes them smartly on a tiny budget.

Content is obviously a huge issue for Uru. It is, after all, a content-driven MMO rather than a grind-driven or competition-driven MMO. However, Cyan simply cannot provide Uru with enough content to keep the rabid puzzle-solvers sated, especially with their limited staff. As a result, focusing on single-use Ages with solve-once puzzles is not the most optimal use of resources, because for most players, once they’re done solving those puzzles, there’s little motivation to return to those Ages again, and then they quickly get bored and leave. An alternative Uru needs to focus more on repeatable gameplay and smart re-use of existing content to keep players interested and keep production costs at a minimum.

Repeatable gameplay would most easily come in the form of in-game mini-games. There are already several examples of this sort of content in both Prologue and MOUL, but they seem more like ways to test the water than really well-developed concepts for getting players to kill time in-game.

Small table-top games like Ahyoheek are nice distractions, and with functional leader boards could even fuel more regular play (especially with a game-wide board for players to vie for spots on), but it’s not something that will hold attention for hours on end, and most players will get tired of the D’ni version of Rock, Paper, Scissors before too long anyway. Still, it’s a nice start, and something to fall back on when you’re out of other things to do.

More exploration-based games like the user-created Marker Missions fill another niche, but can only be played solo (which is good for the loner types but not as useful for making actual games). The original Ubi beta for Uru in 2003 had 2 additional game types: Capture and Hold, which were played with teams in a single Age, and had a set time limit. In Capture, you ran around collecting markers for your team, and everybody playing could see all of the game’s uncollected markers. In Hold, the markers you collected didn’t disappear, meaning the other team could steal markers away from you. In both games, whichever team had the most markers at the end of the timer was the winner. They were fun and fast-paced games, and I still don’t quite understand why the time wasn’t devoted to making them work in the final release; they disappeared shortly after Ages Beyond Myst’s announcement at E3 2003, never to be seen again.

Finally, we segue cleanly into strictly competitive mini-games. Typically quick and constrained to a game surface like a wall, a life-sized game board, or a track, these games wouldn’t appeal to everyone in Uru’s crowd, but would hopefully provide something to entice new players into the fold, as well as give those interested something more exciting to do with their time in-game when not out puzzle solving. These games are also typically great for spectating, but Uru has traditionally made getting to these games tedious at the best of times, and downright frustrating at worst, which I think has soured their appeal for most people. Beyond making them easier to get players and observers into, areas like Jalak and Gahreesen’s Wall need to provide places for spectators to gather, a solid way to determine scoring and victory, and ideally a set of leader boards in a public place to showcase your accomplishments and give you something to work toward, if you enjoy that sort of thing. The Wall has more of these requirements than Jalak, but I think that if both were tweaked to include this complete feature set, they would both be fairly popular hang-outs for the more energetic segments of the Uru community. Releasing planned content like the Kahlo creature races would only add to the number of possible things to do in the game during story down-time.

Beyond mini-games, though, content has to be recyclable for story and general gameplay purposes too. For instance, consider Er’cana - quite possibly the only real forray into repeatable gameplay that Cyan has made. Er’cana’s puzzles are almost all complete throw-aways that have nothing to do with actually operating the machinery in the Age. It’s a big set of “get around this broken pathway” puzzles with power switches at convenient intervals. The only really sustainable puzzle is figuring out a good pellet recipe, and that was generally short-cutted around through the communal efforts in the forums. After that, the Age became largely useless, and the machinery didn’t seem to have anything to do with the actual pellet-making process, which was a curious shift from Cyan’s typical attention to such details. I think that the concept of Er’cana can be seriously expounded upon by at the very least factoring in machine operation and supply management in basic forms. My ideal super-complicated implementation would call for a ‘hood-instanced mega-Age with weather patterns to learn and track over months or even years, and dynamic vegetation growth and harvesting that responded to changes in the weather (i.e. a long drought would cause plants to wither and the ground to become cracked mud). Creating and testing such a system would obviously require considerably more resources up-front than the far simpler infinite supply system and basic puzzle mechanics of Er’cana, but I think the Age would last a LOT longer as a result, and complex puzzles like tracking weather patterns seems like something right up the alley of some of the more obsessive Uru fans. As a launch Age, it would give players something to spend at least a few months pouring over obsessively, without putting a multi-month delay on other content drops while the beast went through development and testing.

As a final point on content, adding new material to existing Ages was another promise of the original Uru which never came to pass in MOUL, a fact I find most unfortunate. I think that part of this was related to the 4-year-old setpieces that Cyan had built versus the new direction in which they were moving the story. To that end, I think there is a need for a set of content that can be repurposed for pretty much anything, and I think that the Path to the surface could provide the perfect opportunity for such a set piece. It’s largely modular, and could be broken into discreet sections by strategic cave-ins; it runs through any conceivable section of the D’ni Empire you need it to; when tied into the GZ coordinate system, you can drop all kinds of subtle clues to players leading them to new content in already-explored areas; KI access restrictions could be integrated into the doors to keep players out until they’d completed any pre-requisite story arcs… the list of potential uses goes on and on. Especially for smaller story-related material, these sorts of simple expansions to existing areas could have a huge impact on the depth of the game world and provide a cheaper alternative to building new Ages from scratch every time you needed a new story element unveiled.

This leads us inevitably to the story. I think Uru suffered from the same fate that befell the new Star Wars trilogy: a good story poorly executed. However, while we only have Lucas’s inability to write his way out of a paper bag to blame for Episodes 1-3, Uru’s story failings have a myriad of causes that stem from a lack of time, money, and manpower.

Since I’m already adopting the viewpoint that a new Uru needs to be a complete reboot in terms of development anyway, with a lot of time being devoted to building large sustainable content chunks before release, I figure I might as well go whole-hog here. Uru’s storytelling technique is unique in the MMO genre because it abandons the notion of player-controlled, player-instanced story for that of a global tale being told in real time, concurrent with the progression of time outside the game. In Prologue, this was handled through regular, live, in-game events that moved the DRC plot along, with a parallel solo story arc involving Yeesha and the Bahro that could be explored at your leisure. MOUL abandoned this solo story arc concept for new development, focusing instead on the much cheaper-to-produce live events as the exclusive manner in which story was unveiled in the game. Unfortunately, this method didn’t work very well, and players more often than not became frustrated with their inability to watch the game’s story unfold first-hand, and instead resigned themselves to learning about the story through out-of-game means like the forums.

Hopefully, I don’t have to tell you that having players leave the game to learn about the story because it’s easier than trying to wring it out of the game itself is a bad thingâ„¢. Eventually, even the simpler methods of maintaining a permanent storytelling record in MOUL, like Sharper’s journal, stopped being updated entirely. Regardless of the fact that Sharper, as a fellow denizen of the Uru universe, probably stopped updating his journal once he found out it wasn’t exactly private anymore, some way to keep that information flowing was necessary, and it wasn’t maintained. Removing it cut off the only remaining source for catching up on events in-game without trying to find someone else who knew what was going on, and that was bad for the story’s delivery.

Beyond that, realtime events ended up cheapening some of the story, in my opinion, by turning them into second-hand recountings of really exciting stuff which, like vacation photos, are really only cool to the people who went with you. Story arc points like the unveiling of the Bahro civil war could have been handled much better, I think, through a player-controlled reveal much like the original Yeesha journey’s reveal of the Bahro’s very existence, rather than Sharper recounting That Time He Almost Died in Negilahn and That Time He Shot a Bahro in Noloben.

Not everything is suited to a real-time event in Uru, but not everything can be placed in the hands of player progress either. Wheely’s death and Watson’s return, for example, had to happen once and only once, as there was only one Wheely and only one Watson for these things to happen to. If someone joined in November and was able to witness Wheely’s death first-hand as if it was happening for the first time, it would certainly be more informative for that player, but it would also violate Uru’s premise that all of this is actually happening in the real world. Some things can even be a combination of real-time and player-time events (I like that term, I think I’ll keep it). For example, many many players were angry that they didn’t get to see Yeesha’s speech in the season finale, and so missed their only opportunity to see her again in person. As an alternative, let me propose the following: upon completing the Path of the Shell Ages, you arrive in a private instance of K’veer so as not to be disturbed. Yeesha appears before you in a triggered sequence that plays once for all players upon reaching this point. Yeesha reveals the salient points of her speech, but leaves out the “kthxbye” part. This gets used in her real-time appearance and speech in Exodus, which obviously only happens once. After her departure, the Yeesha in K’veer becomes a hologram for anyone else completing the Path of the Shell Ages, and an additional line or two detailing her departure could even be added for consistency and explanation. This way, everybody gets to see Yeesha regardless of when they complete PotS, and the real-time event where she departs to draw the Bahro away is preserved as an event for the history books. Provided MOUL’s sole animator hadn’t spent the entire development period animating all of those Bahro around Kerath’s Arch, Yeesha’s 2-minute speech could probably have been cranked out in a couple of days, plus maybe a little overtime (or minus a couple of dogfighting Bahro).

On one final note, I have thus far been very intentionally not mentioning user-created content beyond Marker and Jalak games because that’s a whole ‘nother bail of barbed wire that I’d rather be saving for another post that isn’t already several pages long :P.

Hair-brained Ideas

Wednesday, April 16th, 2008

Sometimes I want to smack myself senseless.  Obviously, this requires a little bit of setup to adequately explain where I’m coming from, so I’ll try to start far enough back that it’s enlightening without being boring or otherwise unnecessarily detailed…

Oscy and I have, for some time now, been involved with a neighbor in our apartment complex who has, to put it lightly, been going through some really serious relationship-related issues.  On the side, she’s a complete technophobe who also happens to have a bizzare tendency to want to have all manner of technology in her apartment, then freaks out about it a few days later because she’s either unknowingly broken it, forgotten what it was there for, doesn’t actually know how to use it, or thinks that someone might be hacking into it (this includes being suspicious of the little circuit boards in her smoke detector, fearing that her apartment may be bugged).  Stay with me here, because I’m slowly getting to the point…

One of the less intelligent things I did for this woman was give her my extremely outdated Dell laptop in an attempt to assuage her fears about her computer being hijacked and get her to a functional state of computing again, both tech-wise and peace-of-mind-wise.  In the course of the month and a half or so that she had the laptop, I ended up re-installing XP three different times (once for the initial wipe before I gave her the system, and twice more after that because either she or someone in her family who promised to “fix” this perfectly operational system for her completely trashed it instead).  Finally, she ended up just giving the laptop back to me a couple of weeks ago (a blessing in more than one way, as I’d been missing the nicety of having a lappy around, and it meant I would no longer be dragged over to her apartment at 11 PM to “fix” something that wasn’t broken and listen to another hour or two of sob stories).  She then tried to get it back a couple of days later, only to then change her mind once more a few days after that, but that’s neither here nor there (just annoying).

Anyway, throughout this whole mess, she’s ended up becoming friends of sorts with the complex’s maintenance guy, whom she also had try to “fix” the not-broken laptop (which resulted in me having to re-align the pins for the power plug after both of them failed to realize they were forcing the jack in the wrong way… bloddy idiots).  At some point she mentioned me and my incalculable technological prowess to him, and about a week ago, he came by asking if I could take a look at his computer, because he was having problems with pop-ups and couldn’t get some of his games to run.  The end goal of this post is now in sight… stay on target!
I agreed to look at his computer after he promised to pay me for my time (something my neighbor has never done), and spent last Saturday evening merrily removing over 200 virus- or malware-infected files from his computer, deleting all of the crapware that came with it, and setting up a functional AV/Anti-spamware suite (in other words, Not Norton)… which was actually pre-installed, never activated, and probably damaged by a bit of malware because it wouldn’t run properly despite launching at boot-up).  All told, I ended up charging him $70 for the time spent, which is still easily half of what he would have been gouged for at Geek Squad.

It then occurred to me that I lived in an apartment complex that was probably full of lamers as hopelessly lost as these two people, and that there was probably a fair amount of money to be had fixing their problems for them at half the price of what Geek Squad would charge (still a fair amount of money by any estimation) without the hassle of lugging their computer off to a retail store and dealing with Best Buy’s interminably long wait times and generally clueless staff.  This led to the ad-hoc creation of the Computer Defense Force, an “on-site” computer service & repair operation for apartment tennants.  Now, I’ve prided myself on not having to deal with endless system maintenance since I bought my G5 three years ago (doesn’t seem that long, but maybe thats a good thing, hehe), so Oscy was understandably baffled by this decision to start servicing computers in my “copious” spare time outside of work.  There’s actually two reasons why I decided to get into this again after 3 years of just dealing with Oscy’s computer and the occasional service call from my clueless family members: 1) more money is always a good thing, and 2) it actually makes me kind of happy doing this to computers that aren’t mine.  I have to be a bit more careful with other people’s systems, obviously, but I’m helping people get their computers working again, and oddly enough, it’s good stress relief watching a virus scan or disk defrag run.  And did I mention I’d get paid for this?

Now we’re on the home stretch… I realized last night that my quaint little Pages document of a sales invoice was pretty cool and all, but that I’d need a real way to track expenses and payments, as well as services offered, services rendered, the costs for those services, and to whom I provided them (as well as who still owed me cash moneys).  The problem is that most of the apps that handle invoicing and billing on the Mac are built for web designers and other freelance-type people who have big projects for small number of specific clients.  Now, if there’s one down-side to what the Mac has done for me, it’s made me less inclined to try and shoehorn the way I want to do things into the way an application wants me to do things.  My growing tendencies toward programming my way out of a hole I’ve found myself in have done absolutely nothing to help this situation.  So, at a loss for an app that does exactly what I want (a surprising rarity on a platform that supposedly has far less software than Windows does), I decided on a whim to start up XCode and start dinking around in the hopes that I might be able to figure out how to build my own program.  For those of you who have been waiting for this moment, this is the part where I commence smacking myself senseless.

OS X apps are written in Objective-C, which is a related language in some ways (but obviously not others) to C, C++, and any of the other not-C# variants of C floating around these days.  I have nothing but bad experiences from my C++ computer programming classes, learning how to create MPG calculators that ran in the Command Prompt, which has made me extremely hesitant to try learning a C-variant language that has absolutely no practical use where I work.  My forray into XCode last night wasn’t exactly nightmarish, but I was just blindly following the instructions given to me by the Hello World tutorial, so I didn’t get much of anything out of it beyond learning that XCode/Interface Builder’s way of building apps and linking them to UIs is very different from Visual Studio’s (in some ways better, in other ways a lot more tedious).  I still know next to nothing about Objective-C, and I’m betting that by the time I’ve learned enough about the language to build my shiny little application with CoreData usage and iCal &Address Book integration, I could probably just make money by selling that instead of the services I’d be managing with it.

Plus I still want to make video games…

And I need to actually get Issue 12 of the Archiver done for TCT, which I was asked to help with 5 days ago…

And I’m still interested in trying my hand at C# desktop programming, just so I can have a potentially useful new skill at work if the need arises…

And I’m helping to plan Mysterium…

Which, speaking of, means I need to get the Room Share system finalized tonight and handed off to TW and Odo for assistance in developing…

See why I want to smack myself?  I mean, Learning New Skills for Fun and Profit is cool and all, but I’m still working on that “and Profit” part… I have a ton of ideas for things to do, and no time to finish any of them as a result.  And all the while I keep coming up with more new things to try and do.  It’s somewhat maddening…

Getting Things Done

Monday, March 17th, 2008

I can’t say I’m an avid (or even staunch) supporter of the “Get Things Done” mantra that’s sweeping the corporate world and to some degree personal life across the country.  However, I do recognize the value in making lists of things to do that are small enough to keep you motivated but detailed enough to keep you organized.  Given that my entire job consists of a never-ending stream of projects with deadlines and due-dates, having a way to quickly and easily create and maintain lists of tasks for those projects is fairly important, and to that end, I’ve routinely tried to get a system together that works for me in that regard, with varying degrees of success.

I would like to take this moment to decry the state of Windows development when it comes to GTD software.  It’s just downright pathetic next to the myriad of options available for the Mac.  There are about half a billion (I may be exaggerating) different GTD-oriented apps on the Mac, ranging from free to about $80.  The stand-out winner for me thus far has been iGTD, due in large part to its flexible attitude towards “contexts” (which I rarely if ever use) and the degree to which it integrates with pretty much every other Mac application on the planet.  Need to keep a reference to an email handy for this task?  No problem, just drag it into iGTD when you’re viewing the task.  Want to have references to all the files changed by a specific feature addition?  No problem, just drop the files into the task from the Finder.  Have a website with the instructions for completing a certain tricky JS action?  Again, no problem, just drop the URL into iGTD from Safari!

Why is there not a single application on the Windows side of the fence that supports this kind of deep file-system and application-level integration?  Is it because the Windows shell isn’t flexible enough to support these kinds of drag/drop actions from Explorer?  Because Outlook is the single largest walled-garden application next to Windows itself?  Because IE is a pile of poop?  Because Windows’ drag/drop just isn’t robust enough to support cross-application tie-ins like that?  Seriously, why can’t Windows do all of these things?

Hell, I’d be happy to settle for a to-do list app that doesn’t make me want to vomit, let alone handle all the rest of these integration points.  Just give me something small, simple, and most importantly, free that I can use to create projects, put tasks in them, assign due dates to those tasks, and see an overview, by project, of the stuff I have to do today.  Why is this so god-damned hard?  Half of the GTD-oriented apps out there for Windows are Outlook plugins, and I don’t want to potentially break my copy of Outlook, lest the security nazi descend upon me like a ton of bricks.  The other half are either pay-only, or have such a crippled free version as to be totally worthless, or are the sort of open-source programmer-developed apps that have absolutely zero usability, or are apparently targeted at kindergarteners, judging from the insultingly overblown look of the UI.

Outlook 2007 has this thing called the Business Contact Manager that I’ve tried using on a couple of occasions, since it supports projects and tasks, and you can even link emails to specific tasks, but it’s tedious, bulky, slow, and just a general pain in the ass to use regularly.  I’d be totally gung-ho for this solution if they just made it easier to deal with by speeding it up, simplifying linking emails to tasks (or even creating tasks from emails), and took out some of the complicated cruft that I didn’t need (it’s oriented towards sales as far as I can tell [surprise...], which is decidedly not what I’m involved with).

I’m tempted to roll my own solution and run it off of my website at this rate.  It’ll have to be an off-the-job project, though, because I have enough else that I’m getting paid to do.  Though maybe I can pitch it to Brock as another service we can provide and/or sell outside of our core credit union demographic, and get paid to put this thing together for myself.  Yes, I’m devious.

IEmprovements

Wednesday, March 5th, 2008

So, I’ve been fiddling around with IE8 Beta 1 today, and have a short list of notes thus far.  I haven’t put it through any serious paces, so this list will probably grow over time, but for now, here’s the shake-down…

Nice:

  • “Super-standards” mode on all non-quirks pages out of the box.  “Nice” is an understatement.
  • Passes Acid2 (as long as it’s on the webstandards.org site; acid2.acidtests.org fails, apparently due to a cross-domain request issue that’s being worked on, so it’s a conditional passage, but still way better than the grenade-victim look of the smiley face in IE7).
  • Wide buttons successfully render their corners in Windows XP.  Previously, if a button became too wide, the edges of the button would become super-pixelated.  Looks like someone back-ported a fix to IE7/Vista for this release.  Thank god.
  • An “Emulate IE7″ button is included to force the browser back to IE7’s rendering mode and user-agent.
  • Based on the demo at MIX this morning, there’s a sweet set of developer tools, including in-engine JS debugging.  This trumps even the Web Developer toolkit for Firefox, which is sort of a gold standard for dev tools (Safari’s ain’t bad either though).

Not so nice:

  • Buttons still scale horizontally out or proportion with the contents of the button itself.  It’s like every character you pile on adds some number of pixels to the left and right padding for reasons that completely escape me.
  • IE8 scores a 17 on the Acid3 test.  While it’s better than the score of 13(?) that IE7 gets, it’s still woefully far behind Opera 9.26 (46/100), Firefox 2 (51/100), Firefox 3 Beta 3 (59/100), and Safari 3 Build 31A15 (76/100).  While I won’t be placing bets on who passes Acid3 first, I’d be willing to put money on who passes it last…
  • The “Emulate IE7″ button requires a complete restart of IE before it will take effect.  I also somehow doubt that this feature will last into the final release (especially if it remains this mean to the user), which is sad, because it’s obvious enough what it does that it could help alleviate some of the headaches that will inevitably arise from MS “breaking the web” again (and hopefully for the final time, though I wouldn’t count on that given the Acid3 compliance).
  • The developer tools are apparently really, really buggy.  I thought this was a developer release… whoops?
  • The UI is still crap, but that’s aesthetics, not web standards, so whatever.

Otherwise intriguing:

  • Activities looks like an expanded take on Microformats, which I actually wouldn’t mind seeing other companies like Google, Mozilla, and Apple jumping on the bandwagon for.  Apple’s already got the whole data detector thing going on in OS X, with hooks for it in more than just Mail by the looks of a few tips on macosxhints.com, so this seems like a decent enough initiative to adopt as well.  It’s even being released under a Creative Commons license, so hooray for non-proprietary-ness…
  • WebSlices look like Microsoft’s version of WebClips, only built into the bookmark bar instead of the Dashboard (or Sidebar… guess they couldn’t do the Sidebar integration if it’s supposed to be an XP feature too…)  Practically speaking, I think I prefer the WebClips approach, which lets you capture any portion of any webpage, rather than just those sections that the web developers of certain sites have deigned it appropriate to let you save.  The bookmark bar integration is admittedly more accessible than the Dashboard though, in most instances, though, so that’s nice.
  • Domain name highlighting looks like Yet Another Useless Feature to try and keep people from doing retarded things online.  If red (well, pink) address bars, huge certificate failure notifications, and phishing alert notifications in the browser aren’t enough to get someone to realize they’re about to get themselves scammed, making the domain name stand out from the rest of the URL sure as hell ain’t gonna do anything to help.  I’m betting on it being more confusing than anything else, honestly…

I will be following IE8’s beta cycle with supreme interest, if only because I want to see just how much more work Microsoft is going to make me do to get my sites to render properly in IE8, but so far all of my work-related stuff seems to be doing well, which is hardly surprising given that it renders will in other standards-compliant browsers…

On Controlling the Weather…

Tuesday, March 4th, 2008

Internet Explorer 8 will now run in IE8-standards mode by default.
No wonder it’s been so cold here the past couple of days…

Kudos to the IE team for turning the browser around after the firestorm of disagreement from the web development community, and further kudos to whoever decided that IE8 needed to fall in line with MS’s new interoperability principles.

Now, if only people would adopt IE8 as quickly as Firefox users adopt new versions (and if only IE8 were available on more platforms than just XP and Vista), web development would become much less of a headache.

Who wants to take bets on IE being the last browser to pass Acid 3, too?

Serenia… that’s a new store on 5th Avenue, right?

Friday, February 22nd, 2008

Evidently someone else thought the memory necklace from Revelation was a cool idea.  Now it just needs a faulty clasp and a 10-year-old girl in jeopardy to go with it ;)

Why version targeting is a bad idea

Wednesday, January 30th, 2008

To further elaborate on exactly why I think Microsoft’s new default rendering method is a Bad Idea (since GermanShepherd has taken me to task for being anti-Microsoft at the expense of the good of the Web), I think it’s important to first explain why I don’t think its a bad idea. I am not opposing this plan because I automatically think that anything coming out of Redmond is evil by default (in fact I applauded the IE team’s efforts on version 7, despite feeling that they didn’t go far enough in implementing long-standing standards at that time; something that appears to be biting them in the ass now). I’m opposed to the idea of version targeting because it is antithetical to the very concept of the standards that Microsoft is claiming they support, and as a developer who is increasingly working to fully support existing open standards (HTML 4 Strict, XHTML 1.0, XHTML 1.1, CSS1, CSS2, CSS2.1, Javascript), this concept will make things harder for me, not easier.

I will readily acknowledge that MS is in something of a pickle of their own making here, because for over 5 years, IE6 was pretty much the only browser on the market, and as far as rendering pages built to standards goes, well, saying it sucked is putting it pretty mildly. Now they’re in a situation where their past shoddy support for standards in IE’s standards-compliant mode is making it hard to obey those standards and the commonly-accepted method for opting into them (namely, the doctype switch) without causing large portions of the corporate intranet to come crashing down because their standards-compliance is only as good as what IE6 and now IE7 require. (I think that the effect of IE7 was much greater on internal sites than it was on the Internet as a whole, but I’m just working from personal experience here. I have no way to verify or dispute Chris Wilson’s claim that IE7 broke half of the top 200 websites, so I’m just going to have to take his word for that.) So, rather than do the difficult thing and make it obvious to these people that their sites were built using antiquated, buggy, and often broken code for a product (IE6) which is nearing (if not already at) the end of its support cycle (something they seem to have no problem doing for Windows), they’re taking an easy way out and dumping the responsibility for keeping IE up to snuff with the other modern web browsers onto the developers who have so tirelessly demanded Microsoft’s compliance.

And really, that is the biggest problem I have with this meta tag business: it punishes developers who have already done the most work to build sites that are well-rendered by every major browser and which support the forward compatibility that these standards are supposed to ensure. Developers who are either too lazy, inexperienced, or entrenched in Microsoft’s broken method of rendering the web get a free pass for remaining 7 years behind the times. This is quite possibly one of the only computer-related fields where this would even begin to be an acceptable situation, and that simply boggles my mind. We cannot continue to support sites designed and built during the Dark Ages of the Web; it hinders progress and innovation, and puts us into situations like the one we have now. Websites are just like other pieces of software: they become antiquated, broken, and need to be replaced. Unfortunately, the “operating system” for these pieces of software is a browser so deeply tied into the desktop OS that it cannot support anything but the latest and greatest version of itself.

This brings me to my second point: I seriously question the sustainability of this meta tag version-targeting system. The way that this has been proposed, it isn’t a temporary solution to the problem of maintaining backwards compatibility in IE; it’s a new “standard” way for developers to target their pages for specific browsers and versions (in fact, it’s the exact opposite of a temporary fix; you don’t temporarily opt into the future, you temporarily opt out of it, and Microsoft is hoping that other browser vendors will implement this meta tag as well [interestingly, for some reason, devs from WebKit, Mozilla, and Opera have all rejected and disowned this proposal... I wonder why?]). Again, this sounds like an absolutely fantastic idea in theory, but in practice, it will turn any browser that supports it into bloatware, because antiquated, buggy rendering methods can now no longer be dropped from a browser after being fixed, they need to be retained for the sake of remaining compatible with all those pages out there that bought into the broken way of doing things (and I might note that despite Firefox, Safari, and even Opera going through numerous revisions in far less time than it took IE to go from 6 to 7, there has never been an outcry from developers for these browsers to support backwards compatibility with earlier versions of their rendering engine). What happens two or three versions of IE down the road? If developers build in a meta tag explicitly indicating that IE use the IE8 rendering engine, what does IE9 or IE10 do about that? What about IE11? IE12? How many versions of the Trident engine can Microsoft conceivably cram into this product before it simply collapses under its own weight? How much more difficult does this make fixing bugs in the program? How does this increase the number of potential vulnerabilities in the browser? What happens if IE9 introduces more than just bug fixes, but performance increases in areas like Javascript handling and page rendering? Will sites locked into IE7’s or IE8’s engines benefit from these improvements? If not, why even bother making these improvements in the first place? When everything still renders “just fine” in the default IE7-compliant mode, and standards are optional, what motivation does Microsoft have to continue to innovate and improve its browser?

Segue now to point #3: This idea will stifle innovation in the IE Team and on the Web in general. Certainly, the standards-compliant developers are welcome to “force” IE8 (and presumably IE9 and up) to behave like a modern browser, but if this defaulting to IE7 is being done to help unprepared developers, lazy developers, and corporations without the time, resources, or perhaps most commonly, the desire to update their sites stave off an impending armageddon, what motivation do they now have to do anything at all? If IE8, IE9, IE10, etc. all default to rendering content just like IE7 would have (and again, I question the sustainability of this approach), what motivation do these people now have to do anything at all? What motivation do novice developers have to learn about standards and advanced content creation methods when IE7 works just fine? Sure, the standardistas and the less fanatical but still standards-friendly developers are welcome to use this meta tag to target more advanced versions of the IE engine, but this practice of making standards opt-in rather than opt-out forces people to have to expend more time and effort to learn standards-based practices than they would need to spend just making it look right in IE7. It marginalizes the importance and impact of standards on the most commonly-used browser on the planet. This is bad for standards, not good for them, and standards are good for the Web, even at the expense of older sites ceasing to function. Some may find (and have found) it odd to advocate Microsoft enforcing something like this, since usually Microsoft forcing people to do something is anti-competitive and harmful to the computer industry, but this is not an advocation of more proprietary lock-in garbage from Redmond. This is advocating that Microsoft conform to open standards in the interest of fair competition. If they lose market and mind share because of past attempts to unfairly dominate the Web through proprietary technologies and poor support for even the most basic of standards from HTML to CSS, then they have nobody to blame but themselves for this calamity that they now face, and the longer they put it off, the worse it’s going to be for them when they finally do decide to make modern standards the default. Microsoft is not a charity, and we as an industry should not be expected to coddle them for having screwed up in the past. Nor should we allow Microsoft to continue to hold open standards hostage because it would temporarily damage some portions of the web and the corporate intranet (and I do wish to stress temporarily… sites can be updated, and will only be updated if there is a motivation to do so). If Microsoft would get off its ass and just freaking announce and end-of-life date for IE6 and that incompatible sites would no longer render or possibly even function correctly in newer versions of IE, that alone would be enough incentive to get corporations off of their own duffs and invest in modernizing their internal infrastructure and external Web presence.

To take a brief tangent into the hazy realm of economics, imagine if you would the number of jobs and the amount of economically stimulating cash would be generated by at least encouraging, if not outright forcing major companies to upgrade their websites and corporate intranets. It could – admittedly without the benefit of insightful education into the workings of economic factors – be argued that Microsoft making IE8 act like IE8 by default would be a good thing for the economy in this down-turning market, as it would drive the creation of tech industry jobs in the form of new contracts to freelance web developers and development firms. These are quite typically rather lucrative contracts which would drive considerable money into the hands of a segment of the market most likely to further re-invest it into the economy (in the form of purchases, likely from the very companies shelling out cash to upgrade their web-based infrastructure), doing far more benefit than free hand-outs from an already cash-strapped federal government.

But back to the real world, there are other ways that this sort of preservation of the ancient corporate American intranet could have been handled without a) blaming developers for making badly-designed sites so that they’d work in IE6/7 and b) further placing an additional onus of responsibility on standards-compliant developers to make their standards-compliant sites render correctly in IE8’s non-default super-duper standards-compliant mode. Unfortunately, all of these alternative methods would rely on some combination of user education, developer training, and the “breaking” of the Web which Microsoft is so terrified of doing (despite the fact that the vast majority of the web is either built to standards, or to such ancient implementations of HTML that it immediately falls under the purview of Quirks Mode). The sites most likely to “break” (by which I believe the IE Team means “render incorrectly” more than “ceases to function entirely”) are those written by tech-savvy developers trying to cleverly circumvent the bugs and limitations of IE’s Trident engine.

Making IE7-compliant mode opt-in, through either the inclusion of the meta tag or the use of the also-proposed X-UA-Compatible HTTP header, would allow these tech-savvy developers to “fix” their sites temporarily while still placing an onus upon them – and not the standards-based development community which has been doing the legwork to get Microsoft to pay attention to this issue in the first place – to update their sites before this temporary stop-gap measure ceases to be supported in the future. For those sites that don’t have active support teams or who for whatever reason were tech-savvy enough to know how to work around IE’s shortcomings but not up-to-date enough to know about this temporary solution, a button and/or contextual menu item (I’m thinking both) can be added to the browser that would toggle IE7-compliant rendering for a given domain. Make it look like a band-aid, and trumpet the feature as the best of both worlds: forward-looking standards compliance and the ability to continue to view “legacy” sites in a non-destructive manner. You’re already giving the browser the ability to switch renderers, just put that ability into the hands of the users. With proper education of users on the use of this feature, and proper education of developers through notifications from Microsoft on any and all tech-related blogs and news sites to ensure that this “band-aid” feature would be required only in the most dire of circumstances, Microsoft could continue their pledge to not “break the Web” while still properly implementing modern Web standards. And if you don’t like the band-aid button, here’s another one for you: make IE8 a stand-alone product, separate from the built-in, deeply-Windows-integrated IE5/5.5/6/7 releases. Since I’m pretty sure that by this point, most of the “Web breakage” has already happened in the nearly-mandatory move to IE7 (which inexplicably hasn’t impacted IE6’s browser share all that much), most of what’s left is corporate intranets still stuck in the mid-to-late 90’s. Let people run the antiquated IE5/5.5/6/7 engine for those sites that need it, run IE8 for the actual Intarwebz, and make the new IE8 release available for all versions of Windows from Win98 through Vista (seriously, it can’t be any more work than making sure IE10 still has IE7, 8, and 9’s rendering engines in it…) to ensure maximum adoption so that devs can more quickly move to end-of-line the old versions of the browser.

As a final salient point, making yet another opt-in to replace the opt-in of the doctype switch because so many people (and WYSIWYG editors) completely loused that idea up simply begs for this opt-in to be similarly abused in the future. There’s even a setting in the meta tag for “edge”, which will force the page to target the latest version of a browser’s rendering engine regardless of how far in the future the page is being accessed. Knowing that most devs aren’t going to want to be locked into a specific release of a browser (as they’ll want a well-formed site to be able to take advantage of improvements to performance and capabilities over time), and knowing that WYSIWYG editors are going to make “edge” the default for inexperienced devs simply because it looks bad to target an older browser release as a default, the proliferation of “edge”-defined sites – despite strong advisement from Microsoft not to do this – is going to ruin this as a way to guard against future incompatibilities in rendering the same way the doctype switch has failed to do so for the exact same reasons. Opt-ins don’t work, because everybody wants to opt-in to the future, even if they don’t understand what that means. The only way to preserve standards and their forward-compatibility is by opting out of them as needed until the people responsible for maintaining and creating content on the Web get their heads in the game. If they choose not to, there are plenty of forward-looking developers out there who will gladly take their business once they explain to their clients why their sites don’t have as much portability, functionality, speed, or simplicity. Standards as defaults drive innovation; standards as options do not.

Now for my paragraph of anti-Microsoft paranoia, which will likely serve to undermine all of the hopefully well-reasoned arguments I’ve just made (oh well). I can easily see this move by Microsoft as a way to ensure that IE7 becomes the “gold standard” for the internet yet again. It may not be the intent if the IE Team right now, but faced with sharply declining browser share and a potential way to make up for it through this new non-standards-compliant IE7 default rendering method, I have no doubt that someone at Microsoft will turn this into another crusade against open innovation. By effectively paying lip service to standards by including them as a non-standard feature, Microsoft is once again already marginalizing the open standards community in favor of maintaining its own proprietary, or at the very least, “broken” standards, which serve to keep people locked into their products, lest those customers find that they are no longer able to use their corporate intranet site after moving to another browser vendor. It’s a small – and predictable, based on past performances – step from this marginalization to another take-over effort built on the back of IE7 and 8, rather than IE4, 5, and 6. It’s easy to understand why this would work, too… even after the rise of Firefox as a viable alternative and the steady increase in Safari market share, IE still commands anywhere from 60% to 95% of the traffic going to most popular websites. This is arguably the most commonly-used (if not popular, since that sort of implies that it’s something people want to use, rather than people simply not knowing they can use anything else) browser on the market, and leveraging the power of stupid people in large numbers is something that Microsoft is very, very good at. But that’s just my bit of anti-Microsoft paranoia to cancel out the well-reasoned arguments. Feel free to just pay attention to this paragraph and ignore the other 9 when making your counter-arguments. :)

Microsoft fucks over the internet…

Tuesday, January 29th, 2008

again.

(My apologies for the language.)