Felix Crux

Technology & Miscellanea


Tags: , ,

XHTML is Dead, Long Live XHTML

So the W3C has officially ceased work on the next iteration of the XHTML standard, abandoning it in favour of the new and shiny HTML 5. I have some mixed opinions on this, since the simplifying purist in me likes the consistency and rigour provided by XHTML, but HTML 5 appeals to my more pragmatic instincts. HTML 5 also has support for a slew of nice semantic tags, like <section>, <article>, <header> and <footer>, which should make it easier and cleaner to style documents according to their content, and do away with the ubiquitous <div id="blogpost"> constructs that currently make up most sites.

Since I'd hate to be left behind when the HTML 5 rapture arrives, I have started converting this site to use the proposed standard. Of course, browser support for HTML 5 tags is minimal at this point, but there are some workarounds. All block elements, for example, need to be defined in CSS as display: block. Interestingly, where certain versions Internet Explorer previously tried, and failed terribly, at rendering this page, using the new HTML 5 elements actually improves the site display, because currently no version of IE even tries to style unknown tags appropriately. The result is that the page displays in a simplified and entirely unexpected way, but one that actually allows you to read the content, as opposed to a garbled mess where large swathes of the page are not visible. And people complain that there's no progress.

In any case, please let me know if any worthwhile browsers render things funny.



Tags: ,

Long Time No Write

Well, it's certainly been a long time. The past months have been hectic, stressful, confusing, and therefore very interesting. Some of the things that have been going on:

  • Minor changes to the back-end workings of this site, some improvements to the reference library.
  • Transitioned from my former role with the Payments group at Amazon.com into my new one with the Software and Video Game Downloads team. I greatly enjoyed my time in Payments, (enough to want to stay with Amazon once my internship was technically over, obviously!) and I am very excited about my new team as well.
  • Did some more photography.
  • Went on a short but fun hiking trip up to Cougar Mountain.
  • Read this paper and have been amazed at how differently I think about interface design as a result.
  • Started learning about Android development (the cellphone kind).
  • Started my distance-ed course in Cognitive Science, which I'm very hopeful about.

Of course, there's a whole lot more that I don't even remember.



Tags: ,

Photo Galleries

It seems as though I'm only really getting time to work on the site on weekends, which is why this post is coming a week after the last one announcing a new feature. In any case, in addition to some behind-the-scenes improvements, I have added photo galleries, with some of my favourite photos. The galleries are a subset of the library, and can be found there.

This knocks another feature off my list of things I want the site to support before I consider it done. The others are commenting on blog posts, and possibly a way to get new posts via email, rather than RSS (I have noticed at least one RSS-to-email gateway in the logs, so obviously someone wants that), as well as a decent search/browsing system for the reference library.



Tags: , ,

Nifty git remote repositories

I am afraid that I have to admit that the development of this site has until now proceeded in what any programmer must consider a state of sin: it was not under version control. Sure, I had periodic snapshot backups, but forget about versions, branches, and reverts.

The reason for this is that I was under the mistaken impression that my VCS of choice, git, made it difficult to set up remote branches. I think my confusion stemmed from the fact that it is somewhat tricky to set up public-facing ones with good commit-access control etc (which is why GitHub is so great).

Now that I looked into it more, I find it's actually tremendously easy, and I've got a really great work-flow set up: I have a master repo on the server, a development repo on my laptop, and another one in the directory from which the site is served. I can make changes on my laptop (and thanks to the magic of makefiles and m4 macros, keep a separate dev config file), and then push those to the master repository. When I'm ready to launch, I just pull them to the serving repo and run a make prod.

Setting all this up was surprisingly easy. The first step is to set up the master repo, using git --bare init. This initializes an empty repository, additionally specifying (via --bare) that git need not bother with anything but the repository metadata itself, and can ignore the actual working files. The two client repositories can then either be cloned from this master one, or if one of them already contains data, simply add the master as a remote branch. Pushing and pulling from one repo to another is now a breeze.

As a result of this exciting development, I've gotten around to fixing up the reference library somewhat, although it still lacks any kind of searching or sorting, not to mention pagination.



Tags:

Hello World, as they say!

A watercolour painting of the Earth, as seen from space.

I had been toying with the idea of expanding my website into something larger, more interesting, and hopefully better designed for some time, when around July of last year I began playing around with the Python web framework known as Django. I was immediately struck by the elegance, ease, and simplicity of developing relatively complex applications on top of it, but didn't think I had any serious use for it at the time. I bookmarked the excellent Django book and promptly forgot all about it.

In November, as the academic term was winding down, I came across the bookmark, and was pulled into experimenting with it again. Within a few hours I had written most of the existing site you now see before you, and realized that I could actually use it. I promised myself that I would clean up the code, make a nice layout, and actually launch the site, and I arbitrarily picked the end of January as an upper bound for the launch date. I, again, forgot all about it.

That is why I am today, the last day of January, launching an initial version of this blog. I hope to expand it significantly in the near future, especially the reference library, which I envision as becoming something quite useful to me and to others. I have some other nice features in mind, and we'll see how they come along. For now, I'll wait for the DNS to propagate (I have changed servers as well), and head out to an Amazon.com post-holiday party. Hello world indeed.