Ask HN: Any HN members around Charlottesville,VA? - <AUTHOR>

I'm looking into possibly establishing an HN meetup for people around CVille and UVa if there is enough interest. I have been learning how to program for the past couple months and would find it helpful to get to know some of the smart people who read HN and live near me. <comment><USER2> My family lives in Charlottesville but I'm actually in Madison WI. If you get something going let me know and maybe I can check it out whenever I visit. I think it would be a great idea to get something started in the area. Email: aero4x [at] gmail [dot] com

</comment><comment><USER3> I'm a UVAer. I wouldn't mind a meetup night.

<comment><AUTHOR> Well only a couple people responded, but if you have friends who you know who might be interested in such things, let me know and maybe we could get something started. firstname.lastname@example.com</comment></comment>


Why is Haskell used so little in the industry? - <AUTHOR> http://stackoverflow.com/questions/2284875/why-is-haskell-used-so-little-in-the-industry <comment><USER2> Tough love: because Haskell proponents spend all their time ruminating on the beauty and purity of their preferred language instead of writing useful and novel software.

No one whines about why, say, coffeescript is used so little in the industry. They just _go out and use it_.

( _Edit: to be clear, I'm not comparing coffeescript and Haskell as languages. I'm comparing the cultures around them. One "team" has a new toy and is excitedly building stuff with it; there's now a whole community of great stuff available with real applications. The other... has some interesting tools available if you look, but no energy. And they spend their time wondering why and NOT excitedly building stuff._ )

<comment><USER3> Should I be reading something out of this comment other than a totally ridiculous insult? I would flag it and move on if it wasn't coming from someone whose contributions I normally enjoy.

\- You seem to be saying that Haskell people are per capita less productive (or more "whiny?") than people writing in other languages. I have no idea why you think this is true, because I don't know any good way to even find out how many people know Haskell. Please show even the slightest bit of evidence.

\- Are you kidding me? Go Google _"coffeescript usage"_ (better yet: _"why coffeescript"_ ) and see page after page of people writing why they're using Coffeescript, why they're not using Coffeescript, asking if anyone else is using Coffeescript, telling people to use Coffeescript, ad infinitum. People like to talk about who is using every single piece of technology on this planet.

<comment><USER2> The meaning of "tough love" is that I'm trying to provide some needed advice, which I recognize in advance may be misinterpreted as an insult. I meant it sincerely.

I don't care whether or not people "talk about" Haskell, that's not my point at all. People will start using it (which is the answer to the linked question) when Haskell starts _doing things_ that are better than what is available elsewhere. It isn't.

If it's a better environment for doing, say, MVC web frameworks then make something that competes with rails. If it's faster than C (I hear this a lot), then write some system middleware that clearly improves on the existing stuff. And stop asking why people aren't using it!

</comment></comment></comment><comment><USER4>
      > Haskell is a language that rewards those who sit back and deeply analyse the
      > problem, and them produce a beautiful solution.

Upfront design is the opposite of agile. As Douglas Adams said, knowing what the problem actually is is often the difficult bit. The very concept of "correctness" rests upon you already knowing the problem well enough to precisely define it.

Haskell is to programming as pure mathematics is to accounting.

 _EDIT:_ The idea of agile is iteration (aka trial-and-error). While Agile aims at understanding client needs, the concept derives from experimentation - part of the scientific method. It's also used in engineering research, _I haven't failed 1000 times, I've discovered 1000 ways that don't work_ ; in human-powered flight (reconfigurable hardware for new trials every day, instead of twice a year) going back to the Wright Brothers trying to understand flight _control_ \- they invented the wind-tunnel, to iterate designs quickly, easily, cheaply, safely (and spent 3 years on it even so). Even pure mathematicians iterate, trying different approaches.

Trial-and-error is a given in research, differing only in the level/domain of interest.

<comment><USER5> Good luck achieving your sprint deliverable when all you have is some _ideas_!

That's one of my main misgivings about a hard-line agile approach. It is good for shops focused on engineering simple problems or doing routine technical work. It breaks down completely in more research-driven domains.

The hard problems are the ones where you bang your head against the wall with no tangible progress, simply exploring the problem domain until you can get some traction, find a way to solve it, but often your first few attempts lead to a sub-optimal solution you'd hate to commit to.

Agile says go with it, fix it later. This is why we get stuck with crappy standards we'd all want to go back in time to fix.

Some things require a more artistic approach where you grind away at the thing until it's actually solid.

If Haskell is pure mathematics then there's no way you can shoehorn that into an agile box.

<comment><USER6> Actually, agile methodologies are good for situations where the problem itself (and even customer base) is in flux and not fully known (ie consumer facing web startups). Agile methodologies help lay a roadmap to facilitate communication and prioritization to/from developer, project management, and the customer(s).

The solution may or may not be difficult, but finding the right problem to solve is paramount.

The quality of the solution is often a product of the quality of the people working on the problem. Oh, and don't run out of money :-)

<comment><USER5> My experience is there's a tendency to ship the first viable thing that comes out and deal with the rest on an as-needed basis. This is fine for stuff that can survive being a bit ramshackle at first if you can refactor it later, but some things are highly resistant to later refactoring.

<comment><USER6> Shipping quickly is often a strategy used to discover the problem space. Some things _should_ be done as quickly as possible and some things _should not_. The developers/tech management are responsible for forseeing such cases.

Hopefully the initial developers are good ones. If not, I'm sorry and I hope they pay you well. I've been there :-|

</comment></comment></comment></comment></comment><comment><USER7> I love Haskell, I've been programming on it for about 5 years ,never professionally of course, but Haskell is just hard for everyone.

Look, what's a Monad?

Is it a "wrapper around function invocations"? (<http://c2.com/cgi/wiki?OnMonads>)

Or "a parameterized type which is an instance of the Monad type class, which defines >>= along with a few other operators. In layman's terms, a monad is just a type for which the >>= operation is defined" (<http://stackoverflow.com/a/194207/29253>) this definition is so bad, starting by the fact that a class aint what you think it is if you come from Python or Ruby.

Most people would just wait for "Learn Haskell The Hard Way" to finally understand some of its concepts that get overcomplicated by Haskellers because they want to be the only ones understanding it. I'm generalizing of course, but sometimes it feels that way, at least to me, since I don't have a CS or Math background.

<comment><USER8> Yes, Haskell _is_ hard for everyone. Maybe I can speak on behalf of the stupid majority, but (having spent quite some time trying to learn Haskell) perhaps many of us who have at one time or another taken an interest have at some point ceased to find the effort worthwhile?

The most annoying thing is that there seems to be an implicit assumption from a sizable part of the Haskell crowd that Haskell is demonstrably the programming pinnacle toward which all serious coders should be aiming; those of us who fall short of this goal must therefore feel chastened and embarrassed at our obvious inferiority.

Well, at some point when I was grinding through _Real World Haskell_ , trying to build software that actually did something useful, I just reached the point where I simply couldn't be bothered any more. But more fundamentally than this, I no longer believed that Haskell was better than all the other languages out there (because I can accomplish so much more so much quicker with several other languages that I know). And this _is_ the assumption; just hang out with the Haskell community to see this.

</comment></comment><comment> adam-f My experience with it has been mostly fighting with enabling various language extensions to get some (real) sample programs working. The algol languages are much easier to debug compile issues, Haskell's purity makes certain issues non-obvious and complicated.

Also, I think Stevey satirized the situation quite nicely.

[http://steve-yegge.blogspot.com/2010/12/haskell- researchers-...](http://steve-yegge.blogspot.com/2010/12/haskell-researchers- announce-discovery.html)

</comment><comment><USER9> I would say there's two clear reasons functional languages are relatively rare in the professional world:

1) Functional languages are difficult to grasp. Maybe it's the way CS is taught, but I've never heard someone say "Haskell just comes intuitively to me, but I just can't get how to work effectively in PHP". You hear the same statement the other way around all the time. The bottom line is if you have multiple tools to do the same job, and one has a huge learning curve and one has a tiny learning curve, the choice of tool is obvious.

2) Haskell doesn't have a clear application it's "good" at. If you learn PHP, Python, or Ruby, you can throw together a web application with little effort. If you learn Javascript, you can easily do front end web stuff, or if you're more adventurous, get into Node.js. If you learn the C family of languages you can write iOS apps, OS kernels, or games. What do you do with Haskell? I dunno.

<comment><USER10> > What do you do with Haskell?

Write massively concurrent and parallel programs with tools that, practically speaking, lead to a massive reduction in race conditions.

</comment></comment><comment><USER11> OT, but does anyone else notice that almost every interesting discussion on StackOverflow is deemed 'unconstructive' or 'not a real question' or 'subjective' then closed?

Things like "What's the best x…" might not have a definitive, objective answer, but many _good questions only have subjective answers_. I wish they would reconsider this asshat of a policy because they're stifling a lot of good discussion that the community clearly wants to have, and finds constructive, regardless of what the moderators believe.

</comment><comment><USER12> Contrary to popular believe in our community, many programmers are of average intelligence, discipline and curiosity. Haskell (as well as plenty of other technologies) will be too much effort for this group. Is this a taboo? Or elitist?

I wonder why people desire so for the mainstream adoption of Haskell. I smell empty motives. Haskell seems to have done fine without mainstream recognition.

</comment><comment><USER10> I don't know why people say Haskell is difficult. It's certainly different, but once you know Haskell (which is perhaps the difficult step) you'll find that you can, and that you are even encouraged to, hand over much of your responsibility to think to the type checker.

Haskell makes you lazy, in a good way.

</comment><comment><USER8> Answer: it should be clear by now that the mainstream has decided that any viable language must have an Algol-like structure. It's as simple as that; that's what industry languages look like. They are familiar, comfortable and just have an 'industrial' feel to them.

<comment><USER13> There are several other issues than just that.

Haskell's bondage-and-discipline insistence on functional purity makes it very difficult to mix multiple kinds of effects. If you only use one kind of effect, There's a Monad for That (and you probably don't even have to understand monads!), but once you want to use multiple kinds, you suddenly need to really understand monad machinery (transformers, combinators, etc.). And if you're avoiding monads and comonads, you have to use entirely separate purely-functional data structures.

In addition, Haskell's strong emphasis on statically-determined behavior over run-time decision making creates a language prone to unextensible software. It's not that functional programming and static typing are not useful; it's that industrial programming can take much better of object-oriented and dynamic features, specifically the modularity and extensibility of classes and virtual methods, than of functional and static features. Haskell is suitable for code that you write once, perfectly, but industry needs a language for software you write again and again, never quite right but good enough to ship.

<comment><USER14> It turns out that purely functional data structures are useful _anyway_ as a solution to concurrency, though.

<comment><USER15> Immutable structures, yes. And you can get those without Haskell's other baggage. Haskell is great for research in persistent data structures because it is impossible to cheat. But then it is more industry-practical to port the algorithms than write an application in Haskell. check out Google's MapReduce and Flume papers, for example.

</comment></comment></comment></comment><comment><USER16> Who cares? Those who choose to use Haskell and leverage its awesome win! :-)

</comment><comment><USER17> So, basically, nobody uses haskell because nobody uses haskell.

<comment><USER18> Network effects are hyper-exponential. I don't have citation for this, but it would explain why most things don't get mainstream attention even if they are good.

</comment></comment><comment><USER18> I have been learning Haskell off and on for the last few weeks, and I can already see the elegance of it. It's given me some perception about how I can improve my code on more mainstream languages.

I'll probably continue writing toy code with Haskell, but which is the most popular programming language that encourages a functional programming paradigm?

<comment><USER15> Clojure. But it's dynamically typed, not statically typed. And it is mostly eager not lazy, but is growing more laziness/fusion features.

OCaml, static and functional, but eager not lazy, but it lacks JVM compatibility (and FFI to non-functional C doesn't help very much) so it tends to only work for problems that don't need to third party libraries.

<comment><USER8> No they aren't. The question was "which is the most popular programming language that encourages a functional programming paradigm?". Common Lisp is easily the most popular language that fits this description. Both Clojure and OCaml are still very much niche languages, and certainly cannot be described as popular.

</comment></comment></comment><comment><USER19> Because language wars.

</comment><comment><USER20> The internet is an extremely efficient judge of usefulness. If your pet language isn't taking off like a rocket and displacing the competitors, then it's because it isn't much better (maybe even worse) than the existing solutions.

<comment><USER21> Most web apps have a very low bar of good enough when it comes to language requirements. Especially when solid frameworks have already been written for alternative languages. Right now I'm doing Rails—Ruby isn't the absolute first language I'd choose, all things being equal, but it's good enough that I don't have a lot of motivation to use something else.

(Previously, though, I was doing work on ancient Java servlets apps without any additional framework. That was frustrating enough to make me look for something else!)</comment></comment>


Ask HN: Who can downvote?  How does one get that privelege? - <AUTHOR>

Also, does karma effect how your submissions rank? <comment><USER2> You get downvoting privileges at a certain karma (since about a year ago, 500 points; this is periodically raised as the average user's karma goes up.) Flagging ("this is spam") and the ability to make polls are also based off karma.

Karma has no effect on the rank of your submission or the weight of your votes. However, average per-comment karma has a (mild) effect on the ranking of comments. Additionally, flagging has a severe effect on the ranking of submissions (negates ~10 upvotes, sufficiently-flagged submissions go [dead]). Flagging does not seem to change the ordering of comments, but too many flags make a comment go [dead]. Users that (repeatedly) make comments that get flagged [dead] tend to find themselves hellbanned.

<comment><USER3> If the average user karma is periodically raised, and downvoting privileges are somewhat based upon this, then over time does it become more difficult to become an influential member?

<comment><USER4> It's (by definition almost) fairly easy to become an influential member of a group of 3. Much harder in a group of 300,000. This has little to do with how karma etc. works.

</comment></comment></comment><comment><USER5> 500 karma for down voting. Submissions are ranked on votes on the submission.

Disclaimer: That's best to my knowledge.

<comment><AUTHOR> does a vote from a high karma member count or more?</comment></comment>


Mobile trends, web and native - <AUTHOR> http://www.slideshare.net/robnyman/mobile-trends-web-native

<comment><USER2> This doesn't really say much about sectors, though. Sure, lots of people are creating apps that are HTML5 wrappers, but what do these apps actually do? Are they just wrappers around websites? Do they preform any serious functions?

Obviously, 95% of graphics- or CPU-intensive apps (eg. games, graphics utilities) are going to be native, but this isn't implied in the slide deck -- indeed it almost suggests (somewhat disingenuously) that the "trend" toward non-native includes games, which is silly.

<comment><AUTHOR> The slide deck touches on sectors, in the sense of Consumer, Professionals and Enterprise (but no what's games etc). It would be interesting to have numbers for, say, number of how many apps are made through PhoneGap and what they do. With games, though, there's is a strong evolution in the direction of other alternatives than native: through asm.js, Unity engine and more: [https://blog.mozilla.org/blog/2014/03/18/gdc-2014-mozilla- an...](https://blog.mozilla.org/blog/2014/03/18/gdc-2014-mozilla-and-partners- prove-the-web-is-the-platform-for-gaming/)

<comment><USER2> This depends on how you define "native" \-- asm.js code is run-time compiled to assembler (I'm assuming that's where the name comes from) so is running "natively", as if you shipped your C++ application with the source code and a compiler, and compiled and ran it when the user opened the app.

The Unity engine has 98% of its hardware-intensive functionality compiled natively on the device, with only a small percentage of the remainder being interpreted code. Once again, it's hard not to call such an app "native" since there's no interpreter layer between the instructions and the bare metal of the device.

I worry that by suggesting these examples are "non-native" you're placing them on the same bar as HTML5 / JavaScript which is largely interpreted. I think a distinction needs to be made between languages/engines whose code is largely native and / or compiled at runtime, and languages / engines whose code is largely interpreted while running. There's huge performance implications between these two categories.

<comment><AUTHOR> In general, for what asm,js covers, and what it doesn't, it's probably best to look at [http://asmjs.org/faq.html](http://asmjs.org/faq.html)

With Unity and the Epic Unreal Engine, the goal is to be able to build games that will be able to run anywhere in a web/WebGL context: [https://blog.mozilla.org/blog/2013/03/27/mozilla-is- unlockin...](https://blog.mozilla.org/blog/2013/03/27/mozilla-is-unlocking- the-power-of-the-web-as-a-platform-for-gaming/)

I believe it's also about finding ways to make interpreted code much more optimized as well. We also fairly recently had a blog post about asm.js and where it's going: [https://hacks.mozilla.org/2014/05/asm-js-performance- improve...](https://hacks.mozilla.org/2014/05/asm-js-performance-improvements- in-the-latest-version-of-firefox-make-games-fly/)

</comment></comment></comment></comment><comment><USER3> _The more tools a developer uses, the more money they make_

What? This must be the most obscure factor of a success I've ever heard...

<comment><USER4> I agree as well. This is one of those correlation != causation cases.

<comment><USER5> The slides don't imply causation though.

The way I understood it, it's an interesting observation that might lead you to wonder _what then_ is the cause: something that causes both profit and tool use.

</comment></comment></comment><comment><USER6> Wow, is Pandora popular: 69 million unique US users in June 2014.[1] I thought they would be getting hammered by Spotify, Beats and other newcomers.

[1] [http://qz.com/253527/these-are-the-25-most-popular-mobile- ap...](http://qz.com/253527/these-are-the-25-most-popular-mobile-apps-in- america/)

<comment><USER7> Too bad streaming music has such razor thin margins. "The Music industry" basically allows Pandora to live, but just barely. Looks like that industry will be a loss leader for other more profitable businesses.

</comment></comment><comment><USER8> I know nothing about mobile development, but I am surprised that 26% of app are considered C/C++ (and it does not include Objective-C). Is it only referring to game engine like Unity ?

<comment><AUTHOR> [creator of the slide deck] As empressplay mentioned, there could be specific needs that warrants that. Those numbers are from a Vision Mobile survey and its replies: [http://www.developereconomics.com/reports/developer- economic...](http://www.developereconomics.com/reports/developer- economics-q3-2014/)

<comment><USER9> Do you have a video/talk with the slides? because it feels a bit like a movie without the sound when one only sees the slides.

<comment><AUTHOR> Unfortunately not, it wasn't filmed. And I agree, slide decks need the presentation to go with them. With numbers, there's a lot up to you to draw conclusions.

</comment></comment></comment></comment><comment><USER10> It's quite misleading to have a slide showing Worldwide market share by platform with iOS at 12% and then have the following slides show US statistics (where iOS is at 42% ([http://www.macrumors.com/2014/09/05/apple-comscore- july-numb...](http://www.macrumors.com/2014/09/05/apple-comscore-july- numbers/) )). IMHO the presenter should've stuck to worldwide stats or US stats throughout.

<comment><AUTHOR> [Presenter here] Not sure how it would be misleading when the region is clearly stated in respective slides and in the linked resources. Naturally it's interesting to talk both about global trends and more local ones (like in the US).

That said, for obvious reasons, most research is being done in the US. I'd love to see more surveys and studies target more markets and globally.

<comment><USER10> Well it's presented as a trends piece, and unless I read the fine print, it's not clear if I'm being presented with US trends or worldwide trends and that changes from slide to slide... Perhaps you made it abundantly clear in the video/in-person, but I think it's a valid point not to have to read the asterisk, and instead just expect things to be consistent.

With that said, I enjoyed the slides.

<comment><AUTHOR> I hope it was clear in person/context, and I also tried to keep it clear in every slide (agree that reading the fine print shouldn't be necessary).

And thanks, glad you liked the slides!

</comment></comment></comment></comment><comment><USER9> What are you holding on the first slide?what model(I get it's a "portable phone").

<comment><AUTHOR> Can't remember the specific model, but it was a Motorola NMT red something - probably from late 80s/early 90s.</comment></comment>


Evidence That Bike Helmet Laws Don't Help Rider Safety - <AUTHOR> http://www.citylab.com/commute/2015/11/the-latest-evidence-that-helmet-laws-dont-help-bike-safety/415101/?utm_source=atlfb <comment><USER2> Two important things about helmets:

1\. Helmets are very very useful if you're riding fast. In fact they are mandatory in all cycling sports. However most people don't commute to work going much faster than they would if running, hence they are not very useful for them.

2\. In countries where helmets are compulsory, the chilling effect of risking a fine for not wearing a helmet has meant a decrease in the number of cyclists. Now, since bike accidents are relatively rare, but the health effects of cycling to work rather than driving benefit every single cyclist, helmet laws tend to have a negative effect on public health.

This said, whenever I'm going for a sporty ride (longer, or faster than usual) I usually wear a helmet. When riding 5 minutes to meet a friend for a beer I don't.

<comment><USER3> helmets are really useful if you are riding slow too, I was pulling out of a driveway, there was a little bit of black ice that I didn't see, my front wheel went out from me and before I knew it I was down: could not react, one second I was upright, the next second I was on my side and yes, my helmet was cracked by this fall (hit the side of my head on the cement), if I didn't have it it'd have been a much worse day than the very mild headache I got from it.

I really don't understand all these "helmets don't help" folks, having ridden motorcycles and bikes all my life you would not catch me dead without a helmet: a helmet is not an invulnerability cloak but in the end if you fall down and hit your head and you don't have one, you are not going to be in a good place, whether you are going at walking speed or 30mph.

<comment><USER2> Then why don't you wear a helmet when you're walking on ice as well?

I'm not saying helmets don't work, I'm saying it's not very likely to hit your head at high velocity on the ground if you were going 10 km/h. And if that means you're not gonna ride a bike at all because you forgot your helmet you're probably having a higher risk of cardiovascular disease further down the line than you have of breaking your head now.

<comment><USER4> > Then why don't you wear a helmet when you're walking on ice as well?

Because bikes constrain falls. Millions of years of evolution plus my own personal practice means I'm pretty good at falling safely. But when I am wrapped around a bike, a lot of that goes out of the window.

Also, I'd like to see some stats on your "not very likely". In 20 years of adult riding, I've fallen twice at low speeds hard enough to crack a helmet. And that's not counting the time as a kid I knocked myself unconscious on a low-speed ride.

> because you forgot your helmet

Is this a problem people have? When I'm not riding, I clip my helmet to my bike. This doesn't strike me as a particularly challenging habit to develop. Maybe just keep necessary equipment together? That sounds easier than trying to decide whether the odds are small enough to risk traumatic brain injury.

<comment><USER2> > Also, I'd like to see some stats on your "not very likely". In 20 years of > adult riding, I've fallen twice at low speeds hard enough to crack a helmet. > And that's not counting the time as a kid I knocked myself unconscious on a > low-speed ride.

And in 28 years of both adult and kid riding, with some years totaling over 3000 km, I've fallen several times, even cracked a couple of ribs, but never once hit my head. See that's the problem with anecdotal evidence.

> I clip my helmet to my bike

Do that in Rome, you'll come back to find none.

<comment><USER4> > See that's the problem with anecdotal evidence.

I'm not the one who said "not very likely". I'm not offering my story as evidence, just as an explanation for why I'd like evidence.

> Do that in Rome, you'll come back to find none.

I was speaking of the "I am going riding now" case. In Rome can you leave your bike outside overnight? In SF you can't, so people store bikes and helmets indoors. In which case, I'd submit that storing them together is a pretty good idea.

Helmet theft might be a problem here in the "I am already out riding" case. Where I worry about that here, I clip my bike to my bag, so again it's not a "I forgot my helmet" problem.

</comment></comment></comment></comment></comment></comment><comment><USER5> The money quote

 _" [Bike lanes] has dual advantages, both reducing injuries and encouraging cycling, an important public health goal of its own given the physical activity and environmental benefits. Comparisons between North America and the Netherlands or Denmark have long suggested that their route design focus is better at welcoming cycling and achieving lower injury rates. Many were concerned that Dutch and Danish infrastructure wouldn't have the same impact here, but there is more and more research in North America showing that it does."_

<comment><USER6> Absolutely, infrastructure is the real solution. Even if the full Dutch-style bike lane is not possible, quite minor things can make a difference.

E.g. around here there are some advance cycle stop zones and advance green lights for cyclists. Both are easy to implement but make a big difference to a cyclist's safety and visibility at a junction.

<comment><USER7> We have those advance stop lanes for cyclists here, cars just ignore them even when there's cyclists stopped in them ...

<comment><USER6> That's a shame. They do require cooperation from car users to be effective. There are a lot of cyclists where I live which probably helps things.

</comment></comment></comment></comment><comment><USER8> Here is something that _will_ help you as a cyclist, pedestrian or pretty much anything else except transportation where you're boxed in: learn how to fall. Take some judo classes and learn how to control how you hit the ground, that's _everything_ there is to it short of blunt impact against a lamp post or something like that. If you can roll with a fall rather than simply absorbing the energy with impact or abrasion then you're much more likely to walk away from an accident either entirely unharmed or maybe with some minor injuries. It always surprises me how terribly bad people are at something as basic as falling, which we all do at least several times in our lives and which when handled badly can cause injury or death. Falling with some grace is a very important skill to have.

Also: when you're older your bones will take much less abuse before they break than when you're younger so be more careful when you get older.

Helmets on bikes: if it makes you feel better: wear one. Don't make them compulsory because the statistics are not clear-cut that wearing a helmet is a good thing in more than 50% of the cases. For kids, probably better, if you're in-experienced or insecure, probably better. If you're an adult, know your bike and you're not going for some kind of record you should have the option to cycle without.

<comment><USER9> Helmet laws aside, please look at page 16 of this report before talking about how effective helmets are: [http://www.nyc.gov/html/doh/downloads/pdf/episrv/episrv- bike...](http://www.nyc.gov/html/doh/downloads/pdf/episrv/episrv-bike- report.pdf)

edit: tl;dr for you obviously, but ~200 people died over 8 years in NYC. Where helmet use was noted in the police report (~ half), 97% of fatal accidents involved people not wearing helmets. Someone else can do the Bayes' numbers but it's pretty obvious. Anyway, I support bike lanes and oppose helmet laws. But I wear a helmet.

<comment><USER10> 97% vs how many that don't wear helmets at all? Also 97%, or 70%, or 50%? That's pretty important for understanding how much the risk increases.

</comment></comment></comment><comment><USER9> It's easy: laws or not, wear a helmet if you value your life (or brain). Every cyclist I know has a story of unexpectedly ditching. Even some of them at a dead stop, embarrassingly. I personally have cracked a helmet and walked away.

You are higher up, have less stability, and as good as you are you don't control many types of collisions (negligent/distracted drivers). It only takes a very minor fall and some bad luck to end up with brain swelling, cracked skull, or a corpse.

Here is a helment advocacy group's take with links to relevant statistics, opposing views: [http://www.bhsi.org/shouldi.htm](http://www.bhsi.org/shouldi.htm)

<comment><USER11> I live in the Netherlands, never ever did I see anyone with a helmet up until recently (all of a sudden people put them on their kids). I learned to ride a bike at 4, never with a helmet. I have never seen anyone with head injury. Perhaps it is because we don't go that fast, a typical bike looks like this: [0], no gears, relaxed posture. For Mountain biking I do wear a helmet, as does my 3yr old son, but not for normal biking.

"It only takes a very minor fall and some bad luck to end up with brain swelling, cracked skull, or a corpse." I really don't believe that, you are just spreading fud, I have seen people fall but you must be pretty slow to react or go really pretty fast if you can't just put your arms in front of your head or step of a falling bike.

It's easy, never force people to wear a helmet, allow them to arrive at work with hair intact and without hassle, if you value a healthy population that enjoys bicycling (yes yes our views on that are probably the same).

[0] [https://www.google.nl/search?q=typical+dutch+bike&source=lnm...](https://www.google.nl/search?q=typical+dutch+bike&source=lnms&tbm=isch&sa=X&ved=0CAcQ_AUoAWoVChMIx_vWjoCLyQIVybsUCh04tAaw&biw=1680&bih=978)

<comment><USER12> You've grown up in what is probably the best place in the world to ride a bike, which makes your experience enviable but not typical. Here in the car- dominated USA it's a lot more dangerous to ride a bike because we're "sharing" the streets with fast cars that are sometimes inattentive or even aggressive. Plus, the maintenance of the streets themselves sometimes conspire against you, it's easy to lose control on a pothole or slick crosswalk marking. I have had a couple of falls where my head whacked the pavement, and was very glad I was wearing a helmet.

Edit: This video says you're 30 times more likely to be involved in an accident in the US than in the Netherlands: [https://www.youtube.com/watch?v=m2THe_10dYs](https://www.youtube.com/watch?v=m2THe_10dYs)

</comment></comment></comment><comment><USER13> Statistical significance or not, I have exactly 1 head/brain that has been saved from significant injury thanks to wearing a helmet.

Happy to ride my anecdotal evidence all the way to the bank.

<comment><USER14> Why not wear it all the time, or at least when travelling? Per minute, the odds of a helmet saving your life are much higher in a car than on a bike.

<comment><USER9> Because in a car, you are protected by airbags, crumple zones, seatbelts, and many other safety features that aren't available on a bike.

<comment><USER14> The statistics by their very nature take all that into account. (And very few cars have ceiling airbags or crumple zones)

<comment><USER9> I don't think the gp post or mine mentioned any statistics so I can't respond.

</comment></comment></comment></comment></comment><comment><USER15> There's one problem with all reports like this - people who have a crash in a helmet and are fine usually don't report anywhere. I flew over the handlebars and hit the edge of a curb with my head - the helmet split in two but I was fine. If I didn't have a helmet on, I would be dead, I am very certain of that. Yet, my accident - like I am sure thousands of other similar - was not reported anywhere. There is no statistic that measures this. And I think it's absolutely vital for producing reports like this.

</comment><comment><USER16> Over my lifetime riding bikes I have witnessed two major crashes where both non helmeted victims survived with life changing traumatic brain injuries.

One fell off a low bridge and the other was riding causally along and somehow ended up going over the bars and hitting her head on the curb.

Seeing just one of these was all the reason I needed to never ride without a helmet.

I wear a couple types depending on what sort of riding I'm doing (mountain, road, racing) they are MIPS equipped when ever available.

</comment><comment><USER17> Seems like the UK has it about right then, where wearing a helmet is encouraged but not compulsory.

I do wear a helmet, even though it's a pain. Reading around I see a lot of sites claiming they are not effective, but it always seems to be secondary effects - like, cars will pass you more closely, or you will ride more riskily due to a false sense of security. Are there any studies on the actual safety record? Intuitively it seems like of course it will be better for you if you fall wearing a helmet - is this true?

</comment><comment> the-dude From a Dutch perspective the comments are hilarious.

</comment><comment><USER18> What do hospitalization rates have to do with injury rates, with respect to head injuries?

Totally anecdotal story, but when I had my last major bike crash (20mph crash during a race), I went to the ER to get checked out. I probably didn't need to go; I knew I had a concussion and lots of abrasions (and know how to treat both). This proves nothing about the efficacy of wearing a helmet.

</comment><comment><USER19> I feel sad for the people on this thread advocating unconditionally for wearing a bike helmet. They must have to deal with terrible circumstances to have come to that conclusion. Apparently they can't even imagine how one could bicycle safely without a helmet.

Keep at it though. It takes a few generations for culture and road architecture to change.

<comment><USER20> I don't understand why advocate against it, which people are actually doing in this thread. It's baffling. It's like advocating against the seat belt.

It's a safety measure. It doesn't preclude better infrastructure. Yes, there should be better cycling lanes. Many countries do exactly that whenever cycling is envisioned, they build better infrastructure. But you don't wear a seat belt because the roads have potholes, you wear them because they save your life and prevent injuries regardless of road conditions.

Is it _really_ terrible that people have to wear a helmet? Of course the focus should be on better protecting bikes (they're vastly different types of vehicles), but I'm not shedding any tears over people who claim they will stop biking because helmets ruin their hair. It's simply a basic preservation of health.

<comment><USER21> > I don't understand why advocate against it, which people are actually doing > in this thread.

Because cycle helmets cost money which could be better spent on just about anything. Because they reduce the number of cyclists (which is the worst possible thing to do if one wants to make cycling safer). Because they look stupid. Because forcing people to wear them is flat-out illiberal and hence wrong.

> It's like advocating against the seat belt.

I wear my seat belt, but I advocate against seat belt laws.

> Is it really terrible that people have to wear a helmet?

Yes.

> I'm not shedding any tears over people who claim they will stop biking > because helmets ruin their hair. It's simply a basic preservation of health.

Do you wear a walking helmet and a driving helmet too? Have you installed non- skid in your bathtub? Statistically, those measures are more effective than a cycling helmet.

</comment></comment></comment><comment><USER22> I can't believe this baloney keeps coming up. Bike helmets DO save lives. There are accidents where they save people's lives. Of course there are accidents where a helmet can't save you.

Obviously as well, bike lanes are really important. It's not an either or situation. We can do both.

<comment><USER23> No this is not a logical argument. Banning biking alltogether would even save more lives, so by your logic we should ban biking. This an other studies show, that there is no especial reason to wear a helmet during normal reasonable biking. The risks for your head are not significantly worse than when walking or driving a car. You are free to wear a helmet of your choice at any of those activities, but they are not required by law for any of those.

</comment></comment><comment><USER24> "Since helmet laws don't necessarily mean compliance, they looked at helmet usage, too, and once again found nothing."

Did the author _read_ the study? I can't find anyplace where it has _any_ data about usage. In fact, the words "comply(iance)" or "usage" don't appear in the document once, in any context.

Also, it doesn't distinguish between those who always wear helmets and those who claim they use helmets at least half the time.

<comment><USER25> > Data on helmet use in all jurisdictions were available from the 2009/2010 > CCHS via the following questions: "In the past 12 months, have you done any > bicycling?" and if yes, "When riding a bicycle, how often do you wear a > helmet?"

> Figure 2 presents the helmet use data in table 3 graphically and illustrates > that helmet use was higher with helmet laws than without

</comment></comment><comment><USER26> I make my kids wear 'em to bed.

</comment><comment><USER27> i returned my helmet as being defective, since when i fell off my bike it didn't protect me from breaking my radius, and forcing me to go to the hospital. Stupid helmet laws, i knew they didn't work...

<comment><USER28> imagine if you didn't wear a helmet, would the injury be worst?

<comment><USER23> As I once broke my radius flying over the handle bars, I can at least stat for me: it was my broken hand. My head (I was wearing a helmet back then) never came close to the ground as I landed on my hands. Unfortunately one of them failed to stand the forces and broke. Perhaps without a helmet I had driven a bit less crazy and not crashed stupidly.

<comment><USER27> i tried that excuse with a cop once after being pulled over for not wearing my seatbelt... she was not amused.</comment></comment></comment></comment>


Show HN: ParsePort - A kill switch for Parse - <AUTHOR> https://github.com/stevegraham/parseport

<comment><USER2> I like Parse, I like firebase, I like all these neat services and their neat technology where they worry about the scaling for you and they worry about doing the bits for ease of use and push, but using unproven businesses who haven't provided the trust necessary to depend your livelihood on them seems really dangerous.

There probably needs to be an SQL for data APIs, which includes a common, shared API format, and exports and imports. When you use SQL for something like Postgres or MySQL, you don't get locked in. You can export your entire data complete CREATE TABLE and INSERT statements. You take that and move from AWS, to Rackspace, to Azure, to your own machines whenever you want.

Services like, they don't have that. You get locked in.

Also you have typos.</comment>


Encrypted Communications Service Goes Silent - <AUTHOR> http://www.dailysecnews.com/2013/08/encrypted-communications-service-goes.html

<comment><USER2> I am really sad that lavabit.com is now gone. Why? It seems like all our rights are being washed away.</comment>


Apple Denies Any Breach of Its Systems in Celebrity Photo Hacking - <AUTHOR> http://techcrunch.com/2014/09/02/apple-denies-any-breach-of-its-systems-in-celebrity-photo-hacking/?utm_campaign=fb&ncid=fb

<comment><USER2> > The distinction Apple is making is clear – certain iCloud accounts may have > been accessed, but that didn't happen as a result of any systematic flaw in > Apple's security systems or cloud services. Instead ... possibly running > through multiple options until you find the right one.

Could someone confirm if iCloud had incremental delay to prevent dictionary attacts?</comment>


The horse and I: Zillow for horse ownership - <AUTHOR> https://medium.com/@alanjamescurtis/the-business-y-stuff-f91521452dd4#.6zf58lbvm <comment><USER2> Last I checked, Airbnb isn't for home buyers. That title is crap.

<comment><AUTHOR> Ah, sorry, you're correct. I changed it to Zillow, which is still not the perfect analog, but closer than AirBnB.</comment></comment>


A Modern Browser - <AUTHOR> http://blogs.msdn.com/b/tims/archive/2011/02/15/a-modern-browser.aspx

<comment><USER2> Since the comments on Tim Sneath's original post are broken at best, I'll paste my original reply here:

First, IE9 doesn't fully support mature HTML5 and CSS3 standards. Congrats, the only tests you pass are the ones that your own department submitted to the W3C. Everyone else's show IE9's Release Candidate as having less support than other browsers released 1-2 years ago.

Second, nice job cherry-picking a single paragraph out of one of the few comments in the Hacker News thread supporting your position. You also conveniently omitted the scalding final line of that paragraph: "It's just a shame they're not providing it on XP." This is typical of your response in general: you've responded to absolutely 0 of the actual criticisms of your product, and instead decide to praise the few improvements you happened to make over IE8.

You're only providing your new browser to a small fraction of the OS market, it still doesn't support stable and mature spec features, the ones you do support are still wildly broken (canvas, _ahem_ ), and you remain silent through it all.

I had high hopes when you initially announced your plans for IE9 all those months ago. It's a damn shame they turned out to be nothing more than marketing smoke and mirrors.

<comment><USER3> _You're only providing your new browser to a small fraction of the OS market_

I still fail to grasp the argument of IE9 not being released for XP. I mean, the OS is ten years old, upgrade already.

<comment><USER4> I have a _huge_ number of clients that are still actively using XP. The fact is, XP, for many people, is good enough. The only reason they're upgrading at all is purely due to attrition -- their old computer dies and they replace it with something running W7.

And this is ignoring my corporate clients, who are using software that is integral to their business, that hasn't been updated in years and does not run correctly on Windows 7.

The "always be upgrading" mentality in the computer industry is a _serious_ problem for end-users.

<comment><USER5> Unlike Chrome that is automatically "always upgrading" itself. End users here seem to love that :p

<comment><USER6> But unlike the Windows upgrade cycle, this costs nothing.

Even though there are usually feature updates mixed in with the bug fixes and security issues, many people (especially non-techie people) lump the Chrome updates in with OS updates as a necessary part of maintenance like changing the oil in a car.

Upgrading Windows beyond XP currently adds very little of significance to most people though, particularly corporates with many many desktops to upgrade (and people to support when they do) and home users with limited cash.

From a designers point of view the "just upgrade already" argument can't wash. We can't force our users to upgrade there OS (we can only just get away with cajoling them into upgrading their browser or occasionally (but increasingly) choosing an alternative (though this is less of an option for corporates for the usual reasons).

The accusation is that MS is trying to make IE9 one of the reasons to upgrade (and therefore pay for that upgrade). This is the same accusation levelled at them with DX10 and later, and it is equally correct (and equally understandable from their commercial PoV). In the case of the browser though this is seen as more onerous because your internet access method is more ingrained in your life and much more potentially damaging when there are security issues.

A large client of hours (a major bank) is rolling out IE8 to their users (who are currently stuck on IE6) in a few months time. If IE9 had promised XP support they might have planned to roll that out instead, though a little delayed as they would need to wait for at least the RCs to start their main roll-out testing - so IE9 not being available on XP is definitely going to have an effect on the number of people still using the irritations that are IE6/7/8 in corporate environments.

</comment></comment></comment></comment></comment><comment><USER7> From the linked "Download Squad" "thinking"

> Don't be mesmerized by the tawdry typography, though: with juicy propaganda > it's always what isn't said that matters. There is no mention of IE9's > hyperspeed JavaScript engine, Chakra. There's no mention of pinned tabs or > per-process tabs or Tracking Protection Lists. It feels a bit like a > scrawny, bespectacled geek throwing stones at a fat billionaire with three > trophy wives -- the nerd is probably right, but the pimp doesn't really > care.

the next paragraph, somehow, begins with

> There's no doubt that Firefox 4 implements a broader range of Web > technologies -- and don't get us wrong, it is an excellent browser -- but > more stuff doesn't necessarily equate to better stuff.

This is what passes for logic nowadays?

</comment><comment><USER8> I don't understand how they can defend that position. Yeah, it's their job and they might be very proud of their work, but they can't be that dumb.

Haven't they learned the lesson? Everytime they try to come with something, the community backfires even harder. Let's just remember what happened with the IE9 team[1] and the Hotmail team[2] on reddit's AMA.

1: [http://www.reddit.com/r/IAmA/related/dkk3l/iama_we_are_membe...](http://www.reddit.com/r/IAmA/related/dkk3l/iama_we_are_members_of_the_ie9_product_team_here/) 2: [http://www.reddit.com/r/IAmA/comments/ej32l/we_are_the_hotma...](http://www.reddit.com/r/IAmA/comments/ej32l/we_are_the_hotmail_development_team_lets_talk/?limit=500)

</comment><comment><USER9> The elephant in the room is Google Chrome.

Both IE9 and Firefox 4 (I think) lack Chrome's automatic updates. They simply cannot bring new features and bug fixes to users as quickly as Chrome can.

You can spend 1-2 years working on a major release, but if the competition is rolling out automatic updates every 6 weeks, you're at a major disadvantage.

<comment><USER10> Microsoft has had automatic updates for years now, I believe. Firefox seems to have no problem prompting me to update it when its required.

I'm not sure I understand what disadvantage they're at?

<comment><USER11> The difference is that I notice when Windows updates, and I don't notice each time that Chrome updates.

<comment><USER5> And is that a good thing or bad? For me, its scary. It means I won't know when and how things will break. What if some eople have turned off automatic updates and never receive the new update? It just creates thousands of configurations for a web developer to worry about. And what if its a legacy application that is no longer maintained? Who is going to fix that just because Google just decided to automatically update their browser?

I absolutely hate the auto-update feature of chrome.

<comment><USER12> "What if some eople have turned off automatic updates and never receive the new update?"

You can't turn off automatic updates in Chrome.

"It just creates thousands of configurations for a web developer to worry about."

Absolutely the opposite. I don't know why this is so hard to see. When users aren't given the option to update, they all end up with the same version. So there is literally only one configuration to worry about.

</comment></comment></comment></comment></comment><comment><USER13> Does Tim Sneath, not realize that "modern browser" was just the rhetoric Paul Rouget was using to classify HTML5 support (and JS api, CSS3, etc)?

Who cares what you define "modern browser" to be? Rouget's point that IE9 still doesn't support the feature set that FF3.6 did is a valid concern.

Will MS push for larger feature set support? Will I have webworkers on IE9? What about javascript strict mode? When do I get SMIL Animations?

These are the questions I care about, not "what does modern browser mean?"

</comment><comment><USER14> "Modern browsers enable rich, immersive experiences.."

To use their own example:

[http://ie.microsoft.com/testdrive/Graphics/VideoCity/Default...](http://ie.microsoft.com/testdrive/Graphics/VideoCity/Default.html)

vs

[http://videos-cdn.mozilla.net/serv/mozhacks/flight-of-the- na...](http://videos-cdn.mozilla.net/serv/mozhacks/flight-of-the-navigator/)

Which one is more 'modern'?

<comment><USER15> Not really sure. The MS one runs extremely slow in Chrome 10 (dev build), but the Flight of the Navigator never finishes loading at all.

<comment><USER14> Sounds like Chrome isn't a "modern browser" then.

</comment></comment></comment><comment><USER16> Some of the things they don't support aren't new, and are important for an "immersive experience"

Perfect example: CSS transitions. It's been around a while... like 3 years.

Having no support and nothing to show for, in respect to something with an Editor's draft out from the W3C, (css transitions, for example), just proves you're really good at dragging your feet.

<comment><USER17> It looks like CSS transitions just showed up in 2009 (<http://www.webkit.org/blog/324/css-animation-2/>)

And even then it was just a proprietary vendor extension. It's not like it was part of the draft standard at that tmie.

If MS adds a new feature to IE, does that start the clock on when everyone else needs to implement it?

<comment><USER16> That's CSS animation. There's a blog post from Surfin Safari dating back to 2007 for CSS transition, and a Mozilla article dating back to 2009 (might have been implemented before that)

So... two implementations older than 2 years.

<comment><USER17> The only thing I see in 2007 about this is an announcement that they're going to do it. Can you find a pointer to the blog entry announcing that it is available?

<comment><USER18> <http://www.webkit.org/blog/138/css-animation/>

> We have another cool new CSS feature to talk about: animation specified in > CSS. There is a lot of ground to cover here, so we'll start with the basics > first.

There are two technologies here, though both sometimes use the word "animation" they're separate: they implemented transitions in 2007 (using transition-* properties [0]), transitions are used to smoothly go from one state to an other and _they are implicit_ : you only say which CSS property will transition and over which duration and the browser will handle all the decisions within that scope.

CSS animations[1] were added in 2009[2]. They are related to transitions but they're explicit and keyframe-based. Much more complex, but much more flexible as well (for instance you can have back and forth movements with animations, but not with transitions).

[0] <http://dev.w3.org/csswg/css3-transitions/>

[1] <http://dev.w3.org/csswg/css3-animations/>

[2] <http://www.webkit.org/blog/324/css-animation-2/>

<comment><USER17> Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER19> In order to get to the content, I had to click "Continue" on a window that said, "This site is insecure. Are you sure you want to continue?" Once I passed that, I got to see the "Agree to Legal Terms" page. I didn't want to read legal terms, I wanted to read about "A Modern Browser," so I don't know how many more obstructions there were after that.

Just thought it was kind of ironic.

</comment><comment><USER20> This post is incredibly vague, and it is missing the point. First of all, it doesn't explain the huge lack of standards in IE9 that Paul Roget mentions. And second, it forgets that IE has a really awful record on making browsers (IE has been the biggest drag on the web being more usable and modern for the last 10 years).

At least Paul's post gives a tangible and definition of what 'modern' means in form of checklist points that are easy to prove true or false just by looking at the browser implementation. How do you measure 'modern', Microsoft? You will have to do better than saying it is 'faster' and that provides 'rich, immersive experiences'.

Mozilla hasn't stopped pushing the web to its boundaries and making a big effort to put standards first during all these years. And there is no doubt that the new Firefox will be a much better browser than the new IE (check out the beta).

Also, where is the strict mode in IE9?

</comment><comment><USER21> The real takeaway from this story seems to be that Microsoft reads and responds to #HN

<comment><USER22> The author of the linked article manages to be wrong twice by referring to HN as "YCombinator" - confusing the company with the forum, and misspelling the name of the company (which I believe should have a space in it).

Only MS can make so many errors within such a limited window of opportunity ;-)

<comment><USER23> I can't speak for Microsoft, but I tend to refer to Hacker News as Y Combinator News simply to avoid misunderstandings. It's easier to get the name wrong than to explain "No, not that kind of hacker. There's a non-pejorative definition as well...."

</comment></comment></comment><comment><USER24> Am I the only one who thinks Microsoft should drop IE and start using Webkit ?

</comment><comment><USER25> Honestly, I don't understand why so many people are frustrated about what defines the modern browsers. If you are not happy about a product, you don't have to use it. If you don't use it, the manufacturer will know that something is wrong.

Plus, the word, modern, is so vague. As Microsoft did, it can mean totally different things to different people. HTML5 isn't standard, yet. There is very little number of websites that fully utilize the capabilities of HTML5.

Now, go grab a cup of coffee and do something more productive :)

<comment><USER26> I don't think most are concerned with IE9 because they'll be using it themselves. It's more than they'll have to develop to support it, and if Microsoft put a reasonable effort into this it would mean much less work for web developers.

</comment></comment><comment><USER27> "Modern browsers enable rich, immersive experiences that could hitherto only be delivered through a plug-in or native application. They can blend video, vector and raster graphics, audio and text seamlessly without sacrificing performance."

Ok, when can we expect WebGL support then?

</comment><comment><USER28> Seems to be a good answer to me. I want something that works and is fast. I could care less what technology it is using... as long as it does what I want it to do.

</comment><comment><USER29> why can't 'modern' also mean 'compatible?'

</comment><comment><USER30> HTML5 is descriptive, _not prescriptive_ , so the complaint about features not being ready doesn't make sense. They're ready _when browsers ship them._

<comment><USER18> To be fair, HTML5 is a mix: a mix of stuff which already exists and was standardized (from a number of browsers) and of _new_ stuff which was built from ground up for the occasion.

<comment><USER30> And yet the new stuff is ready only when at least two implementations ship it. This currently means at least two out of Gecko, WebKit and Opera. Does Microsoft really never want to be one of the two?

</comment></comment></comment><comment><USER31> Am I seeing right? An IE developer is claiming that modern browsers implement features/standards when they are ready?! What are we talking about, is this about the web that Microsoft had been trying to block for years? How dare!

</comment><comment><USER32> For me, a modern browser is one that runs on all the three major operating systems: Linux, MacOS and Windows. And not just on one of them.

<comment><USER33> A browser can be fully modern and platform specific; I fail to see your argument. Could a browser not be specifically developed for Haiku, Mac OS 9, or any other current or legacy platform and still be a modern browser even if it has the full feature set of Chrome?

</comment></comment><comment><USER34> In this case, Microsoft is staying classy. Mozilla, just barking to be the loudest dog on the playground. Sad...

<comment><USER2> Except that they responded to none of the real concerns with IE9 being labeled as a Modern Browser, and instead listed off the same marketing drivel we've been hearing from their camp for the past year.

<comment><USER17> They did respond. They said Mozilla's definition is wrong. No use arguing using the definition your opponent has if you don't agree with it.

<comment><USER35> And I do agree. Firefox 3.x I'd consider relatively modern.

<comment><USER17> Yeah, Mozilla's argument seems odd. It is basically saying that IE9 is _not modern_ because it is about on par with their shipping browser (FF3.6x) -- and lets not forget that IE9 has a better UI, better tab isolation, JS perf, and rendering perf than FF3.6x. If anything Mozilla should immediately urge all FF3.6x users to move to Chrome.

I think a more true, yet less controversial statement from Mozilla would be, FF 4 will leave IE9 (and FF3.6x) in the dust with respect to standards conformance.

I'd even agree with that. But saying that IE9 is not modern seems dishonest.

<comment><USER36> Sure. In one sense, anything is "modern" if it's developed this year, regardless of its feature set. So modern is probably the wrong word.

But the argument that a version of IE which hasn't even come out yet doesn't have features that other browsers have had for years are valid points.

I guess "IE9 sucks" was deemed not to be tactful enough.</comment></comment></comment></comment></comment></comment>


FoundationDB: A new generation of NoSQL database - <AUTHOR> http://foundationdb.com/ <comment><USER2> This is a beautiful site with tons of information, graphs, lists, examples, etc. and yet omits the one thing that underpins it all: how it actually works.

The claims are: serializable ACID cross-machine transactions "without performance penalty." MVCC with optimistic concurrency control.

Optimistic concurrency control means that the server has to check the version on all modified data before the transaction commits. Cross-machine transactions mean that this version check has to happen on multiple machines. ACID means that both machines have to either commit (if all the version checks succeed) or roll back. How are you going to reconcile all of these requirements without resorting to two-phase commit, which most certainly has a performance penalty? And how are you going to get serializable transactions across machines without processing these cross-machine commits one at a time (waiting for two-phase commit each time)?

I'm just not seeing it.

<comment><USER3> FoundationDB co-founder here.

I'll try to address your questions. This isn't a complete explanation of how our system works!

Most people trying to solve this problem have approached it by trying to take multiple machines, each capable of processing transactions, and do distributed transactions between them. This leads to systems that do local transactions fast but global transactions much more slowly, and a tradeoff between the quality of fault tolerance (paxos=good, 2-phase=bad) and commit performance.

Our approach is instead to decouple the first job you mention (checking if transactions conflict to provide isolation) from the second job (making transactions durable). These can then be scaled independently.

The first job, conflict resolution, is a small fraction of the total work and needs access only to the key ranges used by each transaction, not the existing contents of the database or the actual values being written. This allows it to be very fast.

The rest of the system is a consistent, durable distributed store that has to preserve a predetermined ordering of writes, and provide a limited window of MVCC snapshots for reads.

Does that help at all?

<comment><USER2> I still don't see it. Say you have conflicting transactions T1 and T2 that both update data on two machines M1 and M2. If these transactions race to commit, how do you guarantee consistency? Even if you have a perfect, zero- latency oracle that can tell you that T1 and T2 conflict, you still need M1 and M2 to form consensus about which transaction commits first, and to make sure that both machines either commit or roll back (I am assuming that both machines have their own transaction log). It still sounds to me like 2PC is required.

Specific questions: does each machine have its own commit log? Is each machine authoritative for its range of the keyspace, in that it can serve reads without having to consult other machines?

<comment><USER3> The conflict resolution service assigns a global ordering to transactions as well as pass/fail. Transactions that fail don't do any writes. Transactions that pass still aren't durable, they could be rolled back by a subsequent failure until they get on disk in a few places.

Each machine doesn't have its own commit log at the level of the distributed database. (The key/value store where we locally store data on each node happens to also use write ahead logging, but this is not an architectural requirement). Ideally transactions just have to be made durable in some N places to be considered committed. In practice, we elect specific machines to a transaction logging role, among other reasons because SSDs do better at providing fast durable commits if they aren't also serving random reads.

Each machine is authoritative for reads for some ranges of the keyspace and for the range of versions it knows about. It proactively fetches writes for newer versions. If it gets a request for a version it hasn't managed to get the writes for yet, the read has to wait while that storage server catches up. In practice this lag is very small, as you can see from our latency measurements.

</comment></comment></comment></comment><comment><USER4> Hmm. Okay. I open a transaction for three days (let's say indefinitely), maybe reading a few tuples here and there and updating a few, but never committing. How does this system not fall over? I guess it could abort my transaction...

Still, I think their performance numbers can be legit, because they are much, much slower than what a handful (much less than 24) machines could do if fully partitioned and without coordination. 500KRead/Second on such small values is not really fantastic performance over 24 machines. I also don't understand the initial burst-capacity on the read-side either, although I can guess -- on writes it can make sense because some work is deferred, but I'm trying to understand how that can happen on reads as well. My guess is a transaction ID allocation on-read that hits a wall somewhere.

Another common use case is I want to take a consistent backup/copy. For large databases, this is a very, very long snapshot to maintain, if MVCC, or a lot of locks to acquire, if 2PL. How does the system act then?

All in all, I think it's pretty neat, and I like that someone is dealing with OLTP database problems with a mind towards easing one's burden via transactions.

<comment><USER5> Re your first point - this is a problem for PostgreSQL also.

<comment><USER4> Sure it is. But I would say, more to the point, it's a problem for systems that support consistent snapshots. The question is: how does it deal with the failure condition?

</comment></comment></comment><comment><USER6> This very badly needs proof that it is, in fact, ACID compliant. Incredible claims require incredible evidence.

<comment><USER7> FoundationDB co-founder here.

Yes, we provide the strongest level of ACID semantics. Although proving things about large computer programs is pretty hard, we have spent much of the past three years building testing and validations systems to ensure this is true. We run tens-of-thousands of nightly simulations to check system correctness and properties in the face of machine failures, partitions, etc. We also run long-running tests on real-world clusters using programmable network and power switches to simulate these same cases in the real world.

So, we've convinced ourselves. What would you like to see on the site to help provide the kind of incredible evidence you're looking for?

</comment></comment><comment><USER8> Honestly... if you have figured out how to scale with full ACID... I have a hard time believing that having SQL support in there is going to "kill" your ability to scale.

<comment><USER9> I'm guessing that no-SQL documents are written at a more course granularity than SQL table rows. One document could well represent 3, 4, 5 rows in a normalized SQL database.

OTOH, if you put all your "documents" in 3rd normal form, you might not see much gain.

<comment><USER8> The overhead with transactions doesn't come from the fields being in different tables...

<comment><USER3> You are right. Our API is strong enough that you could implement a SQL database on top of it efficiently. I have done it (using sqlite4 as the front end) as a proof of concept.

</comment></comment></comment></comment><comment><USER10> I recommend having a read of this article explaining the differences between CAP and ACID: [http://www.infoq.com/articles/cap-twelve-years-later-how- the...](http://www.infoq.com/articles/cap-twelve-years-later-how-the-rules- have-changed)

TL;DR

ACID represents one design philosophy at the consistency end of the consistency-availability spectrum. According to CAP, to have the maximum Consistency of ACID, you'd need to trade-off against a lower Availability and/or Partitionability.

<comment><USER11> "Trading off against partinonability" is kind of a strange concept -- not only can you not prevent network partitions, you usually can't tell when they've happened until it's too late.

The real upshot of the CAP theorem is that you have to choose what goes in the face of a partition. An ACID system says you lose availability (writes, and possibly reads, fail if you can't reach a majority of the participants); an Eventually Consistent system may pick either.

</comment></comment><comment><USER12> Explain how you can have availability in the face of network partitions and a perfect total ordering to events (ie: the sequentiality you claim.)

<comment><USER13> You can use Paxos. There will be some partitions that can cause an outage, but this is only the case when there is no majority of nodes that can communicate with each other, which in practice means you are exposing yourself to a vanishingly small risk.

<comment><USER12> 3 rounds of communication to reach consensus for every transaction? Off the cuff, it seems like that would hinder the performance. I haven't tested it, though..

<comment><USER13> It doesn't have to be per transaction, it could be for a batch of transactions. There are also optimizations like multi-paxos that can reduce the number of round trips.

</comment></comment></comment></comment><comment><USER14> I worked under two of these guys two summers ago. They're really sharp guys and I have faith they can back up their claims.

</comment><comment><USER8> Looking at what they are providing, it's a shared nothing architecture, with data stored in ordered form. Technically, you can make this work in a very scalable fashion with an SSTable style store.

Think of it as LevelDB with a distributed B+ tree (or even just a few extra levels) handling the partitioning between nodes. That can scale quite well, and wrap updates and reads with snapshots at very low overhead to provide all the key bits to handle ACID in a distributed database.

<comment><USER15> What's problematic is when you have a transaction that span amongst several nodes and you need to reconcile several transactions (commit phase).

The usual way to do it is to refuse the transaction if a conflict is detected, however this is a real performance and useability issue for a NoSQL database.

What I'm implying is that if you have ACID transactions but they can fail very easily, you don't offer much...

<comment><USER11> It's not that hard to retry a transaction until some deadline is reached. Many programming languages have standard library facilities to make this extremely easy.

If the database is fast enough and transaction failure is at least moderately unlikely, it's not really an issue.

</comment></comment></comment><comment><USER16> Perhaps I'm being a designer-snob, but Twitter's Bootstrap has quickly become too popular. I honestly have a hard time taking a site seriously when it uses the default Bootstrap look.

Having a unique visual identity is extremely important.

<comment><USER17> Honestly, if someone wants to sell me a database, I'd prefer they spend money on database engineers rather than on designers. To each his own, I guess.

</comment></comment><comment><USER18> Is it just me or is there a new "superior-than-the-others" NoSQL solution every week?

<comment><USER19> Today's database is better than yesterday's.

</comment></comment><comment><USER15> I'd be surprised to see how they can be truly ACID and truly scale out.

This is an unsolved problem to me, I submit there are fine prints regarding ACID or scalability...

<comment><USER20> Jim Gray solved it in the 80s, but then we forgot about it.

<comment><USER15> To which of Jim's contribution are you referring to? I wasn't aware he designed a scale-out ACID transaction principle.

<comment><USER20> I was thinking of [http://research.microsoft.com/en- us/um/people/gray/papers/TE...](http://research.microsoft.com/en- us/um/people/gray/papers/TEs.pdf) although in retrospect I'm not sure if they implemented cross-node transactions.

<comment><USER15> To my knowledge, ACID transactions and scale-out architectures are mutually exclusive, unless I missed a major breakthrough.

<comment><USER20> Two-phase commit?

</comment></comment></comment></comment></comment></comment><comment><USER21> Without wanting to be any snarkier than usual, all-the-scale-without-the- compromise has been possible for decades. It's just really expensive.

<comment><USER22> How?

<comment><USER23> noSQL and YesACID. It's that easy.

</comment></comment></comment><comment><USER11> Your performance tests seem to have been run on a cluster that lives on one gigabit LAN. Have you tested a cluster that's distributed geographically?

</comment><comment><USER24> The claim to be the first acid compliant NoSQL database is wrong.

Bigcouch and Couchbase are around for a while. There is also CouchDB (without the scaling).

<comment><USER3> I was nervous writing that sentence, because it's hard to be sure of the truth of any claim to be 'first'! But none of the examples you mention, to my knowledge, provide _multi-key_ ACID transactions. A compare and set facility for an individual key/document/row/entity group/etc is a very useful feature, but cannot be used to provide atomicity or isolation for transactions that read or write more than one key.

We plan to write something longer talking about the different levels of support that various products provide for A,C,I, and D.

<comment><USER24> > But none of the examples you mention, to my knowledge, provide multi-key > ACID transactions

If you see it that way, you are right. The guaranty is just for one key/document pair (the key can be a key vector though). There is no way to have a commit over several key/document pairs with these databases.

If FoundationDB can do that, it is a big plus. If it can do it in a cluster, your product will have a great future.

</comment></comment></comment><comment><USER23> What exactly is "YesACID" ?

</comment><comment><USER20> Hey guys, I like units on the Y axis of graphs.

<comment><USER7> So do I. Fixed :)

</comment></comment><comment><USER25> I don't need to be convinced. No doubt this works as advertised. Nicely done.

<comment><USER23> Switching all my production code to use their alpha as we speak.</comment></comment>


Anyone Can Take Down Facebook Pages with a Fake Email Address - <AUTHOR> http://www.readwriteweb.com/archives/anyone_can_take_down_facebook_pages_with_a_fake_email_address.php <comment><USER2> I see a lot of people saying DMCA about this, but nowhere on that facebook page does it say you are submitting a DMCA request, so you can't possibly be charged with submitting a false one.

Yes, Facebook has to comply with DMCA takedown notices... These aren't necessarily those, though they could be.

Facebook could be handling this better, though. An automated form is probably the worst way imaginable (short of a 1-click link) to handle this.

</comment><comment><USER3> Golly, it sounds like re-inventing the web on top of a centralised platform has all kinds of problems! Who'd have thought?

<comment><USER3> (Alternatively: Golly, it sounds like having your business depend on a third party that has no obligation to you has all kinds of problems!)

</comment></comment><comment><USER4> They obviously have a deficient (missing) counter-notice mechanism. I'm not willing to perjure myself, but I would love to see what happens when several dozen politicians get have their pages mysteriously taken down. Actually, not really, now that I think about it. Seems like a pretty serious social-denial- of-service attack vector. A handful of guys working with basic anonymity tools could make vast swaths of Facebook unusable.

<comment><USER5> Paradoxically, a mass exploitation of it would be ``good'' in that it would force Facebook to fix the process. Due to the current low volume, the problem lingers, while people and organizations get hurt.

Low volume as compared to other Facebook traffic, anyway.

</comment></comment><comment><USER6> There was a story going around a couple of years ago about how easy it was to tell Facebook that someone had died, sending their profile into limbo (sorry for the bad pun, but it's the best description I can come up with) that was very difficult and time-consuming to escape from. So needless to say, I'm not surprised by this.

</comment><comment><USER7> I have an issue with "Facebook could also choose to insist that throwaway email addresses (e.g. Hotmail, Gmail, Yahoo, etc.) cannot be used for these sorts of complaints - that a domain name associated with the brand which claims to being breached is used instead".

Why is it only about corporations? Other people's copyright cannot be violated - say a successful blog that someone hosts on Blogger/Wordpress? Those wouldn't have own-branded email names.

Also, it is confusing "copyright" and "trademark" issues (with the mentioning "brands" like that) - the latter is not subject to DMCA, now is it?

</comment><comment><USER8> Facebook is not alone in being vulnerable to faked DMCA takedown notices. However, the DMCA requires such notices to be made under the penalty of perjury. If you're willing to perjure yourself, the DMCA has always allowed for you to do so.

I don't agree with the article's suggestion that Facebook can just raise the bar on which notices to accept. It's my understanding that service providers can't implement such restrictions and still qualify for safe harbor protection.

If there's a story here, it's that Facebook might not be properly processing counter-notices: <http://www.chillingeffects.org/question.cgi?QuestionID=132>

I've only dealt with 512(a) (while working an abuse-desk at an ISP), I'd be interested to hear more from people experienced with 512(c).

</comment><comment><USER9> the DMCA as the law and the practices it established is beyond broken. It is a rare occasion where i'd agree with Facebook approach - there is no reason to invest in the lipstick for that pig. Don't like how DMCA works - write to your representative, or even better - elect a one who'd represent people not the money.

<comment><USER10> By not responding to counter-notices, Facebook is not complying with the DMCA. Though it's not really clear that these copyright claims are honest-to- goodness "on penalty of perjury" DMCA requests.

[update] I was finally able to find a link to the Facebook form ([https://www.facebook.com/legal/copyright.php?noncopyright_no...](https://www.facebook.com/legal/copyright.php?noncopyright_notice=1)). It appears to say that you affirm this information under penalty of perjury, but it's also a 'non-copyright' claim which I'm not sure falls under the DMCA. It definitely doesn't _say_ that it's a DMCA notice anywhere on that page.

</comment></comment><comment><USER11> Patch the bug Facebook.

<comment><USER2> It's not a bug, it's a feature.

No, seriously. The page works exactly as they intended. It just so happens that malicious people can exploit that functionality to their own ends.

Instead, you want them to redesign that system. It's flawed from the ground up.</comment></comment>


AMD is sending Ryzen/Radeon care packages to game developers - <AUTHOR> https://www.overclock3d.net/news/cpu_mainboard/amd_is_sending_ryzen_radeon_care_packages_to_game_developers/1 <comment><USER2> Does anyone @ AMD want to help out our niche developer/gaming community? ;-)

[https://www.reddit.com/r/openbsd_gaming/](https://www.reddit.com/r/openbsd_gaming/)

edit: With OpenBSD developer hat on, hardware donations welcome here too: [https://www.openbsd.org/want.html](https://www.openbsd.org/want.html)

<comment><USER3> I don't think I've seen any AMD employees on HN. I wonder if there's a better contact.

<comment><USER4> I've seen AMD representatives on Reddit's r/amd often. Maybe parent poster can try there.

<comment><USER2> Thanks! You never know.

[https://www.reddit.com/r/Amd/comments/8u8c80/amd_is_sending_...](https://www.reddit.com/r/Amd/comments/8u8c80/amd_is_sending_ryzenradeon_care_packages_to_game/e1f24yh/)

</comment></comment></comment></comment><comment><USER5> > Several professional tools were also updated, with Zbrush offering a > 204,772% performance improvement in specific workloads, showcasing how much > can be gained when software is optimised with Ryzen in mind.

Comments indicate that's not a misprint. I'd love to hear the details of a 204 thousand percent improvement.

<comment><USER6> [https://developer.blender.org/T53068](https://developer.blender.org/T53068)

So I dunno about ZBrush. But Blender is a similar 3d program. There was a multithreading issue which would cause Blender to work for HOURS before actually completing some trivial tests.

Clearly, AMD Zen / Infinity Fabric has an edge case that older systems can handle just fine. Note that Blender uses Windows pthreads, which has an incredibly BAD implementation of spinlocks and mutexes.

Blender fixed this issue by making a customized implementation of spinlocks. I dunno what ZBrush did, but these kinds of architectural regressions happen every now and then.

<comment><USER7> I'd love to learn more about Windows pthreads poor implementation of spinlocks mutexes. Do you have any cool links?

<comment><USER6> Citation: myself. I'm not an expert but I think I know enough to see a bad implementation when I see one. As such, please take this analysis with a grain of salt.

Second: I'm not entirely sure if this applies to "modern" pthreads-win32, but the Blender project uses a relatively old build of pthreads-win32.

Third: my analysis is derived from the Blender diff here: [https://dev- files.blender.org/file/data/rjmzozouj44bs6qicd3y...](https://dev- files.blender.org/file/data/rjmzozouj44bs6qicd3y/PHID-FILE- cre57pid5mvoizjirptg/file)

I'm assuming that the Blender devs are smarter than me and have already tested this. :-)

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

So going through the Blender source code we come across pthread_spin_lock as part of the diff. Considering the comment thread (as well as the diff) as adding Win32 #ifdefs and such, we can assume this was the cause of the performance issue.

\</comment><comment>---

I assume... okay, so my logic isn't 100% tight, sorry :-(... that the implementation uses this pthreads-win32: [http://sourceware.org/pthreads- win32/](http://sourceware.org/pthreads-win32/)

Which brings us to here: ftp://sourceware.org/pub/pthreads- win32/sources/pthreads-w32-2-9-1-release/pthread_spin_lock.c

\</comment><comment>---

Lets break it down why this is a bad implementation:

1\. No "pause" instruction, causing latency issues when leaving the spinlock. See [https://msdn.microsoft.com/en- us/library/windows/desktop/ms6...](https://msdn.microsoft.com/en- us/library/windows/desktop/ms687419\(v=vs.85\).aspx) or [https://software.intel.com/en-us/node/524249](https://software.intel.com/en- us/node/524249) for more information on why "pause" should be used in every spinlock. Strangely enough, the "pause" instruction is found in Linux implementations of pthreads (so the author for pthreads-w32 just... didn't look at the Linux implementation or something?)

2\. PTW32_INTERLOCKED_COMPARE_EXCHANGE_LONG seems inefficient to me. I'd imagine that the usage should be using a swap instead (aka: [https://docs.microsoft.com/en-us/windows- hardware/drivers/dd...](https://docs.microsoft.com/en-us/windows- hardware/drivers/ddi/content/wdm/nf-wdm-interlockedexchange) ). Although I don't have any microbenchmark that "proves" this, I'd imagine that a swap is more efficient than a compare-and-swap.

3\. A potential "slowpath" which includes a mutex-lock. Note that Windows Mutexes are incredibly heavy: including security features and even a "filesystem like" naming scheme. (See Windows Object Handles if you don't believe me). Windows Mutexes are very fully featured: recursive, multiple levels of security, and more.

This is a common problem in Linux system-coders -> Windows system coders. The Windows "Critical Section" is a more appropriate replacement for Linux pthread_mutexes.

I'd say Windows Mutexes might be more similar to a Linux filesystem-level semaphore. Linux semaphores provide those security features integrated with the filesystem.

The to Linux mutexes and spinlocks is something called a "Critical Section" in Windows land.

[https://docs.microsoft.com/en- us/windows/desktop/Sync/critic...](https://docs.microsoft.com/en- us/windows/desktop/Sync/critical-section-objects)

Critical sections are Windows's lightweight yielding / task sleeping mechanism.

\</comment><comment>---

Finally, Windows provides a spinlock: [https://docs.microsoft.com/en- us/windows/desktop/api/synchap...](https://docs.microsoft.com/en- us/windows/desktop/api/synchapi/nf-synchapi- initializecriticalsectionandspincount)

Which is probably is what pthreads-w32 should really be using. I mean, Linux devs basically just don't know what Windows offers, and the pthread-win32 library is a poor fit at the moment.

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

Sorry if you were expecting more complete analysis and testing. Lol. Its mostly me looking at the thing and making a guess and reverse-engineering the patch-notes from the Blender discussion.

<comment><USER8> These days it would likely be best to implement pthread-win32 mutexes using WaitOnAddress.

<comment><USER6> Huh, I didn't know about this new primitive. Thanks! It seems to have been introduced into Windows 8 and later, as a competitor against Linux's futex.

I did a brief search online, and Raymond Chen had this to say:

[https://blogs.msdn.microsoft.com/oldnewthing/20160825-00/?p=...](https://blogs.msdn.microsoft.com/oldnewthing/20160825-00/?p=94165)

> [snip] in real life, you should just use EnterCriticalSection because it > has stuff like spin counts and lock convoy resistance.

Is there anything that pthread_mutex_lock does that EnterCriticalSection doesn't do? It seems like a good "translation" to me. I'd only use the WaitOnAddress thing if pthread_mutex_lock had some features that a raw EnterCriticalSection wouldn't do.

<comment><USER8> You need to be able to link your pthread condition variable implementation to your pthread mutex implementation such that a pthread_cond_wait() does an atomic wait-on-condition-variable-and-unlock-mutex, noting that another thread can signal the condition variable without holding any mutex.

In addition, pthread mutexes can be statically initialised which requires some kind of initialise-on-first-use for those if you implement them using Critical Section objects.

I believe WaitOnAddress(), rather than being a "competitor" for futex was actually added (or at least, the underlying infrastructure was) in order to be able to implement futex() in the WSL.

<comment><USER6> Ah yes, I forgot about condition variables. That makes sense then.

</comment></comment></comment></comment></comment><comment><USER9> Will such optimizations help in Wine on Linux too?

 _> Game developers also know that next-generation consoles from both Sony and Microsoft are on the horizon, both of which are likely to use Ryzen/Radeon CPU and graphics hardware, making now the perfect time to start looking deeper into Ryzen. Both future consoles are also expected to feature Radeon graphics features like Rapid Packed Math, which enables FP16 calculations to be completed 2x faster than standard 32-bit math, allowing some graphical elements to be accelerated, assuming the extra precision of FP32 isn't required._

Is anyone working on unblocking Sony's PlayStation lock-in, to provide Vulkan → GNM translation layer? There is such effort for D3D12 which will address Xbox.

<comment><USER10> fwiw, SDL2-based games that use regular OpenGL are already portable to XBox because SDL2 has a UWP backend and you can run ANGLE on UWP to get OpenGL support. There's even a working implementation of FNA for it which means old XBox Live Indie Games titles can be ported over easily.

<comment><USER9> Vulkan translation is important for more demanding engines. UWP doesn't seem to support Vulkan even on Windows: [https://github.com/KhronosGroup/Vulkan- Docs/issues/366](https://github.com/KhronosGroup/Vulkan-Docs/issues/366)

On Xbox there is no option but to translate to D3D12 anyway.

<comment><USER11> More demanding games are doing just fine with Cocos2d-X, Unreal, Unity, Ogre3D, Crytech, Lumberyard....

</comment></comment></comment></comment><comment><USER12> I love this. I recall when Palm did an SF event and I thought they should have given every participant a phone–they didn't. Not long after they were gone.

</comment><comment><USER13> Does anyone have any good info on Ryzen ECC RAM support? I've read a bunch of conflicting information and that some motherboard vendors have been misleading.

<comment><USER14> It's very straightforward: ECC is fully supported by the CPU and chipset, but must be accounted for by the motherboard maker. Check the specs/manual for the motherboard before buying, in particular the tested hardware list.

I've been using 32GB of ECC DDR4 with a 1950X and X399 Taichi without a problem.

<comment><USER15> I've also been using ECC with a 1950x, but an X399 Asrock Pro-gaming board. I've confirmed that it works by watching errors when overclocking the memory.

</comment></comment></comment><comment><USER16> A little off-topic, but planning on building a Ryzen 2600x system soon. Does anyone know if Ubuntu works well with Ryzen processors?

<comment><USER17> Just switched my home desktop to a Ryzen 2600X / Gigabyte AX370M-DS3H motherboard: Only hiccup was having to source a pre-ryzen AM4 cpu to update to BIOS to get Ryzen support, which was a pain - I'd advise making sure that any board you buy has had the BIOS updated if required by the seller.

I run Debian Testing mostly, so a 4.16.16 kernel. Been perfectly stable for me so far.

NB - For anyone hoping to use the the new AMD Vega CPUs with integrated graphics, the Debian kernels don't have the relevant support compiled in, so you'll have to compile a custom kernel & grab the latest firmware files from the linux-firmware git repo if you want accelerated graphics.

<comment><USER18> If you end up getting a motherboard without a compatible BIOS, AMD will send you a temporary CPU for free. ([https://support.amd.com/en-us/kb- articles/Pages/2Gen-Ryzen-A...](https://support.amd.com/en-us/kb- articles/Pages/2Gen-Ryzen-AM4-System-Bootup.aspx))

<comment><USER17> Yes, but online reports suggest the round trip time is a couple of weeks. I ended up ordering the cheapest possible AM4 CPU from Amazon Warehouse & returning it after updating the BIOS instead.

<comment><USER19> A tech forum that's local to me ran a 'CPU forwarding ring' \- you could sign up to have a CPU sent to you, and after upgrading your BIOS you'd have to send it to the next person who needed it. I thought that was a genius solution.

</comment></comment></comment></comment></comment><comment><USER20> Wake me up when they start hiring driver developers.</comment>