Open Source is Hell

“Why hasn’t Cyan released the Plasma source code by now?”

Because, as RAWA explained, it’s a long, painful process. As RAWA somewhat implied, there are very few people at Cyan who even know anything about the engine code anymore. Most – if not all – of the Headspin team they bought the engine from have since left the company or been laid off. The number of “Don’t use this, we don’t know what it does” comments in the ResEng documentation I was given when I started there speaks volumes about how much work needs to go into the engine to get it ready for release.

Further, open-sourcing the engine as it stands now faces a number of additional issues. First, I’m under the impression that Cyan wants to separate the engine code from any game content that might be tied up in it, in order to retain legal rights to their D’ni universe intellectual property and released content. Given how often purpose-built engines have game content references hard-coded into them for the sake of convenience, this may be more likely than it seems. Second, I’m fairly certain that Cyan intends to continue using Plasma after they open-source it, so it must be done in a way that doesn’t prevent Cyan from using the engine commercially in the future. Third, there’s a number of proprietary components in the Plasma engine that are the property of third parties (PhysX is a good example), which Cyan can’t release the code for. However, stripping the references to that code out of the engine would make it essentially useless.

A good parallel to draw, I think, is to Relic’s decision about 5 years ago to open-source the engine they used to create the original Homeworld title in 1999. As with Plasma, everyone at the time was mind-boggled at the fact that a AAA game engine for a best-selling title was just going to be given away by its creators. However, to this day there still isn’t an openly available version of the engine that can be used for anything besides running an extremely buggy and feature-deprived build of Homeworld, because so much of the engine got crippled when Relic ripped out stuff like the Bink decoder used for the animatic cutscenes (which weren’t released along with the engine, so until the hard-coded references to them were removed from the engine, the game would just crash because of the missing assets), and there’s a pile of assembly code that just doesn’t work very well on modern hardware, including a lot of homebrewed custom OpenGL assembly code (dubbed “RelicGL”) that was written to get bare-metal access to the anemic or even non-existent graphics hardware available in 1999. Check out the Homesource forums for a taste of what fresh Hells Relic’s engine hath wrought.

So, if Relic’s approach can shed any light on this subject (and I think it can), throwing the code out now now now isn’t going to accomplish Cyan’s goals any faster than releasing the code at a later date, and is in all likelihood actually going to slow things down even further. I know there’s a lot of code monkey geniuses in the Myst community, but Plasma is a 15-year-old monster of an application, and more eyeballs on the problem doesn’t always mean faster results.

Which leads me to…

“Why won’t Cyan let trusted community members help get the code ready for release?”

As RAWA’s noted, and as many others have mentioned, there are a whole swarm of thorny legal issues involved with granting non-employees access to a proprietary code base full of more licensed proprietary third-party software, on top of the very probable situation that Cyan doesn’t have a system in place for allowing outside access to their Plasma code repository, it’s probably in a rather outdated source control system (perhaps even Visual Source Safe *shudder*), and compiling it may also require licenses for software that volunteers would need to be given (just as an example, anyone who’s tried to recompile a C++ VS6 or VS.NET project in VS08 should know it’s not likely to go smooth). Getting all of this set up, settling the hazy legal issues surrounding unpaid labor in the US, and drafting and issuing contracts and access permissions that are locked-down to only the relevant material is probably more trouble than it’s worth, honestly. Again, remember, this is a spare-time effort that Cyan can’t afford to expend valuable resources on when they’re needed elsewhere for other projects.

I also wouldn’t be surprised if Cyan is holding onto the code to try and hammer out some additional security issues, which they don’t want out in the open for discovery when they’re also running the only (legal *ahem*) active shard of the game on the planet. Given the (admittedly long-ago) history of outsider abuse of the Myst community (such as hacking the Riven Lyst), I would understand it if Cyan wasn’t willing to expose the Uru community to another outage resulting from someone exploiting the code’s most evident weaknesses. Considering the Vault always struck me as being held together with duct tape and bailing twine, I’d be willing to bet that there’s a lot that can go wrong very easily, and again, right or not, Cyan may just want to avoid that situation if at all possible by keeping the code internal for now (and please spare me the “security through obscurity” arguments, because they never seem to convince anyone in either direction).

And now, for my own petty comment: I also wouldn’t be surprised if the Uru hacking community’s tendency to do whatever they want with or without Cyan’s permission is putting Cyan off from being willing to accept their assistance. I applaud Paradox for actually working with Mark on the Pidgin KI plugin, and that sort of approach – independent development of tools and extensions with Cyan’s permission since it’s their property – if repeated elsewhere, could go a long way towards improving the apparent lack of interest on Cyan’s part towards the hacker community, and community involvement in general (assuming the aforementioned hurdles aren’t going to get in the way).

Published by Alahmnat, on May 14th, 2010 at 12:47 pm. Filled under: Game Development, Games, Myst, Myst Community, Programming, Uru Deconstruction4 Comments

Still Crazy After All…

So Digg and Reddit have been ragging on this for over a day now, but as a web developer, I thought I’d chime in with some longer-than-140-character comments on Microsoft’s new “IE8 is the most awesome thing ever invented” comparison chart. While the “reasons to install” page is fairly reasonable,  the comparison chart is complete and total bunk, and also tremendously condescending. Taking it point by point:

  1. Security - I’m tempted to give them points on this, since Vista and Win7 run IE in a super-restricted access mode. However, Firefox seems to be much faster in pushing out security patches when they’re needed, and neither it nor Chrome have such deep-seated access to the OS that compromising them has the potential to cause widespread damage to the OS. Also, IE’s restricted process mode isn’t available in WinXP, which I think is still the dominant OS by a wide margin. Further, IE8’s “ScreenFilter” (seriously, what’s up with the CamelCase features?) has already been implemented by Firefox, Chrome, and Safari. FAIL.
  2. Privacy - And so the outright lying begins. Both Chrome and the upcoming release of Firefox 3.5 have identical private browsing features (and in fact, Safari’s had it for years), and Firefox 3 even has an add-on you can use to gain this capability now without downloading the Fx3.5 beta. FAIL, Microsoft.
  3. Ease of Use – I have two words for you, Microsoft: Information Bar. This thing is a hyper-sensitive waste of my time and an extreme annoyance on a daily basis. Also, have you looked at your preferences screen in the past decade? Jesus Christ… Minor points for Accelerators (with deductions for stacking the deck with your other products), but Web Slices are arguably a complete waste of time, and the rest of the browser is just an absolute mess (good luck trying to uninstall an add-on by yourself, by the way… the IE dev team had to post a how-to on their site for that!).
  4. Web Standards – Yes, I will give you congratulations for finally making it to where everyone else has been for the past 5 years. You do at least deserve that. However, your ongoing dismissive attitude towards CSS3, HTML5, JavaScript performance, and the ACID3 test are not encouraging. To be sure, ACID3 is not a test of established standards the way that ACID2 is (and lordy did you crow about passing that one). However, passing ACID3 is about much more than meeting obscure draft standards. Look at the blogs that the WebKit developers posted in their race to beat Opera to 100/100; they mention making deep-seated performance tweaks and fixing long-standing rendering glitches in order to attain the coveted perfect score. ACID3 is as much a stress test of a browser’s existing capabilities as it is a future-facing standards test, and on both counts, IE is failing miserably, and getting thoroughly spanked by Gecko, WebKit, and Opera. The competition isn’t standing still here…
  5. Developer Tools - Now you’re just being insulting. Every web developer I’ve ever talked to considers Firebug and the Web Developer Toolbar the gold standard in web developer tools. WebKit’s developer tools run a close second (they’re a bit more tedious to use when editing content on-the-fly). IE’s developer tools are junk. Sure, they’re bundled into the browser, which I guess is good news for the <1% of internet users who do web development, but they’re clunky, it’s difficult to add properties or make changes to existing attributes on-the-fly, and the enable/disable style feature seems to be completely unreliable in my experience: changing a style in the developer tools, uncovering a “fix” for a rendering issue, and implementing that fix often results in a completely different rendering outcome than the one implied by the developer tools. FAIL again, Microsoft. And an even harder FAIL for slapping developers in the face with your crappy tools and saying we should be thrilled about them. And why is this on the consumer-facing facts list? What average computer user is going to care about this? It’s like advertising Visual Studio Express on the Windows 7 features page…
  6. Reliability - Another lie. Chrome supports both tab isolation and crash recovery (though not explicit automatic crashed tab recovery [which seems stupid... if a tab crashes, you're probably not going to want to automatically re-launch it, because odds are it's going to crash again], so you get a few points on a technicality), and both Firefox and Chrome are far more reliable than IE8 in my experience. You could possibly win points over Safari on Windows, but that’s like beating the kid in a wheelchair on a 100-yard dash. Uphill. Nobody’s going to give you any credit for it (yeah, Safari on Windows still has some stability issues, but I’ll still take it over IE any day of the week).
  7. Customizability – Now I know whoever made this chart is a complete idiot. For all its awesomeness, Chrome is hardly customizable, so I’m not sure why they tried to make it look good by giving it a check mark. That said, IE’s customizability selling point seems to be that Microsoft has already done the customizing for you. That seems wrong somehow (it also seems like something they enjoy accusing Apple of doing)… And they then go on to mention the 1700 add-ons for IE in the Mythbusting section (which I’ll get to), while simultaneously denigrating Firefox’s much larger add-on library. Can’t have it both ways, Microsoft. Major FAIL.
  8. Compatibility – I hate you so fucking hard… if it were up to web developers, IE would be the least compatible browser on the market, but we can’t exactly do that when it controls over 60% of that market and people expect their websites to work. And you have no idea how bad it looks to only give yourself a check mark for compatibility when developers are already building in progressive enhancements to support the more advanced rendering features in other browsers like CSS rounded corners and SVG canvas support. IE is only more compatible with SharePoint and ActiveX-reliant sites, and speaking from experience, I hate both of them, and want them to die in a fire. FAIL, FAIL, FAIL.
  9. Manageability - Finally, something IE can honestly claim to have the upper hand in: enterprise distribution and lock-down support. I would frankly love to see Firefox pick up some enterprise-level GPO support, because it would only further erode IE’s market share (what are the chances of the GPO controls being impossible to build into open-source software though? Possible dick move alert…). The biggest base of IE6 users seems to be corporate enterprise and the US Government (at least, that’s what everyone cites when defending IE6’s ongoing existence). Get Firefox 3 with the IE Tab add-on on every one of those machines and watch public IE usage drop like a fucking stone. And they’d never have to upgrade off of IE6 for their internal sites (this is how I use SharePoint at work).
  10. Performance – Please, this is just pathetic. From a usage standpoint, IE’s interface is painfully slow. Opening new tabs is glacial thanks to the tab isolation implementation that IE uses. And gods help you if you want to install more than a few add-ons from IE’s huge 1700-strong gallery, because they’re only going to make the problem worse (seriously, throughout IE8’s development process, the only fix provided by the IE team for slow application launch and tab creation was disabling your add-ons… that’s sure customization-friendly!). IE8’s JavaScript performance is at least a generation behind modern browsers, and the disparity is only going to get worse as web applications put a larger and larger strain on JS DOM manipulation, and HTML5+CSS3 take the place of Flash and Silverlight for most website glitz and glam. One more FAIL for you, Microsoft.

The Mythbusting page is just as bad…

  1. “Internet Explorer is much slower than Firefox and Chrome.” – Again with the speed comparison. They even link to a video that uses the phrase “as it turns out” to prove their point (a phrase which my favorite author, Douglas Adams, once said made it possible to prove anything without backing up your statements… I think we have a case in point here). The video does nothing but compare page load times… no JavaScript performance comparisons, no comparisons of actual operations within pages like performing drag-and-drops, not even a demonstration of their Accelerators (which is what I thought the video was going to be about… when it comes to speed, pretty much the only point that could be made in IE’s favor is Accelerators, because they’re certainly going to be useful to some… though the lack of Google-targeted Accelerators is probably going to deter their use for many, because Google is synonymous with everything from search to translation to driving directions). As I said before, developers and other browser makers are not standing still. IE8 may meet today’s JavaScript performance requirements (and I personally don’t think it even manages that), but it’ll be at least another 2 years before we see even the beginning of IE9, and by then, who knows where things will have advanced? IE is definitely not leading the pack as it so bizarrely claims (and unlike Apple, whose claims that Safari is the world’s fastest browser are still questionable, IE isn’t even in the running for second place).
  2. “Internet Explorer is less secure than Firefox. “ – I’m amused by their use of the phrase “catches almost twice as much malware”… sounds like an affliction the way they’ve worded it, but whatever. I also don’t think it’s wise to make a claim that you respond faster than any other browser maker to new threats when evidence to the contrary is easy to come by… even the NSS Labs report on malware blocking indicates that Firefox is faster to block new threats than IE8. Kudos on using a MS-written report on security fixes to back up a MS-written marketing blurb though, and points for being on top of malware problems. Is MS using a different validation system than Safari/Fx/Chrome? Would they be willing to share for the benefit of all browser users? (Fat chance there… this is like the only point they’re scoring on.)
  3. “Firefox is a richer, more adaptable browser than Internet Explorer.” – Seriously, you’re going to try and refute this claim? For real? Are you on crack or something? Even if I give you the point for having more features out-of-the-box, half of those features you think I want are things I turn off during the setup process (Web Slices, Suggested Sites, virtually all of the Accelerators because most are pretty useless to me…). The things I do want, like spell check and ad blocking, are things I have to go find an add-on for anyway. Let’s also ignore IE’s lack of a download manager, and their absolutely worthless developer tools (I can’t really even say they’re better than shooting blindly at the problem, because of aforementioned discrepancies between developer tools-made changes and actual implemented code). Further, their boisterous claim of 1,700 add-ons is totally smashed by Firefox’s almost 7,400. Hell, there’s more add-ons in Firefox’s “other” category than in IE’s entire library. As to their claim that IE implements “almost all of the features [in] the most popular add-ons in Firefox” (their words, not mine), here’s a list of the top 10 most popular add-ons on AMO:
    • AdBlock Plus
    • FlashGot
    • Video DownloadHelper
    • NoScript
    • DownloadThemAll!
    • Greasemonkey
    • Personas
    • Firebug
    • IETab
    • Cooliris

    Of those, I think IE implements Firebug (sort of), and obviously IETab. Yep, that’s totally almost all of the features in the most popular Firefox add-ons. Isn’t there some sort of truth in advertising requirement FAIL going on here?

  4. “Internet Explorer doesn’t play well with Web standards.” – Again, I’m willing to begrudge them a lot of points on this because they have come a long way even just from IE7, but they’re still not off my shit list. I spent a whole day building a new skin for DPWR in IPB3.0 and had to essentially reboot the whole damn thing because I hadn’t tested it in IE at the time (I was working on my Mac and didn’t want to have VirtualBox running), and when viewing the site in IE8 and IE8’s IE7 Compatibility Mode, the entire skin was almost entirely unusable (topic view especially was impossible because anything after the first post was simply missing). And this was after building it using validating XHTML code and CSS 2.1 definitions. AUGH!

I’ve harped on this before, but Microsoft seriously needs to get their shit together when it comes to IE. Rather than actually dedicate more time and resources to getting a quality modern browser on all fronts, Microsoft still seems to be taking the path of least resistance and over-hyping their accomplishments to the point of fabricating outright lies about the competition. Every other browser developer is pushing strongly into HTML5 and CSS3 territory while back-filling what are frankly tweak-level CSS 2.1 compatibility issues (I think supporting content:before and content:after on fieldset tags was brought up on the IE dev blog as an example of IE8’s awesome CSS 2.1 superiority… how many times have you needed to use that?), and pushing JavaScript performance into frankly obscene levels. Meanwhile, the IE team is trumpeting their support for CSS 2.1 (we’ve only been waiting for you at this party for 5 years now, guys) and deriding other browsers for focusing on JavaScript performance and supporting draft standards (when you’re already supporting the vast majority of the CSS 2.1 spec, there’s not much else to focus on but the future…). The problem is, IE is already still well behind the pack with IE8, and with IE9 easily 2-3 years away, they’ll be even farther behind on supporting those emerging standards and performance benchmarks, while every other browser will have them in spades.

Don’t even get me started on their mobile platform, which in 2010 will still based on IE6. Urge to kill… rising…

Published by Alahmnat, on June 19th, 2009 at 12:42 pm. Filled under: Computing, Internet, Programming, Rants2 Comments

Updates and Stuff

It’s been a bit of a while since I last posted something, so I figured I ought to.  Nothing fancy, just a bit of a status report on what’s going on with me.

After months of saying I needed to do so, this month I finally started tearing through the Archive cleaning up attachments and re-tagging entries as appropriate.  I’ve got a running list of entries that need a bit more TLC (or a lot more, in some cases) that I’ll need to come back to after I finish the initial clean-up push, but so far the list is only about 30 entries long out of the 900 that currently exist (so, roughly 3% of the Archive).  I’m almost all the way through the collection of journals and notes (which are being split into 2 groups for organizational simplification), after which there’s just people, places, objects, speeches, and translations.  That may sound like a lot, but I’ve already gone through Ages, plants, animals, DRC research, and all of the D’ni culture sections (DRC Research was a bear… I think most of the really screwed up attachments were in that tag).

On a related note, is anyone having problems accessing the Archive?  I just discovered that for no apparent reason a couple of my staff members can’t see anything in the Archive… if anyone else is having this problem, PLEASE let me know!  I can’t fix it unless I know it’s broken!

I’m also hard at work on a number of game ideas.  A couple of them are a lot more advanced and will require considerable time in the modeling, texturing, and figuring out how to do stuff in the engine departments, but one of them I’m actively developing right now.  Some of you may recall my little Labyrinth project from last year’s ill-conceived attempt to enter into the Unity Top DOG competition about 3 weeks from the deadline for entries.  Well, I’ve decided to do it up proper with much better graphics, a whole slew of Labyrinth boards of varying difficulties, and way fewer bugs.  Right now I’m working on laying out all of the game boards, and trying really hard not to make them overly-difficult in the early stages.  I don’t think the game will end up being easy by any stretch of the immagination, but I’d at least like it to be somewhat challenging without making your brain explode.  The current design plan calls for 30 boards across 4 difficulty settings: 8 each of easy, medium, and hard levels, plus 6 more “tutorial” boards for practice, training, and introduction to some of the wackier elements of the game.

I’m also still working on getting a new iMac.  My G5 has been sold, but the buyer is also getting a whole mess of additional hardware and software from Mac Odyssey as well, and has yet to pick up the G5.  Since I don’t get my share of the sale until the buyer has committed to keeping the machine a couple of days after pick-up, I’m still waiting.  Fortunately, the delay may in fact work out in my favor: Mac Odyssey got wind that a number of last-gen machines that failed to sell in the education sector are being pushed into the non-Apple Store retail sector at discounted prices (this being Apple, “discounted prices” could here mean a minor reduction, but any reduction is money I don’t have to pay!), so I may be able to work out a deal on a much nicer Mac that I’d otherwise be able to afford.

Changing gears, I’ve been keeping quite busy at the job I’m actually paid to do as well.  I’ve been making continued improvements to the software I’ve developed, and am working on ways to further improve the standards-compliance and design flexibility of the HTML I generate.  I’m also teaching a two-hour-a-week “class” on XHTML and CSS, which may be the single best thing I could have done for my own understanding.  It’s one thing to teach yourself… it’s another thing entirely to teach others.  I think I’ve picked up more tricks and all-out skills since I started teaching this stuff than I have since the first couple of weeks of learning it.  I’m also continuing to make advances in what I know about ASP.NET and C#.  While I’m still rather utterly lost on some of the bigger concepts, I’ve been able to start playing within small things those concepts to start broadening my understanding.  For example, yesterday I fixed a bug in an ASP.NET control adapter that replaces the table-based layout of the standard control output with CSS-stylable DIVs and list elements.  Initially, I was unable to assign attributes to the control through the C# code-behind, which prompted a bit of research and finally a bug-fix that resolved the issue, so now my radio button list has its onclick attribute once again.  Hooray!  I still couldn’t actually write a control adapter from scratch, but I now have a bit more knowledge of how to edit an existing adapter to suit my needs.

Anyhoo, I’d best be getting back to work… plenty to do, and no time to do it in :P .

Published by Alahmnat, on June 26th, 2008 at 10:21 am. Filled under: Computing, DPWR, Game Development, Internet, Labyrinth, Me, Programming, WorkplaceNo Comments

Hair-brained Ideas

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…

Published by Alahmnat, on April 16th, 2008 at 12:17 pm. Filled under: Me, Programming, Rants2 Comments

And now, for something completely different…

Briefly, (or Boxerly?) I would just like to point out that deciding to split a program’s language strings out into a separate file so that they can be easily modified after you’ve already done a significant amount of development work to get the project to a stable and functional point is a bad thing. Stupidly, I’d thought about doing this when I first started this project, but I dismissed the idea as something I’d get to later, when everything was up and running. Only now I have about a bajillion strings to split out of the program into an XML container file, and I have to work language loading code into every page around the structure of the existing code.

To continue the stream-of-consciousness style implied by the title of this entry, I have a couple of lists to present. The first is “things I need to do tonight”, in no particular order:

  • Make jewelry. I’ve got a couple of necklace ideas I want to work on. Hopefully I can get them done within an hour or two tonight and actually get them posted to our Etsy store. If not, they’ll probably go up tomorrow.
  • Finish figuring out Cha-Ching. As I mentioned in my previous post about resolutions, I’m looking at an app called Cha-Ching to manage our finances, both personal and professional. It’s also got some handy budgeting features in it to track what we’re spending, where it’s being spent, and how much we have left to spend in the current budget. The main drawback to this program is that the demo I’m using is limited to 100 transactions, which makes it a fairly useless demo to see if it will properly track the several accounts we’ve got across a span of several months. Still, I’m going to sit down tonight with it and the help file open in its own space and poke around at it a bit more. There’s a couple of other options I can look into if this ends up not being what I need, but from the small amount of time I spent with it yesterday, it seems like it’ll do the trick.
  • Write back to slightperil about Archivist stuff. I have a lot of bridge-building to do, but hopefully I can work out a way to start cross-linking with all of the Guild and group sites (like the Messengers, the DZS, the Cartographers, the Greeters, etc.) to create a massive inter-connected resource network for the Cavern and the community at large. We have so much technology at our disposal that the original Guilds of D’ni would never have had, and I think it’s only appropriate that we take advantage of it and make things as open and connected as we can possibly make them.

My second list is a list of things I’d like to see added to the iPod Touch’s software. I’ve had the thing for just shy of a month now, and after using it fairly extensively, I can say that the following are things that could (and should) be in the software, but aren’t for whatever reason. I’m not even talking here about things like copy/paste or the lack of a Maps or Mail app, just “little” things that lack the typical level of integration and ease-of-use that usually comes with an Apple device. It might be that some of this stuff isn’t in there in favor of making the device more compatible with the Windows market, but that’s one of those things that just kind of annoys me even more than it just not being included for no reason. Anyway, on with the list:

  1. Multiple on-the-go playlists. The Touch has a flippin’ keyboard. When I’ve created a playlist in the on-the-go section, let me save it as a normal playlist and give it a name. If I’m away from my computer for a fair amount of time (like, say, 9 hours, as I am every work day), I’m probably going to want to mix up more than one playlist a day every now and then (and I have, actually). Don’t make me delete the playlist I made first just so I can make another one. Let me save it, and then sync it back to iTunes when I get home.
  2. On a similar note, make all playlists editable. Again, this thing has serious multitasking capabilities, and if I can edit the on-the-go playlist in the most fantastically awesome way ever (really, it’s damn spiffy), why can’t I edit the rest of my playlists this way? Heck, just ditch the on-the-go playlist concept and make an “add playlist” button or menu option at the top of the playlist pane for even better consistency, and add an edit button to the top right of each playlist you select, just like the on-the-go one has now.
  3. Support multiple calendars from iCal across the board. This is probably one of those cross-platform compatibility issues, but I have a Mac, and it has iCal. I have an iPod that syncs events from all of the calendars in iCal. Why can the iPod Touch not properly segregate them into the various calendars (by color, please?) like even my old iPod Mini can? Furthermore, why can’t I add an event to a specific calendar that’s been synced to the Touch? I had the “wild” idea about two weeks ago to make use of a GTD-style method of tracking due dates and events for various things, but that kind of fell apart when I found out the Touch didn’t support creating events in separate calendars. Wha? I realize this is a consumer device and not a business PDA, but seriously… I’m a consumer with a lot of things to do; why support multiple calendar syncing if it doesn’t do anything visible on the iPod? Stupid CD player in the trunk…
Published by Alahmnat, on January 3rd, 2008 at 1:22 pm. Filled under: Computing, ProgrammingNo Comments

DPWR Progress (Again)

This is harder than I remember it being… of course, last time I literally just hacked a few queries together and didn’t do much at all in the way of actual database integration. This time around I’m going all out with new post markers and view counts and everything. Thus, it’s slower-going than I expected it to be.

That said, the Library is coming along nicely. The main index page is working, and the story list just needs a modification to only show the number of comments a story has received, excluding the number of story posts made (might include that separately). The trouble with that is that the information isn’t stored in the topic cache this way, so I’d need to query the database an unknown number of times to get all of the post IDs and their parents for each story, then loop through them for each topic and get final counts for story posts and comments. This may end up being more trouble than it’s worth, and I may as a result end up pulling the count altogether. Hopefully I can work something out, though.

The story page itself is also making headway. Creating a nested comment structure is hard, even when you’re only nesting one level deep. However, I finally banged out a rather insanely elegant solution that takes full advantage of the <foreach> construct in IPB’s HTML-logic parser. I’m rather proud of it, I must say. Now I just have to make sure the posts are parsing correctly, tidy up the actual presentation, and integrate the code to mark the story as read when viewing it, and I’ll be pretty much all set on the viewing front.

I plan on getting the view component of the Library wrapped up tomorrow, and getting the view component of the News wrapped up on Saturday. Posting, commenting, replying, editing, and moderating will have to wait until late Saturday and Sunday. That pushes getting the Golden KI automation done back into next week, hopefully no later than Tuesday. If I still have time before next Friday, I’d like to see how feasible it would be to get a search built in to the Library and News segments; we’ll have to see, though… it may not end up happening, just because search is a pain, and managing permissions within the forum the way I’ve got it hacked is a whole ‘nother can of worms. :P

Anyway, I’ll probably be doing a backup of the live database next Friday or Saturday, uploading it to the test server, and executing an update on it there to see where any kinks might crop up and fix them before deploying this thing live. We’re getting close!

Published by Alahmnat, on September 28th, 2007 at 12:50 am. Filled under: DPWR, ProgrammingNo Comments

DPWR and Storage

It occurs to me that I’ve been rather a bit more talkative than usual of late.

Anyway, an update, a personal bit, and some rumination to follow.

Firstly, on the promised subject of DPWR, I’m hard at work getting the upgraded version of the site hammered out, finalized, skinned, and integrated into IPB 2.3. The forums are complete, as are the Gallery and the Archive. The links system has been totally overhauled, and will need to have all of its information re-entered from scratch, but there’s a lot of cruft in there that doesn’t work anymore anyway, and a lot of new stuff to add, so I look at it as a way to make the whole thing better overall. The Community page just needs a couple of tweaks, and will ultimately prove to be FAR more useful than the current landing pad with two links on it that I’ve been using for the past 3 years. I’ve taken to syndicating a few of the community’s RSS feeds, such as the feeds for Explorer Exchange and the Jalak Registry, as well as MystBlogs, UruBlogs, and the CCQDB. Community-related news items from the main page are also re-printed here, along with a calendar, an online list, and access to the Member List.

Slightly less far along is the actual home page, but that’s mainly because it’s still missing some minor News integration and the whole gamut of Library integration. Once the Library is wrapped up, I’ll be tying that in, and everything will be complete. There’s already some better integration than there used to be, with better Archive integration befitting of the new Archive component, separate news feeds for Community/Cavern news and general game-, GameTap-, and Cyan-related news, and a new listing of the last 4 images to be posted in the Gallery.

The Golden KI, the Library, and the News segments are the only things that still require considerable amounts of effort. The Golden KI is largely complete, but it’s my intention to overhaul the rather arcane voting system and manual contest switch-overs that are currently in place, and replace them with poll-based voting in the forum itself, as well as an automated task to switch the contest over, handle topic/poll creation for each round, and announce a winner after each round is over.

The Library will be largely unchanged, because it doesn’t seem to be lacking much beyond a search feature, and I’m still looking into how difficult that would be to actually implement. The layout will be updated to reflect the new site design (don’t worry, it’s nothing drastic like previous revisions… this is more of a refinement). It’s still in the early-ish stages of development, but it should move fairly quickly once I dig in. My goal is to have the Library complete by Wednesday night.

The News bit is going to require a little bit more work, because I want to democratize it a bit more than it currently is. The new version of the News section will allow anyone with an account to post a news article or event announcement. Regular member accounts will require staff approval of their entries to prevent spam, while certain groups, like TCT, who have a history of posting solid material, will be able to post without the approval restriction. As with the Library, I’d love to have a search feature for this section of the site, but it depends on how feasible it ends up being; both the News and the Library both draw their data from Invision Power Board’s forum database, so the permissions restrictions and such that go along with that need to be worked around in order to get search working outside of the forum itself. Development of News should be completed by Thursday or Friday at the latest. Ideally, this will all be wrapped up before my new computer gets here, so I can give it my undivided attention when it does. I fully expect to have the new DPWR online before October 1st (of this year, just to be overly-specific).

Moving on to a completely different topic, today I started “Phase 1″ of my eventual data storage and backup solution. My current solution is pretty much “hope the drive doesn’t crash before late October”, though I’m hoping to move well beyond that soon. I was doing some browsing earlier today and noticed that Best Buy was selling the new revisions of Western Digital’s MyBook line at $50 off, so I went ahead and sprung for a 500 GB USB 2.0 drive for all of $140 after tax. This will eventually become my Time Machine back-up drive, but for now it’s serving as an extended storage drive for my Mac, because I’ve been running desperately low on storage space for the past while now. I’ve already moved my iPhoto library over, and am in the process of moving my iTunes library over as well, for a combined storage savings of about 80 gigs.

When Leopard comes out, I will be getting a copy along with an additional internal hard drive (probably also 500 GB), which will become the new extended storage drive. I’ll be backing up all of my data to this drive, and then doing a fresh installation of OS X on my primary disk, just to make sure all of the cruft and haxies and random crap I’ve installed but no longer use is cleaned up for before I start using the new OS. Once I have Leopard installed, I’ll copy what needs copying back over to the primary drive, and then set up the MyBook drive as the Time Machine backup target. So, I’ll have 820 gigs of storage backed up on a 500 gig drive. Perhaps not an optimal solution, but one which can be extended as time goes on as need be.

Published by Alahmnat, on September 24th, 2007 at 9:42 pm. Filled under: Alahmnetcetera, Hardware, Myst Community, ProgrammingNo Comments

Create New Text File In Folder for Mac

For those interested, here’s the AppleScript (in convenient ZIP format…) for creating a new TXT file in the currently selected Finder window’s location. It will launch TextEdit if not already open, and the tricky part: see if it just launched, was already running but had no documents open, or was running and has documents open. It will then prompt you for a filename (I know, not 100% Windows-equivalent, but it’s better than having “Untitled 24.txt” in your folder). If you cancel, nothing happens, so yay. If you click OK, you’ll get a new window in TextEdit (or TextEdit will launch and NOT give you two new documents for the price of one… that was a pain to figure out), and a saved file with your chosen name in the Finder window.

One difficulty seems to be that it continually prompts you if you want to run the script when you select it from the Scripts menu, and I have NO idea how to get that to go away :P .

If anybody can turn this into a Contextual Menu Item or an Automator action, that’d be awesome. Heck, even just removing the “Run this script?” prompt would be fantastic.

Download the ZIP of the Script file.

Published by Alahmnat, on March 2nd, 2007 at 9:35 pm. Filled under: Computing, Programming1 Comment

Bugaboo

Solving bugs in code, while perhaps the most frustratingly annoying thing on the planet, is perhaps one of the more satisfying parts of writing code… the most satisfying thing being having your crazy-ass code idea actually work with no bugs the first time through. This is a notably rare occurrence, especially with me.

I also find myself continually annoyed at the fact that 99% of everything I’m doing will never be seen by the average person who looks at the site because I’ve put it on my resume. All they’ll see is the rather simplistic front page, which has since been mutilated into something obscene by the client, who doesn’t have an ounce of design sense in his entire body. Nobody’ll see the dynamically-generated data charts, the fancy AJAX tools, the involved and delicate exercise tracking system, or the complex reservation calendar setup. This frustrates me to no end.

Oh well, at least more of it is working now… moving inexorably closer to being DONE with this damned thing. Gods. But boy does it feel good when stuff starts working.

It’s a wonder I’m not bi-polar…

Published by Alahmnat, on March 30th, 2006 at 7:22 am. Filled under: ProgrammingNo Comments

@&%$!

Note to self… never, ever ever try to mess around with a database at 4:00 AM. Nasty things like dropping data from a production table tend to ensue.

*ded*

Published by Alahmnat, on March 29th, 2006 at 2:59 am. Filled under: ProgrammingNo Comments