Blogging: The Hacker Way
bnjmn.orgMy experience trying to convince my friends to start blogging is that the absolute worst thing to happen to a blogger is for them to spend an inordinate amount of time tweaking their blog setup, and not actually writing. So yes, if you blog regularly and are looking to improve your process, this may be useful, but if you're just starting off, just do something that works immediately, and worry about the words, not the code.
Someone should create a blogging platform where the features are unlocked with each post you make. After your first post, you can name your blog. After your second, add an about page. Your third, comments or a blogroll. Fourth, analytics, etc.
Whilst that might be an interesting idea, it would probably drive people away from focusing on great content. "Ooo I want comments and I'm only two blog posts away!"
My suggestion was only partly serious, but IMO, focusing on great content is probably one reason many blogs are abandoned - people worrying that an entry won't cut it. That doesn't meant everyone should post junk, but sometimes you can write something short and punchy rather than an epic essay.
Agreed. My most successful blogs over the years started initially with pretty low quality, high throughput "just stuff I want to post" stuff. Then eventually they became higher quality (and more difficult to post to). It seems like a good process, rather than just expecting to write high quality stuff out of the gate.
Octopress is a project that uses Jekyll, but adds a lot more features that make it even easier to use as a blogging framework.
How can it be justifiable that one has to regenerate the entire blog every time a post is made? Do you have any idea how much time this wastes? Conceptually, I see no justification for this.
For people commenting on his statements about WordPress: Yes, there are better ways than having 12 files to generate what you need. In fact, you can do it with two: an index.php and a style.css file (technically).
But the point is that if you just want to write on the web and not deal with a bunch of nonsense, learning a whole CMS like WordPress can be a pain. I cringe when people give WP a bad name, as it really is awesome and it's pretty much how I make my living. But you can't deny that if you just want simple posting features, WordPress can be a little unnecessarily large.
If I wanted a full feature set with effortless tools that trivialize everything about blogging from scheduling posts to posting from an iPhone, Wordpress is easily my favorite. The level of polish and ease that Wordpress comes with is unparalleled.
For my personal blog though, I enjoy Jekyll (via Octopress) because it's hands-on and an educational experience for someone like me that's trying to become a better developer. I learn a lot just jumping in to the source code and trying to figure things out, and it even inspires small coding projects/ideas.
exactly. The majority of my job as a freelancer is working with WordPress sites and I love it, but for my own site I just use plain HTML and CSS static files.
If you need to hammer a nail you don't use a screwdriver. The right tool is what matters.
I had this grand idea of re-working my personal web site and having it be redirected to a GitHub hosted instance. All very clean/elite and all. And I did set it up and made 3 posts...
But then I stumbled onto or more so realized that I had a road block. Namely that of practicality.
I mean it meant that I needed to be on the command line to actually post and I needed to run Git commands to add files/posts and then push to the server. I couldn't post from my cell phone or iPad. Most of my browsing these days is from my iPad.
I mean blogging from WordPress/Blogger isn’t as clean/elite but at least you can edit through the web as well as optionally via a separate application. So if the barriers to create are too high I may as well be using WordPress/Tumblr/Blogger.
I tested out Cloud9 IDE since it ties in nicely with GitHub repositories and covers the base of being able edit througth the web... But the workflow still didn't work. Everything besides blogging 'got in the way'.
If you want to blog like a hacker, start by writing content that doesn't suck.
If you want to feel elite and 'static HTMLy' about it, then:
- Set up a simple content creation site that supports your content creation workflow best.
- Set up your elite Jekyll site.
- Set up a cronjob and a HTML parser which downloads and reformats your posts from your simple content creation site and feeds them to Jekyll.I haven't tried it, but I believe one solution people have found for mobile posting to jekyll is keeping your _posts folder in dropbox, setting up a cronjob, then using Capistrano for deployment.
This is now a hosted service but with Pelican instead of Jekyll. Have a look at Calepin.co
I wouldn't be surprised if there already was a tool that deploys your posts to your Jekyll blog. If not, then it'd be a fun little project.
Someone should set up a jekyll hosting service that watches a DropBox share folder for posts.
As many here know, I wrote a book on technical blogging for "hackers and founders" (http://pragprog.com/book/actb/technical-blogging, now complete). In it I included Jekyll/Octopress as one of the available options, but ultimately suggested WordPress to most readers. WordPress, with its unlimited number of features, allows you to set it up quickly and start writing. Jekyll/Octopress requires you to write quite a bit of code if you want to obtain the same level of customization that I recommend for professional blogs. It's a growing ecosystem, and one to monitor closely, but at this stage I feel it would be a disservice to my readers to blindly recommend a somewhat Spartan system that requires hacking if you want to add, say, a list of most popular posts in the sidebar.
Which is exactly why it goes on Hacker News. I would never in a lifetime recommend it to my mother.
Your post is perfect for the HN crowd. But I think even among "techies", Jekyll/Octopress are the ideal solution for only a minority of people reading this.
Certainly. Hopefully my post will help them judge whether they are part of that minority or not.
If you want a similar solution but are more comfortable in python then also check out hyde: http://ringce.com/hyde
It's very similar in spirit but uses python and the corresponding tools to get the job done.
Another Python blog engine: https://github.com/ametaireau/pelican
I'm using it for a new-baby-picture-proud-parents blog (which I won't link to due to its private nature). It's not very feature-rich, but it gets the job done.
For Node.js there is DocPad: https://github.com/balupton/docpad
I use Wordpress with almost no modifications made. I haven't even changed the default header image that comes with Wordpress. The way I saw it when I made the blog, the content's more important than making things look pretty. I'll do up the theme later when I have a decent reader-base.
This approach is unfortunately mistaken in my experience. Readers are humans, and they will judge books by their covers. The default WordPress theme is the worst you can do to attract new readers/subscribers, all things being equal.
Here is what I wrote about this in my book:
"The default WordPress look is clean and minimalist. Depending on your aesthetic preferences, you may like that look a lot. But it would be a mistake to settle for this default theme, for three reasons:
1. Most new blogs use the default theme. Sticking with it won’t help your blog stand out from the crowd.
2. Visitors value eye candy. Beautiful design will greatly help your blog succeed.
3. The default theme has very limited features and customization options.
Spend some time evaluating other themes, until you find one that fits your style and the type of blog you intend to run. If you’re running a team blog that will be updated on a daily basis, for example, a magazine or even newspaper style theme may be a good idea."
I tend to be an outlier but sites with the default WP don't stick with me mentally unless they have amazing content whereas ones with their own look and feel can get by with good content and I will remember them.
Regarding WordPress, the author says:
> The theme for the blog and two static pages took up 12 files of HTML and PHP layouts. Furthermore I had made several hacks to make things be just the way I wanted.
I know WordPress is an easy target on some fronts, but this point seems like a stretch. Twelve files plus hacks?
I don't know all your site requirements, but 2 to 4 WP theme files would probably work for what I see on your site.
I'd be interested to see what the twelve files included. I'm no expert but maybe I could offer some tips for simplifying things?
I guess I should elaborate on my statement about Wordpress because it came out wrong. I realize Wordpress is powerful, extremely powerful. What I meant was that this comes at an expense. This power means one has to deal with a very extensive API. This is great for someone who needs it (or knows it), but when building a personal site, dealing with an API requiring more than a couple of pages of documentation seems wrong (to me). Something like having to keep af functions.php with a 20+ sloc function to generate the current page title.
Obviously Wordpress does not suck, it is one of the most used blogging platforms. The feeling I got when tweaking it to do something different from the standard themes was that I was using a chainsaw to slice a loaf of bread. It was certainly powerful enough and it could certainly get the job done, but it wasn't easy and it wasn't elegant.
And here is an overview of the files in my custom wordpress theme: http://dl.dropbox.com/u/3240627/wordpress_folder_structure.p... :)
I started working on my personal site today and I've been using Jekyll for it to take advantage of GitHub pages, it's fantastically useful for someone like me who already keeps all their essays in markdown and knows their way around HTML and CSS. This post is super helpful to me, thanks for showing it to us.
Has anyone tried blosxom(written in perl) and pyblosxom (the python alternative)? They are both pretty easy to setup and use. try :http://pyblosxom.bluesock.org/ and http://www.blosxom.com/
I use blosxom for jamesshore.com. Although I like its simplicity, I wouldn't start with it now. I don't think it's being maintained. I've also had some performance problems.
Jekyll's "static pages" approach has a lot of appeal to me, so if I were starting over I'd give it a serious look.
I can recommend StaceyApp: http://staceyapp.com/
The filesystem is built of just folders and text files, and it creates a blog automatically. Very minimal and doesn't require any kind of admin backend.
From installation instructions:
Go into the /app folder and change the permissions on the _cache folder to be 777 (completely public).
I'm not sure what you mean by this? Are you suggesting it's insecure?
I thought lots of uploads/cache folders on blogging platforms have 777? I'm a lay person, indulge me.
That is a really, really nice looking blog. I love the clean simple approach.