I ❤️ ftrain. Few writers can capture the joy, poignancy, existential terror and profound connection at the heart of Internet culture, but Paul Ford (the real-live person behind ftrain.com, medium/@ftrain, and countless other Internet words) has the historical context and raw talent to consistently enthrall. As I sat down to write this post, I peeked over at his Medium blog and went down the rabbit hole, smiling like an idiot and laughing out loud as my coworkers moved desks outside the office I’m squatting in.
I’m obviously an ftrain fanboy, so it shouldn’t be surprising that when he first tweeted about setting up an old-school multi-user unix box with a classic home directory setup I was all over it. For the uninitiated, Tilde Club is a love letter to a kinder, gentler (ok, it was just as trollish), younger Internet, where incoming college Freshmen would be gifted a small patch of real estate on the budding World Wide Web to seed with whatever travesty of HTML and CSS they could cobble together. This was a time when static content was the current big thing and we called web apps DHTML. It’s the first corner of the wide world of tech I encountered as a teenager, and it’s hard to overstate the nostalgia I carry for it.
Obviously, I jumped at the opportunity to tend a tilde. I reached out to Paul, SSH’d in to the box and surveyed my kingdom:
/ WELCOME TO TILDE.CLUB A PLACE FOR WEB \ \ PAGES / --------------------------------------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || - There is NO GUILT here. NOR SHAME. Not knowing things is fine. Not finishing them is fine too. Be a disaster! Make a disaster! - Type "control-L" to redraw your screen if it gets messed up - Type "mesg n" if you don't want messages, "mesg y" if you do - There are many people here and it gets slow - This is a place for making awesome web pages. If you want to do things that aren't about web pages, hit me up and we'll figure out how you can start your own tilde.club - There's a local IRC server and your choice of two clients. - Type "scrollz" or "irssi" - Then type "/SERVER irc" - Then type "/JOIN #tildeclub" - There's a Usenet-style local news server and message boards! - Type "slrn" or "tin -r" to start up a newsreader and get going. - Type "faq" to read some FAQ - To chat type "~chat/start" (thanks to ~pmg) (it's rough but works!) - There is also IRC on freenode at #tildeclub - There is a waitlist form at http://goo.gl/forms/gRMRT1YBU4 - Public repo for hacks: https://github.com/tildeclub/tilde.club - finger works locally but not externally - Mail works, but only internally; use mail, pine, alpine, or mutt - If you are confused email email@example.com IMPORTANT NOTE: PLEASE DON'T HACK THE GIBSON. Don't run servers please. Make some HTML web pages. Running a server here is like running Photoshop on your watch. -sh-4.1$
home! I took a quick look around:
-sh-4.1$ ls public_html
Here was the magic. I knew from the old days that anything I put in
public_html would show up on the internet at
tilde.club/~travis. I created an empty git repository, added
rsync‘d it up to
This is 2015 though, so I couldn’t just push static HTML and be done. I got an idea in my head that it would be interesting to have a shared space to interact with other members of
tilde.club. I signed up for Firebase, added a
project.clj to bring in ClojureScript and started hacking. I quickly built a simple Om app that rendered colored dots representing each user’s location and the user’s name. Users could move their dot and type a short message. I saved position and message information to Firebase so other users would be able get it and render the full board. I had created a bare bones MMO!
tilde.club wasn’t too onerous, but it was two commands:
lein cljsbuild once tilde rsync -rvz * firstname.lastname@example.org:~/
Worse, those two commands didn’t include pushing my code to version control! Fortunately, I work for a company that solves exactly this problem. I whipped up a quick
deployment: master: branch: master commands: - lein cljsbuild once tilde - rsync -rvz * email@example.com:~/
I created a repository on GitHub and configured it to build on CircleCI by finding the project on the “Add Projects” page and clicking “Build project.” Now I could just push changes to GitHub with
git push origin master and they would be deployed to production automatically.
For me, being able to cycle rapidly between having a creative thought and seeing it implemented in production magnified my ability to create. This is the promise of CircleCI - we let developers, whether building a billion dollar company or hacking on an art project, focus on what makes their work interesting.
CircleCI’s mission is to enable you to worry about the problems that matter to you and automate away the tedium. We have lots of ideas about how to do this better and can’t wait for you to see them in the coming months!