Overview

Atomic Rockets is a compilation of information by Mr. Winchell Chung (a.k.a. Nyrath the nearly wise) pertaining to the mechanics of space travel, from the perspective of science and technology as we know them, and some of the social and cultural implications thereof.

Atomic Rockets was originally created to help science fiction creators better appreciate the “science" half of their fiction, and is written in a manner that even the layman can understand. For the more discerning among us, the site even has the relevant equations for those interested in crunching the numbers.

Even if one already knows everything there is to know about rockets as we know them, Atomic Rockets may still be worth visiting for the images. The site is copiously decorated, in delightful counterpoint, with pulp science fiction images from the early 20th century. Retrorockets indeed!

A word of warning: one's appreciation for tech fantasy may suffer considerable deflation after reading it through, but on the whole that seems like an additional benefit.

Short History

My work on Atomic Rockets was the result of a happy confluence of interest and ability. Regular visits and nascent web development skills started giving ideas for possible improvements, but it was not until the advent of Primary Access Node (PAN) version 5 that such a project became feasible. PAN version 5's PHP-based website template program would make upgrading the 60+ pages of Atomic Rockets significantly easier.

Since then I have tinkered multiple times with the Atomic Rockets; each occasion coincided with upgrading Atomic Rockets to use successive versions of PAN's backend program.

Working on Atomic Rockets was a valuable learning experience. I am very pleased how both Atomic Rockets and PAN benefited from fixes and features being ported back and forth. In truth, it was PAN that benefited most; the complexity of Atomic Rockets was very good for dragging bugs and flaws into the light. PAN version 6 was heavily influenced by the needs of Atomic Rockets.

Below are some thoughts on each upgrade. The more astute among us may notice that the time I was working on Atomic Rockets Upgrade #1 is suspiciously coincident with periods when Atomic Rockets received few updates. Now you know who to blame.

Upgrade #1: Feb. 2010 - June. 2010

Upgrade #1 entailed using PAN v5's website template program to generate pages for Atomic Rockets. The program was adapted in a week or two, and a functional example site with a few pages was ready in mid-February when I submitted a proposal. Mr. Chung quickly approved and work started on converting the remaining pages.

"Conversion" mainly entailed stripping down the existing HTML to create the data files used by the program. Relatively minor work included setting up the redirects from old page locations, fixing links due to the page renaming, cleaning up existing code, and the like. All was done by mid-June and it went live in November 2010.

Notable Changes

Backend

It is no small task to maintain and improve anything but a small website where every character and line of code on every page comes a dedicated hacker using nothing more than a text editor. For myself, manually coding in headers, tables of contents, site menus, and the like, for merely five sparse pages was mind-numbing.

Atomic Rockets? Imagine it as a site developed by one man since at least 2003 using the method described above, to become over 60 content-filled pages by 2010. I am unabashedly impressed and humbled by such dedication.

If ever there was a site that needed a website template program to do the heavy lifting, it was Atomic Rockets. And with the upgrade, it got one.

Navigation

Before, navigation was primarily accomplished with a JavaScript drop down menu placed at the top and bottom of each page. It was difficult to get an overview of the site contents with them since the number of items appearing at once was severely limited, and on long pages it took a lot of scrolling to get back to them.

On the up side, the JS menus on each page were generated by a common JS script.

The upgraded site used an always-visible menu in a vertical box in the top right. The menu contents was stored in an XML file used by all pages. The navigation menu below the banner was the same way.

Many pages have multiple subtopics, but few had topic headers or table of contents. With the upgrades, headers were defined in the data files, and the template program automatically generated visual headers and a table of contents for each page at the top right.

Layout

Many of the images were positioned using one-row tables, with an image in one column and text in the other. There were also horizontally centred images. This resulted in large areas of empty space, which became more pronounced with larger screen resolutions.

With the upgrade, images could be “floated” to the sides with text wrapping around them.

Quotations and example calculations received highlighted areas.

Finally, collapsible sections were implemented using jQuery.

Sidestepping Interim Site Updates

On a project management side-note, I failed to account for possible updates to Atomic Rockets while I was working. I unwisely assumed that I would somehow manage to merge in updates near the end. I had no planned process to do this. To make matters worse I failed to even request an update moratorium, which may not have been acceptable anyway.

The solution was all on Mr. Chung's side. He perceived the problem independently and refrained from making updates unilaterally. This was compounded by other circumstances, which resulted in the delay between the site being completed and uploaded.

Haphazard Feature Creep

Atomic Rockets revealed the limitations of the custom data file format used for PAN version 5. Just adding additional options for page headers (images for headers, headers that were not added to the page table of contents, etc.) demonstrated that even minor improvements caused a noticeably increase in the interpreter's complexity. Nonetheless, this ugly method is what was used for Atomic Rockets for lack of something better.

Abstracting custom header id attributes and collapsible sections promised to be even more complicated. Those were simply coded manually and not handled automatically by the template program.

This led to PAN version 6 which used XML data files instead. Version 6 was developed in late-May 2010 and went live early the next month. By this time Atomic Rockets was nearly done. I postponed the second upgrade since there was no telling how long it would take (the first upgrade took rather longer than expected), and finished Atomic Rockets as it was.

In hindsight, there was plenty of time to make the next upgrade.

Upgrade #2: Nov. 2010 - Jan. 2011

When the first upgrade went live in November 2010, I regarded the next upgrade based on PAN version 6 to be inevitable. At the time, I joined the throng in enjoying a new series of site updates by Mr. Chung and it seemed immediate action was unnecessary.

That changed by the end of the month. Mr. Chung encountered a curious problem with creating a new page from scratch, and had to workaround this by using existing components as boilerplates. I decided the sooner PAN version 5 was excised the happier everyone would be.

The upgrade went much smoother and faster than the first. Mr. Chung was already tracking his changes since November with revision control software. I tried to incorporate changes into the upgrade in a far cruder manner.

This upgrade was not uploaded.

Notable Changes

Backend

With PAN v6, data files became written in XML, which was easier to maintain, extend, and interpret using XSL transformations.

Navigation

Lightbox image galleries, based on the jQuery JavaScript library, were introduced. I thought this was a better way to integrate images that used a thumbnail/full-size pair into pages; images could be browsed without opening new tabs or windows.

Look and Feel

Upgrade #2 introduced a noticeably different appearance. It reflected experiments with border styles, border colours, and backgrounds colours, to improve contrast between sections and elements.

Upgrade #3: May 2011

Upgrade #3 saw PAN version 8 ported to Atomic Rockets. The key change was invisible to the visitor: a major refactoring of the website template program without changing the data files. However, I took the opportunity to tweak the site's appearance and navigation scheme.

This update went live at the end of May 2011.

Notable Changes

Navigation

Upgrade #3 featured yet another attempt to address the problem of the very long menu. Instead of having the site menu display below the page table of contents, it was moved into a pop-up menu. The menu could be accessed from a roll-over area at the top right that was always on the screen, no matter where on the page the visitor scrolled to. The pop-up was implemented with CSS, so it would still function with JavaScript disabled. This freed up space for content and made the site menu even more accessible.

The site menu arranged the list using vendor-specific versions of the CSS3 multi-column property. Due to CSS comparability and screen size issues, visitors using Internet Explorer 9 (and older) or mobile browsers continued to receive the old site menu from upgrade #2.

Look and Feel

Upgrade #3 introduces the use of a number of visual improvements implemented using only CSS properties. The most obvious were the vendor-specific CSS3 properties that enhanced borders and allowed for backgrounds using colour gradients.

Again, visitors using Internet Explorer 9 (or older) would not benefit from these improvements.