Hacker News new | past | comments | ask | show | jobs | submit login
It wasn't for nothing (gexp.no)
644 points by mbakke on Aug 18, 2022 | hide | past | favorite | 157 comments



I really appreciate this post and how it highlights the power of becoming involved in occupation. I use that term in the context of the fact that my spouse is an Occupational Therapist by trade. In that field, the term occupation refers to a collection of activities of daily living, not a "job" per se. Rather than seeing patients through a framework of diagnosis or disability, they look at activities and people's ability to perform them, and intervene where there is lack. In practice that may involve helping an amputee learn how to put on socks, or helping an autistic child participate in education. More broadly, a central philosophy of their field is that meaningful occupation is a powerful motivator that has cascading effects across the many component activities in somebody's daily life. OP's post described how becoming involved as a Guix contributor effectively organized and motivated other areas of their life as well. The fact that we all are here hanging out on a VC's forum tends to color our idea of what value means. I think this post inspires that there is value to not only the community but also the individual as well in just "doing cool stuff".


This reminds me of something someone told me about hobbies, and becoming good at something: If you want to become really good at something, find simple enjoyment in doing the thing, and not in other people or the results.

Like, don't become a metal bass player because you want to play in a band to perform at Wacken. That will fail and disappoint. Instead, find enjoyment in rhythm kicking people like a damn horse, or find enjoyment in how different rhythm structures can be, and sounds an instrument can make. For me, it's becoming really interesting to understand how different fundamental rhythms of different genres are.


Yes! See also the Japanese concept of "ikigai", which helps explain why many people's ideas equating traditional retirement with happiness are so misguided.


I'm at a point in my (young adult) life where I'm starting to think really seriously about planning for retirement, and I'm finding that the idea of just "putting my feet up" at a certain age actually disgusts me. I work with a lot of retired people and while I don't want to stay in this particular job/company/field until I die, I do hope to keep doing meaningful work in some capacity into my twilight years.


I'm not a developer but I totally relate to this. Most of my creative pursuits are weird, niche, sometimes avant-garde. If I didn't make my artifacts, nobody else would, and it is so intrinsically rewarding to see my visions instantiated, even if they pale in comparison to my first imagining of what they might be. Because I have fringe-y interests, most people don't necessarily "get" it. (Probably true of everyone else on HN as well.) But the people who do get it, I found them on the internet, and I thank God for that.


Does it bother you if people don't discover your work and don't use it? I've always wanted to do something of value that lasts, and many times I was discouraged by lack of interest from other people.


Not op - answering personally.

The moment you have an audience for something it significantly changes the experience. Doesn't matter if it's music, development, cooking... if other humans are involved on the receiving end it makes it different.

For a lot of us, we're very protective of our creative endeavors. And, lots of the time the journey we're taking is one of vulnerability (learning, creatively extending ourselves, taking risks).

Then there's the criticism and critique. People can objectively be pretty awful. It doesn't matter if it's making my own software tooling, or a song, or fleshing out a new idea... I just don't want to hear anyone's opinion - I want to focus on being productive in what I'm doing. I've often found that isolating is way more productive than trying to ship to an audience. If I need other people I don't pull them in as an audience, I pull them in as an advisor and/or teacher: contracting out a code review, or going to guitar lessons.

If/when this stuff I created dies with me that's OK. I'm a fart in the wind anyway, and I don't care about silly things like "legacy" - I just need to create stuff to optimize and improve the world around me. And, sometimes I create stuff just because it feels good. It's a selfish endeavor sure, but I'd have it no other way.


> If/when this stuff I created dies with me that's OK. I'm a fart in the wind anyway, and I don't care about silly things like "legacy" - I just need to create stuff to optimize and improve the world around me. And, sometimes I create stuff just because it feels good. It's a selfish endeavor sure, but I'd have it no other way.

I was going to reply but you summed it up nicely. I have been polishing away on a dozen or so personal software projects, but I never release them publicly, don't use GitHub, don't even blog about them. I'm at a point in my life where I don't need/crave feedback or validation or attention or whatever drives people to constantly need moar audience for their blog and moar downloads for their software. I write software because I enjoy the act and it solves problems that I encounter.

Not releasing means I don't have pressure to keep them compiling with the latest SDK, I don't have pressure to port them to Windows, I don't have to respond to requests from users or other developers, and I can feel free to use the codebase(s) to learn and explore the boundaries of my knowledge and skills, without public scrutiny and bikeshedding.


Same from a photography perspective. I take pictures because I enjoy the craft and results, not because I need other people to like them. Back in the day I had half a million views on Flickr; now the next only people who see my shots are people who commission me to take them


Other people usually means averaging out your vision with theirs which can lead to compromises that in the end make it not worth it. I'd rather make something that I think is perfect that no one else uses than something that started out being super satisfying and cool but ended but being mediocre and useful. The latter is called work and my hobby is not to "work, but more". It is to have fun.


So like I am sad however you never know how far you are to something taking off so you have to persist odds are that people won't hear about that cool thing your building for a long time like multiple years. Before than it's really hard to gage how popular your tool or thing will be.

There is also something to getting you software to a level where you show it to others (the sooner the better). If you don't showcase your stuff odds are people won't find it.


I had this feeling for years touring as a musician in an (underrated, in my opinion) indie band. Ultimately I don't think it matters if you love the act of creation and value your own work. A sprinkle of public acclaim is plenty for most egos. It really doesn't need to be the reason you get up and do it.


Yes. And then I think that I need to take the project further, make it bigger and more attention -getting, and document it more, and push it in social media more.

But I'm not going to do that. So there is some associated pain. But it's diminishing with time.

And the attention my project got is definitely greater than zero. And the internet is forever. So there is a kind of peace.


social media is such a trap. It makes you feel like you're getting praise or criticism, but you're not getting either because it's just a way for your critics and followers to showcase their own egos. It eviscerates the actual work.


But we must talk about our projects. What's the best option?


If I'm not directly helping someone, stuff I do in my spare time I do primarily for my self. Not interested if anyone use it or not (same with music). If I want something that lasts I plant a tree.


They do discover it though! Just a relatively small number of people. That's okay with me.


I've made some game mods that have touched thousands of lives.

Way more than my OSS projects though haha

But it feels good in retrospect


Any mods you're willing to share here?


https://guix.gnu.org/en/about/

> Guix is an advanced distribution of the GNU operating system developed by the GNU Project—which respects the freedom of computer users.

For anyone looking for more context. I did not know anything about the what and why and who of this post.

Having read it, I like the author's point of view. Working on it is good for his well-being. That's more than enough reason to pursue it.


Sounds like a rad hobby, to be honest. Good for the author and thanks to you for framing it like this.


In fact, I’d say there can be no better reason.


Nice! Bravo for your contributions!

After using and contributing NixOS for 3 years, I appreciated that I understood far more how Guix worked after just one 1-2 weeks of using it.

Guix introduces abstractions, such as operating-system that has defined fields that make it clearer what structures are being built. NixOS, on the other hand, does not have such abstractions (or perhaps just not as well documented/discoverable).

Alas, I found Guix a bit slow and a bit difficult to contribute to (mailing list workflow, and fewer reviewers), and don't have the capacity to help improve that, and so I'm back to NixOS.

Guix is tackling multiple fronts: a blob-free kernel, a non systemd init, mailing list development, bootstrapability, no non-free software, high standards for commit messages.

If they reduced the number of fronts they were tackling, they might increase contributions, but the current contributors seem to value their existing fronts. That's fair.


> Guix introduces abstractions, such as operating-system that has defined fields that make it clearer what structures are being built. NixOS, on the other hand, does not have such abstractions (or perhaps just not as well documented/discoverable).

NixOS had plenty of abstractions, so I don't quite understand this. All of NixOS is a compilation of abstractions for building an operating system environment. Could you elaborate on what abstractions are not present?

> Guix is tackling multiple fronts: a blob-free kernel, a non systemd init, mailing list development, bootstrapability, no non-free software, high standards for commit messages.

Except for the last one, all of these are noble achievements perhaps within a subset of an ecosystem, like Nix or Guix, but the deliberate and unwavering stapling of these goals to the ecosystem makes Guix unpalatable.


AFAICT, NixOS has no equivalent to the type https://guix.gnu.org/manual/en/html_node/operating_002dsyste... , which makes it clear what an OS contains, and allows you to query the OS.

Instead, NixOS has many options, whose only structure is that they form a tree. When trying to understand a host, it's unclear how to begin to analyze this tree: no option is at a higher level of abstraction than any other, or if it is, it's difficult to infer that.

Arguably I could just look at my host's config, and that will tell me what this host does, but it doesn't. It actually describes my how machine differs from the default NixOS machine. (How do I learn what a default NixOS machine do? Query for all services "enabled" option is set to true?)

With Guix, I follow the code: how is this host's OS "services" field populated.


The type problem is starting to be solved by flakes; the equivalent to the type `operating-system` is the type `nixpkgs.lib.nixosSystem`.

To analyze a NixOS system configuration, I look for all modifications to the `services` attr (representing all the services of the system, e.g. `services.mpd.dir = "~/Music"`). If I want to know even more I can look for all the `.enable` keys to see if any hardware/program/etc options have been enabled, and the sources are easy to read so I can open the corresponding module file in Nixpkgs if I want to know what a particular option does. The default NixOS machine does literally nothing so I don't have to worry about that.

Guix does look really cool, and I would try it if it had more support for nonfree software (I depend on some nonfree software in my day-to-day.)


Nice. I've migrated to flakes and much prefer it.

Flakes provides abstractions at a per-repo level.

Guix offers abstractions all the way down: an OS contains a bootloader, which is also its own type.

> The default NixOS machine does literally nothing so I don't have to worry about that.

The default NixOS machine chooses a bootloader, enables nscd, has default users, enable DHCP, ...

... and those are just the parts I was able to guess at, and then confirm by checking whether their 'enable' option defaulted to true.

It's unclear how to determine (from the source code) what a default machine does in NixOS.

It was only when I tried Guix that I had the visibility into what my machine was actually composed of.


And let's all be honest here: There is nothing else to do in Norway unless you're a active sportsman during the 9 winter months.

There are few parades Few social gatherings Little social cohesion No reason to seek up a public place to randomly meet people, because people shun random social contact There is only binge drinking and a social walking alone in the cities

Same with Sweden and Finland.

As opposed to living in sunny country a south of the equator.

Living in Norway is a blessing and a curse.


I have yet to see the winter last 9 months. Typically starts in November and ends in March.

And nothing to do during the winter? Cozy up by the fireplace, pop a bottle of wine with a loved one. Read books. Make delicious food. Prepare for xmas, visit the various xmas markets, then there is new year which is a blast. And let's not forget the julebord-season during late November and first half of December!

January and February are dreary. I'll admit that.

Then there is winter vacation. You don't need to be a sportsman to enjoy pulling on a pair of cross county skis, head out with friends and family and create a nice campfire somewhere to grill hot dogs over. Don't forget the oranges and kvikklunch! Rent an airbnb somewhere with good access to either downhill slopes or cross-county trips. Spend the evening playing board games with friends, drinking and having it cozy by the fireplace again.

Late march / early April is springtime, and everyone is hungry for the sun. Easter arrives at some point. Again an excellent opportunity to go to some cottage and enjoy some time off.

But yeah, January and February are dreary.


> Cozy up by the fireplace, pop a bottle of wine with a loved one.

So your suggestion for his problem is... alcohol? :-)

> Prepare for xmas, visit the various xmas markets.

Where frequently the main activity is drinking mulled wine aka... alcohol? :-)

> Spend the evening playing board games with friends, drinking and having it cozy by the fireplace again.

More alcohol? :-)))


What I saw was the poster recommend things that can enjoyable during the winter. Alcohol can be enjoyable during the winter. What exactly is your issue?


"...But without Guix I would still be a confused alcoholic with daddy issues crashing on someones couch...."


The article specifically mentions getting away from alcoholism as one of the major benefits of the work on guix.


Okay I see now. It seemed to me (and honestly still seems now seems to me after re-reading the comments) that the comments I responded to were being said for Norway in general and to most Norwegians and not only in the context of the specific author of this blogpost. I take definite issue with some sort of judgement that enjoying alcohol is bad in general. But yes certainly for the original poster such recommendations aren't really appropriate.


>> Cozy up by the fireplace, pop a bottle of wine with a loved one.

> So your suggestion for his problem is... alcohol? :-)

To unixhero's problem? Cozying up with a loved one is a very nice way of spending parts of the winter. :-) Wine, fireplace, good tv show or good food. Mm.

>> Prepare for xmas, visit the various xmas markets.

> Where frequently the main activity is drinking mulled wine aka... alcohol? :-)

Well, that would require a license. There's usually a pub close by, but.. that sounds more like Germany to me. ;) Not sure I've seen mulled wine with alcohol at Norwegian xmas markets.

>> Spend the evening playing board games with friends, drinking and having it cozy by the fireplace again.

> More alcohol? :-)))

Yes. Absolutely.


> There is nothing else to do in Norway unless you're a active sportsman during the 9 winter months.

what? How about other hobbies than sport? Music, arts, language learning, crafts, cooking, photography, etc. All of these have active communities around them you can join and socialize in.


Meh, not my experience at all. I'm from Norway, and have lived in many other countries.

EDIT: Sure, the winter part is somewhat true, at least if you're living up north. First snowfall comes mid/late October, and last early in May. "Real" summer is at most from mid June to mid/late August, around two months.


Dunno, I think you need to get a few hobbies if that's what you feel. Even though I haven't worked since may, I feel the day doesn't have nearly enough hours for me to do all the things I wish I could, living in Sweden.

I own a small library of books I don't have time to read, I have several spoken languages I want to learn, I'd like to spend more time learning calligraphy, I'd love to learn to play music, I don't have enough time to go to the gym as much as I want, I could do with more time to spend programming as well.


Are you saying that as a nordic country resident or is that an external observation? If it's first hand experience, do you care to elaborate on the differences and why you think they exist?


I'm an Australian immigrant living in Norway for the last 12 years.

The post is partially true. The parts about social cohesion are the partially true bit.

Norwegians are not that great at meeting new people outside of their established groups.. that's it.

Everything else in the post is not true in the slightest.


> south of the equator.

Honestly, is the southern hemisphere objectively so much better than the northern hemisphere?


Not OP.

• 68% of the total landmass is in the northern hemisphere

• 87% of the total population is in the northern hemisphere

Not surprisingly, the really chaotic wars and such things seem to be happening in the north.

So objectively speaking the southern hemisphere might not be so bad :)

Of course, I have absolutely no doubt Norway and surrounding countries are all generally peaceful good developed places.


Guix has been the only distro I run on my PC and Laptop for some time now, and will be what I depoy on my home server when I eventually get it back up and running (really looking forward to learning services and containerization inside and out). The ease of access to the source tree, the freedom and hackability, all come together to enable my habit of getting in over my head. I've got some patches languishing that I've been meaning to come back to, and this post reassures and inspires me. Thanks for putting your thoughts out there.


Guix has been utterly transformative for my scientific work.

It lets me maintain a lab notebook (my shell history) with perfect description of what software versions commands I ran used.

I don't upstream much. It's just packages I maintain in my own channel that support this.

On a multi user HPC server environment, it's simply ideal. Every user can have their own system setup. Love it.


I've been using Guix on top of Ubuntu so that I can have the latest versions of some applications I care about, while keeping the core Ubuntu which works well with my hardare.

Similar to your comment the ability to see exactly what is installed, with repeatability is fantastic. For my personal use-case the ability to install an application in parallel to Ubuntu's is really useful.


Thank you to Marius Bakke for this post. I can relate, this is exactly why I've been doing my own project since 2016 even when not many know about it or use it or even supported it. I've learned so much from doing this project from scratch and made some very good friends since day one.

And @behnamoh "Does it bother you if people don't discover your work and don't use it?" If I may... I personally don't care if people use my project(s), as long as I do =) It's what makes you personally happy that matters ^_^ I'm actually working actively on v2.0 of the project without much support at all, just because I use it daily myself =)

Edit: I think that the best project(s) you can do in life is the ones you use yourself the most. When you are both creator and user of your project(s) you have unique perspective. Thanks to all for reading my comment.


I'd love to know how the authors financials work. It sounds like a dream to work on something just because it's fun and fulfilling. I have mouths to feed and that dominates much of my career choices. I'm in a small town in a small country so earning a FAANG salary is not an option. I can't save up and go work on a dream project.


If you don’t have mouths to feed then options are massive and life is cheap. For example remote work live in south america type of thing.


Is it really though? I imagine way more people would love to spend all their free time on their hobbies, and would sacrifice some of the luxuries of the modern world, but work crap jobs. And most of these people don't have kids.

See: the amount of miserable people on Reddit and elsewhere.


I don't think it is a money thing, but flexibility. Working 4 days for 80% pay is seen as a privilege. It shouldn't be. And the part time friendly jobs (supermarket checkout, Uber, etc.) don't pay well per hour. One workaround is to contract, 6 months contract then 6 months off.

If you want to work your entire life on your hobby without worrying about how to source money at all ... well that requires being born rich most likely.

I think for most people the blocker is themselves and societal expectations. "People will think you are a bum" is more of a blocker than "How much money left in account". Especially for people reading this comment.


If you have good relations with your parents, you can grind away in their basement. For obvious reasons, many people cannot or do not want to take that approach


Not all countries have a social stigma attached to living with parents and a degree of parental interference/influence in your adult life is accepted. Perhaps this is because of high interest rates - can't just get out of dodge and take a loan on a house.


life is cheap

Unless you want to retire in a western country, you still have to build up a decent pension. And to reduce costs later, it probably also a good idea to buy a house.


For the most part and in most countries, including wealthy ones, people born after 1980 don't really expect to have the luxury of being able to retire at all.


If you earn a reasonable amount in any country you can save for retirement. If you start young you can save way more than you need. It will mean buying a house that much cheaper than the best you can afford. You'll probably have to budget so you can keep track of your money.

If look at this study https://www.ramseysolutions.com/retirement/the-national-stud... most got wealthy by saving. These are not billionaires but they will have very comfortable retirements.


If you don't trust the pension system, you can invest your money differently. Buying and paying off a house before reaching retirement age already helps a lot, since it takes away a large future cost factor.


> I have mouths to feed and that dominates much of my career choices.

I hear you. I often dream of having a more fulfilling job, but every other job that I could do would earn a fraction of what I'm making now.

It's weird, because we were doing just fine when we had less diposable income. But it really feels like I can't go back now...


If you find a good niche, you can remote work 3 days a week on a developer salary and still make more than many professions would full time. It takes deliberate effort to setup but it's very achievable.

That leaves you with 4 days a week to work on your own projects.


Seems like he's a DevOps consultant. 30 seconds of googling will reveal that. And since the company he works/worked for is Norwegian, the company financials are also open.

In any case, close to no-one here in Norway earns a FAANG salary. At lest not as a salaried employee.


Opportunities, choices and consequences. You got the opportunity to meet a partner and chose to start a family. Not everyone gets that opportunity in life, so either be happy with your choices or make different ones. But every choice comes with consequences.


Oh yeah I'm happy with my bargain. I'm also curious to see if the author has found a way to make a living out of this. If for other reason that to live the dream vicariously.


My guess is that the author lives in a European country with a much better social safety net than a place like the US.


Not having money is a reward in and of itself. Choices are much simpler.


I liked the article, I wish there were more of these. I've always wondered "who" are the developers who contribute to the open-source projects that I use without much hassle? Why do they do it? How does their life look like? And most importantly, are they OK?


Let's go!

I'm currently living rent-free in an unoccupied student room in Edinburgh (it's out of term here, and I'm living with friends). I'm spending most of this month enjoying the Edinburgh Fringe Festival[0] (I saw 7 shows yesterday). The remainder of my time goes on Open Source/contracting work.

Due to the Fringe, this month is unusual and I'm not satisfied with my open source activity: it's mostly code reviews, force-multiplier work, mentoring and small changes, rather than larger architectural work or features.

Financially: In the UK, the minimum wage is £9.30/hour. This is around $20k/year. Open Source work nets me between $10 and $1.50/h via Open Collective (donation funded), plus <$100/m monthly from Patreon/GitHub Sponsors. I have a financial buffer from previous employment and my main aim is to avoid drawing into this buffer. I contract on a part-time basis, and this fills the income gap.

I've previously listed my hopes for the next month[1]. I want a multi-monitor setup for my next 2-week project, and that's not feasible to travel with.

Am I OK? I am for now. Although my lifestyle offers me a lot of flexibility, it isn't feasible to start a family or hit the traditional 'life goals' while living in this manner. It's a shame to have to fundraise for small personal projects (<$10k), rather than funding them yourself. I'm making financial sacrifices to be where I am and have an irrational worry about what the move back to traditional employment would look like in terms of salary, perceived experience, and coming to terms with the reduction of personal and creative freedom.

[0] https://en.wikipedia.org/wiki/Edinburgh_Festival_Fringe

[1] https://news.ycombinator.com/item?id=32312955


I was amazed that you were making $10/hr as an open source contributor, and I looked at your profile and found that you develop AnkiDroid. That's a wildly successful project, props


Do you have a link to your sponsorship/donation pages?



Good question. Maybe you should do an Ask HN for that? (Don't forget to check the search in case there already was one).


> And most importantly, are they OK?

i wanna know this too!


Author here, I appreciate the concern!

Actually this blog [post] came about by stopping up and looking at my core values. Earlier this year I decided to quit alcohol for good and suddenly found myself struggling both socially and professionally. Now I'm slowly regaining control of my life and felt inspired to solidify my gratitude to the Guix community which played no small role.

So yes, I'm OK and getting better every day, thanks :-)


Read together, some comments seem to reveal the poles of a moral landscape in the hacker community:

> Guix saved my life... finally feeling some stability in life; and a desire to explore other creative outlets such as blogging (hi!), cooking, growing sustainable foods; and healthy activities like climbing and skiing. None of this would be possible without Guix,

> If Guix ever becomes mainstream, it will be in spite of their efforts.

What's behind resentment of the sacrifices made by others on a journey to modest personal success and happiness? I think that many of us are deeply unhappy with our jobs. For moral reasons. The high salaries aren't enough. But there isn't the courage to take a plunge into something crazy, risky - the spiritual transformation so deeply craved for. If you have "mouths to feed", and think that is stopping you, try talking to your partner and dependents. You may be surprised that they love you, want you to be happy, and support your projects.


I do not at all resent the attitude. I resent that Guix is presented as a serious alternative to, say, Nix, within this community.

I will be the first person to appreciate the efforts of folks working on Open and Free Software, it's really noble. The world would be a better place if all our software was Free, but that's not the world we live in today.

I wish them all the luck and success in the world, but wanting adoption while also shunning (guilting?) your user base when confronted with practical feedback is not a healthy attitude.


re "guilting":

Even hard-core free software folks will not see the use of proprietary software as a moral failing, but rather as an injustice. Nobody should be shamed for using proprietary software. (I consider it morally wrong to write proprietary software, though.)

Even people like RMS have stated as much in the past. Ignore those who turn this free software stuff into some weird quest for moral purity. Nobody cares what software you use; they may pity you for being coerced into using proprietary software or they may judge you for writing proprietary software.

re serious alternative: Guix is a serious alternative to Nix. It is for me and the scientists I support, because when it comes to reproducible science there's arguably no better solution out there. With my sysadmin hat on: it's a serious alternative, because I'm using it on dozens of machines successfully. On machines that require non-free blobs it's also a valid choice because its design makes it trivial to install selected non-free software packages.


> Nobody should be shamed for using proprietary software. (I consider it morally wrong to write proprietary software, though.)

So you consider my day job morally wrong, but I shouldn't be shamed for that. Got it.

When I mentioned that I needed some proprietary bits to get my printer working, it was suggested I buy a different printer. Can you perhaps see how that could be interpreted to be shameful?

> On machines that require non-free blobs it's also a valid choice because its design makes it trivial to install selected non-free software packages.

Great! Could you please refer me to the relevant documentation?


> So you consider my day job morally wrong, but I shouldn't be shamed for that.

Yes, I do consider it morally wrong. So what? I'm aware that most humans are not free agents and are coerced into harmful or destructive behaviors because of economic pressures. We obviously don't agree on our premises. I don't think agreement is required, so what does it matter?

> relevant documentation

See the chapter on Channels in the Guix manual. It tells you how to enable third-party channels. Once that's done packages and services provided by those channels are indistinguishable from those provided with the official Guix channels, and you can use them wherever you would use packages and services provided by the Guix project.

If you want to replace packages used deep down in the package graph (e.g. glibc or something like that), see Package Transformations in the Guix manual. You can rewrite dependencies and drop in your own custom packages, no matter how deep into the guts of the graph you want to reach.


I picked out your comment and didn't mean that to reflect personally on you or assume your deeper intentions, sorry. Yours and few other comments seemed to really jar against what felt like a very sincere and open post by the OP. I'm sure you do appreciate the efforts while simply disagreeing with the ideology. Fair enough.


I appreciate the response, no hard feelings. Your take was fair. I definitely don't want to dog pile on what is otherwise a warm spirited submission, but something about Guix is grinding my gears! In hindsight, this submission is the wrong forum for such a rant.


Finding that "intrinsic motivation" to work on a hobby is something that really helps to keep you going. Often we're extrinsically motivated by others praise, social media likes ete. While praise is no bad thing, it doesn't always happen or you can be knocked off course by negative feedback.

I'm often amazed by the intrinsic motivation and long track records of people working on open source.


(Part of) my path out of depression was committing to something bigger than myself. Giving more than I received to a community. In the end, it not only helped me climb out of my black hole, it also rewarded me in ways I never expected.


Thank you for making Guix -- it's the only one os-as-code that I've tried and intend to use.

I don't think DSLs are the right answer (a la Nix) -- and the fact that Guix is written in an infinitely malleable fully featured programming language is awesome IMO.


Great post. It reminded me a bit of this one from the creator of SerenityOS: https://awesomekling.github.io/I-quit-my-job-to-focus-on-Ser...


Is there something about writing an OS that helps recovery from addiction? Or perhaps the causality is reversed.


So in a somewhat similar vein we have SerenityOS, GNU Guix and TempleOS (by the late Davis).

Might be room for some research in this area?


This makes it sound like I'm the founder or main developer of Guix which is not at all the case.

I certainly would have been worse off mentally without Guix as a creative or "OCD" outlet however.


Good on ya. I wish you luck.

Personally, I don't have a use for the OS, but that is no reflection on its quality or usefulness. I just play on a different jungle gym.

Writing an OS is not for the faint of heart. Lots of moving parts. I've done it (on a much, much smaller scale -embedded assembly). Great way to learn the ins and outs of pretty much any software pattern out there.

I see the usual smattering of "it's not a real software project because ... <insert metric here>," and understand where that comes from.

But I've been writing full production-Quality open-source "hobby" projects for over a decade. The polish, documentation, testing, and maintenance are part of the "fun" for me. I absolutely couldn't care any less, if no one uses my software; in fact, I prefer it that way, as I don't need to worry about moving anyone's cheese, if I decide to make changes. I use my software in my own work.


I can confirm, that some of the free software projects and mailing lists and IRC channels are really good learning environments. Since I have started being sometimes active on the Guile and a bit rarer the Guix mailing list, I have learned a ton of stuff. People are usually helpful and it helps discovering gaps in ones knowledge or things one got wrong. Also good for learning about many cool tools.


Wow. These reasons match exactly why I've built open source software in the past (now running on your iPhone).

Fun. Rewarding. Feels important. Pure.

Maybe didn't save my life, but given a different start, definitely plausible.


didnt know what you built, but certainly fullfilling for you, i guess.


Just reading "The Little Book Of Ikigai" - this post reads like a rewording of the most important aspects of Ikigai :) Sounds all quite familiar to me..


Feels good seeing so many people feel the same way. I've been working on an algorithmic trading project for a few years now and at times there have been speedbumps where I ask myself what I'm doing when I could be getting a lot more sleep or doing other hobbies like fishing, golfing, riding MTB, etc...

I would add that little wins here and there are extremely motivating to keep pushing. For example, I recently started digging back into trigonometry after many years of being away. It's been extremely satisfying re-learning basic trig functions for an actual purpose, rather than simply solving a math problem.


Once you find the things that anchor you physically, it makes it much easier to sail where you want to sail and stay when you want to stay. No matter what passes around me or what happens in life, having these anchors about myself lifts the good times to be more enjoyable and the bad that much more surmountable.

I'm happy for you.


Good for the author!

Find a thing that works for you, make it work for you and the people around you, win!


> With Guix I finally felt home

The core reason why I develop my own solutions to certain problems.


There's a point, or should be one, where you realize your hobby is actually your vocation - because you love being excellent at your craft. Loving what you're building is worth more than all the money in the world.


Great article, Marius! I can absolutely relate to this.


@dang Am I banned from replies? Why? Because I comment through Tor? Is there a better way to ask this without polluting a comment section?


Have a look in the FAQ there is a comment about banned IP addresses. I think Tor might be giving you an IP that has been abusive in the past.

https://news.ycombinator.com/item?id=4761102

To contact Dang the best option, I suspect, is to email hn@ycombinator.com


There's also a limit on how quickly you can reply to a new comment. The reply link is missing at first, but you can get it on the comment's page by clicking the timestamp.


Thank you.


You could email hn@ycombinator.com


I hope I find a home like that for myself one day.


I want to find this peace, too.


this is actually awesome


Yes, a wonderful, inspiring personal story the author has generously shared with us. Cheers to you mbakke, keep on truckin'!


Very off topic but I am curious about Guix:

> It's reassuring to know that all packages are bootstrapped and not just some random binary blobs.

Surely there must be some binary blobs, no?


There are some binary blobs, yes. Some stem from the early days.

Before Mes and the reduced binary seed (see the Guix manual for details) we used to have a selected set of bootstrap binaries (e.g. statically linked bash, tar, gzip, a big fat gcc, etc). With Mes the bootstrap seed is merely a couple of bytes that can feasibly be audited. Reproducible builds make it possible to audit the results of this early bootstrap.

Some binary blobs remain: for example, there's a blob for an arbitrary version of the Glasgow Haskell Compiler, because our collective attempts to bootstrap it from source have failed. (I have previously published some of my experiences in attempting to find a bootstrap path.)

Another blob is a bootstrap binary for the Pascal compiler; there's another one for one of the Scheme implementations, I think.

But for new packages we generally won't accept pre-built binaries. Our Java packages, for example, are completely built from source. Back then I worked on the Java bootstrap from source; we're building the first Java compiler and the first Java libraries from C (jikes + GNU classpath) and work our way up to the latest OpenJDK. Java libraries are also built completely from source --- we won't accept pre-built Jars (unlike Nix). This is probably the primary reason why Guix has fewer Java packages than Nix.

The Rust bootstrap (on x86_64) is also done from C.


This is a beautiful post of self-actualization. So wholesome that one major thing in their life can change their perspective over six years.


very wholesome post


prueba2


prueba


I like the blog post and I'm happy for the author, truly. But Guix doesn't sit well with me, and I rarely see this discussed:

The Guix zealotry will be their undoing, and frankly this is where Nix shines. I can use Nix at work, at home, with family, with vendors, with binary blobs, on macOS. The community tries very hard to help.

With Guix, sure, there's stuff like nonguix, but take a gander at this from the nonguix readme:

> Please do NOT promote this repository on any official Guix communication channels, such as their mailing lists or IRC channel, even in response to support requests! This is to show respect for the Guix project’s strict policy against recommending nonfree software, and to avoid any unnecessary hostility.

Guix has truly noble goals (in classic GNU fashion) but they're ultimately misguided. Yes sure it's great that it's pure and reproducible and whatever else but if I can't get stuff done with it it's useless. Actually useless.

The standard encouraged response to "Hi I'm a new Guix user and I was wondering how I can run steam?" is roughly equivalent to "Go fuck yourself" and I'm just amazed by that.

If Guix ever becomes mainstream, it will be in spite of their efforts.

In the meantime, I'm betting on Nix.


Back when the idea of “open source” came around, I thought the same. That the ideals of Free Software were too idealistic, and open source is pragmatic and commercially friendly.

Fast forward fifteen years and I am finding that Richard Stallman was right. Despite the commercial success of open source, I have found that usefulness does not always lead to a healthy society. (And I am aware that, zealotry and fanaticism have their own issues).

It’s not that I am a purist. Nix is still more practical. I have also heard that Nix and Guix can run on the same machine. However, I think Guix and Free Software conserve principles that I think are important for our society and civilization.


I think both of you are wrong. There is room for both idealism and pragmatism in this world. We don't have to choose a single path. In fact the tension between the two paths helps keep both of them dynamic and alive.


I think your comment should be more strict: There isn't just room for both, it is a given that both ideals and pragmatism must exist and go hand in hand.

Ideals are the compass, shows you the final destination, where you are going.

Pragmatism is the next step towards ideals. It prevents you from being paralized when the ideals are very far away.

Without ideals it would be as if you don't have a GPS on your car and roam around randomly. Without pragmatism it would be as if your car didn't have an engine.

Yes, RMS is living a completely impractical and undoable life for the rest of the people, no matter what he says.

Yes, RMS is right and he must exist to show us in which way we should work towards


This is a great comment, and (politics warning) also feels very similar to my opinion on the current leftist/liberal infighting in the Democratic Party.

I think in almost all cases the leftists are right, but too often they have have no way to realise their ideals.

The liberal platform is the only left-wing platform that can currently feasibly win an election in America. Maybe that will one day change, but I’ve seen too many on the left throw the baby out with the bathwater because they want their ideal society right now, and nothing else will suffice.

At the same time, I’m grateful they continue to show us which way we should work towards.


I personally didn't use Guix or interacted with its community in any way.

But if GP is right about their attitude, it saddens me.

Can't there be a middle ground? Like, promoting free software and still helping people getting things done in the world we live right now?


I am in the Guix channels, and they have fairly good discipline for not being rude or dismissive. It's not perfect, but the project's core contributors are sincere about setting a good example, and trying to make the culture welcoming.

Rules about gently directing folks to nonguix ( https://www.google.com/search?q=nonguix ) resources are there, and people do try to be non-confrontational about it. It's a pretty businesslike vibe though.

i think ideally user groups like System Crafters might be a better introduction for those not steeped in GNU culture: https://systemcrafters.cc/


No, they are not right about the attitude. We just don't do proprietary software and so discussing it on our channels is off topic and distracting. "Go fuck yourself" is much stronger, much ruder attitude.

On the #guix IRC channel you'll often get a private message to direct you to other channels where it's fine to discuss proprietary software and how to make it work on Guix.


I'm not attempting to construe that the attitude is GFY. From the perspective of someone who is enjoying this tool and ecosystem and wants to do something, but the community is trying very hard to enforce beliefs that are incompatible, it sure tastes like I'm being told to go fuck myself.

Does it feel good to you when you ask a question and the reply you get is "this isn't for you"?

Requiring a private reply on an IRC server to unblock a comically common use case is exactly the problem I am trying to highlight.


"enforce beliefs"? No. Proprietary software simply isn't part of the project and discussing stuff that are besides the project goals on project channels is not welcome.

You don't have to belief anything to use Guix or participate in the community. It's an odd sense of entitlement to demand that others accept, accommodate, and welcome your ideology in dealings with you.

I also find it strange that you ascribe "this isn't for you" (a comment made here by strangers) to the project. No wonder then that you interpret entirely harmless community guidelines as if someone told you "to go fuck [your]self".


> Proprietary software simply isn't part of the project and discussing stuff that are besides the project goals on project channels is not welcome.

Yes, and I believe that this attitude harms community building, education and adoption efforts. You specifically use the words "not welcome". Other, more welcoming projects typically don't use such language outside of a Code of Conduct policy document. I'm pointing out that I've been made to feel unwelcome and you're saying that is entirely harmless.

Do you see the problem?


I don't think we're coming to an understanding.

You're (inadvertently?) twisting the phrase "not welcome", which I apply to behavior, to make it apply to people. If we can't agree on how to apply words we cannot use them to approach understanding.


Richard Stallman was right in the same sense Karl Marx was right. The people would, in fact, be better off if each have according to his abilities, and received according to his needs.

The problem here is the problem of incentives: you can state your desired end goal (prosperous communism, or free software utopia), but there is no mechanism to get there from here, and even if you somehow do get there, no mechanism to preserve that state without all encompassing coercion.

Moreover, the lack of incentives results in lack of prosperity: if there is little incentive to produce a lot (like in capitalism, where your profit grows with volume), people produce just enough to get by, plus some for individual entertainment. I’m sure Guix is good enough for the author’s needs! The problem is to get people to do things that nobody really wants to do. Who will build free software Salesforce? In capitalism, we do that by paying people money to do things they wouldn’t want to do for free. In fact, same is true in free and open source software: I can really only name a handful of projects that are widely used and of high quality that have not been largely funded by commercial world: OpenSSH, some other BSD stuff, what else?

Since commercial businesses want to use these things alongside their proprietary stuff, they necessarily cannot constitute part of pure (in free software sense) distributions. Thus, if you aim for purity, you either end up with shoddy quality, or depend on the largesse of the non-pure activities. This is analogous to modern welfare state, which can only function by skimming the value created by advanced commercial economies, and only to an extent that doesn’t actually choke them altogether.

In short, incentives matter.


> I can really only name a handful of projects that are widely used and of high quality that have not been largely funded by commercial world: OpenSSH, some other BSD stuff, what else?

Is this perhaps though a result of most projects allowing donations, and some companies (e.g. Google) having a lot of capital to throw around and funding them more-or-less just because? Would Linux not still exist in a similar form to today?

Also, I would add things like the GNU project, and notably VLC media player, alongside OpenSSH and the BSD stuff.

I agree with your final point, though. I can't actually think of a company whose product only in-house FOSS software. Red Hat, Suse, Purism, etc are building off community code, not something primarily developed internally. And companies like MongoDB make all of their money off of non-free cloud products.

One that I can think of that was once like this, the Subsonic media player, actually went closed source due to too many people re-hosting the code and not paying the maintainer.


> Would Linux not still exist in a similar form to today?

Majority of work on Linux is done by people who are paid by their employers to do exactly that. Just look at this:

https://www.google.com/amp/s/news.itsfoss.com/huawei-kernel-...

Google involved in Linux is mainly not through their donations to Linux Foundation, but through code written by Google employees on the clock.


I know it's a silly thing to point out, but I really enjoyed your typo in the second line in the context of that world view being incongruent with reality. We can't even type it as a society.


Put another way:

There is idealism guided by reality. This is the basis of Naturalism generally.

And there is idealism centered on what people can created that reality as less important then the social implications of that idealism. This is the basis of the Dialectics including Marxism.

I like FreeBSD and the general pragmatic Linux generally for the idealism founded on reality.

I dislike GNU often for the idealism void of thinking about reality.


> I can use Nix at work, at home, with family, with vendors, with binary blobs, on macOS.

I'm using Guix for work, at home, my wife has Guix on her gaming laptop with nvidia card, playing games on steam. Nobody has any problems with enabling rpmfusion repo on Fedora, using aur on Arch, adding backports repo for kde or whatever on ubuntu. But as soon as it's nonguix channel it's suddenly a problem. Huh. It's literally just a channel and ultimately it is still same Guix.

"What's that? NONGUIX? Hell no, I ain't having Guix working on my hardware! I don't want a better experience using Guix! Not in a million years!" And then:

> Guix has truly noble goals (in classic GNU fashion) but they're ultimately misguided.

> Actually useless.

Which are really big claims with nothing to back them up.

> The standard encouraged response to "Hi I'm a new Guix user and I was wondering how I can run steam?" is roughly equivalent to "Go fuck yourself" and I'm just amazed by that.

Look, if you can't figure out how to `guix install flatpak' and then flatpak install com.valvesoftware.Steam, then... well, I've nothing to say actually.


> well, I've nothing to say actually.

That's definitely better than "go fuck yourself". "If you don't have something nice to say, don't say anything at all" and all that.

Tbh, I've seen the "go fuck yourself" attitude in almost every Free Software community I've spent time around. It's really just a matter of whether it's encouraged, tolerated, or actively rejected by the project maintainers and influencers.

I would hope that someone writing a blog post this positive would be one of the "actively rejecting" folks, but I really don't know anything about Guix (hadn't heard of it until this post).

I will say that I run NixOS on my primary home server, and while there's definitely a learning curve there, the community I've experienced is largely very helpful, friendly, and positive. Now that I've got most of it working the way I want, I don't see myself moving to something else any time soon (it's absolutely rock solid).


If you're just turning to flatpak, why are you even using guix in the first place?


I assume for them, guix + a few proprietary bits is a better compromise than installing Windows


Flatpak is not an OS. Weird question.


If you've turned to a system based on everything being perfectly declarative and reproducible, why would you then add an imperative autoupdating system on top of that? Of course you can, but if you're fine with that kind of system, why would you have turned to guix in the first place? It's not like it's just the popular default and you want to do something else on top, it's a super niche thing based specifically around this and you're breaking the core philosophy


I had the impression, Guix was a package manager and GuixSD the OS?


It is all just Guix now. It's both package and systems manager.


The OS is called "Guix System". Without the system part it's just "Guix".

Both variants are very similar. The Guix tool comes with a "guix system" command, which lets you build Guix System containers, container images, system images, qemu VM images, qemu VM scripts, etc. The only command that won't work on a "foreign" distro is "guix system reconfigure" --- but that's only a "guix system init /" away ;)


This is precisely my confusion.


Have you considered the idea that it might just not be for you? There are plenty of workflows that don't require proprietary software, and adding proprietary software breaks a lot of the point of Guix, along with throwing more work onto the backs of maintainers.

You wouldn't expect a bunch of people giving away a vegetarian cookbook to respond super well to, "This is all fine and great and all, but how can I adapt this recipe to grilled dog?"

Especially not after saying their project was pointless since you couldn't easily use it to shish kebab your cat.


> but how can I adapt this recipe to grilled dog

> couldn't easily use it to shish kebab your cat

This seems like an unnecessarily hostile response, kind of inline with what the OP mentioned.


It's not particularly hostile. It's using an example to demonstrate that someone who sees an action as unethical won't be super hyped about you asking them to spend their time assisting you in doing something they find to be unethical, especially after you insult them for thinking it's unethical.


To continue with your analogy: this sounds more like instructing other vegetarians to refuse to help any meat eaters who would like to alter a vegetarian recipe.


It's more like saying "Not in my house, thanks."

Which is totally sensible!


Who is it for then? Everyone on the planet I have ever interacted with uses proprietary software daily. What are these mythical workflows? Am I only supposed to use Guix when it's convenient for their philosophy?

nonguix is proof that adding proprietary software doesn't break diddly squat.

It's all just gatekeeping. They could still achieve all their goals without being zealous, whether you believe me or not.


I really can't understand your attitude here.

Guix makes it trivial to add other channels, such as nonguix, providing first-class packages. You can easily add proprietary software to Guix. It's just not part of Guix, because that's not the point of the project. Your "non-mythical" workflows that depend on proprietary workflows are not in any way impeded.

You are projecting zealotry and gatekeeping (both terms with strong negative connotation) onto the project. And I must say that your attitude does nothing to advance your point, however deeply buried in hostile rhetoric it may be.

As to mythical workflows without proprietary software: I'm not using proprietary software. Not on my laptops, my home network, my servers at work. Not because I'm some sort of "zealot", but because I simply have no need for it.

It's really quite odd to observe how worked up you get in response to seeing a community that is content with not using proprietary software.


My point is that Guix, the software, the documentation and the community are not user friendly. I'm happy that you have no need for proprietary software, that sounds nice. I do have such a need. It took me a stunning amount of time to find nonguix and figure it out. The community was not helpful.

Figuring out how to use proprietary software with Guix is a miserable experience. As a new, curious user, I was told: I won't receive help, I can't discuss it, I shouldn't use proprietary software, that Guix isn't for me.

This is not a welcoming response. It's not useful. It's hostile. It's zealotry.

Instead, a welcoming response would be to say yeah, that's unfortunate but understandable, maybe help educate why free software is important, and suggest a path forward, such as pointing the user to unofficial channels. By comparison, Nix excels here -- There is no hostility.

It's like being told by a mathematician that I shouldn't use math to calculate my taxes because taxes are unethical and illegal. Yeah that's nice, but I still have to pay them. I just want to calculate my taxes.


> If I can't get stuff done with it it's useless. Actually useless.

I think the very article we're commenting on here shows that it is very definitely not actually useless, it may merely have a different true use than is readily apparent.


I think much like how there's Nix and NixOS, it's important to draw a line between Guix (the package manager) and GuixSD (the Linux distribution).

Guix the package manager, while still not usable at work for me (lack of MacOS support - just 4 of my eng org's ~25 folks use Linux), is full of interesting ideas and features that work well in Linux settings, and can do useful things. It could make interesting dev shells, for example, much like nix-shell (or Flakes).

GuixSD without `nonguix`? Yeah, I unfortunately share your "it's dead in the water" opinion here. I'm not aware of much, if any, modern hardware that can fully boot to a usable-framerate GUI with networking (and that is also safe to use for such) without at least linux-firmware, which I believe is only available in nonguix. If there's exceptions to this, I'd genuinely love to hear them in a thread here.


The importance of proprietary software is quite overstated in my opinion. I've used stock Guix System on a large number of off-the-shelf servers and not once did I encounter missing drivers. I've used Guix System with linux-libre on old Sun hardware and the newest Dell servers --- never once did I have a problem due to the linux-libre kernel.

"dead in the water" looks different.


It sounds like the person you are replying to is talking about the desktop use case rather than servers.


Correct, I was, though I think it's fair to split GuixSD into server and desktop usecases and consider them separately. If it works for one and not the other, cool, maybe doing what Alpine did and billing Guix System for specifically server cases could work? (I still have outstanding questions in that realm in parent thread)


My understanding is that linux-libre strips CPU microcode as well, which is often used to patch hardware vulnerabilities - what's the recourse for such issues on servers like these, on GuixSD?


> not usable at work for me (lack of MacOS support - just 4 of my eng org's ~25 folks use Linux)

In case you're not aware, you can easily create a Guix pack[1] in the Docker image format that can be run on MacOS.

[1] https://guix.gnu.org/manual/en/html_node/Invoking-guix-pack....


> If Guix ever becomes mainstream, it will be in spite of their efforts.

Why is ‘become mainstream’ some aspirational goal? What would that even mean?

Making a viable operating system is valuable without having it be the the one everyone uses.


Article prompted me to take Guix for a test-drive (as a user, not yet as a package-writer), but I'm running into some peculiar behavior.

Installing Python with "guix install python" tells me:

    The following package will be installed:
       python 3.8.2
But then it starts downloading

    tcl-8.6.10  
    tk-8.6.10 
    python-3.8.2-tk
I find this strange, because Python is most often used without Tk (or Tcl) and I don't want to waste disk space.

Also, it installs pip3. But you can't use pip3 because you will get:

    ERROR: Could not install packages due to an EnvironmentError: [Errno 30] Read-only file system: '/gnu/store/...'
I guess Python packages should be installed using Guix too. (EDIT: yes, you have to install them like "guix install python-numpy" etc.)

Imho, this is a pity because it means one package manager (Guix) is circumventing another (pip), and thus wasting the effort that went into building and supporting it.


> Imho, this is a pity because it means one package manager (Guix) is circumventing another (pip), and thus wasting the effort that went into building and supporting it.

The thing is, language package managers may work well for software written solely in that language, but that breaks down real fast when any of them have native dependencies (and many do). Guix is intended to be a universal Linux package manager that can handle packages written in any language on any distro. (It does this better for some languages than others, admittedly.) I’ve experienced enough very broken Python environments that I appreciate only having one package manager to worry about.

I wouldn’t say it’s wasting the effort of Python packaging devs though; it does have an importer for pip packages, so the standard Python packaging work makes it easier to import pip packages into Guix.


Historically I think the tk UI lib has been considered the always available UI library in “batteries included” python.

You’re getting the permissions error as by default pip installs system-wide, for local stuff use the local option or a virtualenv.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: