Hacker News new | past | comments | ask | show | jobs | submit login

Fogleman here. Funny to see an old project in the #1 spot (again?).

I hesitate to comment about this being productive while having kids thing, but some people seem to be implying that I must never spend time with my kids. It's far from the truth. A week ago my son (age 5) and I went camping in the backyard. Coincidentally, he and I have just recently started playing the real Minecraft together on our own private server - every evening lately. (I had never actually really gotten into the real Minecraft before, believe it or not.) We've been playing lots of Thinkfun games like Rush Hour and Shape by Shape. I actually still lay with my son while he falls asleep every night. My daughter (age 7) and I walked to the playground and played for a while there yesterday. We go out and check my vegetable garden daily, and my daughter likes to play "baseball" (plastic bat and ball) in the backyard with me. I work from home currently which is nice because there's no commute and I can see my kids a lot. We have "dance parties" in my home office where there's lots of open floor space. I could go on of course.

I fully understand the sentiment that time is short when it comes to spending time with your kids before they are grown.

There are plenty of folks without kids who aren't super productive too - so the whole thing seems a false dichotomy to me.

Frankly I don't even feel like I work that hard. Maybe "hard" is the wrong word. A lot of people are constantly busy and have no free time. Yet they don't seem so productive? I'm the opposite of that, somehow.

I know I'm under no obligation to defend myself - but there you go.




My personal guess is that most people need "warm up" time to make progress on their projects, the time needed to build up the mental model of the whole domain. This can go from hours to days to weeks depending on the person and the type of mental model. But some people have certain domains where they can just instantly build up that model in their head and immediately begin making serious progress. You sound like you're one of the rare ones that can do this for a large number of domains (3d algorithms, project architecture, database structure, feature interaction). I'm only like that with a few very specific domains and I suspect most other devs are like me in that sense, so we stand in awe when someone has that natural in-built capability. (I think this not only goes for making progress but also learning new concepts, as I have seen other graduate students who can blaze through certain things like Haskell where I struggle as through molasses.) If this theory is true, then you probably aren't spending more than 3-5 hours on projects like this per week, but you're making the same progress most of us would need 2-5 weeks for. Btw I'm the guy who posted your project and emailed you, thanks for coming here to answer our questions and thanks for making such a cool project and making it freely available for all of us to learn from!


I think that's a good guess.

I'd add to that, sometimes people could get going faster if they really tried, but they're just a bit lazy or burnt out and need a rest. So they say OK, I've finally got an hour of free time, but I'll just check Hacker News first, check my email, read this article... and now they only have 20 minutes of work time left.

Whereas a few people either don't need so much time to recharge, or they just push themselves into getting started anyway, and usually once you actually start working it's not so hard to continue.

Getting enough sleep helps a lot with motivation to work. Although then you have less time! So I'll just stay up late this one time and get this thing done...


Yeah I can relate to all this.. I need warm up time, and that includes updating social media and HN (like now), which I regret later. I'm one of those that have a daughter and feel they aren't productive at all and lack of free time to do cool, deep projects.

It also depends on what standards of productivity you aim for, and who you compare with. Many people say I do lots of stuff when comparing to themselves, and I feel unproductive 'cause I'm comparing to myself 5 years ago, working 14 hours/day.

I should try to get into The Flow faster (maybe leaving notes of what to do next when finishing a task? --and removing twitter and similar..)

Anyway, finding a good balance between family and work time is extremely difficult for me, one of my biggest endeavors, even after 3 years of parenthood.


When I first read this, I read it as a compliment to your productivity, but I totally see how you could read that as someone taking a shot at you. I applaud you for this, I read your gist, ran the commands and went from learning about it to using it in less than 5 minutes. Well done. My son loves minecraft, I hope to use this as a spring board to learning how games like this are made. He's 10 and has the aptitude to write code. I see projects like this and Im reminded I need to keep learning and that writing the same C# enterprise app code over and over again is the reason Im not "inspired" to have side projects anymore...


Totally meant it as a compliment and an honest question. I am in awe.


you may want to check out glowstone as well, it is written in Java and is being actively worked on

https://github.com/GlowstoneMC/Glowstone


+1 for Glowstone, highly recommended to anyone interested in running a server, one of my favorite projects of all time. A while back it was forked to add improved Spigot plugin support (in addition to Bukkit), later re-merged into mainline Glowstone, extensively under new development so it is worth checking out again for those who have tried it out years ago. Glowstone has a long history!

It even works well as the server backend for my NetCraft client, which is based on fogleman's Craft. The support plugin WebSandboxMC provides a WebSocket client for the web client to connect to, and it runs well on the Glowstone server, compatibility with Glowstone being a top goal.

So with these projects you can have both an open source client and server talking to each other, the full stack open source. The downside, of course, is neither are complete, but it is a start. Open source can only get better (contributions certainly welcomed).

Another project I'd recommend for those in the market for an open source server is Cuberite. It is written in C++ and supports plugins written in Lua. Also has a very active developer community, maybe slightly bigger than Glowstone. Last year I added Forge handshake support, so modded clients with Forge can connect send their mod list, while server plugins can register certain mods as required. Not full Forge mod support, but a necessary prerequisite. The downside of Cuberite is, without Java support, it doesn't have compatibility with Bukkit or Spigot plugins, so there is a vastly smaller ecosystem of plugins available, unlike Glowstone which can use many of them no problem.

Either way, both Glowstone and Cuberite servers, and Craft-based clients (shameless plug for NetCraft/WebSandboxMC), are very exciting and promising projects in my opinion. Personally I have not contributed to either recently, seeing this post I'm tempted to pick them up again, yet for better or worse I've moved onto other things. I'm certainly rooting for them to keep up their open source momentum, could turn into something very cool!


Thanks so much for creating these side projects, I've always admired the effective simplicity yet functionality of your code, especially Craft. Glad to hear you are as efficient with time management/life as your code :).

For anyone interested, last year I've taken fogleman's Craft and ported it to run in the browser using WebAssembly and emscripten: https://satoshinm.github.io/NetCraft/. It can be used with a Bukkit plugin to provide an interactive web-based interface to (a small section of) the world in Minecraft server. Have not worked on it recently, but could be a fun project to develop further, for all the open source contributors out there. I tried to merge most of the open pull requests and other forks of Craft, but life has gotten in the way...


I just assume that the 1-3 hours a night I find to watch Netflix and scroll Reddit is the difference between me and those who hit front-page of HN. If I consistently used even half that time to hack around and learn new things it would really add up.


So, what type of tinkering would provide equivalent reward to what you specifically seek from Netfix and Reddit?

Find that, and you already have the itch+curiosity+motivation+rationale+justification (mostly the itch) to just jump in somewhere.

[NB. Mis-typed Netflix, then left it in.]


But from a time management perspective... just how? I have one child (4) and work a day job. It's all I can do to find time to exercise and have an hour or two for myself at night. Do you exclusively program in your free time?


My theory is that when you have children the sum of time spent at work, commute, chores, exercise, child minding, sleeping is very close to 24 hours per day. So any decrease in the time requirement for any of those means a big difference in discretionary time. So no commute vs commute could triple your discretionary time. Then, amazingly, you can be three times as "productive" despite being in a very similar situation.


I can find the time but I don't have the mental energy. I've tried slotting in extra hours but it just doesn't flow.


That is absolutely true. I just went from remote back to office and have been trimming here and there to fit my workouts in.


Similar situation here, and I've done this oscillation from remote to in-office 4-5 times now. It's always a shock to realize how much time is consumed on the processes of being physically present in the office. After a little while, like everything else, you tend to forget. It's good to get scared straight periodically.


> I work from home currently which is nice because there's no commute and I can see my kids a lot

I'm guessing this is the fundamental difference.


If I were being pithy, I find that when you're doing this type of thing it's more a feeling of "working fun" rather than "working hard".

(Of course this means that one is probably not always going to do "production ready" things, but it's for fun, so it doesn't really matter. Sometimes it's fun to just go nuts and sprinkle "undefined"[1] all over the code base and just go from types to implementation as fast as humanly possible.)

[1] This is a Haskellism, but basically means any of:

    assert(false)
    throw new NotImplementedException(...)
    ???
    etc.


Most people waste hours and hours every single day on all types of mindless activities and wonder why they can't get anything done.


Just want to say: "Fogleman, you are my Hero :-)". In my last interview, when asked who are the engineers that have inspired you, I mentioned your name!

Thanks for all the inspiration, keep it up.

Aside, yes there are a lot of false notions going around and good to have engineers like you to prove otherwise!


Frankly I don't even feel like I work that hard. Maybe "hard" is the wrong word. A lot of people are constantly busy and have no free time. Yet they don't seem so productive? I'm the opposite of that, somehow.

You're literally an example of a "10x". I have a similar experience --- it doesn't feel like you're doing a lot, but the vast difference becomes noticeable if you compare. You can get more things done in a day than others can in a week. That's just your natural ability. Enjoy it.


Hey, thanks for sharing your perspective. Father of a daughter here (1y) and expecting one more in a few months. I was always wondering how I could keep doing my Arduino and Raspberry Pi hobby projects while growing up a child but somehow it works, even at a slower pace. Sure I don't have as free time as I had, but I find these rare moments in a week and I take advantage of them. Having a great, even full time, job also helps as I changed my last very stressful one that hogged my time.


So how do you pull this off? How much time do you spend in coding side projects? What do you do when your kids try to grab your attention during that time?


Still impressive.

Looks like you can focus well and have stamina.

How do you keep motivated doing such a project for fun in your spare time?

Do you work 40h/week?


Hi, I just looked over your github repos, the number of "high quality" projects is impressive. Great job!


I'm more interested in how you manage to be this productive. Any tips on managing time and projects?


Dude, that just means you have a really good thing going.


This is completely unrelated and orthogonal, but...

So far I have 18 b8 c4 23 86 1b 9c 60 f6 ec b0 (...11 octets...?), and I'm not sure what to do with them.


[flagged]


What is the purpose of your comment? No one needs this. It must be to make you feel better? Don't make comments where the only point is to make yourself feel better. It adds no value.


You could say that about anything.

You could spend an hour skimming stones on a lake with a kid and never talk to them and you wouldn't be 'spending time with them' in that sense.

Or you could spend an hour teaching them how to skim a stone, or the science behind why stones skim, or make up a skimming competition, etc.

The point being you can make anything you do into a bonding/learning experience if you try.


Minecraft is a wildly collaborative game. You are constantly talking, sharing and problem solving together. They could even be in the same room. I find it very hard to imagine that's not bonding just because it's on a screen.


Life is way more complex than an isolated study might lead you to believe. Read research, but be aware of its limitations.


Do these apply to all computer games? I can imagine this being true for, say, FPSes or puzzle games, but collaboratively building with Minecraft seems like a different sort of thing.

Are there similar studies about whether playing Legos with your child creates a bond? What about baseball?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: