My first iOS app: TapWatch

I am very pleased to announce that TapWatch, my simple and beautiful stopwatch app for iOS, is now available! View it in the App Store here or check it out in all its minimal glory:

Tapwatch screenshot

Not that long ago, I needed to time something. Having my iPhone handy, I figured it would be the work of a moment to find a simple stopwatch app and get on with things. I had wanted but three things in my stopwatch:

  • No buttons
  • Aesthetically pleasing design
  • A log of recent times

Half an hour later, I emerged from the morass of the stopwatch apps in the App Store without having found anything that even satisfied two out of three (including the stopwatch mode in the built-in Clock app).

Clearly developing a stopwatch is something people do as a learning exercise, and then forget about. But simply because a niche is unprofitable does not mean that it should not have at least one beautiful option. So I decided to write my own stopwatch, and thus TapWatch was born.

TapWatch offers the following niceties:

  • Tap anywhere to start and stop the timer: no more hovering your finger over small buttons!
  • Double tap anywhere while a timer is running to start a new lap: you won’t lose any time, because TapWatch notices the timestamp from your first tap, and picks things up from there on the second
  • Slide left to view your 50 most recent times (automatically saved!)
  • The screen will stay awake as long as TapWatch is active and a timer is running, so feel free to watch what you’re timing
  • Multitask: exit TapWatch while a timer is running with impunity; even if iOS quits it in the background it will continue timing
  • Scales beautifully when timing things that last anywhere from tenths of a second to hours

If you ever need to time anything, I hope you will give TapWatch a try! I would also love to hear from you if you think the app needs improvement; my personal uses for stopwatches are pretty basic, so I would particularly love to hear how people who need to time things often like the app (coaches, teachers, etc.).

Slicy 1.0

If you’re a busy person, here’s the short version: we at MacRabbit just released an awesome new app called Slicy that is absolutely essential for anyone who ever needs to export an image from Photoshop. Go check it out now.

The short story is pretty boring, isn’t it? Thought so. Here’s the long version:

Since moving from doing web development to being the guy who does whatever needs doing at MacRabbit (mostly involving Espresso plugins and customer support), I haven’t been using Photoshop as often. However, I do still need it from time to time; Photoshop is always central when it comes time to redesign one of my sites, and I crafted all of the UI for TapNote and my upcoming iOS app TapWatch in Photoshop (there was a brief stint where I spent a huge amount of time and pain trying to do the same thing in other apps, but it wasn’t remotely worth it).

But there’s one aspect of using Photoshop I always dread: slicing and exporting my images. It sucks. A lot. Always. I can spend almost as much time rearranging and slicing a file in order to get the right transparency and backgrounds as I spend designing the darn thing.

And what particularly sucks is that after I’ve painstakingly sliced my document and created a total mishmash that looks nothing like the original mockup, I inevitably discover that some small thing doesn’t work. Perhaps a button needs to be just a little bigger, or I want to change the color palette slightly.

This wouldn’t be a big deal, except that I no longer have a working mockup. I have my original mockup, and then I have the sliced-up mess that I have to use to actually generate my site files. Trying to move changes between these two versions is soul-destroying.

If you use Photoshop with any regularity to prepare graphics for apps, the web, or just about anywhere that necessitates the “save for web” dialog, you know what I mean.

Time to cue the heavenly light and choir, though, because our savior has arrived and its name is Slicy:

Slicy for Mac

Using Slicy is ridiculously simple: in your Photoshop file you name your layer or layer groups the same as the file you want to output, then drop the PSD on Slicy and watch it work its magic.

For instance, I recently had to design an iOS app icon for TapWatch, which thanks to the sheer number of iOS device resolutions meant I was actually designing five versions of the same icon. When it came time to export my various icons, I simply named the appropriate layer groups “icon.png”, “[email protected]”, and so forth, then dropped the PSD on Slicy to export all of them without needing to hide or remove the background layers that provided me context for the icons (or do any other configuration). When it was done, Slicy asked me if I wanted it to watch that particular file for updates and automatically do the same export whenever it changed. I checked “yes”, and now as long as Slicy is running I can make a minor change to my TapWatch icons and export them all simply by hitting command-S.

It’s a completely different way of working, and I wish that it had been around when I was doing web work. There were so many times when the graphic designer wanted to change some small thing, and sent the change over in their original mockup, which I then had to re-translate into my sliced version (and just hope that I noticed all the changes). With Slicy, I could have renamed the layers appropriately, sent the mockup back, and they would be able to make their changes right in the same file. Once they were done, all I’d need to do would be to toss the file in Slicy once more and go.

At this point, the people who are regular users of Photoshop have probably already bought Slicy, but in the interest of helping people get the most out of it, here are some additional fun things to know:

  • If you need to define a specific region for your image to live in, just add a square vector or layer mask to the tagged layer group. Slicy will base the dimensions of the final image off the mask instead of auto-generating them based on the surrounding transparency (this also works to explicitly define the image area if Slicy is missing an outer stroke or shadow, which occasionally happens in v1.0). If for some reason you don’t want to add a layer mask, you can stick a square vector shape layer named @bounds inside of the layer group, and Slicy will use it to calculate the boundaries of the image instead.
  • As you would expect, layers do not need to be visible for Slicy to export them (or even completely contained in the canvas, for really large vector images and so forth).
  • If you name multiple layers identically with an .icns extension, Slicy will automatically combine them all into a single Mac icon file.
  • If you need to slice something like you would traditionally in Photoshop (so that the background layers are visible and so forth), add a group called @slices, and populate it with square vector shapes named after the images you want to export. Slicy will calculate the size and position of the images, and include everything in the group that contains the @slices group (which could be the entire PSD, if you place it at the root level).

Slicy is still a 1.0 product, so it doesn’t support everything (notable exceptions are CMYK documents and advanced filters), but MacRabbit will of course continue to improve it to try and address the edge scenarios. If you would like to buy it, you can find it here, and if you would like to see a Photoshop file formatted for use in Slicy there are several examples on the Slicy website.

Orange tapioca pudding

I love tapioca pudding. I’m generally not a big fan of puddings, but tapioca was one of the few my mother made growing up, and since it’s not terribly sweet and goes wonderfully with fresh fruit I fell for it (growing up we would go to U-pick farms for strawberries and other berries, and after making the bulk of them into jam serving them over tapioca was second in awesomeness only to making them into pie).

In any case, this evening I found myself in need of something to serve with dessert crêpes since we didn’t have any ice cream in the house (a batch of crêpes split in half makes almost exactly two savory and two dessert crêpes, which is perfect for my girlfriend and me). I figured I’d try tapioca pudding, but I wasn’t eager to have plain tapioca pudding inside of plain crêpes.

One thing led to another, and I ended up with orange-flavored tapioca pudding, which is ridiculously good for a shot in the dark (I searched the internet prior to making it, but aside from learning that this is something a small number of people do I didn’t find any good recipes. If you like tapioca pudding and oranges, I highly recommend you give it a try.

Orange tapioca pudding recipe

(This is a lightly-modified version of the recipe on the Minute tapioca box; you could likely adjust it for use with other types of tapioca without much effort; the trick is substituting orange juice for most, but not all, of the milk.)

  • 1/3 cup sugar
  • 3 tablespoons Minute tapioca
  • 2 cups orange juice
  • 3/4 cup milk (whole milk is best)
  • 1 egg, beaten
  • Pinch of orange zest (optional)
  • 1 teaspoon vanilla extract
  • Splash of orange flower water (optional)

Combine the sugar, tapioca, orange juice, milk, beaten egg, and orange zest (if you have a fresh orange on hand) in a medium pot and let it sit for five minutes.

Cook on medium heat, stirring constantly, until it comes to a full boil (boils while you are still stirring). Remove from heat. Stir in the vanilla and a little orange flower water (if you have any on hand).

Let the pudding cool for 20 minutes or so, then either eat it warm or refrigerate for later. I prefer it warm, my girlfriend prefers it cold.

I can say first-hand that this is absolutely divine served in dessert crêpes, garnished with orange zest, and drizzled with chocolate sauce. I fully expect the left-overs will be great on their own, too. If you’re really feeling fancy, slice up some fresh orange or other citrus-friendly fruit and serve it alongside or on top.

Updated site theme

Another year has passed, and once again I’ve been feeling the itch to redesign So without further ado, I present to you its latest look!

I was actually pretty happy with the previous design, so I stuck with the same main layout and color scheme. The main problem I had it was that the one pixel borders and arrows were simply not breaking things up enough well enough; it was really difficult to distinguish between posts on the homepage, and viewing the site on a mobile device was an effort in frustration (since the borders were virtually invisible and the headings were longer than the text, which made zooming in difficult).

Both of these issues should now be fixed, and I also introduced some fun little features here and there like threaded comments, a search button in the header to jump straight to the footer, and so forth. Additionally, the site should look beautiful on the iPhone 4 (I haven’t had a chance to test it on other mobile devices yet).

I’ve tested things on the major non-IE browsers, but please let me know if you run into any problems! I always love getting feedback.

Authors you should read

I am a binge reader. I will go for months at a time without cracking the cover of a book, and then in the space of a week I will do nothing but scour book listings in my free time and avidly consume everything I find. Thanks to my utter lack of discipline when it comes to reading, this typically results in me losing sleep, wandering around the house in a daze, and generally making a nuisance of myself.

It’s been a while, but I think it is long past time that I shared the love. Here are some authors that I have discovered recently who you should not miss, along with some old friends and standbys.

In general, my tastes run to fantasy and science fiction, so that’s what you will find here.

My standbys

Some of my standbys you already know about from elsewhere. Neil Gaiman (start with Neverwhere if you prefer action, StarDust if you like romance, or The Graveyard Book if you just like a ridiculously good novel). Terry Pratchett (start with Nation, or just about any Discworld book aside from Colour of Magic; Equal Rites or Guards! Guards! would be excellent entry points). J.R.R. Tolkien, J.K. Rowling, C.S. Lewis.

But there are at least four that you might not have heard of, and need to know about. (Note that all links below are unencumbered; I tried playing the affiliate linking game in the past, but it made me feel dirty and didn’t make any money, so screw that.)

First up, Diana Wynne Jones. If you like children’s fantasy, you’ve probably already run across her, but if not you should waste no time in picking up one of her novels. Sadly, Jones passed away this year but she has a large corpus of novels, virtually all of which are excellent. Start with Howl’s Moving Castle, The Lives of Christopher Chant, or (if you can find them) Cart and Cwidder or Archer’s Goon.

Diana Wynne Jones: Amazon, B&N

Second, C.J. Cherryh. Cherryh mostly writes science fiction, but she dabbles in fantasy from time to time, and she is fantastic. There are a few of her older books that I like less well, but in the last couple decades she has really hit her stride and at this point I buy whatever she publishes sight unseen. Great starting points for Cherryh are Foreigner (stick with it until you meet Bren Cameron; maybe the first quarter of the novel sets up the historical situation and is less interesting), Cyteen, or if you can find it Merchanter’s Luck. Also, don’t be scared by the number of Foreigner books out. Yes, it looks like another Robert Jordan-level commitment, but it’s not. Each book is self-contained, and they have broader story arcs that are organized into trilogies so if you only ever buy one to three books at a time you’ll have a very satisfying reading experience.

C.J. Cherryh: website, Amazon, B&N

Third, Jonathan Stroud. I, likely along with most of his readership, discovered Stroud in the surge of children’s fantasy that occurred thanks to the success of the early Harry Potter books. However, I like him far better than J.K. Rowling (particularly after reading Harry Potter and the Deathly Hallows and its awful ending/epilogue). Start with Amulet of Samarkind, and if you don’t hit it off with Bartimeus read Heroes of the Vally instead.

Jonathan Stroud: website, Amazon, B&N

Last, Megan Whalen Turner. There’s only one starting point for Turner (The Thief) since she has only published books in a single series/world so far. Aside from Cherryh (whose intense third-person style might not appeal to some folks), Turner is the most likely of these authors to not appeal to everyone. The Thief is very accessible and kid-friendly (it was a Newberry Honor book), but Queen of Attolia is much more stand-offish when it comes to characterization and is more of a YA or adult book thematically. Each of her novels so far has had a distinct flavor from the rest, making her a difficult author to pin down.

Megan Whalen Turner: website, Amazon, B&N

Indie authors

I’ve been reading a lot more self-published authors on Kindle lately, and wow is it ever a mixed bag. A small number of them have been horrible (but evidently spent a lot of time making the first part of the book that’s in the sample read great, unfortunately). Most of them have been mediocre to the point where I stop halfway through and move on. And at least two of them have quickly rocketed onto my favorite authors list.

First off, Michael J. Sullivan. At this point, he has achieved a level of legitimacy dreamed of by most other indies, and you can find his fantastic six Riryia Revelations in ebook or print format. Start with Theft of Swords (followed by Rise of Empire and finally Heir of Novron). Sullivan writes old-school adventure fantasy, and I can’t recommend him highly enough.

Michael J. Sullivan: website, Amazon, B&N

Next up is Lindsay Buroker. If Michael J. Sullivan was the best indie author I discovered in 2010, Buroker is hands-down my favorite for 2011. Her first book is The Emperor’s Edge, and it is a wonderful romp through a steam-powered fantasy city. Note that this is not steampunk (although she has a mini-series of novellas that apparently do fit that genre which I have not yet read). Instead, the Emperor’s Edge series are character-focused fantasy adventures. This is also one of the few series where I’ve discovered an “ultimate assassin” type character who actually seemed realistic (it’s really difficult to create a sympathetic cold killer, but over the course of the three books currently released Buroker manages it).

Lindsay Buroker: website, Amazon, B&N

And that’s about it for the independent authors. I’ve found others who were decent, but those are the only two who fall into my “must read everything they write and evangelize them afterward” category.

Newly discovered

I have run into a fair number of excellent authors since I last posted anything on this blog about reading, so these are in no particular order.

You need to read D.M. Cornish. His first book is The Foundling’s Tale (might also be called Monster Blood Tattoo, depending on where you live) and he is one of the authors on this list who is not optional. It is very, very rare in fantasy for people to create things that are truly unique. Typically fantasy relies on mythology, fairy tales, or Tolkien and the many stereotypes that arose out of his founding epic. D.M. Cornish, however, has created a world unto itself, including a new and wonderful vocabulary. He is also one of those rare authors who illustrates his own works, giving you some wonderful insight into how he sees the characters he is describing.

D.M. Cornish: website, Amazon, B&N

I discovered Catherine Fisher because of Incarceron, which is a fantastically interesting book about two worlds: one privileged, with their high technology hidden behind the scenes in order to enforce the illusion that they are living in the past; the other a prison-world where the prison is actively trying to kill its inmates. I highly recommend it. After finishing Incarceron I discovered Fisher is quite prolific. So far I have only read her Oracle trilogy, but it was excellent (a very odd blend of Egyptian and Greek mythology that somehow completely works). I’m looking forward to discovering more of Fisher’s work in the months to come.

Catherine Fisher: website, Amazon, B&N

A year or two ago, I tried Scott Westerfeld’s Leviathan (this one is legitimately steampunk), and since then I’ve read everything he’s written that I can find. Westerfeld is an intriguing one: his premises and characters are flawless and fascinating, but in almost every world he has written I have left it feeling like he fell short of his own potential. He tends to setup worlds where people are diametrically opposed to one another, but often they just shrug off their differences and move on with it. For instance, Leviathan focuses on World War I except that the two sides are divided into Clankers (people whose society is powered by mechanical constructs) and Darwinists (people whose society is powered by artificially fabricated animals). This is a socio-cultural divide that would be deep-seated, largely emotional, and difficult to overcome. Yet the one time the main characters address it boils down to an argument where one says “machines are better”, the other responds “no, animals are better!” and they leave it at that. The ethical, psychological, and cultural ramifications of Westerfeld’s creations are largely unexplored (or left to the imagination of the reader). I have to recommend him, though, because his books and characters are so much fun, and although he pulls back whenever it comes time to deal with deeper issues his premises on their own open up a lot of interesting supposition about our own world. Other than Leviathan, Uglies is an excellent starting point for Westerfeld. In all cases for Westerfeld, ignore the covers of his books. They are never indicative of the quality or style of the books themselves.

Scott Westerfeld: website, Amazon, B&N

Rachel Neumeier is another author whose entire corpus is worth reading (although her very first book is less excellent). In particular, The Floating Islands is a ridiculously good standalone, and her griffin mage trilogy (starting with Lord of the Changing Winds) is one of my recent favorite fantasy discoveries (and what introduced me to her). At this point, Neumeier is another one of the few authors whose books I will simply buy without looking at the description because I know they won’t disappoint.

Rachel Neumeier: website, Amazon, B&N

Lastly, Patricia Briggs. Although I have been getting bored recently with her Mercy Thompson series (stereotypical vampires+werewolves urban fantasy is not my thing), her writing is excellent, and I particularly enjoy her early “duologies” like Dragon Bones and its companion Dragon Blood. Mercy Thompson is worth reading, too, if you aren’t burnt out on all the terrible urban fantasy (this is one of the urban fantasy series of late that actually deserves to survive, although I hope Briggs brings it to a close sooner rather than later).

Patricia Briggs: website, Amazon, B&N

The search goes ever onward

There are of course loads of other great books that I’ve read in the recent past (I didn’t even touch the mountain of princess books that I worked my way through recently; I have no idea why I went on a princess kick, but once you start something like that you enter into a self-reinforcing cycle with Amazon’s “other users bought such and such” and “if you liked this, maybe you’ll like that” recommendations. I barely escaped alive). Perhaps I will remember to post about them here at some point.

In the meantime, the search for more wonderful authors and books continues! If you’ve read some ridiculously good fantasy or science fiction (particularly YA or kids stuff; I tend to enjoy adult novels less because of the graphic violence and escapist sex that often are their defining characteristic), I would love to hear!

Handy.sugar and Espresso 2’s JavaScript API

Although you are likely aware if you follow my antics online, we at MacRabbit released Espresso 2.0 recently. Whoo hoo!

A whole lot of things are new and improved in Espresso 2, but hands-down my favorite feature is the new Javascript API, which allows you to add custom text actions to the editor using web languages you already know: XML and Javascript. This is seriously awesome; back in the days of Espresso 1.x I created Spice.sugar to allow coding text actions in Javascript, but it was a hack that I was never completely happy with. The new Javascript API is something of a spiritual successor to Spice.sugar, except without the suckiness. It is simpler, better documented, and is true Javascript (rather than Objective-C methods contorted into Javascript).

Sadly, I don’t think people realize how awesome the new Javascript API is, so in the hopes of making people’s lives better and raising awareness for it, I present to you Handy.sugar:

Every so often someone writes in to MacRabbit with a feature request that I think is awesome, but which I doubt Jan will want to integrate in the core editor for whatever reason (or that I think he probably will implement, but is currently a low priority). Of course, this was exactly why Jan implemented the Sugar system in the first place: Espresso will never support a broad enough range of actions to make everyone happy out of the box, but it is ridiculously easy to extend.

And so was born Handy.sugar: a collection of some of my favorite feature requests I’ve read at MacRabbit recently, with a focus on actions that allow you to keep your hands on the keyboard.

I am still adding things to Handy.sugar, but here are my current two favorite features (all of the visible features that Handy.sugar adds will show up in the Actions→Handy menu, so you can explore others on your own).

Keyboard of coding +1

Handy.sugar’s actions for incrementing and decrementing numbers in your code are what prompted me to create the Sugar in the first place.

Using the actions is super easy: move your cursor next to a number, and hit command option ↑ to add 1 to the number. As you might expect, command option ↓ decreases it by 1. Add the shift key, and you’ll move up or down in increments of 10.

But wait, there’s more! The incrementing/decrementing actions are smart enough to also handle the following situations:

  • If you select a swathe of text that has a number somewhere in it, the action will affect that number
  • If you select a swathe of text with multiple numbers in it, the action will affect all of them
  • If you have multiple selections, the action will affect any numbers in them (as long as the first selection contains a number; otherwise the action will not be enabled)

For the moment, you can only modify base 10 integers using these actions. I thought about implementing something similar for hex or octals, but thanks to formatting differences across languages could not come up with a good “one size fits all” approach. You can modify floats, but only the portion before the decimal point will be modified. Transitioning between positive and negative numbers should work exactly as you would expect.

Multiple selections for fun and profit

Creating multiple selections in Espresso is easy (it works just like it does elsewhere in Mac OS X):

  • Hold down the option key, then click and drag to create a column of selections
  • Hold down the command key, and select things with your mouse in multiple places (by double clicking words, triple clicking lines, clicking and dragging, etc.)

But once you have multiple selections, Espresso unfortunately only really supports deleting all of them at once. Until you install the Handy.sugar, that is:

  • Hit control [ to prepend text to all selections
  • Hit control ] to append text to all selections
  • Hit control \ to replace all selections

(Incidentally, if you opt not to type anything after invoking that last shortcut, it will instead replace all selections with the contents of your first selection, which might be useful in its own right.)

If you have been missing column selections from Textmate or block editing from Coda, these actions will likely make you very happy since they perform basically the same functions.

Not just a useful tool

Handy.sugar offers a bunch of useful functionality, of course, but hopefully it will also serve as an example of the kinds of things you can accomplish with the JavaScript API. You can check out exactly how I am accomplishing any given action by right clicking on Handy.sugar in the Finder and choosing “Show Package Contents” or by browsing the source on GitHub. I tried to keep it pretty well commented.

If you decide you would like to try your hand at your own custom Sugar actions using the JavaScript API, check out the introduction to JavaScript actions and then take a gander at the JavaScript API reference.

And if you do undertake some Sugar development, you can always email MacRabbit for help or look for aid in our Sugar developer forums.

Little red playhouse

This last week included an unexpected high, and a pretty dismal low.

On Thursday, HP released a free promo code for TapNote. In a matter of hours, my userbase had increased roughly 600%. This was a completely unexpected windfall (the first I heard of the promo was a user emailing me to ask about it), and if all those people enjoy TapNote and tell their friends, could provide some nice long-term benefits to the app. It was also a nice bit of validation for the time that I’ve been continuing to dedicate to the platform.

And then on Saturday, my partner’s grandfather unexpectedly died. It was quite a shocker, because in the flurry of the moment everyone forgot to mention that he had passed away (last we heard before heading down to the hospital was that he was in the ER and being transferred to a room), so we showed up at the hospital, were told, “He’s in the room down the hall if you would like to see him”, and walked in to find little but an earthly shell.

Although I didn’t know my partner’s grandfather very well, her family’s grief and shock resonated strongly thanks to the recent death of my own grandfather, who died suddenly in mid-July.

My partner’s family is sure to be telling lots of stories as they work through their own loss, and for that I can but listen. However, there is a story I have been meaning to tell about my own grandfather that I wasn’t able to adequately formulate when I first lost him, and the events of yesterday once more brought it to mind.

Love is a little red playhouse

People claim that grandparents don’t have favorite grandchildren, but what do they know? I was this close to being my grandfather’s favorite when I was young. But then I totally blew it.

My grandfather spent most of his working life as a Boeing engineer, and although he never said it out loud it was pretty clear that he hoped his grandchildren would discover the joys of science and engineering.

So when I took a class on technical drawing in junior high in order to fulfill one of my art requirements, Grandpa immediately sent me a T-square, a miniature draft table, and come Christmas several years worth of subscription to a magazine called Invention & Technology, whose topic matter was about what you’d expect.

But I hated drafting. Drawing precise diagrams of simplistic machines was fantastically boring and I didn’t care to develop the spatial reasoning necessary to get absorbed in considering an object from all sides at once. And even though I had never heard of CAD software at that point, I still had the sneaking suspicion that the whole exercise was outdated.

As a result, the T-square and drafting table went in my closet to gather dust at the end of the class, and I forfeited the standing of favorite grandchild before I realized it could be mine.

I don’t mind. Because although I never found much to engage me in the lackluster science courses offered by the local public schools, Grandpa ended up teaching me something more important.

Me in a matching set of Grandpa's Gore-Tex rain jacket and snow pants

For me, childhood and my grandfather are inextricably intertwined. One of my earliest memories is of jumping in rain puddles wearing one of the bright red Gore-Tex jackets that Grandpa would make yearly for his ever-growing grandchildren. If you are not familiar with Gore-Tex, it is the only fabric I know of that is truly waterproof. Unlike the “water resistant” junk that stores sell that bleeds through in a matter of minutes under any decent downpour, Grandpa’s jackets would keep use completely dry for as long as we cared to stay out in the rain, snow, or whatever other inclement weather the Pacific Northwest cared to throw at us.

Other early memories: playing with my sisters in the little red playhouse that Grandpa constructed in our back yard (complete with a shuttered bell-tower), rocking on the hand-made wooden rocking horse he made for us, exploring the intricate dollhouse (including room-by-room electric lighting) that he constructed for my sisters, climbing around in the treehouse he built in his backyard, swinging on the attached swingset, and at the end of just about all of those activities taking a trip with him down to the local German bakery where they served maple bars that were literally as long as my forearm.

Our red playhouse, under construction
The playhouse, under construction

Grandpa was not a verbally demonstrative man. I don’t think I can ever remember hearing him tell someone he loved them.

For Grandpa, love was a little red playhouse. It was careful design, hours of labor, and the reward was years of laughter and fun.

Which is why I find such joy in creating things, be they websites or apps or other. Which is why I bake things. Which is why I always find time to help the people I love in areas I have expertise even if, like my grandfather, I sometimes find it hard to tell them outright that I love them.

I miss you, Grandpa.

Made by Grandpa