Photos of the An-225 Mriya – the world's largest aircraft - <AUTHOR> http://gelio.livejournal.com/193025.html <comment><USER2> Wow, absolutely beautiful photos and a stunning piece of engineering! That one statistic that a 737 fuselage can fit inside of this thing is wild to me, especially since the only other planes[1][2] I know of that can do that look much more.... bulgy.

[1] [http://en.wikipedia.org/wiki/Boeing_Dreamlifter](http://en.wikipedia.org/wiki/Boeing_Dreamlifter) [2] [http://en.wikipedia.org/wiki/Airbus_Beluga](http://en.wikipedia.org/wiki/Airbus_Beluga)

<comment><USER3> The An-225 is damn sexy compared to these 2.

<comment><USER4> You are not exaggerating at all :) [http://upload.wikimedia.org/wikipedia/commons/a/a0/An-225_D-...](http://upload.wikimedia.org/wikipedia/commons/a/a0/An-225_D-18T.jpg)

<comment><USER5> I like the dauphin shaped Airbus :)

</comment></comment></comment></comment><comment><USER6> One of my customers in Iraq chartered this; sadly I missed riding on that trip, but I got hundreds of hours on An-12, Il-76, and a couple legs of An-124. Given the maintenance the aircraft got (especially the An-12s), was pretty terrifying. I should dig up the photos and video I took and post it somewhere. [https://www.flickr.com/photos/octal/sets/72157594167351328](https://www.flickr.com/photos/octal/sets/72157594167351328) was some, but I didn't feel like going through the clearance procedures for most of my good photos back when the US bases were active.

<comment><USER4> Could you please elaborate on "pretty terrifying".

<comment><USER7> A guy would just do a walk around with a baseball bat and hit parts to see if they fell off. If they did, it was time to replace them. If they didn't, the aircraft was good for another 1000 hours until the next maintenance window.

<comment><USER6> Also, fairly major maintenance taking place (replacing tires, etc.) on active runways at major US airbases, with USAF Security Forces with M4s at low ready pointed at us. I was the only person on the plane with the authority to actually be there more than in-contact-with-plane.

<comment><USER4> Why they would need to put their M4s out?

<comment><USER8> Russians?

<comment><USER4> You mean Ukrainian.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> "3740 flying hours" ... Since built in 1988!

"The lifespan of the airplane is 8000 flying hours, 2000 takeoff-landings or 25 calendar years."

A 1980s 747 could expect 100,000 hours or more. I'd be interested in learning what exactly is so different about this plane to create such a vast disparity in reliability. Was it built, like with the Tu-144, using massive single billets?

<comment><USER10> I'm not sure about the technical reasons why the An-225's reliability would be so much shorter. It would make sense that a one-of-a-kind special purpose aircraft has a shorter intended lifespan than a high-production commercial airliner.

This bird is so special purpose that, from what I understand, it's primary purpose was to transport the Soviet Union's Buran spacecraft (an attempted Soviet version of U.S. Space Shuttle).

[http://en.wikipedia.org/wiki/Buran_%28spacecraft%29](http://en.wikipedia.org/wiki/Buran_%28spacecraft%29)

<comment><USER9> For sure, but an order-of-magnitude disparity in lifespan remains huge.

And the Buran was no "attempt". It was a working shuttle that flew to space and was in many ways superior to shuttle. It just didn't make economic sense, nor did shuttle imho.

The Tu-144 "Concordski", THAT was a true attempted copy woefully lacking in many many areas.

<comment><USER11> > _" the Buran was no "attempt". It was a working shuttle that flew to space"_

Once. Does that even count as reusable?

<comment><USER12> Anything's reusable if you throw as much resources into maintaining it as you would have rebuilding it every time. The Soviets just realized how stupid an idea that was. We didn't.

<comment><USER9> They did keep it around for the two things only it and shuttle could do: bring things back from orbit and execute single orbit missions (ie the cross-range ability to return to base after a single orbit.)

</comment></comment></comment></comment></comment></comment><comment><USER13> What does the navigator use the large eyepiece-looking thing for? Shown in this photo:

[http://img-fotki.yandex.ru/get/9327/30348152.174/0_78a5f_446...](http://img- fotki.yandex.ru/get/9327/30348152.174/0_78a5f_4466df6f_orig)

Is he confirming the route with ground features and matching to a map? It looks like a large scope of some sort.

<comment><USER14> It appears to be an old-fashioned, relatively low power CRT display, presumably for radar. I believe these can't be guaranteed to produce a visible image in all cockpit conditions [1], so they mount a hood to block out peripheral light.

[1] [http://www.google.com/patents/US2819459](http://www.google.com/patents/US2819459)

<comment><USER13> Seems plausible. Thanks!

</comment></comment></comment><comment><USER15> [http://en.wikipedia.org/wiki/MAKS_%28spacecraft%29](http://en.wikipedia.org/wiki/MAKS_%28spacecraft%29) I hope they revive this idea (Flies fine in KSP, for what it's worth).

Horizontal shuttle launch from a Mriya, using the same principle as a Pegasus rocket.

</comment><comment><USER16> This ridiculously large aircraft landed at RDU a number of years ago. Unfortunately I wasn't able to make it out that day to see it. - [https://www.youtube.com/watch?v=sJxSN9x5oZU](https://www.youtube.com/watch?v=sJxSN9x5oZU)

</comment><comment><USER17> _About $ 90 million is necessary to complete the construction of the aircraft. Taking into account the aircraft testing costs, this sum increases up to $ 120 million._

That is surprisingly cheap for such a large plane; compare Boeing's freighter prices:

[http://www.boeing.com/boeing/commercial/prices/](http://www.boeing.com/boeing/commercial/prices/)

<comment><USER18> One of the captions says the An-225 Mriya is designed for 5,000 flights. The thing holds 100,000 gallons of jet fuel. Assuming it used 70% of that on average, that could be over a billion dollars in fuel over it's life assuming $3 per gallon.

747 prices have gone way up over time, way past inflation rates comparing newer models to old, but they have also improved fuel economy tremendously.

(also, is that $120 million inflation adjusted? And is it just the cost of modifying the aircraft it is based on, or the cost including the base aircraft?

</comment></comment><comment><USER19> "... An-225 transported a payload of 156.3 tons on March 22, 1989 which broke 110 air world records. _This has become a world record in its turn._ ..."

Awesome quote :)

</comment><comment><USER20> > When fully loaded, the aircraft can keep on flying without refueling for > about 2 hours.

I assume that is a typo.

<comment><USER21> Fuel burn at MTOW is quite a bit different. I think that's correct.

<comment><USER22> Wikipedia says the range at maximum load is 2500 miles, so if that's correct, endurance must be significantly longer given that it doesn't go supersonic.

<comment><USER23> This aircraft certainly doesn't get to supersonic speeds

<comment><USER22> That's what I said.

</comment></comment></comment></comment></comment><comment><USER24> There's an interesting image a little more than halfway down the page, where one of the flight crew is wearing a t-shirt showing a helicopter rescuing people from a plane crash. I can't read Russian, so I don't know what the shirt says.

[http://img-fotki.yandex.ru/get/9327/30348152.173/0_78a43_401...](http://img- fotki.yandex.ru/get/9327/30348152.173/0_78a43_401208e5_orig)

<comment><USER25> It is not Russian, it is either Belarussian or Ukrainian.

It translates to "emergency rescue..."

<comment><USER26> It is Ukrainian. It says: "emergency rescue..."

</comment></comment></comment><comment><USER27> Having watched a C-5 Galaxy fly low overhead before, I can only imagine how ridiculous this thing must look during take off. "When pigs can fly."

<comment><USER28> I never get tired of watching this video of an Il-76 transport plane taking off in Australia. [https://www.youtube.com/watch?v=PLxEHIbHUlY](https://www.youtube.com/watch?v=PLxEHIbHUlY)

</comment></comment><comment><USER29> It's fascinating to look at how these people work, having very recently read an article about how pilots of modern Airbuses and Boeings spend maybe a dozen hours per year actually manually flying those planes. And in here they control this beast using pretty much nothing else but manual steering(and 6 people to do it!).

</comment><comment><USER30> vs 747 vv A380

[http://www.articlesextra.com/main-fotos/antonov- graph.jpg](http://www.articlesextra.com/main-fotos/antonov-graph.jpg)

More stats:

[http://planes.findthebest.com/compare/242-247/Airbus-A380-80...](http://planes.findthebest.com/compare/242-247/Airbus-A380-800-vs- Antonov-AN-225-Mriya)

My take-away: A380 significantly more impressive plane. It has a max take-off weight that's 90% of the AN-225, but is a similar size, and much much cheaper to fly, with a significantly better range.

<comment><USER31> Thst's rather a pointless comparison - the AN-225 is a MUCH more capable aircraft.

[http://www.aviationexplorer.com/Antonov_An-225/an-225.jpg](http://www.aviationexplorer.com/Antonov_An-225/an-225.jpg)

When dealing with air cargo dimensions are more important usually than weight. The -225 routinely carries things like railway cars and wind turbine blades. No way you could even think of loading those on a hypothetical A380 cargo version - you need to engineer from the outset for a pivoting nose and/or full size rear ramp. The -225 has both.

<comment><USER32> I'd be interested to know where those wind turbine blades went that it was cheaper to bring them in this way vs. building a road, and the project still made sense with insane transportation costs. A modern 50m class blade costs no more than $500,000, frequently less than $200,000.

<comment><USER33> The one example I can find was two 42m blades from China to Denmark in 2010. I would think they normally go by ship, so maybe they were in a rush? And if they were shorter, they would use a smaller plane.

</comment></comment></comment></comment><comment><USER34> The last flight (tracked) was July 2, 2014 [http://flightaware.com/live/flight/UR82060](http://flightaware.com/live/flight/UR82060)

<comment><USER35> Well, the tracked is important. The plane is on full schedule. It was in Czech Republic last week, loading tanks.

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

<comment><USER36> that picture is great -- the tanks look like children's toys next to the plane

<comment><USER35> /u/Toonshorty over at reddit did a tilt-shift effect on it [https://i.imgur.com/ZwNa8L9.jpg](https://i.imgur.com/ZwNa8L9.jpg)

</comment></comment></comment></comment><comment><USER37> Some minor photoshop on that very misty pic

[http://updo.nl/file/dfa2dd59.jpg](http://updo.nl/file/dfa2dd59.jpg)

</comment><comment><USER38> Photoeus Eyepoppicus.

</comment><comment><USER39> Fantastic images.

The world over, and yes, both Mriya and I, aloft and aground, only accept dc headsets, the David Clark Company, USA.</comment>


Ask HN: How many karma do I need to downvote? - <AUTHOR> I heard that after you reach 500 karma, you'll be able to downvote comments. I've been looking forward that moment for a long time. Unfortunately, I have 502 karma now but see no downvote buttons :( <comment><USER2> The threshold is periodically increased to allow for karma inflation, but usually that gets announced, and I've not seen anything recently. As far as I'm aware the threshold is still at 500 - nothing has turned up in my search of HN to suggest otherwise, but search is poor at finding this sort of detail.

Are you confusing this with topic downvotes? They don't exist. Do you know where to look for the comment downvote link? It's a small gray arrow under the upvote arrow just to the left of the name of the commenter.

If none of this applies then I can't help you.

<comment><USER3> When I first crossed 500 I noticed I could downvote replies but not top-level comments. Not sure when it happened, but now I can downvote top-levels too.

I wish I could turn off the downvote arrow. I never use it, and I have to be careful not to click it by mistake when upvoting.

<comment><USER2> You can't downvote comments over 48 hours old - perhaps that's the effect you're seeing.

I usually find that even here on HN, the symptoms people report are not actually what's happening, but are filtered through their incorrect assumptions. It is important to report what you see, not what you think is happening underneath. It's so easy to fall into the trap of reporting what you think must be happening.

</comment></comment></comment><comment><USER4> I saw similar reports in a thread a few months ago. I came away with the impression that granting access to downvotes is like calculating average karma - it doesn't happen in real time, but does happen eventually.

Congratulations on completing karma level five hundred. From now on, it's just karma for karma's sake.

</comment><comment><USER5> Downvotes turned on for me a little after 500. I'd imagine it's a flag in your profile that's flipped in a batch operation once to a few times a day. Either way, you're not missing much - like another commenter here I wish I could just turn them off.</comment>


Ask HN: What's the best way to get started with NVIDIA Tegra? - <AUTHOR>

I'm looking to build a device based on NVIDIA's Tegra and I'm not sure how to get started.  There's a form for OEMs to contact NVIDIA about developing for the device and I've submitted that but the message that pops up after submitting the form makes it sound like they're only working with large customers right now.  Is there a better way to get started? <comment><USER2> Buy a Boxee Box, hack Linux on it, and develop your prototype.

<comment><AUTHOR> That sounds like it might work. I've also started to consider the Zii Egg as a platform instead of trying for a Tegra based device.</comment></comment>


How Big of a Deal Is an Extra Half Degree of Global Warming? - <AUTHOR> https://reason.com/2018/10/11/how-big-of-a-deal-is-half-of-a-degree-of/ <comment><USER2> I highly recommend the book: The Secret Network of Nature by Peter Wohlleben.

We don't know much about what's happening on a global scale, we have no idea about most species<>eco-systems inter-connections. Predicting the effect of global warming isn't much more than astrology at that point.

<comment> dawg- That was one of my major questions with this article. The author leans pretty heavily on the 2.7% loss in global GDP by 2100 that is predicted to occur because of climate change. While GDP is surely important, I think it's a pretty shoddy metric to evaluate the potential damage of climate change.

Within a century we are going to do irreversible damage to environmental assets that have developed over millions, sometimes even billions, of years. And like you said, we don't even fully understand how many of those systems even work yet. We won't ever have a great coral reef or Amazon rainforest again unless we want to wait another few million years. And those assets' value is not just intrinsic, they have real economic, social, cultural value. To measure the loss of those things in GDP seems to be inadequate.</comment></comment>


Crunchies Winners: Twitter Takes Best Startup Of 2010 - <AUTHOR> http://techcrunch.com/2011/01/21/congratulations-crunchies-winners-twitter-takes-best-startup-of-2010/

<comment><USER2> These would have been far more interesting if they focused on newer, less established companies and products. Everyone already knows exactly what Twitter, Facebook, and the iPad are and no one cares if they win awards.

<comment><USER3> What I was thinking when I read the title "Uhh, twitter didn't start in 2010".

A well established company (IE surviving the first 3 years where most companies fail miserably) is not a startup. It may behave as one, it may act as one, but if it doesn't have the massive impending doom of simply being a brand spanking new company, then it's not a start up.

By the logic demonstrated here, I vote for best startup for 2011 to be Apple.

</comment></comment><comment><USER4> Awards for startups seem silly

<http://www.youtube.com/watch?v=RzPfKI4b-dg#t=4m27s>

<comment><USER5> I've been feeling down in the dumps all day, depressed about life in general, and I've just discovered thanks to you that watching videos of Richard Feynmann cheer me up. Thank you.

<comment><USER4> I have trouble watching them because they always make me feel like I'm wasting my life :-(

</comment></comment></comment><comment><USER6> Doesn't it seem somewhat passe to give the award to someone as well- established as Twitter?

<comment><USER7> Well Facebook had won it for the past 3 years (which happens to be every other year the Crunchies have existed), so I wouldn't say it's that unexpected.

</comment></comment><comment><USER8> I think it's ironic 37Signals is listed under the Best Enterprise category.

<comment><USER9> Agreed. Context for anyone that may have missed it:

<http://twitter.com/#!/dhh/status/27434483292573696>

</comment></comment><comment><USER10> and second place went to Microsoft

<comment><USER11> I hear IBM came third. (At 99 years old they squeaked in). They almost had as much revenue as Apple in 2010. Nintendo (at 123 years old) is no longer a startup and is no longer eligible.

<comment><USER12> Damn you, sir! You sent me on an awesome trip looking around for the oldest companies.

Few are older than a few centuries, most are Japanese (others are European), small and restaurants, hotels or breweries. All are fascinating.

<comment><USER11> I too have undertaken this trip in the past. A fascinating journey, albeit one to avoid while you face pressing deadlines. :)

</comment></comment></comment></comment><comment><USER13> I really think they need to define 'startup'. I don't think that word means what they think it means...

</comment><comment><AUTHOR> original title was for PG/Y Combinator as "Angel Investor of the Year", but the title was changed...

<comment><AUTHOR> it changed automatically

</comment></comment><comment><USER14> Kinect didn't win best device? How disappointing, since it was the only actually novel thing on there.

</comment><comment><USER15> Well deserved. If it weren't for PG and YC, I wouldn't know half of what I've learned as a result of stumbling onto Hacker News.

<comment><USER15> Why did the title of this thread change since I've left my original comment, which was in regards to PG and YC winning Angels of the Year?

</comment></comment><comment><USER16> Wife said to me this morning, "Wait, didn't you sign up for Twitter in like 2007? They're not a startup!"

</comment><comment><USER17> I'm sorry, but WHAT?!?!

1) They are not a startup. They're over 4 years old. They have officially passed the starting phase

2) They have not monetized since graduating into the big boy businesses phase. Riding the coattails of VC's for years with no clear plan to reach profitability is not business

3) They are instable as hell. They crash nearly everyday, with millions of dollars in the bank, hundreds of engineers working for them, and 4 years of development under their belt, and they have a frickin meme because of how instable they are

4) They've stopped innovating. Nothing new has come from twitter in the last 2+ years other than their API. 140 character messages, we get it.

Blatant buzz word fanboyism is still running amok apparently.

<comment><USER18> I'm going to do something I dislike and play devil's advocate. You're not the only one here saying that Twitter is no startup, and while I agree with that assessment to a certain extent, you've pretty much described a startup with your points. A startup is no longer considered being a startup if they become profitable (twitter isn't), is acquired or merges into another entity (twitter hasn't) or becomes public (which twitter hasn't either).

Is twitter a startup? Yes. Would giving the prize to some other company be more interesting? Definitely. These competitions are often not fair, but honestly, who are we to judge?</comment></comment>


Google App Engine 1.7 released at I/O - <AUTHOR> http://googleappengine.blogspot.com/2012/06/google-app-engine-170-released-at.html

<comment><USER2> \- SSL via SNI for $9/month (no Windows XP support, heck--limited Android support)

\- ...or a _virtual_ (not static) IP address for $99/month (!!)

\- CDN via "PageSpeed" at .39/GB outgoing (plus .12/GB)

\- new!!! datacenter in Europe!!!

I was an early adopter of App Engine who went through Ye Grande AppEngine Datastore Debacles. Months where it didn't work followed by a sudden tripling of the cost that turned App Engine into something that was no longer feasible for my app.

But this update has me really shaking my head.

</comment><comment><USER3> Nit: I wish Google would include an SDK download link in their App Engine release announcements.

<https://developers.google.com/appengine/downloads>

</comment><comment><USER4> GeoPoint Location Based Search looks very useful... if only it had been there before the great GAE price hike of 2011. I moved to PostGIS on AWS and never looked back.

</comment><comment><USER5> Finally, Go SDK for Windows.</comment>


Show HN: CoinHub for iOS - <AUTHOR> http://coinhubapp.com/ <comment><AUTHOR> Hi HN,

I bought my first Bitcoin and Ethereum. Like many of you know, cryptocurrency is traded 24/7/365\. So the first thing I did was go to the App Store and look for some great quote and news apps so I can stay connected to what is happening in the markets.

What I found was disappointing. There weren't many apps and the ones I did find were terribly designed, didn't cover all the exchanges, didn't plot out trend lines clearly, didn't have news, and weren't realtime. If you are doing anything with cryptocurrency, having this at your finger tips is a must.

So I began to write a simple, yet stylish, app that would just tell me the quote of currencies I had invested in. I hope you like it. If you have feedback or questions, let me know!

-R

<comment><USER2> Where do you pull data from?

I'll definitely try this app, I've built my own super-simple dashboard [1] for the same reason, with data pulled from kraken.

[1] [http://priceeth.github.io/](http://priceeth.github.io/)

<comment><USER3> The app credits [https://www.cryptocompare.com/](https://www.cryptocompare.com/) for the data.

</comment></comment></comment><comment><USER4> One relatively unknown feature of the iPhone's Stocks app is the support of ETHUSD, BTCUSD and LTCUSD pairs.

<comment><USER5> I'm assuming this is just from the underlying API (Yahoo Finance?) supporting those idents, rather than Stocks itself?

<comment><USER4> Correct. Same pairs will also work in the macOS's Stocks widget[1], which is driven by the same API.

[1] [https://ibb.co/d7Meab](https://ibb.co/d7Meab)

</comment></comment></comment><comment><USER6> Love the app, but did you really need to apply PornHub's look and feel?

</comment><comment><USER7> (The order of the buttons is shown to be "1M 1H 1D", but they are actually "1H 1D 1M". You can even see this in the screenshot on the website: 1M is selected, but clearly that is one hour worth of information.) (edit: It just occurred to me that maybe it is trying to say "break down the information into minutes, hours, and days" instead of "show me information for an hour, a day, or a month"... that's confusing.)

<comment><AUTHOR> Hi,

The way it works today:

1M will show you 60 data points with 1 minute precision.

1H will show you 60 data points with 1 hour precision.

1D will show you 50 data points with 1 day precision.

But happy to hear feedback on the time chooser.

</comment></comment><comment><USER8> Are Crypto Coin Portfolio apps the new Weather apps? Seems like a new one comes out every day.

</comment><comment><USER9> Just downloaded the app! Pretty neat and cool app. It would be great to be able to add a portfolio to this app. Good work overall.

</comment><comment><USER10> Widget would be great. For some reason hitting the 1D button is very spotty.

</comment><comment><USER11> downloaded, opened and clicked the top-rigth +, crashed, uninstalled.

on iOS 11.0.1

<comment><AUTHOR> Hi, thanks for letting me know. I saw the crash report. A fix will be in 1.3.

</comment></comment><comment><USER12> K. Now get https for your site.

edit: downloaded, opened, tapped eth, scrolled down to see news and the app crashes. uninstalled. to the dev: it was on iOS.

</comment><comment><USER13> Blockfolio Coinbase CoinCap I use all three. Will give this a shot if there is something useful that I am missing

</comment><comment><USER14> Does any app just show your portfolio and its value on the home screen? That's what I'm really looking for

<comment><AUTHOR> There is a portfolio feature coming that will show gain loss and it will work across multiple currency pairs as well. So for example, you can buy XMR <> BTC, or ETH <> USD and it will do all the math and figure out the gain loss in the fiat of your choice. We are working on it.

</comment></comment><comment><USER15> Tapping the Apple icon in mobile safari opens a blank page for me instead of going to the App Store.

</comment><comment><USER16> The data for LTC doesn't seem to load. All the other default 3 cryptocurrencies loaded.

<comment><AUTHOR> What country are you in?

<comment><USER16> Singapore, if it helps, I'm using an iPhone and have the language settings set to Japanese.

</comment></comment></comment><comment><USER17> Did you make the skeleton views for labels yourself? They look great.

</comment><comment><USER18> Nice looking app! What did you use for the charts?

<comment><AUTHOR> Hi,

There is a open source project here:

[https://github.com/Herb-Sun/OKKLineSwift](https://github.com/Herb- Sun/OKKLineSwift)

but I had to fix a ton of issues to get it to work with multiple currencies at the same time.

<comment><USER19> Are these fixes open source? Obviously with the MIT license the choice is entirely yours.</comment></comment></comment>


Let's Not Demonize DRM Just Because It's Trendy - <AUTHOR> http://mojaveblues.com/blog/2013/3/10/no-dont-demonize-drm-because-its-trendy

<comment><USER2> What? Over 99,000 signatures? There isn't even 1,000 signatures! I'm sorry but I didn't even read the post after this blatant lack of fact checking.

</comment><comment><USER3> Can we demonize DRM because of the various legitimate reasons against it, then?</comment>


New proof-of-concept bootkit targets UEFI and Windows 8 - <AUTHOR> http://www.neowin.net/news/new-proof-of-concept-bootkit-targets-uefi-and-windows-8

<comment><USER2> As hinted at in the original article[1], this sort of attack relies on running code during the EFI boot phase, and so it would be prevented by secure boot, since the attack code would not be signed and thus would not run.

See also Matthew Garrett's coverage[2].

1: [http://www.itsec.it/2012/09/18/uefi-technology-say-hello- to-...](http://www.itsec.it/2012/09/18/uefi-technology-say-hello-to-the- windows-8-bootkit/) 2: <http://mjg59.dreamwidth.org/16987.html></comment>


Eating chocolate is associated with improved brain function - <AUTHOR> https://www.washingtonpost.com/news/wonk/wp/2016/03/04/the-magical-thing-eating-chocolate-does-to-your-brain/ <comment><USER2> The study is here[1; non-paywalled].

A series of follow-ups might look like this:

1: GWAS to look for genetic association with chocolate consumption.

2: Mendelian randomization to assess whether an inherent predisposition for increased chocolate consumption leads to increased cognitive function.

The same approach has been used to assess whether there is a dose-response of alcohol on mortality (the answer appears to be "yes," and there is no U-shaped curve).[2; non-paywalled]

This is mostly just to say that I'm not convinced by such tortured data in an association study, but if there is enough interest in the hypothesis, then the path forward to assess causality is clear.

1 = [http://www.sciencedirect.com/science/article/pii/S0195666316...](http://www.sciencedirect.com/science/article/pii/S0195666316300459)

2 = [http://www.bmj.com/content/349/bmj.g4164](http://www.bmj.com/content/349/bmj.g4164)

</comment><comment><USER3> Food companies distort nutrition science by funding studies. That's why we have very specific titles like "Concord grape juice, cognitive function, and driving performance," or, "Walnut ingestion in adults at risk for diabetes." Usually the results are positive.

[http://www.vox.com/2016/3/3/11148422/food-science- nutrition-...](http://www.vox.com/2016/3/3/11148422/food-science-nutrition- research-bias-conflict-interest)

<comment><USER4> That has absolutely nothing to do with this study.

<comment><USER5> It's the only reason this study exists, or got the results it did.

</comment></comment></comment><comment><USER6> Reminds me very much of this:

[https://kill-or-cure.herokuapp.com](https://kill-or-cure.herokuapp.com)

A list of what the Daily Mail has reported will kill or cure cancer. I won't spoil chocolates outcome.

</comment><comment><USER7> Self-reported chocolate intake? There are so many possible confounders here. It seens quite implausible that chocolate can acutely enhance cognitive ability. Alternative explanations are more likely, although not newsworthy.

I also think that nutrition science, which is deficient enough as it is, should not be mixed with epidemiology, which seems designed to detect spurious associations.

<comment><USER8> There's caffeine and sugar in it, seems reasonable, plus the pleasure of it means more endorphins. That's like three direct up-regulators of brain function.

<comment><USER7> Well the researchers say in the article that sugar should impair cognition. Caffeine and feeling good are confounders, as they aren't unique to chocolate. The researchers are proposing that it is some kind of special ingredient in chocolate you can't really get anywhere else easily that enhances cognitive function.

<comment><USER8> Yeah, I agree that they should control for those things...

</comment></comment></comment></comment><comment><USER9> From personal experience, every bite of chocolate provides me a moment of bliss and happiness. I think happiness is the real reason for improved brain function. I find myself most productive and most capable when I am happy.

<comment><USER10> That's called dopamine. The chocolate you eat probably has sugar in it (otherwise it tastes horrible; try raw cacao), and sugar is a drug associated w/ the release of dopamine in the brain.

<comment><USER11> >otherwise it tastes horrible; try raw cacao

Every luxury food or drug tastes horrible until you've learnt to enjoy it. Remember your first beer or coffee? My guess is sugar would initially taste somewhat foul ('sickly sweet') if one was brought up without it.

EDIT: I'm not recommending that people start snorting or imbibing cocoa powder. However I think that if this were the only form of chocolate then one would quickly learn to enjoy it.

<comment><USER12> From my personal experience, I have to agree with wapapaloobop. I put a spoon of raw cacao in my morning coffee, because I love the taste. However I drink (and eat no) sugar whatsoever and found the taste disgusting (in the sense of spitting it out) when I accidentally drank from my girlfriends coffee some time ago.

<comment><USER13> I agree with you. I enjoy straight espresso and good black coffee. If I want to 'sweeten' it I add some milk. When getting coffee at shops I have mistakenly received one of those super sweet caramel, sugar whatever they are called and almost had to spit out the sip.

I wonder if it is learned or if people who like sweets have different taste buds than those who do not. I also like really hoppy beer and bitter candy.

<comment><USER14> It is partially learned, partially a built-up tolerance.

Anecdata: About three years ago I drastically reduced my intake of carbohydrates, including all forms of sugar and starch. After around two months, I tried tasting some things that I had stopped eating -- fruit juice, a bit of pie -- and discovered that they were horribly sweet to my tongue.

<comment><USER15> The amount of sugar going into foods has increased. I remember there being around 20 grams of sugar in most sodas. Now, there is typically about twice that amount, and Honest Teas are "lower in sugar" with 19 grams. The US food industry's tactic is this: foist lots of sugar on people when they're kids and don't know any better. Then, when they're adults, you can get away with plying them with lots of high fructose corn syrup, which is super cheap due to subsidies.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> It's better to wait for multiple, large randomized controlled trials to be performed before making claims about improved brain function.

But maybe, for now, we can eat more chocolate for another ~proven benefit: "Flavanol-rich chocolate and cocoa products may have a small but statistically significant effect in lowering blood pressure.."

[http://www.cochrane.org/CD008893/HTN_effect-of-cocoa-on- bloo...](http://www.cochrane.org/CD008893/HTN_effect-of-cocoa-on-blood- pressure)

</comment><comment><USER17> This old chestnut has been published in mainstream media for decades, the Daily Mail in the UK much feature it at least once a year (on the odd day a cancer scare doesn't exist). I remember every exam been given chocolate to take with me, and we're going back to early/mid 90s here.

</comment><comment><USER18> Previous thread; [https://news.ycombinator.com/item?id=11155532](https://news.ycombinator.com/item?id=11155532)

</comment><comment><USER19> There is a radio program in the UK called More or Less, who''s (whom's?) motto is "Correlation is not causation". Admittedly, I have neither read the paper, nor did I fully understand the section on proving the direction of influence, but I can't help but feel this research makes pretty poor use of statistics and logic, however much I wish to believe the result. Is all nutritional research this bad?

<comment><USER20> You haven't read the original paper, don't even understand the methodology they used to reach their conclusions and yet you "can't help but feel this research makes pretty poor use of statistics and logic"?

It seems something is bad here, but I don't think it's the nutritional research. If you can't be bothered to actually read the paper, why do you think you're able to critique it?

<comment><USER11> Cos it doesn't work with an explanation. Science is about explaining things.

<comment><USER21> Hmm, yes, that is true. But "science" doesn't pull explanations from the air (that would be religion or superstition, ya know).

Science first finds unlikely or unexpected correlations, unlikely or unexpected measurements, and seeks to understand from whence they came. Are they artifacts of the observation process? Tainting of the measurement process? Or spurious correlations, such as the one between height and spelling ability (both of which are strongly correlated with age, up to a certain point)?

This particular research announces an unexpected correlation and goes to pains to show that it is real, and not spurious. This is the observation phase, the _oh, didn 't expect that_ phase. Explanation will come later, likely after someone designs a more accurate and precise experiment to better correlate chocolate consumption and cognitive ability.

<comment><USER11> If you go outside with a measuring tape and a stopwatch you'll discover there's an unlimited number of measurements you can make. So that can't be how scientists operate. They are guided by prior theories.

>[science] doesn't pull explanations from the air

Well, people think about problems and then ideas sometimes pop into their heads. No one understands how yet. So explanations _do_ come out of the air, metaphorically speaking! That doesn't make them false. It's what happens afterwards that counts. Most ideas are rejected by criticism and a few go on to be tested.

<comment><USER21> _you 'll discover there's an unlimited number of measurements you can make_

Absolutely correct.

 _So that can 't be how scientists operate_

I'm torn between writing "citation needed" and "unwarranted conclusion from stated premises" so I'll go with both.

The head of the department where I did my physics undergrad spent years, decades, measuring everything there was to measure about plasma: Energy input, energy output, temperature of the phase change (plasma is a distinct phase of matter), spectral distribution, etc., etc., etc.

He wrote many papers, primarily on his measurements, and also on how he refined and improved the measurement process. I don't recall at all well, but I don't believe there were overmany hypotheses, let alone theories. He was about data, not models.

There are theorists who spend the bulk of their time with pens and imagination, occasionally - for some, rarely - checking in with the empirically real world.

A very few of these have names we celebrate for changing the shape of the world - Darwin, Newton, Einstein. And these particular luminaries knew the shape of the real world, knew existing theory didn't fit. (Newton is famous for saying he stood on the shoulders giants. Kepler was one such. Kepler measured and measured and measured and devised a relation. No theory, just a relation to link his measurements.)

Without the many scientists who do nothing but measure, measure, measure, scientists many of us would consider tedious drudges, these luminaries could never have known that theory didn't fit data. Or that data didn't fit intuition. Or that data was just plain weird.

Science does indeed proceed this way, bottom up, from measuring anything and everything of interest (to someone - maybe not to most of us, but to someone - I invite you to read _The Map that Changed the World_ ).

Science also proceeds from the top down, from theory to measurement. But often because there was another theory that failed to align with existing measurement. Think general relativity and its better prediction of the motion of Mercury, which failed to align with Newtonian Gravitation, which itself would never have arisen had Kepler not spent so many hours measuring, measuring, measuring. (And general relativity was a generalization of special relativity, which was created to explain a particular vexing measurement, the constancy of C. Einstein did not set out to reinvent gravity, he started simply explaining how C might be constant. He got to gravitation when he generalized relativity to non-inertial reference frames (that's what the _special_ meant: inertial reference frames only).

We measure first. Just because we are that curious.

</comment></comment></comment></comment></comment></comment><comment> at-fates-hands I have to take this with a grain of salt considering the guy who put out the fake research on how eating chocolate can make lose you weight was just revealed to be a huge hoax:

[http://io9.gizmodo.com/i-fooled-millions-into-thinking- choco...](http://io9.gizmodo.com/i-fooled-millions-into-thinking-chocolate- helps-weight-1707251800)

</comment><comment><USER22> I remember there was a similar headline to this — comparing the high ratio of chocolate-eating to non-chocolate-eating Nobel laureates — in the Fall of 2012.

My Quantitive Methods lecturer used it as a perfect example of the correlation/causation fallacy; it was certainly a good way of lightening the mood at a 9am Friday lecture :)

</comment><comment><USER23> I long for the day when these correlation-digging studies with absurd claims will stop.

[https://xkcd.com/882/](https://xkcd.com/882/)

<comment><USER24> You should take a look at the journal article. They comment on how they corrected for multiple testing

"In addition to MANOVA, the Bonferroni procedure was used to protect against multiple comparisons."

The Bonferroni correction is one of the most conservative ways to correct for multiple testing.

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

<comment><USER7> The study is still 'correlation-digging'. Bonferroni won't fix the problem that these kinds of studies will throw up statistically significant associations that provide no insight into anything meaningful, due to confounders, biases, poor design etc. There is no equivalent xkcd however.

<comment><USER25> There's more to it than just the things you mentioned, and I'd argue that it's an even bigger problem. The fact studies are adaptively chosen and performed based on the results of past studies on the same (or related) data leads to increased instances of false discovery. This is something that is directly addressed in some very recent recent work (not uncoincidentally making reference to this exact XKCD comic):

[http://googleresearch.blogspot.com/2015/08/the-reusable- hold...](http://googleresearch.blogspot.com/2015/08/the-reusable-holdout- preserving.html)

<comment><USER7> Freedman's paradox refers to adaptive data analysis within one dataset. The reusable holdout is designed to permit adaptive analysis on the same dataset without inflating the false discovery rate. The problem doesn't apply if you are collecting new data and testing the hypothesis, that's the ideal scenario.

<comment><USER25> Yeah, Freedman's paradox is definitely part of what I'm alluding to. The other aspect is that for widely studied phenomena, some groups are likely to come to wrong conclusions just due to statistical error. E.g., if 100 groups independently investigating whether "Eating chocolate is associated with improved brain function" (and we'll assume it's false, just to make my point), a few are likely going to come to the conclusion that it's true. Even worse, some studies with "expected" results may not be published (either by choice of the investigator or by the reviewers); instead, the "interesting" or "exciting" results will get published.

</comment></comment></comment></comment></comment></comment><comment><USER26> Just as an FYI, I found a company recently that makes chocolate with zeor sugar, that's sweetened with Stevia: [https://www.cocopolo.com/](https://www.cocopolo.com/)

I didn't like their dark chocolate, but their milk chocolate comes pretty close to regular milk chocolate.

<comment><USER27> What is this current obsession with stevia? It has a very strong, pretty much unpalatable taste that even strong espresso can't mask.

<comment><USER28> There seems to be a genetic component to how we perceive the taste of some of these artificial sweeteners [1]. Personally, I also think stevia is gross -- bitter and metallic aftertaste.

The best AS for me is sucralose (Splenda). I can't tell it apart from sugar. I've also never seen any results about it that would concern me, and it's been studied more than almost anything else we eat.

[1] [http://news.psu.edu/story/284556/2013/08/20/research/multipl...](http://news.psu.edu/story/284556/2013/08/20/research/multiple- genes-manage-how-people-taste-sweeteners)

<comment><USER27> It may also be a matter of getting used to it.

Oddly enough, after so many years, I don't like the taste of sugar any more, it seems 'off'. Aspartame is fine.

</comment></comment></comment></comment><comment><USER29> Just in time for easter

</comment><comment><USER30> Those with 'improved brain function' generally eat more chocolate. Now I can say with impunity "I prefer chocolate because I have improved brain function."

Chocolate improves brain function. Now I can say with impunity "Chocolate is improving my brain function."

</comment><comment><USER31> I won't even argue if the study is bias or not. Let's just say chocolate is good for the brain. But is it advisable for people to consume them in certain amount daily? Well, back in the days, there were numeric studies about benefit of tobacco too.

</comment><comment><USER32> Would be good to make a longer study that takes into account that cocoa contains cadmium, which is quite toxic and probably might increase a chance of cancer.

</comment><comment><USER33> Some of the characters who are suppose to be super smart in 'Death Note' are always eating sweets / chocolate.

</comment><comment><USER5> Does _anyone_ really believe this wasn't paid for by a chocolate maker?

</comment><comment><USER34> Wasn't one of these health-benefits-of-chocolate papers revealed to be a deliberate prank?

</comment><comment><USER35> I'm not disparaging the researchers here but really I couldn't help thinking of this: [https://xkcd.com/882/](https://xkcd.com/882/)

<comment><USER36> If you're wondering why you're getting downvoted: The figure of speech you're using is colloquially known as "no offence, but you're an arsehole"[0].

[0] [http://www.urbandictionary.com/define.php?term=no+offense&pa...](http://www.urbandictionary.com/define.php?term=no+offense&page=2)

</comment></comment><comment><USER37> "This article is brought to you by Nestle" ;)

</comment><comment><USER38> So smart people have a knack for chocolate?

</comment><comment><USER39> is chocolate a nootropic?

</comment><comment><USER40> 'L' would approve.

</comment><comment><USER41> All food is healthy. Diets can be unhealthy. It really is interesting that the whole science is concentrating on a single ingredient.

<comment><USER42> > All food is healthy.

Except for the food with cyanide in it.

<comment><USER43> Like apples

<comment><USER44> And walnuts.

</comment></comment></comment></comment><comment><USER45> in my personal experience, eating chocolate has pushed me into IBS trouble, which i realized such a disease existed after 15 years. I stopped eating chocolate for the past 5 years. Now i am happy.

Brain is a sugar sucker. Eat food which has natural sugar (like fruits) and you still be happy. Chocolate is just one sour junk which sugar added to please your bain (which is the trick). I think eat the chocolate without sugar and see if it sill improves brain function

<comment><USER46> Bitter, not sour. Lemons are sour.

<comment><USER45> forgive my english. its not my native.</comment></comment></comment>


White CEO Wanted - <AUTHOR> https://www.iafrikan.com/2019/07/16/white-ceo-wanted/ <comment><USER2> This was a fake wanted ad but I routinely receive recruiter emails invidiously discriminating on the basis of age by specifying a max experience level.

<comment><USER3> I have heard the term "too senior" far too many times.

</comment></comment><comment><USER4> In my modern experience though, no one would dare put up such a wanted ad, while one asking for a person of color, minority, or some form of diversity token would be perfectly okay. So I guess it is edgy after all to say "White CEO Wanted", but not for the reason they were going for.</comment>


Systemd needs official documentation on best practices - <AUTHOR> https://utcc.utoronto.ca/~cks/space/blog/linux/SystemdNeedsBestPractices <comment><USER2> I tend to approach such tasks by just copying and editing a unit that shipped with the os (e.g sshd) — the example the post gives as being problematic is using some timer feature instead of cron and I suppose my question is really: who is doing that anyway?

I know you can rig up systemd to act like inetd or cron, but perhaps you would be better with an actual service (how hard is quartz?) than baking your jobs into systemd units..

That said, I only use Linux in prod for enterprise stuff that depends on it, everything else is on bsd so you can probably guess my opinion on systemd ;)

<comment><USER3> I'm one of the (rare?) people who actually likes systemd. On Arch Linux, it is uniformly applied to the whole system and is actually a nice experience IMO. This contrasts with other distros that use a hodgepodge of sysv-init, upstart, and others. Even still, I think that systemd has discoverability and verbosity issues that should be addressed.

<comment><USER4> I spent the time to learn it and yeah, it's pretty nice when it's working.

The problem is of course when you need to do something that isn't supported by SystemD, in which case you're in for a world of hurt as the system constantly fights you.

For example, I had a requirement to make sure some machines randomized their MAC addresses when connecting to untrusted WiFi in Ubuntu 14. Turns out this functionality was broken in NetworkManager and trying to go around its back was a huge huge headache because the system was relentless in checking the MAC of the interface and setting it back to the physical one.

There are other times where it bites you in the ass too, like writing a raw image to a SD card. In the old days you would just dd the image onto the card, but you can't do that anymore because shortly after you write the filesystem header to the card SystemD will notice the new filesystem attempt to mount it, killing off your dd process.

I always try to work with SystemD now because it's so much harder to fight it.

<comment><USER5> Ubuntu 14 doesn't use systemd. It was the last LTS prior to the systemd switch.

<comment><USER4> Ack, I misspoke. Ubuntu 16 was the one with the busted MAC randomization. It worked in 14, but was broken in 16 due to the SystemD deployment.

[https://bugs.launchpad.net/ubuntu/+source/network- manager/+b...](https://bugs.launchpad.net/ubuntu/+source/network- manager/+bug/1573856)

</comment></comment></comment></comment></comment><comment><USER6> Here are some best practices:

\- Small is beautiful.

\- Make each program do one thing well.

\- Build a prototype as soon as possible.

\- Choose portability over efficiency.

\- Store data in flat text files.

\- Use software leverage to your advantage.

\- Use shell scripts to increase leverage and portability.

\- Avoid captive user interfaces.

\- Make every program a filter.

<comment><USER7> I know this is only tangentially related, but when you're bringing up UNIX philosophy...

> \- Store data in flat text files.

Storing encryption keys or the like in flat text files is surprisingly hard, at least in C. I don't think it's even possible to use sscanf(3) without unexpected explosions, and otherwise you get to hand-roll your hex parsing code yourself (Base 64? Get yourself a library).

<comment><USER8> Then don't do it the hard way and store something like a password in some general text file that needs to be parsed, just have the password in its own file. This is also good practice when that's otherwise a sane idea because you can apply separate permissions to that password file.

Working with that sort of file in C is trivial, you either open() and read() from that file, or mmap() it.

</comment></comment></comment><comment><USER9> The lack of clear, thorough, reliable documentation is one of my biggest gripes with systemd.

<comment><USER7> The man pages that ship with systemd seem very thorough to me. The problem is rather that they're very thorough in the first place. They're a very hard, lengthy read and you kind of require to understand all of it before things begin to make sense.

<comment><USER10> That's exactly the point the article is making. In addition to the comprehensive documentation, systemd users need best practices for a good range of common-to-uncommon use cases.

</comment></comment></comment><comment><USER11> I agree, and I am one of the people who has some major gripes with systemd through experience. I admit it's a reality and people should learn it, but the problem is not many people have, and sometimes it really makes things that used to be much easier not necessarily more difficult (though sometimes), but rather more complicated (there is a difference). For example, I always found writing a sysvinit service pretty straight forward, but systemd units can get unweildy especially when doing anything complex, though I will admit some of the features are nice if you can figure them out, such as when in the init proc to start, vs having to do that manually in sysvinit scripts.

It also often fails to admit when it is failing, for example, nobody I know uses journald as the main or only logging system, and are still piping to local (r)syslog(ng) and then to elk/splunk, etc, because journald is simply not up to par.

In general, and I'm just being honest here, besides these mostly work- aroundable issues, it is the seeming disingenuousness of those who automatically rail against anybody who criticises systemd that makes me not like it. Call me a contrarian, but I hate being told I must like X and if I don't I'm dumb and behind the times, and my nature is to push back against that.

In that vein, I support the efforts of Devuan and similar projects if only to support a counter-balance.

<comment><USER12> > [..] elk/splunk, etc, because journald is simply not up to par.

Could you expand on what's not up to par in journald vs. rsyslog? Watching textfiles for changes vs. receiving data on a non blocking socket is definitely _not_ more efficient (nor "better" in my opinion).

<comment><USER11> Mostly related to the tooling around those things, especially when dealing with groups of machines sending logs to a central system. It's worth remembering you are still using journald when using one of the syslogs, it's just forwarding all the journal messages to the syslog socket.

As the tooling catches up this gap will close. For example the json output of journald can be really useful, that said, most of the tools still require some change of the output from the binary format which they can't read to a text format whether that be json or syslog... and the binary format in general being a general pain point if (read: when) things break (such as corruption of the whole journal past corruption point vs one section of text in syslog).

It's worth remembering that journald was designed for local system use. It's just one more of the reasons I had some hesitation with systemd but got shouted down by everyone on the systemd bandwagon.

</comment></comment></comment><comment><USER13> What's the general consensus on the relevance of systemd when you've migrated to a fully containerized architecture? I know that I run almost everything in docker nowadays and barely touch systemd. I use fargate on AWS too and there is no systemd to touch. I use a simple python based init process inside most of my containers.

<comment><USER14> If you are not using systemd, it is not relevant.

<comment><USER13> To be more specific, is it worth learning nowadays?

<comment><USER14> For DevOps, yes. Systemd can be a simpler solution than say Docker for some applications.

</comment></comment></comment></comment><comment><USER15> But if they codify best practices, then they won't be able to invent "best practices" on the spot to cover their asses whenever somebody discovers some flaw in their software.

Prime example: the "best practice" of not letting usernames start with numbers is invented on the spot by a SystemD dev to cover his ass: [https://github.com/systemd/systemd/issues/6237#issuecomment-...](https://github.com/systemd/systemd/issues/6237#issuecomment-311900864)

<comment><USER16> Isn't it shadow-utils that came up with that rule? And rhel/centos patching that out? [https://gist.github.com/bloerwald/a482791395114fa82636e2ab20...](https://gist.github.com/bloerwald/a482791395114fa82636e2ab207cdb11)

<comment><USER15> It was never a rule, only a quirk a few other tools had. The kernel has always permitted these usernames; it is plainly systemd's responsibility to not shit the bed when it encounters such a username.

</comment></comment></comment><comment><USER17> I love systemd. I use it extensively in production. The constraints handling (ex: service depends on database which depends on network) is great. You can have a systemd timer restart another timer that was suspended when the system load was too high, etc.

Systemd is the best way I know to handle programs that can fail randomly, with complex dependencies. Just tweak the restart limits on the service. You can manage the whole set of dependencies. It can even be instructed to reboot the server.

However, documentation could be better. For example, I have not been able to use yet the new feature allowing services to join existing namespaces not created by systemd (so not JoinsNamespaceOf=, but NetworkNamespacePath= ; cf otherwise [https://cloudnull.io/2019/04/running-services-in-network- nam...](https://cloudnull.io/2019/04/running-services-in-network-name-spaces- with-systemd/))

But systemd is still a bit new. Documentation and best practices will improve.

EDIT: actual technical content get downvoted as usual, while opinion pieces about systemd being the antechrist fly.

</comment><comment><USER18> The best practice would be to replace it with something simpler and more elegant.

</comment><comment><USER14> The article complains about not getting email when a timer-activated service fails.

Like all software, if you didn't test it to work, why should you expect it to work? Cron can fail silently as well if don't set MAILTO. Not all servers start out with working outbound mail, which is something you have to setup for both Cron and Systemd as well.

I agree the OnFailure= recipe could be documented better, although I found an example easily enough when I looked up how to have systemd timers send email on failure. I use a script which mails the output of `systemctl status` on the service that fails, so I get logs of what happens.

I've a number of questions about systemd on StackOverflow sites and there are definitely some FAQs about best practices related to getting started with setting up services.

<comment><USER19> >Cron can fail silently as well if don't set MAILTO.

From the cron man page:

> Any output produced by a command is sent to the user specified in the MAILTO > environment variable as set in the crontab(5) file or, if no MAILTO variable > is set (or if this is an at(1) or batch(1) job), to the job's owner.

<comment><USER17> With a non working mail configuration, it goes nowhere.

I think the author meant that

<comment><USER19> If they did mean that then they were deliberately missing the point of the original complaint.That isn't the sort of thing we are allowed to assume here...

<comment><USER17> So you prefer not assuming good fait? Ok.

Without mail, journalctl and even better, systemctl list-timers will tell you about failed crons.

Can you do something as good with at and cron?</comment></comment></comment></comment></comment>


Memory-Level Parallelism: Intel Skylake versus Apple A12/A12X - <AUTHOR> https://lemire.me/blog/2018/11/13/memory-level-parallelism-intel-skylake-versus-apple-a12-a12x/ <comment><USER3> Adding a little bit of background here might help. Daniel defines what he means by "lane" in an earlier post: [https://lemire.me/blog/2018/11/05/measuring-the-memory- level...](https://lemire.me/blog/2018/11/05/measuring-the-memory-level- parallelism-of-a-system-using-a-small-c-program/).

Restating, what he's doing is "pointer chasing", which is one of the slowest way of accessing memory because each load is delayed by the full latency of the lookup. Set up an array of random numbers, look up the value at a location, use the value you find as the next array location, then repeat. Because each load is data dependent on the previous, no prefetching is possible. So far, all data reported are for a single core.

Each self-contained "pointer chase" is a "lane". To increase the number of lanes, do multiple pointer chases in parallel: lookup up N array values in quick succession on the same core, use the values you find as the next array location for each lane, repeat. You find that up to a point, the total number of "chases" per second increases as you increase the number of lanes.

Different processors "plateau" at different levels of parallelism. Intel processors max out at about 10 lanes, which implies that they can keep about 10 requests to RAM "in flight" at a time. This matches the published number of "fill buffers" for the Intel chips. Apple's processors max out at over 20 lanes, saying that they can keep more than 20 requests in flight. Apple hasn't published how many "fill buffers" their chips have, so this is one of the first direct measurements.

One of the big questions being asked is: "If increasing the number of requests-in-flight is important to performance, why doesn't Intel just increase the number of fill buffers?" If you have an answer, please let us know, either here, or as a comment on the blog, or in response to Travis's question at RWT: [https://www.realworldtech.com/forum/?threadid=181499](https://www.realworldtech.com/forum/?threadid=181499).

<comment><USER4> It might be interesting to know if these lanes are per logical core, physical core or CPU. If it's per core, it might be hard to find real-life code using more than 10 lanes outside of micro-benchmarks.

<comment><USER5> I'm not an expert (so I could be completely wrong), but I could imagine in- memory data stores being bound by this kind of limit...

<comment><USER6> AMD processors have 44-stores in flight, but only 22-loads in flight.

I presume Intel processors have a similar difference between their "store buffers" and their "load buffers".

<comment><USER3> I'm not sure if we are using the same terminology, but I think Intel has the opposite arrangement, with more "load buffers" than "store buffers". In Table 2-7. L1 Data Cache Components from [https://www.intel.com/content/dam/doc/manual/64-ia-32-archit...](https://www.intel.com/content/dam/doc/manual/64-ia-32-architectures- optimization-manual.pdf), it says:

                              Sandy Bridge
      Load buffers            64 entries
      Store buffers           36 entries
      Line fill buffers (LFB) 10 entries

I think Haswell (and later?) are 72/42/10 per physical(?) core, also with more load than store. How does this match up with what you know about AMD? And do you have a clear number of LFB's (or whatever they call the buffers which are allocated only for L1D misses) for AMD?

Edit: I now see the link you gave in your other comment. Hmm. I think numbers you gave do correspond to the inverted ratio numbers for Intel, and I couldn't find any claimed number corresponding to LFB's. We do have a couple AMD machine we test on, and I think we did, but I don't recall the exact numbers, other than a general recollection that they were about about the same as the Intel. In his RWT post, Travis claims Ryzen as having 8-10.

<comment><USER6> > In his RWT post, Travis claims Ryzen as having 8-10.

I wonder if they're statically partitioned: so that you only get ~11 per thread on Ryzen when SMT is activated.

The AMD Optimization manual is cler that the LS unit handles cache misses. Intel's manual is clear that LFB handles cache misses.

Load / store buffers seem to be a more general set of micro-op reordering in general.

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

It appears I've been mistaken btw. Let me post the full text of the section:

> The LS unit includes a 44-entry load queue (LDQ). The LDQ receives load > operations at dispatch. Loads leave the LDQ when the load has completed and > delivered data to the integer unit or the floating-point unit.

> The LS unit utilizes a 44-entry store queue which holds stores from dispatch > until the store data can be written to the data cache

...

> The LS unit can track up to 22 outstanding in-flight cache misses.

So that's 44 load queue, 44 store queue, and 22-cache misses for AMD Ryzen. Presumably, this is split somehow in hyperthreads (which would lead to the ~10 number you suggested)

<comment><USER7> Load and store queues are different than the "miss buffers" we are talking about here. Every load and store will need one of these entries from allocation until retirement, so there are usually a lot of them, something like 20% to 40% the size of the ROB (re-order buffer) each, since many code sequences have many loads and stores.

The miss buffers are different in that they only get involved when there is an L1 miss. They are only used from the moment the miss is detected until the miss completes. Also, load and store buffers are used 1:1 with load and store instructions (including instructions that have a load, store or both combined with an ALU operation, such as load-op or RMW on x86). Miss buffers are 1:1 with outstanding misses _on the granularity of cache lines_. So if you load 8 consecutive 4-byte values, which all fall in the same cache line, which misses in L1, you'll have 8 load buffer entries used, but only 1 fill buffer used since the buffer coalesces all misses to the same line.

</comment></comment><comment><USER8> > On Apple's devices, whether it be an iPhone or an iPad Pro, I believe that > the pages always span 16kB and that this cannot be easily reconfigured.

This is correct, and has been true since the A9: [https://developer.apple.com/library/archive/documentation/Pe...](https://developer.apple.com/library/archive/documentation/Performance/Conceptual/ManagingMemory/Articles/AboutMemory.html#//apple_ref/doc/uid/20001880-99100-TPXREF113)

</comment><comment><USER6> AMD's optimization guide for Zen ([https://developer.amd.com/wordpress/media/2013/12/55723_SOG_...](https://developer.amd.com/wordpress/media/2013/12/55723_SOG_Fam_17h_Processors_3.00.pdf)) suggests:

> The LS unit can track up to 22 outstanding in-flight cache misses.

So not as much as Apple, but more than Intel in this regards. I probably could test this, but I'm tired today, lol.

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

10 outstanding loads per core seems like a small number, especially compared to contemporary processors (Apple or AMD's). Maybe Intel knows something we don't.

<comment><USER9> > Maybe Intel knows something we don't.

Or maybe Intel's chips miss less often due to more sophisticated branch prediction and prefetching? The Pentium 4s were victims of excruciatingly painful pipeline flushes and stalls. It'd make sense Intel would have invested heavily in understanding and mitigating these kinds of caching behaviors and a lot of that surely was lifted into the Nehalem/Core microarchitecture designs that most of the modern Intel chips are designed around.

<comment><USER10> I think the point of this benchmark is that you can't predict load addresses because they are effectively random

</comment></comment></comment><comment><USER6> Okay, I've given it some thought. Here's my theory:

ARM's load/load, load/store, store/load, and store/store reordering is more flexible than Intel's store/load (only) reordering. As such, ARM is more likely to benefit from deeper load-buffering than Intel.

Remember that all of these systems are multi-core, which means we have to consider what these load-buffers do during a multi-core situation. Here's some example code for "Thread 1"

Thread 1:

        register RAX=0; // Non-memory. No load/store associated
        int a=0, b=0, c=0; // "True Memory", accessing these have a load/store
        while(1){
            RAX++;
            memory barrier();
            a = RAX;
            RAX++;
            memory barrier();
            b = RAX;
            RAX++;
            memory barrier();
            c = RAX;
        }

In effect, this thread would create the memory commands:

        memory barrier
        store [A], 0
        memory barrier
        store [B], 1
        memory barrier
        store [C], 2
        memory barrier
        store [A], 3
        memory barrier
        store [B], 4
        memory barrier
        store [C], 5
        (etc. etc)

For simplicity, I've added memory barriers to ensure that these writes happen in EXACTLY this order. No need to worry about ARM's store/store reordering in this example. (x86 does NOT need memory barriers, because store/store will always happen in order)

Now lets imagine a 2nd core reading from these variables. Lets say Core#2 has the following load buffer:

        load rax, [A]
        load rbx, [B]
        load rcx, [C]
        # Note: no memory barriers!

With this ordering, the Intel processor is guaranteed to have "RBX" a later value than RAX, and RCX to have the latest value.

This is NOT true in ARM. In the ARM processor, the following assignments are possible:

        RAX = 3 # load RAX MAY execute last on ARM.
        RBX = 1 # This example will NEVER happen on x86
        RCX = 2

Why? Because in ARM, the load/load boundary can be crossed by the core. That is, the "load RBX, [B]" instruction MAY be executed first on ARM's architecture, despite coming in afterwards.

This means that load buffers are far, far cheaper on ARM. But they also come at a cost to the programmer's sanity. If you actually have important "ordering", you need to be sure to protect your code with memory barriers.

x86 has an implicit memory barrier on all stores and loads. This is slower and more costly. In effect, the load-buffer on x86 MUST be a proper queue: the first loads must execute first, while the last loads must execute last.

In ARM, this isn't the case. A load-buffer of size 40 can all execute simultaneously and out of order. Much to the confusion to multi-threaded programmers, I'm sure. This example also demonstrates why on weakly ordered systems, you need a memory-barrier on BOTH threads. (Fixing the store/store reordering with memory barriers only solves half the problem)

With that being said: modern programmers know that the only variables that need a defined ordering are synchronization structures, like spinlocks. Every spinlock needs a "release" barrier afterwards (Explicit barrier states: do NOT reorder anything past this store). Every spinlock needs an "acquire" barrier before reading (Command: do NOT reorder anything before this load).

Semaphores / Atomics / other synchronization structures also need a defined ordering. Accessing "normal" variables is well known to be "unordered" by modern programmers. So ARM has the advantage with regards to modern languages. x86's architecture is more strict than necessary.

<comment><USER7> Yes, this is a reasonable explanation of the ARM and Intel memory models, but I'm not following how this relates to miss buffers specifically.

The load buffers which maintain the source/program ordering on a per- instruction basis as you describe above are called ... load buffers. These are different than the "miss buffers" which track outstanding misses. Intel chips have 70+ load buffers, so no there is no shortage there. Yes, x86 chips have to jump through a bunch of to keep ordering, which means their load buffers probably need to more sophisticated (Intel sometimes refers to a MOB - <USER2> "memory order buffer" which tracks this stuff, but as far as I can tell this is not a separate buffer but just another name for the load and store buffers and associated machinery, with a focus on the memory ordering aspect).

The way it works in Intel is that everything will speculatively execute out of order, loads passing loads and all the things the memory model doesn't officially allow, but the load buffer will track the original order. As long as there is not indication of an actual problem with the ordering (i.e., a store on another core which causes a snoop that hits the load buffer on this core), the out-of-order nature of the execution isn't visible, so everything can retire fine. If something happens that violates the order, a "MOB machine clear" happens (with a cost similar to a branch misprediction) occurs and the chip starts over.

None of this directly implicates the miss buffers though. For one thing, they are not 1:1 with instructions and they are not instruction ordered, since multiple misses will coalesce to the same buffer.

That said, I can certainly see the stronger x86 memory model playing a role here, but it isn't clear to me _how_.</comment></comment>


Don't Covet Your Ideas - <AUTHOR> http://26.media.tumblr.com/tumblr_l1x0vt7O8w1qzuzp8o1_r1_500.jpg <comment><USER2> Although, looking at the guy who invented the "cash point machine" (ATM) and didn't make any money off of it, because he shared the idea with a banking executive, is a sheer example of why it might be a good idea NOT to share it.

<comment><USER3> Hence the emergence of open source licenses, no? Someone realized that if you give away your idea, someone else will just go an patent it; by enforcing the idea to stay open regardless of whose hands are holding it.

Is the Arduino not a good example of this (and OSS as well, but that's somewhat obvious)?

<comment><USER4> So then nobody makes money (off the original idea at least). Why not just patent and sell it yourself?

<comment><USER2> The patent process is still notoriously too expensive for most people with ideas. And idea think tanks are out to rip people off, so it's hard to find partners who are willing to patent an idea that may not be monetized on an aggressive schedule.

</comment></comment></comment></comment><comment><USER5> A page straight out of "It's Not How Good You Are, It's How Good You Want to Be." Bought that a long time ago and betting it'd make for a good re-read thanks to this reminder.

<http://www.amazon.com/dp/0714843377>

</comment><comment><USER6> Or... be careful about who you let see them. Allowing people to piggy back off of your exam answers devalues your own answers.

I'll admit that I have been keeping my ideas as secret as KGB operative but know that this is wrong. Is there a good consensus on how much to share? Should Web 2.0 stuff be kept quiet unless you start to develop? Truly innovative things that can't be easily reproduced in the idea stage?

<comment><USER6> Addendum -- look at the current issue with Facebook and ConnectU. Know who you are sharing with if you plan to do something with an idea.

</comment></comment><comment><USER7> Not sure why he says, they're not your ideas anyway. If that was the case, you wouldn't be hoarding them.

</comment><comment><USER8> And wear sunscreen...</comment>


Homebrew Oculus Rift Eye Tracker - <AUTHOR> http://jdarpinian.blogspot.com/2014/06/homebrew-oculus-rift-eye-tracker.html

<comment><USER2> That's pretty cool! It's also possible to put the cameras below the eyes, if you're comfortable cutting through the lenses: [http://arstechnica.com/gaming/2014/06/why-eye-tracking- could...](http://arstechnica.com/gaming/2014/06/why-eye-tracking-could-make- vr-displays-like-the-oculus-rift-consumer-ready/)

(disclaimer: I work for SMI)

<comment><AUTHOR> Cool, I was excited to see the articles about your eye tracker last week. I don't have any equipment that would allow me to cut lenses precisely like that (did you use a waterjet cutter or something?). I really wonder how you guys are dealing with the calibration issues I mentioned in my post! Are you somehow tracking the motion of the Rift relative to the head?

</comment></comment><comment><USER3> This would be idea. The only issue is that to get the full power of eye tracking integrated into the rendering system you need a camera that does at least 1000fps and even that is too slow for some stuff (researchers who use saccades as a behavioral readout in monkey research often use an implanted eyecoil because cameras are too slow). Those cameras are not cheap but maybe with a little math they can get away with using a slower one that costs less.

Ultimately I expect this to happen officially because it is just too powerful an interface and there is so much useful data to be gained (plus scientists would love oculus forever). Probably won't happen in the near future since as Plamer pointed out in one of his talks it turns out avatars only need to look in a probable direction to seem realistic.

<comment><USER4> Low resolution high frame rate CMOS imagers are quite inexpensive.

</comment></comment><comment><USER5> Very cool - I bet psychologists would also love this, pupil dilation is a pretty good quantitative for mental effort IIRC, and with this set-up you can really control the circumstances.

How hard/easy was it to get that image processing working in Halide?

<comment><AUTHOR> It was a bit tricky to work with Halide. The Halide code itself is beautiful, but it depends on LLVM which takes forever to build and link, and I ran into some snags with Windows support. I originally wanted to write the whole algorithm in Halide and run it on the GPU, but it turned out that the Halide language isn't expressive enough to implement a Hough transform. I had to write that bit in C and I'm currently only using Halide to do some more straightforward image processing tasks like edge detection filters, blurring, and resampling. It works really well for that though, and performance-wise it runs rings around the naive nested C for loops that I would otherwise have to write.

<comment><USER5> Thanks, been interested in the language from a distance for a while now.

Can't claim to know what a Hough transform is, but do you think the lack of expressiveness can be fixed without interfering with the tricks that make it work? It's still a language under development after all.

<comment><AUTHOR> I think the language could be made expressive enough, and the developers thought so too when I asked them about it. I think they're focusing on other things for now though.

A Hough transform is kind of a weird beast; not really your typical image processing problem. For anything that looks like a series of convolutions or other simple image operations, Halide is going to be the fastest thing around; even faster than a series of calls to the Intel IPP library (because of the ability to tune memory access patterns across multiple stages at once).

</comment></comment></comment></comment><comment><USER6> That is a brilliant idea to use a hot mirror and IR camera like that!

This is probably today's most accurate technique to use for VR eye tracking, right? And it looks super cheap for any company or project to produce this assembly in-house.

</comment><comment><USER7> The patent landscape around eye/gaze tracking must be a minefield.

<comment><AUTHOR> I hope that my public disclosure of all these ideas will, at some point in the future, ruin a patent lawyer's day.

<comment><USER8> I know some people who have the patents on this stuff. You've only just scratched the surface...

<comment><AUTHOR> You don't need to tell me that companies who've been doing eye tracking for years are ahead of my little homebrew project. I know that, obviously. But if I can prevent even one patent that claims "eye tracking like before, BUT IN A VR HEADSET NOW", I'll consider that a win.

<comment><USER8> You don't have a chance. Eye-tracking has been an integrated part of VR headsets for years, since the 80's, and is well and truly sealed up with patent protection. That there are no consumer-ready, plug and play products on the market today is actually a reflection of this fact, not a consequence of omission. The people with these patents are using them in industrial/medical/military/marketing applications - but the consumer version of this tech is well and truly on its way.

Once the glasses-computing wheels start to turn for consumers, expect to see integrated eye-tracking become a stock standard.

</comment></comment></comment></comment></comment><comment><USER9> Could make a mini map for the living room (with the humans marked on it) and/or a perimeter alert system to avoid being the subject of practical jokes.

</comment><comment><USER10> I'm excited to see what Oculus officially has in store for eye tracking. I can see this being essential for non-gaming VR (pun intended)

</comment><comment><USER11> That's impressive. Raises privacy issues[1] but it's awesome and the possibilities endless.

[1] Would you trust a clear screenshot of your eye which could probably used for identification flying around the internet?

<comment><USER12> Hey man, Facebook's gotta put that In-q-tel capital to work!/s

But on a more serious note, isn't shining IR directly into your eyes from such close distances hazardous?

<comment><USER13> I'm sure the amount of IR light involved is far less than the exposure you get from walking outside on a nice sunny day.</comment></comment></comment>


The Daily WTF: Productivity 2.0 - <AUTHOR> http://thedailywtf.com/Articles/Productivity-20.aspx

<comment><USER2> If you want a concise example of incentives gone awry, I believe there's a Terry Pratchett quote of the form "The king announced a bounty of one shilling per rat tail. Within three days, the first rat farm opened." I'm sure someone can provide a more faithful quotation.

</comment><comment><USER3> perhaps an easier solution would be a little IDE plugin that checks in the code whenever a key is pressed.

I don't know if you can beat ~40 check-ins per line ;)</comment>


Poland will treat all Covid-19 patients with Chloroquine - <AUTHOR> https://www.reddit.com/r/Coronavirus/comments/fi8eox/poland_has_formally_registered_chloroquine_as_a/ <comment><AUTHOR> Poland has formally registered Chloroquine as a drug for COVID-19 and will treat all patients with it.

Chloroquine phosphate is a generic antimalarial drug derived from quinolone, in 10 trials for Covid-19 in China, including one in combination with Kaletra, as chloroquine phosphate is believed to have broad-spectrum antiviral activities.

Basically the goal is to allow zinc to get into a cell, it needs a helper to get inside the cell (a Zinc Ionophore). Apparently Hydroxychloroquine / Plaquenil (which you can buy here: InHousePharmacy.vu/p-1106-plaquenil- tablets-200mg.aspx or here easyshopping4health.com/buy-plaquenil-usa.html) is even more effective than Chloroquine.

Also see Medscape.com/viewarticle/736439 and [https://www.ncbi.nlm.nih.gov/pubmed/32074550/](https://www.ncbi.nlm.nih.gov/pubmed/32074550/) title: "Chloroquine phosphate has shown apparent efficacy in treatment of COVID-19 associated pneumonia in clinical studies"

Quinolones like Chloroquine were used in malaria prevention for many, many years. they aren't used specifically against malaria anymore, because malaria adapted. But I always prefer a compound that can be manufactured easily and has been used by many many people over years.

Regarding Zinc Ionophores, the flavonoid Quercetin (which you can buy in many places) has been shown to rapidly increase labile zinc in mouse cells as well as in liposomes. Source: [https://pubs.acs.org/doi/abs/10.1021/jf5014633](https://pubs.acs.org/doi/abs/10.1021/jf5014633)

</comment><comment><USER2> Yesterday or the day before IIRC a fellow "WilsonPaige", [https://news.ycombinator.com/user?id=wilsonpaige](https://news.ycombinator.com/user?id=wilsonpaige) posted much earlier on Hacker News and, right in front of us, deduced that the combinationn of chloroquin + zinc lozenges would stop the covid-19 virus dead in its tracks. He announced it as such.

In return, ycombinator moderators hellbanned him and _deleted some of his posts_.

Now it seems WilsonPaige was right and everybody who contradicted him are, at the least, looking foolish and simply wrong.

</comment><comment><USER3> A great step. I wonder who's testing efficacy of chloroquine vs. hydrochloroquine.

<comment><USER4> [https://twitter.com/elonmusk/status/1239776019856461824/phot...](https://twitter.com/elonmusk/status/1239776019856461824/photo/1)</comment></comment>


Differential Synchronization (2009) - <AUTHOR> https://neil.fraser.name/writing/sync/ <comment><USER2> There is a fundamental problem with difference-based synchronization: the meaning (intention) of operations is not preserved.

So while this method may work well in many cases in practice, there are classes of problems where the approach does not work. These problems may involve, for example, more complicated invariants that must hold between different parts of the data.

<comment><USER3> > _complicated invariants that must hold between different parts of the data._

Like, oh, when that data is, say, _program code_. Or text that has to be very consistent in the promises that it is making, or the requirements that it is specifying, and so of forth.

I.e. this is good enough for sloppily written collaborative fiction. Writer W0 kills a character C0 in chapter 3, while writer W1 not knowing about this removal of C0 causes the character to appear in chapter 4. Oh well, the sky isn't going to fall!

Even if these changes are in the same file, and even if the diff and patch identify textual conflicts, the chapters are too far apart for these changes to be so identified.

The aim in this algorithm seems to be to make it so easy and transparent that _all_ textual conflicts disappear, presumably because the target audience is users whose heads would explode at the idea of resolving a conflict. (Rather than just swell up and get sore, as in the case of software developers accustomed to version control.)

<comment><USER4> Yes, this technique isn't intended for general-purpose synchronization. In particular it's not for offline synchronization. It's about something like Google Docs where everyone is online and lots of small diffs happen quickly. If there's a conflict, you can see it happening in real time and can easily correct it.

<comment><USER3> Sure, if the whole document fits on a napkin, maybe.

Could you always spot a conflict in real time if 15 people are plugging away at a 500 page document?

It is quite hard for just _one_ person to produce a big document, and hunt down all the inconsistencies.

<comment><USER4> Yes, writing a book requires serious organizational skills. But no diff or sync algorithm is going to handle this so I don't know why you're bringing it up. When it matters (and for many docs it doesn't), it's up to the users to coordinate on their work.

Even with programming, we don't use source control systems to find conflicts between distant parts of a program. We see if it compiles and all tests pass.

<comment><USER3> _But no diff or sync algorithm is going to handle this so I don 't know why you're bringing it up._

Because that's what programmers do when they see claims like "robust and self- healing".</comment></comment></comment></comment></comment></comment>


Ask HN: Where Is the HackerNews Dark Theme? - <AUTHOR> <comment><USER2> for now, try the 'dark background and light text' addon for firefox</comment>


Objectroot: a new filesystem hierarchy for Unix-like systems - <AUTHOR> http://objectroot.org <comment><USER2> This is an interesting direction, but highly underspecified.

There are many edge cases not addressed (eg. creating a user named "common" would probably be bad), and inconsistencies (eg. software from the PSF going under /org/python/, which is probably also where would you expect PyPy to be found, even though it is a different organization).

</comment><comment><USER3> What does this reformulation have to offer over Plan 9's union mounts, which let me create arbitrary hierarchies to my own specifications instead of following someone's arbitrary "standard"?

</comment><comment><USER4> It's unfortunate for the people designing / promoting this, not to mention NixOS as previous work.</comment>


AirBNB solution: remain on your apartment's fire escape in a hanging tent - <AUTHOR> https://www.etsy.com/listing/280677864/airbnb-housing-solution-remain-on-your <comment><USER2> This is a joke right?</comment>


Show HN: Nicest Person › The site where nice guys finish...First - <AUTHOR> http://nicestperson.com/ <comment><USER2> There's obviously content, based on the right-hand bar: <http://i.imgur.com/i4B9L.png>

But the home page shows a "No posts" error: <http://i.imgur.com/jT4L5.png>

<comment><AUTHOR> Yes, there is content. I started this idea but it has just been me talking about how others are nice to me.

How do I get others to participate? Any thoughts?

I was thinking of getting a sponsor to provide a prize to the winner every week.</comment></comment>


C program proofs with Frama-C and its weakest-precondition plugin [pdf] - <AUTHOR> https://allan-blanchard.fr/publis/frama-c-wp-tutorial-en.pdf <comment><USER2> Interesting. Using a fully automatic SAT solver for the easy stuff and Coq for the things the SAT solver can't prove maker good sense. We did that 40 years ago in the Pascal-F system. The Oppen-Nelson cooperative decision procedure system (the first SAT prover) did the easy stuff - proofs that only need addition, subtraction, multiplication by constants, and logic. Beyond that you had to write a "rule" and prove it with the Boyer-Moore prover, which is a constructive system that uses induction. About 95% of the verification conditions were solved without adding new rules.

This group got about as far as we did - arrays, but not dynamic allocation, pointers, or objects. "WP cannot currently work with dynamic allocation, " they write. That's the point at which describing what "valid" means becomes difficult, and you get into specification languages separate from the program.

I notice they put in what they called "ghost code", code which has meaning only at proof time. We called that "proof code". It's written in the same language as the real code, and can look at values from the output, but can't change them. This is a programmer-friendly way to write specifications. It's easy to write code to check a sort or a lookup if you're not concerned about speed or space. Then you prove that the dumb check and the complex algorithm get the same result.

One big problem with proof of correctness systems is that they tend to be designed by people in love with the formalism. They need to be designed by people who hate and fear bugs. The Microsoft Static Driver Verifier is probably the best example of a system aimed squarely at preventing crash-type bugs. It's the main tool Microsoft used to prevent drivers from crashing Windows 7 and later.

<comment><USER3> I've read very little detail about the Static Driver Verifier other than that it's supposed to use an SMT solver. I don't know if MS is using the same tool for other products in their portfolio or not. I've used it a little bit (it's a pain to set up) but have little information about exactly what it does, since it doesn't rely on any special annotations or specification language. Can you shed any light on more technical details about it?

With F*, Dafny and the Lean theorem prover, it seems like Microsoft (at least the research division) is moving in the direction of formal verification but I hear very little about it's use on their commercial products. Trade secret, perhaps?

<comment><USER2> The Static Driver Verifier is something you can download if you're a Microsoft developer. There's not much of a secret about it. There are papers. It tries to verify that a driver can't crash the rest of the kernel. No bad pointers, no infinite loops, no setting up DMA into some memory it shouldn't, no driver API calls with wrong params, stuff like that. Doesn't mean the driver will talk to the device properly. It just proves that the driver stays in its lane and doesn't mess up the rest of the system. Huge win for Microsoft. Half of Windows crashes used to come from drivers.

(Yeah, yeah, undecidability makes proving halting impossible. No. It's easy to prove that most code finishes. If you're writing a kernel driver and there is any ambiguity about whether the code will finish, you're doing something very wrong. If it's hard to prove termination, you add a loop counter so that after N tries, it gives up.)

<comment><USER4> It would be nice if it verified stack usage or microsoft mitigated known garbage kernel modules, I spent a good part of a day setting up debug symbols and tearing out drivers without debug info till finding out a Sophos kernel driver was blue screening about 50 or so workstations with 50 or so angry people.. what fun.

</comment></comment></comment></comment><comment><USER5> So this system uses the spec language ACSL (I assume it's a formal spec language, FSL).

How widely used is it? I've heard of TLA+ being very popular. Then there is Z notation, and about half a dozen or more others.

If there is no standard FSL, do I have to learn a new FSL everytime I want to apply formal methods to a slightly different system I'm working with?

Formal methods is a hard enough area. Lack of standardization makes it harder.

<comment><USER6> ACSL is indeed a FSL. Making a standard FSL is a nigh impossible since it should encompass every programming language and its specific features.

For example, ACSL has built-in ways to talk about the side effects in C, labels, the validity of pointers, etc. and the semantic of those elements is tied to the C standard.

On the other hand, the syntax of ACSL is heavily inspired from JML (FSL for Java) which is pretty popular. So if you know JML, it's easy to learn ACSL (you just have to learn C-specific features)

</comment></comment><comment><USER7> I remember Frama-C for its slicing. I have recently become interested in Datalog driven approaches, such as Souffle, for static analysis of large codebases. Anyone with experience or thoughts along those lines?

<comment><USER8> Out of curiosity, are there known pros and cons to each approach? I've been experimenting with Z3's CHC engine _and_ Coq for modeling programs. I don't know enough about both yet to fully understand how they compare.

</comment></comment><comment><USER9> I wasn't sure what WP stood for. My mind jumped to WordPress but that obviously wouldn't make sense.

Turns out it stands for Weakest Precondition.

<comment><USER10> Hmm, good point. We've put weak preconditions in the title above.</comment></comment>


New Wind Turbine That Looks Like a Tree Is Coming to Paris - <AUTHOR> http://www.iflscience.com/technology/new-wind-turbine-looks-tree-coming-paris

<comment><USER2> I have a hard time believing that will be cost effective. I started to describe my reasons, then found that [http://blog.cleanenergy.org/2015/01/05/windtree/](http://blog.cleanenergy.org/2015/01/05/windtree/) did a much better job, and included factors I hadn't thought of.

      1. It's purely for aesthetics.
      2. Ever heard of "wake effect?"
      3. Making a wind turbine look like a bird's natural habitat isn't a great idea.
      4. Short turbines don't produce a lot of energy.
      5. It's way more expensive than just about every other form of power generation.
      6. It won't pay for itself in 2 years.
      7. It won't power most of your home.
      8. It won't win over anti-wind activists.</comment>


An algorithm to reconstruct pixel art images - <AUTHOR> https://www.facebook.com/victorqribeiro/videos/2021533927867372/ Here's a preview of something I've been working, it's an algorithm to reconstruct pixel art images. The algorithm first detects the relative "size" of the pixel in that particular image, then it redraws it filtering the noise, to get rid of artifacts cause by compression or interpolation due to scaling.
https://www.facebook.com/victorqribeiro/videos/2021533927867372/
Above is the video of the algorithm working. The audio is in portuguese but I'm not saying anything important; just describing the algorithm. I think soon enough I'll be uploading the source code to my git account. <comment><AUTHOR> I did wrote a text here with a link to the video, I don't know where it went.</comment>