Archive for the ‘DPWR’ Category

Shared Ownership

Wednesday, September 24th, 2008

I’ve been mulling this over for more than a month now, since I brought it up to Blade as part of our conversations about the GoA after attending the GoMe meeting in August, and have finally reached a conclusion: I can no longer be the sole point of development and administration for DPWR.  The site has gotten large enough, and I’ve gotten busy enough, that I simply can’t handle the work load anymore.  Unfortunately, because of DPWR’s history, transitioning to shared ownership will not be an easy thing.  The code has never been under source control, and development hasn’t exactly been what one might call “professional” at any point in time.  DPWR is how (and why) I learned PHP, and a lot of what I do with the site generally consists of hacking and modifying existing files in Invision Power Board, with poorly-documented and poorly-commented results.

What I want to do is essentially start from scratch in some ways.  I want to start with a virgin installation of IPB and the various components that I use for DPWR (Links, Gallery, and Wiki), and then build the current feature set back into the site.  It’s a fair amount of replicated effort, I know, but I think it’s the only way to start off on the right foot.  To make things potentially easier, I’ve already subversioned the current files so that there’s a base point of comparison that can be built from and re-implemented whole-cloth where appropriate (and possible).  In addition to re-programming the PHP, I would also like to tackle modifying the site’s skin as well, since it’s got some rather obvious legibility issues and needs some love to pull it more in-line with the Guild of Archivists concept (Tweek being the awesome person that he is has provided me with his “Guild Pub” emblem for the GoA, which I’d like to run with).

Ultimately, my goal is to get everything updated and moved to the live site by the end of the year (just in time for IPB 3 to come out and start the process all over again :P).  Since most of the stuff on the site doesn’t need much (if any) modification to work, and all of the really hard work of getting the Archive to support tags has already been done (it just needs to be re-implemented into the vanilla install), I think the thing that would take the longest would be the skin.

I’ve decided to do this now (rather than wait for IPB 3 to come out) for several reasons: 1) I want to make sure that the site is actually maintainable by a small group before IPB 3 comes out and the really hard work of porting the Archive component to the new version begins, 2) I want the site to be able to support all of the requirements that being the host for the GoA puts on it ASAP, and 3) I don’t have the time to do any of this by myself anymore.  I’ve got one pro bono web design project I’m working on right now, and will hopefully have a contract for another site by next month.  Coupled with the 3 months worth of other small-to-massive-sized projects I’ve accumulated over the summer without a Mac to call my own and the fact that I’m at work 9 hours a day, I just don’t have the ability to throw myself at DPWR the way I did when I was 15 without a care in the world ;).  (On a side note, it’s actually kind of scary that I’ve been managing this site since I was 15… it originally launched on Homestead on June 30, 2000)

So, if you’re a PHP developer interested in helping to get DPWR on its feet, please leave a comment with some way of getting in touch with you, or email me and let me know you’re interested.  I realize I’m asking a great deal with no real compensation (all I’ve got are my gratitude and appreciation [as well as my most profound apologies for the current sorry state of the code base]), so I don’t exactly expect a stampede of volunteers, but anyone willing to lend a hand would be very, very greatly appreciated.  I’ll discuss the details of how to get to the SVN source, as well as some other guidelines and requirements, privately with anyone who volunteers.  It’s not nasty, mean, paranoia-inducing “OMG SEEKRETS!” stuff, just stuff that I would rather discuss in confidence because it has to do with a non-open-source project ;).

Updates and Stuff

Thursday, June 26th, 2008

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.

Aaaaaand, we’re back!

Friday, March 14th, 2008

Well, that was fun…

Here’s what happened to cause DPWR’s several-day downtime this month: I received an email from my web host informing me that they were going to be relocating their server center from Hopkinsville, KY to Columbus, OH sometime this month.  Obviously, since this requires physical relocation of the hardware, the site would be offline for a day or two while that migration took place.  When DPWR became non-responsive several days ago, I figured that was the problem, and let it be.

Now, to change gears, the DPWR.NET domain was registered back in 2002 when I signed up for a hosting plan with my former web host.  At the time, I knew very little about the details of domain name management, and my host was never terribly good at informing me of things I needed to do to keep it (like, for example, that I needed to pay for it after the first year despite it being included as a free domain in my registration).  Eventually, after getting fed up with the reliability and general incompetence of my former host, I migrated the site to a new host, but didn’t migrate the domain; I’d paid for it to be renewed for as many years as the contract allowed (which was 5) without bothering me about it, and managed to get the nameservers changed over to point to the correct web host.

This month, without any notification, my domain expired, and evidently reached the end of its renewal contract, because it wasn’t renewed.  Only after some thorough investigation did I discover that my former web host was either bought out by or otherwise subsumed into a completely different company, which apparently has as many communication problems as the one it acquired.  Fortunately, further investigation and semi-frantic calls to my current host revealed that both providers use the same registrar (tucows/OpenSRS) , and that transferring from one service provider to another on the same registrar is roughly a 30-minute process once the authorization goes through.

So, the short of it is that DPWR.NET is now managed through my current web host, which has proven to be considerably more reliable in telling me things that are relevant and/or important to me keeping my site up and running than my old host (in fact, over a year after I canceled my account with them, I was unceremoniously billed for over $100 in unpaid service fees… not exactly a reliable group, them…).  Next March will proceed without incident, provided I’m not so destitute that I can’t keep the site running (highly unlikely at best).  There will likely be one more period of downtime this month when the servers get relocated, but after that, it’ll be smooth sailing.

One last note, though, which I will be relaying to several other forums for the sake of keeping people informed… I will be making concerted efforts to improve the speed and efficiency of DPWR over the next however-long (ideally things will improve by the end of the month) by moving the database to a new SQL server within the host and clearing out as much of the cruft as I possibly can.  DPWR’s file server works pretty well; it just takes forever for the SQL server to respond, and on a site as DB-reliant as DPWR, that creates some serious slow-downs.  I’ll fiddle with it and see what I can do to make it faster, but no promises yet.

I have a ton of work to do on the site, and absolutely no time (or energy, lately) to get any of it done, it seems.  I’ll try to make some improvements before the end of the month, but again, I can’t make any promises.  I think my plate’s finally gotten over-filled, and programming 7-4 every day is doing very little to improve my attitude toward getting more programming done when I get home.

DPWR Progress (Again)

Friday, September 28th, 2007

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!

DPWR Archive Update

Tuesday, July 17th, 2007

For those who are waiting for the Archive on DPWR to actually become something useful again, here’s a large chunk of good news for you.

As of tonight, the upcoming Archive refresh will feature the following:

  • Search - Finally, you don’t have to know the name and category of what you’re looking for before you can find it!
  • Tags - Articles can have multiple tags applied to them, similar to WikiMedia’s Categories tool. This will replace the current category architecture in the Archive.
  • Revisions - Editing the Archive will no longer be a volatile process. All changes are stored in the database, so if something gets defaced, it can be reverted without issue. (Note: this may not apply to attached images, I’m still looking into that)
  • Templates - Like WikiMedia’s {{template}} tags, the Archive will now support (albeit in a slightly flaky manner due to the restrictions I’m dealing with) the ability to insert pre-existing bits of text into another article (i.e. the ability to add a “stub” template to an overly-brief article). It even allows you to define variables to replacement later (this is where it gets slightly flaky, but there’s little I can do to remedy this issue right now).
  • Recent Updates - It’s not a completely-functional “view new entries/edits since last visit” feature, but it’ll show you the last 25 things done to the Archive, which is a start. I’ll likely be expanding on this in the future.
  • Discussion Topics - Each new Archive entry will generate a topic in the forum for discussion. If you really want to know what was added since your last visit, viewing the new topics in this forum would be a good place to start. :)
  • Tables of Contents - Like WikiMedia, the Archive will, if instructed, generate a table of contents from any [h="value"] tags located in the article.
  • Pagination - Incredibly long articles (I’m looking at you, D’ni Timeline) can now be broken up across multiple pages.
  • Functional Subscriptions - Subscribe to an article or an entire tag. The Archive will PM/Email you when something happens.
  • RSS Feed - The Archive now features an RSS feed with the most recent edits to the Archive. Subscribe and stay up to date!

I’m incredibly thrilled about this upgrade. I’m finally bringing the Archive out of the rigid forum-based structure it has existed under since mid-2001 and applying more modern Wiki principles to it. Now I just have to finish the rest of the site… look for the all-new DPWR by the end of the month, provided IP.Gallery gets released in a timely manner.

Boo-Yah

Monday, July 9th, 2007

As a number of you may know, DPWR is (still) undergoing a long-overdue and much-talked-about-by-me upgrade to the latest version of Invision Power Board and its ancillary components. Among the things being done is a complete overhaul of the Archive and a major upgrade to the Gallery. I’m hoping to automate the Golden KI and make it easier and less tedious to manage and participate. The Library may also see some extra love, but it depends on the time I have after upgrading the Archive – much as I’d love to see the Library flourish, the Archive is what most of the people on the site are there to see.

As you may also know, DPWR integrates the entire site into Invision Power Board’s member database and session tracking classes. I’ve maintained this level of integration between the forum and the site for several years now because I believe it is the best way to provide a consistent experience for the visitor and allows me to create a single site powered by a single database without having to re-invent the wheel too much. Unfortunately, this integration also comes at the price of not just being able to toss up the latest version of the forum whenever a release comes out. The upgrade from 2.0 to 2.1 would have completely destroyed the site integration bridge I had built (okay, “cobbled together” is perhaps a better term), and the delays in completing the new skin as well as the site integration back-end caused 2.1 to become 2.2, and I had to start over again. Finally, I managed to catch up with the release of 2.3, and DPWR is well on its way to being upgraded, hopefully by the end of the month. If not, then by mid-August at the latest. The new Archive component will likely be finished within a week or two, and IP.Gallery is moving toward Release Candidate by the end of this week, and those are the only remaining third-party updates I need to get. Everything else is up to me.

On that note, I decided to undertake the site integration bridge tonight while I waited for final releases of the other components. It’s still something of a hack – essentially I’m copying the forum’s index.php file and removing the parts I don’t need to create a site init file – but I’m being smarter about how I implement it this time. For 2.0, I very crudely hacked on the init file and started throwing code willy-nilly in a fashion that only vaguely resembled OOP standards. This time, I’m being clever about it.

Invision Board, for those who don’t know, includes additional files into its execution through index.php based on the task it needs to perform. With IPB 2.1 and later, these files inherit a base class called ipsclass, which contains all of the skin, session, language, and common control functions to do away with the old method of using global variables. I’ve emulated this behavior by creating each PHP file with a class identical to the name of the file itself (i.e. “index” for index.php, “library” for library.php), including the site init file, and then instantiate that class by stripping the file name out of the PHP_SELF variable. From there I can then pass the ipsclass class into the site’s files without resorting to old-fashioned global variables and messy non-OOP practices.

It’s a fairly simple thing, but I’m rather proud of myself for figuring it out in about 30 minutes.

I would also like to note that I never thought I would see the day when a 23″ widescreen display wasn’t big enough for me, but I’m rapidly approaching that point with the number of text files and browser windows I’m juggling trying to pull this whole mess together.

D’ni Timeline

Saturday, November 11th, 2006

I think I have a right to claim that this is the most thorough D’ni timeline on the internet. Wikipedia’s is close, but it’s also occasionally inaccurate (for instance, why is Ri’neref not listed as the first King of D’ni, when he quite clearly was?), and lacks all of the details from Prologue.

Granted, I’m lacking a few of the niggling dates from Until Uru (D’Olympics, I suppose…) and the recent build-up to Live (namely, Town Hall meetings), but I think all of the important events have now been covered. The only dates I think I’m actually missing are the birth dates of several Kings, which I think I’ll get to a little later… it’s rather late right now, and those dates would require considerable (or at least, some)math to calculate, and I’m really not up to that at the moment ;).

I’ve also refrained from listing anything from PotS or To D’ni, because I have no idea how Cyan plans to actually integrate that into the timeline… we’ll see.

Crazy Flakes!

Monday, July 17th, 2006

It’s countdown to Mysterium ‘06 time already! Here’s a few things I’m working on right now…

  • DPWR.NET’s software upgrade from Invision Board 2.0 to 2.1.7
  • Archiver Issue 3 (loooooong overdue now, and probably going to be a post-Mysterium mega-issue)
  • A certain island for The Writing Project, which I’d like to actually have finished by Mysterium… and since we’re leaving on the 26th, I need to finish it in 9 days.
  • Yearly audit of DPWR’s archive.
    • Status: 271 articles of 856 revised, less than 100 of those 271 actually uploaded.
  • Still with the web dev contract from Hell…
  • Packing
  • Work

Oy.

New and Improved!

Thursday, October 13th, 2005

So despite the fact that DPWR has been largely silent for the past week (a fact I’m chalking up to nice fall weather, Myst 5, and school rather than abandonment… ask me later if I’m deluding myself), I’ve started some tentative design work on the new revision of the website. It’s not drastically different, but I’m refining the existing style and colors a bit, making some stylistic changes I’ve been wanting to make for a while, expanding the site a bit, and cleaning up the HTML and CSS output.

And so, I give you the first element of the new DPWR: the emblem. I got tired of everyone mistaking my stylized book and shelves for a lantern (or a napkin ring O.o), and decided to go with a more detailed depiction this time around. The shelves are gone (those were the blue things, FYI), and the book has been redesigned. What I ended up with is this:

Happy Anniversary DPWR!

Monday, August 1st, 2005

DPWR is officially 5 years old now. The original D’niPedia website was launched on July 31st, 2000, and has been running in some incarnation ever since.

It’s also been crash-free for the past 2+ years (a fact which many long-time forum members will rejoice over), so we’re going strong now, woo!

*throws confetti everywhere*