HNHacker News
TopNewBestAskShowJobs

thomanil

251 karma · joined January 28, 2009

Core committer on Gitorious (gitorious.org), working at Gitorious AS (gitorious.com). Personal website: http://kjeldahlnilsson.net
submissionscomments
thomanil··on GitLab, open source github clone, reaches 3.0
gitorious.org - the free open source hosting service (came first) gitorious.com - the commercial company behind it (came later) getgitorious.com - official doc, starting point etc (recently added as a common starting point)
thomanil··on GitLab, open source github clone, reaches 3.0
Thanks for that. BTW our new official home page can be found at http://getgitorious.com :)
thomanil··on GitLab, open source github clone, reaches 3.0
It used to be, but now you can simply use the automated installer: http://getgitorious.com/installer
thomanil··on GitLab, open source github clone, reaches 3.0
mattdebord and estel: I'm one of the core Gitorious committers. What specifically did you find messy? The initial setup or GUI/UX? Honest question, as we're constantly trying to prioritize based on the painpoints of users. :)

BTW we've recently addressed the complicated manual setup with a new, automated installer that gets you set up within 30 minutes: http://getgitorious.com/installer

Also, a new and improved UI is due to arrive in Gitorious soon: http://blog.gitorious.org/2012/08/21/sexy-looking-repositori...

All feedback is very welcome.

thomanil··on Back on Linux (after one year of Apple and OS X)
Exact same reasons here. I love being able to suspend, resume and clone VM dev environments, and there's plenty of OS X software I really don't want to give up outside of dev work (Keynote, Sparrow, Reeder, Final cut, Pixelmator, etc..)
thomanil··on Back on Linux (after one year of Apple and OS X)
Agree on Vagrant, great for headless deployment/testing workflows.
thomanil··on Back on Linux (after one year of Apple and OS X)
I was on a 11" Air until last week, transitioned to a 13" Macbook Pro this weekend. Performance was a bit sluggish when running a full Ubuntu desktop inside a VM on the Air, but feels snappy and great on the MBP.

My setup is just a basic Ubuntu desktop install inside VirtualBox (with Vbox guest additions installed). Haven't noticed any particular problems with the gfx support, but then my Ubuntu desktop is fairly basic - I only need an Emacs frame, Chrome and few terminals panes to do most of my day to day work.

I also use Vagrant to create, suspend, resume and destroy VMs when I just need something headless to deploy and test our product to.

thomanil··on Back on Linux (after one year of Apple and OS X)
I can relate to the OP: I like OSX for general work, but prefer Linux for programming workflow and tooling (mainly because of the debian package system). My solution from now on is to do my dev work inside a Linux VM (through Virtualbox). Seems to work well. Would love to see others experiences with similar setups, anyone else going a similar route?
thomanil··on Das Keyboard now pre-ordering Mac version of their mechanical keyboard
I use the "ultimate" model (blank keys) just fine with my Mac Mini and MacBook Air, no issues.
thomanil··on The Kinesis Advantage, Unicomp Space Saver, and Das Keyboard, two years later
I'm using the Das Keyboard Ultimate at home. Have played a few pc games (both FPS and RTS games) without any issues.
thomanil··on Ask HN: Hosts you use for your projects?
http://railsplayground.com specializes in RoR hosting - they offer both shared hosting, vps and dedicated servers. Extremely rapid and competent service.

I've used them for both my startup and some smaller personal projects over the last 10 months, very satisfied so far.

thomanil··on Ask HN: What is something impressive you have built or achieved?
Found my Better Half. Fathered my daughter. Built v.1 of http://thoughtmuse.com singlehandedly on nights and weekends, in under five months (as estimated).
thomanil··on Ask HN: How do you record your thoughts?
I record quick thoughts with pen and paper on a small pad I carry with me everywhere.

For more intensive work I use mindmapping. Either on whiteboard, or using http://thoughtmuse.com (disclaimer: I'm the founder of ThoughtMuse)

thomanil··on Ask HN: Had an original idea for a start-up...but
Javascript: Start with Douglas Crockfords "Javascript: The Good Parts". Excellent, terse primer on safe Javascript development.

Startups: Read content by people like Peter Graham, Joel Spolsky, Rob Walling, Guy Kawasaki, Bob Walsh, Andy Brice - just to mention a few of my personal faves. Skim around, there's lots of great free content out there on software startups!

thomanil··on Ask HN: Please critique my product, ThoughtMuse - an online mindmap tool
Good point, will definately look at adding some more hints/teasers of other stuff that can be done.

I'm also planning on producing some good content (articles and screencasts) on what you can do with mindmapping both in general, and with ThoughtMuse specifically.

thomanil··on Ask HN: Is success impossible for a part-time startup?
Cheer up - Paul Grahams worldview isn't the only one out there.

Do some reading on 'mISV' companies. Google Bob Walsh, Erik Sink, Rob Walling, Andy Brice and Patrick McKenzie - all of whom have written excellent material about building viable, bootstrapped, part-time software businesses.

Also, see this excellent talk by DHH on alternatives to the classical 'balls out, big risk/reward' startup scenario:

http://www.omnisio.com/startupschool08/david-heinemeier-hans...

Good luck!

(I'm in the same boat; currently only a few weeks from launching my first product.)

thomanil··on Enterprise Java is not Object-Oriented
I concur. I also use Spring at my dayjob, without the problems the OP describes.

Spring is really useful for setting up the underlying infrastructure/plumbing/cross cutting concerns of a system - however, you don't have to use it for all your domain logic too. Don't drink the dependency injection cool-aid. :)

thomanil··on Ask HN: What do you use to organize your thoughts for a new website or project?
I like to use mindmaps for planning and concept work like this.

Freemind is a good open source mindmap editor for the desktop.

Or you could try my online, browser-based mindmap app. http://thoughtmuse.com ;)

thomanil··on Clojure - Functional Programming for the JVM
Maybe this has been asked before, but what the hey:

Is anyone here on HN using Clojure for commercial production code - websites or otherwise?

thomanil··on Cost Effective Web Development Techniques
Good list.

Not sure about the comprehensive spec at page 9 though: BDUF - Big Design Up Front is often a naive approach. Requirements and constraints tend to change as you go along. Too much up front specification can be a waste if 30 percent of those features never see any use. I'm all for thinking each specific task, function and web page properly right through before coding it, though. :)

I also have trouble with "design for reusability" at page 39. Building one-off components is a waste IF you are going to build similar stuff in the future. However designing things for reuse also incurs overhead in itself that first time around. The specific project context should determine if building for reuse is cost-effective. Also, designing for reuse can be taken too far. We sometimes burn ourselves by thinking too generally - see some of the more complex J2EE frameworks out there...

thomanil··on Ask HN: Your Hacker Workspace
Physical whiteboard in the same room.

Big screen.

A command line (Terminal on mac, cmd.exe on windows).

A launcher app (Quicksilver on mac, Colibri on windows)

An editor (TextMate in mac os, NetBeans in windows).

A mindmap editor for planning, design and notes. (Freemind, cross platform)

(I purposefully stay cross-browser, cross-OS, going back and forth between my MacBook and my Wintel desktop pc. This forces me to keep using and testing both my product and dev environment in several different OS'es and browsers - plus it provides redundancy; if one env blows up in some way, I can just fall back on the other.)

thomanil··on This is why we are entrepreneurs. An awesome video.
Sappy but uplifting video. I'm going to bookmark it and replay it when motivation for my mISV starts flagging. :)
thomanil··on Ask HN: Programming language power and 10 years to mastery
Oh and if you plan on doing anything web-related, learn Javascript (properly!) - this will also expose you to functional programming technique.

http://javascript.crockford.com/little.html

thomanil··on Ask HN: Programming language power and 10 years to mastery
Check out the book 'The Little Schemer'. Good way to ease your mind into functional programming.

Also consider learning a dynamic 'scripting' language like Ruby or Python. They have some functional aspects, and will teach you programming style and idioms that you probably haven't picked up from Java and C.

thomanil··on Ask HN: I want to build/sell a product. Steps?
You forgot to mention one early step:

Research market/niche viability. Are there enough likely customers out there for what you want to build and sell?

It's a good idea to do this up-front before sinking hundreds of hours into a project, only to find that A: Few want it or (more infuriatingly) B: Many want it, but in a different form.

thomanil··on Ask HN: How do you do time estimates?
What he said, apart from a few differences that I've found works for me (YMMV):

1. Do ENOUGH design and requirement gathering up front. Talk to stakeholders and users. Play around with any unfamiliar technology that you're required to use. In short, get your bearings before you start estimating.

2. Extract tasks that must be done. Each task should take less than a day or two to complete - larger tasks than this are often "lumps" of work which are harder to estimate accurately. Divide as needed. Don't forget testing, bugfixing, "polish" and all that jazz!

3. Estimate each task in IDEAL hours. Ie. "how many hours would this take if I could focus 100%, no interruptions, closed office?" Another approach is to estimate entirely using relative units - go google the "Poker Planning Game".

4. Add up total ideal hours. Then multiply by a risk factor. (My absolute minimum is 20% - that's if I have a complete lock on both the technology, the requirements and ALL other significant project factors.)

5. Figure out how many IDEAL hours you actually get done each week. How much effective time do you have left when you subtract meetings, interruptions, lunch, motivation lapses, etc etc? Divide the hour number from step 4 by these actual hours accomplished each week.

6. Now you know roughly how many weeks the project will take. Then take into consideration miscelleaneous external constraints. Will Joe Developer be there week one or is he tied up? Will Sue Tester go for a three week holiday to Hawaii at some point? Tweak the schedule further based on such known specific "X factors".

7. By this point you have a rough idea of when you will be done... in an ideal world. :)

Note: This is what I do for small projects or single iterations/increments in larger projects, ie 1-3 months for a few developers. Larger processes / project scopes = different techniques. Go google Agile/Scrum/other modern development methodologies. :)

thomanil··on Ask YC: Favorite blogs?
I have these guys's blogs posted under "Software Development A-list" in my RSS reader:

Steve Yegge, Joel Spolsky,Jeff Atwood (Coding Horror), Martin Fowler, Ted Neward, Andy Hunt, Steve McConnell (10x Software Development), Michael Feathers,Paul Graham