No More 'Fun Fun Fun on the Autobahn' Under Proposed German Laws - <AUTHOR> https://www.bloomberg.com/news/articles/2019-01-19/no-more-fun-fun-fun-on-the-autobahn-under-proposed-german-laws <comment><USER2> Very next article on my version of the page: "Europe's Most Important River Is Running Dry" (because of climate change)

Grow up, could there maybe be an upside to limiting emissions? One this writer with his childlike and provincial worldview can't appreciate? (Provincial because it's FAHREN auf der Autobahn, and childlike because the chosen substitute-word is "fun.") This isn't about your shallow "fun fun fun," it's about everybody's "death death death." And I hate to break it to you, but driving 100MPH on a German highway (which I'm pretty sure he's never done, or else he might've seen one or two signs with the words Fahren or Fahrt on them somewhere) might not be the only thing he'll have to say goodbye to. You actually should probably STOP ALTOGETHER hauling 2 tons of dead weight around with you everywhere, and do it TODAY, or be overrun with migrant refugees of drought, war, famine, and fascism tomorrow. (Or maybe your place succeeds in keeping them out, in which case you're probably in the fascist place from which you'll be the refugee.) Gauge how likely that future is, by the number of shallow and petulant downvotes this comment gets. I've pretty much accepted it as a near-certainty. It will precede the much-needed, massive die-off of _homo sapiens_ back to a more sustainable population size.

<comment><USER3> "the much-needed, massive die-off of homo sapiens back to a more sustainable population size."

Ah yes the Anti-human environmental movement! lets put those guys in charge!

<comment><USER4> I fail to understand this human-hating stance. It's very confusing to me especially seems it seems to be cheering the suffering and death of many people but the feeling seems to be prompted by the suffering and death of many people. It's simply confusing to me.

<comment><USER2> You guys are all missing the point. It doesn't matter who cheers, who "hates humans" (which is a ridiculous oversimplification) or who's "in charge" (since no one is). It doesn't matter if you like it or hate it. Is it "anti-rain" or "pro-rain" to notice a heavy rain cloud? I dunno but the rain absolutely doesn't care what you think. It doesn't even mind if you disingenuously reduce the issue to the same old simplistic pro/anti binary.

If you have the basic powers of observation of natural laws, and aren't so vain as to believe humans are exempt from them, you can see this coming. I've already gone through my 5 stages of grief about it, that's what you're picking up on. It's not anti-human; driving your car is anti-human. To the tune of 35,000 Americans killed every year by it, and that's just from crashes. Don't blame me for how you feel when you hear the bad news for what I'm pretty sure is not the first time. The pro-human approach would be to see this coming ahead of time and actually manage the transition.

EDIT: ...like Germany is trying to do (a step in the right direction, but probably not enough and not fast enough)

<comment><USER3> Most European style countries are doing just fine (including japan and korea). Small populations and moderate to negative birthrates. Great environmental laws and various forms of recycling and waste management. Various technological developments reduce overall resource consumption. In many of these countries there even internalized personal beliefs that reduce urban pollution.

Do you think nature can even hold a candle to these organized peoples? You think these people are afraid of water? [https://en.wikipedia.org/wiki/Flood_control_in_the_Netherlan...](https://en.wikipedia.org/wiki/Flood_control_in_the_Netherlands#/media/File:The_Netherlands_compared_to_sealevel.png)

<comment><USER2> I'm not sure what you mean with the fear of water. I brought up rain as an analogy for something that happens no matter what your opinion of it. And if anything the people along the Rhein may soon have to fear a relative _absence_ of water. But anyway yes, most of the European countries deserve compliments for actually taking action on the climate issue. I fear it won't be enough, but there's a chance it will be, and anyway at least it's something. The USA where I am, can't even satisfy the prerequisites. To implement a solution, you have to first reach a consensus about what reality is. Then you have to decide what actions to take based on that consensus. Then you have to put some adults in charge of implementing those measures. Then they implement them. The USA can't even get past step 1 ("What is reality?") because a kind of psychosis seems to rule the land.

<comment><USER3> The facts are irrelevant at this stage this is purely politics. The poor and middle class do not want to be penalized for climate change (French yellow jacket protests are most visible example of this). This is just bluffing between economic groups.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> No worries, this isn't the first and also not the last time for such a proposal by a minority oppositional party. Politically this is not going to happen with most Germans relationship to their cars.

<comment><USER6> While you are right with the conclusion that it's not going to happen, you are wrong about who made the proposal. I suppose by "minority oppositional party" you mean the german green party (btw: more than 20% in recent polls) had nothing to do with it. The proposal actually came from the "Verkehrskommission" (English: transport commission), which is a commission of the federal government.

</comment></comment><comment><USER7> Good, it really honestly needs to happen. Unlimited speed increases pollution massively, and other countries do fine with 110-130kph limits on motorways.

The car industry has managed to turn it into a national pride issue, and will fight tooth and nail to preserve the unlimited sections of the autobahn, because it lets them sell more expensive more powerful cars, and market them as "tested on the Autobahn".

In general, German driving culture needs a bit of a kick in the pants. While they're generally quite courteous on normal streets, and very good at making room for emergency vehicles, they still have some issues to deal with.

First of all, they drive _way_ too close at high speeds on the motorways, and they brake very late when coming up on slower traffic, for instance a Porsche going 200+kph coming up on an Opel at ~120kph overtaking slow traffic. The guy in the Porsche will brake hard at the last possible moment. This often leads to huge pileups in foggy or otherwise inclement weather.

Secondly, there is a very definite sense of entitlement based on the size and price of your car. The bigger and more expensive your car is, the more you expect people to just get out of your way, because they drive a "lesser" vehicle. It's extremely obvious to compare reactions when you're driving a small Citroën compared to even just a BMW 1-series. People will pull right out in front of you if they deem your car "lesser" than theirs.

Abolishing unlimited speed will reduce the number of accidents, reduce pollution and somewhat even the playing field on the roads.

E: For clarification, my girlfriend is from Baden-Württemberg and we spend a lot of time on the roads when we visit her family, 2-3 times a year.

</comment><comment><USER8> Fahren.

<comment><USER8> (Which means driving. So I'm going to have to dock the title a few points for accuracy.)

</comment></comment><comment><USER9> Why not limit just fossil fuel vehicles then? That would encourage adoption of electric vehicles while keeping the freedom of the autobahn and reducing emissions just as much.

<comment><USER10> Can you imagine the traffic hazard when electrics going 200 come up on ICEs at 120? That'll not be fun to see in action.

<comment><USER11> It can happen on the Autobahn today. Stay out of the passing lane.

<comment><USER12> Which in future will be called the "rich men lane".

<comment><USER13> What does gender have to do with wealth? And if we're talking cars going 200, aren't we already talking wealthy people even today?

<comment><USER14> No, cars going more than 200km/h are widely available, even small or mid-range models.

</comment></comment></comment></comment></comment></comment><comment><USER15> Which will be next? Gerexit or Frexit?

</comment><comment><USER16> Yet another fun ruined by a aristocratic bigots who want to reeducate and control the unwashed masses while using jets and energy wasting hyper capitalism without shame.

</comment><comment><USER17> It's not fun it's utility.

For context, imagine if the US gov said 'no more 55mph' on the highway, instead, everyone has to go 45 mph max.

Imagine how people would react.

<comment><USER18> They tried it. It didn't work: [https://en.wikipedia.org/wiki/National_Maximum_Speed_Law](https://en.wikipedia.org/wiki/National_Maximum_Speed_Law)

</comment></comment><comment><USER19> Having roads with no speed limit is one of the reasons why to make cars with high maximum speed. Without that next generation cars can have 300hp and 90mph maximum speed.

</comment><comment><USER20> Tax carbon more. Then, if people want to pay more for the externalities of their adventures, they can still have them rather than sucking all of the cool out of the world with a "Culture of No."

 _" Anything fun in life is illegal, immoral or fattening."_ \- Anonymous

<comment><USER21> In an ideal world, I'd be in favor of increased carbon taxes instead of blanket bans. The tax would need to be both high and broadly enforced, and should preferably offer some sort of subsidy to lower-income individuals to ensure they aren't decimated by the changes.

In practice, I'm so desperate for countries to do _anything_ about climate change that I'm disinclined to complain about implementation. Climate change is an existential threat to humanity, and we need to actually treat it as such.

<comment><USER22> Carbon taxes do seem regressive and problematic. On the other hand if we wait for an ideal world, it will only be ideal for plants, insects, rodents, and pathogens. Truthfully though, taxing consumers seems half-asses in the extreme. Of course what we need is something the average person is terrified of, which is to say we need nuclear power en masse, and we needed it yesterday. That can give us some breathing room to push _hard_ on solar as wind, as well as using nuclear power to produce hydrogen through electrolysis.

It's not perfect, it's expensive, it produces waste we need to deal with, but the alternative is going to be waiting for too-slow progress on the renewable end, only to realize it's too late. That's when the desperate geoengineering attempts will be made, likely kicking off some very unintended consequences.

<comment><USER23> Well, carbon taxes are the way to get there by letting the market decide what is preferable technology as opposed to some rando on an internet forum decreeing that we need nukes (not that I disagree).

Poor people are actually the most price sensitive and lowest consumers of services and manufactured goods, they would end up paying a smaller portion of the tax. There is nothing stopping the government from reducing other taxes in compensation or using the revenue to provide, say, a minimum level of free health insurance for all.

</comment></comment></comment></comment><comment><USER12> This proposed law is bullshit. Just like the US, Germany should withdraw from the Paris agreement.

<comment><USER24> What Germans should withdraw from is coal.

<comment><USER25> A pity they withdrew from nuclear instead.

<comment><USER26> People already got washed in radioactive rain in 1986. Nuclear waste is leaking from barrels in an old salt mine. In France, the sea in front of La Hague is contaminated with plutonium. No thanks.

<comment><USER27> How many people died from that vs co2+particulates+radiation from burning coal?

<comment><USER26> The lobby for nuclear power on HN always surprises me. In Germany these points are pretty undisputed - the question is not an OR, of course one needs to leave coal as well [1]. Which is why there is all the investment in renewables [2]. Nuclear power, however, has the potential for devastation of a whole region for many thousands of years (ask people in Pripyat), and these costs for future generations need to be internalized as well. We have no room to spare in Europe. If you internalize the costs of disasters of nuclear power they don't make sense anyway.

[1] Current status: exit has been underway for at least a decade, although not as quickly as some would have hoped. [https://medium.com/thebeammagazine/germanys-lignite-exit- str...](https://medium.com/thebeammagazine/germanys-lignite-exit- strategy-16359d047392)

[2] wind and solar have been growing consistently for the past 15 years and have surpassed coal two years back. See [https://twitter.com/dave0dave0/status/1081101220159414273?s=...](https://twitter.com/dave0dave0/status/1081101220159414273?s=21)

<comment><USER27> Can renewables power everything though? Seems unlikely, we'd need 50% renewables + all the batteries we can make forever, and 50% nuclear to replace coal, gas, and oil.

Average EU human uses 4kW of energy 24/7, including everything they eat, buy, heat, move etc. Assuming we move all use of engines to electricity and generate renewable power so don't waste 50% heating water in power stations, and get it down to 2kW, to store that power for just a day would be an electric car sized battery for every human.</comment></comment></comment></comment></comment></comment></comment>


532x Performance Increase for MongoDB with fractal tree indexes - <AUTHOR> http://www.tokutek.com/2012/11/532x-multikey-index-insertion-performance-increase-for-mongodb-with-fractal-tree-indexes/

<comment><USER2> I read the presentation here: <http://tokutek.com/downloads/mysqluc-2010-fractal-trees.pdf>

The math looks a bit hand-wavy to me but I get the basic data structure, you basically have sorted arrays whose lengths are each a power of two, so 1, 2, 4, 8, etc... When you insert a set of values, you can either fill an entire array or leave it empty. So for example if you have 5 values, you'd have an array of 1 element, an empty array with 2 spaces and a full array of 4 elements.

Each array is sorted by itself but the smaller arrays do not necessarily contain all values that are lesser than all values of bigger arrays.

To do an efficient lookup you have forward pointers from each node to the next-bigger node in the next array, so you can basically start your binary search at a given index in a bigger array and move faster.

The problem is when you are inserting lots of values because you have to merge arrays multiple times and overwrite a bunch of data, but the point is that you are getting better disk IO doing that than rebalancing a B-Tree because you're not making the disk head skip around all the time, thus achieving greater speed.

I'm curious about the details of this benchmark though, what kind of values are we talking about? Are they all the same size rows or do you have variable sized values (like strings?) in the benchmark?

This looks promising but I'd love more explanations from the authors...

<comment><USER3> Hi, I'm one of the authors (I'm an engineer, not an author of the original papers, though I can discuss those too)! What would you like to know?

First, the structure you described is called a cache oblivious lookahead array (COLA), and is not what we implement. It betrays a lot of the concepts that make up a fractal tree and is a good educational tool, which is why you'll find lots of Tokutek material that describes it, but there are some key places where it departs from what we actually ship. Conceptually (and asymptotically) they're similar, but when you get down to the details of an industrial- strength implementation (like variable-sized keys, as you mention, concurrency is another frequent question we get), you have to be more specific about what we build.

So. What we build is closer to a cache-oblivious streaming b-tree, but I won't make you look that up. Basically, we take a b-tree and stick an unsorted buffer on each internal node. To insert data into a subtree rooted at node X, you just append your data to X's buffer. Then, if the buffer's too full, you flush X's buffer, distributing all its elements among X's children (but that just puts them in the buffers of the children). You can flush recursively, and make leaf nodes just hold data instead of buffers. This gives the same insertion asymptotics as the COLA did.

Now you need to pick a node size, a strategy for querying, ideas for concurrency, recovery, etc. but this is a start. I'll start by saying that since we write nodes less frequently, we can pick a much larger node size, which helps eliminate fragmentation and gives us a chance to get much more aggressive compression (since large blocks compress better than small ones).

Hopefully this gives some insight into how we handle variable sized elements. The mongo benchmark (as with all our mysql benchmarks) is running on something that supports variable sized elements (though I don't remember if the benchmark itself takes advantage of that).

This is still pretty unspecified, and we can keep talking about fractal trees, but does what I've said so far make sense? Do you have any new questions?

<comment><USER2> What if I pull out the plug to the server while you're in the middle of a buffer write? You say you achieve throughput by writing to nodes less frequently, does that mean in case of a hardware/power failure the amount of data loss will be higher than with a system that writes more often to disk? How often do you guys flush to disk?

Edit: I'm not saying those are necessarily bad trade-offs, i'm just curious :)

<comment><USER3> We don't do anything super special here. Most databases have some notion of "node" (or in mongo, "bucket", to distinguish from a machine as a node in a cluster), and keep track of which nodes in memory are clean or dirty. We log all operations and by default, fsync that on commit, so we're completely durable, there's no data loss (unless you didn't commit something before you pulled the plug, of course). To trim the log, you have to know that everything dirtied by a transaction has been written to disk, and if you don't trim the log often enough, it gets big and your crash recovery takes a long time (innodb sometimes exhibits this). We and others have a notion of "checkpointing" which says "all the nodes as of this point in the log has been written to disk and marked clean", and that allows us to trim the log. Note that this doesn't have to mean "stop the world and write out everything in main memory", you can do a lot better (but that's a long discussion).

Because a given operation, even if it involves lots of random writes in the key space, still only dirties a few nodes at the top of the tree, we actually checkpoint faster and by writing less data than the same b-tree would (because it would have to checkpoint a bunch of leaves, with random I/O, for every one of our nodes), so our log is often much smaller and our recovery times are much faster, usually on the order of seconds or minutes, rather than hours. By default in our mysql product, we checkpoint every...I think 60 seconds, but it could be 90. It's configurable but that's the ballpark.

But most of my comparisons here are with innodb, to be fair. Mongodb's storage system doesn't support transactions and we're still learning about its durability and recovery model, so I can't make any totally fair claims comparing us to them.

(I love talking about this stuff, so keep up the curiosity)

</comment></comment></comment></comment><comment><USER4> Please note that the actual name for a "fractal tree" in the research literature is "Streaming (cache oblivious) B-Tree" (or at least they've very very closely related).

Writing good code wrt memory locality is SUPER important for writing high performance code, whether its in memory work, or larger than ram (eg for the DB). Also a fun exercise to try to understand how!

<comment><USER5> Would make sense. Michael Bender is a co-author on that paper and he apparently works for Tokutek, judging by this presentation: [http://www.bnl.gov/csc/seminars/abstracts/Bender_Presentatio...](http://www.bnl.gov/csc/seminars/abstracts/Bender_Presentation.pdf)

<comment><USER6> He is a co-founder: <http://www.tokutek.com/about/team/>

</comment></comment></comment><comment><USER7> > _At 3.5 million inserted documents, the exit velocity of standard MongoDB > was 2.11 inserts per second..._

That's terrifying - do people expect performance like this? Or was this crafted to be a pathological case? 100 element arrays don't seem too common, but that only makes this 300 million entries in e.g. a SQL table - I suspect my laptop running MySQL could outdo that kind of performance (but have no proof. I could be very wrong).

<comment><USER8> It doesn't surprise me a great deal - Mongo doesn't have a history of being a technologically strong database system. While it is/was perceived as high performance, it's always been clear that this performance was gained as a result of compromises rather than technical excellence.

</comment></comment><comment><USER9> The title is a little misleading. It looks like an asyntotic improvement, that is 532x at the scale the benchmark ran. Looking at the graph, it appears to be a significant improvement, as the old version clearly dropped to about 0, while the new version looks constant. (It took some staring to see the downward trend)

</comment><comment><USER10> Whenever I see speed-up factors of the order of 100x, all I can think of "the original implementation must have been trivially superslow".

</comment><comment><USER11> Sounds tantalizing, but in reading it is there a risk of patent infringement liability?

</comment><comment><USER12> I've discussed these results with the team at 10gen and their comment is basically "that's interesting but we're not looking at it at this time."

All told, based on my experience, MongoDB's performance still has a ways to go.

</comment><comment><USER13> have the mongodb architects commented on this?

</comment><comment><USER14> Nobody believes me when I say Fractals solve literally everything efficiency related. Even though it's true.

Nobody believed me when I introduced on-demand script injection for javascript, today it's IT etiquette.

The power of popularity I guess.

<comment><USER15> Did you blog about it? give examples? What else can be solved with fractals?

<comment><USER16> <http://en.wikipedia.org/wiki/Fractal_compression>

<comment><USER15> Thank you</comment></comment></comment></comment>


Chinese Way of Doing Business: In Cash We Trust - <AUTHOR> http://www.nytimes.com/2013/05/01/business/global/chinese-way-of-doing-business-in-cash-we-trust.html?pagewanted=all <comment><USER2> I visited China 10 years ago, and the extend of cash use surprised me even then. Nobody trusts banks.

Coming from a country where I visit an ATM maybe half a dozen times a year and a bank branch even less it was quite a shock. Fortunately I can still count change pretty quickly.

The other interesting thing about Chinese currency is how light the coins are. They feel like they're made of plastic.

<comment><USER3> >The other interesting thing about Chinese currency is how light the coins are. They feel like they're made of plastic.

This is only the really old designs (1950s), also really small coins. 0.01 and 0.05 RMB coins are cheap and flimsy aluminum or something (? dunno exactly what metal). You almost never see those any more.

The newer 0.1, 0.5, and 1.0 coins are equivalent to US coins in sturdiness, some kind of brass or nickel or something.

<comment><USER2> Interesting. I picked them up in 2003, the 0.05RMB were the most obvious ones, the larger denominations were definitely more coin-like.

<comment><USER3> Yea, and you're seeing less and less of those now, especially in bigger cities where prices are getting crazy high. Also most stores are really good about keeping things in even 0.5/1 increments, instead of having everything be X.99 or X.95 (for the most part).

<comment><USER4> I went to the bank to pay a USD bill in RMB and they gave me 1 and 5 fens in my change. Mostly, I never see fen unless I go to the bigger grocery stores.

</comment></comment></comment></comment></comment><comment><USER5> A side note: I'm currently in China, and as the article describes I have huge wads of 100RMB bills in my possession.

They smell terrible.

Is this usual for paper money? My home country went polymer over 20 years ago so I can't actually remember. Do used american bills smell like the sweaty palms of the thousand people who used them before you?

<comment><USER6> Yes, US currency also smells very bad.

However, the US seems very aggressive about replacing worn bills. This may be related to the fact that so much of our currency goes in and out of automated machinery these days, and people don't hang on to cash very long.

Anecdotally, bills today seem much tidier than they did when I was a kid. Of the dozen bills in my pocket right now, none is older than 2006, and none are crumpled.

<comment><USER4> 100 RMB bills get replaced pretty quickly also; its rare to see an old one. 50 RMB bills can be more worn, and its kind of a pain because the DPRK counterfeiters usually go after these notes. Recently, they've caught on to this and have been replacing 50 RMB bills more often.

<comment><USER5> 1RMB notes are an abomination, and considering that there is a coin of that denomination I'm surprised they haven't been abolished. In my wallet now I have a couple of them dating from 1999. Dirty.

<comment><USER4> They only mint 1RMB coins in the south (e.g. Shanghai). Beijing and the north have mainly paper bills, we do get coins for the subway, however. Coins are annoying if clean, since we aren't used to them.

</comment></comment></comment></comment></comment><comment><USER7> I'm actually starting to lean this way myself. Many of our routine expenses (food, gas, restaurants) are now cash transactions. I think I'm smarter with money as a result.

<comment><USER8> Sounds awful. With the rewards of credit cards these days, you're basically throwing away money. Fidelity offers an AmEx card with 2% cashback on all purchases, and there are plenty of other options to choose from. If it's self control you're after, does cash really make a difference? I think modern personal finance tools as Mint do a better job with budgeting. Personally, I have used plastic ever since I was old enough to have a debit card, and I've never looked back.

<comment><USER9> Pay in cash, and the retailer gets the resources, not a third party. Long- term, this should be good for you both.

Rewards points are a sign of inefficiency.

<comment><USER10> > Pay in cash, and the retailer gets the resources?

Huh? The retailer is paid the same amount (sans the transaction fee) either way. The cashback incentive is to get people in debt.

<comment><USER11> The cashback incentives are usually roughly equal to the transaction fees.

<comment><USER4> Cashbacks incentives don't exist in China anyways, I believe. Its mostly a crazy American thing.

<comment><USER12> Singapore also has the cashback and bonus points on credit cards.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> First off, it's a byproduct of corruption, pay through credit card's easily tracked, ordinary people don't do that. Second, not like first world countries, many business here don't accept credit card, some who accepts would charge additional fee.

<comment><USER12> In Germany, many businesses don't accept credit cards either (lots accepts debit cards though), and cash is still popular.

</comment></comment><comment><USER14> I hated only having 100 RMB notes available when I visited China; pretty much explains why even men carry purses there (I ended up carrying my laptop bag everywhere, which kind of sucked)

</comment><comment><USER15> This is because plastic leaves a paper trail and cash does not. If you pay in cash and don't ask for a receipt, the seller doesn't pay tax on it, and will often give you a discount.

<comment><USER16> That seems very easy to detect (with police on foot, like US underage alcohol stings) and send people to gulag for.

<comment><USER15> Not in a country of 1.3 billion people and only 1.6 million police officers, where _everyone_ selling goods or services practices this.

Besides, I don't think enforcing tax collection is, or has ever been, a function of the police force.

China's internal revenue service tolerates widespread sales tax evasion via undocumented cash transactions, even if for no other reason than that they lack the auditing infrastructure necessary to enforce collection.

Meanwhile, in the cases when someone _does_ ask for a receipt for a cash transaction, it is always because they want to "expense" it. Salary rates in China, at both state-owned and private enterprises, are shockingly low, but they compensate for it by allowing their employees to claim expense reimbursement for practically anything. Therefore, there is even a black market for receipts. If you spend cash on an expensive meal in China and you get a receipt, you can even sell that receipt to a receipt trader, who will resell it to someone else for 1% of the amount on the receipt, and then that person will claim it to their company as an expense, and get reimbursed cash for it. This sort of fraud is _rampant_ in China.</comment></comment></comment>


Showtime makes its entire library available for offline viewing on mobile - <AUTHOR> https://techcrunch.com/2017/04/06/showtime-makes-its-entire-library-available-for-offline-viewing-on-mobile-devices/ <comment><AUTHOR> This is great considering that LTE hardly holds up all the bars to allow for seamless streaming.</comment>


SOPA's latest threat: IP blocking, privacy-busting packet inspection. - <AUTHOR> http://news.cnet.com/8301-31921_3-57328045-281/sopas-latest-threat-ip-blocking-privacy-busting-packet-inspection/

<comment><USER2> Pfft... are they also planning on making encrypting all of our packets illegal?

<comment><USER3> As someone who went to Washington to meet with the folks who wrote this garbage, I can confidently say yes. It will be considered a circumvention device when you use a VPN or encryption service to route around the blocks.</comment></comment>


The Facebook poll: A Little Case in Statistical Bias - <AUTHOR> http://weblog.markbao.com/2009/a-little-case-in-statistical-bias/ <comment><USER2> I see this all the time on morning 'news' shows and evening 'current affairs', most of which require voters to dial a premium phone number.

They say "87% of you agreed that poor Mrs Jones was harshly treated by the courts."

I hear "Even 13% of the people who were really passionate about this story ended up agreeing with the vast majority of you who realised Mrs Jones was an angry junkie with a chip on her shoulder who deserved what she got."

</the rant of an ex-journalist>

<comment><USER3> This drives me crazy too. All they need to say is, "87% of respondents to our poll blah blah blah." Not that viewers would understand the difference. Maybe that's why they don't say anything when announcing these polls.

</comment></comment><comment><USER4> The poll was most likely done by that application that had you add it to vote. Hereby giving the application your information and an open door for advertisement.

<comment><USER5> The fact that all applications, even simple ones like this vote app, require handing over access to your entire profile is still my biggest beef with Facebook.

I happen to like the redesign, especially after using it for a few days. I would like them to rethink their application permissions though.

There's really no reason that I can't use an app like this and only hand over some minimal set of information like just my name and profile pic/icon.

<comment><USER6> > I would like them to rethink their application permissions though.

They have. Since July 08, Facebook has opened up a bit to allow applications to run without requiring an "add" (opting in to the app getting your info). They call it "Automatic Authentication". ([http://wiki.developers.facebook.com/index.php/Automatic_Auth...](http://wiki.developers.facebook.com/index.php/Automatic_Authentication))

The issue has been developer uptake. All the tutorials out there still assume you're going to require an add. Also, app devs on Facebook have been notoriously slow on the uptake of new features.

<comment><USER5> Cool, that is exactly what I had in mind.

So, I guess the real problem is just developer education.

There have been many times where I've refrained from using an app solely because it needed access to my profile when I felt that was necessary.

Then again, maybe only geeks/the paranoid care about stuff like this.</comment></comment></comment></comment>


Ask HN: Why are we ignoring social network aggregators? - <AUTHOR> With the Facebook leaks the alternative social platforms are getting more attention. But without the network effect they have difficulty expanding.
An aggregator that manages your social graph and multiple feeds will make transition between the networks easier. At the same time it will improve privacy since it won't run the FB trackers.
The aggregators were a hot topic ten years ago. Power.com was getting momentum before it was shut down with Facebook lawsuit. Is it time to build a better decentralized aggregator that will pave the way for better networks? <comment><USER2> Maybe because social networks have locked down their APIs.

Remember friendfeed? (facebook bought them)

Back then "open" was hip. Now they all want the whole pie for themselves.</comment>


Streacom DB4 Fanless Mini-ITX Chassis - <AUTHOR> http://www.streacom.com/products/db4-fanless-chassis/ <comment><USER2> That's great, but where do you buy one? I see a lot of cheesecake media downloads but no "order here" or "buy now" buttons.

</comment><comment><USER3> Gorgeous…</comment>


Scientists discover the reason people believe in conspiracy theories - <AUTHOR> https://www.independent.co.uk/news/science/conspiracy-theories-creationism-psychology-911-moon-landing-fake-a8499511.html <comment><USER2> As easy as it would be to dispel this as something only low IQ / low capacity for development people would fall for, teleological thinking tends to slant towards schizophrenia-spectrum nervous systems. If you plot schizophrenia on a continuum from subclinical (one symptom) to clinical (threshold for diagnoses) you see teleological thinking / religious zealotry / conspiracy and paranoia in all parts of the spectrum, where it mostly gets worse as it progresses to clinical levels. Those of us on the autism spectrum tend to have the opposite neurology, with a low capacity for teleological thinking and more capacity for reductivism. Neurodiversity is interesting because whether you fall into one camp or the other (or somewhere in between) doesn't change much through your life, or affect IQ or other conventional measures of development capacity. The future is going to be interesting as evolution selects for more extreme traits in each of these domains.

<comment><USER3> I'm not sure one way or the other about the schizophrenia link, but it is interesting.

As far as IQ goes I completely agree. If anything I'd say that most of the people I've known who are into conspiracy theories have above average IQs.

It's one of many reasons I'm not a believer in the IQ cult. There are so many other factors that lead to success in any area. Some are biological and some are intellectual and cultural. Someone with a high IQ but insane beliefs is at a large disadvantage vs. someone with a more average IQ and more rational beliefs. If anything a high IQ person with irrational beliefs will more effectively delude themselves and others.

<comment><USER2> Schizophrenia incidence goes up with IQ from average, as does high functioning autism and bipolar disorder, the only health conditions that increase as you go up in IQ (all others decrease or aren't affected).</comment></comment></comment>


Just Manic Enough: Seeking Perfect Entrepreneurs - <AUTHOR> http://www.nytimes.com/2010/09/19/business/19entre.html

<comment><AUTHOR> Single page link: [http://www.nytimes.com/2010/09/19/business/19entre.html?page...](http://www.nytimes.com/2010/09/19/business/19entre.html?pagewanted=all)</comment>


Mozilla and Opera Complain About Windows 7 - <AUTHOR> http://mashable.com/2009/05/07/mozilla-opera-windows-7/

<comment><USER2> Constant demands for government intervention don't mesh very well with the libertarian ideals surrounding open source. The government telling Microsoft how to design its software isn't good for the industry. And, it is just a small step away from regulating what end-users do on their own computers. We don't want to go there.

With the popularity of Safari, Chrome, and Firefox, the success of Mac OS X, and the widespread availability of Linux, does anybody really think Microsoft is illegally leveraging a monopoly? I don't.

Should the final version of Windows 7 switch your default browser to IE? No. But, even if does, is that something that we should go crying to governments about? Absolutely not.

Keep the government as far away from our industry as possible, or we'll all regret it later.</comment>


Fired Snap employee wants judge to unseal evidence of inflated user numbers - <AUTHOR> http://finance.yahoo.com/news/fired-snapchat-employee-wants-judge-173145393.html <comment><USER2> I assume user numbers aren't audited in the same way that financial information is (that is, with GAAP and external auditing). For example, I looked at Facebook's Q3 Form 10-Q, and there wasn't anything there about user numbers.

It would be interesting if publicly-traded companies could have a "key metric", a non-monetary, objective (so, not stuff like "user satisfaction"), numeric, auditable value that the company says "This number is stated as firmly and as clearly as our Financials. Judge us on this.", and which is included in the 10-series forms (10-K and 10-Q).

Of course, you might not trust such a number, but this makes falsification much more dangerous.

</comment><comment><USER3> I realize this isn't based on data, but people have been saying for a long time that SNAP will be the end of the tech bubble. It would be interesting if that happened to be true because SNAP was built on fraud. I don't think people would care nearly as much if SNAP was posting a profit, but after glancing at their financials they don't even predict when that will happen, so their entire selling point is - if Pompliano is telling the truth - predicated on lies.</comment>


In Religious Arbitration, Scripture Is the Rule of Law - <AUTHOR> http://mobile.nytimes.com/2015/11/03/business/dealbook/in-religious-arbitration-scripture-is-the-rule-of-law.html?_r=0 <comment><USER2> Totally weird.

 _"The Holy Scripture shall be the supreme authority," the rules of the proceedings state._ and _In legal circles, those cases, along with the Ellison suit, are considered seminal examples of how judges have consistently upheld religious arbitrations over secular objections._

How is this a whole lot different than Shari'a, the same Shari'a that apparently the states of Kansas and Oklahoma (and others)0 are dreadfully scared of? Will the same judges uphold a Muslim-owned business' right to use Shari'a arbitration?

<comment><USER3> Sharia law, christian religious courts, and Beth Din, all have similar problems.

There have been serious problems with child abuse not being reported to child protection / law enforcement; or of rights of women being ignored (eg, the "get" needed by Jewish women to recognise their divorce is often not issued).

So it's really frustrating when people wang on about sharia and how evil it is and how it must never be allowed to happen when a: it's about as bad as the others and b: it's already working (in the UK, at least).

Here's an old article from BBC: [http://news.bbc.co.uk/1/hi/uk/7233040.stm](http://news.bbc.co.uk/1/hi/uk/7233040.stm)</comment></comment>


One cryptocurrency for all rewards and points from Merchants? - <AUTHOR> Hey guys, we all have reward points from Starbucks, AMC, etc. Imagine if we will be able to receive one type of reward point from all retailers: (1) These points will be crypto coins created by Users A, B, and Z for an exchange for their time. (2) Merchant 1 will buy these coins from User A for an exchange for a gift card. (3) Then Merchant 1 will reward User B with these coins. (4) After that, User B will buy gift cards with these coins from Merchant 2. (5) Etc. The idea is to replace all reward coins/points by 1 crypto coin created by users in exchange for their time. What do you think? <comment><USER2> Merchants have no interest in allowing you spend you loyalty bucks with other retailers. Or they'd just give them to you in cash.

As always, cryptocurrencies add nothing useful to this scenario.

<comment><AUTHOR> Yes, it makes sense, but it's not so simple. First, it depends on how big is a merchant. Second, you will be able to pay only part of the product price with coins. Third, it depends on how big will be the demand for these coins.</comment></comment>


Show HN: Astroflow – An unified logging framework for all languages - <AUTHOR> https://github.com/astrocorp42/astroflow-go <comment><AUTHOR> Hi author here.

Logging is hard but you can't avoid it ([https://kerkour.com/post/logging](https://kerkour.com/post/logging)) so I'm trying to create an improved experience across all programming languages, let me introduce to you: Astroflow - The unified logging layer.

An unified API for fast and configurable logging libraries.

There is currently the Go version: [https://github.com/astrocorp42/astroflow- go](https://github.com/astrocorp42/astroflow-go)

and the JavaScript version: [https://github.com/astrocorp42/astroflow- js](https://github.com/astrocorp42/astroflow-js)</comment>


Santa Fe author's treasure hunt claims a fourth victim - <AUTHOR> https://www.abqjournal.com/1135807/santa-fe-authors-treasure-hunt-claims-a-fourth-victim-ex-man-who-fell-to-his-death-in-yellowstone-last-year-was-searching-for-the-infamous-antique-chest.html <comment><USER2> Article is over a year old.</comment>


Using HyperLogLog to detect voting rings (2013) - <AUTHOR> http://opensourceconnections.com/blog/2013/10/14/detecting-reddit-voting-rings-using-hyperloglog-counters/

<comment><USER2> If you use this sole technique, you allow an attacker to "DoS" a honest user by creating n fake accounts and upvoting all users' posts, thus increasing his global_total_upvotes with a small increase of his estimated_unique_upvotes.

<comment><USER3> They could ban only the accounts issuing the votes and revoke the fake votes when the account is deleted.

<comment><USER2> Yes, but this is not the sole hyperloglog

</comment></comment></comment><comment><USER4> I'm not sure I fully "get" it. Wouldn't more popular posters (like PG here on HN) be immediately considered in a voting ring, because the same people upvote their posts regularly?

or an even more basic / stupid question - what exactly is a "voting ring"? does it mean people having some kind of a pact to always vote for each other?

<comment><USER5> It's a spectrum, there's no black-and-white definition. On one end there are posts that get votes from people who visit the front/new page, vote for multiple things and make comments that get upvoted, and on the other end there are posts that get direct visits from accounts that only ever view and vote for posts from that one author. In the middle, there's a weighting function with empirically tuned parameters.

While there are a few clever voting rings, the vast majority are just one guy with many sockpuppet accounts upvoting self-serving crap.

HN doesn't need anything as fancy as HyperLogLog. Most voting rings are apparent within the first 20 votes so elementary data structures work fine.

(I know how the HN system works and anecdotally how Reddit's used to work, but I'm being a bit generic here to avoid revealing that One Weird Trick to Get to the Top of HN.)

<comment><USER6> if a ring introduces noise (meaning they attempt to avoid the "not clever" trap you describe) how does this effect the measurement? I can assume that introduction of noise is somewhat counter to the greed and objective of the ring leader. But now the objective would change to be meerly introducing enough noise to putting the metric on this ring in a state of question.

With that though, of course this is better than a model that requires no noise. Forcing noise from the edges reduces the set of entries requiring human review and, still, human review might reveal with sufficient weight the existence of a _possible_ ring. But, this is an evolution to the cat+mouse stage. Hence, rings could still survive if clever?

With that question (ring survival with measured noise) set aside, it seems if the cat+mouse were to come in earnest that reputation dependent models would be a driver for mapping user "types" (social, political, behavioral models) in a much more accurate manner than the current driver of advertising (google wanting to increase price of adds)

</comment></comment></comment><comment><USER7> So wouldn't this be trivially defeated by not always posting as the same user? If you control N users, then to promote a story:

1\. Pick U out of N. Submit the story as U.

2\. Pick [U1, U2...UX] out of N, and upvote the story enough to carry it to the front page. Let the random front page upvotes do the rest.

3\. ...

4\. Profit.

Also, why not write a bot that randomly upvotes stores for your N controlled users (presumably, they are not real people)?

</comment><comment><USER8> I don't think this would work very well on Reddit unless you applied some sort of correction factor to account for the size of the subreddits that the user posts to. For instance, someone who posts regularly to /r/luthier would have far fewer unique users upvoting their posts than, say, /r/pics, which is a much larger community.

</comment><comment><USER9> I doubt this would get you far in practice. Many spammers are sophisticated enough to know that they should disguise their accounts.

For example: if you buy likes on Facebook, the likebots won't just like your page and other spammers, but will also like many innoculous pages as well (Coke, Obama, "Facebook Needs a Dislike Button!1!", etc.)

<comment><USER10> I think this would still work for that scenario. To beat it, you'd need like- bots that only liked/upvoted one or two sponsored things, then never did again. An algorithm like this would at least prevent you from re-using like- bots.

</comment></comment><comment><USER11> Another solution with similar properties (approximate votes, etc) would involve bloom filters on each post, and the vote counter would only be incremented when a user is __not __present in the bloom filter, and is immediately added to it.

</comment><comment><USER12> The linked javascript demo of hyperloglog is broken. I found it here:

       http://research.neustar.biz/2012/10/25/sketch-of-the-day-hyperloglog-cornerstone-of-a-big-data-infrastructure/</comment>


Ask HN: Avoid moving to LA/SF due to earthquake risk? - semi-nontechncl I'm considering moving back to LA after a one year hiatus. However, after the recent earthquakes in Mexico, I started researching the probability of a major earthquake striking the LA area and the predictions are not reassuring.
For Southern CA, here are the stats for the next 30 years: Magnitude 6.7 - 97% Magnitude 7.0 - 82% Magnitude 7.5 - 37% Magnitude 8.0 - 03%
For the SF region, here are the stats for the next 30 years: Magnitude 6.7 - 93% Magnitude 7.0 - 68% Magnitude 7.5 - 15% Magnitude 8.0 - 02%
For reference, the 1994 Northridge earthquake was magnitude 6.7. Also, the Fort Tejon earthquake in 1857 in SoCal was magnitude 7.9.
I work in the film industry, so LA is the ideal place for me to live, but I could probably find work in NYC. I'm leaning towards not returning to LA due to the earthquake risk, but I'm wondering if I'm being irrational. Any thoughts on how to weigh odds that involve life/death?
Source: https://pubs.usgs.gov/fs/2008/3027/fs2008-3027.pdf <comment><AUTHOR> We're moving our business to Portugal in the new year, Lisbon has a great tech scene.... there are other places for film other than LA, particularly without natural disasters. I'm sure others will provide more measurable experience in their comments to follow.

<comment><USER2> Lisbon, hmmm...I do recall a 9.0 magnitude earthquake there literally altering the course of history ;) [https://en.wikipedia.org/wiki/1755_Lisbon_earthquake](https://en.wikipedia.org/wiki/1755_Lisbon_earthquake)

<comment><AUTHOR> haha, that was literally 262 years ago. Much less common than the frequency California seems to have of these things.

</comment></comment></comment><comment><USER3> Have you looked at the chances of modern construction surviving these quakes?

<comment> semi-nontechncl This is a good point. Because the rents are so high in LA, I generally end up living in older apartment complexes. But here's a cool resource for seeing when buildings in LA were built [http://cityhubla.github.io/LA_Building_Age/#12/34.0532/-118....](http://cityhubla.github.io/LA_Building_Age/#12/34.0532/-118.4518)</comment></comment>


Show HN: Crowdsourced geographic visualisation of digital product makers - <AUTHOR> https://levelsmap.com <comment><AUTHOR> Hi HN! I'm the maker. I created this because I was deeply inspired by Pieter Levels (he made Nomad List) when I saw him talk at a nomad conference in 2015. Since I don't know a lot of tech solopreneurs / nomadic product makers, I wanted to create a crowdsrouced map to meet some people and ship my first MVP. If I can help more product makers like myself connect with each other, so much the better. Hope that helps.

I have no plan to monetize this, it's basically just a thank you to Levels and the maker community. For more info, see [https://mckn.co/first- mvp](https://mckn.co/first-mvp)</comment>


Demo about mixing HTML5, CSS3, WebGL - <AUTHOR> http://www.youtube.com/watch?v=-BsB0HpS768&feature=youtu.be

<comment><USER2> does anyone have a link to the code for these demos? I'm really interested in learning some of these techniques but decent info on them seems sparse :(

<comment><USER3> Looks like he's not ready to give out the source yet.

"The code of my demos will be released. Soon, but not right now."

<http://twitter.com/paulrouget/status/18584252076>

</comment></comment><comment><USER4> Soooo.... How soon can we broadly implement any of this stuff on a mainstream web site/app? ;)

<comment><USER5> Pretty soon? It's already supported in development versions of all _modern_ browsers.

<comment><USER4> Right! ;)

I started working on something today that finally DOES NOT have to support IE6...

</comment></comment></comment><comment><USER6> .. and the "state of the art" for doing _audio_ on the web is what?

(It goes without saying that Flash and Java aren't allowed answers to that question.)

<comment><USER7> [http://www.webmonkey.com/2010/05/new-html5-tools-make- your-b...](http://www.webmonkey.com/2010/05/new-html5-tools-make-your-browser- sing-and-dance/)

It's getting there. Audio latency is something that Flash and Java haven't really resolved at all, and I suspect that future spec for HTML audio will have to address that at some point.

<comment><USER8> really?

have you seen <http://audiotool.com/>

</comment></comment></comment><comment><USER9> The video demo is very great! Can't imagine such poor web browsers can do such things for just a blink of eyes. The technology of web apps is growing quite faster compared to desktop ones.

I really love developing web apps and will be looking forward to seeing and learning those new techniques in the future of web apps

Great presentation as well as the demo! Thanks

</comment><comment><USER10> Finally, 15 year old desktop technology is becoming available on the web.

<comment><USER11> Never understood why everything has to run in browsers. We've got perfectly good desktop OS' capable of these things, why reinvent everything?

<comment><USER12> Probably because a browser is far superior in application distribution:

* Don't have to download or install anything - something that is evidently hard for a large amount of people

* Old versions aren't as much of a problem; updates can be just a refresh away

* A browser is a consistent/familiar interface - people generally know how to interact with them

* Runs on your iPhone, Android, PC, Wii, PS3...

There's many, many advantages and disadvantages - use your imagination!

<comment><USER13> Good points, but I disagree with this one.

> Old versions aren't as much of a problem; updates can be just a refresh > away.

We are pushing the distribution problem one layer down, We still need to deal with 10 years old browsers.

<comment><USER14> Browsers are the platform, not the app, equivalent to OS backwards compatibility.

<comment><USER8> Browsers are as much the app as they are the platform.

</comment></comment></comment></comment></comment></comment><comment><USER15> I love this.

I'm really really glad that HTML5 and CSS3 (inkl. svg) is on their way out of the development status and is becoming popular. This will change everything on web.

<comment><USER16> Again

</comment></comment><comment><USER17> Great technology, but I think it's easy to underestimate the artistry involved in the demo. A great "story" with compelling visuals. Extraordinarily well done.

</comment><comment><USER18> I will be the party pooper again, I guess being a flash developer and all.</comment>


Is Python or Ruby better as a first language? - <AUTHOR>

<comment><USER2> Python is, because Ruby sucks.

In all honesty, both are great. People who use either love their language and will pretty much tell you to start with the one they use. Both are free and have good tutorials online with large user communities you can go to for help. Spend a few hours with both and see which one 'feels' best to you and go with it.

I'm a Python guy so I'd recommend Python over Ruby. I just find it easier to read and that makes it easier to understand.

<comment><USER3> I concur, and I'd add that I think Python is better as a _first_ language. The basic language features in Python are all fairly intuitive, and the syntax is about as English-like as you're likely to get. You don't run into weird stuff like all the __methods__ until you do more advanced programming, at which point you'll be ready for them.

Ruby has a bunch of added concepts like sigils, blocks, weird operators, redefinable methods, metaprogramming, etc. These aren't terribly hard to understand if you've been programming a while, but they can be a little overwhelming for a newbie. I'd say Ruby is more suited for a Lisp or Smalltalk refugee that wants something a little more practical, not for a complete newcomer.

In terms of actual programming power, they're both good. Ruby is a little bit more flexible and provides a few more shortcuts for common operators, but anything you can do in Ruby can be done without too much trouble in Python.

</comment></comment><comment><USER4> I'm all for Scheme as first language. When combined with the SICP book for an introductory CS course, it allows you to explore pretty much any concievable paradigm in a single solid framework.

Sounds like a sales wrap, but it's really how I feel about it. And it's the MIT thing to do :-)

<comment><USER5> You can even download full-length lectures for SICP:

<http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/>

Anyway, I'd say the differences between Python and Ruby as a first language are too minor to matter. By the time differences in available libraries should matter, you should be able to decide for yourself which language to use.

</comment></comment><comment><USER6> Also keep in mind that Python has much better (quantity and quality) libraries.

Compare, for example, SQLAlchemy to ActiveRecord. Not even close. Heck, you could even compare Django's ORM or SQLObject to AR and they too tend to be more impressive.

In my mind a beginning programmer benefits as much if not more from quality libraries than a veteran programmer.

</comment><comment><USER7> A nice, sane Assembly language on a processor that does what you tell it, without speculative/out-of-order execution, etc.

</comment><comment><USER8> I find the syntax of Python very logical and intuitive (except for decorators, those seem magical). So that's why I prefer Python. And like others have said it's more mature and practical.

Perhaps start with Python but plan to take on another language in 2-5 years, when Ruby is more mature, or web hosting companies start supporting Scheme, or Haskell, etc.

</comment><comment><USER9> Better than c/c++/java, not as good as scheme/smalltalk. Just my opinion.

</comment><comment><USER10> One thing you should keep in mind is that you _have_ to move on to C++ to become a good programmer. Start with any of the languages, then do C++ for a couple of years. Otherwise, you will never be able to work in a low level language, since you will be pampered by all the simplicity of these languages.

<comment><USER11> Sorry, this is just wrong.

There's so much in C++ that is specific to C++ that it doesn't even begin to make sense. If you want someone to learn OO, send them to Ruby or Smalltalk. If you want them to learn about performance and deep machine magic (pointers and such), send them to C. In either case, they can learn what they need to know without getting bogged down in a really obtuse pile of bolted-on features and syntax. It's not a bad systems language, but it's not a learning language and never will be.

And the whole "you'll never be able to blah blah" crap is just a hugely stupid idea. Don't think of your learning process as preparing to do something. Pick a project and start working on it--Open Source gives you access to millions of lines of code. There is no better way to learn to program than through working on programs. Be useful as soon as you possibly can, and you'll find that people are willing and eager to help you learn, because they see that the better you become the more useful you are to their project.</comment></comment>


Ask HN: What monitor do you use at your workstation? - <AUTHOR> <comment><USER2> I use 3 x Dell P2715Q (27" 4k @ 60Hz). It's a pretty sweet setup for me.

[https://www.dell.com/en-ca/shop/dell-27-ultra- hd-4k-monitor-...](https://www.dell.com/en-ca/shop/dell-27-ultra- hd-4k-monitor-p2715q/apd/210-adof/monitors-monitor-accessories)</comment>


Announcing Rust 1.10 - <AUTHOR> http://blog.rust-lang.org/2016/07/07/Rust-1.10.html <comment><USER2> I'm really looking forward to when rustup.rs is stable (atleast for Linux)! I'm trying to push Rust at work, and it's one of those polishy things that would help.

Unfortunately, last time I checked development (on issues blocking the initial stable release) seemed to have slowed as of late, but I should be helping out instead of whining - the Rust community is doing great work!

<comment><USER3> I've just upgraded from Rust 1.8 -> 1.9 -> 1.10 using rustup.rs without any issue (at least I didn't _see_ any issue :P). I'm on Ubuntu 16.04 amd64.

<comment><USER4> I've been using it on my Mac since the post about it on here a few months ago and I've had no issues at all, though I haven't tried to do anything strange/difficult with it.

<comment><USER3> A quick update: on a Windows 10 box the whole upgrade (1.9 -> 1.10) ran smoothly. This kind of tools really get me excited about Rust future.

</comment></comment></comment></comment><comment><USER5> Exciting!

Tongue-in-cheek, it's very exciting that distros will now have an easier time patching Rust and producing bugs like this one:

[https://bugs.launchpad.net/ubuntu/+source/gcc-4.2/+bug/25679...](https://bugs.launchpad.net/ubuntu/+source/gcc-4.2/+bug/256797)

<comment><USER6> I've tried for a few minutes, but I can't understand Launchpad. How do I find the code changes associated with that bug? I want to see the fix…

<comment><USER7> Yeah, Launchpad has not the greatest UX.

In the last comment [1] on the bug, it's mentioned the release in which the fix was released. From its page [2] you can see all the details of it, including its diffs.

[1] [https://bugs.launchpad.net/ubuntu/+source/gcc-4.2/+bug/25679...](https://bugs.launchpad.net/ubuntu/+source/gcc-4.2/+bug/256797/comments/9)

[2] [https://launchpad.net/ubuntu/+source/gcc-4.2/4.2.4-1ubuntu3](https://launchpad.net/ubuntu/+source/gcc-4.2/4.2.4-1ubuntu3)

<comment><USER6> I looked at that, and eventually found a reference to the Launchpad bug in this 500KB patch[0]. It says:

        +  * Fixes included in the 4.2.4 upstream release (compared to 4.2.3-3ubuntu7):
        +    - Fix LP: #256797, wrong-code on ia32, taken from the gcc-4_2-branch.

Which makes it sound like the problem was in GCC, not the Ubuntu package. I was under the impression that the bug was caused by an Ubuntu-specific patch, from dikaiosune's comment. Am I missing something?

Edit: Ah, so the fix was added in 4.2.4-1ubuntu1, not 4.2.4-1ubuntu3. Which narrows the actual source changes to something inside this other 500KB patch[1]. From here I looked at the upstream changes using GitHub compare[2] (warning, big page). I ran a one liner in the JS console to expand all the "…" buttons next to the commit messages so I could search for relevant text, which lead me to this commit[3], which seems to be the actual code changes to fix that particular bug. That finally lead me to the bug in GCC's bug tracker[4].

I don't know if I have just been very lucky with the open source projects I've collaborated with, but this journey to find where a bug was actually fixed seems completely insane to me. Is all this info passed down from maintainer to maintainer just via folklore? Crazy.

Oh, I almost forgot about what I actually wanted to know. This looks like a GCC bug that wasn't caused by Ubuntu specific patches, so I don't know what dikaiosune wanted to say.

[0] [https://launchpadlibrarian.net/18364478/gcc-4.2_4.2.4-1ubunt...](https://launchpadlibrarian.net/18364478/gcc-4.2_4.2.4-1ubuntu3.diff.gz)

[1] [https://launchpadlibrarian.net/17472542/gcc-4.2_4.2.3-2ubunt...](https://launchpadlibrarian.net/17472542/gcc-4.2_4.2.3-2ubuntu7_4.2.4-1ubuntu1.diff.gz)

[2] [https://github.com/gcc- mirror/gcc/compare/gcc-4_2_3-release....](https://github.com/gcc- mirror/gcc/compare/gcc-4_2_3-release...gcc-4_2_4-release)

[3] [https://github.com/gcc- mirror/gcc/commit/80cacf54c3d410d5552...](https://github.com/gcc- mirror/gcc/commit/80cacf54c3d410d5552b2bf262bc9ac5dc6a1e05)

[4] [https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35163](https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35163)

</comment></comment></comment></comment><comment><USER8> How's the MIR stuff going on? Is there an ETA on when MIR will land in beta/stable? Will the incremental compilation work start after that?

<comment><AUTHOR> MIR is still going well. To be clear, it's already landed, and has been working, it's just not the default yet. There's a PR [https://github.com/rust- lang/rust/pull/34096](https://github.com/rust-lang/rust/pull/34096) and there are currently three blockers: [https://github.com/rust- lang/rust/milestone/29](https://github.com/rust-lang/rust/milestone/29)

Incremental compilation has been worked on while MIR development was happening, so it won't start, it's already in-progress. :)

<comment><USER9> Does this imply we should see single-crate compile times improve?

<comment><AUTHOR> Which part?

With MIR, yes, the idea is that compile time should improve. One of those tracking bugs is to make sure that it doesn't regress before turning it on by default.

With incremental compilation, you should see compiles after the first improve; you'll need to compile a lot less code for each change. Right now, the entire crate is recompiled, but afterwards, just the portion that changed will need to be.

<comment><USER9> My understanding of compilers is somewhat limited, but I'm curious how the compiler can detect "just the portion that changed", given that Rust does heavy inlining.

<comment><USER10> Indeed, inlining is an obstacle for such fine-grained incremental recompilation as Rust envisions. However, when compiling in debug mode (which is the default) Rust (or rather LLVM) does not do all that much inlining, and considering that people compile in debug mode much more often than they compile in release mode this should present a large time savings to the average developer use case.

(Note also that MIR should generate somewhat faster debug binaries than current trans (by virtue of doing "obvious" optimizations in the frontend, rather than asking LLVM to chew on it), so if there are people out there who currently make release builds during development because their debug builds are too doggone slow, then this should help alleviate that.)

</comment></comment></comment></comment></comment></comment><comment><USER9> Congratulations on the release! `cdylib` targets should prove very helpful for embedding, and compilation from a recent stable version will make it much easier to package.

<comment><USER11> The bootstrap problem is exactly why rust isn't in the Fedora repos right now, so I am very excited about this. Also, dylib will likely end up being preferred for distribution packaging (especially Fedora which HEAVILY discourages static linking, though there's no longer a strict no-static linking policy).

<comment><USER9> Do you think it would be reasonable to package rustup in the Fedora repos? I ask because for a development machine, it makes more sense to be able to install multiple toolchains in parallel.

<comment><USER11> In the repos directly? No, probably not. rbenv and pyenv aren't in the repos either, I'm not aware of any specific policy against it but it introduces some hesitance to provide software in the repos that can be used to then install software that may conflict with software managed by the package manager itself. rubygems, setuptools/pip and cargo as examples only typically handle installation of libraries and are generally "well behaved" citizens that put files in specific locations and don't install or manage new versions of the underlying language runtime, meanwhile rbenv/pyenv/rustup can mess with your path and potentially cause conflicts that could end up with people filing bugs that are closed "not our problem, we support this one specific environment that's in the repos".

Someone is welcome to try, feel free to open a thread on the fedora-devel mailing list and see what anyone else thinks. But even if rustup doesn't make it into the official repos I don't see why someone couldn't put it up on COPR.

<comment><USER12> Could rustup use PackageKit/yum/dnf to do this on Fedora? It would be really nice to be able to point to one command in the documentation that would work whether installed directly by the developer or provided by a distro.

Debian specifically provides it's own alternatives system to handle symlinks in a global manner, but nothing for directory-specific ones. I'm not sure about Fedora. With `rustup` replacing `multirust`, it would be useful to point to a common command that in turn would call the distro-provided facility for global links.

Also, congratulations on 1.10! Looking forward to servo.apk in the coming weeks as well.

</comment></comment></comment></comment></comment><comment><USER13> > Rust is implemented in Rust, which means that to build a copy of Rust, you > need a copy of Rust. This is commonly referred to as 'bootstrapping'. > Historically, we would do this by "snapshotting" a specific version of the > compiler, and always bootstrapping from that

So, does that mean that Rust (has/will have) issues regarding binary blobs in pure free software Linux distributions?

<comment><USER14> Why would it? This is the same situation as a C compiler requiring another C compiler to build it.

<comment><USER15> Obviously C compilers should be written in Javascript, since everybody already has a Javascript engine installed.

</comment></comment></comment><comment><USER16> What amazes me, is all this cool stuff but a Rust process still can't return an exit code [0] without using a workaround.

I actually use Rust in production, and have generally found it very good - compared to the well discussed difficulties with CPP. I will continue to do so, but I think that the edges really need covering off properly before it'll be treated as a serious competitor to CPP (and equally often, Go).

[0]: [https://github.com/rust-lang/rfcs/issues/1176](https://github.com/rust- lang/rfcs/issues/1176)

<comment><USER17> Calling std::process::exit doesn't seem like much of a "workaround"? That's basically the same as Java, which is doing OK as a language.

[https://doc.rust-lang.org/std/process/fn.exit.html](https://doc.rust- lang.org/std/process/fn.exit.html)

<comment><USER16> This is true! Perhaps my comment was a bit in haste, however there's a lot of caveats with "exits" rather than returns which complicate the matter, for example in Java System.exit can fail (and finizalizers may or may not be run).

On top of that you have to type System.exit all the time, which is quite annoying

</comment></comment></comment><comment><USER18> Congratulations! Are there any plans to support bootstrap from source? Currently any install requires a binary Rust compiler.

I like the way how Nim handles the bootstrap. It's always easy, and it also eases ports to other platforms significantly since everthing is coded in C.

<comment><AUTHOR>
      > Are there any plans to support bootstrap from source?

The source code is fully available, so we are/have "bootstrapped from source", it's just much more convenient to not do it yourself.

We don't have any more significant plans to change things in the near future.

<comment><USER19> Wasn't the old bootstrap basically just pointing to specific commits to rust rather than tagged prior releases? I remember the servo repo doing something like that and maybe the Rust one as well (cloned it but have yet to build rust on my system from source!)

<comment><AUTHOR> Yes, they were specific SHAs, rather than releases.

<comment><USER19> Thought so! Know if servo is joining you guys on the build from a release train?

<comment><AUTHOR> Well, Servo is a bit different, given that it's not a rust compiler, so there's no 'bootstrapping' component.

Until Servo stops using nightly features (which may not be ever, given that they are part of how we test new features!), they'll need to stick with a nightly build. We made an exception for the compiler when compiling itself, but won't make any more.

</comment></comment></comment></comment></comment></comment><comment><USER20> The marketing of Rust programming language has been excellent. Hats off for having pulled off something like this.

</comment><comment><USER21> Congratulations on the work.

Very nice to see the push for relying only on stable releases while building Rust.</comment>