Why leave Octopress for Ghost?

Posted on
Why leave Octopress for Ghost?

More than one person has e-mailed me in the past few months asking why I switched away from Octopress—which I was initally so excited about!—to Ghost. Octopress, after all, has a lot of attractive qualities—it can live on Github (though I've never bothered with that functionality); you can write blog posts in vim; it uses static pages rather than requiring PHP or Node or something running behind the scenes to generate stuff. After a year of semi-regular blogging with Octopress, though, I was just kind of...bored with it. The official Octopress blog hasn't received an update since July 2011, on…

Read more »

Custom Twitter URL shortening and image uploading

Posted on
Custom Twitter URL shortening and image uploading

I don't know what normal people do on days off from work, but I do things that are too esoteric even to write about for Ars Technica because...because I think there's something wrong with me. So, last Friday I spent a few hours setting up a vanity URL shortening service and custom image uploading service for Twitter, so I can, I don't know, be cooler than everyone else. It was surprisingly fun! First, though, the annoying caveat: Twitter already shortens every link with its t.co service, and you can't opt out. The reasons they give are mostly marginal and downplay the fact that aggregate click…

Read more »

A blogging platform for the future

Posted on
A blogging platform for the future

I've gotten along fine with Octopress for the Bigdino blog for a couple of years now; I enjoy the speed of a blog made entirely of static files, and I enjoy Octopress's responsive design (courtesy of its Jekyll underpinnings). But there are two constants in the world of blogging: "Sorry I haven't updated in so long" posts, and "I've change my blogging platform!" posts. This is both the former and the latter. Sorry I haven't updated in so long. I've changed my blogging platform. This is Ghost. Adding images is hella sweet, too! Discuss this post on the BigDinosaur forums…

Read more »

Working on a new comment system

Posted on
Working on a new comment system

This is an old post. It may contain broken links and outdated information. In the previous post, I walked through setting up Discourse, a Ruby-based web forum. I'm in the process of shifting this blog's comment system from Disqus, which I've never been wholly comfortable with, over to using Discourse instead. There is being done via a plug-in for Octopress currently under development by one of the posters over at the main Discourse development forum. Why ditch Disqus? There are several reasons, but the biggest is the privacy concerns. Disqus tracks users' movement across Disqus-enabled web sit…

Read more »

Setting up Discourse with Passenger and Nginx

Posted on
Setting up Discourse with Passenger and Nginx

This is an old post. It may contain broken links and outdated information. I like fiddling with new software and seeing if I can make it work—that's what most of this blog is about, in fact. Most of the web-based apps I've walked through deploying have been written with PHP, but there's a fancy new bit of Ruby-based forum software that I've sort of fallen in love with: Discourse. Discourse is shiny and new, and the developers (including Jeff Atwood, one of the folks behing StackExchange). It's made out of Ruby instead of PHP, and it uses PostgreSQL and Redis for its back-end. The project is st…

Read more »

Node.js, Redis, and Etherpad

Posted on
Node.js, Redis, and Etherpad

This is an old post. It may contain broken links and outdated information. Etherpad Lite is a real-time collaborative text editor which allows multiple users to simultaneously fiddle with a document. Everyone can see everyone else's changes in real time, which is really cool. The "lite" tag after the name is there because the Etherpad Lite project was spawned from the ashes of the original Etherpad project, which itself was snapped up by Google and transformed into the ill-fated Google Wave. Wave was never really all that popular and has since been killed, but the core idea is still totally c…

Read more »

Platforms and value judgments

Posted on
Platforms and value judgments

This is an old post. It may contain broken links and outdated information. N.B. This is a personal post. I promise to keep this kind of thing extremely rare, and to do more technical posts soon. My name is Lee, and I am a Mac user. There, I said it. I'm a dirty, dirty Mac user, and I'm okay with that. My intent with this blog was for it to remain purely technical, with no personal entries at all; I've been down that road before with my last blog and it didn't end well. However, an article went up this past weekend on Ars where the staff posted pictures of their office desks, and the amount of …

Read more »

Adventures in Varnish

Posted on
Adventures in Varnish

This is an old post. It may contain broken links and outdated information. In the previous entry, I touched briefly on how some experimentation with Blitz.io led to me installing Varnish Cache on the Bigdino web server. Varnish Cache is a fast and powerful web accelerator, which works by caching your web site's content (html and css files, javascript files, images, font files, and whatever else you got) in RAM. It differs from other key-based web cache solutions (like memcache) by not attempting to reinvent the wheel with respect to storing and accessing its cache contents; rather than potenti…

Read more »

Blitz.io makes load testing fun

Posted on
Blitz.io makes load testing fun

This is an old post. It may contain broken links and outdated information. Web site performance has been on my mind a lot lately. An average day for this blog means serving only a few hundred visitors and maybe 4-500 page views, but bigdinosaur.org also hosts the Chronicles of George, which carries with it a much higher average load; on days when a link hits Reddit or a popular Facebook page, the CoG can clock 10-12,000 pageviews. This is still small potatoes compared to a truly popular site, but it pays to be prepared for anything and everything. Setting up a web server to be as fast as possi…

Read more »

If This Then That dot com

Posted on
If This Then That dot com

This is an old post. It may contain broken links and outdated information. Brandon Mathis, the creator and maintainer of Octopress, recently tweeted a method to programmatically create tweets from new Octopress blog posts. Moments after that, he retweeted a reponse from another Octopress user which outlined a simpler method using ifttt.com, a web site which lets you create automated actions based on conditions. The site's name is prounounced like "lift" but without the "l", as it they proclaim on their homepage. The awkward construction comes from "if this then that", which describes the web s…

Read more »

Vanilla forums on Nginx

Posted on
Vanilla forums on Nginx

This is an old post. It may contain broken links and outdated information. A few years ago I created a web site called the Chronicles of George, featuring some badly-written help desk tickets from the job I had at the time. It gained me some small amount of Internet fame (but no fortune), and developed a loyal community of sympathizers. For a long time we hung out on a self-hosted phpbb forum, but a change in web hosting led to the opportunity to also change the forum software away from something as hack-prone and complex as phpbb to something faster, simpler, and ostensibly more secure: Vanil…

Read more »

Wordpress on Nginx

Posted on
Wordpress on Nginx

This is an old post. It may contain broken links and outdated information. Wordpress is the Microsoft Word of blogging platforms—it's overkill for almost everyone, but everyone uses it anyway. It's a popular, monstrous, ugly app that requires regular patching to keep evildoers from doing evil with it, but it's still a top choice for self-hosted blogging because if you can fight your way through its ridiculously complex interface, you can use it to make a good-looking blog without having to know a lot about HTML or CSS. I'm going to focus on taking common .htaccess-based security practice…

Read more »

MediaWiki on Nginx

Posted on
MediaWiki on Nginx

This is an old post. It may contain broken links and outdated information. I host a small Minecraft server with maybe a couple dozen players total, and for the past several months we've been using a wiki to catalog our achievements. I started with DokuWiki, a flat-file wiki, because I was reluctant to weigh down a webserver with a database just to host a small wiki, but now that Bigdinosaur.org is hosting some more things and needs a database, it seemed time to switch over to MediaWiki, the wiki engine that powers Wikipedia and the whole MedkaWiki foundation network of sites. There are lots of…

Read more »

Securing ssh with iptables

Posted on
Securing ssh with iptables

This is an old post. It may contain broken links and outdated information. In the previous post, I discussed one possible method of keeping undesirables from connecting to your server via ssh: using the DenyHosts TCP wrapper to watch authentication attempts and block remote hosts based on conditions you set. DenyHosts (and other TCP wrappers) are easy to set up and don't require much maintenance, but the block list files they generate can grow to a not-insignificant size; further, your web server must spend resources matching incoming ssh connection attempts against the block lists. If you're …

Read more »

Securing your server with DenyHosts

Posted on
Securing your server with DenyHosts

This is an old post. It may contain broken links and outdated information. Running any kind of server at all is a risk, because the internet is a bad place full of bad people who like to destroy things for fun (and if you don't believe me, read this). It becomes a matter of risk management—you have to expose certain things, like TCP ports 80 and maybe 443, for your web server to be reachable; you also probably need to expose at least one management port somewhere so that your server can be poked and prodded should things go wrong with it. This usually means exposing port 22 for ssh if yo…

Read more »

Gzipping @font-face with Nginx

Posted on
Gzipping @font-face with Nginx

This is an old post. It may contain broken links and outdated information. In a previous post, I discussed how to alter Octopress's configuration to serve web fonts via the @font-face CSS method. This works great and will get your Octopress site working with locally-served web fonts, but there's some optimization that can be done on the web server side; specifically, three of the four types of web font files are compressable and benfit from being gzipped by Nginx (or whatever web server you're using) as they're served out to your site's readers. We use Nginx here at the Bigdinosaur.org compoun…

Read more »

Running BIND9 and ISC-DHCP

Posted on
Running BIND9 and ISC-DHCP

Most people use a NAT router at home for connecting to the Internet, and most consumer-grade NAT routers offer some limited version of DHCP for automatically handing out IP addresses to desktops and laptops and game consoles and smartphones and some limited version of DNS for making sure all the devices on the network know what all the other devices are called. However, the feature set and functionality of these cut-down DHCP and DNS instances are almost always too limited to handle more than the simplest of network designs; sometimes, you need to be able to do more. For example, if you wanted…

Read more »

Using @font-face with Octopress

Posted on
Using @font-face with Octopress

This is an old post. It may contain broken links and outdated information. Octopress comes with awesome support for Google Web Fonts, which lets you quickly and easily add fonts to your web site from Google's large library, but Google Web Fonts have their drawbacks. Using one Google Web Font will have little impact on your site's load time, but every additional font you add to your web page increases the page's load time, as clients must use additional HTTP requests to pull the web fonts from Google's servers while at the same time loading your page and its contents. Plus, sometimes you want t…

Read more »

Nginx: stable or dev?

Posted on
Nginx: stable or dev?

This is an old post. It may contain broken links and outdated information. Like most open source projects, Nginx has more than one "branch" of code—that is, more than one version available for public consumption. Ignoring platform-specific versions, the two main branches are "stable", and "development". This is a common dichotomy. For projects divided thusly, the "stable" branch is intended to be a thoroughly tested, minimally-bugged, production-ready version of the application which can be deployed in real life. Conversely, the "development" branch usually has more features, but is typi…

Read more »

Securing Openfire clients

Posted on
Securing Openfire clients

This is an old post. It may contain broken links and outdated information. The last post on Openfire (discussing how to add SSL/TLS certificates) proved to be pretty popular, and I've gotten more than one request for a follow-on about securing Openfire clients—that is, forcing them to communicate with the Openfire server using only an ecrypted SSL/TLS connection rather than cleartext. In this post we'll go through how to configure three popular IM applications to use SSL/TLS with Openfire. I'll also add notes about how to enable OTR messaging encryption on two of those IM clients. TLS en…

Read more »