DIY toiletries

20151213: [ sawall > household ] { recipes }

While I traveled long term in Asia, it became impossible to reliably find many of the liquid cleaners that I was familiar with. Sure, if we went to regions popular with backpackers we could re-up, but many of our destinations were off the beaten path.

This meant learning to make our own toiletries. The basic approach was to bring lightweight items that offer a lot of bang for the buck, like essential oils, then combine them with ingredients that are easy to find almost anywhere, like water and baking soda.


Mix about 1/4 tbsp baking soda into 1 tbsp coconut oil. Apply an eraser head worth under each armpit after showering. This works great but be careful not to use too much because the abrasion from the baking soda can become irritating. A drop or two of essential oil in a scent you enjoy can also be added to the mix - but go easy on that too.


This is a great-tasting mouthwash that combines several oral protective ingredients. In a 1 cup container mix:

  • 2 tsp vodka
  • 1/2 tsp baking soda
  • 1/4 tsp xylitol (which you can find in packets in a lot of places)
  • 8 drops tea tree oil
  • 8 drops peppermint oil
  • water to fill the container

wool spritz

I wear a lot of merino wool, and the one downside is that moths can go after it. This spritz should be applied to wool storage areas every week or two to keep moths away. It also makes a nice bathroom fragrance. In a spritzer bottle that holds 3 tsp:

  1. Shake 4 drops of lavender oil in 1 tsp of witch hazel or vodka for 30 seconds.
  2. Add 2 tsp of water and shake for another minute or two.

disinfectant spritz

OTC disinfectants can be pretty strange in some countries. My typical approach was to put a few drops of tea tree into a small spritzer and then fill it with vodka. I still keep this on me at almost all times for first aid.

chocolate chip cookies

20151213: [ sawall > bake ] { recipe }

My mother taught me how to bake, and one of the first recipes I learned was cookies - chocolate chip, oatmeal, and over a dozen different types for Christmas. My personal favorite is still chocolate chip, and it's what I usually make when baking at home.

This recipe is based on one that my mother's friend passed along to her but has several modifications based on trial and error, as well as some experimentation with several recipes I've found. I like my cookies darker and more earthy, which is why I don't just use all purpose flour. I've also come up with a gluten-free variant that I think tastes great - some daysI like it even more than wheat!


  • 1 cup butter [melted or whipped]
  • 1/2 cup white sugar
  • 1 1/4 cup brown sugar [lightly packed]
  • 3 tsp vanilla
  • 1 tsp lemon juice
  • 2 eggs [add 1 egg yolk if making gluten free]
  • 2 1/4 cup flour mix
    • normal: 1 3/4 cups white flour, 1/2 cup buckwheat or whole wheat
    • gluten free: 1 cup oat flour, 3/4 cup buckwheat flour, 1/2 cup quiona flour
    • oaty: swap 1/2 cup rolled oats for 1/4 cup flour
  • 2 tsp salt
  • 1 tsp baking soda
  • 1 1/4 cup chocolate chips
  • 1/2 cup nuts [optional]


  1. melt or beat butter until whipped. melted butter will make the cookies flatter, more chewy, and sugary. whipped will make them softer and more cake-like.
  2. beat sugar, vanilla, lemon juice, and eggs into butter
  3. slowly mix in 1 1/4 cup flour
  4. mix in salt and baking soda
  5. mix in more flour, slowly, until the batter is thick and gooey, which might not be all of the remaining flour. this is the magic step - you have to mix it "until it feels right", which takes practice. try not to get it too dry, it's easier to add more flour and hard to effictively offset too much flour with liquids at this point.
  6. mix in chocolate chips and nuts if you're using them.
  7. spoon cookies onto cookie sheet, using about 1 1/2 tbsp per cookie.
  8. optionally grind some salt onto the cookies
  9. optionally press some nuts into the top of the cookies
  10. bake at 325 for about 15 minutes. take the cookies out when the edges are starting to get dry. let them sit out for another few minutes - they aren't actually done until at least 5 minutes after you took them out of the oven.

emerging from dormancy

20150902: [ sawall > hack ] { | siglican }

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!

knock knock

20141015: [ sawall > hack ] { pelican | }

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.


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 spammers1 meant that my new part-time job was using an awful UI on a flaky network to approve users and comments2. 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 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.


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 plugins3.

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 later4.

Welcome to the beta version of that blog I keep meaning to start up.

  1. As of this writing, there are 623 registered users on wonderphyle, at least 600 of which are spambots. 

  2. Of course, services exist to help one deal with spam, but that's more money down the [Inter]tubes. Also, the fact that most of the spam is malformed crap that nobody would click on anyway has got me wondering if the spam mitigation services are the ones doing all the spamming in the first place... 

  3. Including some comment plugins, which I plan to investigate in the future. 

  4. Check out if you want a sneak-peek at what I've been up to on this front.