This documents a bit of creative process making the above, very little of which is truly original.
To see the raw files, code etc just go to the repo.

Index


Interesting business cards

A pal recently forwarded this post my way: 15 lines of code for setting up an HTTP client on the back of a metal business card.



A small part of the joke in American Psycho's business card scene is that the cards are poorly designed (odd spacing, typos, OTT textures etc), yet they care about them so much. Most business cards I pick up are perfunctory, discardable things, but I'd not forget someone who gave me a code card.

I decided to try at making a little business card that could be as much a fun self-advertisement as a nice piece of paper ephemera.



Way back in January 2022 I wrote a program based on the CS50 Mario Pset, in which you must generate the below shape at variable height.

    #  #
   ##  ##
  ###  ###
 ####  ####

My program turned that into a christmas tree, with little randomised snowflakes changing position every second:

    *  * ## *         
        *||#* *       
 * *   *#||#*  * *    
  **  ###||*##        
     *###||#*##      
    #####||*#### *         
    *    ||   *   *   
_________||________

So for this I ported it from C to Python and cut the linecount right down. It needed to be brief enough to copy out if wanted, obfuscated enough to not be obvious how it works, but have hints enough to give them some ideas of what is happening:

import os,time;from random import randint as rnd,sample as smp
seed=rnd(12,20); present='\u7530'; s,n,o,w,y=' ','_','|','#','*'

def bud(len, chr): return chr*len  

def snow(branch):
  for i in sorted(smp(range(len(branch)),int(seed/rnd(3,6)))):
    if branch[i]==present or branch[i]==n:continue
    else: branch=branch[:i]+y+branch[i+1:]
  return branch

def grow(rows): 
  time.sleep(1.0);os.system('cls'if os.name=='nt'else'clear')
  for row in range(rows):
    if row>=rows-2:twig=bud(rows,s if row==rows-2 else n)+o
    else:twig=bud(rows-row,s)+bud(row,w)+(o if row!=0 else w)
    print(snow(twig+(twig[::-1][:3]+present+twig[::-1][5:]\
      if row==rows-1 else twig[::-1])))

while True: grow(seed)

It can be made terser but I like this to be somewhat readable to an experienced dev.

The easiest way to get what is going on here is to bear in mind that for each row of the tree, I'm building the left half of it, and then building the right half by appending the string with a reversed copy of it. Then it's just a matter of replacing some of the characters with asterisks.



My Business Card

Just stanning the (much better) HTTP client code card above I first mocked up a business card like this, and handed it out at a few events/fun people at the pub. The main purpose it fills in the end is generating intrigue; despite the little # comment I don't recommend trying to type it out:




Making a Christmas Card

Excepting those handmade or properly filled with handwriting, the scrawled To and From of gift-card giving culture is both too expensive and too impersonable for me. I love written correspondence and given that the best way to do it is to start it, I thought I'd forego phone Christmas messages and tried adapting the above into something cute I could write a proper end-of-year update into.

Inspiration

I was expecting to find more software-related greetings cards online, however most I've come across - particularly those on Etsy - are like those if (thirsty) { drinkCoffee(); } mugs.

The best designed are the sadly no-longer-made 2011-made letterpress Code Cards by Matt Raw (see some more pics here):


Other than those, codingstrawberry's binary tree christmas card is pretty neat:



My Christmas Card

As my card's tree motif fills the card's center-front, I decided to keep the back's empty, and bracket with a similar colophon top and bottom. I wanted a fairly firm, off-white paper stock, slightly more office card than letterpress artwork, and, being in China at the time, went with 荷兰白卡300克, got 40 made for 15 quid and sent them out Christmas 2024.

So here's my card:




Other Decorations

These are less good but were fun to try.

Medieval botanical paper bauble

On PlantIllustrations I found scans of the old manuscript Grandes Heures Anne de Bretagne (1503-1508). Though a little lo-res I managed to find within snowdrops, Ilex holly, and rose hips and adapted an old-fashioned top-threaded paper baubel design purchased from the East Anglian Food Museum's printing press team in GIMP and made a demo printout:


If you'd like to print your own, go here.



Unicode emoji winter tree decoration

Kirsty Baynham of PrismOfStarlings' designed these really beautiful "Wolf in the Forest" triange-shaped wolf + trees paper cutout decoration, which you should buy because they're wonderful.

I bought a few and thought "you could do a really kitsch internet-art designer style version of this with the deer and tree emoji". It's not really meant to be much visually nice, it's just something cute to be sent to a friend or two:


If you'd like to print your own, go here.



Websites

A few days after seeing the HTML Client card, I found Reuben Son's site index, which, if you like what you've seen so far, you will probably agree is really excellent (this here below is an iframe and may not display well on a phone):

The same night I came across Son's site, I also found Sunday Sites, which are HTML/CSS-only projects where folks design a single webpage project in a day. This little seasonal ASCII animation Four Seasons is likewise quite fun. You should take a look at the source code for that site in the console -- Séan's achieved that in a pretty novel way.

So quickly inspired by that Four Seasons layout, I've thrown a web version together too, as this very simple format is very nice.



Rolling updates

(last updated: 2024/04/13)

Hereon, I'm going to keep a little log of interesting/techy business cards: