Right after my last, extremely optimistic, post, I got deep into the bowels of my static
gallery generator, siglican. Then an awesome Real Work opportunity presented
itself and I jumped at the chance. Unfortunately, I had left siglican in a
state such that it was breaking my blog generation, so I was not only stalled
on getting photos up here, but I was also suddenly unable to get any blog posts
up either.
I was throughly sidetracked by my awesome freelance engineering gig (which I
will likely be moving to full time with soon - more on that later), a bunch of
Real Life issues (protip: don't let your washing machine leak onto bare
drywall!), and a whole ton of puzzle games (a new obsession), so I dropped
siglican on the floor to gather dust for a while.
siglican gallery
I'll keep this short for now, but I'm very proud to say that I've gotten my
gallery generation working properly, along with a colorbox-driven gallery.
Someone even made a small contribution to the siglican
codebase the other day, which was
gratifying.
While I get my photos into somewhat better order I've popped up a couple of
sample galleries here so you can get a look at what
my project looks like. I'm excited to finally have a place to post my photos
that isn't a social media site. So, please enjoy what's here and I plan to get
more photos up soon!
who's there?
Outwardly, this site has appeared as a collage of redirections. In actuality,
various projects have been hidden within its depths, but they have lacked any
sort of friendly public face. So, finally, it's being sorted into a home base
where all my online stuff is can be properly categorized, sorted, examined,
tagged, cross-checked, labelled, and observed.
My technical background is in networks, systems, and distributed computing - in
the parlance of our times I am a "cloud engineer", which is just the latest
buzzword for systems that utilize remote calls. I love coaxing machines into
talking nicely with one another, and as such enjoy architecture, interfaces,
and protocols. Big complex systems with lots of moving parts are my chosen
domain. As such, front-end development has never been my preference.
When I first got into the game I noted that a front-end engineer would spend
about 85% of their time fighting to make their code look right in all the
browsers and all the aspect ratios, while only 15% of their time was spent on
"real" code, most of which wasn't particularly interesting (to me). As a result
I've been averse to sorting this site out. My procrastination has finally paid
off: existing front-end tools are vastly less annoying than what existed a
decade ago.
blog
My intention to "start a blog" has rattled around my mind for quite
some time now. In my brain that's basically code for "put all my stuff in one
place that I'm in control of." Over the years, I've participated in gobs of
social media platforms, starting with local BBSes, then moving on to MUSHes,
muds and irc, then on to early blogging platforms like LiveJournal, finally
ending up on all the likely suspects that we all know and love today. (Anyone
need an Ello invite?)
Social media sites all have their pros and cons that are worthy of a separate
blog post, but they're also all ultimately disappointing because they don't
upport expression that fits outside of their individual paradigms. It is truly
amazing how many different ways we have to communicate with each other, and how
most of that never seems to turn out quite right. So it's my intention to
embrace them all (well, at least the ones that make sense to me) and use this
"blog" as a hub.
Full disclosure: this isn't my first attempt to post a blog here, but it's the
first one that I'm actually sharing with the world. I've played around with CMS
platforms on and off, but I found myself annoyed with them for being
(paradoxically) simultaneously insufficient and overkill. That is to say, basic
theme modifications and asset management seemed incredibly difficult, while
there were specialized plugins to do all sorts of powerful things that I didn't
care about. In my opinion, the theme creation and UI admin tools for popular
products like Wordpress and Drupal are terrible. I've even developed a cynical
suspicion that the difficulty pertaining to theme creation and complex
administration has emerged because Wordpress and Drupal consultancies frown
upon tools that might make the platforms so useable that their clients won't
need to sign a maintenance contract.
I did manage to cobble together a Wordpress blog on
wonderphyle, to document Heather's and my world
travels. It was downright painful to spin up, and the tools for managing
photo galleries (which was the main thing we wanted to do) required insane
numbers of clicks per image. The (admittedly cheap) database was also quite
slow, which made interacting with the site while connecting from international
locales with disadvantaged Internet nearly impossible. On top of this,
persistent spammers meant that my new part-time job was using an awful UI
on a flaky network to approve users and comments. No thanks.
blog who?
Now that I'm back home and have bandwidth (mental, emotional, temporal, not to
mention Internet), I decided to revisit my sawall.org problem and
create an actual web presence for myself. My requirements:
- easy to personalize a theme's basic layout, colors, and fonts
- easy to create basic pages and blog posts
- secure and easy to deal with spam
- lightweight and fast
- a reasonable photo gallery solution
Hosted Wordpress and Ghost solutions were initially promising as a way to
outsource security and spam issues. But I'm a creature of text files and
command lines, and wasn't enthused with the prospect of yet-another-web-GUI.
Also, paying a service for "just a blog" seems excessive, especially when I'm
already paying Dreamhost so that I can host whatever the heck I want here.
This led me to discover static site generators. For those of you unfamiliar
with the concept, the idea is that most small websites don't have much content
that's really dynamic (comments being the one frequent exception). So rather
than deploy a database-driven CMS onto the web, a static site generator builds
the site offline and then it gets pushed out as static markup, scripts, and
templates. This is extremely appealing to me: no online database means a greatly
reduced attack surface, faster response times, and less operational hassles in
general.
pelican!
After considering my options I picked Pelican. It's
a powerful Python package that takes content metadata, Jinja templates, and a
css/javascript theme and outputs a fully functioning website. Themes can be
easily configured with Jinja and Pelican has a small-but-thriving user
community that is churning out handy plugins.
Not only is theme-creation great with Jinja, but I'm taking advantage of the
Foundation responsive CSS framework, which
has pretty much eliminated the hassle of trying to figure out how to get my
templates to work in multiple browsers and aspect ratios. I also love how
Sass makes it vastly easier to deal with CSS
programmatically.
The one thing that Pelican is missing is a sophisticated photo gallery plugin
that handles metadata markup of photos and albums. So, I'm in the process of
correcting this by porting the fantastic Sigal
static gallery generator so that it can act as a Pelican plugin. More on this
later.
Welcome to the beta version of that blog I keep meaning to start up.