Renewed demand for the metal cobalt is breathing new life into Cobalt, the town - <AUTHOR> https://www.bloomberg.com/news/features/2017-10-31/the-canadian-ghost-town-that-tesla-is-bringing-back-to-life?cmpid=socialflow-twitter-business&utm_content=business&utm_campaign=socialflow-organic&utm_source=twitter&utm_medium=social <comment><USER2> My first reaction to the idea of a mining town on the rise was romantic. The thought of a community of people that are used to hard manual work and create people like AvE made it sound so nice to make me want to move there.

Then they talked about the toxic sea next to it, the ground instability, the poverty stemming from having a single industry propping up the local economy... not as romantic as it first sounded.

Still, it helped me recognize my craving for a place where I can afford to have a workshop and some land...

<comment><USER3> I grew up in a uranium mining town in northern Ontario. After the cold war ended and larger deposits were discovered in Africa, the town pretty mostly shut down and my dad lost his job.

I'd say it gave me a nuanced view of some things despite me being quite liberal overall.

\- I don't think about "the environment" the way most people seem to. There are many environments and ecosystems typically cover more area than a single mine or factory can pollute. Places like Cobalt, the tar sands in Alberta, or Siberian nuclear test sites are basically uninhabitable without shipping food and fuel in from afar, so it doesn't bother me that they're ecological disasters. Even if those places are ruined, it's easy for humans to leave them alone for a century or more without much inconvenience.

\- Mining practices in the 3rd world are exploitative and dangerous but there's not much you can do about it specifically. My dad designed machinery to prevent rock fall, that position is inconceivable in Africa. But the market for cheap minerals will never go away. Even if Tesla stops buying, other firms in other countries will. The only way to prevent it is to raise the standard of living in these African countries so that no one would consider taking a mining job there in their current form.

<comment><USER4> > The only way to prevent it is to raise the standard of living in these > African countries so that no one would consider taking a mining job there in > their current form.

I just don't agree with that. There are many ways to improve this situation. Apple has done a lot to improve their supply chains and the conditions workers work there. As far as I know, Apple has gotten completely rid of child labor for their products because of its high standards. If more companies would take that stance, there would a lot less child labor in total. Although I believe Apple made a pretty big difference because of its size.

Furthermore, the government should regulat how imported goods and raw materials should be mined. They should have clear guidelines what is allowed and what is not for raw materials. There should not be a loophole for the supply chain. Every company chooses their supply chain and is thus responsible. If every company suddenly demands that their supply chain will not employ children and use safer techniques in their mines, the supply chain will make sure demands are met.

Employing such regulations is not unheard of either. The US government already is pretty strict about bribery in foreign countries, so they should be able to place similar regulations. Enforcing such a regulation can be hard but it is possible. If companies cheat, they will get chaught eventuall and if they are fined appropriately, it should not be worth the risk.

Even getting right and left wing people to vote for that should be easy. The right wing can use that regulation to keep the mines in the country and protect jobs, and the left wing can say it is better for the environment and humanity this way. The real problem are lobbies, though. There are a lot of companies which would suffer from that a lot and they are willing to spend a lot of money on lobbing. Maybe Apple, combined with Tesla and other environmental responsible companies can make a difference.

Just hoping that the standard in another countries suddenly improves a lot is not enough. We have no control over that country and many thing can prevent that. Furthermore, this just shifts the mining to another country and it will continue there. By applying regulations which set standards how materials can be mined, including requiring a living wage for that country, Afria has a good way to raise their overall standard.

<comment><USER5> Sure but the best way to get government to enact regulations is to have citizens who want the government to enact such regulations. And the best way to get citizens to care is to raise their standard of living.

Studies have found that caring seems to start at about a GDP per capita of $10K or so.

<comment><USER6> Would you share those studies?

Seems intuitive that there is a minimum threshold of confort for political participation

<comment><USER7> Both minimum and maximum levels of comfort (bread & circuses).

</comment></comment></comment></comment></comment></comment><comment><USER8> >> ...are attracting renewed attention as a buffer to rising political risks in the Democratic Republic of Congo...

So this economic resurgence is based on African politics? Not a very solid foundation imho. Canada has plenty of Cobalt. Canada has plenty of everything. It's a big place. But it isn't a poor and corrupt nation where permits may be purchased and safety standards disregarded. Its resources won't ever be the cheap option. One day Congo will get its act together and then Cobalt is back where it started.

FYI, Cobalt is no ghost town. Western Canada is littered with proper ghost towns that shut when their local mine or sawmill closed. Cobalt may be sleepy and poor but nowhere near deserving ghost status.

<comment><USER9> I think companies are realizing that cheap labour and poor regard for safety are not worth dictators that mess around with your equipment, labour pool and exports.

I can't speak from experience, but I imagine a company foreseeing a large demand for a material will gladly pay more for a constant, secure supply rather than pay less for one that could be halted at the drop of a hat.

I once had a conversation with a guy in oil and gas at a party. I'm not sure what his job was but he basically said that in most African countries there is hundreds of millions of dollar of equipment just sitting collecting dust. When a company leaves, the government demands crazy amounts of (bribe) money to export the equipment, to the point where the company just walks away from it and writes it off as a loss.

<comment><USER8> >> ... hundreds of millions of dollar of equipment just sitting collecting dust

Much of that equipment, in a place like Canada, is a liability. It must be dealt with properly and that costs money, often far more than the equipment is worth. You cannot just leave stuff in the field. I'd be that many of these companies are happy to abandon oil equipment rather than transport and dispose of it properly.

<comment><USER9> The equipment isn't non-functioning. If it were in Canada (or other industrialized country) it would just be moved to another project. However, as this person said, the governments see the value in this equipment, come up with some "fee" for moving the equipment out of the country and the companies just cut their losses and walk away from it.

</comment></comment></comment></comment><comment><USER10> > Bell believes the amount of cobalt being used in electric cars could easily > double in the next eight to 15 years

that's a bit of an understatement... If it only doubles we're in trouble, I'd say it's going to go 10 to 20x

<comment><USER11> What's the reason it needs to go up so much?

<comment><USER10> In my opinion, electric car production needs to seriously increase in order to meet our carbon targets.

There's a couple of reasons to that:

\- Some cars like the leaf have Vehicle to Grid technology allowing the car to essentially become a trading machine, buy when cheap, sell when expensive. This massively helps the spread of renewable as you can let your car plugged and make money. Buy when production of solar is big (low price), sell at peak time.

\- Car batteries are exceeding expectations in terms of lifetimes, which means even when the car is dead, or if the battery has been upgraded (like it's possible on the Renault Zoe and BMW i3) you can basically stack the old car batteries in a container and again, store and trade energy on the grid

So it really goes together with renewable, especially the ones that are less stable over time like solar or wind. The earlier the productions increases, the earlier the second market can be created for the batteries.

It's also worth noting that it's apparently cheaper to recycle a battery than mine the minerals, which leaves hope for large scale battery recycling.

</comment></comment></comment><comment><USER12> A very fitting news for Halloween day.

</comment><comment><USER13> 49000 the house. SO lucky

<comment><USER14> Not really. Job prospects are likely limited to non-existent, winters are long and harsh (and dark), education opportunities very limited, very few entertainment options, the availability and price of fresh food will be poor, it's a 2 hour drive to the nearest city (North Bay with a population of 50 000), 5+ hours to a "real" city (Ottawa or Toronto). I could go on...

I'm sure some of the residents love their hometown, but there's a reason the real estate is so cheap. Personally you would probably have to pay me _a lot_ of money to move my family there.

<comment><USER15> To be fair, the latitude is less than even Paris, France. The winters may be colder than Paris, but there is more seasonal darkness/lightness change in Paris than in Cobalt

</comment></comment></comment><comment> dao- The headline is clickbait. The town has a population of 1,100, so it's not a ghost town, and the article mentions Tesla exactly once, in what's basically a side note.

<comment><USER16> Thanks, we've updated it to the article's subtitle.</comment></comment>


Ask HN: Focus Points For Incubator Final Round Presentation? - <AUTHOR>

For those that have "been there, done that" what are the areas to focus on for a short presentation (5 min of slides, 5 min Q&A) given to a potential incubator. Logically I'd think you'd want to cover:
1. what our startup does 2. why is it relevant (what problem does it solve) 3. what have we done so far to test our thesis (showing pilot data when possible) 4. who we are (as individuals) and why we (us as a team) are capable of managing this company 5. what mentoring would be ideal and what we would do with any funding.
Are there other items to include? Which area's deserve the most attention? Thanks! <comment><AUTHOR> the project we are pitching can be found at <http://collegejobconnect.com> \- should have included that in the posting</comment>


Feeding cows chicken litter is not just gross, but a public health concern - <AUTHOR> https://www.motherjones.com/environment/2013/12/we-feed-cows-chicken-poop/ <comment><USER2> Bet that beef isn't going to taste too good..</comment>


Programming is Math, apparently. - <AUTHOR> http://tagide.com/blog/2011/05/programming-is-math-apparently/ <comment><USER2> This article's title is sarcastic, apparently.

Sure, some mathematics is outside the purview of programming. Certainly some programming activities are only loosely mathematical. But to say that the clerical part of programming is all that matters (and that's really what he says here) is totally ridiculous.

<comment><USER3> Agreed. It's true that math and programming intersect insofar as one is trying to prove the consistency of imperative commands (either by proving isomorphism with the lambda calculus or Hoare triples or something) but even writing something boring like WordPress invokes algorithmic thinking. You have thousands, possibly millions, of connections coming in a minute and don't want to thrash the database and want to ensure eventual response to all. Sounds like some pretty intense algorithmic thinking to me.</comment></comment>


Ask HN: Review my Twilio based startup - <AUTHOR>

I have opened to the public a tool I've been using for nearly a year now: phone number redirection on my pay-and-talk phone. I wanted better rates than what the telecom was willing to give me, without a contract, and so I used Twilio to make this. Please let me know what you think, about any part of it. It can be found here: http://churp.me/ <comment><USER2> Linkification: <http://churp.me/>

<comment><AUTHOR> Thanks for the help! I'm new to HN and still learning how to post items properly. Did you get a chance to look at the site?

</comment></comment><comment><USER3> nice url, decent design - most you see her are not consumer friendly, but this is. the copy sells th idea well, though since I am from the UK I don't totally get usa mobile plans.

good luck!

<comment><AUTHOR> Hey, thanks for the reply! Hardest part is knowing what other people think, as I have a tendency to be biased towards my own ideas. Thanks for taking the time to check it out, much appreciated. By the way, I'm actually targeting Canadians (I know, it's sometimes hard to make the distinction). Maybe I should be a bit clearer on that point.

</comment></comment><comment><USER4> Just feedback, i think youre doing a lot right here, but heres the stuff i didnt get: Maybe this makes more sense for canadians but I can't figure out if tis is useful for Americans or not. A diagram might help a lot sine there are several multistep scenarios you're describing. Also pick a primary benefit or two and focus on the. The top three view rotator left me confused and would change before I had a chance to figure one of the views out. Good design and domain and naming, a d you're halfway to making it comprehensible, I think.

<comment><AUTHOR> Awesome feedback, thank you. I appreciate it all and you can bet that I'll be incorporating your suggestions. I've been thinking about this problem for so long, and know the solution inside out, it is difficult for me to see it with fresh eyes. By the way, do you know of any similar features in the states where you can get unlimited calling to one number? Much thanks.</comment></comment>


Backdoor found in closed source AMD Linux driver - <AUTHOR> https://twitter.com/hashcat/status/422665130002747392 <comment><USER2> Protip #1 HNsearch is your friend.

[http://hnsearch.com](http://hnsearch.com)

→ [https://news.ycombinator.com/item?id=7049950](https://news.ycombinator.com/item?id=7049950)

▬▬▬

Protip #2 read the Twitter conversation before submitting a Tweet.

      @KieronGillespie
      It is just checking to make sure the render state hasn't
      been compromised between execution. Preventing hacks in
      games.

      @KieronGillespie
      This may have something more to do with backdoor hacking into
      D3D for hackers to enable wall and speed hacks for their games

      @rhymoid
      Disassemble it and you'll see it's harmless.

      @molnar_g
      Disassembly: http://pastebin.com/K1hRupTp

Maybe I am wrong, maybe I am an idealist, but I would prefer to think that nobody would be stupid enough to label a malicious backdoor as `backdoor`.</comment>


Why Your "Team" Page Should Actually Be About Your Team - <AUTHOR> http://blog.matthewgoldman.com/post/85920572814/why-your-team-page-should-actually-be-about-your-team <comment><USER2> IMHO "fun fake title" are only fun for the team and not for someone who is trying to find out about your team.

What exactly does "Draws Boxes & Arrows" mean to anyone outside of the team?

<comment><USER3> Thank you! I was sitting here with a similar comment ready to go, but I was afraid to post because I thought for sure I'd be alone again.

I will sometimes be very interested in a service until I hit the "about" page and see all the "inside jokes" and weak attempts at humor that, for some reason, make me very uneasy.

It almost makes me feel like an outsider, the guy standing around the circle of cool kids who all have something funny to say, that I won't get, and they don't want anything to do with me. Do you really want your COMPANY to send that message?

The main UI designer draws arrows and likes Ice Cream? Is he 7? What is a data grill master? Uhg. I'm a bit of a stick in the mud, yes, but I don't understand this silly about-page trend.

<comment><AUTHOR> We're not trying to make the whole page silly. Just have a little fun so you understand what we're like and see if you might want to join us. It's clear you wouldn't--so that's pretty effective.

<comment><USER4> When deciding whether to partner with an organization, I view their team page. You are not only excluding potential coworkers via certain choices.

</comment></comment></comment></comment><comment><USER5> What about people who don't want their photo on the website? What about people who don't want their name to be found on the company website first (if it has a good page rank)?

Who am I to talk, having a website online for over a decade? Still, if your team likes to have such a team page, awesome (if not a few feel pressured to join in) - but I prefer our wall of mugshots near our entrance in the physical office and I know some people who would object to that team website a lot.</comment>


No work? Get better. - <AUTHOR> http://alpha.drawar.com/posts/No-Work--Get-Better-

<comment><USER2> I've seen a number of articles on this topic recently, from several industries. The common story seems to be "we're hiring, and we're getting five times as many resumes per position as before, but only half as many qualified applicants."

Companies aren't looking to hire dead weight right now. In very good times, people with weak skills can get work just because whatever little thing they can do allows the stars freedom to work on bigger-money projects. But in a bad job market, you really have to boost your skills up to the level employers are still willing to spend money bringing in.

<comment><USER3> To be blunt, though, a lot of dead weight still isn't getting fired, either.

In a down market, companies should be hiring, even if they don't "need" the people. Great talent is not only more available now than before, but it's probably cheaper, too (after enough months of looking, people just want a job, and are less picky about salary and such). And since the job market isn't great, once your talent is in the door, they're not likely to leave anytime soon. It is the perfect time to build a dream team and actually get things done.</comment></comment>


Greedy Register Allocation in LLVM 3.0 - <AUTHOR> http://blog.llvm.org/2011/09/greedy-register-allocation-in-llvm-30.html

<comment><USER2> I love reading about LLVM internals. It's exciting to see LLVM still making major algorithmic improvements to something as important as register allocation- it's a really nicely designed library both to use and to work on, and bringing the generated code's performance closer to compilers like GCC makes it even better.

<comment><USER3> I thought it had already largely surpassed GCC?

<comment><USER4> It may have largely surpassed GCC in terms of how easy it is to integrate and compilation speed, but in quality of generated code it is lagging.

</comment></comment></comment><comment><USER5> Does anyone know what software was used, to make those two allocator flowcharts, in the above blog entry?

<comment><USER6> It looks like Omnigraffle, which runs on OS X. Given that llvm is mostly sponsored by Apple, I could imagine a lot of the devs are running OS X. I used a bit back in college and I remember the shadowed boxes looking like that. I especially liked it because it generates vector graphics for inclusion in LaTeX documents.

<comment><USER5> Thank you.</comment></comment></comment>


Hubspot paying $30k for developer referrals - <AUTHOR> http://dev.hubspot.com/refer-a-friend

<comment><USER2> Note that there aren't any openings in Boston, just Dublin.

<comment><AUTHOR> I see a bunch in Boston/Cambridge on their jobs page: <http://dev.hubspot.com/jobs></comment></comment>


Ask HN: Which startups are fighting Cancer? - <AUTHOR> I don't have a medical background, but I'm an engineer and I would like to help contribute my skills towards cancer cure research or treatment.<p>What are the most impactful startups in this space? <comment><USER2> Source: was cancer researcher, now for 20 years on commercial side (sales, marketing, bizdev etc).

Largest impact to reduce cancer rates/mortality is early detection. Biggest valuations alas in late-stage disease, that's reality, for $8K/mo targeted Rx that only extends life a matter of months (on average, although some remarkable responders i.e. Jimmy Carter's metastatic melanoma).

Largest startup by far for early detection of cancer is GRAIL, something like $1.3B invested.

Long tail of small companies with their unique special sauce. A few off the top of my head: Bluestar Genomics, Epigenomics AG, CellMax Life (out of Taiwan), Singlera Genomics, LAM Research, EarlyDx.

<comment><USER3> Is it possible to get early diagnosis of lung cancers such as Mesothelioma? I knew someone who has just died from this less than a year after diagnosis. It's something that's rare enough that false positives might be a problem.

</comment></comment><comment><USER4> I'm a Software Engineer and I would also like to help such researches with my skills...

I'm emotionally attached to this fight as my mother died 3 years ago due to adenocarcinoma. That disease not only cost me my mother but also made the whole family financially weak...

Although, I've completed my B. Sc in CSE ( in the same year my mom passed away) After completing my B. Sc I had joined a Startup as a software engineer and worked there for around 9 months. Since then, I've been providing python based web development, data mining and analysis services on various freelance platforms and through my website. With the help of my wife I have also started my own startup which consists of 6 members including us & focused on web application development & Data Mining/ Analysis services.

I have keen interest in cancer research... Hopefully, I will pursue MS/PhD on relevant field when I have enough fund for that so that, I can learn more about it.

My target is to save at least 1

</comment><comment><USER5> I would also be interested in helping with that kind of research. I am a hardware engineer with background in wireless engineering and other electronic design. Please let me know if you find something worth while.

</comment><comment><USER6> Might be a bit of a different angle to this, but this startup is fighting cancer by using drug-combination therapy approach: [https://www.curematch.com](https://www.curematch.com)</comment>


Snapcraft – Package any app for any Linux - <AUTHOR> http://snapcraft.io/ <comment><USER2> I got mail from Ubuntu Store, linking to this site.

The mail didn't have a link to read the announcement in a browser, so let me sum it up a little.

Basically Debian packages are going away for commercial applications and they will be replaced by "snaps".

The roadmap they mention is: on June 30th they will stop accepting new applications, only old apps could use Debs for updates. On November 3rd, only snaps and no Debs for new installs or updates.

They also say that the new store will have a 2 hour window for requesting a refund.

They sent me the mail because at some point I tried to distribute a game using their store (although it got "rejected" because it was free and they recommended me to use a PPA).

I don't know much about snaps, other than they need LXD installed.

</comment><comment><USER3> Interesting, the example seems to suggest that I need a login to download Snaps -- is there no anonymous mode?

<comment><USER4> You can side load a snap with sudo snap install.

</comment></comment><comment><USER5> It would be so nice if I could just give this thing a binary deb and it would make the snap for me.</comment>


LFortran: Modern interactive LLVM-based Fortran compiler - <AUTHOR> https://lfortran.org/ <comment><USER3> I use C++ Eigen extensively. I wonder if it feasible to write a C++ programs that hands off blocks of linear algebra code to Fortran subroutines. Eigen does a wonderful job of late binding and lazy evaluation so that something like the following is fairly efficient:

         (L.transpose() * P).diagonal().array().square().mean();

which computes the squared average of column by column dot products between matrices L and P. I assume Fortran, since matrices are native types, does this kind of thing even better.

Aside: Fortran 77 was the first programming language I learned in 1985 and I hated programming for awhile after that. We called it the "F" language. Now that I am a bit older and do a lot of linear algebra coding... I wonder if I would like it now.

<comment><USER4> I think Eigen's template strategy is probably hard to beat from the perspective of combining operations. How well Fortran does is probably mostly up to the compiler implementation. In some of my benchmarks, gfortran sometimes seems to fuse the operations and end up much slower than if it has performed them separately in succession, but I wouldn't be surprised if compiling with `-fexternal-blas` (and linking MKL) would've solved that.

If you want to try external BLAS/LAPACK with Eigen, I'd look at: [https://eigen.tuxfamily.org/dox/TopicUsingBlasLapack.html](https://eigen.tuxfamily.org/dox/TopicUsingBlasLapack.html)

I have `A * B`, `A * B'`, `A' * B` and `A' * B'` small-single-threaded-matmul benchmarks here: [https://chriselrod.github.io/LoopVectorization.jl/latest/exa...](https://chriselrod.github.io/LoopVectorization.jl/latest/examples/matrix_multiplication/) I compared triple nested loops with Clang, icc, ifort, gfortran, Julia, and LoopVectorization.jl with matmul routines from ifort, gfortran, OpenBLAS, MKL, and Eigen.

While gfortran's builtin hit over 40 GFLOPS with `A * B` and `A' * B'`, it failed to get half that if only one argument was transposed. I'm supposed awkward fusing at the start of this post because if it had done one after the other, it should have still hit >40 GFLOPS when only 1 matrix was transposed.

<comment><AUTHOR> These benchmarks are very interesting! From my experience gfortran's MATMUL is very good for small matrices, but OpenBLAS gets better from ~10x10 elements. Not quite sure that's the same as your benchmark; its colour code is a bit confusing. Would you mind making the data available?

Certainly, gfortran's default implementation works well as a quick and easy solution for small vectors and matrices outside of hot paths. Also, I remember discussions about improving matmul(transpose(A),B) somewhat recently. I don't remember for which version it was, but it's the sort of things that is improved regularly.

I would love an option to align arrays in gfortran. It's very important to take advantage of automatic vectorisation but I haven't found a reliable way to do it.

<comment><USER4> My color coding is bad (and there's an open issue about it), but I haven't come up with a great solution. One idea I should add was to make everything relative to LoopVectorization, but that wouldn't help for those interested in other comparisons like Eigen vs gfortran.

I'm on gfortran 10.1.1, so I'd only be missing out on very recent improvements (i.e., to trunk).

Note that these benchmarks were dynamically sized. If you write a fortran program like

      real(kind=8), dimension(10,10) :: A, B, C
      ! fill A and B somehow
      C = matmul(A, B)

the compiler will take advantage of the known dimensions and inline the call, making it much faster.

> I would love an option to align arrays in gfortran. It's very important to > take advantage of automatic vectorisation but I haven't found a reliable way > to do it.

I wish more compilers could also use masks to vectorize without padding. If multiplying 7x7 matrices with AVX512, the obvious solution is to just mask the loads/stores of columns, without the need for padding. Of course, padding would also ensure all your loads/stores are aligned, which can be nice.

<comment><AUTHOR> I think what the plots need is an option to show or hide each curve. It's a rather large increase in complexity compared to just generating images, though.

</comment></comment></comment></comment></comment><comment><USER5> Modern fortran is surpisingly pleasant to write.

The last time optimisation came up, I tried the author's problem - <USER2> two 4096x4096 matrices - in numpy, FORTRAN and Rust, on a standard laptop. Supposedly it took 9 hours in naive Python (I didn't try). Results were:

Python3 (numpy 1.18.4) 1.3s FORTRAN (gfortran 9.3.0) 6.0s Rust (1.43.1, debug) >60s Rust (1.43.1, release) 4.0s

What surprised me is that python and fortran solutions were written in minutes. The Rust solution took _hours_ and multiple forum posts for help. There's no obvious way, and _every single way_ I tried had "gotchas" and utterly astonishing behaviour in it, particularly with simple, statically- allocated arrays.

Fortran could do with proper namespaces, and properly dropping some of its older conventions, though. Reading it feels like archaeology.

<comment><USER6> So to be clear, numpy gives you a highly optimised matrix multiplication algorithm, and your FORTRAN solution was just something you threw together yourself, right? Little surprise that numpy roundly outperforms it, especially if it's using a different algorithm, such as Strassen rather than naive matrix multiplication. [0]

> every single way I tried had "gotchas" and utterly astonishing behaviour in > it

As someone who doesn't know much about Rust (or FORTRAN for that matter), what kinds of gotchas? I'd expect numeric code like this to be quite straightforward, as it presumably doesn't lean heavily on memory-management cleverness in the language, or anything like that.

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

 _edit_ For clarity, I made a table of your data. Seems surprising that Rust outperformed FORTRAN.

        ┌──────────┬─────────────────┬──────┐
        │ Language │     Detail      │ Time │
        ├──────────┼─────────────────┼──────┤
        │ Python3  │ numpy 1.18.4    │ 1.3s │
        │ FORTRAN  │ gfortran 9.3.0  │ 6.0s │
        │ Rust     │ 1.43.1, debug   │ >60s │
        │ Rust     │ 1.43.1, release │ 4.0s │
        └──────────┴─────────────────┴──────┘

<comment><USER7> The main reason for numpy's speed is that it uses highly optimized code _written in another language_ (for matrix multiplications, quite possibly FORTRAN).

<comment><USER6> Yes, of course numpy's heavy-lifting code isn't written in Python.

My point was that in comparing numpy to yodelshady's FORTRAN code, we're probably just comparing two different FORTRAN implementations, one much better than the other (perhaps using a different algorithm, perhaps just better optimised).

</comment></comment></comment></comment><comment><USER8> Is this related to flang?

[https://github.com/llvm/llvm- project/tree/master/flang/](https://github.com/llvm/llvm- project/tree/master/flang/)

<comment><USER9> LFortran author here. As kergonath said below, both "new" Flang that you linked above, and LFortran started at about the same time. I know the Flang developers well and I am hoping we'll be able to collaborate in the future more. It looks like MLIR would be one option: they are going to use it for Flang and LFortran can have a backend that could also use it.

LFortran's main advantage is that it is interactive, so the parser and semantics has to be a little different. And also we designed it so that it will be quite approachable for people to write tools on top.

<comment><USER10> Interesting to see an interactive Fortran as I started with Fortran in my first Job - on my first day I was told there is a book in the company library go and learn Fortran

For the really big Fortran systems I worked on in the 1980's (Map Reduce) the edit compile / link process could take several minutes for a single module - we did have a build system written in JCL to help automate this as well.

</comment></comment></comment><comment><USER11> Nice, I want to play with this, but I see on the Development page there is no/limited support for arrays?

<comment><USER9> LFortran author here. There is a Python prototype version that you can see in the notebook and it has very limited support for arrays. I stopped spending more time on it once I got further enough to validate that the idea works. And I am now spending all my time on the production LFortran implementation in C++. I am very close to make it usable for some very simple things, and then we'll go from there.

</comment></comment><comment><USER12> If curious see also

2019 [https://news.ycombinator.com/item?id=19795262](https://news.ycombinator.com/item?id=19795262)

[https://news.ycombinator.com/item?id=19788526](https://news.ycombinator.com/item?id=19788526)

<comment><AUTHOR> These are very interesting discussions. I don't know how I managed to miss them when I submitted...

<comment><USER12> The cutoff point for reposts is about a year, so it's good that you didn't see them and then not post.

[https://news.ycombinator.com/newsfaq.html](https://news.ycombinator.com/newsfaq.html)

</comment></comment></comment><comment><USER13> Not much of a Fortran yet without arrays, complex numbers, or strings.

<comment><USER14> fortran - one of only a handful of languages that natively supports multidimensional arrays, maybe the only low level one?

<comment><USER15> That's ridiculous, you can make a C++ class and overload operator() like Eigen to easily make a multi-dimensional array.

<comment><USER13> "natively"

<comment><USER15> What is different to fortran's multi-dimensional arrays? The interface can be almost identical and the memory layout in C++ can be whatever you want it to be.

</comment></comment></comment></comment></comment><comment><USER16> Looking forward to differentiable programming in Fortran.

<comment><USER17> I believe that's called "Julia".

<comment><USER18> There's a library for Julia coming out soon that can differentiate Fortran code. So, while tongue and cheek, it's not that far off!

</comment></comment></comment><comment><USER19> Support for arm?

</comment><comment><USER20> Wish lisp have these like jupyter integration.

And my first computer lecture many decades ago is really about how he hated fortran and why FORTRAN is still not dead (Mainly negative view due to haveGOTO that time). And it is still not dead.

<comment><USER21> Lisps were at the genesis of the original concept, it was called Lisp Machine, and the experience can still be replicated when using commercial Common Lisps like Allegro.

Fortran has been continuously updated, supports OOP, modules, and even generics.

<comment><USER22> Sadly, AFAIK, BLAS hasn't been updated to use generics. It would be so nice to have support for integer vector/matrix operations in there (not that it would require generics to have that, but it could be easier to implement integer support with it, though I suspect that for efficiency reason it might not be used in the end).</comment></comment></comment>


Anima — tool for CSS3 Animations - <AUTHOR> http://lvivski.github.com/anima/#

<comment><USER2> Looks really nice

honorable mention to other nice animation frameworks:

Move.js (<http://visionmedia.github.com/move.js/>) Transit.js (<http://ricostacruz.com/jquery.transit/>)

<comment><AUTHOR> Yes, these libraries are very good, but they don't generate "@keyframes", Anima does in CSS mode.

And as far as I see they have no parallel animations like <http://lvivski.github.com/anima/example/parallel.html>. The ball moves forward with lenear timing-function, and up/down with ease-quad, so is slows down when on top and speeds up when falls down

</comment></comment><comment><USER3> Love the simplicity, the name and the presentation. I'll try it out right a way on a project, I was just getting to the part where I'd animate stuff with either jQuery or CSS3 and it looks like this will make it a breeze. Thanks!

<comment><AUTHOR> Thanks for your feedback! You can post issues on github, if you have and troubles or questions.

</comment></comment><comment><USER4> Why does this framework treat css3 animations as though they have no interface with JavaScript events, or that animations can't be paused or stopped through CSS alone?

<comment><AUTHOR> Pure CSS animations can be paused and resumed via Javascript. It's not trivial to stop them and preserve last known state of the node, and apply next animation so that is starts with that state.

Controling CSS Transitions is even more difficult and requires multiple actions like: remember current transform, remove transition, apply remembered transform etc.

Yes, CSS Animations have events for animation start and end, but Anima gives intermediate events, for any transformation in a set.

So it's not impossible to control CSS animations, but it's much easier with Anima. In `CSS` mode Anima has `pause()` `resume()` and `stop()` methods

</comment></comment><comment><AUTHOR> It can do both: generate pure CSS Animations and animate items via Javascript, CSS 3d transforms and requestAnimationFrame.</comment>


Ask HN: How does Clearbit Reveal know who I am? - <AUTHOR> When I visit https://clearbit.com/reveal there is a screenshot of a web page. I've visited the page a few times from my home internet connection, and the image has been either:
A) My personal blog (on my own domain)
B) My company's web site
It's pretty impressive (or creepy, depending on your viewpoint) that they can map my IP address to a company and/or individual identity.
I'm curious about how they do it. I have some ideas, but nothing that would explain it working so well. Maybe I entered my email address on a form on a site that shares data with Clearbit, but wouldn't my IP address change often enough that this wouldn't be useful for more than a couple of days?
Anyone else have any ideas? <comment><USER2> > wouldn't my IP address change often enough that this wouldn't be useful for > more than a couple of days?

Yes, that's right. But your IP and all the other little atoms of data that are collected on you by various third parties are traded back and forth to form a rich web. Over time the value of any given data point (like your ephemeral DHCP lease) becomes less significant to the integrity of the picture that has been created of you.

</comment><comment><USER3> not sure what you are talking about. it shows me couple of random websites which i have never visited (eg asana ? and selseforce twice this day ?) which makes no sense or atleast completely random to entice the visitor

</comment><comment><USER4> even with ublock origin it showed my company's website. how?

<comment><USER5> Where does it show that? Am I missing something?

On my side it shows Segment's website in the two screenshots, I am not sure if this is just an example or if it believes I am linked to Segment in some way?

<comment><AUTHOR> It shows segment as a fallback if it has no data on you.</comment></comment></comment>


Washington Post publishes dataset of 52,000 criminal homicides - <AUTHOR> https://github.com/washingtonpost/data-homicides <comment><USER2> $ curl [https://raw.githubusercontent.com/washingtonpost/data- homici...](https://raw.githubusercontent.com/washingtonpost/data- homicides/master/homicide-data.csv) | grep 'Closed by arrest' | wc -l

25667

$ curl [https://raw.githubusercontent.com/washingtonpost/data- homici...](https://raw.githubusercontent.com/washingtonpost/data- homicides/master/homicide-data.csv) | grep -v 'Closed by arrest' | wc -l

26506

Wow that's depressing. All possible outcomes via

$ curl [https://raw.githubusercontent.com/washingtonpost/data- homici...](https://raw.githubusercontent.com/washingtonpost/data- homicides/master/homicide-data.csv) | cut -f 12 -d ',' | sort | uniq -c

              1 Closed by arrest
          25673 Closed by arrest
           2922 Closed without arrest
              1 disposition
          23583 Open/No arrest

Pretty sure that 'Closed by arrest' also regularly results in a 'Not guilty' down the pipeline, so the 'real' number is probably much lower.

<comment><USER3> It's Closed without arrest and Open/No Arrest that are most concerning. Closed by arrest indicates effort was probably spent during an investigation, the bare minimum assumption. An assumption that can not be made about the 26,505 Closed without arrest and Open/No Arrest murders.</comment></comment>


Returning to social media after ~4yr break. Starting from scratch everywhere - <AUTHOR> https://medium.com/@loundy/im-coming-out-of-hiding-9ef9bff4b424 <comment><AUTHOR> I'm just realizing that Medium might not be the right spot for me to post these daily updates.

It's nothing like it was before I disappeared a few years ago. When I went to hit publish, it gave me a lengthy explanation that, basically, it's going to be behind a paywall and there's nothing I can do about it (?)

Any ideas where I should post?

<comment><USER2> [https://write.as/](https://write.as/)

[https://telegra.ph/](https://telegra.ph/)

<comment><AUTHOR> Omg the telegraph website is incredible. But what kind of new user experience is that? No About page or anything? What a stunt!

write.as looks awesome. I also might use snap.as for a bunch of my photos.

Thanks so so much. Exactly what I was looking for.</comment></comment></comment>


Show HN: OpenGraph.io, a simple OpenGraph data parsing API - <AUTHOR> http://www.opengraph.io/

<comment><USER2> I want to use this service but there is an issue with for tweets you pick the authors picture. I would expect the best picture will be the picture being shared in the tweet. How can I contact you. I do not see any contact on the website.

</comment><comment><AUTHOR> To add a bit of background, I needed an OpenGraph parser for a personal project so I broke it off into a separate service.

The API takes in a URL and returns any OpenGraph data found along with some inferred values based on the HTML content.

The main focus for the product was to get the commonly used OG fields so some of the more obscure fields are ignored.

<comment><USER3> That's nice, but those who are interested in OGP would also want Schema.org, so, to offer a commercially viable service, I think Schema.org is a must.

<comment><AUTHOR> To tell you the truth I had never even thought about that but its a good idea. Thanks!

</comment></comment></comment><comment><USER4> og:url property="something" or og:url nam="something" both works, have you coded for that?

<comment><AUTHOR> I'm not sure if I follow. I'm currently only looking at the value for content attribute for a value. Are you saying that specifically 'nam=...' should work or it should respect any attribute name?

<comment><USER4> name= should work as well. Just asking because I never coded for that scenario but found a web page that had that, and it's valid</comment></comment></comment>


Start-ups are where the real job-creation is - <AUTHOR> http://bits.blogs.nytimes.com/2010/09/12/why-big-companies-matter-in-job-creation/ <comment><USER2> They've managed to redefine the question into a tautology - "The start-ups that make a outsized contribution to job generation are the ones that survive beyond five years, and begin to take off, heading toward and beyond the government-defined boundary of a small business (fewer than 500 employees)." In other words, "The startups that create a lot of jobs are the successful ones with many employees." Well, duh.</comment>


A new form of pure carbon dazzles and attracts - <AUTHOR> https://science.sciencemag.org/content/366/6467/782 <comment><USER2> WTF. They want $30 for a bloody article.

Not even a paper. An article.

Damn.

[https://sci-hub.se/10.1126/science.366.6467.782](https://sci- hub.se/10.1126/science.366.6467.782)</comment>


Have I tattooed a syntax error on my arm? - <AUTHOR> http://stackoverflow.com/questions/21186724/have-i-tattooed-a-syntax-error-on-my-arm?newsletter=1&nlcode=4592%7Cdedb <comment><USER2> I suppose this is an excellent example of testing prior to moving to production. I have 'ex nihilo ad absurdum' tattooed on my right forearm. It was more a reminder of the dark depression that spawns from philosophy and to distance myself from the subject. I would undo that decision if I had the choice.

<comment><USER3> I'm afraid that's the conclusion I've come to with every idea for a tattoo I've had over the last 20 or so years. I can't come up with anything with which I care to be stuck for the rest of my life. "Yeah, that's not going to seem so clever in ten years, is it?" So my skin remains untouched by the inky goodness of my local tattoo artist.

<comment><USER4> Go for Henna tattoos ... They are temporary .. like a few days/weeks. :)

</comment></comment></comment><comment><USER5> For some reason, people really like complaining about questions like this being closed.

I think this misses the mark for two reasons. One is simply that these sort of questions aren't really the point of SO, but I guess people disagree.

A bigger one is that closing is no big deal. People can still read the question and vote on answers! The only thing you can't do is add _new_ answers. And given that there's already a perfectly good answer along with a bunch of other posts, more answers would just be adding to the noise.

Seems like a win-win to me, but others somehow construe this as the downfall of StackOverflow.

<comment><USER6> Leaving it open is no big deal either. Or would _that_ be the downfall of SO?

<comment><USER5> With no or lax moderation, there's always the danger of becoming Reddit.

People come to StackOverflow because it has a good signal-to-noise ratio. Maintaining this ratio, and the reputation of the site as a _resource_ rather than a _discussion board_ is important.

I personally jump to StackOverflow results on Google pages because they almost always solve my problem exactly. If the results start being polluted by a bunch of less relevant discussions--which, being popular, are likely to rank well--I would probably stop using SO results as much.

On top of this, just leaving a question like this open hurts the question itself as well. There is no reason to want 100 different answers all pointing out the missing space in different words! That way lies madness and Quora-- where many answers to popular "survey" questions only get read because of the follow feature and a Facebook-esque machine-learning-based feed.

<comment><USER7> This question, in fact seems, to have been flagged as getting posted on Reddit (or maybe getting significant traffic from them?). I'm seeing this above the answers:

"Welcome, Redditors! We're looking for answers that provide serious, practical solutions to the problem stated. If you'd prefer to post a joke or launch a tangential discussion, please do so on the corresponding Reddit thread."

</comment></comment></comment></comment><comment><USER8> Excellent, the source code equivalent of

[http://hanzismatter.blogspot.com/](http://hanzismatter.blogspot.com/)

which implies that about 99% of westerners walking around with Kanji tattoos either have gibberish font (hilarious, read up about it) or think they have some girls name but its actually "weeds / brush (vegetation) / wild grassland"

The concept that you'll look better with a foreign language phrase as part of your skin is weird / mildly amusing all by itself, but the really funny part is the execution is so often an epic fail. So you've got an illiterate foreign language on your skin, not just a foreign language.

Given the apparently extreme popularity of the above genre, ridiculous source code should fit right in.

<comment><USER9> I have a theory that foreign language tattoos (or code tattoos, for that matter) arise mainly from a desire to have something (seemingly) unique tattooed. That, and some signalling implying some hidden skill/knowledge that the tattooed person must have.

The uniqueness bit is somewhat ironic, considering it's the thing that a large part of your peer group is rushing to do, as well.

<comment><USER8> "considering it's the thing that a large part of your peer group is rushing to do, as well"

I'm just barely young enough that I'm considered somewhat rebellious for not having tattoos or piercings. From what I've seen of the general public, the peer pressure on younger people must be immense to get tattoos / pierced.

<comment><USER9> > I'm just barely young enough that I'm considered somewhat rebellious for not > having tattoos or piercings.

Ha. I love it!

"No tattoos or piercings? What are you, one of those straight-edge weirdos?"

"No, I'm just like, you know, a normal person."

<comment><USER8> Or, I'm a cop, or, I'm so poor I can't afford the tattoos they have.

</comment></comment></comment></comment></comment><comment><USER10> I've noticed that quite a few American hackers have tattoos - at least way more than the hackers from where I come from (France).

Is there any cultural significance to it? Does anyone have any good hacker tattoo stories?

<comment><USER11> I have my username tattooed in binary on my arm:

[http://imageshar.es/52deec31f629007c14000e24](http://imageshar.es/52deec31f629007c14000e24)

<comment><USER12> That's actually a pretty aesthetic pattern of 1's.

</comment></comment></comment><comment><USER13> I thought this guy went too far, but no, it seems there are a lot of examples of code tattoos:[http://readwrite.com/2012/01/03/32_more_of_the_best_and_wors...](http://readwrite.com/2012/01/03/32_more_of_the_best_and_worst_tech_tattoos#awesm=~otCsrUoTC8IRhY)

Which begs the questions: which snippet is important/timeless enough to use and, of course, which language. As the OP found out the hard way one should use a Lang where whitespace doesn't matter.

Ideas?

<comment><USER14> I wanted to get <?=phpinfo();?> on my arm once. The thought of what it would output if run on a human still amuses me and if I had got it done, I don't think I'd be sick of it now, even though I've not coded in PHP for 2 or 3 years.

<comment><USER15> Please don't get PHP tattooed on your arm.

<comment><USER14> What about some VB?

</comment></comment></comment></comment><comment><USER16> For once Betteridge's law of headlines doesn't apply because the answer is -- yes! At least it shouldn't be that difficult to laser off if he wants to redo it!

</comment><comment><USER17> > put on hold as off-topic by FreshPrinceOfSO, Christian Payne, billinkc, > ajma, Maxime Rouiller 23 mins ago

This is why StackExchange sites will die.

Or perhaps they're just being subtle:

"This question was caused by a problem that can no longer be reproduced or a simple typographical error...."

<comment><USER18> Well, at least it's not a total loss, since the SO mods take great joy in killing joy.

One wonders how they deal with the situation of their own joyfulness, because it too should obviously be killed, but in order to do that they'd have to unhold joyful and interesting questions, creating joy which itself necessitates killing, and so on. Fork bomb.

<comment><USER19> Not only that, there are many great and informative questions/answers that are gone.

One of my favourites was "Most astonishing violation of the principle of least astonishment", and the answers were a catalogue of how-not-to-build-software. Examples of good behaviour are nice, but counter-examples are often just as informative. Alas, it was "not a good fit for a QA"

</comment></comment></comment><comment><USER20> > Welcome, Redditors! We're looking for answers that provide serious, > practical solutions to the problem stated. If you'd prefer to post a joke or > launch a tangential discussion, please do so on the corresponding Reddit > thread.

Wrong, StackOverflow. I'm logged in with a years-old and couple thousand rep account so I kind of know the rules, and no HN is not Reddit thank you very much.

<comment><USER21> The notice is playing the odds; it doesn't track referrers, and right now most of the traffic is actually coming from Reddit ([http://www.reddit.com/r/ProgrammerHumor/comments/1vs4uu/have...](http://www.reddit.com/r/ProgrammerHumor/comments/1vs4uu/have_i_tattooed_a_syntax_error_on_my_arm/) to be precise). You might be surprised how many people with several thousand rep points forget the rules when they've been on Reddit recently.

</comment></comment><comment><USER22> Syntax error or not, tattoo still seemingly dumb.

I figured it was going to be a forever loop or something...

<comment><USER23> Why is a non-terminating loop better than a fork bomb?

<comment><USER24> A fork bomb will quickly take up your systems resources and invariably will force you to turn off your computer.

A non-terminating loop will simply drag on forever, stealing cycles whenever it gets the chance.

<comment><USER25> Also: 1) an infinite loop will never use more than one CPU. Because of that, on almost any hardware less than 10 years old, normal users might barely notice an infinite loop that doesn't do I/O. A fork bomb, on the other hand, will try and create 2*N processes after N iterations, all of them competing on equal footing with your shell for CPU time and memory.

2) it is fairly easy to kill an infinite loop. Killing the explosion of processes that a fork bomb creates is a different thing. Between the time that you detect the process ID of a process to kill and the time you kill it, that process may have spawned a few new processes.

More info at [http://en.wikipedia.org/wiki/Fork_bomb#Defusing](http://en.wikipedia.org/wiki/Fork_bomb#Defusing)

</comment></comment></comment></comment><comment><USER26> You broke the #1 rule of tattoos: only get one in a language you're proficient in :-)

</comment><comment><USER27> How come he didn't tattoo the failing unit test first?

<comment><USER28> At least the tattoo inker should have run some CLI tests first... duh. Can't trust those people.

</comment></comment><comment><USER18> Could someone break down how that fork bomb works? In particular, why is the pipe and the background on one of the function calls needed to make it work?

<comment><USER21> It recursively calls both itself and another copy of itself. [http://stackoverflow.com/questions/991142/how-does-this- bash...](http://stackoverflow.com/questions/991142/how-does-this-bash-fork- bomb-work)

</comment></comment><comment><USER29> I wonder if a skilled plastic surgeon could re-arrange his skin to add space between those characters and remove it on either side of the tattoo.

<comment><USER30> You could go the skin graft route, but that would be annoying.

IANAD, but if you tried to (gently) stretch the skin where you need the space (like with some tape and sticks) then over a period of months you'd grow some new skin in between. You don't want to stretch the skin too much too quickly, or you'll get stretch marks (like some pregnant mothers do).

</comment></comment><comment><USER31> At least none of the letters were upside down. You should see some the absolute travesties of Chinese character tattoos.

</comment><comment><USER32> It pays to check these things before making a big commitment. Reminds me of a girl I know who decided to change her first name by deed pole. She changed her name to Pheonix rather than Phoenix.

</comment><comment><USER33> How is this question not blocked yet?

<comment><USER16> Because there's a definitive answer and it's reasonably free from opinion.

</comment></comment><comment><USER34> ha Great story. It bugs the crap out of me is when bash stuff wont work in more "modern" shells.

<comment><USER19> This is the opposite, it works in zsh but not bash.</comment></comment>


I switched to the iPhone after years on Android, and immediately switched back - <AUTHOR> https://medium.com/@gokhanarik/i-switched-to-the-iphone-after-years-on-android-and-immediately-switched-back-5946ef3f46 <comment><USER2> The author is a self-described "Android Engineer", so I doubt the claimed authenticity of switching to iOS for anything more than wanting to write a list of complaints. I've seen far more pressing arguments made against iOS.

The first point appears completely fabricated as, simply put, the iPhone has sensors that would've disabled the screen in his pocket. The second point was immediately contradicted, and one of the later points raised was, "Alarm Clock doesn't work when the iPhone is off" \- really clutching at straws when you consider what it means to power a mobile device completely off. Most of the remaining points made are so vague it leaves a lot to be answered as to the use case (e.g. maxing out the screen brightness). Finally, there's poor grammar sprinkled throughout.

<comment><AUTHOR> Hi, the author is here. Thanks for the feedback.

1\. If I wanted to make a list of complaints about the iPhone; I wouldn't. There are tons of them.

2\. Even if I decide to do that, I wouldn't sign a 2-year contract and purchase an AU$1800 device. At my company, we had 20+ devices to test apps we develop. I could've just used one of them. OR I could have used all the iPhones we had (4, 5, 6, 7, X) and make a list of complaints about each of them individually. I was really excited when I bought it.

3\. This is exactly what my article is about. It is a well-engineered phone with nice software that lacks testing in "real-world scenarios" and has a poor user experience. I'm aware of the sensors. I work with them on a regular basis. To put the phone in your pocket, you have to hold it first and you are touching the screen. If you own an iPhone, just make a call, place it on a table, lock the screen, and randomly tap on the screen and tell me what happens. During a phone call, I would expect the screen to be locked, no matter what.

4\. Can you show where/when my second point (disabling shutter-sound) is contradicted? I'm not talking about muting the phone. My point is about disabling the shutter sound without changing the top-level volume of the device. It is impossible. You have to silence the device.

5\. I checked this one and it doesn't happen on Galaxy devices either. Apparently, this is a functionality that changed with recent smartphones. In the past, even if you turn off the device the alarm would work. I guess I haven't been in a situation to test this with my Galaxy device in a long time.

6\. English is not my native language, sorry about the grammar.

<comment><USER2> Thanks for responding. I think you need to back up your claims that iOS lacks testing (really?) and has a poor user experience (a very subjective claim) a bit further. The only point I really agree with is the incoming call unavoidably taking up the whole screen.

With respect to the shutter sound, in the title you said, "no way to disable shutter sound", and then you contradicted that statement in the paragraph below with ways to do it. You also claimed that you have to completely mute the device or use a workaround, which is misleading at best. Shutter sound is togglable via the Ring/Silent Switch (which does not affect music playback), the alert volume and the system volume, so you have at least 3 options.

The inability to delete multiple contacts is also untrue, you can do this at iCloud.com. A simple web search will show you how to do this. If you don't have iCloud, some apps also do this.

The reason for my criticism is due to how you approached the topic, prepending it with "This is not an Android fanboy post where I criticize Apple recklessly." \- when it comes across to me as doing exactly that.</comment></comment></comment>


BLACK 3.0 BETA blackest black acrylic paint - <AUTHOR> https://culturehustle.com/products/black-3-0-beta-evaluation-batch-blackest-black-acrylic-paint-20ml <comment><AUTHOR> Since Vantablack (the very very black/light absorbing paint) is licensed (for artistic use) exclusively to a single art studio, another artist has made their alternative and is now starting to sell it.

Found it interesting, hadn't heard about the above before.

</comment><comment><USER2> > ...support us in our mission to share the blackest black with *everyone :)

I wonder who the asterisk is meant for... Anish Kapoor? If so, he'll acquire some anyway; he acquired some of the world's pinkest pink despite his ban[1].

[1]: [https://www.dezeen.com/2016/12/30/anish-kapoor-uses- stuart-s...](https://www.dezeen.com/2016/12/30/anish-kapoor-uses-stuart- semple-worlds-pinkest-pink-despite-ban/)</comment>


Intercom Incident Report for 2017-01-19 outage - <AUTHOR> https://status.intercom.com/incidents/bb4c8n1pn1pm <comment><AUTHOR> Interestingly, Intercom are blaming a change of the execution plan on MySQL (RDS Aurora) which raises the question – how can you prepare for such an eventuality?

It seems like the sort of thing that might happen when the statistics are providing the wrong information for carrying out the query (rather than any sort of change to the server/db engine).

Does anyone know how to best protect your service from this?

<comment><USER2> Well, you are supposed to use supervisors for something like that, i.e. monitor for naughty queries and kill them.</comment></comment>


Ask HN: How do you use your tech skills for public good? - <AUTHOR> I'm curious what side projects, second jobs, hobbies, etc. you all have where you apply your programming, data, engineering, and/or other tech skills to help the world. By "public good" I mean anything from contributing to public health research to addressing income inequality, homelessness, climate change, etc. -- anything that you consider to be in the public good.
For my part, I've recently done some pro-bono data engineering and analysis work to help understand the impact of the Syrian conflict on the healthcare system there, in conjunction with some researchers who are trying to understand the burden of the war on the health of the population and diaspora. I'm considering a hobby project that would use the UN's Sustainable Development Goals as part of a strategy game, which would support SDG advocacy.
What tech projects and/or hobbies do you have that you consider to be in the public good? <comment><USER2> I work for the UK's civil service. I advise (bits of) the government about technology policy. At the moment, I'm focussed on the National Health Service.

We're hiring! [https://healthtech.blog.gov.uk/2019/07/25/join-the- digital-t...](https://healthtech.blog.gov.uk/2019/07/25/join-the-digital- transformation-team-at-nhsx/)

As much fun - and noble - as my side projects are, there's nothing like putting your money where your mouth is.

<comment><USER3> How open to non UK (yes EU) workers are those state digital agencies ?

Some indication would be :

\- Out of the last 20 people (really) employed at X state digital agency i've talked to, Y have probably not a UK passport

<comment><USER2> I don't have the exact figures - I'm sure you could FoI it. But, anecdotally, I work with people from around the EU, Canada, USA, and beyond.

</comment></comment></comment><comment><USER4> OpenStreetMap both private and at work. Adding new places or opening hours of shops in nearby. Maintaining related open source tools. Open map data help addressing inequality in third world countries which commercial providers usually ignore.

[https://www.hotosm.org/](https://www.hotosm.org/)

Specifically the operations group is looking for help [https://blog.openstreetmap.org/2019/06/21/help-the- owg/](https://blog.openstreetmap.org/2019/06/21/help-the-owg/)

</comment><comment><USER5> I volunteer to a nonprofit which I've founded myself [https://giveinternet.org/](https://giveinternet.org/). Since I come from a developing country Georgia (Europe), I have experienced first-hand the transformational power of connectivity in improving people's lives. I believe that Internet access is a human right, but also a privilege which the developed world takes for granted.

</comment><comment><USER6> I run a bunch of blogs. My "tech" skills are minimal (for the HN crowd). I know some HMTL and CSS (and I have a mostly unused Certificate in GIS).

It's mostly the information that's useful.

Though I'm trying to figure out how to make it something more than _just a hobby._

</comment><comment><USER7> How are you all on this fine WWW I need to prosper for me most importantly, my Son, others less fortunate as guidance. ¿

</comment><comment><USER7> I am a reformed criminal, I have done jail, and probation, stuff I did, I would like to give back to the real and perceived victims, families and friends, Coulple of problems I came across,it is hard to get even the worst kind of job,i would like bypass this recurring problem cycle of failure very high excon like my self, i want to start a new invention and start a small business nonprofit at first and who no knows I may have to continue to pay for past sins God will be my guidance, it will be Advanced facial recognition on a cellphone, i got a 8g touch windows base android. I got extensive ideas to real and perceived problems will have to build proof of concept, There is no single data base on criminals, veterans, ICE, my it would have the combined mugshots from all, offsite website able to store, safely, large data, and be stable, I have found off shore bootleg video host hypothetically "Putlocker.com,

<comment><USER8> > There is no single data base on criminals, veterans, ICE, my it would have > the combined mugshots from all, offsite website able to store, safely, large > data, and be stable, I have found off shore bootleg video host > hypothetically "Putlocker.com,

What are you suggesting here?

A centralized database of mugshots from multiple government sources? If so, what would this be used for?

<comment><USER7> An invention that is quick efficient, easy to use for all kinds of law enforcement, thank you for your response I will be able to go in detail when someone agrees to write code and have thier stuff uploaded or not, notoriety or not it is up to them¿

<comment><USER7> I know alot do not like law enforcement of any kind, do to a small few, spoiled it for all¿ But this is a chance to make a difference before it is too late¿

<comment><USER7> This is a serious problem, I think Your skills, and I can contribute greatly, think of it as the next great opportunity you and I get into on ground floor, if this is beyond what this website is about please delete no hard feelings, let there be peace and tranquility, as I reach for the beyond ¿</comment></comment></comment></comment></comment>


Tell HN: Check out HNTrends.com - <AUTHOR> http://www.hntrends.com/

<comment><AUTHOR> The idea for HNTrends has been bouncing around in my head for about a year as one of those man-I-wish-I-had-more-free-time-type side projects. I recently decided to take up learning Flash and ActionScript and this seemed like the perfect opportunity to build it.

It's fairly straight forward: A Python script scrapes HackerNews every 15 minutes and saves the data in a MySQL database. A PHP script queries the database and outputs the the last five hours worth headlines as neatly- formatted JSON data, which the chart grabs and plots.

The older, less trendy news items are rendered with a slight transparency in order to reduce the chart's business. You can hover over any of the lines to see it in greater detail. Also, if you click any of the points it'll take you to the comments. The links on the right take you to the actual news articles.

Hope you like it. Let me know if you have any suggestions -- Matt

<comment><USER2> Suggestion, if you keep on keeping it up: release a simple API?

</comment></comment><comment><USER3> What would be most interesting is to extend the list past the page with the first 30 articles. That's what would really give you a chance to deal with HNs front-page feedback loop.

There is lots of stuff that does not make it to the front page during busy times.

Any chance of increasing the length of the list to 60 or maybe even 100 ?

That would really add value.

</comment><comment><USER4> Very nice. It'd be very cool to have a slider at the bottom that you could use to go back to previous days.

<comment><AUTHOR> I totally agree. This is mostly meant to be a Minimum Viable Product. The feedback I get here will determine what to add in the future, if anything.

</comment></comment><comment><USER5> This is pretty fascinating. The most important thing I notice almost immediately is that there are generally two classes of articles:

1\. those which reach the front page by virtue of quickly getting a few votes while they are young and then dwindle

2\. those which barely reach the front page and have some kind of resurgence (discernible by a large jump in front page rank).

It'd be interesting to group articles based on how they perform like this and see if there are any other correlated factors. My feeling is that the ones with resurgence are either long and require some amount of karma "activation energy" before people are willing to dive into them or that they're ones with long conversation chains which have a spike for similar reasons.

</comment><comment><USER6> Cute - excellent chart and interaction. Just be careful you don't offend the dons with your scraping.

One criticism: Flash?

<comment><USER7> Who cares if it's flash or not?

<comment><USER8> Flash means that it takes up 25% of my CPU simply by having the virtue of being opened in a tab.

<comment><USER9> you're already looking at HN, it's not like you're really gonna need that 25 for anything else right?

<comment><USER10> If he's using a laptop, he's now burning significantly more power. 4 hours of battery life at idle can easily become 30 minutes at a constant 25% CPU load.

</comment></comment></comment></comment></comment><comment><USER11> How about a link to the comments after each article title? I usually read those first and then click on the link (otherwise I'd have to come to HN front page anyway to see the comments on it). Works great though - good job.

<comment><USER12> If you click on a data point it goes to the comments. (I'd personally rather see it as a parenthetical link on the right of the story)

<comment><USER13> Agreed. I've been using the site all morning, and it's really growing on me. But I didn't see how to get directly to the comments until you pointed it out.

</comment></comment></comment><comment><USER14> Fullscreen version <http://www.hntrends.com/Plotter2.swf>

Incidentally, I _thought_ the lines looked blurry... in fullscreen it's clear that they are.

The pop-up only appears for the datapoints - not if your mouse is over a line segment between data points. In fact, it was a while before the any popup come up, for me. Maybe make it attach to the closest data point? (google analytics does it this way).

<comment><USER5> It's not blur, it's overlapping line segments with some transparency effect. Not great for visualization, I agree.

</comment></comment><comment><USER15> That's odd - most of the data is fairly linear, but as of right now, there's a very sharp spike for 5 stories at 10:30pm (with a corresponding drop in 5 other stores), which is reverted back to "normal" at 10:45.

Strange voting patterns? Or a bug in your script?

<comment><AUTHOR> Not a bug as far as I know.

Sometimes the numbers just works out that way.

</comment></comment><comment><USER16> Why would you plot rank over time instead of actual votes?

Rank shows strictly less information.

<comment><USER17> Less information, true. However, you can't downvote submissions, so the graph will be rather boring. Just a ton of upwardly sloping lines, some sloping upwards faster than others

<comment><USER18> You could show the rate of voting instead of number of votes.

<comment><USER19> I'd guess that wouldn't be much different from the rank.

</comment></comment></comment></comment><comment><USER12> Nice. I have trouble finding the data points _instantly_. Not a huge gripe, it's just precarious moving the mouse along the line.

Maybe make circles there? Make a vertical line for each 15min interval where they show up?

<comment><USER12> I am actually mostly interested in finding a data point quickly in order to get to the comments. Maybe just break out the comment link feature into a "(comments)" link next to the article titles?

</comment></comment><comment><AUTHOR> Quick update: There was a problem with the script which caused it to go down for a few hours. Should be fixed now. Graph might look a little off for a few hours until the logging catches up.

</comment><comment><USER20> You should overlay the last N stories that reached #1.

</comment><comment><USER21> Maybe a little less blur. Cool though.

</comment><comment><USER22> Very nice.

Can you link to the article's comments instead of the article itself?

<comment><USER12> If you click on a data point it goes to the comments. (I'd personally rather see it as a parenthetical link on the right of the story)

</comment></comment><comment><USER23> cool. yet I find it hard to understand why is it so important to see a trend of a link. in other words, who can benefit from this information and how?

<comment><USER3> It's a great way to see how articles develop 'traction'.

<comment><USER23> It can be useful in a macro level, that is one might find out the best time in a day (or else, the best day(s) in the week) to post a link in social media site or an article in a blog.

</comment></comment></comment><comment><USER24> Really nifty! Really fascinating!

</comment><comment><USER25> Very cool indeed. May be add a link to the comments?

Edit: thanks guys, I must be blind :)

<comment><USER26> Already there - you just click on a data point in the chart. (The titles on the side take you to the article, which is also the comments for Ask HN / Review my App type things).

</comment></comment><comment><USER27> can you please post the source to the FLA? cheers</comment>


A Reddit user claims he has downloaded all 900TB of SoundCloud's public music - <AUTHOR> https://www.neowin.net/news/a-reddit-user-claims-he-has-downloaded-all-900tb-of-soundclouds-public-music?lipi=urn:li:page:d_flagship3_feed;dLv7Ug0XQSKZk%2BdAp1b3kw%3D%3D&utm_content=bufferb33cd&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer <comment><USER2> Huh.

Just the storage alone must have cost him $60k or so at the current HDD and NAS prices.

To be honest, if i was that rich i would have done the same, being from the wrong place and generation for the modern "storing stuff online" fashion.

<comment><USER3> Raw drive space would only be about $4500 (for 900 1tb drives)

That's not completely unbelievable

<comment><USER2> Huh? No HDD, regardless of capacity, is cheaper than $50. So it would be $45000 just for the disks, 10x more. And then you need something to put them in.

You'd like to buy something like 8 Tb HDDs, because the more disks there are the higher would the cost of the thing to put them into be.

<comment><USER3> Yeah - it lost a zero in my first comment.

</comment></comment></comment></comment><comment><USER4> Won't the record labels and other rightsholders have something to say about this concept?</comment>


UK ISPs agree to menace their filesharing users - <AUTHOR> http://www.theregister.co.uk/2008/07/23/berr_isp_mou/

<comment><USER2> I read this on hacker news over breakfast. As I was leaving I considered picking "The Open Society" again from my bookshelf to read on the train as I had been working through it but put it down about a month ago for lighter reading. When I got to the train station there were police everywhere making people walk through metal detectors to get on the train.

</comment><comment><USER3> Anyone know a good lawyer looking to make a name for him/herself in the UK? This would be a great opportunity :)

</comment><comment><USER4> When companies (labels) collude with governments and other major corporates to intimidate their own potential customers with hundreds of thousands of nasty letters, you have to ask yourself is this the best way forward for these companies, or are they completely fucking insane.

Alienate the youth and your market and the cult like backlash will evolve into a movement that works against you to bring you down even quicker.

This will also simply push people to streaming services like Seeqpod et el.</comment>


Why Neovim Is Better Than Vim - <AUTHOR> http://geoff.greer.fm/2015/01/15/why-neovim-is-better-than-vim/ <comment><USER2> This is really a rant about the vim community and your experience there, rather than a write-up of why neovim is better than vim.

As an end-user, the only reason you gave me was "some new plugins," and didn't even speak to the power or improvements those plugins make.

Retitle "My Bad Experience with Vim contribution and Bram M."

That said, it was a pretty interesting read.

<comment><AUTHOR> Good points. A better codebase and community typically mean a better experience for users, but I avoided talking much about concrete benefits because I thought the post was getting rather long. There are a lot of opportunities for improving the responsiveness of plugins. Many currently block the UI in Vim: autocomplete, search, ctrlp-style filename matching, etc. The list of Neovim-only plugins isn't huge yet, but it's only going to grow longer as plugin writers take advantage of Neovim's improved API.

</comment></comment><comment><USER3> >Patches are often criticized for ridiculous reasons. After we posted our patch to the Vim-dev mailing list, the first reply was:

>>NOTE: Don't use ANSI style function declarations. A few people still have to use a compiler that doesn't support it.

>Seriously? C89 is a quarter-century old. The number of people stuck on older compilers can be counted on one hand. This is a non-concern. Still, I acquiesced. It was easier to make the change than argue with the critic.

I laughed in agreement with the author at "Seriously?" I seriously can't imagine who uses a compiler almost as old as I am. But then I started thinking:

I respect OpenBSD, C compilers, Vim for supporting many platforms for a long time; that's a programming task I've never approached. I use Ruby in my business, and don't care about supporting anything but Heroku!

So: what's it like contributing to Vim or OpenBSD, which has a neato-torpedo list of esoteric supported platforms[0]? Who are the esoteric users, what do they do, and how do they do it? It'd help me empathize, and not dismiss off- hand their complaints.

[0] [http://www.openbsd.org/plat.html](http://www.openbsd.org/plat.html)</comment>


Want to be smart? take an afternoon nap - <AUTHOR> http://www.berkeley.edu/news/media/releases/2010/02/22_naps_boost_learning_capacity.shtml

<comment><USER2> "During the first sleep cycle, our body enters deep sleep for the longest period of time, it's at this point that our body temperature begins to drop really low, our respiration, heart rate and blood pressure decreases.

If you've ever been woken up out of "deep sleep", you know that it's almost impossible to get up.

It takes about 45 minutes to enter the first deep sleep phase. If you limit your nap to 45 minutes, you will sleep mainly in Stage 2 sleep. Stage 2 sleep also plays a major role in restoring physical energy." -- Powerful Sleep – Secrets of the Inner Sleep Clock</comment>


Bit.ly compromised – More Details - <AUTHOR> http://blog.bitly.com/post/85260908544/more-detail <comment><USER2> "If you registered, logged in or changed your password after January 8th, 2014, your password was converted to be hashed with BCrypt and HMAC using a unique salt. Before that, it was salted MD5."

Are they saying the passwords were hashed with MD5 before January? Because that'd be a bit scary.

<comment><USER3> It's still a bit scary that they're apparently using some ad-hoc KDF (key derivation function) built from bcrypt and HMAC. bcrypt is a decent KDF, but there are several ways to make a bad KDF from a combination of bcrypt and HMAC. For instance, concatenating bcrypt(salt, pw) and HMAC-SHA512(salt, pw) makes guessing passwords way too fast.

I'm hoping that all they've done is use bcrypt(salt, HMAC-SHA256(salt, pw)) to get around the bcrypt 72 character limit. However, using scrypt would have been better.

<comment><USER4> why does concatenating bcrypt(salt, pw) with HMAC(salt, pw) make guessing fast?

Intuitively it seems like you'd still need to guess the bcrypt portion, making it no worse than just bcrypt.

<comment><USER5> Why not just ignore the bcrypt portion? "Intuitively" it seems to me like you could just un-concatonate the two strings and guess at them separately, working on whichever you know to be easier.

</comment></comment></comment></comment><comment><USER6> I've never been clear about what value-add registration brings to a link- shortener, so I've just used bit.ly without registration.

I'm kind of happy about that now.

<comment><USER7> it allows you to track stats more easily. for example, you can link bit.ly to Buffer and get a unique bit mark for each link/platform pair. then you can track engagement separately for each platform.

<comment><USER8> Couldn't you just have an IFTTT pull anything you bitly into a bucket of links to watch stats on? Why does bitly need to know who you are, or what links you submitted, if you can just remember (maybe through automation) which links are yours, and bitly or buffer can monitor each link individually for stats?

My guess is that logins probably help bitly track usage patterns, improve the product, and keep an eye out for ways to increase their value by measuring engagement with their userbase. Maybe it was just "everyone's adding a social layer" peer pressure. Not sure.

There are security costs to "use passwords everywhere, for everything," but they are more diffuse. We've ended up with a system where security best practices would recommend using hundreds of distinct passwords that are each too complex to memorize (so you can dump them in a locker or support one login services, each creating a single point of failure, or you can use a similar password or mental password algorithm for each site, it's all tradeoffs).

I don't think there's an obviously better solution, I think it's just a tragedy of the commons we were probably inevitably going to trip over sooner or later.

<comment><USER9> What percentage of the internet would even understand what you just suggested, much less know how to do it?

Also, you'd have to see a massive amount of value in not signing up to Bitly to offset the hours you'd spend creating a vastly inferior hack job on your own.

<comment><USER8> > "[Your ideas are] vastly inferior hack jobs, 0/10 stars..." [ very roughly > :) ]

All I'm claiming is that bitly could have offered stats without a login system. IFTTT was just a proof of that concept, a gratuitous example, not some idealized form of stat tracking that everyone should run out and implement.

You're probably right that the solution I thought of in around ten seconds sucks. I've spent more time on worse ideas. My real point is that login systems, despite their ubiquity, have their own share of downsides. Some of these downsides should be painfully evident today given the article.

</comment></comment></comment></comment></comment><comment><USER10> Link-shorteners are a cancer. We have enough of a problem with historical links going dead, without interposing a third party.

When bit.ly goes down, what happens to all their links?

<comment><USER11> True, but for example if I'm posting an article I wrote it's much more efficient to save space using my erclgrgn.us short link because it's usually ~20 chars which is less than half of what the full URL is.

Unfortunately, sometimes brevity is a necessity.

edit: original comment mentioned twitter, then I remembered twitter automatically reduces a URL's chars to 20 or so.

<comment><USER10> Yeah, or websites could just allow actual links. I don't see why hackernews (and twitter, etc.) can't just render I'm) short!

<comment><USER12> Because of griefer trolls. Forcing links to show the destination is basically 0 effort on the system side and pretty much completely undermines them.

(that only answers the HN part, I'm guessing that is much of the reasoning, I don't know it for a fact)

</comment></comment></comment></comment><comment><USER13> Chef supports encrypted data-buckets where you decrypt only on the server. Puppet supports hiera data with encryption as well (via plugins). There's no reason anyone should be storing password information in source, especially API keys which I'm guessing this was (S3 information more than likely?). I think about the extent of private information I'd be okay with storing in source is DB user/pass information because that will generally require compromising the machine more generally first and by that point they already had access to your DB even if the password/username wasn't stored in source.

Essentially this will serve as a wake-up call to the Bitly guys and hopefully they'll take some steps to deploy this stuff via CM or similar in the future.

<comment><USER14> I read it a bit differently. I don't think they store their credentials directly in their source code repository. I think they are saying they have a separate repository specifically for credentials.

It seems like a bit of a strange way to manage sensitive information, but not really any worse then a lot of other things I've seen.

</comment></comment><comment><USER15> For security stuff, if you can't find a well-tested implementation to re-use, I always suggest referring to the OWASP Cheat Series [1] - there's a nice one just for password storage [2].

[1] [https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series](https://www.owasp.org/index.php/OWASP_Cheat_Sheet_Series) [2] [https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet](https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet)

</comment><comment><USER16> Is the root issue here that they stored remote server database passwords in their source code?

I'm always hesitant to have source code with hard coded passwords, I know at some point you have to have them "somewhere" but anything you can do to reduce attack vectors for them is helpful.

What do people think should be best practices for storing sensitive configuration data? I know some people will have just a config repo with very limited access but that still seems dangerous at scale when that ends up being a lot of people etc.

<comment><USER17> I have yet to find any solution to this problem that I like. A separate config repo is least bad of the various bad options. The others have all been error- prone and failed to play nicely with version control.

If someone could make git store all on-disk data in encrypted form with an ssh-agent-like solution for on-the-fly (de|en)cryption, that would seem ideal.

<comment><USER18> > If someone could make git store all on-disk data in encrypted form with an > ssh-agent-like solution for on-the-fly (de|en)cryption, that would seem > ideal.

You could probably roll your own. A decent middleground would be to keep the data in the central repo encrypted, but keep it decrypted on the engineers' workstations. Though a better approach is just to not check in sensitive values at all.

<comment><USER17> "Roll your own" is exactly what causes trouble. It's never right and always painful. We need a general, widely-vetted solution that doesn't make me want to yank my hair out.

"Don't check in sensitive values" is not an option. Credentials must be kept track of and maintained somewhere. Storing them in an ad-hoc manner without version control doesn't just invite trouble, it demands it.

We have password managers for desktops and mobile devices. We need an equivalent for servers that accounts for the fact that the credentials must be highly available, multiple people must be able to use them (whether or not they get to directly _view_ them), some of them will be technicians with limited training following someone else's procedures, and regardless of knowledge and skill, there will be half-asleep people taking emergency actions at 3AM when shit has hit the fan.

</comment></comment></comment></comment><comment><USER19> "Security Team"?.

I'm honestly curious. I've never seen startups that aren't security startups hiring a security team. Is this a real team or just their developers doing an extra job?

<comment><USER20> I don't fault them for it if they don't. "The Bitly security team learned of the potential compromise..." sounds much better than "our programmer, Joe, got an email..."

<comment><USER21> Good guy Joe. Developer by day, security team by night.

</comment></comment></comment><comment><USER17> Missing step: Asymmetric encryption of off-site backups with passphrase- protected private keys kept offline.</comment>


The House's NSA bill could allow more spying than ever. You call this reform? - <AUTHOR> http://www.theguardian.com/commentisfree/2014/mar/25/house-nsa-bill-end-bulk-collection-act-reform <comment><USER2> Obama proposes a slight improvement to appease his own party's electorate, House proposes something much worse to appease its own electorate (or maybe just their pay masters), and then they "compromise" in the middle, where the middle is significantly worse than the current situation, and then everyone (in the government) is happy! US politics as usual.</comment>