HermiTux: A Binary-Compatible Unikernel - <AUTHOR> https://ssrg-vt.github.io/hermitux/ <comment><AUTHOR> I think there on the right track from a usability standpoint in making tools that will help build a minimal kernel by determining what system-calls need to be included based on the application. Pulling in the correct dynamic libraries is also important.

I envision a system that can use static analysis to chose system calls, find libraries (ldd), and perhaps even choose between appropriate algorithms (thread schedulers) all based on the particular program it is going to run. In other words Kernels that optimize themselves based on the program much like compilers optimize programs based on the various things like architecture. I think uni-kernels have great potential.

Also for system calls that are not security concerns or performance concerns why not continue to proxy them to the host kernel as Hermit core does?

<comment><USER2> Unfortunately a system like this can't work for every binary: system calls and dynamic libraries can't be statically inferred in all cases.

<comment><USER3> Could you please explain why they can't be?

It seems counter intuitive to me. It seems you're saying that static analysis cannot reach every branch of the program (and thus its underlying system libraries).

I'm surely missing something and would be grateful to anyone helping me out!

<comment><USER4> It is easy to write a function, that makes a syscall directly and not via well known paths in the libc or similar. And then the syscall number can be a variable instead of constant and determining that value statically means solving the halting problem. Q.e.d.

<comment><USER5> Since conservative approximation is still useful, halting problem doesn't matter.

That is, let's say syscall 1 is definitely used, syscall 2 is definitely not used, whether syscall 3 is used depends on halting problem. Including only 1 and 3 to unikernel is safe and better than including all of 1, 2, 3.

<comment><USER4> This works in trivial problems. Any moderately sized program I can imagine right now will result in an analysis that is equivalent to "this uses everything"

</comment></comment></comment></comment></comment></comment><comment><USER6> It's really nice work. I have to take issue with something in the paper [1]:

"First, hardware-enforced isolation such as the use of SGX or EPT is fundamentally stronger than software-enforced isolation (containers/software LibOS), as shown by the current trend of running containers within VMs for security"

I don't think that's true. High-assurance security used to demand products use as many hardware defenses as possible. That was good for a while. Then, the hardware started having serious problems we'd have to work around. They seemed to be screwing them all up at some point with MMU and virtualization working better than average (most tested). Muen went with decision to use just one mechanism to avoid multiple, failure modes with software written in SPARK Ada for verification of safety. It did better with Meltdown/Spectre than many. More problems coming in on HW side, including attacks focused on SGX.

I think their assumption is thoroughly refuted at this point for modern, complex hardware. I'd depend on the hardware as little as I can using as simple hardware as I can get away with. Then, build the software as strong as possible around the most battle-tested mechanisms to reduce number of changes needed. seL4 on ARM and Muen on x86 are examples. If one has a massive budget, then build extensions to hardware that make securing software easier. Then, do the same thing again building highly-assured kernels on those heavily- verified, hardware extensions.

[1] [https://www.ssrg.ece.vt.edu/papers/vee2019.pdf](https://www.ssrg.ece.vt.edu/papers/vee2019.pdf)

</comment><comment><USER7> How does Docker use such little memory?

A better link: [https://github.com/ssrg-vt/hermitux- kernel](https://github.com/ssrg-vt/hermitux-kernel)

The link in the article seems to be apps that use the kernel?

<comment><USER8> Docker's memory usage of the container is going to be pretty close to the same process running without the namespace. For the hello world they're testing, it's going to be ~ the size of the binary and libc. There's probably another MB or so hiding in Docker metadata, namespace metadata in kernel, etc. that "docker stats" doesn't account for.

<comment><USER9> depends.

take the hello world example. Correct me if I'm wrong, but if one runs it 1000 times in parallel in a single namspace and it will be using close to 1x memory (i.e. like it was running once, assuming the vast majority of memory would be shared), run it 1000 times in parallel in 1000 docker containers and its memory impact will be closer to 1000x (i.e. no shared memory going on).

</comment></comment></comment><comment><USER10> It's unfortunate, but unikernels are going to be the future - VS the present - until they beat containers in the only two things that matter: ease of use _and_ memory consumption

<comment><AUTHOR> > only two things that matter: ease of use and memory consumption

Those are seriously not the only two things that matter. Not by a long shot. Depending on what you are doing there are other serious concerns like security, OS Noise and other performance concerns. From the literature I've been reading security is a huge concern when deploying containers. From experience I can tell you that Dev-Ops with containers can be a nightmare and a half costing companies heavily.

Saying Ease-of-Use and Memory footprint is all that matters is serious misinformation that no research or other literature or anecdote supports.

That said, at least, ease of use is coming. There are some tools on the market right now that make Unikernels fairly easy to use Ops and BoxFuse come to mind.

<comment><USER10> I do share your vision externalreality, I'm just saying from an approximate, but factual, point of view, unikernels won't share a fraction of containers popularity until they can compete in the two areas I mentioned.

<comment><AUTHOR> Agreed, agreed.

</comment></comment></comment></comment><comment><USER11> I've always wondered, what is the overhead of an OS (say Linux), compared to a stand-alone binary? Maybe some here could answer the question: What kind of differences would you see for nginx on HermiTux vs Linux? Less memory usage, more requests? Also, what about a standalone web server operating system that just implemented a TCP stack?

How would the performance ande memory usage of those three things compare?

<comment><USER12> not a huge difference i think, at a high level the work involved is exactly the same. but there are a few differences.

raw system call overhead: this isn't alot, but in an i/o heavy application it shows up as a reasonable percentage of work.

general purpose network machinery: things like kernel thread context switches for interrupts and networking likely wouldn't be there in the more bare bones systems. also none of the firewall/packet filter/netgraph checks will be there. its also possible that a single application network service might revert to a pure polling model and avoid interrupt context switches entirely.

unix interface: your standalone web server interface might be very well written to not use the copying tcp read(), and use direct callbacks or thread handoffs instead of select/poll/kqueue

other system gunk: none of the usual daemons and their kernel state needs to be there, and they wont be waking up and stealing cycles from your service. you should expect a much tighter service latency

another factor at play here is that alot of the general OS paths have had substantial work on them (interrupt coalescing, thread scheduling, memory management etc). that kind of effort may not be replicated in the simple standalone version. so by throwing that away you're losing some of the good along with the bad (where the bad here is otherwise useful generality, not something really objectively bad)

as mentioned in the HT writeup, startup time can be vanishingly small if thats of importance to you.

overall there should be some modest performance gains, but really not enough to drive adoption solely on that basis. for me the real win is radically simplified management.

given that everyone is building/using management layers over OS instances in a cloud context - is it really useful to carry around that large amount of additional machinery to manage the per-OS configuration? if I can trivially build and deploy new instances and wire them into my service, do I need chef anymore? do I need to fuss with user permissions in a world where no one is really logging in?

why manage a firewall, which assumes that all sorts of random junk might be running and we need to implement a policy for safety. with tools like this I can construct a system which by construction only responds to requests for the service of interest.

do I need to maintain a shell environment for monitoring and debugability? maybe - but effective distributed deployments already use distributed monitoring and tracing tools that are arguably more effective - even for general purpose OS deployments.

<comment><USER11> I mean, ideally you could get rid of the performance hit from syscalls as you could run the app and the barebones kernel in the same address space. You could also get rid of pages, virtual memory, and have a very fast malloc implementation. read()/write() could also be super fast. In addition, you can get rid of the scheduler (assuming no threads) and a _ton_ of other complexity. Also the cpu cache lines would be hella consistent.

Of course, you're throwing away a _lot_. But for certain applications (like HFT), the potential benefits seem very attractive.

</comment></comment></comment><comment><USER12> this is a great approach. the standard unikernel approach of cutting above libc means you have to be portable against musl (or another library) and play with your build. not the end of the world, but it doesn't seem necessary.

</comment><comment><USER13> Very exciting, would like to see an orchestration layer working with this.

</comment><comment><USER14> Congrats on the MS and getting on HN front page!</comment>


Indonesia's palm oil fires emitted more greenhouse gases in a day than the U.S. - <AUTHOR> http://qz.com/528160/indonesias-palm-oil-fires-are-emitting-more-greenhouse-gases-every-day-than-the-entire-us/ <comment><USER5> Sliiightly misleading headline, although not incorrect in some ways.

For about a quarter of the year there are virtually no fires, another quarter (we're there now), there are a lot. Further, in most years the fires are much fewer than they are now, and we're now in a record year.

So the headline is true, but only for the worst part of a record breaking year. You can't extrapolate it. In general, say per year or per decade, the headline is false, and CO2 emissions are a topic that is spoken about in the context of such timeframes, not 'who emitted the most in a 30 day period in one particular year'.

Further, the comparison itself is misleading as the CO2 figures for the US (and all other countries, for that matter), only count burning fossil fuel (and producing cement). Not capturing emissions when fracking? Not counted. Millions of cows farting all over the place? Not counted. Agriculture? Not counted etc. That's why if you compare Indonesia to the US, Indonesians emit about 6 times less CO2 per capita. That's why it's a bit of a weird comparison. You're comparing one country's emissions within limited parameters, to another country's emissions from phenomena that fall outside of those parameters.

Anyway obviously it's a big concern nonetheless and a better comparison would probably be that this single industry approximately doubles Indonesia's fossil fuel burning CO2 output on average every year. That's quite excessive for just one industry (last I checked ~8% of exports, with exports at $200b on a GDP of $870b) and it doesn't have to be that way, palm oil can be grown (slightly more expensively) by simply clearing a forest rather than burning it and all the peat underneath. (the peat is really the issue, forest burning itself is often in large part compensated by regrowth)

<comment><USER6> > Further, the comparison itself is misleading as the CO2 figures for the US > (and all other countries, for that matter), only count burning fossil fuel > (and producing cement).

Some of the things you note that aren't counted should be counted. But burning trees should not. Those trees removed the same amount of CO2 from the atmosphere while they were growing that is given off when they are burned; it will eventually be absorbed by whatever is then grown there afterward. The same thing goes for most (but not all) agricultural processes.

The real problem is not the CO2 that's given off, but the CO, soot, and various other organic and nitrogen compounds. Better known as smoke, which fouls the air for critters, like humans, that breathe it. Any change in the greenhouse effect is incidental and temporary. That doesn't mean that Indonesia should not be required to compensate those whose air is fouled, if they wish to continue allowing this. My guess is that if they were forced to do so, they would suddenly find it much easier to enforce their existing law against this type of burning.

<comment><USER7> I call 'denier' on this.

The greenhouse effect is 'incidental and temporary' in the same way as a pandemic or nuclear war: if you're thinking in geological timescales and have no particular interest in the wellbeing of human beings.

Trees that are cut down (and their predecessors) may have been storing carbon for a long time, and whatever comes next may not store anything like as much carbon (or may be continually harvested and used).

<comment><USER6> I'm not denying the greenhouse effect, nor that most if not all of its modern increase is anthropogenic.

You need to go back and actually read what I wrote. The greenhouse effect, if any, induced by _burning non-fossil plant matter_ is incidental and temporary. In other words, on those geological time scales you cherish, as well as a human time scale, the net change in CO2 from burning such material is _zero_. The only way to make it not-zero is to render that land permanently unusable by any type of plant. Which is certainly possible, but not a side effect of slash-and-burn "farming". There's also the very strong possibility that whatever replaces that vegetation is actually going to grow faster, and thereby remove more carbon from the atmosphere than what was there before. Mature trees, in particular, don't grow very quickly.

This is simply a fact. One of us is in denial, all right, but it's not me. You need to get over your excessive fear-mongering; it's not helpful to the cause. Stick to the facts if you want people to believe you.

</comment></comment></comment></comment><comment><USER8> So interesting to follow the chain unintended consequences.

Trans fats make great muffins. But, oops, they happen to kill humans. So we ban them. Turns out palm oil also makes great muffins and doesn't kill humans. So, we burn down the ecosystem in Indonesia to make more of those delicious muffins and contribute to global warming.

Maybe we can just go back to using butter?

<comment><USER9> Except that cows are pretty environmentally-unfriendly too.

Sigh. There is no getting around the elephant in the living room: population. Either we control it, or the laws of physics will do it for us.

<comment><USER10> I hate this sort of regressive thinking. We can just come up with more reliable ways of producing food.

I expect food production to see a huge revolution in 10-20 years - <USER2> something like genetically modified simple organisms that are designed to produce specific nutrients - like specific protein or sugar or fat.

If you can design them to be energy efficient and work in low amount of space in a controlled environment (say a shallow pool of water + UV lamps or something like that) you can have huge factories that stack these "ponds" on top of each other working 24/7 pumping out nutrients.

Then it's just a matter of combining them in to food.

<comment><USER11> What's regressive about admitting that it's literally impossible to maintain a developed country standard of living for 7 billion people?

There are physical limits and laws of thermodynamics that no amount of innovation will be able to fix.

What is the point of continued population explosion? Satisfying some people's belief that reproduction is an inherent right?

<comment><USER10> >There are physical limits and laws of thermodynamics that no amount of innovation will be able to fix.

People have been crying about overpopulation since forever - like the Pink Floyd song goes "And if you survive till two thousand and five I hope you're exceedingly thin" \- we have the least poverty in history and the population is still growing. Sorry to burst your green bubble but we are nowhere near close to thermodynamical limits of sustainability on earth

>What is the point of continued population explosion? Satisfying some people's belief that reproduction is an inherent right?

Yes. This is the perverse reality that most of modern "environmentalist" arguments come down to "what I see as preserving nature is more valuable than people". Sorry buddy but if I had to chose between no more seals or not having children - well at least we have video footage of seals.

<comment><USER9> OMG, you really don't get it. This isn't about seals.

There's a classic puzzle that goes like this: you have a jar full of growth medium and a single bacterium of a species which divides twice an hour. One week later the jar is full of bacteria. At what point was the jar half full?

The classical answer is: 30 minutes before the end of the week. But the _real_ answer is that this situation is impossible, because after a week of doubling every 30 minutes the population would be about 10^232 bacterial cells, which is more than the number of sub-atomic particles in the universe.

It's not about thermodynamics, it's about math: exponential growth cannot be sustained in a finite universe (let alone a finite planet). Sooner or later we will hit a limit. The only question is whether that limit will be imposed by the laws of physics or whether we will choose to become the masters of our own fate and impose it on ourselves. Personally I prefer the latter option because the former will almost certainly be very, very unpleasant.

<comment><USER10> > Sooner or later we will hit a limit

Sooner or later sun will burn out, universe will expand in to nothingness, etc.

Those arguments are pointless - we won't reach those limits within our lifetime even with highest growth projections and who knows what happens after that.

But that's not what OP is arguing - baby seals - ie. "bio diversity" and "wildlife preservation" \- is more important to the modern green movement than increasing the standard of living for a large part of human population and hence the enlightened ideas such as forbidding reproduction and limiting resource use.

<comment><USER9> > Sooner or later sun will burn out

Yes, in about 5 billion years.

> we won't reach those limits within our lifetime

Between "our lifetime" and 5 billion years there is still a very broad range of possibilities. Maybe you don't care what happens to the next N generations, but I do.

<comment><USER10> > Maybe you don't care what happens to the next N generations, but I do

It's not about not caring - it's about not knowing what will and will not be relevant. As I've said before - people have been talking about population explosion since forever - we should be starving from 80s. All these people consistently ignore progress in their predictions.

You don't know what the dominant method for food production will be in 20 years or what will be the dominant energy source - as someone linked above the things I'm talking about are already starting. How can you predict what will be relevant in 100 years ? We should deal with problems coming in 10-20 years - we don't have the tools to deal with the longer term than that.

<comment><USER9> > people have been talking about population explosion since forever

No, that's not true. Thomas Malthus wrote his famous essay less than 200 years ago. The oldest human writings are only a few thousand years old. That's the blink of an eye in the grand scheme of things.

> How can you predict what will be relevant in 100 years?

Because I can do math. So I can understand that exponential growth cannot be sustained in a finite universe, let alone a finite planet. I can calculate how long we can continue at current (or historical) growth rates before we run into various limiting factors.

For example: the carbon biomass of earth is ~10^15 kg. The carbon mass of homo sapiens is about 10^11 kg. Our current doubling time is about 60 years. That works out to about 600 more years of growth at current rates before the biomass of earth consists entirely of homo sapiens. That's a hard upper bound on how long we have left if we don't slow our growth rate.

<comment><USER10> 600 years to figure out space colonization with efforts under way already and likely to happen in a 100 years ... I see that you're trying to make a point it's just not making any sense.

Honestly we have no idea how society will look like in 50 years with the advent of AI and such nobody knows what close future holds let alone 100 years - this "we're doing it to save the future" is like people talking how there's going to be unsustainable urban problems in 100 years with horses before the cars were invented - you think that limits you think matter (like biomass, or planet size, or w/e) are somehow intrinsically relevant and unsolvable - <USER3> but as far as problems go those are fairly straightforward on such a long timescale.

<comment><USER9> > space colonization

That won't help.

Suppose we manage to completely terraform Mars (extremely unlikely in just 600 years) and suppose that the biomass of Mars can be made equal to that of earth. It will only be one more doubling time (i.e. 60 years) before Mars is completely full as well. Then what?

> you think that limits you think matter (like biomass, or planet size, or > w/e) are somehow intrinsically relevant and unsolvable

No. I don't know what the limiting factor will ultimately turn out to be. It may be that we will eventually succeed in transmuting matter and turning the entire mass of the universe into homo sapiens. You can do the math on that too. That will get you out to a couple of thousand years. After that we would need to find a way to get around the law of conservation of mass. You have to be a pretty extreme optimist to believe we'll have that figured out by then.

<comment><USER10> I think we've gone so far from what I was arguing - we can talk hypothetical 500 year future - but that has no bearing on what we should do _right now_. We still have more than enough resources even with current technology to sustain current population growth for the foreseeable future - suggesting that we should start population control is just green bullshit these so called environmentalist bring up because they are afraid that their favorite animal is going extinct.

I'm not much in to that "native American wisdom" about how we should be one with nature and how we can't eat money - money = resources + capital + labor = solution to whatever problem you're facing given enough time. As far as I'm concerned we should be working on solutions to reduce our dependence on the ecosystem - climate change is just an a symptom of a bigger problem - <USER4> environment we depend on is fragile - the solution isn't praying that everything stays the same and maiming ourselves so we stay within some magical limit they think is going to "appease" the "balance of nature" \- we should be working towards replacing it with a more robust systems (eg. like controlled/engineered food production instead of relying on weather, pesticides, herbicides, etc. and hoping all goes well). This is what I mean by regressive thinking - instead of focusing on how these eventual problems could be solved trough innovation their solution is "stop doing whatever we beleive might cause that and hope for the best".

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> The article title is misleading though. It was for 1 day that they emitted more. So overall about 1% of us emissions if you average for the year or 100 times less.

<comment><USER13> How is it misleading? The title seems to be saying exactly that. Or was it edited?

<comment><USER14> The title implies continuous superiority of indonesian emissions, not that they out-produced the US emissions for a peak day (or 20, out of 365)

<comment><USER13> I don't see it. Maybe because I already knew that the fires aren't a continuous thing?

<comment><USER15> Title says 'per' day, meaning each day, implying continuity.

<comment><USER13> I guess it depends on what the complaint is about it being misleading. I thought the complaint was that the headline somehow implied they're _always_ emitting more, year-round. But maybe it's something else? Note that the original correction is _also_ completely wrong, as it says the fires emitted more for one day, while it's actually for a total of 26 days so far and probably set to increase further.

</comment></comment></comment></comment></comment></comment><comment><USER16> My SO is in Singapore, and she complains almost everyday about the smog.

While we in the US and other 1st worlders could do much to stem our pollution especially given our ability, the fight against climate change has to be a global fight, and not just the acts of a few willing nations.

</comment><comment><USER17> I was just in Singapore for the past few days, after living there for several years. It really is awful this year.

The haze did make the laser show from the top of the Marina Sands really spectacular. ;-)

<comment><USER18> Are there any engineering efforts[1] being proposed or actively worked on by Singapore to solve this issue? Every now and again I hear about the hazes forcing everyone in Singapore to wear masks and stay indoors as much as possible until the hazes dissipate. That state should be unacceptable for a first world city.

[1] Like, a giant sci-fi ocean-fan... Or a military solution of invading their neighbors and running things better.

<comment><USER19> Do you understand how small Singapore is? (Not trying to be snarky)

But yeah, they are not invading anyone anytime soon.

<comment><USER18> Yeah, but Israel is also tiny and can still kick the ass of everyone else in the Middle East. Similar to Israel, Singapore has a lot going for it with respect to modern warfare that makes up for its population and landmass deficit. I agree that total invasion is probably very unlikely in the foreseeable immediate future.

<comment><USER19> Israel - 8522 sq miles

Singapore - 278 sq miles

You are off by quite a bit there. Besides, whether you are willing to admit it or not, a LARGE part of the Israeli swagger is the understanding that they have the full might of the US army behind them (be it right or not). Singapore does not have an equivalent relationship.

</comment></comment></comment></comment></comment><comment><USER20> palm oil is a terrible, terrible thing. If you have travelled at all to central america or asia, you know what i mean. (ok yes, you got me... traveling to asia isn't so hot for the environment either)

Wherever you think a jungle should be, you see palm trees. As far as the eye can see.

If you care about this. And you probably should. Then have a look at the ingredient list & don't buy products with palm oil.

<comment><USER21> Don't forget that palm oil is sometimes used in animal feed and will not be found on packaging.

A family member recently switched from buying margarine to butter after reading about the environmental effects of palm oil. Our dairy farming uncle then reminded us that they use palm oil in the feed for the animals to aid in managing digestion and fat levels.

</comment></comment><comment><USER22> And, though environmental groups are loathe to discuss it[1], animal agriculture is responsible for 18 percent of greenhouse gas emissions, more than the combined exhaust from ALL transportation[2].

[1] [http://www.cowspiracy.com/](http://www.cowspiracy.com/)

[2] [http://www.fao.org/docrep/010/a0701e/a0701e00.HTM](http://www.fao.org/docrep/010/a0701e/a0701e00.HTM)

<comment><USER23> All animal-produced carbon came from the air. Converting CO2 into more interesting greenhouse gasses generates a constant offset from the "natural" state. It's irrelevant in the long term view.

<comment><USER24> Not all greenhouse gases are the same. One of the unfortunate things about agriculture is that it's a major source of nitrous oxide, via fertilizer decomposition, and methane, via mostly cattle. Both N2O and CH4 are drastically more potent GHG than CO2, essentially because the atmospheric concentration of those gases is already much lower, so the proportional impact of N2O/CH4 emissions is much greater.

CH4 emissions from agriculture could be potentially reduced by improving manure treatment on farms (because untreated manure releases CH4) and regulating feed quality. Both have the side-effect of higher meat prices. N2O emissions are harder: you'd have to stop using nitrate-containing fertilizer.

<comment><USER25> CH4 emissions could also be greatly reduced by switching from cows to marsupials. Emissions are not zero as sometimes claimed, but research on wallabies [1] found emissions "between 25 and 33% of what can be expected from ruminants fed the same diet".

[1] [https://www.animalsciencepublications.org/publications/jas/p...](https://www.animalsciencepublications.org/publications/jas/pdfs/90/4/1364)

</comment></comment></comment></comment><comment><USER24> Basically all vegetable oils are the same; palm oil is actually more efficient than any other crop that grows in Indonesia. It would be clearer, in my opinion, to say that Indonesia's vegetable oil fires emit [...], which prevents the interpretation some people apparently take where they buy coconut oil instead. Coconut is only better because it's expensive but if everyone used coconut oil it would be way, way worse than palm oil, because it takes three times the land area of coconuts to produce the same amount of oil as oil palms! If they used soybeans, it would take _six times_ as much land to produce the same amount of oil.

In other words, the only way to lower demand for palm oil is to lower the demand for _all_ oil. In my opinion, the best way to do that is to kill the perception of biofuel as sustainable. Eating food is bad enough -- all agriculture is bad for the environment -- but burning it is ridiculous. With the exception of biofuel avgas (which is a tiny proportion of the market) electricity is superior in every way.

</comment><comment><USER26> I was just looking at [http://epic.gsfc.nasa.gov/epic- archive/png/epic_1b_201510210...](http://epic.gsfc.nasa.gov/epic- archive/png/epic_1b_20151021041711_00.png) and wondering what all that smoke was.

</comment><comment><USER27> Fact: Singaporeans own and operate the burning palm oil plantations via Indonesian shell companies and labor. (Source: Horse's mouth)

</comment><comment><USER28> Someone please come up with a butter that uses only algae produced inputs. You'll save the world.

</comment><comment><USER29> I find that hard to believe given that the way US farmers harvest sugar cane is to burn the entire field off.

[https://google.com/search?tbm=isch&q=sugar+cane+burn+field](https://google.com/search?tbm=isch&q=sugar+cane+burn+field)

</comment><comment><USER30> Burning trees doesn't actually change the atmospheric balance at all. Every tree releases its carbon, either by being burned or when it dies by rotting. It's effectively a non-trapped part of the atmospheres circulatory system. Remember trees breath the stuff in and eventually they exhale. The problems only crop up when you extract trapped hydrocarbons from underground and burn those. Oil and Coal bad, Tree's not so much.

<comment><USER31> Sort of. It would be nice if we could sequester the carbon already in the air in trees. The benefit is two fold: More trees, and removal of carbon that is already in the air from burning fossil fuels.

<comment><USER32> You cannot just infinitely accumulate trees. In a steady state, forests neither sequester nor release carbon.

<comment><USER14> > In a steady state, forests neither sequester nor release carbon.

In a steady state, forests are carbon stores, same as coal veins, oil reservoirs or methane clathrate.

</comment></comment></comment></comment><comment><USER33> This is why I don't buy into cap and trade and other expensive systems for the US to reduce its emissions. Compared to emerging economies, our emissions are already dramatically lower. It's the 2nd and 3rd world that needs to get in line (China most of all).

<comment><USER34> Yes, it would be terrible if we did all that work to improve the atmosphere for nothing.

[http://i.imgur.com/kUCPeBo.jpg](http://i.imgur.com/kUCPeBo.jpg)

<comment><USER35> Come on, that's incredibly disingenuous.

Of course it's not terrible to improve the atmosphere. But you're making it sound like all methods are equivalent; when there are limited resources to address the problem, they need to be allocated accordingly.

It's a similar situation to water in California -- yes, everyone should cut down on consumption. But the single-family mega-mansions using as much as 90 normal residences [1] cutting 10% of their water usage has a much bigger impact than an average residence cutting 10%.

Edited:

If a billion dollars spent in the US reduces US emissions by 5%, and US emissions and emissions from these fires are equivalent, and it costs less to incentivize Indonesian / Malaysian palm oil producers to stop burning peat forest and reduce emissions by 5%, we should be doing that instead.

[1] [https://www.revealnews.org/article/the-wet-prince-of-bel- air...](https://www.revealnews.org/article/the-wet-prince-of-bel-air-who-is- californias-biggest-water-guzzler/)

Original before edit: If the US could spend a billion dollars to reduce our carbon emissions by 5%, or could spend a billion dollars paying Indonesia & Malaysia to stop setting palm oil on fire and reduce THEIR emissions, the results are not equivalent. The latter is 200x more effective. [the 200x was from a misreading of the article]

<comment><USER13> How is it 200x more effective to reduce the emissions of Indonesia and Malaysia by 5%? These fires exceeded the emissions of the US for 26 days and otherwise the US far outweighs these countries when it comes to emissions. If the choice is 5% of ours or 5% of theirs, surely 5% of ours produces a far greater effect.

<comment><USER35> You're right, I must have misread the original article while composing my response. This is what I was remembering:

"Taken together, the impact of peat fires on global warming can be more than 200 times greater than fires on other lands."

<comment><USER13> It sounds like the original article may have greatly overstated the emissions from these fires. I came in after it got fixed so I don't know.</comment></comment></comment></comment></comment></comment>


Unified Engineering I, II, III, & IV (MIT OpenCourseWare) - <AUTHOR> http://ocw.mit.edu/courses/aeronautics-and-astronautics/16-01-unified-engineering-i-ii-iii-iv-fall-2005-spring-2006/ <comment><USER2> Unified is one of the few classes known around MIT by name rather than number. Such a distinction is reserved only for classes with a reputation for being especially difficult and time consuming.

The three that come to mind immediately are

\- Unified (occasionally, "unifried")

\- Junior Lab (8.13/8.14), a physics course in which, among other things, you essentially replicate the most famous physics experiments (Millikan's oil drop experiment, for example). This course is such a bitch that the Physics department offers a version of the major that is mostly the same save that you don't have to take Junior Lab (8B, aka weaksauce, aka I double majored in physics and something else). This is a good candidate for hardest undergrad class at the Institute.

\- Integrated Chemical Engineering, aka "Ice". While it's spoken about in hushed terms by those few who take it, my suspicion is that it's not actually as difficult as junior lab.

To give you some context regarding how much work something has to be to qualify, there are classes in EE/CS that take up, by student reports in the "underground guide" course evals, >40 hours a week of lab time, and those are generally _not_ known by their name. In other words, full time job type time consumption (from one of your probably four or five classes) doesn't qualify for call-by-name status. Yowza.

<comment><USER3> How does that work? How many hours a week do you need to spend for 4 courses? Or is one supposed to focus in 1 or 2 courses if studying one of these?

Are there any known people who go to these hard courses without spending as much time as supposedly required?

<comment><USER2> _How many hours a week do you need to spend for 4 courses?_

As you'd expect, it varies substantially person to person. Nominally, each course should take up 12 hours per week, including time spent in class ( _n_ units means _n_ hours per week spent on the class). In practice, it can be anywhere from 50% to 300% of that or more. Most people at the extreme top end of the range end up dropping the class, so the top side is pretty well bounded.

 _Are there any known people who go to these hard courses without spending as much time as supposedly required?_

Sure. When I was a TA (for an advanced control theory class), there was a huge range of time spent. Some people never showed up for class and did great; others came to every class, recitation, and all of my office hours (that alone constitutes ~10 hours per week) and reported spending another 6 to 10 hours on each problem set, and probably double or triple that on each lab.

Most of my undergrad career I took 5 classes a term, and I did my absolute best never to study from Friday afternoon until Sunday afternoon. As long as I stuck to my schedule, it was completely doable. Of course, I skipped classes and recitations that I found unhelpful in order to reduce wasted time.

</comment></comment></comment><comment><USER4> Having taken Unified more recently than when the OCW material was posted (I took it fall 09 to spring 10), hopefully I can clarify more how it actually works. Unified I and II are taken concurrently sophomore fall as a student enters the aero-astro department, and III and IV are taken the following spring. You learn the material equivalent to the four intro MechE (thermo, structures, fluids, and controls), but it is taught concurrently and totally integrated. There are weekly problem sets and labs which combine 2 or 3 disciplines, and then a weekly exam which focuses on a single discipline (imagine having a 2 hour midterm exam every week). And each semester also has a culminating project which combines all of the disciplines as well.

That said, we call it unified because its actual course numbers are unwieldy (16.001-16.004); while the material is challenging, the real difficulty lies in having four classes thrown at you at once. I can't say whether its any more challenging than J-Lab or 100B, having not taken them, but I do know I am so glad to be done with it.

</comment><comment><USER5> Wow! Sounds terrible. I enjoyed my math and computer science courses ten time more than engineering ones. I know unified or interdisciplinary courses are supposed to model the real world, or prepare students for it, but if I wanted the real world, I wouldn't be in college. I much prefer courses based on individual pure disciplines.

<comment><USER6> I think there's a misunderstanding about how the class actually works.

First off, this is for students in Aero-Astro program. It's not something that all engineers take; it's simply the starting courses for the aero astro people.

Second, even though the name suggests that it's some course that tries to teach you the intersection of all the topics, it's actually teaching you the union of the topics. From the course overview:

"Over the course of each semester, students engage in seven disciplines of study, listed below. Each discipline is taught for a fraction of the semester, through a series of lectures. When one discipline concludes, students are quizzed and begin a new discipline."

Similarly, if you look at the calendar ( [http://ocw.mit.edu/courses/aeronautics-and- astronautics/16-0...](http://ocw.mit.edu/courses/aeronautics-and- astronautics/16-01-unified-engineering-i-ii-iii-iv- fall-2005-spring-2006/calendar/) ). You see that the students are essentially taking each sub-course separately.

It's more for scheduling convenience and to have the students up and running with all fields in Aero-Astro than to do some grand unification of these topics.</comment></comment>


(un)clrd - the world wide web in black and white - <AUTHOR> http://www.unclrd.com

<comment><USER2> I've noticed that even the most frivolous of websites feel somehow dignified when viewed from my kindle (which forces them to appear in black and white). I'd be interested to hear how using this long-term changes one's web experience.</comment>


Ask HN: How to update a large network of computers - <AUTHOR>

I am working for a company that has several thousand stores located in a large geographic area. Every time data changes have to be delivered to the stores (around 500MB each) there are about a dozen servers transferring the info to each individual store. As you probably imagine it takes a long time to do it and it requires a lot of bandwidth. It will be faster if the stores could be updated from other stores, specially if they are close from each other. Do you know of any software that can help us do it. May be some type of mirroring or maybe git or some other version control system work for it. Any suggestions? <comment><USER2> A friend of mine told me this was a Google interview question. Anyways, I'd recommend taking a look at this:

 _The Frisbee server uses a custom multicast protocol to distribute highly- compressed disk images to consenting clients. The Frisbee client is a multi- threaded marvel that receives, decompresses, and smacks data down on your hard drive, really, really fast. Frisbee can be used to install complete disk images or single partition images._

\- <http://www.cs.utah.edu/flux/papers/frisbee-usenix03>

\- <http://www.emulab.net/software.php3>

</comment><comment><USER3> <http://en.wikipedia.org/wiki/BitTorrent> (i would link to the protocol but the link doesn't show up correctly here)

there are probably better options, but this one is already implemented and likely wouldn't be that hard to make work for your situation. might require you writing something yourself to suit your needs, or you might be able to find a turnkey solution.

<comment><AUTHOR> Ah, thanks I will look into it

</comment></comment><comment><USER4> Some other thoughts:

You mention data changes. So what about sending just the changes?

What is the real problem? That it takes a lot of time? Or that it requires bandwidth?

If downloads are slow, are your central servers overloaded? What about putting the data on a CDN or Amazon S3?

<comment><AUTHOR> The time.

<comment><USER4> Sounds like you simply don't have enough bandwidth then. Fortunately that is an easily solvable problem in 2008 :-)

</comment></comment></comment><comment><USER4> Assuming these stores are behind DSL ... DSL upload speeds are usually terribly slow. Are you sure that it would actually be faster than downloading from some central server?

<comment><AUTHOR> I think so, even if the DSL upload is slower, we would not have the bottle neck in the central servers.

</comment></comment><comment><USER2> Here's another useful tool I just remembered.

<http://saf.bio.caltech.edu/nettee.html></comment>


Chapter Summaries of Geeks Bearing Gifts by Ted Nelson - <AUTHOR> http://geeks-bearing-gifts.com/gbgContents.html

<comment><AUTHOR> These are just summaries but contain some interesting quotable thoughts:

 _Many tekkies think all structure is hierarchical, and have arranged not to see any other kinds._

 _people are told that organizing hierarchically is "thinking logically", though it means cutting many connections and associations to select a few. Many technical people believe this is correct and necessary. However, essayists work differently._

 _The universe officially begins on Jan 1, 1970 (when Unix time kicks off-- now the official timing system of most of the computer world.)_

 _The PARC guys are first to have bit-mapped screens with pretty fonts, which electrifies all the visitors. They dismiss the Engelbart and Xanadu notions of connection and instead go after appearance._</comment>


Chinese shanzhai counterfeiters practice customer development - <AUTHOR> http://blog.ablepear.com/2011/06/chinese-shanzhai-counterfeiters.html

<comment><USER2> Read Jan Chipchase's essay "The Rise of the Super Fakes" for a lot more background to this sort of phenomenon: [http://janchipchase.com/content/essays/the-rise-of-the- super...](http://janchipchase.com/content/essays/the-rise-of-the-super-fakes/)</comment>


Crowd sourced tornado early warning app - <AUTHOR>

I got pretty tired of watching people dying because they didn't know tornados were headed their way — that's about as terrible a tragedy as we can get given that we have the technology to prevent it. So I did what any developer would: wrote an app.
Tornado Alert is a community-driven tornado early warning system. Alerts from news sources can take several minutes to appear, and if you lose power you may not have access to the news. With Tornado Alert, any user can submit a tornado warning to other users within 10 miles that there is a tornado close to them. Alerts are normally delivered in under 5 seconds — about 60 — 100 times faster than news organizations tend to report them.
The app is, and will remain completely free, and it only gets better as more people use it. Currently Android-only. iPhone version is pending.
https://play.google.com/store/apps/details?id=com.silverwraith.tornadowatch
http://silverwraith.com/blog/2012/03/tornado-alert-app/ <comment><USER2> Email me when the iPhone version is ready. Address in profile.

<comment><AUTHOR> Certainly will!

</comment></comment><comment><USER3> Most of the people who died from tornados over the past few months _knew_ the tornados were headed their way or were in the vicinity. The problem was that they were unable to leave their homes in time because the tornado touched down too close, rendering it more dangerous to leave for a secure shelter (i.e., malls or schools, which must be fortified against tornado damage) than to simply remain put and hope the tornado(s) missed them. The death toll in the Henryville outbreak in early March was caused by a supercell storm system which produced a large number of F4 multiple-vortex tornados (one F4 tornado surrounded by numerous smaller tornados of varying strengths). Multiple-vortex tornados are especially dangerous because they affect a much larger area.

In the Midwest they use tornado warning sirens to alert the populace to tornados. The sirens have several forms of power and are really freaking loud. They're also extremely quick to sound these alarms, since they've had decades of practice at this. They use a combination of sources for this, so that the alarms are usually sounded within seconds of a tornado sighting.

The problem in a nutshell with this app is that anyone who does not hear the tornado warning siren will not be in a position to notice the alert from the app. Also, without a mechanism for updating the tornados, it may actually cause more harm than good: for example, if tornados are not cleared from the app quickly enough, people may be deterred from seeking shelter by the presence of a tornado that is no longer there.

<comment><AUTHOR> You're partly correct. (fwiw, I will in an area that gets tornado producing storms and I know just what you mean about the sirens.)

There are multiple problems which I'm trying to address here:

First is that of warning. The sirens are great, and they do mostly work. Meteorologists do a fantastic job of predicting storms and their velocity, but getting that information out is _hard_. If I'm asleep and I hear the sirens, that acts as a general warning. I can dive into a basement or tornado shelter, but then getting further information is difficult. Yes, you can buy self powered radios, but you know that many people simply don't. But everyone will cling the to their phones like they're made of gold, so we should make use of that.

Second is getting information back out. An upcoming feature is to report back to places like Facebook, Twitter, and other networks that you're close to a tornado. This lets your friends and family know what is going on, and to many people this is important too.

Third is more information. Laura Myers at Mississippi State University has conducted interviews with several thousand people regarding their behaviour during a tornado watch. The striking thing is that everyone wants confirmation before they act. Sirens alone aren't enough for most people, they want more information. They want to know they're _directly_ in the path of real tornados. This app is here to help bridge that gap. If the sirens go off and people around are reporting that real tornados are touching down, I hope this helps give those people even more motivation to get moving to their safe spot. The sirens SHOULD be enough, but we all know they're not and human behaviour doesn't work like that :-)

So, at the end of the day, if this helps save even a single life, I think it's worth it. It won't be able to save everyone, but every bit helps, and this lets us all help our neighbours, and our community.</comment></comment>


Help HN: Developer laid off 5 days before Christmas, have kids - <AUTHOR> Hello HN,
I was just informed that a key investor pulled support for a startup I am working fulltime for. Thus, people are being laid off 5 days before Christmas. Bummer.
I am reaching out to the community as I am on the hunt for Developer-related position.
About me: Berkeley Grad, 7 years of development exp, 4 years at startups. Held titles: Developer, Sr. Developer and Lead Developer. Great team-player, active communicator, can step into leadership as needed.
Skills: Ruby, Rails, Sinatra, MySQL, Postgres, SQLServer, API's, JS, HTML5, PHP, Python, Linux system admin (AWS, Linode etc), DBA, Product Development, Team leadership
Experienced in domains: Ecommerce, Saas, Social API's, Analytics, Finance, Health IT
Currently Learning: Objective C, Node.js
Seeking: Remote Fulltime opportunity, willing to travel occasionally. I am great as a technical co-founder in early stage scenarios, helping to define product and rapidly build it. Also great as part of a dev team. Open to possibilities.
Shoot me an email at: firstname.lastname@example.com if you have any leads or want to talk about opportunities.
Thanks and Happy Holidays!
EDIT: I am located in the Midwest about 2.5 hours from Chicago.
I greatly appreciate the heavy response to this. This is a great community to be a part of. <comment><USER2> Not sure why you are concerned. A cursory look at your past experience tells me you'll have no issue finding work.

Enjoy the time off for the holidays, spend some time with the kids, and start looking for work in January.

<comment><USER3> OP's spouse may be somewhat less confident. "See honey, HN doesn't think I'll have a problem! Look at all these emails! We'll figure something out."

Such demonstration is especially important if said spouse was skeptical about the start-up foray in the first place.

N.B.: Perfectly valid motive for posting. And not one that invalidates the inquiries.

<comment><USER4> Funny story, so when I left Google I was thinking, I am going to take a break, maybe take the summer off, recharge the batteries, Etc. My wife says "Well we are in a recession and who knows if there even are jobs out there? At least let your network know you're available." And I did, and that was how I met Rich Skrenta and got to talk with him about his amazing insight into the problems of search and why those problems were killing Google's product and what we could do to capitalize on the post-exponential growth world of the web.

So I find myself agreeing with both the 'take time off' and 'let people know' advice. Opportunities flick in and out of existence all the time, so letting people know is good, taking time off really helps you restore balance if you can afford it so taking a break is good too. If you have CORBA so you can keep your benefits uninterrupted, then recharging has a lot to offer.

<comment><USER5> s/CORBA/COBRA/

Or, "you know you're a programmer who was alive in the early 2000's when...."

<comment><USER6> Both are equally daunting and ultimately expensive.

</comment></comment></comment></comment></comment><comment><USER7> This guy will have no problems finding work. But as a hot life pro tip for fresh grads: keep 6 months expenses in the bank. Minimum. Don't spend on any ++ till you're set with this base safety net.

<comment><USER8> Would you change that suggestion if the fresh grad had near 100k in loan debt, some of which was private and high-interest? The benefit of 10k sitting in savings when it could pay off a savage Chase loan seem less great.

(To be explicit, that person is me, and I tend to throw all buffer money right at student loans before they grow like a hydra, faster than I can kill them.)

<comment><USER9> I did the damn-the-emergency-fund-full-speed-ahead loan repayment plan myself. You're basically gambling that you won't suffer a cash shock. That can be a reasonable gamble if you are e.g. well-insured, have very stable employment, have family support, have other income streams, etc etc etc. Otherwise, you'd consider the marginal 10% APR or whatever you're paying an insurance premium against a cash shock.

There is no circumstance where student loans will grow when you are actively making scheduled payments on them. Your balance will decrease monthly if you make your normal payments. Just mentioning that for sake of clarity -- some smart people I know don't necessarily have a lot of personal finance knowledge. Your loans will only grow if you either default on them or do something like triggering one of the income-contingent payment plans (which are a _lot_ less good of an idea than people usually think, BTW).

Unsolicited financial advice: go to the institution you deposit your paychecks in and ask about consolidating student loans. (Another option, if you've been diligent about building your credit history, is taking a CC cash advance for a year, or take an unsecured loan. I'm getting unsolicited offers for either "1% fee, 0% APR for 12 months, then normal interest" from my CC at BoA or "9% interest, no fees" for signature loans from Discover at the moment.)

<comment><USER10> "I'm getting unsolicited offers for either "1% fee, 0% APR for 12 months"

Lotsa fine print in those offers as far as what happens if you miss a payment (interest rate could jack up and retroactive things might happen). May or may not be the case in the one you received. I remember always getting offers of free financing on things for a year and if you don't pay off at the appropriate time you owe all the interest retroactive.

In any case, someone wanting to follow that advice really would need to read _all_ the fine print and _understand_ all the fine print before making any decision. I wonder how many people could do that.

<comment><USER11> Indeed; these teaser rates make money for the banks when most people who take them snap up to the higher rate (by error or simply keeping the balance after the promotional period).

It's best to only take them when you can set up an automatic monthly payment, and zero the balance before the higher normal rates return.

(Personally, I'd also make it illegal to advertise "0% for 12 months" if accompanied by "3% transaction fee" on the insider/fine-print. That makes the effective 12-month rate about 3%, which should be the headline. But banks, lotteries, and perhaps even government schools have an interest in keeping most people from being too good at time-value-of-money/expected-return calculations.)

</comment></comment></comment></comment></comment><comment><USER12> Everybody enjoys a good Christmas story so after you get that new job somewhere early next year, as seems a given, do come back here and tell us where you ended up :)

</comment><comment><USER13> Sending an email now -- I note that you didn't state your location, so not all of it may apply.

Edit: Acchile0 is probably right. I doubt you'll have a tough time finding meaningful employment, but I completely understand the nerves that come along with having just dumped a ton of money into your Christmas shopping at probably the worst possible time, as people are generally not hiring at times like this.

Christmas is a lot more enjoyable when there's a steady paycheck at the end of it, for sure, but try not to let this ruin your holiday. Take a couple of hours a day and pursue employment as you can, but try to relax if you're able.

<comment><USER14> _people are generally not hiring at times like this._

In finance, January is a _great_ time to go job searching. People collect their bonuses and some percentage leave, and that opens up spots.

<comment><USER13> January, yes. December, no.

Like I said, I doubt he has cause to worry, but I know that I've had similar circumstances where a loss of income source occurs immediately after a big expenditure, so I know how poor the timing is.

January's a new month, a new year, and is likely to be rife with opportunity, but in the interim, there's to be a few missed checks that could be important.

</comment></comment></comment><comment><USER15> You know, I have all the sympathy in the world to up_and_up, and I wish him luck. If I would know about a remote position I might even had done something about it.

But this seems fishy to me for a few reasons, and out of place. HN has a job board up there, job posts every month and there are more than enough places for someone to find a few leads. I would be less suspicious if there was a location mentioned and not just a cryptic "remote" or a link to a site, github or something that makes this a real person.

Maybe I'm just a cynic, but it's hard for me not to feel skeptical.

<comment><USER16> Skeptical of what, that OP isn't actually unemployed and looking for work?

What, exactly, would the angle be besides a person who is looking for job leads?

<comment><USER17> A recruiter phishing for hiring managers maybe? But I would suspect this is legit and totally above-board. This is part of what online communities are all about.

</comment></comment></comment><comment><USER18> I know you said remote, but where are you located? We're global and have a presence across the US, so what you think is remote might actually be local.

<comment><USER19> It's pretty common for people with young children to seek true remote or at least 2/week office work.

</comment></comment><comment><USER20> I am sure you will find a new gig. I am also looking, similar profile as you but I live in Beijing, China and my wife is pregnant.

Great all-round developer, <http://gbraad.nl/resume/> and <http://linkedin.com/in/gbraad> email: me at gbraad.nl to get in touch.

Let us all have a great new year. Happy holidays!

<comment><USER21> Check out App Annie, our Beijing office is hiring lots and lots of engineers: <http://appannie.com/jobs>

<comment><USER20> Thanks for the suggestion. Will certainly get in touch with them.

</comment></comment></comment><comment><USER22> Pinged you. Mozilla is always hiring talented devs, remote is absolutely, pathologically supported here :-)

Good luck!

<comment><USER2> Do you get referral bonuses @ Mozilla?

</comment></comment><comment><USER23> You may want to browse the telecommute jobs from careers stack overflow: <http://careers.stackoverflow.com/jobs/telecommute>

</comment><comment><USER24> I can't do anything for you from Pakistan other than praying and wishing to have a wonderful holidays with a new job in hand which you will be going to start from Next year.

Best of luck Bro!

</comment><comment><USER25> We have lots of openings here in Seattle. email@example.com. Send me your resume.

</comment><comment><USER26> Sorry to hear your news.

When people say 'remote' do they generally mean 'in the US'?

I am based in the UK, about 3 hours from London. I know I have a fantastic skill set (Ruby, Rails, Postgres, APIs, Semantic HTML, Heroku, people management and Accenture consulting experience) but I have never found a single company in the UK willing to consider on remote working.

Such a shame for both sides as I don't want to move my young family to London.

</comment><comment><USER27> There are like 20 startups in Miami that would hire you as technical co- founder right now. p.s. miami is nice and warm right now :-)

<comment><USER28> He mentions being remote. I imagine this makes one less desirable - though not entirely.

</comment></comment><comment><USER29> Sent your info along to our hiring manager - he'll be in touch.

</comment><comment><USER30> Your skill set is strong and in demand, you have nothing to worry about. Enjoy the holidays and treat this as unpaid time off, I suspect you'll be employed before the end of next month.

What region are you in, or is remote work a requirement? Most interviewers like an in-person at some point, just a thought.

</comment><comment><USER31> Take up Buddhism, that'll make Christmas much cheaper. ( other religions available )

<comment><USER32> Economically-motivated religious conversion. I haven't heard this one before.

<comment><USER33> Many Somalis pretend to be Christians to receive church aid, or qualify for refugee status.

<comment><USER34> I think saraid216 was joking. There's plenty of examples in history for people changing religions for non-religious reasons.

</comment></comment></comment></comment><comment><USER35> Good luck, man.

Nothing about this post has any urgency outside of "i have to buy presents". FFS. You aren't the first person to have to tighten it up during holiday time, and you sure won't be the last.

Stop the crybaby nonsense. "have kids" ... who cares?

<comment><USER36> Now that is an interesting post. Pay attention kids while I break it down for you:

"Good luck, man."

Clearly this guy has a heart, saying that to a stranger is nice, but adding the "man" adds a friendlyness to it that is hard to come by on the internet. This is what we call a bait, as will be seen by the things to come.

"Nothing about this post has any urgency outside of "i have to buy presents". FFS. You aren't the first person to have to tighten it up during holiday time, and you sure won't be the last."

Now here, because the original poster did not state that he had immediate financial problems, somehow this suddenly is not that big a problem for him. The time honored mantra of "someone else has it worse, so you cant have it bad" is strongly indicated with Mscasborough reminding him he is not the first person to be in a bad place just before christmas. The optimistic "and you sure won't be the last" leads us onto the next golden nugget of communication.

"Stop the crybaby nonsense. "have kids" ... who cares?"

There we have it! Full "Dick!". It is rare to see in real life, but more omnipresent on the internet. The first sentence indicated that the original posted might not have complained enough while the "Stop the crybaby nonsense" indicates that he in fact was complaining too much. But the piece de resistance, the ode to the world of dickishness and the absolute pinnacle of human dickishness is encapsulated in the words "'have kids' ...who cares?"

Personaly I hope the original poster will get a job as soon as possible. The feeling of being unemployed just before christmas must be very hard indeed.

<comment><USER37> Why do people make such a big deal about being unemployed before Christmas? Can't buy presents? Oh well, consider yourself lucky: you just got an easy way out of the empty consumerist scam that is Christmas in the West. I grew up without Christmas my entire life, and I turned out fine. I celebrated it once a few years ago with an ex's family and it was a terrible, contrived experience. Now I consider myself fortunate that we don't celebrate it; I feel sorry for the people who run around malls getting stressed out about which useless piece of junk to waste their hard earned money on for people they rarely get to spend time with.

Xmas/New Years is not that bad of a time because nobody else is working, anyways. You know you aren't going to find anything so you can take a break from resume spamming. Then, after the New Year, there is a flurry of hiring activity as people settle back in and take care of things they've put off since Thanksgiving.

The worst time, I'd say, is in the dead of summer. July/August. Really bad time to try to find a job.

</comment></comment></comment><comment><USER38> Seriously, if you really want to work, you should have no problems finding work, provided your description is accurate. It sounds like you just freaked out.

I would suggest being a little flexible on your side in terms of location, as Chicago is full of awesome opportunities, and then don't grab first thing, but look for something you would enjoy doing. Like, hit LightBank and other accelerators and see what they have. Have first relaxing holidays, then chase work, as others suggested.

Happy Holidays

</comment><comment><USER39> The company where I currently work at (Etsy) is really good at allowing remote work. Could you send me your resume to my HN username @folksonomy.com ?

</comment><comment><USER40> Hi There, I saw your post via Twitter and decided to respond on behalf of Modis. Modis does both permanent placement and contract IT staffing. email me at firstname.lastname@example.com and I can put you in touch with the right person in your region who can help you find a position that's the right match. Thanks!

</comment><comment><USER41> It's clear from this thread that a seasoned developer with your skills is in demand- my question is what motivates you to choose one company over another?

I am making the assumptions it's not just salary- benefits, stock options, vacation days, culture? Curious on your thought process for selecting a company?

</comment><comment><USER42> If you're still looking, I might be able to find you some temp contractor work asap, as well as introduce you to people looking for more permanent (or at least medium term) remote devs. firstname.lastname@example.com

</comment><comment><USER43> Another startup? Same risks, could get laid off at any moment (e.g. 5 days before Independence Day, 5 days before Yom Kippur, its always 5 days before something). Glutton for punishment?

</comment><comment><USER44> Best wishes this holiday season. Enjoy the time off with your family, and I'm sure (along with everyone else here) things will turn up in 2013 with a little work searching... :)

</comment><comment><USER24> Why am I getting impression that startup people are ruthless?

</comment><comment><USER45> Man, you are awesome. Just like everybody told you: enjoy the holiday and look for a good opportunity.

I bet you will find a even better job, you are hot for the market now!

</comment><comment><USER46> The title sounds as if it's the end of the world.

Oh, wait a second...

</comment><comment><USER47> We could use a senior dev on our systems engineering team. Just contacted you --good luck!

</comment><comment><USER48> Sent you an email, good luck!

</comment><comment><USER49> check your email - sent you some openings from my company & my gf's

<comment><USER50> right on! nice to see folks lending real support at this time of year.

</comment></comment><comment><USER51> Be sure to collect unemployment during your time off.

</comment><comment><USER52> Email sent. Subject "HN Amigo"

</comment><comment><USER14> Email me (michael.o.church at gmail) and I'll put you in contact with some recruiters in NYC who'd love to work with you (although I don't know if they have remote options). With your CV, I doubt you'll be unemployed for long.

If you're interested in finance, Wilmott and NuclearPhynance are also good places to find headhunters.

Sorry to hear about the startup. Good luck!

</comment><comment><USER53> On Christmas day 30,000 children will die around the world from preventable diseases.

Think about that while you stuffing turkey down your pie hole.

</comment><comment><USER54> Protip: don't have kids.

<comment><USER55> Advice your parents could have used...

</comment></comment><comment><USER56> If you have kids, you shouldn't be working at a startup. This will happen to you again.

<comment><USER57> As someone who has not only kids, and a mortgage AND was let go from a startup last week (in Australia, resume's here <http://resume.oliyoung.com> ;)) all I can say is … no.

Startup work may be a little more _financially_ risky than "traditional" work, but it's sure less risky emotionally for some people. Like me.

<comment><USER56> "Startup work may be a little more financially risky than "traditional" work, but it's sure less risky emotionally for some people. Like me."

You are the exception to the rule. In my experience, startups are more risky and much more stressful than a traditional job.

Working for a startup has about the same risk as starting your own company. It can be done, but you need to have savings and be able to handle things like getting laid off when funding doesn't come through.

The majority of people aren't prepared for this and shouldn't even be thinking about working for a startup if they are married/have kids.

<comment><USER58> working for startup is far riskier than starting your own company, because you have the same risk exposure with limited upside and little control over your fate (e.g. the founder louses up or takes a really shitty deal which screws over the employees -- has been chronicled many times here)</comment></comment></comment></comment>


'Capitalism failed': Jacinda Ardern signals major economic shift - <AUTHOR> http://thenewdaily.com.au/money/finance-news/2017/10/22/jacinda-ardern-capitalism/ <comment><USER2> Any arguments comparing Capitalism, Socialism, Communism from one country to the next are generally fallible due to the inherent corruption within the top layers of any of the 'systems'.

Capitalism can work with appropriate safeguards - which are often based on the ideals of socialism.

Communism appears to be working for China as per its growing worldwide influence, but the worldwide influence it has gained appears to be based on strong capitalist ideals, externally at least.

The answer lies somewhere in-between. As it always does.

<comment><USER3> > The answer lies somewhere in-between. As it always does.

Exactly. It's called social democracy and its proponents are social democrats.

</comment></comment><comment><USER4> She claims there are "hundreds of thousands of children living in homes without enough to survive."

NZ population: 4.8 million, of which 900,000 are under the age of 16. So she's talking about a vast proportion of their children living in utter misery (one third? half?).

Life in NZ must be really awful, courtesy of free markets. It will be interesting to observe how much regulation and socialism they will implement, and how much better children fare after that. Are there examples of countries that have embraced socialism, and thereby improved their lot?

<comment><USER5> It's ~ 1/3\. Poverty is _defined_ as the bottom third of households. It's defined that way because the poverty researchers quite literally want to create a society in which everyone has the same income. I've worked with these researchers.

I'm not sure that the politicians and media who report on these things fully comprehend what these researchers are saying. In fact, from what I've seen most of the media and politicians in New Zealand lack basic maths skills.

<comment><USER6> > It's ~ 1/3\. Poverty is _defined_ as the bottom third of households.

Yes. It's fundamentally a rhetorical trick. If the bottom third had a median income of $500,000 per year, they'd still be counted as being in "poverty".

I strongly suspect that Zimbabwe, Haiti, or Bangladesh-level poverty (i.e., real poverty) doesn't exist anywhere in New Zealond.

<comment><USER7> if the bottom third has a median income of 500k, the average rent would be 475k.. and they would still be in poverty.

so yes, money is fundamentally a rhetorical trick.

<comment><USER6> No, a rhetorical trick is what you are doing by using words like "poverty" without defining what they mean.

Do you have any evidence that Haiti, Bangladesh, or North Korea-level poverty (i.e., what most people think of when they see the word "poverty") exists on any meaningful scale in New Zealand?

Hint: no, you don't. Because it doesn't.

Are you deliberately using the word "poverty" to mislead people?

Hint: yes, you are.

<comment><USER7> in your haste to be hostile and patronising I think you entirely missed the point.

the dollar amount of money is irrelevant. talk to someone from Zimbabwe..

money is a rhetorical device which describes power. if the spread of wealth or income is relatively flat, the power is mitigated. if it is sufficiently broad as to cause significant inequality, money can be used to enforce poverty.

so, let's say for the sake of argument I am using poverty to mean whatever it means where you live, let's assume the US, and $500k as the buying power of whatever it means where you live. give everyone a half million, give it a few weeks and then tell me how much it costs to get a place to live, or a cup of coffee for that matter..

<comment><USER6> > in your haste to be hostile and patronising I think you entirely missed the > point.

No, _you_ are missing the point.

People pushing an agenda use the word "poverty" as an emotional appeal, because it makes people think of starving kids in Africa covered with flies, etc. It wouldn't have nearly the impact if it was made clear that someone in "poverty" can have a house, a car, and plenty to eat.

> money is a rhetorical device which describes power.

The word "rhetoric" does not mean what you apparently think it means.

<comment><USER7> So, in response to my assertion that perhaps you missed my point, you simply restate your own point. You clearly did not care to understand the argument, or but just pushed your own pet theory. Yes, you are being hostile and patronising, and you have now doubled down on that.

I can only imagine you have never met anyone living in poverty in New Zealand, or the US, given that you seem to have so little regard for them. If you actually think that the bar for poverty should be set so low as to be the point of actual starvation, then I really don't know what to say to you. My empathy, for one, extends a little further to my fellow man.

But anyway, my argument restated in case I am misreading you.. in fact, definitions of poverty do not matter once you understand that differentials in power create the conditions for poverty. It is lack of power then, not money which creates poverty. And once you understand that money is not an actual thing, but an agreement.. a societal construct to codify peoples access to power (to have control over their wealth). It is designed to be persuasive, it is a promise of your own power and the ability to confer it on someone else. But it lacks any content itself, ultimately, money only works because of the implicit threat of the state or group which creates the agreement. It is a device I would describe as rhetoric.

ie. rhetoric: language designed to have a persuasive or impressive effect, but which is often regarded as lacking in sincerity or meaningful content.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I wouldn't call this a failure of capitalism necessarily, you could also blame it on a failure of social policies.

<comment><USER9> I'd say it has more to do with how the word "capitalism" is used ambiguously to support arguments for better or for worse, and how that rhetoric is woven into social policies.

Capitalism might concern itself only with only the "private ownership of the means of production and their operation for profit" [0], but there is no reason that it strictly has to be deployed in a manner that is insensitive to human needs and desires. If anything, sufficient ignorance of these long-term objectives only makes it more likely that whatever flavor of capitalism that is deployed keeps consuming until it causes events that lead to its own destruction.

[0] [https://en.wikipedia.org/wiki/Capitalism](https://en.wikipedia.org/wiki/Capitalism)

</comment></comment><comment><USER10> Capitalism is amazing. Unregulated capitalism is an dystopic nightmare.

</comment><comment><USER11> Down this rhetorical road lies Venezuela and Zimbabwe. Let's pray the voters and legislative branch of New Zealand are able to temper PM Ardern's flights of fancy.

<comment><USER12> NZ runs a proportional representation election system and since we had our election 2 months ago it would seem that 52% of NZers have chosen to temper the neoliberal flights of fancy.

Good? Bad? I dunno but you're in 'culture' territory here so be careful with your comments - NZers live on a giant farm and we have hungry kids underperforming in schools/employment and our beautiful rivers chock full of literal crap. Lot's of Kiwis are very unhappy about _any_ system that thinks this is an acceptable tradeoff for unevenly distributed $$.

<comment><USER6> > since we had our election 2 months ago it would seem that 52% of NZers have > chosen to temper the neoliberal flights of fancy.

And? 56% of Venezuelans voted for Hugo Chavez.

The only "flight of fancy" here is that Marxism can somehow ever be made to work. One would think that a hundred million dead bodies piled up over the last century would be enough to constitute persuasive evidence, but True Believers gonna believe, I guess.

<comment><USER13> How about all the bodies that piled up in defense of capital and capitalism? It seems worthwhile to tell both sides of the story.

[https://en.wikipedia.org/wiki/Anglo- Persian_Oil_Company#Nati...](https://en.wikipedia.org/wiki/Anglo- Persian_Oil_Company#Nationalisation)

[https://en.wikipedia.org/wiki/United_Fruit_Company#Banana_ma...](https://en.wikipedia.org/wiki/United_Fruit_Company#Banana_massacre)

[https://en.wikipedia.org/wiki/Iran%E2%80%93Contra_affair](https://en.wikipedia.org/wiki/Iran%E2%80%93Contra_affair)

[https://en.wikipedia.org/wiki/Vietnam_War](https://en.wikipedia.org/wiki/Vietnam_War)

There's a lot more where that came from.

<comment><USER6> > How about all the bodies that piled up in defense of capital and capitalism?

That's not a hundred million. Not by orders of magnitude.

There is no "other side of the story" here.</comment></comment></comment></comment></comment>


Net taxes could arrive by this fall - <AUTHOR> http://news.com.com/Net+taxes+could+arrive+by+this+fall/2100-1028_3-6186193.html?tag=nefd.lede <comment><USER2> This is ridiculous. Instead of increasing taxes, how about actually controlling your spending? So many people seem to be under the illusion that more money will help solve problems with their _spending habits_.

in this respect, our public officials really are representing us. "About 43% of American families spend more than they earn each year." <http://moneycentral.msn.com/content/SavingandDebt/P70581.asp>

</comment><comment><USER3> Not to worry, the internet is designed to route around this "problem" and will do so, whether the politicians like it or not.

Like the RIAA and MPAA, they can't win this battle. The sooner they realize that the better.</comment>


C++ Pattern Matching Proposal [pdf] - <AUTHOR> http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1371r1.pdf <comment><USER2> Reading over the examples, it seems like there's a lot of good stuff here, though I wondered how possible it would be to extend switch with some of this capability vs adding a new keyword. It looks like this possibility was considered and is addressed in §7.2— basically the flexibility of case labels and break statements being able to appear inside control structures leads to all kinds of chaotic corner cases for switch (Duff's Device and friends) that are incompatible with the proposed semantics for inspect, with no obvious way to signal from the source which one you want.

<comment><USER3> Seems like `inspect` would turn `switch` into a deprecated practice, which is preferable imho. This way, it's easier to write clang-tidy rules for conversion and to raise red flags in PRs.

<comment><USER4> switch is an extremely useful control structure, though needed rarely. It's basically a kind of computed goto, something not found very often outside C/C++ anymore.

If there's a real inspect, people will be able to stop treating switch as a deficient approximation to one, and maybe appreciate it for what it is.

<comment><USER5> Yeah, it creates a jump table, so basically an O(1) operation in assembly rather than O(n) comparison worst case for every case.

However, this means switch _only_ works with integers, which is rather limited and confuses newcomers. For instance this does not compile:

       void f(std::string const &str) {
         switch(str) {
           case "option_1":
             std::cout << "First option\n";
             break;
           case "option_2":
             std::cout << "Second option\n";
             break;
           default:
             std::cout << "None of the above\n";
         }
       }

<comment><USER6> The workaround is constexpr hashing

       void f(std::string const &str) {
         switch(hash(str)) {
           case hash("option_1"):
             std::cout << "First option\n";
             break;
           case hash("option_2"):
             std::cout << "Second option\n";
             break;
           default:
             std::cout << "None of the above\n";
         }
       }

It could be as little as converting the final 8 bytes to a uint64_t above and using that. That just happens to be all of them in this case, but there are a bunch of them. Or using minimal perfect hashing. None of this is the language though

<comment><USER7> Can you guaranty at compile time that any hash you switch on is unique? Else this is just really dangerous if you don't have perfect hashing for the object you switch on.

</comment></comment></comment></comment></comment></comment><comment><USER8> Just skimming section 4, this really just looks like _even more_ syntax being added to the language without enough benefit to justify the additional complexity. At this point, I think I've made the decision to just stick with C++11 indefinitely and backport the rare useful feature. I don't want to have to memorize all of this extra stuff.

<comment><USER9> What we need is a compiler flag that says, "give me the good parts of C++11/14, but leave out the bad stuff from C++98, and fix some of the inconsistency quirks from trying to be compatible with C89".

<comment><USER10> I think core guidelines [0] are aiming that. Some of it is already supported by tools like clang-tidy, but as far as I understand the ultimate goal is to have some sort of flag (e.g. --sane) that would only accept 'reasonable' subset of c++ and reject legacy stuff.

However this document is a bit raw, lots of todos, so I'm not sure how close are we to such flag.

[0] [https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)

<comment><USER11> I think the only good way to do this is off of the back of C++ Modules. Having it as a compiler flag means that all files in a project, including libraries, must be compliant.

With C++ modules putting an end to the naive #include, translation units could specify the C++ specification they are compliant with, and hence gracefully remove or add new features on a translation-unit level.

<comment><USER12> This is the idea for the 'epochs' proposal [https://vittorioromeo.info/index/blog/fixing_cpp_with_epochs...](https://vittorioromeo.info/index/blog/fixing_cpp_with_epochs.html)

</comment></comment></comment></comment></comment><comment><USER13> Its seems all languages are just copying each other at this point. I know C++ hates to be left out of anything so maybe this is appropriate, but to me its really destroying the ecosystem.

It was great to have different languages having different paradigms but now you can do everything in everything and code bases I'm working on are a confusing mess.

<comment><USER14> > all languages are just copying each other at this point. I know C++ hates to > be left out of anything so maybe this is appropriate, but to me its really > destroying the ecosystem. It was great to have different languages having > different paradigms but now you can do everything in everything

I don't think you _can_ do everything in everything. Try working with lazy immutable data structures in Rust, for one.

Or look at Dart - now has "non-nullable types," monadic error handling (sort of), but of course the whole thing is on shaky foundations so what's it worth?

<comment><USER12> Here's what immutable data structures look like in Rust: [https://docs.rs/im/14.1.0/im/](https://docs.rs/im/14.1.0/im/)

<comment><USER14> None are lazy, however.

</comment></comment></comment></comment><comment><USER15> Love this proposal! C++ is getting better in leaps and bounds.

<comment><USER16> It's amazing what credible competition can do. If only C had the same kind of pressure.

<comment><USER17> Don't you even dare. C is near-perfect in the simplicity of its core. You want bells and whistles, you hook up a library.

<comment><USER18> Typesafe generics via a better void* would make me super happy. There are definitely other quality of life improvements that could be added or reworked that wouldn't affect the simplicity too much.

<comment><USER19> I'd say Rust is the improvements to C that I've always been wanting: better type safety, real generics, first-class closures, and OOP without inheritance, only using structs to structure data, leaving code execution to just functions. It's what I hoped Go would become. (Take with grain of salt, I'm just starting to learn Rust.)

<comment><USER18> I really don't like the monomorphization approach to generics (I think that's the concept?), where the function/struct essentially gets duplicated for each type. It seems to mess with linkage, increase binary sizes, and increase compile times.

Other than that, Rust does seem to be an improvement and less... stressful to program in.

<comment><USER20> You can always role dynamics dispatch yourself

<comment><USER21> Dynamic dispatch is in the language too.

        use core::fmt::Display;

        fn show_monomorphic<T: Display>(first: T, second: T) {
            println!("{} then {}", first, second);
        }

        fn show_polymorphic(first: &dyn Display, second: &dyn Display) {
            println!("{} then {}", first, second);
        }

        pub fn main() {
            show_monomorphic(17, 23);
            show_monomorphic("fnord", "slack");

            show_polymorphic(&42, &"quirkafleeg"); // mixed types!
        }

There are things you can do with each that you can't do with the other, but they are often both viable choices.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> I _really like_ the proposal for matching values (integral, strings, tuples). It's very lispy. Explicit representation (intrinsics?) of a map used as an expression.

Though I would prefer the keyword 'choose' over 'inspect'.

\--

I have noob questions about pattern matching on (polymorphic) types. Please humor:

It's syntactic sugar for std::is_base_of<> (Java's instanceof), right?

This is a consequence of C++ (and Java's) nominal type system, right?

So is pattern matching on types necessary (useful) for structural type systems?

I ask because a friend has been advocating structural typing. He's more of a language theorist whereas I'm more of a language mechanic (I don't even rate as a language engineer). While I'm totally on board with whatever he says, I just hope to better grasp the changes.

</comment><comment><USER23> compare this proposal to the pattern matching you get from Haskell or OCaml and weep.

for example (OCaml):

        let imply = function
           | (true,false) -> false
           |   _          -> true

<comment><USER24> Pattern matching across multiple function heads (ML, Erlang) is incredibly liberating. I hear Haskell has it but it's not idiomatic, and I think Elm doesn't support it at all. Frustrating.

I've found half-hearted pattern matching solutions like Scala quite disappointing.

<comment> nv-vn OCaml, F#, ReasonML don't support that, I think it's unique to SML in the ML family.

<comment><USER24> Interesting, thanks. SML is my only direct exposure to the family, and I recall a conference speaker mentioning that ML (perhaps SML) programmers weren't fond of the feature.

</comment></comment></comment></comment><comment><USER25> No amount of new features will ever vindicate C++. The language is so complex and so flawed on every level that it can only be deprecated and migrated away from. The only way to save developer time and woes is not to produce any new lines of C++.

<comment><USER26> Move away from to what? People use C++ because they want templates. There's a very small number of languages with templates.

</comment></comment><comment><USER27> anything in here about exhaustiveness checking? In my mind that's half the value of pattern matching.

<comment><USER28> From the Exhaustiveness and Usefulness section:

"inspect can be declared [[strict]] for implementation-defined exhaustiveness and usefulness checking."

"having a __: case makes any inspect statement exhaustive."

"any case that comes after a __: case would be useless"

<comment><USER29> Why wouldn't they make it [[strict]] by default?

<comment><USER30> Because it's C++, and the defaults must suck (std::vector::at anyone?)

</comment></comment></comment></comment><comment><USER31> Why call it inspect instead of match?

<comment><USER32> Inspect breaks less existing code.

<comment><USER33> They ought to use "_Inspect".

</comment></comment></comment><comment><USER34> This seems so much more clear to read, with less typing.

</comment><comment><USER35> I would wish for it to work with concepts and state. Then you could write a simple production system in the spirit of Prolog, Erlang, et al. The multi- argument generics is partway down that path, so why not go all the way.

</comment><comment><USER36> More syntax, more semantics - because that's exactly what C++ needed. At this point I think they may be competing in the most complex languages championship. When are the next Olympic Games?

And it's not like we could just abstain from using new parts of the language. For every feature there is going to be a person who will be excited to use it in an open source project which your company depends on, and sooner or later you're going to have to pay for every inch of complexity introduced to the language. But the people in charge seem to think that there is no cost to it.

</comment><comment><USER37> To my understanding, this capability set is roughly the same as what C# 8.0 support and what Java also targets. Just with a different keyword.

</comment><comment><USER38> Does the D language have pattern matching?

<comment><USER30> No.

But it can be done as a library. Granted, it's not the same as 1st class support, but it's pretty good:

[https://github.com/pbackus/sumtype](https://github.com/pbackus/sumtype)

</comment></comment><comment><USER39> Does this proposal have any support?

At first it seems nice, but is it realistic to add so much new syntax to the language?

<comment><USER40> Structured bindings need to get rid of the mandatory dummy variables in case of the unused parts of the structure. So something has to be added.

<comment><USER35> Something has to be added but it could just be an empty comma, which IIRC parallels initialization: use `auto& [a, , c]` to match the first and third elements of a tuple.

</comment></comment></comment><comment><USER41> How does this work compared to ML's signatures?

</comment><comment><USER42> Their example #4.3 won't always produce the same result as the "if" version, because x==x and y==y could return false due to operator overloading.

<comment><USER43> If you overload the == operator such that x==x is false then I call UB. Reading and understanding such a codebase would be a nightmare.

<comment><USER44> NaN == NaN is always false (at least in other languages I know).

<comment><USER45> This will be the case in any language that confirms to IEEE 754 (so, hopefully, all of them (because the only thing more confusing than properly implementing IEEE 754 is improperly implementing your own bespoke subset)). This property of NaN is required by the spec (and is, for example, why Rust's default HashMap refuses to accept floating point numbers as keys).

</comment></comment></comment></comment><comment><USER46> "It must be our great task, gentlemen, to keep the monkeys away from the typewriters."

\-- H. L. Mencken

</comment><comment><USER47> I know this is different than the regex library but just thought I'd mention...

Declaring regex's like javaScript with be cool.

        var myre = /^hello\w*/;
        std::regex myre("^hello\\\w*");

<comment><USER48> You can add a literal operator:

        auto operator "" _r(char const* str, unsigned long) {
          return std::regex{str};
        }

To avoid all the backslashes, you can use a raw string literal:

        int main() {
          auto myre = R"(^hello\w*)"_r;
        }

</comment></comment><comment><USER49> I don't understand why some people don't like C++.

It almost seems like they forget what it means to compile to machine code.

I can say I have some sort emotional attachment to python, but I can't deny that C++ is just a more capable language, but at least I can admit that I'm just not always competent to always write C++.

Like most people say "just use the parts of C++ you need".

<comment><USER50> Thankfully C++ is far from the only language that compiles to native.

Many others don't even have the same insane "features".

<comment><USER49> There are not that many languages with good support that compile to native.

<comment><USER51> Java (yes it does, since around 2000), .NET (NGEN since v1.0, Mono AOT, IL2CPP, .NET Native), D, Eiffel, FreePascal, Delphi, RemPascal, Swift, OCaml, Haskell, Lisp, Ada, Scheme, Basic, Go, Fortran.

Just a couple of possible languages, there are many more if we take out the good support constraint.

<comment><USER49> Garbage collected languages are not really native languages.

I don't see good enough alternatives to C++, which have enough support, not a steep learning curve, good backward compatibility with existing ecosystems, not owned by a single company, etc.

<comment><USER52> Depending on your definition of "enough support", Rust might be what you want.

> not a steep learning curve

well, it's steeper than most languages, but less so than C++ IMO, especially if you're already familiar with C++ and therefore understand the problems Rust is intended to solve.

<comment><USER49> If you already know C, C++ is easier. You can still pick what you like in C++.

Still ,there aren't that many languages that compile to native.

<comment><USER51> Yeah the list is indeed quite small.

[https://en.m.wikipedia.org/wiki/Compiled_language](https://en.m.wikipedia.org/wiki/Compiled_language)

<comment><USER49> When you cross that list with language usage, support etc, you don't have a lot left.

My point is that maybe most of those languages are not suitable, and that nobody really like those languages. Just cross all the arguments I gave about those languages, how they score, etc: C/C++ are the most used language that compiles to native and it gets criticized.

"There are languages people complain about, and languages people nobody uses" Meaning we only complain about language we use.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Monkeybrains Wireless ISP in SF - <AUTHOR> https://www.monkeybrains.net/ <comment><USER2> Hhmm, what's new about this? If you just discovered this awesome this ISP and your place is in service area, congrats! Otherwise there's nothing new about it.</comment>


EU nations approve highly skilled visa plan - <AUTHOR> http://www.forbes.com/feeds/ap/2009/05/25/ap6461805.html

<comment><USER3> If more than a decade of being an immigrant in an EU country (happily left it) has learned me something, it is that - concerning the immigration - <USER2> statements of (EU) politicians are lip service.

Consider this statement: _"Highly skilled migration into Europe increases our competitiveness and economic growth," said Jacques Barrot, the EU's justice and home affairs commissioner. "Such migrants are always welcome in the EU."_

But then you read _"Those approved under the visa would also be offered wages at least 1.5 times more than the average gross annual salary in the country they will work in."_ Further, in no article concerning this topic could I find if someone can actually become a permanent resident and even a citizen of some EU country.

Let's face it, (almost) no employer (no matter if we are in recession or not) will pay that much (would you?). And (almost) no employee will be ready to live in uncertainty, from one visa renewal to the next one (would you?). But, that's how it should be: Voters should be sure that "immigrants will not take their jobs" and politicians can tell to the businesses "we are doing something".

If you are facing this problem _"The EU's working-age population will shrink by more than 50 million by 2050, and many officials say only a steady influx of newcomers will offset the impact of low birth rates and an aging population."_ your laws must be more inviting.</comment>