Change-Making at the Largest Public Interest Startup [video] - <AUTHOR> https://www.youtube.com/watch?v=y6nMQg9qs7k

<comment><USER2> Government contracts require long sales cycles, constant relationship management, excessive documentation, and insider experience to navigate the system. What (if anything) has improved the chances for a small team of competent outsiders ?

<comment><AUTHOR> Mostly because the government itself is changing the way it procures software. For example: [http://www.federaltimes.com/story/government/acquisition/201...](http://www.federaltimes.com/story/government/acquisition/2015/07/27/18f-show- dont-tell/30737575/) [https://18f.gsa.gov/2015/06/15/agile-bpa-is- here/](https://18f.gsa.gov/2015/06/15/agile-bpa-is-here/)

</comment></comment><comment><AUTHOR> FYI, if anybody has questions, there are several YC alums who have joined the government in some capacity (healthcare.gov, USDS, Nava, PIFs), and are on HN.

<comment><USER3> What is the easiest and smallest way to get started/to help, without getting a job with the gov (which may not be possible for many folks) or without bidding for contracts? In other words, how to help from _outside_ the gov? Is there a list of tasks somewhere that someone maintains that can be done independently?

<comment><USER4> I had to re-watch the last 2 minutes of the video a few times to pick it out. But, [https://www.whitehouse.gov/digital/united-states-digital- ser...](https://www.whitehouse.gov/digital/united-states-digital-service) is a place to get started.</comment></comment></comment>


A Guide to Intermittent Fasting - <AUTHOR> https://www.stedavies.com/intermittent-fasting/ <comment><USER2> "Calorie restriction is proven to help you live a longer life."

This is essentially false for anyone reading the article. The studies that showed mice living longer lives from calorie restriction were restricted _from birth_ , and thus their growth was stunted, and smaller creatures live longer (think about dogs; big ones die earlier).

Studies of animals where the calories restriction was started mid-life all show increased mortality. The immune system and wound healing are compromised.

That being said, I've been using a system basically like Leangains since March for the purpose of losing weight. It's just cutting calories and I find that two meals a day plus a big plate of vegetables for dinner allows me to fast from Noon to breakfast the next day with minimal hunger.

But this is a calorie deficit/weight loss strategy because I'm overweight, not a lifestyle thing I'm going to keep up forever. And so far I've lost 29 lbs since March, so that's nice.

There are benefits to fasting occasionally I think, but that's not calorie restriction. It's just giving your body a 24 hr period to engage in autophagy and clear out some of the junk; you make up the calories on the other days.

<comment><USER3> "It's just giving your body a 24 hr period to engage in autophagy and clear out some of the junk; you make up the calories on the other days."

Very true. People don't realize that calories don't "reset' after the day ends. Net calorie gain/loss is best measure on a weekly or bi-weekly basis. If you stay under target for 3 days then binge two full pizzas, you aren't actually going to lose anything.

<comment><USER4> That's not exactly true, if you actually _fast_ for 3 days, even two pizzas won't make up for the lost calories of a 3 days fast, and it's very likely won't be able to eat 2 pizzas in one go..

I know, I fast regularly (I'm days 2 of a 5 day one at the minute) and I do eat quite a lot when I'm not fasting, and despite what everyone will tell you, I don't 'put back the weight immediately' \-- even if I have a nice binge dinner on day 5.

In fact, after quite a few years of fasting very intermittently (I do perhaps 4 a year), I know I can't eat as much as I used to, and I don't 'creep' up as I used to when I started. I'm a LOT dryer than I was, and I can still enjoy a 32 ounce steak (!) when I feel like one.

<comment><USER3> True, but this article is in reference to IF, not extended fasting. Generally IF is done daily, with a feeding window of 8-10 hours and the other 14-16 are for fasting.

Not many people incorporate 2-3 day fasts into their diet.

</comment></comment></comment></comment><comment><USER5> I'm a big fan of intermittent fasting, but this article lacks any kind of proof on many of the cited benefits:

> Benefit #2. It helps with calorie restriction

No study cited that proves this. Only cites studies about the benefits of "proof" that caloric restriction helps longevity, but really is just a correlation.

> Benefit #3. It helps you lose weight and body fat

No study cited, follows up with "believe me, it worked on me".

Cites this study: "Alternate day calorie restriction improves clinical findings and reduces markers of oxidative stress and inflammation in overweight adults with moderate asthma."

That's incredibly specific and shouldn't be generalized to the general population.

>Benefit #5. It helps your cells clean and repair themselves

Cites studies made on rats/mice. Although that's a good indicator it _might_ be mirrored in humans, it proves nothing.

> Benefit #7. It regenerates the immune system

Study was made on 3 day fasts, and not intermittent fasting.

It would nice if he pointed out those are potential benefits instead.

<comment><USER6> I've found there is one very real benefit of fasting: it makes food taste better.

<comment><USER7> If it tastes better because of your appetite, then that's basically just sacrificing some pleasure of not being hungry for the pleasure of the taste of food, like hitting your head against a wall because it feels so good when you stop.

(disclaimer: I practice IF but take issue with this one claim, at least without the stipulation of hunger)

<comment><USER8> If you fast for several days, by about the 3rd or 4th day your sense of smell becomes much more sensitive. It's an interesting and memorable experience-- almost like developing a super power--but for some reason whenever I describe this experience to people they don't seem to put it in the "pro" column.

<comment><USER4> I do the same, and I experience the same. In fact I find what the OP propose of the 'skipping breakfast' to be the worst effort/benefits fasting method. The first day of a multi-day fast is always the hardest, after that it get a lot easier, and you get these benefits.

I also get a mental 'high' on day 3+4, but it goes down after that.

</comment></comment></comment></comment></comment><comment><USER9> Intermittent fasting may be good, but factual errors in this piece made me stop reading further. It seems the author didn't study the topic well enough to write about it.

Others have already pointed out dubious claims about increased longevity. I'll take issue with section "Benefit #1. It supports with hormone regulation and lowers diabetes II risk." Sure eating less carbohydrates will lower your diabetes risk. But that doesn't mean you have to fast, just that you should eat less carbohydrates.

And contrary to what is written under that heading, insulin lowers high sugar levels, it does not cause them. High insulin levels are caused by high blood sugar. While it is plausible that fasting will lower your risk of diabetes, that's foremost because you're eating less and thus the glycemic load is lower. (Glycemic load is how much your blood sugar rises from food.) You can lessen the load by eating less in quantity or by refining carbohydrates less (by eating fruits instead of drinking juice, for example)

While I think that fasting is a valid and rather easy way of countering unhealthy eating habits, it is just one of many possible ways.

And this is no myth: "If you go too long without food your body will start eating itself (muscle)". The article lists this together with other myths, as if starvation weren't a real danger. Sure most people won't get any ill effects from not eating for a day (it's healthy for most) but once the fat is gone, muscle is next.

</comment><comment><USER10> "Calorie restriction is proven to help you live a longer life."

Flatly untrue. The article linked to "in proof" is about primate studies that suggest -- perhaps even strongly suggest -- that caloric restriction can slow the process of aging. This does not, however, rise to the level of proof, and certainly does not provide conclusive indication of what caloric restricters can expect more generally. The author is apparently willing to make this grandiose claim to a susceptible audience with nary a word about its limitations, which should set our alarm bells ringing.

If you want to calorically restrict, do it because you've thought long and hard about the consequences of a truly significant choice -- not because it's a tech industry fad.

<comment><USER11> I think the phenomenon is poorly understood and studied, but it's likely not the calorie restriction itself, like you claim.

Apparently it has to do with autophagy ([https://en.wikipedia.org/wiki/Autophagy](https://en.wikipedia.org/wiki/Autophagy)), which your body seems to enter when you restrict calories. IF apparently stimulates your body to perform autophagy due to the fact that you're timing your meals.

TBH, I still need to do my own research to see how much of this is real vs. pseudoscience, but I've noticed an improvement to my health. Whether that's placebo effect or not, remains to be seen.

<comment><USER12> Well GPP is just saying that 'calorie restriction' is not proven to 'help you live a longer life', irrespective of the IF context.

As for IF, as you say, it is basically not proven to do anything (no 'phenomenon' at all). Simplest and most logical reason for success is because it helps people stick to their diet, by arbitrarily restricting the window of eating.

Opinion I read on r/leangains is that some people find it easier to e.g. just eat two 600-800 calorie meals within their IF window, rather than sticking to a diet that involves 3-4 smaller ~300-400 calorie meals, spread out through the day, none of which feel 'satisfying'.

</comment></comment></comment><comment><USER13> Overall the body is pretty good at nutrient partitioning and maintaining a caloric balance. There may be small statistically different outcomes for practicing stuff like IF, but there aren't clinically different outcomes _outside of using IF to maintain compliance to a diet._

If IF helps you maintain your ability to comply to the diet you want, great, but there's absolutely no evidence for it being superior than the same diet spread over the day, and there a few ways in which it's probably suboptimal, like building muscle (although again not hugely so, so compliance probably trumps the small advantage you get).

<comment><USER14> What about in controlling insulin resistance? I thought the data was pretty strong in favor of IF helping significantly.

<comment><USER13> It's not. The same amount of glycemic load consumed all at once or over time throughout the day will not have a significant effect on insulin resistance. Not being able to eat as much because you are constrained to an 8 hour window will cause your overall glycemic load to go down.

</comment></comment></comment><comment><USER15> Even if IF is nothing more than calorie restriction supporting the calories in/calories out hypothesis, it succeeds in creating a real psychological benefit - you get to have real, satisfying meals of food you actually like - you just have to wait longer for it.

If you're trying to lose weight, and you like food, the sight of the food in these 1200 calorie 3 meal daily plans is incredibly depressing. Eating an egg white on a piece of wheat toast every morning for the rest of your life is a kind of torture that never gets easier. It's like trying not to blink forever, or holding your breath forever.

Much better to just wait all day and spend the calories on a generous portion of something you really want to eat.

<comment><USER16> I'm aiming at this these days. I'm cutting most shitty food (I allow some pastry in the week; but no soda, no fast food, no industrial meals). But I'm not mentally ready to cut the pleasure of a good meal. I'll better stop using my car and job between places and keep higher calories. I "believe" the benefits of good ingredients, close to no fat and no added sugar + regular sport is already significant. Later I'll move to more vegetables, less carbohydrates to trim my body fat even further.

<comment><USER17> > I'll better stop using my car and job between places

I suppose you mean "jog", but jobbing between places sounds very intense as well. :)

<comment><USER16> Indeed, keyboard slip.

</comment></comment></comment></comment><comment><USER11> I have been doing intermittent fasting (IF) on a 16/8 or 18/6 schedule for the last 6 weeks. In combination with keto/LCHF food, keeping my daily caloric intake under 1550, and weight lifting 3x weekly, I've been losing 2.5 lbs/week on average.

IF fits my lifestyle really well, since I only end up eating twice. I feel super energetic and focused while I'm fasted, and the lack of insulin spikes when I do eat have helped too. Besides losing weight, my overall health seems better. Cuts and injuries heal faster, less facial acne (I didn't have a lot to begin with though), and all of my stomach/intestinal issues are gone.

IF works really well for me, and I highly recommend that people try it for themselves for 1-2 months, to see if it works for them too.

<comment><USER18> >I have been doing intermittent fasting (IF) on a 16/8 or 18/6 schedule for the last 6 weeks.

What do 16/8 and 18/6 mean in this context?

<comment><USER19> fasting hours/eating hours. So eating within an 8 or 6 hour window each day, and fasting for the other 16 or 18

</comment></comment></comment><comment><USER20> There's a net of dieting resorts around Poland doing "Dieta Dąbrowskiej" among some other health-oriented stuff.

In essence it's calorie restriction on veggies for 2-6 weeks at a time supplemented with blood tests and physical activity. She (Dąbrowska) states that it resets the immune system, restricts cancer growth (or even puts cancers into recession), helps with diabetes and cures food intolerance.

Proof for it is provided as "I've seen people that improved". I'm highly skeptical about it as my vegan-celiac-fit family part got hyped for it and went through a 3 week run. They came back with anecdotal self-healing miracles.

The diet is around 600-700 kcal a day, low on sugar. Supposedly it stimulates autophagy giving all of the stated benefits (on top of cleansing out "toxins").

As a side note I found that food intolerance is in fashion recently. There's one (!) test offered in my area for it called the Food Detective (made by Cambridge Nutritional Sciences Ltd.). I'm highly skeptical of it too as there's no competition and I couldn't find any studies confirming it's effectiveness.

My main concern is the potential impact on the brain. I vaguely recall some study observing neuron loss during extended periods of starvation.

Also having some sensible studies to back it up (or debunk it) would be nice.

<comment><USER21> With you on the scepticism esp. about the detox-thing.

That said fasting in some form seems to have been with us for a few thousand years and it seems unlikely that it would be so widely documented and practiced across cultures and religions if there wasn't _some_ benefits to it.

</comment></comment><comment><USER22> Could any one point me to advice/guidance, or can answer from experience, what you would do differently when doing IF with regular exercise?

It seems to me you'd want to make some adjustments to types and amounts of calories to account for exercise, especially anything very taxing, like endurance training. But I haven't found any advice on this specific topic.

<comment><USER23> I don't have advice but my personal experience is that lifting weights is easy but cardio is almost impossible.

I don't really fast on purpose but I mostly eat one large meal a day (dinner). I workout in evenings before dinner.

I do snack if I get hungry maybe around 4PM. My snacks are usually Lay's chips. Sometimes, I get a Gatorade for gym.

I can lift about as heavy as if I had a big lunch but cardio is different story. If push myself as hard as one days when I had lunch or a lot snacks, I will start to see stars. I go a lot slower with cardio then. (Seeing stars or vision going white is sign of sudden drop in blood sugar level).

</comment></comment><comment><USER24> I've cycled through many methods of eating, trying to find an optimal diet to pair with heavy weight training for 6-7 days a week.. while at the same time keeping my weight more or less the same (with only slight fluctuations).

Intermittent fasting (or more specifically, following a loose version of the Renegade Diet) is where I landed.. and have been able to keep my weight steady while still making strength gains. In my opinion, it's a good choice who have a hard time controlling their food intake without the hassle of counting calories and/or macros. This way, rules are set, and then can look forward to ~4 hours of eating without restriction. I've pushed this feeding window to the limit, and to gain significant amounts of weight week over week, I basically had to eat until I physically sick for multiple days.

I've also had blood work done, with everything being normal since I started over a year ago.

<comment><USER25> I've been playing with IF and high activity too, and have been struggling to find a good balance.

My sport (track cycling) is very power intensive and has both strength and endurance components.

I have two eating periods on active days and one on my rest days. That seems to do me ok, but endurance has still been an issue.

<comment><USER24> It's hard to know without seeing what you eat, but are you sure it's enough? Have you tried tracking a few days to see if you're hitting high enough calories? I'm really stuffing myself at night.. and from others I've talked to, it's very easy for them to under-eat.

</comment></comment></comment><comment><USER26> I find IF helpful to regulate calories. Basically I skip breakfast, eat a light lunch around 1, and a large protein/veg heavy dinner. This is effective if I stick to it (and I generally have for quite some time now). You can't do IF, eat crap, and expect results. You still need a disciplined diet. For me I found I basically need to severely restrict carbs. I will overeat carbs but not protein/less starchy veg. Try eating a BigMac's calories in spinach. It isn't going to happen.

As other people have mentioned, a lot of the claims made about IF aren't entirely backed by the research. Most experiments are with mice and usually use a more severe form of fasting that what is advocated. It's just another way to do caloric restriction which may work better than the previous 'best practice' of 'many small meals'.

<comment><USER27> _" Basically I skip breakfast, eat a light lunch around 1, and a large protein/veg heavy dinner."_

Apparently you are my dietary twin. I came to this exact formula accidentally, though, as a result of calorie counting. I skipped breakfast because I could do that most easily. Then I decided lunch would be really light because that gave me the leeway to have a more satisfying dinner and feel completely full once a day. And I didn't want to take the risk of having a light dinner, being hungry, and being unable to get to sleep.

I ended up with the mix of protein- and vegetable-heavy dinner because I started reading the nutrition labels of absolutely everything. Then without seeking out a particular type of food, I tried to remember which foods seemed like a good combination of filling and low calorie. And protein and vegetables is what it ended up being.

Overall it has worked great. The types and amounts of food I eat feel normal now, and I feel good, and my ability to control my weight has surpassed all expectations.

</comment></comment><comment><USER28> I do intermittent fasting (16/8) every day and have found immense benefits. More specifically, I do what's called "time-restricted feeding" in which I only eat between 7am and 2pm (so if I start eating at 10am then I can only eat for 5 more hours). I also strategically eat in the morning because I that is when people are most glucose sensitive.

So far I have almost lost 20lb without changing anything in my diet (I currently am 6ft and 200lb). I did not expect this result going in, but have been pleasantly surprised. Research shows that IF can lead to a slight weight loss, but nothing like what I have experienced-- so I wouldn't want anyone to think they can replicate my results. That being said, I would do this even if I did not lose weight because the health benefits are immense.

<comment><USER29> Been doing this for ages without intending to.

I generally eat 13-14 and again 18-19. and that's it.

</comment></comment><comment><USER30> I did intermittent fasting 2 days a week for 2 years (2013-2015). Initially I lost weight, which was good. Energy levels were elevated, minor health problems seemed to have gone away or lessened. Towards the end, I think I was being rather too "soft" on myself, so wasn't really reaping the benefits, and it got to be a grind. I then had some rather unpleasant emotional issues to deal with, and found I didn't have the emotional energy to continue: I have pretty decent willpower, but when I'm badly emotionally stressed, it crumbles. I've been _intending_ to get back into I/F ever since, and though I'm emotionally in a far better place, I haven't managed to muster the emotional energy for it yet.

</comment><comment><USER31> One diet I read about recently that I found interesting is called the Fasting- Mimicking Diet. It's not a strict fasting diet; you spend five contiguous days per month eating a very specific diet of about 1100 calories per day. The diet is low in carbs, low in protein and relatively high in unsaturated fat. One of its claimed benefits is that it's easier to stay on than the other strict fasting diets. Some of its other claimed benefits sound quite amazing.

References: [http://sciencebulletin.org/archives/10692.html](http://sciencebulletin.org/archives/10692.html) [http://www.bbc.com/news/health-39070183](http://www.bbc.com/news/health-39070183)

</comment><comment><USER32> -Stop eating at 8pm (the time of my last meal) -Start eating at 1 or 2pm the following day

How is this just not just skipping breakfast? 3 times a week? I know lots of overweight people who do this, although it is easy to follow.

<comment><USER17> From personal experience [1], even when I have only two big meals, I'll eat a ton of snacks of sweets during the whole day. Cutting these out is the large difference to "just skipping breakfast".

[1] Have not done any fasting, but recently started considering intermittent fasting.

</comment></comment><comment><USER33> I really like the most moderate form -- simply eat two meals a day, skipping either your first meal in the day or your last.

Everyone 'fasts' for 8 - 12 hours just by sleeping anyway, so simply skipping one meal nearest sleep means you fast for about 16h a day.

</comment><comment><USER34> Any guidance on the risks of IF for folks with Hashimoto's Disease/hypothyroidism?

</comment><comment><USER35> For the 16+8 routine, does anyone have an idea of how you're supposed to carb cycle?

<comment><USER36> Read the leangains links elsewhere in the thread. In those, Berkham recommends high protein,medium/high carb, low fat on weightlifting days, and high protein, medium fat, low carb on non-weightlifting days.

</comment></comment><comment><USER37> Why is this stuff on HN? It reads as pseudo-science.

<comment><USER38> So we can discuss it in a constructive manner, for example by pointing out what makes this pseudo-science and why it might be not the worst idea anyway. Like other commenters have done, and I enjoyed reading their arguments.</comment></comment>


What Responsibility Do Engineers Have for Online Privacy? - <AUTHOR> http://www.scottporad.com/2013/04/02/what-responsibility-do-engineers-have-for-online-privacy/

<comment><USER2> I think the key phrase here is "low probability, high impact event". For a startup, ceasing to exist because nobody cares about your company is a high probability, high impact event. That's why many new products have gaping privacy problems. Also security flaws, technical debt, and other failures of sufficient planning and investment.

The challenge is that for a company with a good product, the highest risk threats (no product, crap product, nobody cares about product, etc) are mitigated. Then these lower-probability high-impact risks come to the front. This tends to happen faster than most small companies realize - like the first day there's any meaningful customer traction.

Suddenly, a team that's lived by 'move fast and break things' needs to catch their breath and pay down some debt - privacy, code quality, security, etc. Nobody enjoys that, so it's easy to postpone it too long.

<comment><USER3> Nicely said. One point to add would be that bolting on security/privacy after the fact generally results in failure. The "highest risk threats" you mention push companies toward trying to solve their technical debt later, if they survive, but this just makes the after-thought bolt-on failures more probable.

</comment></comment><comment><USER4> Something every dev should be thinking about, but rarely is.

<comment><AUTHOR> I would argue that devs only think about what their cultures encourage them to think about. These days developer cultures value "do more faster", so developers think about speed. Until that changes, privacy will be a second class citizen.

<comment><USER4> s/privacy/qa or your discipline of choice that is seen as "slowing down" development. While most devs _should_ be thinking about this, you're correct in that their culture generally doesn't encourage them to.

<comment><USER5> whilst there some similarities between qa and privacy, in terms of technical debt/slowdowns, I don't think they are the same. Privacy is much more elusive, difficult to see any immediate value of, and subject to interpretation. QA can prove its value by finding real bugs that are usually harder to argue against.

</comment></comment></comment></comment><comment><USER6> > The "corporate brand functions" (i.e. marketing, PR, legal) value privacy > issues over speed. My poor friend is stuck in the middle.

Marketing dept. is most probably the worst offender of online privacy.

</comment><comment><USER7> Well if you're an IEEE-CS or ACM member, you agreed to the joint _Code of Ethics and Professional Practice_ :

<http://www.acm.org/about/se-code>

10.3:

        Approve software only if they have a well-founded belief
        that it is safe, meets specifications, passes
        appropriate tests, and does not diminish quality of
        life, diminish privacy or harm the environment. The
        ultimate effect of the work should be to the public
        good.

3.12:

        Work to develop software and related documents that
        respect the privacy of those who will be affected by
        that software.

In Australia we have in addition the _Privacy Act_ , which creates very strict regulations on collection, storage and use of information about individuals: <http://www.privacy.gov.au/></comment>


GNU Guix 1.0 - <AUTHOR> https://www.gnu.org/software/guix/blog/2019/gnu-guix-1.0.0-released/ <comment><USER2> I'd love to use Guix (or Nix for that matter) as my day-to-day system but (and correct me, if I'm wrong) the package maintainer story is a bit off putting for me. From what I've understood, packages are maintained in a public git repository (GitHub [0] for Nix and savannah.gnu.org [1] for Guix), which might be great if there are enough people submitting updates, but at least for critical system components there should be clearly defined maintainers to make sure all security patches are applied in time.

Also I'm not sure how I feel about a core part of my potential operating system being hosted by a now Microsoft-owned company. On the other hand GitHub might be more reliable and better fit to server a huge amount of users than savannah...

[0]: [https://github.com/NixOS/nixpkgs](https://github.com/NixOS/nixpkgs)

[1]: [https://git.savannah.gnu.org/cgit/guix.git/](https://git.savannah.gnu.org/cgit/guix.git/)

<comment><USER3> No "core part" of Guix is hosted on Github. If you're referring to the daemon: it's being replaced with a Guile implementation (it's an ongoing student project). It's not fetched from Github; our old copy of the daemon is part of the Guix git repository.

<comment><USER2> Sorry for being unclear. The part about being hosted on GitHub actually referred to Nix. That's the point where I'm unclear about what seems to be the better solution. GitHub could take a turn for the worse but at least for now, GitHub might be able to handle more users than savannah.

<comment><USER3> I don't think it matters much. You can use any git mirror in your ~/.config/guix/channels.scm file (including a local clone); you only need access to the git repo when running "guix pull" to upgrade your copy of Guix. I don't think that Savannah will become a bottleneck even with three times the users we have now. If it ever becomes a problem it's trivial to move to something else or to host dedicated infrastructure.

<comment><USER2> Yeah I just realized that. The binary caches might experience higher load but it the worst case you would have to build the binary yourself.

I just had to reinstall guix since `guix pull && guix package -u` didn't seem to upgrade guix itself but I think I will play around with it, at least for non critical stuff in my OS.

<comment><USER3> "guix pull" upgrades Guix itself. It installs the latest version as ~/.config/guix/current/bin/guix. If you ran the "guix" command from a different location before Bash's caching of command names can trick you. Guix prints a recommendation to run "hash guix" to refresh this command cache.

</comment></comment></comment></comment></comment></comment><comment><USER4> Looks like a neat concept. Would anyone here with experience managing this in production care to comment? Seems like it could be interesting if you need to reproduce the exact same software/OS on several machines as deliverables.

<comment><USER3> I've been using Guix in production since 2014 at a research institute to support reproducible bioinformatics workflows. It has come a long way since then.

Guix takes reproducibility and "bootstrappability" very seriously. Its design as an extension to Guile Scheme enabled the development of software built around Guix, such as a workflow language, alternative user interfaces (e.g. an Emacs interface or a web interface), etc.

The `guix system` family of commands is awesome because it can build reproducible containers, disk images, virtual machines, or bare-metal systems all from the same specifications.

What's still missing, in my opinion, is a tool to manage systems that have been generated with Guix, e.g. to check on their state, build new configurations and swap them out for old ones, etc. Some work has been done towards this goal, but there's still some way to go there.

Other than that I'm very happy with it and use Guix systems and Guix as a package manager on all my machines.

<comment><USER5> How does writing Guix Lisp expressions compare to writing Nix? Is it pretty succinct and intuitive? Do patterns make a little bit better sense?

It took me a long time to get the hang of the Nix design patterns like the three different kinds of overrides and the module system. Curious if it plays better in Lisp.

<comment><USER3> "succinct" is hard to answer. It depends a lot on the upstream package. For most packages the package expression looks like data:

        (define-public r-valr
          (package
            (name "r-valr")
            (version "0.5.0")
            (source
             (origin
               (method url-fetch)
               (uri (cran-uri "valr" version))
               (sha256
                (base32
                 "14jhrwkiwmha3vlmm7b50n2xxyizj6ddmy89gb20mpzq7qhz1ika"))))
            (build-system r-build-system)
            (propagated-inputs
             `(("r-broom" ,r-broom)
               ("r-dplyr" ,r-dplyr)
               ("r-ggplot2" ,r-ggplot2)
               ("r-rcpp" ,r-rcpp)
               ("r-readr" ,r-readr)
               ("r-rlang" ,r-rlang)
               ("r-stringr" ,r-stringr)
               ("r-tibble" ,r-tibble)))
            (home-page "https://github.com/rnabioco/valr")
            (synopsis "Genome interval arithmetic in R")
            (description
             "This package enables you to read and manipulate genome intervals and
        signals.  It provides functionality similar to command-line tool suites within
        R, enabling interactive analysis and visualization of genome-scale data.")
            (license license:expat)))

This defines the name "r-valr" to be a "package" value with the given fields. The "source" field describes how Guix should obtain the source tarball ("url- fetch" is a procedure that implements a URL downloader, but there are others like "git-fetch", "hg-fetch", etc) and what the hash of that data is supposed to be. The "build-system" field tells Guix how to build the thing. "r-build- system" is a very succinct way to say "do with this package as you do for all other R packages: unpack the tarball, run `R CMD bla`, then run the tests, etc". We've got quite a few such build systems: "gnu-build-system", "cmake- build-system", "python-build-system", "ant-build-system", ... All of these can be further configured via the "arguments" package field, which isn't used here, because this is a boring package.

The "propagated-inputs" field is an association list of arbitrary labels to actual package values --- the things on the right hand side are variable names that are bound to package values, which are unquoted here, so this field really contains actual references to these other package values. The result is a lazily constructed graph of package values.

Some packages can be really nasty, though, when the developers decided to ignore conventions and implement their very own way to build their very special software. We can usually accommodate those packages by starting out with e.g. the gnu-build-system and then modifying the build phases: deleting the "configure" phase, adding a custom phase before the "build", replacing the "install" phase, etc. The system is flexible enough for all of this, but for really ... special software I would no longer call this "succinct" or "intuitive".

That said, most packages are easy. Almost all R packages, for example, look like the one above. But there are some really frustrating ones like Tensorflow (due to the fact that we use CMake instead of Bazel because Bazel hasn't been bootstrapped yet) or the old JDKs (that we use as part of a longer bootstrap chain) that are plain ugly. You just need to know when to give up, I suppose :)

<comment><USER5> > _You just need to know when to give up, I suppose :)_

Oh gosh I relate to this. I tried to package 3DSlicer for NixOS, which uses a cmake superbuild of dozens of dependent projects, which it fetched during compile and required a very special GCC. I had to give up; it was making me too depressed.

Thank you for sharing how Guix derivations work. It seems very similar semantically to Nix, but I like the _build-system_ method. In nix we have e.g. buildDotnetPackage, buildBazelPackage functions which are overridden, but there's not a clean interface for build systems. I like it.

Is the module system similar to Nix's? Nix modules define imports, config schema and config values, which are merged together to produce an expression for the state of the whole system, e.g. configuration.nix. How's that work in GuixSD?

<comment><USER3> > Is the module system similar to Nix's? Nix modules define imports, config > schema and config values, which are merged together to produce an expression > for the state of the whole system, e.g. configuration.nix. How's that work > in GuixSD?

The way the Guix system is configured differs a lot from how it's done in NixOS. (Note, though, that I've never used NixOS, so I'll just talk about how it works in Guix.)

First about the term "modules" to avoid confusion: Guix code is organized in Guile modules. A Guile module is a file containing definitions. A module can export variable names. Other modules can use those variable names. That's just like how you'd do "import foo" in Python --- in Guile you do "(use-modules (where foo is))".

This is nothing to do with system configuration, of course; it's just a language feature.

The way a system is configured is through the `operating-system` record. Much like the `package` record for defining first class package values the `operating-system` record is used to declare operating systems. Here's an example straight from the manual:

        (use-modules (gnu))
        (use-service-modules networking ssh)
        (use-package-modules screen)

        (operating-system
          (host-name "komputilo")
          (timezone "Europe/Berlin")
          (locale "en_US.utf8")

          ;; Boot in "legacy" BIOS mode, assuming /dev/sdX is the
          ;; target hard disk, and "my-root" is the label of the target
          ;; root file system.
          (bootloader (bootloader-configuration
                        (bootloader grub-bootloader)
                        (target "/dev/sdX")))
          (file-systems (cons (file-system
                                (device (file-system-label "my-root"))
                                (mount-point "/")
                                (type "ext4"))
                              %base-file-systems))

          ;; This is where user accounts are specified.  The "root"
          ;; account is implicit, and is initially created with the
          ;; empty password.
          (users (cons (user-account
                        (name "alice")
                        (comment "Bob's sister")
                        (group "users")

                        ;; Adding the account to the "wheel" group
                        ;; makes it a sudoer.  Adding it to "audio"
                        ;; and "video" allows the user to play sound
                        ;; and access the webcam.
                        (supplementary-groups '("wheel"
                                                "audio" "video")))
                       %base-user-accounts))

          ;; Globally-installed packages.
          (packages (cons screen %base-packages))

          ;; Add services to the baseline: a DHCP client and
          ;; an SSH server.
          (services (append (list (service dhcp-client-service-type)
                                  (service openssh-service-type
                                           (openssh-configuration
                                            (port-number 2222))))
                            %base-services)))

The "packages" field is for declaring globally available packages, nothing special. What's interesting, though, is the "services" field. This is _not_ just about services in the sense of daemons (i.e. Shepherd services that can be started and stopped), but about anything really to extend the system.

System services can be composed and may extend one another, see <[https://www.gnu.org/software/guix/manual/en/html_node/Servic...](https://www.gnu.org/software/guix/manual/en/html_node/Service- Composition.html>). This can be used for complex system setup like web applications that require a web server configuration (e.g. by adding an nginx server block), a database, and so on. An example is the Zabbix system service. We also use the service framework for generating PAM policies, creating files in /etc, for udev rules, etc.

This framework was described also in comparison with NixOS in a 2015 blog post: [https://www.gnu.org/software/guix/blog/2015/service- composit...](https://www.gnu.org/software/guix/blog/2015/service-composition- in-guixsd/)

"guix system" operates on an "operating-system" value (read from a file or read as a Scheme expression) to instantiate a VM, a container image, or a bare-metal system.

</comment></comment></comment></comment></comment></comment><comment><USER6> This seems like a large piece of software. I'm interested in the purely functional, portable package manager aspect. I can see that it has [0] a lot of packages that are a pain to build on my Slackware system (or even to download prebuilt) because of the awesome number of dependencies. Downloading mpv and its dependencies takes quite a bit of time, for example. If anyone has experience with using guix this way, I'd be interested.

[0] [https://www.gnu.org/software/guix/packages](https://www.gnu.org/software/guix/packages)

<comment><USER7> At the beginning of this year I got hooked-up on this concept of functional system and package management. I've read through all the Nix documentation trying to get a feeling of how should I use it. And it just felt bad - sometimes the documentation was outdated, sometimes it clearly contradicts code on master, sometimes the programming style was inconsistent, sometimes the examples were unclear, too simple or too contrived... Thousand ways to achieve the same things and no clear "best practices" way.

Is guix's documentation any better? I mean - teach me the theory, but also show me practical examples making use of it so I could remember?

<comment><USER8> I prefer guix documentation because it feel more like a guide than a reference.

<comment><USER7> I think this is exactly what I wanted to hear, will give Guix a shot I guess.

</comment></comment></comment></comment><comment><USER9> I've been using the Guix system since early 2018. It's a lot of fun. I've put off some of the more complicated stuff (from a user's perspective) like packaging new things, but it's managed to stay my daily driver just fine.

</comment><comment><USER10> I haven't been active for a couple of years, but I've contributed my fair share of packages and features since 2013 that I'm proud to see have made it all the way to 1.0. Congrats, Guix team!

</comment><comment><USER11> As a person with ~intermediate knowledge of Nix/NixOS and only knowing Guix from a distance yet:

\- I don't see a word about GuixSD there - what's the status of this? Is it also 1.0 now?

\- (How) can I pin my whole config to a particular commit of the package set/channel, and only update gradually? I'm kinda having trouble finding out how to do this in NixOS

\- Can I package non-libre software for Guix? Are there third-party non-libre package sets/channels? I know GNU proper doesn't want me to do this, and I'm sympathetic, but not ready for the jump. What's the situation for me in practice?

\- Can I replace kernel with L4Linux? I tried to do that in NixOS but gave up because of complexity.

\- Does GNU mirror/archive all package sources used by Guix somewhere? If github is sunset by MS, can I still build an OS from a 2018 snapshot?

\- What's the multi-user story? In Nix it's complicated.

\- Does Guix have something like Nix's home-manager?

TIA!

<comment><USER3> > \- I don't see a word about GuixSD there - what's the status of this? Is it > also 1.0 now?

Yes. GuixSD is now called "Guix System".

> can I pin my whole config to a particular commit of the package set/channel

Yes, you can. You only need to describe the channels you want to use (and possibly their commits) in ~/.config/guix/channels.scm and then run "guix pull". You now have that particular version of Guix and it won't change until you change the channel specification and run "guix pull" again. That's great for reproducing a system elsewhere or at a different point in time.

> Can I replace kernel with L4Linux

I don't know if anyone has tried.

> Does GNU mirror/archive all package sources used by Guix somewhere

We cache sources for as long as possible on the build farm; we also fall back to looking up sources through Nix caches; and finally we fall back to the Software Heritage archive.

> Can I package non-libre software for Guix? Are there third-party non-libre > package sets/channels?

Yes and yes. Adding channels is easy: just add a specification to ~/.config/guix/channels.scm

> Does Guix have something like Nix's home-manager

Sadly it doesn't. I'd love to see something like this in Guix.

<comment><USER11> Thanks! How about the multi-user story for non-OS Guix?

Also, can you share some links to third-party non-libre package sets/channels, or some place where I can find them to see what's available?

 _Edit:_ As to kernel: are you using Hurd, or Linux? Or any one of them can be chosen? If it's choosable, I imagine L4Linux should not be that hard. _Edit 2:_ I see there was some work being done on this: [https://www.gnu.org/software/guix/blog/tags/gnuhurd/](https://www.gnu.org/software/guix/blog/tags/gnuhurd/) but last news seems to be from Feb 2017. Did the work get integrated into trunk, or did it bitrot in an old branch? _Edit 3:_ Found some info: [http://lists.gnu.org/archive/html/guix- devel/2019-04/msg0023...](http://lists.gnu.org/archive/html/guix- devel/2019-04/msg00232.html) IIUC, not very stable (missing some Shepherd stuff?), but at least the work seems upstreamed (?)

<comment><USER3> > multi-user story

I don't know what this means, so I'm just answering what I'm guessing this means :)

Probably one of the biggest non-OS deployments of Guix is at the institute where I work. We use Guix as a package manager on an HPC cluster. Hundreds of users share the same Guix daemon but each of them can use their own version of Guix with it. They simply invoke "guix pull" to upgrade whenever they feel like it to get a new version of Guix and this affects nobody else.

Users are, of course, not limited to having just one profile. Just like Guix can be used to manage different software environments _per user_ it can just as well be used to manage separate software environments _per project_. At the institute we do this all the time to create separate environments for independent projects that each have their own upgrade schedule.

> Hurd?

We're using Linux libre by default. Guix runs as a package manager on a Hurd system (such as Debian GNU/Hurd) and Guix has packages for building Hurd servers as well, so a Guix System that uses the Hurd instead of Linux libre is close to being ready. Most of this work was done by a very dedicated student who did this as part of GSoC (twice) and who continued to fix problems afterward.

Not all features of Guix will work on a Hurd system; Linux-style containers obviously only work on Linux --- the Hurd has much prettier support for container features, including unprivileged file system virtualization (something I hate to miss on Linux).

The biggest problem with Guix + Hurd is that we aren't yet building packages for the Hurd on our build farms, so no binaries are available. This means there are only very few people who would be willing to use this and report bugs or contribute fixes. I'm planning to attach some Debian GNU/Hurd VMs to the build farm within the next few weeks so that this obstacle is removed. Many of the Guix developers are Hurd enthusiasts (myself included), so I hope now some of us can close the gaps that prevent us from having a native Guix + Hurd GNU system.

> third party channels with non-free software

As one of the maintainers of Guix I'd rather not share links to channels providing non-free software. I also sincerely hope that people will put their time into improving free software than to develop workarounds to allow them to keep software alive that does not respect their freedom and thus harms our communities. That said, there are countless repositories on popular hosting sites that provide package definitions of varying quality for non-free software (also of varying quality :)) --- some of them are also used in HPC deployments.

</comment></comment></comment></comment><comment><USER12> Recent Guix discussions:

Guix: An advanced operating system (4 months ago, 313 points, 168 comments) [https://news.ycombinator.com/item?id=18902823](https://news.ycombinator.com/item?id=18902823)

Software Heritage and GNU Guix join forces to enable long term reproducibility (13 days ago, 168 points, 7 comments) [https://news.ycombinator.com/item?id=19699031](https://news.ycombinator.com/item?id=19699031)

</comment><comment><USER13> Could someone provide a good comparison to Nix?

As in:

\- What differentiates the two?

\- What are respective drawbacks / advantages?

\- How usable are they? How painful is the manual creation of packages?

<comment><USER3> Here's something I wrote a few months ago (with minor changes) to clarify the relationship between these two projects. I hope this helps.

\</comment></comment><comment></comment><comment></comment><comment>-

As one of the co-maintainers of GNU Guix I'm obviously biased, but here's what I consider some important unique features of Guix:

\- Guix is all written in Guile Scheme (with the exception of parts of the inherited daemon, which hasn't yet been completely implemented in Guile); this extends to development tools like importers, updaters, to user tools like "guix environment", and even bleeds into other projects that are used by Guix System (the GNU system distribution built around Guix), such as the shepherd init system. There is a lot of code reuse across the stack, which makes hacking on Guix really fun and smooth.

\- Packages are first class citizens in Guix. In Nix the idea of functional package management is very obvious in the way that packages are defined, namely as functions. These functions take their concrete inputs from an enormous mapping. In Guix you define first-class package values as Scheme variables. These package values reference other package values, which leads to a lazily constructed graph of packages. This emergent graph can be used as a library to trivially build other tools like "guix graph" (for visualising the graph in various ways) or "guix web" (for a web interface to installing and searching packages), "guix refresh" (for updating package definitions), a lovely feature-rich Emacs interface etc.

\- Embedded DSL. Since Guix is written in Scheme---a language for writing languages---it was an obvious choice to embed the package DSL in the host language Scheme instead of implementing a separate language that needs a custom interpreter. This is great for hacking on Guix, because you can use all the tools you'd use for Scheme hacking. There's a REPL, great Emacs support, a debugger, etc. With its support for hygienic macros, Scheme is also a perfect vehicle to implement features like monads (we use a monadic interface for talking to the daemon) and to implement other convenient abstractions.

\- Graph rewriting. Having everything defined as regular Scheme values means that you can almost trivially go through the package graph and rewrite things, e.g. to replace one variant of a package with a different one. Your software environment is just a Scheme value and can be inspected or precisely modified with a simple Scheme API.

\- Code staging. Thanks to different ways of quoting code (plain S-expressions and package-aware G-expressions), we use Scheme at all stages: on the "host side" as well as on the "build side". Instead of gluing together shell snippets to be run by the daemon we work with the AST of Scheme code at all stages. If you're interested in code staging I recommend reading this paper: [https://hal.inria.fr/hal-01580582/en](https://hal.inria.fr/hal-01580582/en)

\- Bootstrapping. Some of us are very active in the "bootstrappable builds" community (see [http://bootstrappable.org](http://bootstrappable.org)) and are working towards full bootstrap paths for self-hosting compilers and build systems. One result is a working bootstrap path of the JDK from C (using jikes, GNU classpath, jamvm, icedtea, etc). In Guix we take bootstrapping problems serious and prefer to take the longer way to build things fully from source instead of just adding more binary blobs. This means that we cannot always package as many things as quickly as others (e.g. Java libraries are hard to build recursively from source). I'm currently working on bootstrapping GHC without GHC and without the generated C code, but via interpreting a variant of GHC with Hugs. Others are working on bootstrapping GCC via Scheme.

\- Guix System, the GNU system distribution built around Guix. Guix System has many features that are very different from NixOS. The declarative configuration in Scheme includes system facilities, which also form a graph that can be inspected and extended; this allows for the definition of complex system facilities that abstract over co-dependent services and service configurations. Guix System provides more Scheme APIs that apply to the whole system, turning your operating system into a Scheme library.

\- I like the UI of Guix a lot more than that of Nix. With Nix 2.0 many perceived problems with the UI have been addressed, of course, but hey, I still prefer the Guix way. I also really like the Emacs interface, which is absolutely gorgeous. (What can I say, I live in Emacs and prefer rich 2D buffers over 1D command line strings.)

\- It's what I want GNU to be. I'm a GNU hacker and to me Guix is a representative of a modern and innovative GNU. It's great to see more GNU projects acting as one within the context of Guix to provide an experience that is greater than the sum of its parts. Work on Guix affected other GNU packages such as the Hurd, Guile, Mes, cool Guile libraries, and led to a bunch of new GNU packages such as a workflow language for scientific computing.

On the other hand, although Guix has a lot of regular contributors and is very active, Nix currently has more contributors than Guix. Guix is a younger project. The tendency to take bootstrapping problems very seriously means that sometimes difficult packages require more work. Oddly, Guix seems to attract more Lispers than Haskellers (I'm a recovering Haskeller who fell in love with Scheme after watching the SICP lecture videos); it seems to be the other way around with Nix.

Having said all that: Nix and Guix are both implementations of functional package management. Both projects solve similar problems and both are active in the reproducible builds efforts. Solutions that were found by Nix devs sometimes make their way into Guix and vice versa. The projects are not competing with one another (there are orders of magnitudes more people out there who use neither Guix nor Nix than there are users of functional package managers, so there's no point in trying to get people who use Nix to switch to Guix). At our recent Guix fringe event before FOSDEM Eelco Dolstra (who invented functional package management and Nix) gave a talk on the future of Nix surrounded by Guix hackers --- there is no rivalry between these two projects.

\----

Now to the last question: How usable are they? I've been using Guix (as a package manager and as an OS) since 2014 on all of my machines and I love it. I have written hundreds of package definitions both manually and with the help of "guix import", which generates them for me (even recursively). If you're okay with Lisp it's not painful at all. I have experience with RPM spec files and Arch PKGBUILDs and I love how declarative Guix package definitions are in comparison. For well-behaved projects that's great. For projects that reinvent build systems or come with custom build instructions or that assume unreasonable things about the target system things can get pretty gnarly, though.

Guix differs in that you don't use shell snippets to describe the installation steps. This can be confusing for people coming from other packaging systems, and it can be a little uncomfortable having to express things in Scheme instead. On the plus side you have access to a much more flexible language and don't have to mess with low-level shell. You can write procedures and reuse them across packages, or you can abstract the whole build process so that all that is ever needed is a declaration like `(build-system python-build- system)'.

(Things that suck: packaging NPM/nodejs things. Guix folks are really into building things from source, and there's a cultural mismatch with NPM folks. There are workarounds but there's no silver bullet.)

</comment><comment><USER14> For those (like me) learning of Guix for the first time:

>"About GNU Guix

GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the kernel Linux, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.

In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per- user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language."

Sounds pretty amazing!

</comment><comment><USER15> Link to x86 64bit .iso image:

[https://ftp.gnu.org/gnu/guix/guix-system- install-1.0.0.x86_6...](https://ftp.gnu.org/gnu/guix/guix-system- install-1.0.0.x86_64-linux.iso.xz)

x86 32bit [https://ftp.gnu.org/gnu/guix/guix-system- install-1.0.0.i686-...](https://ftp.gnu.org/gnu/guix/guix-system- install-1.0.0.i686-linux.iso.xz)

Gleaned from [https://www.gnu.org/software/guix/manual/en/html_node/USB- St...](https://www.gnu.org/software/guix/manual/en/html_node/USB-Stick-and- DVD-Installation.html#USB-Stick-and-DVD-Installation)

</comment><comment><USER16> Is there a GUI/TUI for it? Like something akin to aptitude or at the very least muon?

And does GUIX/Nix has something similar to Recommended/Suggested packages in Ubuntu/Debian land? Or is each package an all-or-nothing kind of deal?

<comment><USER3> Guix has a very nice Emacs interface --- that's better than a bare TUI in my opinion. Even if you aren't a die-hard Emacs user the Emacs interface has a lot to offer.

There also is a web interface, but that's more useful for browsing the package collection than to install things.

I don't know what you mean by "all-or-nothing kind of deal". You can easily create package variants (thanks to first-class package record values that support field inheritance), but in my experience you rarely need that as packages are often composable at runtime --- you just install them into the same profile.

<comment><USER17> \- Package A recommends Package B, if the package maintainer judges that most users would not want A without also having the functionality provided by B.

\- Package A suggests Package B if B contains files that are related to (and usually enhance) the functionality of A.

\- Package A depends on Package B if B is a A can't work without B

Its possible for B to actually be optional but in fact be designated as required if A is built with options that require B.

</comment></comment></comment><comment><USER18> But...has it USE Flags like Gentoo's Portage?

And variable CFLAGS and CXXFLAGS for explicitely choosing to optimize whichever way i see fit, instead of using something generic? Individually, on a per package base? Like described here for example:

[https://wiki.gentoo.org/wiki/Complete_Handbook/Building_the_...](https://wiki.gentoo.org/wiki/Complete_Handbook/Building_the_system)

[https://wiki.gentoo.org/wiki/Safe_CFLAGS](https://wiki.gentoo.org/wiki/Safe_CFLAGS)

<comment><USER19> As far as I know, it does not have USE flags, but you can customize the compilation however you want, adding build options, patches, etc. They also provide binaries for a good amount of packages if you don't want to build some from source.

<comment><USER18> I see. But that is not the point. I can customize any compilation anywhere. But it is a hassle i can do without. I really miss the "automagic" of Gentoo because this feature was intrinsic to their package management. I'm watching Guix(XD/System/Whatever) since years, browsing the docs, reading this and that, and it seems to me like just another rpm, deb with some nice addons. And not too inviting at all, because who likes ghettos which ideologically shun this and that which unfortunately is part of my life? Anyways, interesting work whith reproducable bootstrapping in GNU Mes. (sigh)

<comment><USER19> It's not just like those at all... did you think that I was saying that you can just compile things manually or something? You can define build options and such for a group of packages using Guix; there just isn't an abstraction like USE flags. You can find more info at [https://ambrevar.xyz/guix- advance/index.html#orgc3c05c9](https://ambrevar.xyz/guix- advance/index.html#orgc3c05c9).

And I don't consider its other features just "some nice addons". It's easy to build things from source; in fact, it automatically does it by default if a binary isn't available. It's contained in a directory, you can roll back to a previous state, it's reproducible, everything can be configured through one file, etc.

Guix is one of the package managers most different from apt and such; if there's anything it's similar to, it's Nix, which IIRC it's based on/inspired by.

Also, I'm curious as to what it is that you do that they shun? Is it working on proprietary software or something?

<comment><USER18> Thank you for that link, i'll park that in some tab for later reading after skimming over. What i meant to say with shunning is exactly the thing with proprietary software. I need that to work. All i ever read up until now was handwavy referrals to some obscure "guix-channels". So i searched some, and found none. It's not that i can't mobilize some hardcore search machine foo. It's just that i don't want to do this anymore, because i feel it is wasted time, which ends into subscribing into some ghettoish cult, chanting askew "commercial baaaad, nooo goood, we better food...", ...while in reality i need to get things f...ing done by whichever means. Which meant Windows for the last few years. So, whenever i read about something interesting to me, considering to spend my free time with it, this annoys me to no end, because it feels like trying to make me jump through burning loops like some trained animal. I can't stand this sort of stuff anymore. Especially given the fact how much hardware only really works with binary blobs, at least when it's current, and not some obsoleted gear or niche systems. Anyways // ENDRANT (sorry)

</comment></comment></comment></comment></comment><comment><USER20> How does one pronounce "guix", anyways? Is it "goo-icks"?

<comment><USER21> It's a french spelling of the word "geeks" some devs told me.

<comment><USER22> Not according to the french wiktionary [1].

There is a Catalan word _guix_ however, where it means chalk. [2]

[1] [https://fr.wiktionary.org/wiki/geek](https://fr.wiktionary.org/wiki/geek)

[2] [https://en.wiktionary.org/wiki/guix](https://en.wiktionary.org/wiki/guix)

<comment><USER23> _Geek_ is a borrowed word in French, and the original English spelling is used. If you wanted to write a word that respects French pronunciation and sounded like "geeks" in English, you'd write it "guix", or "guiks". It is a bilingual pun.

</comment></comment></comment></comment><comment><USER24> I've been intrigued by nix then guix for several years now, but have yet to give either one a test run.

I understand some of the technical differences, but can anyone explain the implications of the license differences to me?

I know that NixOS is X11/MIT licensed, and that as a GNU project Guix is AGPL.

In practice, if I wanted to use Guix as a base system for hosting a proprietary SaaS website, would there be issues with that? Either way, is there an easier-to-read summary than the license itself anywhere?

</comment><comment><USER25> Guix doesn't package proprietary software.

<comment><USER26> Which is great. Means you have a clean install that's sure to be reproducible. There's always the option to keep your own channel of non-free packages if you really need them.

<comment><USER27> Proprietary packages may still be reproducible. Presumably, you verify a hash of the inputs (e.g. upstream tarball/binary and patches), and the output should still be bit-for-bit the same on any machine given the same inputs.

Not to mention that there are many open-source (as in OSI) packages that may not be distributed with Guix System because they use non-FSF-approved software licenses.

<comment><USER3> > Not to mention that there are many open-source (as in OSI) packages that may > not be distributed with Guix System because they use non-FSF-approved > software licenses.

This is not true; at the very least "many" is wrong in the above statement. Generally, there is virtually no difference between the OSI set of approved licenses and the FSF set.

Can you list examples of the many packages that would be considered "open source" (according to the OSI definition) but not also Free Software as per the FSF definition?

</comment></comment></comment></comment><comment><USER28> The hardest thing to understand here about Guix is exactly what it does, because there's only 3 tools out there that operate like this (that I'm aware of, at least):

\- GNU Guix

\- NixOS

\- Chef Habitat

These three tools have some common themes but ultimately accomplish different end goals.

Some common things:

\- They all provide a package manager that exists outside of the regular scope of your operating system.

\- They all bundle together your compiled application code AND configuration code AND runtime dependencies into one package, making it easy to just run your application.

Some differences:

Nix. [Edit: It was pointed out that the package manager Nix, is separate from NixOS, and this package manager can be run on any operation system). ([https://nixos.org/](https://nixos.org/)) ([https://github.com/NixOS](https://github.com/NixOS))

GNU Guix has a larger focus on reproducibility and archival properties of software. In other words, Guix uses it's ability to run software independently of your operating system as a way of ensuring authentic, realistic, and 100% portable applications. Guix wants to build your application FIRST, and ignore whatever problems your OS might present to you. It lets you build a development environment in a "clean-room" with the environment command. It also lets you write those configurations and environments using Guile programming interfaces and the Scheme programming language, which is super powerful. ([https://www.gnu.org/software/guix/](https://www.gnu.org/software/guix/)) ([https://github.com/pjotrp/guix](https://github.com/pjotrp/guix))

Chef Habitat is very similar to GNU Guix, except it also works for Windows packages. It's primary goal is so that you can build and deploy your applications completely independently of the constraints of your operating system or runtime environment. Just like GNU Guix, this makes it super awesome to take old applications that are "stuck" on old operating system environments and quickly port them to whatever modern OS or runtime format you wish. Like GNU Guix, it has a chrooted clean-room environment called the Studio and uses Bash/Powershell to allow you to build packages. Chef Habitat diverges from GNU Guix in that it provides a runtime process supervisor that has auto-update / continuous delivery capabilities, and also provides a gossip protocol so that applications can talk to each other and do things like leader election automatically. ([https://habitat.sh](https://habitat.sh)) ([https://github.com/habitat-sh/](https://github.com/habitat-sh/))

Overall, I think most people will be confused when they approach these tools because they've never used anything like them before. But once you get your hands in them you'll realize how awesome they really are.

<comment><USER29> Huh? Nix can run on other OSes. NixOS is just an OS built on Nix, the same way GuixSD is an OS built on Guix. Am I missing something?

<comment><USER30> Right, you don't need NixOS to run the package manager. The package manager runs on Linux and MacOS.

I've been using Nix for years, in dev and production, and haven't bothered to try NixOS yet.

[https://nixos.org/nix/](https://nixos.org/nix/)

</comment></comment></comment><comment><USER31> Any pointers/tutorial on how to get a gnome desktop up and running using guix?

<comment><USER3> The manual is really good, so I recommend looking through the installation instructions there. The installation image comes with a text-based installer where you can select GNOME.

(Personally, I prefer to install a bare-bones system and then reconfigure it to something fancier. This way I can get to enjoy the features of the Guix system much sooner --- including booting into older generations of the system.)

</comment></comment><comment><USER32> I don't have any use for it, but it gets brownie points for its use of Scheme.

<comment><USER33> Me, I'll wait for GNU AI to take over everything.

</comment></comment><comment><USER34> Does the logo look similar to the female reproductive system to anyone?

<comment><USER35> It looks like a V with bullhorns to me, which is weird -- what does the V symbolise in this project?

<comment><USER3> It's a GNU ;)</comment></comment></comment>


Ask HN: Pricing models – subscription or extend license - <AUTHOR>  I use the word license in the most open way possible.
I'm looking at designing and building an app (I won't go into too much detail here) and looking at pricing models - whether to have a monthly subscription or a "license" which you'd extend if you wanted to carry on using it (imagine buying a new sketchbook/journal/diary once you've filled it).
There has been a massive shift towards subscription based services e.g Wunderlist, StandardNotes, etc, and articles stating that they are now the only way to survive in the current market but I've always preferred to "own" the software even temporarily look at Affinity Designer and Sketch.
Is there a one size fits all when it comes to licensing or would it simply be based on the type of product and service? <comment><USER2> It seems like the best solution is to have monthly subscription model. That's what most companies are doing.

Personally, as a customer, I like the idea of paying for an update. Let's consider Adobe CC subscription. Currently it's standard monthly subscription, if you don't pay, you don't have access to it. I would prefer to pay only if I want new features and security updates. If I decide not to have them I could stay of the last version that I updated to. Of course to make sure that you earn enough you should have to have a limit of minimum 1 year subscription payed monthly, so nobody would scam you by buying one monthly subscription once a year.

This of course changes is cloud services are involved (storage, streaming, etc.). For those you need monthly subscription to be on)

<comment><AUTHOR> That's how I tend to feel, I'm just not sure whether a one off payment would work for this.

With AWS, storage and cloud storage is fairly cheap so that shouldn't be an issue.

</comment></comment><comment><USER3> The pricing model should be based on _customers_. Time spent thinking about it before building something and setting it in front of actual human beings and getting feedback and responding to that feedback with further design and implementation looks like productive work. It is not. It is just easier than building and showing and soliciting feedback and acting on that feedback until there is something people care about enough to pay.

It is also easier to build a payment system than something people are willing to pay for. Having to decide how to accept payment is a good problem have, but usually not the first one.

Good luck.

<comment><AUTHOR> To be honest that is one of the reasons for this question, to ascertain what customers would prefer between the two different options.</comment></comment>


EU 'Blue Card' to target skilled immigrants - <AUTHOR> http://news.bbc.co.uk/2/hi/europe/7057575.stm

<comment><USER2> "The scheme, which is more restrictive than the US Green Card, would need the approval of all 27 EU member states."

ROFL. Good luck with that.

</comment><comment><USER3> I'm not knowledgeable enough about economics yet but I find it strange that the same rules don't apply whether we're talking about capital, goods or individuals. If we agree that exchange benefits both parties, why not fully open everything? Why do "businesses demand graduates from India and China"?

<comment><USER4> It would be nice, and I'd like to see the world move that way, but there are practical issues. If a million people from China or India descended all of a sudden on, say, Denmark, there would be chaos.

<comment><USER5> I'm Indian. Got a grad degree from a school in the US. I work in the US. High Tech Migrant Labourer (TM). H1B. Skill Set: you name it I got it ;). Most Indians I know would stick to English speaking countries, but the Chinese are a little more flexible as they have to pick up a new language anyways. Indians don't really have as many reasons as the Chinese to leave the motherland and stay abroad as politically, it is a lot more "free" than China. Both countries are finding it hard to find graduates to employ even in their own countries. So the exodus is not going to happen anytime soon. For right or wrong _my_ perception is that most of EU is not socially evolved enough to become a multi-cultural community like the US (at least the big cities). Most of America is not either. France, no path to citizenship after generations of settling there? No thanks! So I think Denmark is safe for now!

But, OTOH, the good thing about being a high tech migrant labourer is aaah choices... choices.. :). If the dollar tanks, now there will only be more countries to choose from.

<comment><USER4> Like I said, I support the free movement of people, goods and money. I'm american and live in Europe, and being able to stay here legally was actually quite a hassle, so I have an inkling of what a problem it is for some people.

The practical problem though, as I said, was the large amount of people in a small amount of time that could potentially happen if you completely threw the borders open. 1 million people in India or China is a very small percentage of the population. In a country like Denmark (just as an example), it would represent 20% of the population. That's not likely to happen any time soon, but hopefully we will keep moving in that direction over time.</comment></comment></comment></comment>


U.S. FBI is leading an inquiry into the Twitter hack - <AUTHOR> https://www.reuters.com/article/us-twitter-cyber-fbi-exclusive-idUSKCN24H2PH <comment><USER2> One starting point is the domain the 'hackers' used in those tweets. It's inaccessible now, but a great starting point for further investigation. You would need pretty strong OPSEC to register a domain anonymously these days, even with so called 'privacy aware' registrars like Njalla et al.</comment>


Beginner Web Design Mistakes - <AUTHOR> http://blog.teamtreehouse.com/beginner-web-design-mistakes-avoid <comment><USER2> > _Modals and Pop-Ups - You've seen this before. You click on a link to a news > article or a blog post, and a gigantic modal pop-up window covers the > content. This makes absolutely no sense._

The first thing that popped into my head was Twitter, when you click on @someone and get a popup instead of just going to their full feed.

<comment><USER3> I actually kind of like that feature (if you can call it that). There are times when I am scanning through the feed and I see something interesting retweeted. I don't want to lose my place, but I am curious to see quickly who the person is that initially made the tweet. The popup is a quick way to do that without having to open another window or lose your place.

<comment><USER4> That's what the back button is for. I will take you back to where you were before you clicked a link, including scroll down the page to the correct position.

<comment><USER5> Unfortunately, it doesn't work with infinite scroll pages or other stateful types of sites.

<comment><USER6> Infinite scrolling is another thing that should be avoided.

</comment></comment></comment></comment></comment><comment><USER7> A 'sign up for our newsletter' modal pop-up when the user first arrives on a website is not a 'beginner web design mistake' for one simple reason that even websites made by beginners can't ignore: _They really work._ People sign up in droves. Many people have tested it. It's annoying as hell, but the fact is beginner website designers should learn to make effective websites that work for businesses, not just pretty ones.

<comment><USER8> They work on clueless and naive people.

If that's the audience you're after, cool.

<comment><USER9> That audience is some huge percentage of the internet userbase, because some huge percentage of people are "clueless and naive." So people who want to just make money off a widely read website would do well to do what works. Just like how in the mobile gaming space irritating pay-to-play/in-app-purchase driven "games" are the money makers, and people who make games in order to make a lot of money should probably make a game like that.

<comment><USER8> Well, everyone has to make their own ethical choices.

Personally, I don't need the karma of annoying the customers, regardless of how much it may seem to work in the short term. I mean, you might as well be Zynga if you're going to do that.

No company survives in the long term by annoying and/or abusing their customers.

<comment><USER10> Don't be a drama queen. Just because you "think" something doesn't work doesn't mean it doesn't at all.

<comment><USER8> I know it doesn't work with me.

Also, whether it "works" or not is completely orthogonal to whether it is ethical. Reading: it matters.

</comment></comment></comment></comment></comment></comment><comment><USER11> This article is a good example of content created only for the sake of SEO.

<comment><USER12> Not really. Treehouse is a learn-to-code training tool for beginners. A blog post about typical beginner mistakes is pretty relevant to the Treehouse audience.

</comment></comment><comment><USER13> Definitely +1 for both "Thinking Too Far Outside the Box" and "Mysterious and Complex Navigation." I experience way too much of each on a regular basis. A message I try to drill home is "people don't come to websites to be wowed, they come to either learn about something or buy something."

<comment><USER14> Just out of curiosity are there more options than that? I don't think I'd lump Imgur or Tumblr into either of those categories.

Edit: entertainment. Thought of it on my own...

</comment></comment><comment><USER15> Web Design Mistake: maybe don't use a 794,03 KB image on the top of your article?

<comment><USER16> Web Design Mistake: Display no more than 9 lines of text to your visitors because you managed to fill the rest of the screen with a persistent bar at the top, a persistent SOSOCIAL bar on the side and your clickbait links on the other side: [http://i.imgur.com/ruiBvN3.png](http://i.imgur.com/ruiBvN3.png)

<comment><USER17> Yeah, cause a 480px vertical on a desktop design is completely relevant to modern web development. /s

Protip: you don't _have_ to snark _every. single. article._ Lay off it already.

</comment></comment></comment><comment><USER18> Two of the five "mistakes" aren't always mistakes. Popups often work really well, as pointed out in another comment by onion2k. Long-form sales pages (i.e. walls of text) also really work in many contexts. Sure you want to execute both of them well, but the basic ideas aren't necessarily mistakes.

Two others strike me as not really an issue or too vague to know whether it was an issue. Do beginner web designers really never use any padding and just cram everything next to each other, pixel by pixel? Can't say I've seen it. And are they really thinking too far outside the box? What would this even entail?

I'll give them navigation issue, but I can't say they offered much insight for beginners to actually work from and improve their navigation.

</comment><comment><USER19> If the page is for something I want to read, then a wall of text is perfect.

If the page is not something I want to read, then there should be less writing, but also why are we having a disagreement about what's on your webpage if I don't want to read your content in the first place?

</comment><comment><USER20> If you're looking for a well-rounded education along these lines, two books I'd recommend checking out are "Don't Make Me Think" and "The Non-Designer's Design Book."

</comment><comment> at-fates-hands "Every beginner web designer and developer has done this one (myself included). They feel compelled to fill the page with interesting information and stuff for people to look at and click on."

Great point.

When you design a site, you should already have a solid idea of where you're trying to get a user to go and then use strategies to lead them there. Overdoing the front page with buttons and modals and shiny things that move doesn't help in that regard.

Probably the first and most valuable lesson in design.

<comment><USER21> This works fine if you don't have a marketing team to answer to or a CEO who's sister has just got 3/4 of the way through her JQuery class at JC and "has some ideas".

Also, this blog post comes from the perspective of a single use website. Treehouse, build a website. AirBNB, rent a pad, etc.. There are corporate websites out there with multiples of sub-companies and 100s of different product offerings all competing for space.

Putting up a full screen image and a button that says "Get Started!" is the easy stuff and isn't what I would consider the definitive example of good web design.

</comment></comment><comment><USER22> Interaction is no substitute for information.

\-- Me

<comment><USER23> I agree. The fullscreen background image, 10 words, and call to action button don't make me want to sign up for your product. If I can't find details about your product within a few seconds, I'm gone.

</comment></comment><comment><USER24> I'll add "menu navigation that relies on mouseover".</comment>


Ask HN: No money, can't find any jobs, what am I doing wrong? - <AUTHOR>

HN.
I am a semi avid reader, a programmer, and a college student in the midwest USA (Ohio).
I am in a bind.
I consider myself a frontend programmer, Html, Css, Javascript (mainly) and I primarily work on web apps. I use node.js for the backend, but I also know php (started with php web dev years ago). I am not a bad programmer, but I could be better (can't we all?).
For the past 2 months I have been living off of savings and petty cash primarily. I cannot find a job. With my location, I am pretty much confined to doing remote freelance work, which limits the positions substantially. However it is my understanding that front end developers are in fairly high demand. I must be doing something wrong. I know that I am a fairly good programmer, so I do not think my skill set is the limiting factor.
I don't have a github, I always just work on my own projects that I host, never spent the time (or really wanted to) put the code on github. I know a lot of employers look for that however.
I have a online portfolio/resume (past work, skills, about me, etc) all on one page.
I mainly don't know where to find jobs. I'm mainly limited to the Who is hiring threads on HN and craigslist job posts, neither of which have been very fruitful.
I'm going to need to get a non web dev job soon, which I'd rather not do. Is there something I'm doing wrong? Should I learn RoR or Python? Any thoughts?
Thanks <comment><USER2> Well, to be cold-called/invited to a job interview you have to be

a) known b) pretty damn good, but that's related to a.

Don't expect employers to flock to your door, seek them out pro-actively! All my previous jobs were found with me looking up places I'd like to work for, emailing my super polished CV to them, getting invited and passing their screens. I don't know about "a lot of employers looking for github", maybe the places you're targeting?

My experience - most of them don't even know what git or github is, yes, even in the web development space.

My suggestion is this: do it like most people - find places around your area you'd like to work for, craft a CV targeted around that job's requirements, but don't lie. Think of it as CV SEO or whatever. Email - wait for answers.

It's very important to have a unique CV for every employer you're targeting.

Assuming you know your stuff, you'll have no problems passing the screens.

Oh, and about learning RoR or Python - learn that only if you want to yourself, because there's still many many places offering PHP work, it's not as hip as some people would like you to think, but not as bad either.

<comment><USER3> I would add something that I guess is implicit in karolist's answer: I would not worry much about whether or not they are advertising a job. If they are, great! Apply for it. But if they aren't, poke around the company, find someone's e-mail address, and send them a CV and a letter which tells them that _you understand specifically what they do and are interested in their company_.

95% chance, they delete your e-mail without taking it seriously. But that's okay. (.95)^100 is small.

</comment></comment><comment><USER4> Don't write a cv/resume.

This advice applies to any person that is effectively "unknown" in the tech scene - that's 99% of us. A cv is useless for conveying who you are and what value you bring _relative_ to all the other thousands of people out there. A paper is a paper is a paper.

Therefore the first crucial piece for us unknown developers is to have Open Source projects on GitHub.

Companies don't want to see a GitHub profile because they love GitHub. GitHub profiles show _exactly_ what you can do, and provide proof that you've actually done it, as well as the how, why, when, and where.

You have to understand how powerful and uncommon it is to have working software out in the wild that a) works, and b) is Open Source for everyone to see.

a) is important because all employers need a person who can ship ; a doer. b) is important because it is proof of your knowledge and skillset. This includes design decisions, documentation, git commits, api documentation, design patterns, proper testing, and so on.

You are doing yourself a disservice by not having projects on GitHub, not because it's trendy, but because it is the only credible, fool-proof, tangible way to measure someone's coding ability _at a glance_. By the time anyone invests time to have you answer programming questions or code on a white- board, they are _already_ interested in you, so this is about getting them interested in the first place.

"Hello I am Salvatore Sanfilippo, I created <https://github.com/antirez/redis>

You see how completely badass that is?

The next crucial piece for we unknown developers is _honesty_.

I think a good software developer gets stuff done. If they don't know how to do something they can learn on their own. They are motivated to keep learning and keep doing a better job because they are passionate about their work.

I think employers agree with me and they look for this kind of candidate.

Therefore if you love programming, just be honest. If you don't know some things, just be honest. If you really want to work for _____, just be honest. If you think you are not good enough for a particular position but you _really_ want that position, just be honest.

I think having an _honest_ conversation with a tech-lead at any company will go millions of miles beyond submitting some piece of paper to HR.

Just be honest.

Are you looking for a job doing javascript? Think you are good at jquery but want to get into more complex stuff like backbone?

The problem is they don't know you and you don't know them. So offer to intern, offer to come on board for 2 months _to prove yourself_.

Software is a great field to be in, because its largely merit based. So use that to your advantage.

But you can't prove yourself through words.

You have to show it and do it.

best of luck.

<comment><USER5> While I agree that having a github is great for a number of reasons, I do not think it's a Resume/CV "replacement" when looking for "any" software job.

> A cv is useless for conveying who you are and what value you bring relative > to all the other thousands of people out there. A paper is a paper is a > paper.

True. Therefore if you're looking at integrating a Startup, it is great because educated developers might have the time to meticulously review every application. But when you're looking for a job, any job, especially in a more established company it doesn't work the same way.

Of course, if your github projects are "famous", say you created Redis (the 1% case), then it can act as a CV replacement. A replacement NOT because someone will dig into the actual code, but rather because they'll know you created this known thing called Redis (or they'll read about it on Wikipedia and realize it's a big deal)... so it's in a way your CV. But if your github only has random projects (which is the 99% case), it's actually quite hard and time consuming to jump into the code to evaluate an applicant's skill.

To better explain my point that a resume/CV actually makes the difference, let's look at it the other way around. Imagine you are a recruiter, you have 100 applicants, and you need to filter the list because you can't interview all 100 of them. Are you going to look into at everyone's repo?! No. Instead you will give a quick look at the CV to identify 'potentially' good candidates. Having a link to your github on the CV is a big plus at this point (independently of what it has), because it's different from most of the other ones (aka: you're special, more passionate about technology). Once the filtering is done, only then will you usually have the occasion to be heard through an interview. And it's at this point that you actually need to show you're real value.

Now I do agree that this system is flawed, but it's the game. If you want to maximize your chances, which you most likely do considering you have no options, you should play the game and get a solid cv/resume. Having said that, if you lack experience or content for your CV, personal projects (on github) are a good filler ;)

<comment><USER4> Good points all around. To respond to your main points:

"When looking for a job, any job..." Ideally we should find the job that we are most motivated to do our best work at. It's a win for both parties. So I would try to avoid "finding any job" if it all possible. Granted it's easier said than done but that's the whole point. You want a place that you can grow at and that you don't dread going to work everyday. I think that's super important for a healthy life. So we should definitely aspire to be picky where we do our work. Also specifically to the current tech industry ; we _can_ be picky. There is a ton of money in a ton of different kinds of companies in tech right now. Take advantage of it.

Secondly, regarding the concept of having a GitHub profile. I agree, the simple fact of a GitHub profile existing is pretty meaningless. I do agree that most profiles have bash profiles, incomplete projects, and a ton of forks. Yup that is meaningless. I should state that when we talk about "having a GitHub profile" I necessarily mean having completed projects that you've created, from start to finish, and that actually run in the wild. A GitHub profile is simply the most _relevant_ way to show of _these kinds of projects_. Sure you can link to the website your code runs on but I'd argue it's still better that you also Open Source the code so everyone can see your design decisions. You're right in that people aren't going to take the time to dig through your code, but what if the readme listed major stack components, and majore design decisions? Isn't that better than linking to a consumer- facing splashpage?

The key here as with anything, is that you market it correctly. A GitHub profile can be used to more effectively market skills and knowledge that a tech employer would be interested in.

I still contend that its actually _better_ to not use a resume to get a job. This forces you to find some other way to make an impression with the company you are interested in. Granted you need to zone in on companies you are interested in and you can't apply the "shotgun" approach like you can with a resume ....

but isn't that the point!?

</comment></comment></comment><comment><USER6> Other than networking, check out <http://careers.stackoverflow.com/jobs> and select the "Only telecommute jobs" option.

Also try <http://jobs.37signals.com> and look for "Anywhere".

You could also use <http://www.dice.com> or <http://www.authenticjobs.com/> and select the "Telecommute" option but I've never really had success with them.

The first two have been a good source for me. I'm currently in Japan and am still able to get interviews so being that you're in the US, it should be easy for you. (I also get a lot of people telling me that Japan is just too far away for working remotely with them).

I echo the comments Github. You don't have to put everything up, just a little bit to give people the impression of your skill level.

</comment><comment><USER5> Can we see your online portfolio? As that's probably the first contact with recruiters/potential customers, maybe something is wrong there.

</comment><comment><USER7> Post your resume on craigslist, even for areas outside where you live (such as the SF Bay area / Silicon Valley), this is how I got one of my early "gigs" that was an hourly part-time job working remotely. Its good to do this if you don't have a lot of opportunities in your area, such as if you live in smaller town / city rather than a large metro area. Once you get that first paying gig / job, the rest should come easier, from then on emphasize your work experience as generally companies want people with some paid experience.

<comment><AUTHOR> I have been doing this, some never get back to me, some do but in the end don't work out.

<comment><USER7> by not work out, you mean they never give you any work? I'm curious why, perhaps you just need to refine your approach, any idea what is causing them to lose interest?

</comment></comment></comment><comment><USER8> I'm surprised no one has mentioned using the resources at his college to get a job.

I'd expect he'd have much better luck showing up at his college's job fair and talking to a developer/recruiter in person who is looking to hire a college student than sending his resume somewhere online to compete with hundreds of other people. Research the companies beforehand so when you talk to the person you can talk intelligently. Have a friend/career services review your resume.

</comment><comment><USER9> I'm a frontend developer at a pretty cool company hiring frontend developers (full time or contract). We pay well if you can code well and produce work on time / be available. If you don't want to post your portfolio publicly, shoot me an email (in my profile) and I'll take a look & tell you more about the company I work for as well.

Out of curiosity, are you looking for freelance only or would you be open to moving to California as well?

</comment><comment><USER10> I'm guessing you're not looking to re-locate? If relocation was an option, I'd pick some hot-spot urban areas, and make your search geographic oriented. I would guess the majority of the companies that would employ you are based in a city, (especially if you're looking for work at a startup) and you'd have the best luck in SF, NYC, or Boston, as they're pretty techie. But that's just me, I'm not a big fan of Ohio...

<comment><USER6> He's in college so relocation is probably not an option for him at the moment.</comment></comment>


Firefox Add-on Changes - <AUTHOR> https://billmccloskey.wordpress.com/2015/08/21/firefox-add-on-changes/

<comment><USER2> It would be great if Firefox change engine to WebKit too.</comment>