tholman.com Open in urlscan Pro
3.72.140.173  Public Scan

Submitted URL: http://tholman.com/
Effective URL: https://tholman.com/
Submission: On October 31 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

THE CURIOUS CREATIONS OF


TIM HOLMAN

I'm a tinkerer, tuner & tamperer who's been around the block.

Give me a buzz: Twitter, CodePen, Github, StinkedIn, Email log & Email.

Send some love:
Buy me a Coffee

Some filters:
Serious Stuff
Jokey Stuff
Talks & Podcasts


MODERNIZED JAVASCRIPT 90'S CURSOR EFFECTS, THAT WE ALL KNOW AND LOVE

Bringing those beloved cursor effects into the modern age.

These Cursor Effects have been sitting in my GitHub profile for a fair while
now, and much like the cursor effects of the ’90s were a little old and
decrepit, so I decided now’s the time to modernize them a whole lot!



These range from the character-based fairy dust.



Right through to the beloved snowflakes, and ghost cursors.



To emoji powered springy ball cursor danglers.

Each of these is built with modern JS in mind, so they’re super speedy and very
customizable… you can have them sit over the whole screen, or sit within smaller
windows.

Super free to use, which is the icing on the cake I guess! If you’ve seen any
other old effects floating across the web, I’d love to bring them into this
library, if anything for the preservation of a beautiful time on the internet.

➶ 90’s Cursor Effects ➶ 90’s Cursor Effects on GitHub


THE MAKING OF MOSQUITO.JS

A 10 minute talk about the making of a murderer mosquito.

Making the mosquito was one thing, though after it’s creation it didn’t feel
quite right leaving the project alone.

That’s when the amazing !!Con came along. Bang Bang Con is one of my favorite
conferences each year, focusing on small bite-sized projects and often
showcasing people being super creative within speedy 10-minute talks. And they
were interested in my mosquito!

You can watch the talk on youtube!

If you enjoyed that, I definitely recommend watching some of the other talks of
the two-day conference, both are available via their recorded livestreams.

What’s next for the mosquito? Only time will tell.

➶ The Making of Mosquito.JS on YouTube


THE USELESS SITES OF THE USELESS WEB

Back in 2012, I built The Useless Web, a portal to the weird of the internet.
Now, I’m tracking down how those sites came to exist.

When The Useless Web was built, honestly, I was on a broad search for everyone
all sorts of weird sites here and there, but didn’t put a whole lot of research
into them… they exist, people all over the world have been spending time
creating all sorts of useless wonders. Now, I’m going back and trying to find
out the what, when, where, and why’s of these sites.

The hub for them, is here, a subdirectory of the main site. As the sluthing
continues, and the emails roll back in, I’m updating it with the backgrounds of
these sites.



To kick things off, we have Cat Bounce, Endless Horse & RRRGGGBBB.



I’m also using the service to try to appeal to anyone reading, I’m seeking out
any information on sites are very difficult to find information about, The
Pigeon for example.

➶ The Useless Sites of the Useless Web


MOSQUITO.JS

In an attempt to learn a little more about the web audio API, I created a
mosquito from nothing!

This bite sized weekend project started out innocent enough, I wanted to mimic
the noise of a mosquito using tech on the web.

The initial steps were easy. Listen to some mosquito videos on youtube (yes,
they exist!). Create an oscillator to mimic the most annoying mosquito pitch
possible. Then, get into the mind of the mosquito, to create the random pitch
and volume variations that drive someone insane.



I had originally planned to build this out like an API, so people could add
mosquitos to their website. Maybe hook it into the mouse movements, so you could
“play” the mosquito so to speak, but the very act of creating it sent me insane.

I documented the journey.

➶ Mosquito.JS


ALWAYS JUDGE A BOOK BY IT'S COVER

A weekend project that took a a couple of weekends. Weird books & weird covers.

I’ve had this project in my brain for over a year, and was really waiting for a
gap when I had the time and patience to complete it.

Always Judge a Book by its Cover is a collection of all the strangest book
titles out there, as well as their amazon links, and a small parody-styled
review of the book based on its cover.



The real time suck of this was finding all the books, writing all the reviews,
collecting all the links, and then building the site itself.



There are some nice little touches that were fun to build on this project. The
drippig effect was done with canvas (could probably be nicer with css houdini in
the future.)

The 3d book effects were done with css transforms, and are hooked up to lazy
load with the js intersection observer.

➶ Always Judge a Book by its Cover


INSPIRING ONLINE 2.0

I’ve remade inspiring online, with a focus on a slightly longer format.

I’d first made inspiring online in late 2016, and had kept it fairly busy into
2018, and then dropped off completely.

I’ve decided to do a revival, with a little longer format of the posts.
Partially because I’ve been putting a little more effort into writing, and
trying to improve on it, and partially because I feel that I have the knowledge
to give some fun insights into some of these things.

The refresh also has come with a fresh redesign, to accommodate the longer
format of writing.



I’ve rebuilt the code from scratch, moving it from jekyll to hugo, which is a
lot faster. And hosted it on Netlify, for quick and easy deployment.

Edit: After this initial rebrand, I’ve done a larger, weirder one. Inspiring
Online is now The Indie Web.

➶ Inspiring Online website
➶ Inspiring Online source on Github


GENERATIVE ARTISTRY PODCAST

A podcast about generative art, to go with the interactive tutorials!

Last year, Ruth reached out to me and proposed the idea of a generative art
podcast!

We mulled over the idea for a few months, and then put together a format that we
thought would be fun for us to create, as well as educational and inspiring for
others.

We’ve got some great guests coming on.

As well as some short chats, where we kind of completely got off-topic and found
the chat interesting enough to publish.

We’ve combined the podcast into the generative artistry site, so you can get all
your tutorials and blog posts in the same place.

The podcast is available in all the cool places too!

➶ The Generative Art Podcast
➶ On Spotify
➶ On Apple Podcasts
➶ On Google Podcasts


BINARY MUSIC PLAYER

A little music player, with a binary twist.

A while ago, I stumbled onto this beautiful video. A music player that counted
up with binary, playing notes on each particular 1, and being silent on each
particular 0. In the video (which I do think everyone should listen to!) the
creator has also added some background sounds, and is also using real piano
notes, so it is definitely a lot more beautiful.

That said, it was still something that I wanted to replicate on the web, using
Tone.JS.

I also went ahead and added the ability to customize the notes, and share the
individual creations with others via url parameters.



There wasn’t really any need to use a framework (other than Tone.JS of course),
so its all relatively vanilla JavaScript, so if you take a peek at the code, it
shouldn’t be too insane.

➶ Binary Music Player
➶ Binary Music Player On GitHub


WOWEN WILSON

Perhaps the most important quiz thats ever existed. Hear the ‘wow’ and name the
movie.

With all these serious projects rolling through, it was time to get back on the
joke train. This beauty was an idea I’d had with some friends back in Australia…
it was one of those things you just can’t ignore. A friend of mine Tobias jumped
in, and we made a quick weekend of it.



The idea is fairly simple, you hear Owen say “Wow”, and then you need to guess
which movie it was from.



We got pretty good at it by the end, even scoring a perfect 10/10.



Although that said, having built it gives you a bit of an advantage. Check it
out on the link below.

➶ Play Wowen Wilson


TUTORIAL MARKDOWN

I’ve open sourced the magic behind the generative artistry website, aptly named
tutorial markdown

Tutorial Markdown is a javascript library that reads onto a small extension of
markdown syntax, allowing for self coding tutorials like these

Interactive blogging is something that had been on my mind for a long time, so
it was great to finally get this out. It involved really picking apart the way
that we write code, and finding a way we can explain it in terms that aren’t
overwhelming at all.

I’ve added a lot of documentation in there as well, but of course am happy to
help anyone getting started!

➶ Tutorial Markdown on GitHub


TOOLSDAY PODCAST (GENERATIVE ART)

Wahoo, I was on toolsday again, this time talking about generative art, and
tutorial markdown.

Toolsday continues to be a fantastic podcast, transversing a wide variety of
tools and products. It was a pleasure to be on there again!

➶ Listen here


GENERATIVE ARTISTRY

Generative Artistry is a small venture I’m making into blogging actual code!
Including something I’ve been thinking a lot about, self coding tutorials.

I’m super excited about Generative Artistry, its going to be a great avenue for
me to explore technical blogging, as well as an experimentation into how people
learn to code. There’s been a ton of encouraging feedback, that is leading to my
next release, which will be called Tutorial Markdown, a markdown style for
interactive blogging.

The site itself is a simple blog, built on hugo, a static site build built with
GO… its primary focus is speed.



The site provides a list of tutorials, simple as that.



The tutorials are where the magic really happens, as you scroll through the
posts, the code is compiled together in a small editor (to the top left), and
then executes in an iframe at the bottom left.



This means that as you’re reading the post, you can scroll back and forth
between code examples and see the difference and steps. This helps build a much
stronger understanding about the code thats heading into the editor, and can
hopefully help to foster a better learning process.

Edit: Tutorial markdown is now open sourced, for those looking to build
something similar

➶ Generative Artistry
➶ Generative Artistry on GitHub


GENERATIVE ART SPEEDRUN

I’ve had a big swing into generative art lately, and this talk has been a big
part of my research, discovery and exploration.

This video is from JSConf Australia, when I first gave this talk. Since then,
I’ve given it in a lot of different formats, and from a lot of different angles,
including workshops and lightning talks. Generative art is rich with avenue’s
for exploration, inspiration and all round fun!

➶ Check out the video.


THE ZEN ZONE

The Zen Zone is an exploration into what it takes to slow myself down, switch
off, meditate.

The idea behind the Zen Zone has been sitting in my head for a year or so now…
the thought that I sometimes get stuck focusing on a simple boring task, but
when I’m supposed to be focusing on something, like work for example, I find
myself wandering aimlessly.

After using Vue recently for the What Have You Made Today extension, I decided
to rock back to React for this one. Honestly I feel that both of them are very
similar when it comes down to designing and ideating while you create… so no
harm dancing around a little bit.

I set out to build a few simple “games” that would keep me captivated, and went
in search of inspiration outside of the regular web circles.

The Switches game is inspired by… well, every day switching on the lights. As
well as that little satisfaction you can get when animating things nicely in
code.



The Swirl game has been inspired by the Japanese zen gardens, of which monks
would focus on to help clear the mind.



The Break game was inspired by the general nature and make-up of all things.
Everything can be broken down into smaller and smaller pieces.



The games are stitched together in a way that makes me feel like I can expand
upon these games easily, add more to the platform, and grow it out when I feel.

Having launched the project, there is a lot to be done straight off the cuff
design and development wise. So lots do do still!

➶ The Zen Zone
➶ The Zen Zone on GitHub


JOLLY JS JOURNEYS

Had a blast at JSConf Asia! I’ve been talking about the journey of creation for
a while now, and am always changing how I want to present it. This is one of my
favorite renditions.

Honestly, JSConf Asia was really top notch this year, I met an incredible group
of developers from all different backgrounds. Could barely sleep afterwards. I
highly recommend it to anyone thinking of going!

➶ Watch on YouTube.


S.JS

Canvas JavaScript polyfill for the vital and pivotal S we all drew in school.

The web canvas is a powerful tool, the API is fairly straight forward, and
provides us with the tools to draw almost anything. Circles, squares and lines
are the building blocks we have used since the dawn of time…

That said, there is also one other basic shape… that we all learn in school…
passed down through generations… as old as time… no one really knows its origin.



Absolutely a must have for any canvas project.

➶ S.JS on GitHub


WHAT HAVE YOU MADE TODAY?

Got a little sick of my old “new tab” page, so I built something small to
replace it.

The idea of this little project was to build something that replaced the default
“Chrome” new tabs page, which, although good, would be a little frustrating at
times… it would load a whole google search bar, when really I was using the
browsers URL bar to search anyway. It was also sending off requests this way and
the next, which weren’t really neccesary.

All I really wanted was a simple speed dial, and some motivational text. So
thats what I did!



One pleasant surprise, was that the FireFox addon’s use exactly the same api’s
as Chrome, and that there is a whole documentation amongst browsers, about how
to implement said extensions. Yay for standards!

➶ The extension on GitHub
➶ Chrome install page
➶ FireFox install page


TOOLSDAY - HEADLESS CHROME

I had the pleasure of speaking with Una Kravets & Chris Dhanaraj about Headless
Chrome

Toolsday has been a favorite podcast of mine since its conception, so it was
great to be a part of it, speaking about Headless Chrome.

➶ Podcast and shownotes


TETRIS PIECES

A couple of months ago, I did a little commission work for Electric Object, in
the form of Abstract Clocks. While working on the clocks, I ended up creating a
bunch of different proof of concepts and directions. This was one of them.

The initial idea for “Tetris pieces” was to create a bunch of small video game
demo’s that would use AI to play on your wall, I had looked at snake, a brick
breaker game and a maze solver. Ultimately, I found myself drawn to the
different renderings of Tetris games. It was so mezmerizing watching tetris play
out automatically on the Electric Object, I had to stick with it.

To begin the project, I began researching tetri’s AI’s, and immediately found
one that was absolutely perfect built by a very talented developer, Yiyuan Lee.

You can read about how the AI works in the post linked above. Here’s a snippet
about how the AI decides where to put each piece. Its definitely worth the read!

> To meet this goal, our AI will decide the best move for a given Tetris piece
> by trying out all the possible moves (rotation and position). It computes a
> score for each possible move (together with the lookahead piece), and selects
> the one with the best score as its next move.
> 
> The score for each move is computed by assessing the grid the move would
> result in. This assessment is based on four heuristics: aggregate height,
> complete lines, holes, and bumpiness, each of which the AI will try to either
> minimize or maximize.

From this point, I forked the code and set my mind to hacking how the pieces
were drawn, so I could have multiple different looks and feels.



These are, from left to right.

1: Ambient Blocks, in this version the tiles take up solid block colors. As the
game goes on, the hue of these colors rotates very slowly, meaning whenever you
look at the wall you should see slightly different colors. This playful touch
made it my personal favorite.

2: Classic Tetris, in this specific rendering I’ve copied the colors and
patterns from the original GameBoy game, including that ever present green
tinge.

3: Colored Classic, using the colors of the tetris game that appeared on Super
Nintendo, the colored tiles perhaps look the nicest on the screen, and
definitely bring back some nostalgic feelings!

All in all, the project was definitely a good experience. When you have to plow
into someone elses code, with no background its funny what you can learn.
Finding and editing the code that renders the tetris pieces to the canvas was a
little tricky, but ultimately very rewarding.

➶ Tetris Pieces in Action
➶ Tetris Pieces source on Github
➶ Tetris Pieces on Electric Object


SMELVETICA

Sadly, this received a takedown notice from monotype and their lawyers… so this
is all that remains of the project

[Smelvetica] was an experimentation in taking one of the worlds most beloved
fonts, and turning it into a morbid monstrocity.

This project began by pulling the original “Helvetica” font from my system
files, and making a copy of it. From there I opened it in FontForge, which is a
brilliant open source font editor.



From here, the task was fairly simple. I opened up each “version” of Helvetica
(these being bold, oblique, light etc), randomly went through the capital and
non capital letters and moved them around within their guide grids. This had the
desired effect of ruining their beautifully crafted kerning, as such, creating
“Smelvetica”.

With the fonts completed, the remaining work was to wrap it all up with a nice
web page, and some installation instructions.



The installation ended up being the most devious part of the prank in the end,
since it would install on the system it makes it really difficult for anyone to
understand why everything looks just that little bit wrong.

Edit: Sadly this was subject to a takedown notice, you can see the brief
conversation in the github repository.

➶ Smelvetica source was here


PASSIVE AGGRESSIVE OFFICE SIMULATOR

“Remember everybody, the crisper is for green vegetables only, anything else
found in it will be thrown out at the end of the day.” ~ Passive aggressive
post-it note.

One of the funnier things I found from office life was the small messages that
would blast out to the whole company “There’s a fire drill tomorrow.”, “The
coffee machine on the first floor is broken” etc. Now that I’m working remotely,
in a weird way, I miss them. As such, the passive agressive office simulator
Slackbot was born.



The core of this slackbot is the npm module, slackbots, which honestly made the
whole process a breeze. The bot itself is broken into a few key pieces.

The first piece, is the scheduler, which will take specific actions (namely
sending a passive aggressive message), and give it a time to be shared with
everyone. These are generally within work hours.

The second piece is a “ticker”, which keeps the script checking the time, and
seeing if there is anything that needs to be ran.

The final piece, is of course, the messages themselves. They were all hand
written by me, and also include wildcard variants… so something like the day of
the week, or a piece of stationary (please put the stapler back where you found
it!) could be switched out, to add a small extra dimension of randomness.



Another little piece, which I felt gave it that little bit of extra “officey”
cringe, was follow up messages. If your office is out of ink, you’ll be sure to
get another message when it gets back in!



… 5 days later



Building a slackbot was a fun way to spend a day or two, honestly, the amount of
articles and support docs out there makes it one of those technical, yet quickly
rewarding projects!

➶ Office Simulator source and installation instructions


OBNOXIOUS DOT CSS

Animations for the strong of heart, but weak of mind.

As you’ll know, if you’ve been following my projects for a while, or seen any of
my talks, one of my favorite things to do is find something thats good, in this
case, the increasingly awesome set of CSS api’s for animations, and see what
terrible things can be made from them.

Obnoxious.css is an exploration into what kind of freakishly frustrating things
you can do with CSS animations on the web, the project itself is modeled after
Dan Edens Animate.css.



The key to bad animations is fairly simple really, make them move to much, make
them run to long, make them flash and jitter! All of these terrible components
have been compiled into the Obnoxious.css library!

The crowining glory of these animations, is “fontalicious”, which contains a
devestatingly frustating series of font changes.



I always find that when you explore the way things SHOULDN’T be used, you get a
little bit of appreciation for how good we ultimately have it.

➶ Obnoxious.css website and examples
➶ Obnoxious.css source and instructions


FRIENDS TALK FRONTEND PODCAST

The talented Jag Talon and I talk life, frontend and just generally hang out!

Friends Talk Frontend is an delightful podcast of developers discussing how they
got to where they are now, and what their day-to-day life. In general, its
always a good time!

➶ Have a listen!


ABSTRACT CLOCKS

I recently talked to Electric Object about building something on their platform
for their artists program, this is what I came up with.

When I was looking into what I could do on the Electric Object, the biggest
thing that stood out to me was that not many people were taking advantage of the
fact that it can run a browser, and as such, can display something made
programmatically on the fly, or change with time. Instantly I wanted to do
something with time.

Over the years, I’ve amassed a large collection of clocks and timers on CodePen,
which served as a big inspirational source. The general idea here, is that the
clocks would be abstract and difficult to read, but after spending a week with
them it would be as easy to read as a regular clock, in a sense, the same way
people are able to read time from the sun.

The theme for the clocks came as a combination of the original circular clock
face, but instead using gradients as clock hands. From here, a lot of
experimentation and explorations occured, resulting in the 5 “types” of clock.



You can read about how to understand each clock, on this little web page … some
of them are a little trickier to get a handle on than the others, but ultimately
learnable.

➶ Abstract Clocks Demo’s & Instructions
➶ Abstract Clocks code on Github
➶ Abstract Clocks on Electric Object


OK, GET THIS

EDIT: Sadly, Bumpers.fm shut down, and I ended the project with that. Was fun
though!

Things you probably didn’t know about, in 5 minutes or less!

I recently “bumped” into [bumpers.fm], a cool little app for recording small
audio casts. I figured why not, and so “OK, Get This” was born.

The goal of this “podcast” is to highlight weird and wonderful events,
happenings and coincidences in the world, and then talk about them for 5 minutes
or less.

For example, The Emu Wars in Australia, or the history of tug-o-war fatalities,
yikes!

The individual episodes are also embeddable, which is cool, and make for nice
little sharable snippets.

EDIT: Have moved this project over to Anchor now that bumpers has sadly died.

➶ OK, Get This on Anchor


HUMAN MUSIC

This is earth radio, and now here’s human music.

In season x, episode y of Rick and Morty, there’s a particular scene where Jerry
is listening to the radio in the car, within a simulation of earth running at
5%, as he listens to the music it plays close to the most simplistic audio you
could imagine.

I fired up ole Garage Band and had a go at re-creating it, and a few more
inspired versions.



All up, I made 7 or so “human music” pieces, and wacked them together into an
album for my soundcloud debut!

And of course, any project wouldn’t be complete without a little sharable web
page.

➶ Human Music WebPage
➶ Human Music on SoundCloud


ASCII MORPH

While playing around with ASCII art, I explored animating one image to another.

AsciiMorph is a small JS library designed to transition between two ascii images
for an old website of mine.



The library counts the spaces around the “image” and then systematically
collapses it from the outside inwards.

Rather than just hiding the bordered ascii characters, they are replaced by a
series of slashes and stars, which gives a general collapsing effect.

➶ Ascii Morph on CodePen
➶ Ascii Morph on Github


CONSOLE DOT FROG

Sometimes you find a few hours free in your life, and try to fit a little
project into that.

Console dot frog is perhaps my most important creation to date. No longer shall
I debug with the simple monotony of regular logs… for now, there are frogs.

So, here is a simple explaination. I think its supreme utility speaks for
itself.

// Here is you, logging some logs
console.log("Boring.");


// And here is your output.
Boring.


And here is how console.frog can improve your life.

// Here is happy you, logging some logs
console.frog("Amazing!");


// And here is your output.
          _,-.     ------------
  ,-. ,--'  o ) -(   Amazing!   )
  \(,' '  ,,-'     ------------
 ,-.\-.__,\\_
 \(`--'    `\


Truly life changing.

➶ Console.Frog Webpage & Instructions
➶ Console.Frog source on Github


INSPIRING ONLINE

A project aimed at creating a simple inspirational open source blog, that could
be a launching point for people beginning to look at git/github and contributing
to open source!

This blog was a fun little one to create, the aim of giving myself a simple area
that I can share inspiring and creative work as well as a simple repository that
I could use to help people kick off contributing to open source, either in
person or online.

The design was a fairly simple isotope layout (thanks Dave!), and dark color
scheme… really, the content speaks for itself.



This is the kind of project that grows slowly, but always has a place in my
day-to-day life… fixing bugs/helping new contributors/adding new sites.

On the extra nerdy side, I have a script that I use to add posts from the
command line. This creates the new post file, setting the date, and linking the
image files needed to add a new post. Its not really needed, but means that I
can create a new post without opening the text editor, or manually moving images
around.

Edit: Inspiring Online is now The Indie Web

➶ Inspiring Online website
➶ Inspiring Online source on Github


GITHUB CORNERS

My personal take on the “fork me on GitHub” banners.

For a long time, I have used “fork me on GitHub” banners on my sites and
projects, for the most part because these were regular go-to of most developers.
I decided that I’d like to create something a little more modern and playful,
and as such, this project was born.

Technically speaking this update isn’t really too much of a reach, but is one of
those projects where you can do a little to get a lot.

I moved GitHubs infamous Octocat into the corner, as an SVG, and then seperated
its arm in sketch, so I could add some CSS animations to it.



The animation is added with CSS, which means people can use it if they like, but
its not going to be mandatory. The animation is added by default on hover, which
will allow it to wave.

@keyframes octocat-wave {
  0% {
    transform: rotate(0deg);
  }
  
  20% {
    transform: rotate(-25deg);
  }
  
  40% {
    transform: rotate(10deg);
  }
  
  60% {
   transform: rotate(-25deg);
  }
  
  80% {
    transform: rotate(10deg);
  }
  
  100% {
    transform: rotate(0deg);
  }
}


There are a lot of other advantages to using SVG, over the “original” github
ribbons, one of the biggest is that the colors are totally malliable, you can
change a single CSS property and have it change, rather than having to pull out
and change a whole image (with text).

From here, I built a little site to offer the code, which was made to
deliberately show off some of the colors and options available.



EDIT: There’s some great discussion about how to use CSS blend modes, to blend
the github corners seamlessly with any background, including those that are not
a flat color. Given the future, when blend modes are deeply rooted in the web,
or for people not too worried about much older browsers, this is already an
awesome option!

EDIT 2: Some awesome people have made tools to build your own custom corner.
Ultimately I’ve left this GitHub issue open, just incase I decide to build an
“official” version.

EDIT 3: Honestly seeing these all over the web. Always makes me proud.

➶ GitHub Corners web page (get them here!)
➶ GitHub Corners source on Github


DON'T HATE THE PLAYER, HATE THE GAME

My main talk of 2016, “don’t hate the player, hate the game”, explores being
creative in weird ways, as well as finding motivation in everything.

Honestly some of the most fun I’ve had, crafting a talk. This recording of it,
was at FrontTrends in Poland.

➶ Watch the talk on YouTube.


THE VERSIONING SHOW

The Versioning Show discusses the industry of the web from development to
design, with some of the people making it happen today, and planning where it’s
headed in the next version.

The opening question of the versioning show ask which version of “myself” am I
currently, which is an awesomely unique way of kicking off a podcast.

Its always great when a podcast just flows nice and easy, all credit to Tim and
David there for being awesome hosts.

EDIT: Looks like the audio’s dropped off from this now… can still read the
script though, if you’re a hyper fan!

➶ Have a look


ELEVATOR JS

Elevator music for when you press those “back to top” buttons.

Elevator.js strung out from a small hack-day experiment, while I was working at
tumblr.

The library is fairly simple, but again was a fun learning experience. When you
hit the “back to top” button, it plays music, as though it were an elevator
scrolling to the top.

Technology wise, its all vanilla JavaScript, and a single MP4 audio file. The
trickiest part of this was getting the scroll to act smoothly, for this we
needed to incorporate some easing algorithms.

Naturally, I built a small web page to show it off as well… although you should
probably visit the site to actually see it in action.



The library was built to be able to take in any music file, so its pretty
malliable. In the time the library has been out, I’ve spotted it on a lot of
websites, including one for Google IO.

EDIT: Woah, this got super popular. Now is my most popular open source project.

➶ Elevator.js Webpage
➶ Elevator.js on Github


OVERSCROLL

Every now and then you find some interesting browser quirks that catch your eye,
they’re always worth exploring!

In this instance, I found that if you are tracking the scroll position with an
event listener, when you try to scroll down, beyond the end of the page, or up,
beyond the top of the page, you still get values coming back. Which means the
browser is telling you, the scroll position is in those “overscroll” areas.

Once I found this out, it was a matter of wiring up some functionality to them.
I went with a small easter egg.



And on the top.



EDIT: Looks like of chrome 51, this doesn’t work… leaving us only with safari.

EDIT 2: Chrome 58 has brought this back, woo!

EDIT 3: Chrome 60+ this was taken away again. RIP.

➶ Overscroll site/demo
➶ Overscroll source on GitHub


BLUE SCREEN OF DEATH

In light of how amazing web development tools have become, last week I got to
thinking, what could I do to make development much much harder.

BlueScreenOfDeath.js is a small script you can add to your webpage, that will
catch any error that its thrown, and more or less, make it impossible for you to
debug what was wrong.

When the error is caught, the script strips the page of any elements it may have
had (so we’re down to just an empty body tag). It will replace it with the
classic Blue Screen of Death style.

It will also spam the crap out of your web console, effectively making it
impossible to see what the error was in the first place.



And then, naturally, I couldn’t help myself but create a “bleu” version.



EDIT: I also ended up using this for my 404 page.

➶ Blue Screen of Death
➶ Blue Screen of Death on Github


ZENPEN

A Zen text editor, for maximum writing peace.

ZenPen is a simple text editor, that I built based off the medium editor back in
2013.

As it turns out, building things with the rich text editing api can be a super
frustrating experience, but on the flipped side, building something on top of it
is super rewarding.



ZenPen remains one of my most popular open source projects, it combines a lot of
cool web APIs to bring the product together. It was also a explore designing
something with a minimal interface.

➶ ZenPen
➶ ZenPen source on GitHub


INTENSE IMAGES

Intense Images is a full screen modal built for high definition images.

The Intense Images library came out as part of the Aquatilis project. It allows
you to click on images, and experience them within the full browser window, with
little to no overhead.



You can see it active in the image above, but I really recommend checking out
the live demo, to get the full experience.

➶ Intense Images demo
➶ Intense Images on GitHub


FUN DOT CSS

In this talk, I journey through the badlands of CSS, digging through the strange
nooks and crannies, and showing how the prankster plays..

For this talk, I made my own presentation framework, that more or less exploded
into a big jokey system, complete with star wipes, x-ray mode and motivational
queues.

➶ Watch Fun.CSS on YouTube


PALLETAB

New fonts and colors with every new tab!

Palettab (palette ~ Tab) is a chrome extension built with my wonderful friend
Claudio Guglieri. The thought here, is that every time you open a new tab, you
will be greeted with a beautiful color palette, and a selection of fonts you
haven’t seen yet.



The fonts are all available via Google Fonts, and the colors come from Colour
Lovers. There are thousands of combinations, so its rare that you would
recognize two of the same, even after using it for months.

Of course, we built a small webpage for sharability as well!



To date, the extension has around 30 thousand active users, which feels great.

➶ Palettab Google Extension
➶ Palettab Website
➶ Palettab on Github


THE FINGER

A website that gives people the finger. No tricks here.

A little quick collab with my friend Guy Trefler.



Actually I lied, there are some cool tricks here! I always say you can learn
something even from the most simple projects, and “The Finger” is no exception.

I needed to look into translating between one color and another. I read into
this, and made sure I understood all the math. In the end, used an answer from
Stack Overflow (because why re-invent the wheel), but at the same time, its
always important to understand what you’re putting into your site, especially if
you’re copy pasting.

EDIT: I also recieved an awesome pull request, allowing you to tilt your phone,
to effect the ammount of finger the page is giving. Check it out on your phone.

➶ The Finger
➶ The Finger on Github


DOM ANIMATOR

A small library for console based easter eggs.

When I’m building websites, I like to put in easter eggs here and there. For the
most part, I get personal enjoyment out of it, although I guess its a weird way
of procrastination.

DOM animator animates a small ASCII image within the code of the page, which
will be visible when someone is inspecting the source. Great for getting the
attention of developers, or for overall fun.

➶ DOM Animator
➶ DOM Animator on GitHub


AQUATILIS

Aquatilis was the kind of project that comes along once in a blue moon.
Beautiful photography, russian dive team, oceanic adventure… how could anyone
turn it down!

The Aquatilis expedition website was a project undertaken by a friend of mine,
Tobias, and myself. Entailing the goals and ambitions of an experienced dive
team… in their own words.

> Our custom-built expedition yacht Aquatilis, will carry us through the world’s
> oceans for three years. The places we sail to will take our breath away with
> their beauty, or with their danger. The use of the most cutting-edge
> technology will give us the opportunity to scrutinize gelata in their natural
> glory. Our experiences will be broadcast all over the world, encouraging
> everyone to embark on their own journey of discovery.

The goal of the website was to be visually captivating, yet still get across the
message and goals of the expedition.



The photography was so vivid, that it really pushed along the art direction in
an incredible way.



There are several pieces of this website, that I found particularly enjoyable to
build, and that find a nice way of having a powerful impact, while being subtle
and clean.



When building this, the pieces that I felt could be abstracted, and shared with
the world, I did! These include intense images, a library to show a clean full
screen modal.

Also, if you look very closely on the website, you can see small things swimming
around, as though they were in the ocean. You can check that out, on CodePen.

You can look at some of the original designs, and mood boards here.

➶ Aquatilis


SHOPTALK SHOW

Talking shop with Dave Rupert and Chris Coyier.

Shoptalk Show is one of those super well established podcasts, with a great
history of speakers. Was fantastic to be a part of it.

Its sometimes really nice to sit back and reflect on the journey that you’ve
taken to get to where you are today.

Edit: Also, who would have known, a year or so later, and Chris is my boss at
CodePen.

➶ Listen to the full podcast


THE USELESS WEB

Take me to a useless website!

While I was stuck indoors during hurricane Sandy, in 2015, I went down a strange
rabbit hole of weird websites. Some of them didn’t seem like they should exist
at all, and some (like eelslap) were incredibly perplexing.

I gathered as many of these sites as I could, and put them all into a small
website, which I called The Useless Web.



It was through this simplicity that the website gained popularity, hundreds of
thousand visitors a month!

➶ The Useless Web


MEET THE IPSUMS

A website to collect and display all the wonderful filler text generators in the
world.

Meet The Ipsums was built over a week or so, with the designs and direction
coming from good friend, and awesome designer Claudio Guglieri.



I’ve always been a collector, this website showcases filler text. It turns out
there’s alot of them… Cat ipsum, coffee ipsum, Ryan Gosling ipsum… the list goes
on!



Its always a fun time building things with friends, but then also opening up the
website for submissions via GitHub.

➶ Meet the Ipsums
➶ Meet the Ipsums source on GitHub


GIFLINKS

Punch people in the face with your hover effects.

Giflinks is a jokey exploration into just how intense we can get hover
interactions going.

Caused a bit of a stir when it came out, but for the most part, people realized
it was a joke. Check if out for yourself if you are a fun happy person.

➶ Giflinks
➶ Giflinks on GitHub


PASSIVE AGGRESSIVE PASSWORD MACHINE

Imagine your in-laws are helping you with a password… this is what they’d say.

I always irk a little inside, when a machine tells me something that I’ve done
is wrong. The most common form of that, is probably passwords. “Your password is
too weak”, “Your password needs to contain a number and a special character”.

While I absolutely understand why they need to be this way (they’re looking out
for us!) … that said, its the jarring interaction that I wanted to focus on.
What if they said meaner and meaner things. Thats what this website is all
about.



This was done in collab with a new friend of mine, Tobias, who worked with me on
the designs and interactions.

➶ Passive Aggressive Password Machine


HAVING FUN WITH JS

This talk explores some of my JS creations, and how I find lessons in everything
that I make.

This recording was at Empire.JS, an amazingly welcoming conference, that was a
joy to present at!

➶ Fun With JS on YouTube


TEXTER

Draw with text!

Texter is a small experiment, where I moved a Flash project from a book, over to
JavaScript… it really helped me focus on the language, rather than what I was
making. Comparing how Flash rendered items, to how the JS canvas does it.



You can see a small pic above, but I really recommend checking out the live
demo. There’s a link to the source below too… some cool stuff in there about the
speed of mouse movement, and angles of direction.

➶ Play with Texter
➶ Texter source in GitHub


DISCREET TWITTER UI

A small experiment into hiding tweet and facebook buttons, until they’re truly
needed.

I’ve never been too crazy about social media, but there’s no denying that having
a Facebook or Twitter button on your site can be a nice little boost.

These buttons are the result of a small experimentation, checking to see if I
could hide them discreetly, but still have them active and available on the page
if someone wanted them.



The idea generally was to show a small icon, and then reveal the actual twitter
button.



There are so many different ways this could be taken.



➶ Play with the Demo
➶ Check the source on GitHub


GENERATIVE BOIDS

A small experiment in combining flocking algorithms with line art.

In this experiment, I combined some flocking algorithms I found online, with
some open source “brushes”, borrowed from this cool drawing project

The brushes work by saving single coordinates on the canvas, and then cross
checking themselves with every other stored coordinate… they then apply
different behaviours based on their proximity to the others.

Clicking on the screen with change the “brush”, as well as some of the
properties of the flocking logic… this means the possible outcomes are pretty
much endless.







I really love these clean canvas experiments. Somehow finishing them up feels
like I’ve made something “complete”.

➶ Generative Boids


CONCENTRICS & RASTERIZER

Experimenting with Image data in the canvas. There’s always fun to be had!

This is one of my earliest experiments (of course writing this from the future),
that said there were a lot of great things to learn.

The canvas is (was) fresh to the web, and there was (still is!) a lot of
experimenting to do. In these experiments I am loading image data in and
checking it in the format of a grid (which color is this pixel, 10 pixels from
the top and left, 20 pixels from the top and left, 30 pixels etc)

From that data, I decide certain things, “how dark is this”, or “what color is
this” and then made different renderings from that information.



The custom controls here are using DAT.GUI, which is a great utility to use when
building projects that have lots of workable variables.



I’ve added both of these projects to CodePen, where you can play with, and edit
the source.

➶ Concentrics & Concentrics source on Github
➶ Rasterizer & Rasterizer source on Github


WOAH, YOU GOT TO THE END

Hi there! Thanks for checking everything out, if you have any questions (at
all), please shoot me at ~ timothy [dot] w [dot] holman [at] gmail [dot] com



I don't know what you expected.