Do things, write about it
mdswanson.com
mdswanson.com
The thing that impressed me the most was that he wrote, and made some progress, almost everyday. Also, it wasn't polished or article-y at all. It was just candid journaling.
I found it so motivating that when I recently started working on a new product myself (http://churnbuster.io/) I decided to do the same thing. I'm keeping a journal (http://productquest.andrewculver.org/) totally separate from the product blog, product mailing list, etc. that conveys my experience as I build a product, rather than trying to market the product itself.
The journal serves a couple purposes: It keeps me accountable to keep development coming along regularly. Also, it helps me connect with other product people or people who want to get into creating products. (They're more likely than the average person to be a potential customer for the product.) Also, any audience the development journal may gain can help amplify the announcement when the product is ready to launch.
You also get invaluable documentation of justifications for what you do.
And the effect multiplies when you decide to publish it.
I keep sporadically working on a series about writing a compiler in Ruby, which morphed into writing a Ruby compiler in Ruby, and it's a slow going slog (I just ended a two year "break"), and writing about it quickly started changing my approach. It's like when your maths teacher insist you show your working rather than just giving the results - you can't skip steps just because you know (or think you know) how to go straight from A to B any more. Of course when writing a journal, nobody is forcing you to not take shortcuts, but I find I am more likely to be disciplined about verifying assumptions an testing changes anyway.
I'm pretty happy with the technical aspects of what I ended up with, in terms of simplicity, how easy it is to add content, and how little I have to do admin on the server.
I use S3 static website hosting and a dead-simple node.js script to generate the page, and then use s3cmd, a wonderful little tool that is in my distro's package manager.
So the cool thing is that I pay approximately 3 cents per month for the hosting, I can take any amount of traffic no problem, and server crashes are out of the question. On top of that I can preview perfectly what I will see before I publish by viewing what I am about to push with the file:/// protocol.
Result: http://andrewkelley.me/
It's open source: https://github.com/superjoe30/andrewkelley.me
So last week I finally caved, I learned nanoc, a static site generator in Ruby, and got to work. I didn't know Ruby either but to be honest it wasn't such a big deal, I learned what I had to pretty quickly and you can find some great examples online. I especially liked the little bits, like the fact that it's so easy to let nanoc generate a sitemap for me, which I could submit to Google and Bing to cozy up to the search engines.
I'm currently still using more or less the default template because I find it to be pretty readable, but I'll change that soon, content is more important first.
I didn't feel like paying for hosting, so I picked github as my host, which is working wonderfully. To use it with a custom domain you own, all you have to do is add a CNAME file to your repository.
This is the site: http://www.aktau.be/ (currently only 1 real article + the about/contact page up but more drafts are in the pipeline)
Mine's open-source as well (of course): https://github.com/Aktau/aktau.github.com
I got a cheap domain name for my own country from versio.nl, but they didn't seem to offer free DNS, so I'm using a free account at http://www.luadns.com/. Which is, quite frankly, the most fun I've ever had configuring DNS. Write it in Lua, git push and you're done.
So, the only thing I'm paying for is my domain name, which costs me about $2 per year. Awesome.
In my opinion these projects, and generally building a network amongst developers can help you if you are a beginner, looking for entry-level jobs.
But in my experience after a point the job offers you get this way might not be the best amongst the offers you get. For example at 1998 I wrote a real-time ray tracer, and because of it a game-engine company offeed me a job as a script writer. They said I am not experienced enough to join their core engine team. Nowadays, it is even worse: I get the best opportunities from people who are not even technical. The best job/contracting opportunities come from people who are good businessmen, but not technical. They cannot evaluate me based on my fun projects, they evaluate me based on some relatively boring previous jobs/works in their industry. I do my fun projects for myself, or because I want to create paying products of them. I occasionally tell about them to fellow hackers; not because I want to get yet another low paying entry-level job, but because it is fun to speak about a fun project.
Creativity will blow, of course, when you're doing side projects but when you're working for a client or your company most of the things will be defined before the first line of code or the first illustrator vector is drawn. So the creativity limits in those situations may be shorter than anyone expects.
Apparently, Carl was unaware of it as well despite the post and subsequent discussion receiving a fair amount of attention on HN at different times.
Disclaimer: I wrote it.
Lets assume that doing and telling increase luck surface area. We know, through observation, that both good and bad luck exist. Thus, there should exist situations in which telling and/or doing increase bad luck surface area.
All things being equal, the direction in which ones luck surface area will grow (good/bad) when telling/doing, is evenly distributed. In other words, you have even odds of good and bad luck when you tell/do.
Now, lets follow the general social studies assumption that people are risk averse.
You get a more tightly packed theory, albeit, less inspirational - the winning strategy in life is doing nothing and shutting up. :)
Now back to work.
Don't say "install this blog software on your web server"; my side project doesn't need a side project, thanks. :)
If you want to invest a bit more time, Jekyll on GitHub pages is a really great setup and I highly recommend it.
Thanks for writing this, swanson. I've written on and off over the last few years but lately I've wanted to write, started to write, and then lost the nerve and never posted. Hearing "you don't have to be the next Joel On Software" helps.
Pelican docs:
http://docs.getpelican.com/en/3.2/
My personal site as an example:
www.roycehaynes.com
I'm sure it can get easier than WP.
I took the extra mile on my blog and installed Wordpress on my server. I thought I liked it but now, I'm looking for another solution. I have yet to find what I want.
I fancied blogging, but I already have so many god-damn side projects on the go (my eternal problem is too much started - too little finished) that the last thing I want to do is keep a linux vps and a Wordpress installation up-to-date and configured securely.
With squarespace I think I pay $16 a month (less actually as discount codes are in healthy supply online) instead of $5 for, say, a vps on DigitalOcean, but I get my pick from a set of nice responsive template designs, unlimited traffic (in case I ever write something that gets HN'd) and a drag and drop interface that most of the time exactly meets my needs. They do all the updating of the back end for me and I can just write. I can inject code and other stuff onto the page if I need to, but I've kind of come to the realisation that I don't need most of that bumf anyway.
I did just have a look at the in-post code writing tool out of interest: It has HTML, CSS and Javascript formatting, which isn't much help if you do most of your work in c# like I do, but then I'm sure I'll survive. Their customer service is why I'm so damn enthusiastic about them, so no doubt if I REALLY feel I need it I could just email them and request it.
Reading this back sounds like I work in their marketing department. I promise I don't, I just really think you should check them out.
Or does something like that already exist (beyond Gists)?
I had a blog hosted at MIT, on a server that they have since shut down. For my first few years of using Wordpress, I was pining for the days of my good ol' MIT blog - it was perfect!
Recently I checked out an archive of my MIT blog. Okay, so, it wasn't perfect. In fact, I think in truth Wordpress is superior. Maybe since the MIT blog was so uncustomizable I just made myself happy with it, whereas with Wordpress I can tinker endlessly, striving for some ideal of perfection that I don't even have a clear vision of.
I found myself in a similar position to Mr Swanson. I just started writing about things and found that good things came out of it. It makes life more interesting. And it helps other people. This is me:
It's not tremendously cheap (WP Engine starts at $30 a month), but if you want to run a sophisticated CMS with no setup or maintainance investment, it's by far the best approach.
(It may be noted that I've tried everything from hosted free services to writing my own blogging engine in RoR, and hosted WP is what I've eventually settled on.)
It's been a personal goal of mine this year to blog more and more. The few times where I really put effort into it, I found huge rewards. A simple (but lengthy) article about how to write canvas games ended up being published in the Game Developer Magazine, and I made some money off it. All because the editor saw it, liked it, and emailed me about it.
Many are small, others would have made me wealthier.
In all cases, I didn't engage them because I didn't feel they were significant "enough" or lacked the confidence to simply dive and do them, and missed an opportunity as a result.
Almost all of them would have been accomplish-able in a weekend or afternoon, with another half-hour spent writing a blog about it. You don't need much detail, but it takes some mental work to distill the project to a simple statement that people will enjoy reading.
Regrets? Sometimes. More so for having failed to cultivate in myself a culture of getting stuff done and pushing it away from my desk into the world at large, so others can build on it.
"I could have done more" is the statement of someone who realizes in retrospect the value of his time.
Most recently: - I was asked to provide an article to go into a sidebar of someone's book. - Someone I met for the first time at a meetup mentioned that they knew who I was as my articles kept appearing at the top of their Google searches for particular topics. - Microsoft suggested a resolution to a problem ticket I had raised with them by copying and pasting my own blog into a Word document and sending it to me - complete with Screenshots.
I've also learnt a lot by researching "that extra little bit" for the blog content and from other people leaving really great comments.
I have http://www.mikadosoftware.com, which is the main supposedly commercial site. Its self hosted on rackspace for various reasons.
For documenting side projects I use readthedocs.org and CNAMEs to put up any and every github project - so I get http://pyholodeck.mikadosoftware.com, generated straight out of docs in the github project. Good syntax highlighting is a breeze, look at `literal-include` in sphinx for an idea. I have maybe twenty CNAMEs like this.
And http://blog.mikadosoftware.com is a wordpress site, I pay about 5 bucks a month for, mostly because I did not want to write my own blogging software for the 3rd time.
I know it sounds a mess but the theory is I used to have "ideas" and would mail myself with a sentence or two thnking "one day" I would write it up into that world changing post it deserved. Well now I just open the Wordpress app and put those sentences, plus a couple more because I am publishing and I have a "thought" out there. Basically every random thought that used to languish on my inbox is tarted up with an extra 30 seconds work and actually contributes to my capital.
I have no idea if it is SEO good or bad, or frankly if anyone actually reads this stuff. But I am glad I am slowly building up my online capital. If any of the blog posts actually get attention, I guess I will tart it up a bit and republish it on www.
(As an example, I often bang on about software as new forms of capital here, but this link (http://blog.mikadosoftware.com/2013/08/06/software-capital/) is an example of me putting a quick thought into existence. I would not actually consider that an acceptable docstring for production code, but its OK to throw out there.
Anyway - I agree with the main thrust - and for less than 50 bucks I have blogs, code documentation, and proper length articles from ReSt (a python form of markdown)
Ignoring that however, the setup has taken a while to arrive at a sensible level and might be useful to the OP.
I recently redesigned my website http://www.mohitranka.com, and looking to build a text analytics api side project (yes, I know not original) http://analytex.net.
How do I generate "original and interesting" ideas, worth showcasing/talking about?
Just keep writing. Don't worry about building an audience, focus on improving your own writing ability and finding your voice. I wouldn't even really say I have much of an audience - but it has grown from only co-workers and friends to local developers to occasional HN/Reddit success.
When you think about bloggers that have a real, influential audience (PG, Joel Spolsky, etc) just remember how many years and hundreds (or thousands) of posts they've written.
I just wrote articles to improve my writing skills and now people find them in Google.
Twitter is useful, because you can contact people directly (e.g. people like it when you write something using a tool they built). It's also a good way to connect with people at conferences because there is often a conference hashtag - I met a few people writing up summaries of talks. It seems like a lot of people use it as an RSS substitute as well, so it's a light-weight way for them to follow you.
I never felt comfortable with writing for public consumption. Nor did I feel I had code to contribute, that wasn't proprietary of a client.
I've started slowly and enjoy the practice even if it's just practice for myself for the time being.
It provides round-trip markdown/HTML editing to let you focus on writing and easily layout the page.
"This past month I set a goal to write 20,000 words"
Setting writing goals in terms of number of words looks terribly wrong to me.I like just forcing blog posts to happen on a reasonable schedule. Like tomorrow is an "emergency blog post day" for us on http://blog.beeminder.com
I also think having the thumbnail in the sidebar like that makes for a nice "ETA till next post" for your readers. And there are a couple ways to automate sending the +1 to Beeminder each time you write a post.
PS: Another more explicit example of the "ETA To Next Post" thing: http://daily.muflax.com/ (Looks like they burned out on blogging there for a while but are committing to get a post out 20 days from now...)
Ask yourself "What if?" Take something you're interested in and modify it slightly versus trying to think of a whole new original concept. What if I made a to do list specifically for teachers? What if I created a workout app only for developers? etc.
This could help spark your imagination into something more grandiose.
If they don't accept the change, don't take it personally.
* Write up samples of old ideas in new languages (e.g. X in Scala)
* Write up samples using new libraries (e.g. from the Show HN posts)
* Combine two random things together (e.g. PDF.js + Lunr.js = ...). This works well with new libraries, because people like having their work used.
* Thought experiments can work well (what's a feature of language/tool X that you don't like, and how would you fix it)
* Write up sample code that fills the gaps in some libary's documentation (if you work on a tool and have trouble googling the results, this works well, or if the documentation doesn't answer questions in the way you formulate them)
* Find a CS textbook on a subject you find interesting, find interesting problems but apply them to something you're familiar with. I've had good success with this with an NLP textbook, but apply the exercises to data I have access to so they are novel.
* If you look at language based subreddits, a lot of the smaller ones are starved for content. You can find popular examples from language X and rewrite them for language Y.
* Find a book of puzzles (soduku type things) and write up puzzle solvers.