Malawi app 'teaches UK pupils 18 months of maths in six weeks' - <AUTHOR> http://m.bbc.com/news/technology-29063614 <comment><USER2> Not related to the app, but I wish people stop measuring education with time. In my opinion, kids must spend quite a bit of time understanding basic stuff. Information overdose reduces the quality of understanding. So, the metric shouldn't be "18 months of maths in 6 weeks". A child who learnt the same stuff in 18 months is able to comprehend advanced stuff in the later stages than a kid who learnt it in 6 weeks. Again, this is not a criticism about the app. We just need to give time for kids to learn stuff.

<comment><USER3> There's no evidence that is the case though. This app is highly interactive and provides immediate feedback, so the child knows whether they are doing things right or wrong.

The fact that it's more like a game means it's much more geared to the way that children learn than just working through a bunch of problems from a book or on a blackboard. It also allows the kids to progress at their own rate: spending more time on bits they don't understand until they do understand them. Class learning tends to be subject to the lowest common denominator, or conversely some kids at the lower end of the scale get left behind.

There's significant evidence that learning by interacting is the best way to promote retention. It's probably also fair to assume that the app itself does not simply promote rote learning of facts either, but rather understanding how the concepts work and repeatedly applying them to unfamiliar problems.

That seems to me to be far more optimal use of the time and creates a solid foundation for going on to understand more advanced concepts later.

Alternatively, why not simply spend 18 months working through even more problems on the app to get better and better? I suspect that the law of diminishing returns kicks in pretty quickly and you don't get much benefit simply through longer exposure at the same level. Instead, you can just introduce more advanced concepts earlier and keep on learning. That doesn't necessarily result in information overload, so long as you are continually building on top of a foundation of throughly understanding the simpler concepts and continuing to use them.

For example, once you understand addition you don't really ever stop using it and forget how to do it. Rather, you go on to learn about multiplication, exponentiation, etc. and hopefully, do so realising that they are all just fancy kinds of addition. I think it's much better if teachers can focus on ensuring that their pupils have that kind of understanding and are capable of applying it, than for example making sure that they can recite all the multiplication tables.

Of course, how you should learn maths differs a bit depending on whether your ultimate goal is to be a greengrocer or a computer scientist. Hopefully we're mostly focusing on the latter now.

<comment><USER4> Indeed. If we had unlimited resources, the best way to teach would probably one teacher per one (or two-three) child(ren). When you're working closely with one student, you can focus on just what _that_ student needs to learn/needs help with. That probably doesn't scale up to the wide level of schooling that a modern industrialized world needs though (Maybe we should leverage that wasted extra efficiency we've picked up to recruit _everyone_ in the work force to work 4 days at their job, and 1 day as a teacher?).

It sounds like this kind of computer-assisted learning might be able to increase teaching/learning efficiency similarly to what can be achieved with good one-on-one tutoring.

</comment></comment></comment><comment><USER5> I have these apps, my kids love them,and they do get many concepts across very quickly. It's good to know that they are part of a bigger cause.

However, if the apps described in the article are the same as those in the App Store, then some of the concepts are very simple (the early levels can be done by a 2 year old) so it isn't surprising that older children do very well after they are exposed to them.

The later levels on number-lines and fractions are a bit more challenging, it will be interesting to see how well children do on those.

Regardless, even though some of the exercises seem boring and repetitive to an adult, they do seem to have the knack of holding children's' attention.

</comment><comment><USER6> [https://onebillion.org.uk/apps](https://onebillion.org.uk/apps)

<comment><USER7> Holy moly - the "maths age 3 to 5" app is expensive. £15.99 for "all topics". That's $25.

<comment><USER8> So these apps reportedly get a child the equivalent of 18 months of mathematical development in 6 weeks of short, fun sessions? In that case, it does seem the £15.99 price is off by at least an order of magnitude, but I suspect we disagree on the direction.

<comment><USER9> For comparison, there are UK private primary schools that will cost you about GBP 12k/year that deliver far less measurable benefit (if any) than that, that are still wildly successful at attracting students.

<comment><USER10> The benefit of those is generally teaching kids how to pass the entrance exams for good secondary schools.

</comment></comment></comment></comment></comment><comment><USER11> If they intend to reach a billion people especially in Africa I'd say Android should be the priority platform.

<comment><USER12> If you read one billion's materials, iPads are used as they last longer in the environment they're kept in and get better battery life. When you're charging for a day's use from solar, that matters.

The apps are also written in a cross platform framework. If a good enough Android tablet comes along, it can be used. Their Maths age 3-5 app is available on Google Play.

Disclosure: I'm familiar with the team.

<comment><USER11> >If a good enough Android tablet comes along, it can be used.

You have made valid points. However, the fact on ground shows that this a continent powered by Android in the smart device category. It used to be Blackberry but that is on the way out.

People should be able to afford the device before thinking about how long the battery will last. And I see the apps are available on phones. There are great Android phones that last quite long.

Do you know you need a credit/debit card before you can access the itunes store? How many people have access to that here?

Can you give be a link to the Android app I cannot see it on the website.

<comment><USER13> So the inner idea is that poor people must buy poor devices and higher quality is not for them. I have this discussion _a lot_ with my customers about why give a more costly iOS device instead of android to their employers.

iOS devices are more higher quality, more durable, more up-to-date in matter of software and have better app selection, quality and less prone to be invaded by virus and that kind of stuff. And yep, if you let people choose only for price them will NOT buy the best best best android device.

Specially because somebody is cash deprived is why the one with most quality, most durable, more long-lasting life is the smart choose, because we don't have money for replacement (We, because I know what is be in that situation).

So, if a charity wanna help poor people, is smart that they choose the best available option, not using the criteria : Poor people? Low-cost for them!

<comment><USER14> Or you can actually ask a bunch of people in your target market what OS their current device runs. The answer is Android, in this case. In much if Africa, cheap and long life is the way to go, and local variations on worldwide tech reflect that.

</comment></comment></comment></comment></comment><comment><USER15> > And after 30 minutes, she told us, most of the children have had enough and > want to go and play outside. Reassuring for anyone who, like me, would > rather not have a child who prefers apps to apples.

But why? Faced with straightforward evidence of better performance, even for UK children, why should we be relieved that the app fails at 30 minutes?

We should be talking about making games that teach kids for hours! That little tablet is way more engaging than 99% of the experiences impoverished Malawi children are going to have. Perhaps sadly, the tablet is way more engaging that some large majority of experiences UK children will have too.

It's obvious to anyone who plays video games that achieving that level of attention is possible. And with games like Civilization and Europa Universalis, you can certainly make a long-play game that teaches kids traditional educational knowledge.

I hate the conspiracy idea that educators are opposed to this technology out- of-hand because it threatens them as an institution. And I'm relieved that there are researchers with government backing showing games teaching kids in rich Western countries.

At some point though, parents will have to confront teachers to do what improves performance. The question is not, when will games be capable of improving educational performance? That has already happened, and the evidence will mount inevitably.

The question is, when will we abandon the pastoral fantasy of today's schooling? When will parents have no opinion whether a child "prefers apps to apples," whatever that means?

The dark-age Carolingians made the template for today's public schooling. If a magic book capable of delivering all the world's knowledge (i.e., an iPad) were available to them, don't you think they'd make a very different education system?

<comment><USER16> You make it sound like they use it once and put it down forever. They don't. They put it down to go play (which, at that age, is another type of learning). Then they come back, maybe later that day, or the next.

Haven't there been studies on this? The human brain is not good at absorbing information after durations longer than this. It has to have time to process information before it can build on top of it. This is why khan academy and duolingo are so effective, too - you consume little bites of knowledge, go away and process them, and then come back.

Entertainment is not the same thing as learning. Videogames and movies are so completely different from the learning process. Yeah, you can learn from them, but for that amount of time not to be taxing you have to fill it with other stuff. Like a storyline and action and drama. They have passive elements which constitute most of their length.

The constant force-stream of modern classrooms is what makes them so dull and tiring, and gives us stupid kids and disappointing graduates. I think it's pretty awesome that they get to focus for half an hour and _learn at their own pace_ (the most critical part), then get to enjoy being kids for a while.

<comment><USER17> And 30 minutes is about the point where sitting stationary becomes physically bad for you. To the previous poster, try sitting and playing a strategy game for 6 to 10 hours. You should feel like shit afterwords.

Putting my adult body through sitting in a school desk 5 days a week, my health would be in serious trouble within a few months.

</comment></comment></comment><comment><AUTHOR> I wonder: In the article they mention that the reasons for such effectiveness are "rapid personalized feedback" and "entertaining content keeping kids focused".

Those reasons could apply to many educational fields. So i wonder: are there any other apps/sites showing very strong gains versus standard teaching?

<comment><USER18> > the reasons for such effectiveness are ... "entertaining content keeping > kids focused"

I'd be interested to see studies emerge on the value of entertainment in educational content as the child ages.

In my direct experience with my own children, entertainment provides value due to engagement as mentioned in the article. But, entertainment switches from engagement to distraction around age 5 or so.

My 2 year old definitely stays more engaged with the alphabet app and basic counting apps when they are entertaining.

However, entertainment is highly distracting to my 6 year old.

I've found at 6 she's more interested in how the learning actually applies to the real world, so she engages with educational apps as a means to an end. For example, she likes to write stories. So, she asked me to download spelling apps so that's its easier for mom and dad to read her stories.

With all of that said, I'm a huge believer in the potential of technology to improve education. IMHO, education is no where near optimal.

<comment><USER19> I think this could just be a question of implementation. For example, Duolingo's gamification is fantastic as an adult.

<comment><USER20> My personal experience is that Duolingo is fun for two months maximum and then it becomes an equivalent of any other exercises sheet.

</comment></comment></comment></comment><comment><USER21> This strongly reminds me of my favorite Derek Sivers post titled 'There is no speed limit'. If you haven't read it please do:

[http://sivers.org/kimo](http://sivers.org/kimo)

</comment><comment><USER22> Aside from the issue of the teaching methods being compared through measurements of time, can we discuss what, if anything is lost through this teaching platform? While it is not being suggested as a teaching replacement, does the lack of social engagement or the confusion on real world applications have any bearing on the way this material is stored inside these young minds? Perhaps if a portion of the lesson included participating as a group, or if the system switched from a lesson guide on the screen to a few remarks from the educator as a back in forth it may better incorporate both the advantages of technology and the advantages of a caring educator? I am curious to read more articles or research on such combinations if anyone can point me in the right direction. Thank you.

</comment><comment><USER23> Cool, I think this is the first positive article I've read about tablets at school.

And if you want, you can get the apps for your child for free at [https://onebillion.org.uk/apps](https://onebillion.org.uk/apps)

<comment><USER24> Shame they are only available for iPads and not androids. The app might be free but iPads are expensive, especially for poor families.

</comment></comment><comment><USER25> I really don't like commenting on these threads but I had to bite here.

I call bullshit on this. 18 months of maths is a completely vacuous measure of anything and this is pandering to teachers getting even more lazy and dependent on technology as a magic bullet.

As a parent in the UK with three children at school, I can safely say that the problem is that mathematics teaching is just totally shit. The methods are totally ineffective and the fundamentals just aren't taught. It's about teaching the mechanics of passing tests, particularly at primary level which is about the SATs and nothing else. That's why this seems like such a wonderful headline and the BBC sensationalises it.

Teachers buy in every technical measure and scheme that avoids introspection and looking at the real problem.

<comment><USER12> Have you read the study?

[https://onebillion.org.uk/downloads/unlocking-talent- final-r...](https://onebillion.org.uk/downloads/unlocking-talent-final- report.pdf)

Would be interested to hear your comments on what you think is wrong with the methodology and conclusion?

<comment><USER25> I'll read this today in detail and reply later.

I've read similar studies before (I'm on the chair of governers for a school) and will approach with an open mind.

</comment></comment></comment><comment><USER26> downloaded the apps, will test these with our 4 year old over a few days.

What mobile apps that effectively teach kids programming would you recommend? I have seen Scratch mentioned, and some Minecraft mods, any others that would actually work? The UK has an initiative to teach primary school kids programming, but I dread to think what the quality of teachers or children to teacher ratio will be.

<comment><USER27> If your kid likes wizards. This looks like fun: [http://codespells.org/](http://codespells.org/)

They claim to have tested this with kids at their university with great success (watch the video).

</comment></comment><comment><USER28> Immediately after high school, we got a "revision" class on maths. We did 12-years worth of it in 4 hours.

</comment><comment> guard-of-terra Math is not measurable in weeks.

<comment><USER7> England has a common curriculum so you can measure maths in months. [http://en.m.wikipedia.org/wiki/National_Curriculum_(England,...](http://en.m.wikipedia.org/wiki/National_Curriculum_\(England,_Wales_and_Northern_Ireland\))

<comment><USER4> The only gripe I have is that they say the kids are using the apps for 30 minutes every day, for six weeks (presumably, that's 5 _6_ 30minutes, not 7 _6_ 30) -- but I don't know how much math kids that age get in school? Is it 45 minutes a day? Every other day?

<comment><USER29> Put spaces around your asterisks, to prevent their other interpretation in HN posts (i.e. markdown italic).

<comment><USER4> Thanks for pointing it out (for posterity, and new users) -- I really do know better, but I always forget, whenever I try to write some math in-line in a comment... now the edit-window for parent was closed.</comment></comment></comment></comment></comment>


My Experience Running Development at a Startup - <AUTHOR> http://antjanus.com/blog/thoughts-and-opinions/experience-running-development-startup/ <comment><USER2> "CTO in training"

Danger, Will Robinson!

I followed a similar path to the one you now tread. I cofounded, and managed/grew the dev team from me to forty folks.

Three years ago (after seven years of just "tech director"), I took the mantle of CTO.

Error.

CTO is _not_ a technical role. To do it well, you must _be_ technical, but it is in reality a sales and marketing role, both internal and external. I found myself isolated from our tech team in short order, as as CTO one is the public and board level technical face of the company - and that becomes all consuming, and you become the perceived source of all the problems. You become the messenger, who is much shot at, by both clients and your former allies in your technical team. The clients shout at you for bugs. The developers shout at you for pleading that bugs get fixed. You become that which lives between hammer and anvil. You are no longer part of the team. You are the boss.

So - unless you want to get out of technology and want to work as a marketeer/apology bot, don't aim for CTO. I did, it broke me.

I left my company today, as I started it for the love of tech, and making cool stuff - and at the point of organisational development they have reached, that is not something there's any scope for a CTO to do.

Lesson learned.

<comment><USER3> I became CTO quite young and I was running around doing technical stuff when my colleague pointed out that was not what I should be doing. I was co-founder of the company, so after I read what I should be doing (which is more like what you say), I appointed my right hand as CTO and I became head of our small R&D dep. That was excellent. Now i'm CTO again; older and wiser and I fit the role now, however, when we grow more that might change. I really do want to keep coding for fun and business.

<comment><USER4> CTO roles at companies vary. Some end up doing "technical stuff" as well as business. How large was your team that this was a problem?

<comment><USER3> 300something. I was too involved in the projects themselves (which is what I like(d)).

</comment></comment></comment></comment><comment><USER5> The tracers over prototypes advice is a precious one. Having worked for small and large companies, once you have a functional prototype that has been built quickly, managers tend to be very reluctant to let you rewrite the prototype architecture to make it clean. Using tracers you can demonstrate small but important features to the persons involved in the project and when the project will be given the go sign you can work peacefully on the product's architecture.

<comment><USER6> I haven't really experienced this, also having worked at both small and large companies. At the small companies, most of the prototypes failed (which is the whole reason you're prototyping) and then the ones that succeeded usually got rewritten because _everything_ got rewritten multiple times. At the large ones, the prototype exists to convince a VP that this avenue is worth pursuing, and then typically it's handed off to another team to actually do.

Could also be because I've basically always had technical management, and the projects I work on tend to be fairly technical in nature (i.e. "can we do this?", not "the customer wants this by Monday").

<comment><AUTHOR> That might be the reason but it really depends on company culture, funding, and other aspects. I built an early prototype for our product in the first two months. Losing two months wasn't an option for a rewrite. Even if I could get it done in a month, it just didn't make sense. The prototype was "good enough" to the point where it stuck.

</comment></comment></comment><comment><USER7> Nice article. There's one paragraph that exposes a certain bit of web dev mindset that rubs me the wrong way:

 _" Updating things as you go also means that parts of the application that get less love tend to be written with an older style [...] and using older technology (like indexOf rather than contains or a for loop rather than reduce)."_

That's not "older technology"! You're talking about whether to use some helper methods on Array.prototype. Who cares? It's certainly not any kind of technology choice.

It's really no different from whether you prefer to put your opening curly brace on the same line as an if sentence or the next one. Sure, it's slightly annoying when someone does it differently, but you shouldn't spend any time bikeshedding your codebase over stuff like this.

<comment><AUTHOR> You're completely right! I meant to say that some parts of the application are written in an older style that we don't use anymore. For loops, indexOf, etc. are valid and there's nothing wrong with using them, we just use a more functional approach now and use some of the newer methods for doing the same thing.

<comment><USER8> I don't think this is necessarily a wrong thing; I feel like really ground breaking/challenging development forces you to understand what you are building the farther you go along.

It's always ideal to have perfect code the first time it's written, my experience is that this is never going to happen unless you have perfected what you are building to the point that you have code generators/boiler plate code to cover most of what you are building.

With that said, very interesting article. Thank you for sharing your experience, it is very eye opening for me.

</comment></comment></comment><comment><USER9> I like the Tracers concept.

As for "everything is legacy a week later" \- why not stick with boring but proven technology and frameworks for software that is crucial and you plan to have around for awhile? That may mean not using most of the JavaScript frameworks that are being pushed today. Sure, play with them for smaller or non business crucial stuff but why risk building a business on that instability?

There are so many other important things that a business or startup has to focus on, spend money on, etc. I guess I prefer to put a lot of resources into those things vs worrying about having to update or re-write my tech stack every few months on the latest shiny framework.

<comment><USER10> I picked knockout about 3 years ago because it seemed stable then, officially supported IE and had good docs.

3 years later I'm still using code I wrote against it (though now with browserify) with no changes.

The switching cost when you can dump the old framework on every new project is much lower than the "This will be around for 3-7 years".

Now I follow what is happening in the JavaScript community but I don't consider using anything until its been out a year and is still active/growing.

Much of the churn seems to be throwing out everything for an incremental theoretical improvement, that rarely pays off in my domain.

</comment></comment><comment><USER11> Excellent article! If no one else tells you: i appreciate the time you took out of your business to write this up. This is some really helpful advice. I have a full-time day job, and am trying to get my side business to launch as my only job...and I can certainly learn from experiences like the one you described. Keep on truckin' with these types of posts, and good luck to you!

<comment><AUTHOR> Thank you!

Some of these things seem so self-evident but they were hard lessons. I've come to understand that there are a lot of business practices that just don't make sense to me until I get bit in the ass by not following them.

</comment></comment><comment><USER12> "For smaller projects like microservices, isolated applications, even parts of the UI that most users don't see, experiment."

I agree with this part 100%. We're still rocking BackboneJS that we chose in 2011 or so. Sure it's behind the times as they say, but it's rock solid for our uses. We're in too deep to convert now and the cost doesn't outweigh the benefits. Clients are happy and we're happy.

In other newer areas, we're experimenting, mostly with RabbitMQ for small things on the backend and React Native on Mobile. With UI on new projects not in the core web app, we experiment. Works rather well and keeps us sane with the pace of JS frameworks.

</comment><comment><USER13> Your account of the state of JavaScript in this decade reminds me of this post from a few days ago: [https://hackernoon.com/how-it-feels-to-learn-javascript- in-2...](https://hackernoon.com/how-it-feels-to-learn-javascript- in-2016-d3a717dd577f)

<comment><AUTHOR> I'm actually not a big fan of that article :/ or rather, I disagree with it. I've been meaning to write my own piece on it.

But the summary is: you can make it as easy or complicated as you want it to be.

And I mean, every technology has the same issue. Take PHP for instance. Want to learn it? Cool, it's super easy. Want to build an app? Okay, so there these different frameworks. Oh btw, you should know about composer. And autoloading. Did you also hear about DI that Symfony uses? etc. etc.

</comment></comment><comment><USER14> I was the first engineer hire at a small startup, and have helped our CTO/Co- founder grow the company over the past 3 years.

All I can say, is that almost everything that was said here was the exact experience we had. Even down to the choice of Angular 1.X and rewriting all of the IIFEs in our codebase to use ES6 imports with babel.

I also need to acknowledge that PM is something that you do fine with 2 people, but your processes will fall apart, probably as soon as you even hit 4 or 5 people.

</comment><comment><USER15> "issues with Javascript today is the idea that we have to keep learning the latest technology and keep using it. "

I don't get it. Why? For ISV it's the product that matters. ESP:s might as well invent filler to charge the client but what does it help in creating a product with JS to run after the bleeding edge?

Usually we pick up a language and toolset, write the product with it, and if there are bugs that absolutely need to rearchitect some foundational things then then, only then is it worthwhile to ponder if some basic technical constructs need a major overhaul.

This "update to latest hot as you go" sounds like velocity is lost in trying to adapt to some new gimmick for no benefit.

Obviously there is some cost/benefit tradeoff here I'm not getting. What is it?

</comment><comment><USER16> The end of the article feels like a cliffhanger for a CI-CD sequel.

</comment><comment><USER17> The amount of real-world experience you got from this I'm still trying to get. That to me is the value of being in tech at a startup. I enjoyed this article, thanks.

</comment><comment><USER18> Minor typo here: "When we switched to ES2105"

<comment><AUTHOR> Not a typo. It's a stage -10 spec, it's so far out into the future that no one has thought of it yet and the people to implement it haven't been born yet.

:) thanks. I'm fixing it!

</comment></comment><comment><USER19> This article wouldn't be there if they choose the right tool for this job. Typically for big apps, with Ember.js, you never have these problems what he described.</comment>


Ghost 4 SUAS - <AUTHOR> https://www.anduril.com/ghost <comment><AUTHOR> Also see this blog post by Palmer Luckey:

[http://palmerluckey.com/america-is-back-on-top- baby/](http://palmerluckey.com/america-is-back-on-top-baby/)</comment>


Marissa Mayer Is Wrong: Working From Home Can Make You More Productive - <AUTHOR> http://www.theatlantic.com/business/archive/2013/02/marissa-mayer-is-wrong-working-from-home-can-make-you-more-productive/273482/ <comment><USER2> I'm disappointed with the article's choice of Marissa Mayer's image.[1] The article is border-line link bait, since it's basically a re-hash of other articles and discussions.

[1] [http://cdn.theatlantic.com/static/mt/assets/business/615%20m...](http://cdn.theatlantic.com/static/mt/assets/business/615%20mayer%20yahoo.png)</comment>


Show HN: TweetFast 2.0 – Tweet Like Usain Bolt from Your Mac Menubar - <AUTHOR> https://tweetfast.xyz/ <comment><AUTHOR> Hey Hackers! We wanted to help all you twitter lovers to tweet from right within your Mac menubar with ease by making this simple app. Here are some of the highlights: \- Tweet from the mac menubar \- Dark mode theme \- Keyboard shortcuts. Don't ever touch the mouse to tweet again!

<comment><USER2> nice, this is very handy!

</comment></comment><comment><USER3> I can just have a browser open in the app bar. Why this?

<comment><AUTHOR> Some people hate switching tabs when they are: \- Working \- Coding \- Watching a movie This app is for them :) Plus, it's a simple tap of a keyboard key and you can type the tweet while never leaving the window you are currently in. If it saves even a few seconds, I believe it solves a problem for a certain demographic of people :)

</comment></comment><comment><USER4> What are the keyboard shortcuts for this?

<comment><AUTHOR> \- Tap on control key twice to open the TweetFast window from the menu bar. \- Press escape key to dismiss the window. \- Command + F to send the tweet

</comment></comment><comment><USER5> dark mode is getting new look for TF

<comment><AUTHOR> Dark mode everything!</comment></comment>


NSA Surveillance: What We Know; What to Do About It - <AUTHOR> http://www.cato.org/events/nsa-surveillance-what-we-know-what-do-about-it

<comment><USER2> Does anyone know the timezone for this?</comment>


Elites, Interest Groups, and Average Citizens - <AUTHOR> http://www.princeton.edu/~mgilens/Gilens%20homepage%20materials/Gilens%20and%20Page/Gilens%20and%20Page%202014-Testing%20Theories%203-7-14.pdf

<comment><USER2> Money quote: _" Multivariate analysis indicates that economic elites and organized groups representing business interests have substantial independent impacts on U.S. government policy, while average citizens and mass-based interest groups have little or no independent influence."_</comment>


Show HN: Blockchain Demo - <AUTHOR> http://blockchaindemo.io/ <comment><AUTHOR> Hey Hacker News!

Blockchain Demo is a visual demonstration of blockchain technology. It's heavily inspired by [https://anders.com/blockchain. ](https://anders.com/blockchain.
)

If you have any feedback, please feel free to share them.

<comment><USER2> This is super cool, nice job!

<comment><AUTHOR> Thanks!

</comment></comment></comment><comment><AUTHOR> Product Hunt for more info:

[https://www.producthunt.com/posts/blockchain- demo-2](https://www.producthunt.com/posts/blockchain-demo-2)</comment>


Introduction to the Autotools (2012) - <AUTHOR> http://www.dwheeler.com/autotools/ <comment><USER2> I've used autotools for >15 years now. My $0.02 is the following:

\- autoconf is horrible but useful. It's bloated, slow, obtuse, and hard to use. But it encapsulates a portability layer which was useful 15 years ago... and less so today

\- automake is horrible. A few simple rules in GNU Makefile syntax are good enough for the majority of projects. And it's easier to understand than automake

\- libtool is horrible. It slows down every build by a factor of ~10. And you'd think that a program _dedicated to building C programs_ would be written in C. You know, for speed. But no... it's written in shell. Horrible, horrible, shell. And it _breaks_ the build. Pass "-L/foo -lbar"? It randomly converts it to an absolute path "/foo/bar.so". Pass in an absolute path so that you can link against the LOCAL build directory for testing? Screw you... it re-writes that to a relative path, and links against the system libraries.

\- libltdl should be shot. I got rid of it in my projects 5 years ago, and never looked back. Everything sane has dlopen() these days.

If you want a nice cross-platform replacement for these tools, look at what nginx has done. ~8K lines of code, largely Makefiles split into ~50 lines. Simple, clean, and well organized.

</comment><comment><USER3> I'd like to jump in and endorse CMake, too, after spending some frustrated nights some years ago trying to add autogoo to a project.

It was so mindblowingly easy to get CMake to work--to detect/find paths for libraries, work on Linux and Windows, the whole nine yards--on a project I had, I had the basic cross-platform functionality up in a matter of hours on my very first attempt.

And the makefiles it produces generate pretty colored output. :-)

Autogoo knowledge seems like it's about on par with a deep knowledge of Xlib-- good for anyone maintaining a legacy project, I'm sure.

<comment><USER4> > Linux and Windows, the whole nine yards

That's the thing, if (a specific distribution of) Linux and Windows are all you care about, then CMake does the job just fine. Autotools solves the problem of being portable to every conceivable Unix, including many Unices people don't use anymore, and including Unixified Windows.

Also, autotools solves the problem in a very specific way, _test for features, not for versions_ :

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

<comment><USER3> That sounds like what I said--portability to every conceivable unix, including ones that people no longer use--that autotools is good for legacy support.

I'm trying to see what benefit there it to start a project in 2016 and wrestle with autotools, just so that you also gain access to unixes no one uses.

<comment><USER5> Yeah, exactly. I don't think my C++11 code would be portable to ultirx and dg/ux anyway. :)

</comment></comment></comment></comment><comment><USER6> Not coming from active c/cpp development, but learned it at University, I had to deal with autotools just last week. I have to admit I was facing a steep learning curve. All I wanted to do is adjusting some build parameters of an existing OS project (like adding compiler flags etc), which has several sub projects and is also calling non cpp-compilers (mono). Normally I'm an extremely fast learner, but this gave me something to chew on a few hours. I was frustrated and gave up when I accomplished 85% of what I originally wanted to achieve (because time didn't permit to spend more on this). I don't mean to say these tools are hard to comprehend/master in general, but for folks like me coming from other software ecosystems it seems it's a tough bit. At least it was for me :)

<comment><USER7> Setting compiler flags with autoconf should be simple:

         ./configure CC=gcc44 CXX=g++44 CFLAGS="-m32" CXXFLAGS="-m32"

If that doesn't work something is wrong with the implementation.

</comment></comment><comment><USER8> Autotools Mythbuster[0] is another great resource.

[0] [https://autotools.io/index.html](https://autotools.io/index.html)

<comment><USER9> I get a 403 Forbidden.

<comment><USER10> Works for me.

<comment><USER11> Myth busted.

</comment></comment></comment></comment><comment><USER12> This documentation and video is good if you want to use autotools. But in 2016, you should really be asking yourself if autotools is the right choice. It is rather baroque, and there are many other choices these days that provide similar functionality for less developer time and effort.

<comment><USER13> Could you provide some examples of other choices that you speak of? Thank you.

<comment><USER14> waf ([https://waf.io/](https://waf.io/))

<comment><USER15> Please don't use waf. It does not provide a stable API from version to version, and encourages projects to embed a binary compiled version of waf. Unlike autotools, where you can ship configure.ac and Makefile.am and expect developers to run autoreconf after obtaining the project from version control, you can't easily do the same thing with waf due to the lack of versioning.

<comment><USER16> "Binary compiled"? Isn't waf a Python script?

<comment><USER15> See the compiled version linked from the waf homepage, which projects using waf include in their source tree. That compiled version consists of a small Python stub followed by bz2-compressed data and a signature.

</comment></comment></comment></comment></comment></comment><comment><USER17> This is awesome. Have just been strugglingh to get started with this the past few evenings. Will take this as my guide. Thanks for posting!

BTW, good place to start learning the relevant parts of GCC?

<comment><USER18> If youre just starting something and not maintaining something older you should really take a look into CMake

<comment><USER19> I'm pretty baffled that people recommend CMake so often. I looked into it, and found:

* The worst scripting language ever, seemingly made by someone without even basic theoretical knowledge of language parsing. It's even worse than shell scripting.

* The same I-don't-care copypasta culture most autotools users seem to follow, but the free documentation was even worse (or at least back when I tried it). There's a book which I didn't have access to, though.

* Less enduser/packager friendly, with worse help texts, documentation, and features (seems to have caught up somewhat). Plus, everybody already knows how configure scripts work.

* The portability to Windows in reality means lots of if(WIN32) branches.

* The results are often brittle. This is also true of autotools in practice, but at least there is some info out there about how to write autoconf macros correctly. Even the .cmake files that ship with CMake seemed to be thrown together carelessly the last time I looked.

* Also, CMakeLists.txt must be the worst filename for a script I've ever seen. I'm only half serious on that one. I know it doesn't matter, but it bothers me terribly. It's ugly and misleading and makes me question the author's sense of aesthetics and basic competence.

CMake is terrible. Autotools is also terrible, but at least it's got an excuse. Just learn your damn tools. The real problem with autoconf is that nobody wants to invest any time learning about their build system and instead just copy-pastes it around, creating a brittle mess. From the CMake projects I've seen, it doesn't really solve this problem at all, creating a similar mess. And now your users have to install CMake and figure out how it works, and it doesn't even print a useful --help text.

<comment><USER17> Appreciate your opinion. Have been looking into CMake this evening, and my little impression was that it does not make the problem smaller, just different. The things I have been searching for, also did not yield that much high quality answers. Think I will stick to learn autotools enough, as that might come in more handy in general.

</comment></comment></comment></comment><comment><USER20> Whenever this gets posted, comments seem to focus on what to use going forward. It seems obvious for most projects there are better alternatives.

However whenever I see autotools documentation I think of only one thing: it's worth learning how this old system works because, even if you will never yourself use it for your own projects, so much code written by others over past decades requires autoconf, automake, often libtool, and sometimes pkg- config.

For me, understanding how these old hacks work is very important in getting a large majority of open source software projects to compile after I make modifications, e.g., removing code.

Oftentimes I think that people who use autotools do not truly understand _how it works_, they have only figured out _how to use it_. This is reasonable but the problem is that autotools is very brittle, and if it breaks they have little idea how to fix it.

</comment><comment><USER21> An advantage of using Autotools is that a lot of awesome software for Unix like systems use it as there build process.

</comment><comment><USER22> CMake is just another automatic build tool like the Autotools but without the Bourne shell requirement and the one which easily produces XCode / Visual Studio project files like the QMake. So as far as the CMake is concerned, it's not particularly useful nor more time saving than Autotools really.</comment>


Microsoft issues debt to finance LinkedIn purchase - <AUTHOR> http://www.bloomberg.com/news/articles/2016-06-13/why-microsoft-with-100-billion-is-borrowing-to-buy-linkedin <comment><USER2> >Microsoft will avoid having to pay a 35 percent tax rate to repatriate cash from overseas accounts. While it's true that Microsoft has more than $100 billion in cash and cash equivalents, most of it is parked offshore. Bringing home any of it to fund the proposed $26.2 billion purchase, announced on Monday, would generate a tax bill.

Of course if an individual or small business tried that, They would be in jail.

</comment><comment><USER3> In general, I think companies are waiting for a tax-holiday on repatriating cash as has happened from time-to-time in the past. It would be interesting if tax laws were amended to allow tax-free repatriation of cash for the purpose of buying US-based companies. The US would lose out on collecting of the tax revenue (not that it's getting that revenue now), but it would allow a path to repatriate the cash in an instance when the cash injection might be inherently put back into circulation because of use in the transaction.</comment>


Don't Learn C the Wrong Way - <AUTHOR> http://hentenaar.com/dont-learn-c-the-wrong-way

<comment><USER2> You like K&R. I understand that - it's a good, well known book. Maybe a little outdated. But zed shaw has some valid points there which aren't less valid just because his book isn't perfect, either. You're ranting so much about the books structure that I can't take your post seriously, even though I agree with you to some extent.

</comment><comment><USER3> The author is supposedly rewriting the LCTHW book. For what it's worth I have found it useful.

</comment><comment><USER4> [https://github.com/thentenaar?tab=repositories](https://github.com/thentenaar?tab=repositories)

[https://github.com/zedshaw?tab=repositories](https://github.com/zedshaw?tab=repositories)

Not too bad for a "writer", Mr Engineer.

There are things one doesn't get to say until one gets to say them. And I return this one on me, shut my mouth, and get back to work.</comment>


The `sudo chroot /chroot su - user sh -c "cmd args"` trick - <AUTHOR> http://www.catonmat.net/blog/chroot-su-sh-trick/ <comment><USER2> How did this extremely poor written and technically incorrect article make it to the Hacker News front page?

This "trick" is absolutely trivial. What's next, the trick about using grep to search through files? The author's lack of competence is evident due to the improper way of using su, the extremely weird idiom of sourcing the profile where it is not required and representing su as being useful for running untrusted binaries.

Simulating a login is usually not what you want. Sometimes it is, most often it is not. The author simulates a login but does not tell you why would you want to do it.

Su takes arguments that can be passed to the started shell. In particular -c can be passed to the original shell started bu su[1]; no need to start a second shell. This is not used here. Starting two shells instead of one is hardly a crime (I always do cat file | grep something instead of the more effective grep something file) but misrepresenting how su works is. In particular su does not work like "su - user cmd", as he claims, su works like "su [login [args]]" where args are passed to the started shell. The author does not understand su therefore he is not capable of writing an article about it.

The fact that he just simulated a full login only to run a non-interactive shell that _manually_ sources .profile is hilarious, but the fact that he says chroots are good for running untrusted code is dangerously misleading.

[1] Interestingly GNU su takes -c by itself rather than passing it to the shell, but the effect of su user -c cmd is the same in BSD and Linux, although for different reasons.

<comment><USER3> What's the difference between a login shell and a plain one?

<comment><USER2> I believe the following links explain it pretty well:

[http://unix.stackexchange.com/questions/38175/difference- bet...](http://unix.stackexchange.com/questions/38175/difference-between- login-shell-and-non-login-shell)

[http://serverfault.com/questions/8882/what-is-the- difference...](http://serverfault.com/questions/8882/what-is-the-difference- between-a-login-and-an-interactive-bash-shell)

<comment><USER3> They do indeed, thank you.

</comment></comment></comment></comment><comment><USER4> A couple important points which are missing from the article:

1\. This requires a pretty complete system environment to be set up in the /chroot directory: a shell, /etc/passwd, su, and all the libraries needed to make the program you're running work. In my experience this is the hard part.

2\. chroot only isolates filesystem access but an untrusted executable might make use of your networking, for example. (Furthermore, if you're not careful an unprivileged user can become root inside the jail, and root can trivially escape chroot jails.)

Edit: I suppose the article is really about command composition and not chroot jails, but I think that a better example wouldn't involve a lot of prerequisite work.

<comment><USER5> If you're alright with linux and can run the program on a debian derived distro, it's very easy to do these days with debootstrap. I've setup multiple jails on my computer for various software that doesn't play nicely with a rolling release distro all the time ( _cough_ skype _cough_ ).

[1] <http://wiki.debian.org/Debootstrap> [2] <https://wiki.ubuntu.com/DebootstrapChroot>

</comment></comment><comment><USER6> From TFA:

> This is great way to execute unknown executables and code in a safe > environment!

LOL wut? No. No it is not a great nor a safe way to "execute unknown executables and code". Chroots are so very inadequate for this.

<comment><AUTHOR> Sorry about that. I updated the article and removed that statement.

</comment></comment><comment><USER7> Why is something that can be gleaned from a man page a "trick"? Boy reads man pages. News at 11.

I agree with agwa. I only use chroot for building live systems, not "security". And I use su and sh -c sometimes for overcoming braindead attempts at security on Linux distributions.

But I have always thought that if you were going to use chroot as some sort of security mechanism ("jails"), then you have to strip all the unneeded functionality out of the environment. It must all be removed from the system. If there is a program on the system that can do something you don't want the user to do, then either remove that program or edit the code to remove that functionality (e.g. a reduced functionality shell, etc.) and recompile.

Imagine the user uses SSH to login to a machine that only has a crippled shell (you have edited the code to remove undesired functionality) and a couple of other crippled programs that can't do much of anything. These might be combined into the same binary, similar to busybox. Any functionality that you don't want the user to have simply does not exist omnn the system. That would be my idea of "security".

</comment><comment><USER8> First off, there are tools for this like schroot that make this easier and are intended for this type of use case.

Second, "This is great way to execute unknown executables and code in a safe environment!" is nonsense that I can't believe I'm still seeing in 2012. (No, schroot does not do this either.)

<comment><AUTHOR> I removed that sentence and just replaced it how this is a beautiful way to combine commands! :) I wrote that one earlier without much thinking, just to have something as a closing line.

</comment></comment><comment><USER9> The '-' in "su - user" runs the shell as a login shell. Is that useful? Also it means you really don't need to specify "sh" as the command to invoke, since su will run the user's default shell, right?

<comment><USER2> Yes, you probably want su rather than su -. He uses sh only to run some command but that's obviously superflous, he should just use su -c. The fact that he sources the user's profile is hilarious. The fact that this remarkably poor and trivial article made it to the HN front page is sad.

<comment><USER3> > The fact that he sources the user's profile is hilarious.

Why is that?

Also, if all he wants is to run a command, why not use sudo? Isn't that what sudo is supposed to do (i.e. pretty much what su -c does)?

<comment><USER2> > Why is that?

Because he just did a login:

      silver:aram$ sudo su aram -c 'echo $PATH'
      /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

      silver:aram$ sudo su - aram -c 'echo $PATH'
      .:/home/aram/bin:/home/aram/bin/linux:/home/aram/bin/linux/amd64:/home/aram/bin/linux/386:/home/aram/go/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/local/bin:/usr/local/sbin:/home/aram/plan9/bin

      silver:aram$ sudo su - aram -c '. ~/.profile; echo $PATH'
      .:/home/aram/bin:/home/aram/bin/linux:/home/aram/bin/linux/amd64:/home/aram/bin/linux/386:/home/aram/go/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/local/bin:/usr/local/sbin:/home/aram/plan9/bin

> why not use sudo? Isn't that what sudo is supposed to do (i.e. pretty much > what su -c does)?

Sure, he could have used sudo.

<comment><USER10> Careful adding '.' to your $PATH, particularly as the first item.

It makes it awful easy to execute something you forgot/didn't know was in the current working directory.

UPenn gives a pretty good explanation here: <http://www.seas.upenn.edu/cets/answers/dot-path.html>

The security issue is most relevant on multi-user systems, including hosted services (e.g. a web server with an upload feature and misconfigured umask).

I don't do it on my personal system either because I am my own worst enemy and am frequently saved by the Unix "rule of least surprise."

It's the usual convenience/risk balance. To each his own.

</comment></comment></comment></comment></comment><comment><USER11> why is su in the chroot?

</comment><comment><USER12> su -c</comment>


Show HN: Paint a flag over your profile picture - <AUTHOR> http://flaggify.com/?try=2 <comment><AUTHOR> Should work much better on mobile now :)

(tested on Safari, Chrome ubuntu and Chrome Android)

Edit: (And Safari on iOS)</comment>


Ask HN: Is anyone using Microsoft Teams? - <AUTHOR> We are in the middle of a discussion regarding the choice between Slack and MS Teams. Slack is obviously widely used, but is there anyone who uses teams and who can give their side of the story? <comment><USER2> We tried to use it both with some friends and some colleagues.

The way they've decided to show updates and threads was so different than everything else (irc, slack, hipchat, etc) that we couldn't get used to it after even a couple of days.

That and lack of bots/plugins made us give up for now. I'll definitely try again in a year or so.</comment>


Ask HN: Notable Black Friday/Cyber Monday 2017 Deals - <AUTHOR> (Moderators: please delete if this is not appropriate.)
At the time of writing it's a few days before Black Friday 2017, and deals are emerging. I'm sharing a deal that I've just spotted (and purchased) for Tower, a git application:
* https://www.git-tower.com/ (50% off)
Have you seen any deals worthy of mention or recommendation? If so, I'd love to know more.
Disclaimer: this is not an affiliate link, I am not connected to the company, product, service or people involved in any way. I am a paid-up Tower user as of 10 minutes ago. <comment><USER2> No specific deal here but a casual reminder that Amazon markets some Black Friday deals as being better than they really are. Always remember to check the item's price history on CamelCamelCamel ([https://camelcamelcamel.com](https://camelcamelcamel.com)).

P.S. Tower is amazing. I use it every day and it's one of my top 5 favorite apps alongside Sublime.

</comment><comment><USER3> A list of over 100: [http://blackfridaytech.co/](http://blackfridaytech.co/)

</comment><comment><USER4> We're offering 50% off for life at UserCompass ([https://usercompass.com/](https://usercompass.com/)). 60 second setup, 100 responses free, AND 50% off for life.

We automate NPS surveys to your Stripe customers. No more excuses not to start sending NPS surveys now! :)

</comment><comment><USER5> We scanned 25,000 deals to pull out only the ones with good reviews and near all-time low prices.

[https://www.fomopop.com/black-friday/products](https://www.fomopop.com/black- friday/products)

<comment><USER6> Very nicely done. Are you aggregating from various sources directly or using a service that provides the information?

</comment></comment><comment><USER7> Little Snitch (Mac firewall app) is 50% off. [https://www.obdev.at](https://www.obdev.at)

</comment><comment><USER8> Cloudways is giving $150 on Coupon code: BF150 They have also made a list of deals with over 99+ deals. [https://www.cloudways.com/blog/thanksgiving-black- friday-cyb...](https://www.cloudways.com/blog/thanksgiving-black-friday-cyber- monday-deal/)

</comment><comment><USER9> Charles Proxy is $35 for a single license from $50

[https://www.charlesproxy.com/buy/?promoCode=CHARLESBLACK17&u...](https://www.charlesproxy.com/buy/?promoCode=CHARLESBLACK17&utm_source=twitter&utm_medium=social&utm_campaign=blackfriday17)

</comment><comment><USER10> I track the web hosting deals over at [https://reviewsignal.com/blog/2017/11/21/black-friday-and- cy...](https://reviewsignal.com/blog/2017/11/21/black-friday-and-cyber-monday- web-hosting-deals-2017/)

</comment><comment><USER11> Curious if anyone has seen any deals for laptops good for developing (light, decent power, not too pricey), particularly in the UK.

<comment><AUTHOR> Dell Outlet [1][2] typically has offers over and above their usual array of discounts. I'm holding off on a laptop purchase until tomorrow (Thursday) when their deals are announced. They had an email signup page for BF deals but I can't find it right now.

[1] Dell Outlet Home: [http://www.dell.com/uk/dfh/p/](http://www.dell.com/uk/dfh/p/)

[2] Dell Outlet Business: [http://www.dell.com/uk/dfb/p/](http://www.dell.com/uk/dfb/p/)

(Disclaimer: not affiliate links, I have no connection to Dell, their products or services.)

<comment><USER12> your sign-up link: [http://www.dell.com/learn/uk/en/ukdhs1/campaigns/black- frida...](http://www.dell.com/learn/uk/en/ukdhs1/campaigns/black-friday- laptops)

<comment><AUTHOR> Exactly that - thank you.

</comment></comment></comment></comment><comment><USER13> On previous years I've seen great discounts for tech books (not ebooks) from O'Reilly, but now that they closed their web store I can't find any deals on dead tree books.

Has anyone seen discounts for paper books, tech or not?

<comment><USER14> Apress

<comment><USER13> $12.50 for a tech softcover is amazingly cheap! Now the difficult part is knowing what Apress books are worth buying.

<comment><USER14> IMO, the content is good, but the customer service and such is terrible

</comment></comment></comment></comment><comment><USER15> Newegg has already kicked off the festivities.

MSI GTX 1050 gaming laptop $599:

[https://www.newegg.com/Product/Product.aspx?Item=N82E1683415...](https://www.newegg.com/Product/Product.aspx?Item=N82E16834154734)

</comment><comment><USER16> Does anyone know of a website that will alert you on deals for a particular product?

I.e - if I am looking for sales on a laptop, a site where I can punch in the product number/name and get an alert when a low price is reached?

<comment><USER17> camelcamelcamel?

</comment></comment><comment><USER18> I posted this about a dev watch with WiFi from TI

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

<comment><USER19> Note: it's not "normal" WiFi, it's a proprietary wireless protocol

<comment><USER18> Thanks. I totally missed that. I could have sworn I saw WiFi somewhere. I guess not.

</comment></comment></comment><comment><USER20> We built a dashboard in partnership with Slickdeals on this! [https://holidaysales.live/](https://holidaysales.live/)

</comment><comment><USER21> Got an email from Techsmith (Snagit and Camtasia) a few days ago about a Cyber Monday sale. No figures mentioned, but the above 2 products were mentioned.

<comment><USER22> Camtasia is a great product, that if you're using it often/full time I'd recommend.

I'm currently using "OBS Studio" to produce training videos which is free and open source software, it definitely isn't quite up to Camtasia levels but it ticks a lot of boxes and produces fantastic H.264 output. Because it was seemingly designed for streamers who were gaming, the performance impact is also minimal and it does things like picture in picture.

<comment><USER23> Good to know. I love Camtasia but my previous employers didn't want to budget for it (my current one is better in that regard but I don't need it right now).

</comment></comment></comment><comment><USER24> getform.org for form processing is a good deal, it has %50 of for annual subscriptions.</comment>


Robust Interprocess Locks - <AUTHOR> https://squadrick.github.io/journal/ipc-locks.html <comment><USER2> > It keeps track of PID of the last process that acquired it, and if another > process can't acquire it, it can check if the PID is still alive using stat, > if it's dead it will unlock the mutex and reset the field of previous owner.

That's not safe. PIDs are recycled.

The only correct solution I can think of is to place the lock in shared memory, use the futex(2) API, and use set_robust_list ([https://linux.die.net/man/2/set_robust_list](https://linux.die.net/man/2/set_robust_list)) to ensure the kernel will unlock a futex if a process dies.

You _may_ (should?) be able to initialize a pthread-based PTHREAD_PROCESS_SHARED + PTHREAD_MUTEX_ROBUST mutex in a shared memory region and have everything just work.

<comment><USER3> POSIX shmem is a bit more portable, and flock definitely will do the job. Futex is a linuxism.

</comment></comment><comment><USER4> How do others do publish-subscribe architecture on Linux? There's no multicast IPC primitives, and nothing like the Mac's lovely notify(3).

One disgusting technique is to use a file descriptor's "ready" state as a signal. Wait until the fd is readable, then check the shared memory for new data. Surely there's better.

<comment><USER5> > How do others do publish-subscribe architecture on Linux?

One great (read: terrible) hack is to do signal delivery on process groups.

I know a multicast AF_UNIX patch for Linux has been floating around for years, but I have no idea if it's ever landed in a mainstream kernel.

My go-to for pseudo-multicast on POSIX/Linux is shared memory + semaphores.</comment></comment>


Ask HN: Will you buy one of the new iPhones? - <AUTHOR> Personally, I do not see any reason to buy one of those. I would love to hear from fellow hackers and founders: What could be a reason to get one? <comment><USER2> Yes, probably after Christmas. I usually replace mine every 2-3 years or so. The batteries are much better than they were, so I go longer than I did.

I use androids too at work so I'm familiar with both. To me, it's the best phone and platform for my needs. I would never use a Google device without commercial terms for GSuite and Chrome.

</comment><comment><USER3> No. It's too big, doesn't have a home button not Touch ID and doesn't have bezels for holding it without interacting with on-screen elements. I'm tempted to buy a spare iPhone 8 just in case my current one dies.

</comment><comment><USER4> The only reason I can think of is that Apple will make performance incrementally worse for every iOS update, eventually the performance of your "old" iPhone will be unbearable and you just "have" to get a new one.

<comment><AUTHOR> Why not a $100 android phone? I have been using those for years and years now and never had an urge to get something else.

</comment></comment><comment><USER5> I'll be upgrading to a dumbphone once my current smartphone croaks.

I haven't noticed any significant benefit from having a smartphone. Admittedly, gps maps are somewhat convenient.

</comment><comment><USER6> My phone is fine for now, but when I do get a new one I think I'd like it to be a Moto Z* with a dev kit for moto mods.

</comment><comment><USER7> I think they're just too expensive for something you carry around all day and could potentially drop into a lake.

</comment><comment><USER8> If I drop/break/lose my iPhone 8 before next year's phones, yes. Otherwise I'm fine for now.

</comment><comment><USER9> Status! IPhone's are a status symbols. All that matters to most common buyers is that they are physically different so that people know they have the new phone.

My 150 dollar phone is good enough but no one will care that I have one. If I had a new iphone, people would look twice and ask about it.

It's all about perceived social standing.

Apple is a marketing power house 1st then a tech one.

No, I won't be buying one.

<comment><USER10> Would you say a Pixel 2 is a status symbol too?

<comment><USER9> Not in the same way but among the techies, yes.

</comment></comment></comment><comment><USER11> No because I have a XS. May be next time.

</comment><comment><USER12> No, my next phone will be a linux phone.

<comment><AUTHOR> That would be awesome. But will there be a trustworthy distro?

And will it be able to run all those apps that these days you need to use all kind of services?

<comment><USER13> > And will it be able to run all those apps that these days you need to use > all kind of services?

I'm hoping the answer to that on the Librem 5, PinePhone, and any other Linux phones to come out, is PWAs.</comment></comment></comment>


Mailpin is a Painless Way to Create a Web Page Using Email  - <AUTHOR> http://designinstruct.com/tool/mailpin/

<comment><USER2> Discussion, including expression of reservations about security and similar:

[https://news.ycombinator.com/item?id=7706915](https://news.ycombinator.com/item?id=7706915)</comment>


Arctangent scale. It's like the logarithmic scale but infinite - <AUTHOR> https://wordsandbuttons.online/arctangent_scale_its_like_the_logarithmic_scale_but_infinite.html <comment><USER2> Hyperbolic scales were popular some time back, for 2D "fisheye" tree displays. They mapped an infinite plane into a finite display.</comment>


Tell People What You Like (Not Just What You Don't) - <AUTHOR> http://www.zachboerger.com/post/30038227593/tell-people-what-you-like-not-just-what-you-dont

<comment><USER2> I think our culture has evolved this as a defence against shills. If positive low-content comments ("I just had a great experience with x") were an accepted and normal thing to post, pretty soon we'd fill up with astroturfers. If you're posting in support of something, you have to go into depth about what made it good.

I think this is good; HN is optimized for signal/noise even at the cost of missing out on some content. It would be better to have a culture that frowned on shallow criticisms ("Why don't you have X, Y, or Z?" and "Why would you waste your time on that? 12 things like that already exist!", as the article puts it).

Above all HN (to me) is the antitwitter; it's a place for serious, in-depth discussion. I wonder whether a minimum of 161 characters would lead to better posts.

<comment><USER3> In-depth useful comments are key. The best analogy is Amazon product reviews- the high-star rating serves as an initial screener, but the real test comes with the reviews. Positive but empty reviews are ignored, the useful ones talk about specifics of the product. Finally a quick glance at the negative reviews to see if they are about something substantial, or are just about a bad shipping experience or something.

<comment><USER4> This is a really interesting comparison to draw. What do you think of the 'movement' towards more transparent commenting systems like Disqus?

</comment></comment></comment><comment><USER5> People tend to feel more strongly about things they dislike than things they like. When things work, they tend to drift past without being noticed. Think about the things that provoke reliable positive comment - they often are in scenarios where a negative experience is expected.

Consider Apple. Why do people love the brand and products so much and are so willing to discuss it? Perhaps because their expectation of those fields is so low and Apple surpasses it. Compare a normal retail stores with an Apple store. Compare a pre-iPhone with an iPhone. Compare a Mac with a PC. Apple have consciously taken negative customer experiences and made them positive. And as such they get extensive positive comment.

<comment><AUTHOR> That's a really interesting point. So maybe we're likely to comment on something positive that far exceeds the normal experience, but not say anything where "good" is already expected. I'd never thought of it like that.

<comment><USER6> In my job, my boss expects everything to be fantstic, for him 'good' simply won't do and he tells me so every day, but occasionally you have to push something which is merely 'good'.

It can be a downer, but when I do 'fantastic' I know I've deserved the praise which is a massive moral boost.

</comment></comment></comment><comment> yew-right Well, this article is doing what: telling us what he doesn't like. He doesn't like too much criticism.

Personally, I like honesty. As in honest opinions.

But... the source matters. To be criticised by a fool means nothing. To be criticised by someone who has good taste is different. It may be hurt but it's extremely valuable.

Without criticism, you simply cannot improve. I guess there are some people who do not want to improve. They just want things to stay as they are.

<comment><AUTHOR> That was not the point at all. Criticism is totally fine and often valid, and it certainly aids in improvement. The point I was trying to make is that people are quick to criticize, but slow to compliment. We share our honest opinions when they're negative but not nearly as often when we have something positive to say.

I'm always open to criticism and am willing to improve. Sorry if that wasn't clear enough in the post.

<comment> yew-right I shouldn't have said you can't improve without criticism. What I meant to say is you can't improve without _feedback_. That feedback might be positive and/or negative.

People are quick to criticise and slow to compliment on HN. But ask yourself why.

Is it really so surprising?

Here are some of my observations. These could be wrong.

1\. Computers have always been difficult and at times frustrating to use. I recall a story of someone throwing a PDP-10 out of a window at Berkeley, immediately after successfully porting some code to it (a wonderful achievement but incredibly frustrating- this was before C and portability). If you are spending your time working with computers, you are going to build up some frustration. It just goes with the territory. That will eventually have to be vented. (Exhibit A: Slashdot.org)

2\. The web as a medium of business is full of scammers and criminals. It's also full of garbage "news" and other faux "content" trying to draw traffic, internet VC looking to take advantage of young programmers and naive investors, and "companies" formed of morally-challenged people who aim to make money by selling people's personal information or access to people's own content as a "business". There is a lot to make people jaded if you follow business on the web.

3\. Computers do have a positive aspect. When they work well, it's amazing. Like magic. Computers are addictive. People enjoy them. When you write programs it can you give you a feeling of great satisfaction. ... However... the way we use computers, e.g., our personal preferences, often differ widely. So If you start singing the praises of something computer-related to other users reading the web, they may not all agree. In fact, the idea of the "fanboy", e.g. one who loves some absolutely terrible and stupid piece of software or hardware, can be even more disturbing than people who are constantly making negative comments about things which might actually not be all that bad.

4\. HN if the estimates are accurate is _primarily_ an audience of 18-24 males who are are likely to be social outcasts. Would you really expect them to be overflowing with positive energy? In my experience, negative comments get upvoted. The most upvotes I ever received have been from negative comments. Who would upvote negativity? (I should really not even post negative things. I know better) So who the heck would upvote negativity? 18-24 males who can't get laid. Just a guess.

</comment></comment></comment><comment><USER7> This is pure speculation, but I wonder if only providing an upvote button discourages positive comments, leaving only negative ones left to actually be posted. The purpose of the upvote is intended to mean "I support this contribution to the discussion", but is too often simply used as an "agreed" vote. There have been plenty of other related comment thread discussions along these lines as well.

<comment><USER8> Maybe in part, but I think for the majority of people thinking positively about a situation results in a nodding of the head and moving on. Most don't find it interesting or adding to the conversation to just write, "I agree because of what you said or because of X, Y, and Z."

If you disagree, however, there is an emotional tendency to want to argue or lash out(especially under the guise of partial or full anonymity). Arguing makes for a more interesting read or prevents the 'yes' mentality.

</comment></comment><comment><USER9> "Criticism is an indirect form of self-boasting."

\- Emmet Fox</comment>


No Excuses - <AUTHOR> http://weblogs.asp.net/rosherove/archive/2009/08/11/no-excuses.aspx

<comment><USER2> Well, referring to potential students as "victims" when the author is asking them to pony up $2000 for his wisdom on TDD... I think the metaphor works in ways beyond what the author intended.

<comment><USER3> 2 grand is chump change. If you learn something valuable there, you'll make it back in spades. Stop thinking about "cost" and start thinking about "value."

<comment><USER4> Big "if" though. This is a $2,000 training course we are talking about. I'm very skeptical about the value of training courses and rarely send any staff on them. Smart people can learn a lot from books.

If this guy doesn't have the cash for the course, I suggest he buy the author's book and read it. Chances are the content is the same.

</comment></comment></comment><comment><USER5> Was anyone else annoyed by his inconsistent capitalization or am I just being pedantic?

</comment><comment><USER6> Some people post Facebook, Twitter messages, etc. about how miserable they are about being laid off and needing a job - other people post messages about how they're using time off to read a new book about design patterns or Erlang or whatever. I'm thinking the second group are more likely to be hired.

Although projectileboy's comment about paying $2k for a class on TDD is spot- on.

</comment><comment><USER7> There is truth in the notion that all of us have to decide we want something and then we have to go after it.

The way the author makes this point really comes off poorly. There are always going to be people that say they would buy something if it were only $5 cheaper, or if it included X or Y features. These people aren't your customers, so why waste time bullying them into buying?

</comment><comment><USER8> "I for one would immediately discard a software developer as less than worth his salt if he felt he needed any sort of paid tuition to pick up new technologies. If you're not learning something new practically every week, you're probably not a good coder." - from a comment on the linked article.

Different people learn in different ways. I actually learn better from books than from lecture type courses; unfortunately, there are always bits of information that slip between the cracks in writing. I have been teaching myself to use linux and programming in my spare time for years and I all too often have to waste a lot of time in trial and error because some minor detail that the expert writing the book thought was "too obvious" to include explicitly.

</comment><comment><USER3> This is a really important message. Do not be a victim, everything is possible. People -- especially geeks like us-- love to feel like it's us against the world, but it's not. If you go out and kick ass, you can get what you want.

<comment><USER9> I'd argue for some people the world is against them, it all boils down to random chance. Instead of poorly paraphrasing I will just link to this video which I believe sums it up nicely.

[http://www.ted.com/talks/alain_de_botton_a_kinder_gentler_ph...](http://www.ted.com/talks/alain_de_botton_a_kinder_gentler_philosophy_of_success.html)

</comment></comment><comment><USER10> People like Roy are half the reason why guys like that act like they do.

I whole-heartedly believe in Roy's thesis.

This is the last guy who should have been offered a 50% discount.

EDIT: removed a sentence and rearranged.

</comment><comment><USER11> It sounds like I'm essentially going to be crippled for life if I don't attend this seminar.</comment>


Resharper 9 and Resharper Ultimate Available - <AUTHOR> https://www.jetbrains.com/resharper/whatsnew/

<comment><AUTHOR> Resharper "Ultimate": [https://www.jetbrains.com/dotnet/](https://www.jetbrains.com/dotnet/). Actually a packaging of their dotNet tools into one purchase (Resharper - including C++, dotMemory, dotTrace and dotCover).</comment>


Ask HN: How do you screen and hire software engineers? - <AUTHOR> I've recently been tasked with screening and interviewing new hires, and have run into some issues where I feel there is wasted time and effort. My first question is, are there any good books or resources for hiring that you would recommend?
More specifically, how do you do the following:
1. Find out if someone can program at all before wasting time on them. I don't want to bring in another candidate that can't FizzBuzz or equivalent.
2. Find if someone is lying on their resume. Do you have any tricks for catching incongruities and probing them?
3. Find out if they will be a drag on the team. Whether that's lack of motivation and output, or sloppy code and bad communication. <comment><USER2> I've done some of these, and of course I've been at the other side too.

1\. If you need to understand whether or not they can program, unfortunately you really do need to make them write some code. But don't look at the completeness of the answer. Look at how they're thinking. Get a feel for their understanding of the language. Do they simply know the basics and nothing more? Do they understand how the garbage collector works (if any). These are all means to understand how much he knows, and what his compensation may be.

2\. All the good interviews I've had (on both ends) have been simply asking an open ended question about their resume. Ideally something I know about too and let them talk about it. Let them speak until they're done speaking (if they take too long, interrupt them) and then eventually ask them more about it. Drill into his understanding. Don't attack him for it anything, just make him expand more and more. You'll get a good feel of the depth and breadth of their knowledge. The ones who lie on their CV usually ramble, and they become defensive.

3\. This unfortunately I've never figured out myself. I've historically let others decide, so I have nothing to say about this.</comment>


Offer HN: Free office space in NYC (at hyperpublic) - <AUTHOR>

Background: I just won the
"Free desks for one month for you and a friend/coworker at Hyperpublic HQ in NYC"
prize (http://hyperpublic.com/challenge). Since I'm nowhere near NYC I'd like offer any interested hacker in NYC the opportunity to have a great month at the office:
"Located in the Meatpacking district (nice part of the city), in the same building as Betaworks which is home to some great NYC startups, and a block away from Google's NYC office. We have 5-10 hackers in the office on any given day too so it's a good place to hang out and code."
Pitch your project, get found, enjoy! <comment><USER2> I live in NYC and would be interested in the space, if it's still available. I just pitched my project (www.hotspotrobot.com) on HN actually: <http://news.ycombinator.com/item?id=2275591> . As I mention in that post, Hotspot Robot is a new way to discover the best restaurants/bars in your city. Here's a 60 second video explaining what makes Hotspot Robot different: <http://www.vimeo.com/18023901></comment>


Internet Geeks - Because Knowledge Is The Real Power - <AUTHOR> http://www.internetgeeks.org/ <comment><AUTHOR> this is my blog and everyone are welcome to join us.</comment>


Windows 10 works incorrectly with Large memory pages - <AUTHOR> https://sourceforge.net/p/sevenzip/discussion/45797/thread/e730c709/ <comment><USER2> For all the improvements to Windows that have come from Microsoft thanks Nadella & co., it is still rather shocking to realize Windows has no public bug tracker, and no real way to report these issues besides screaming loudly and hoping someone in Redmond hears you. It's even worse customer service than Google, which is quite an achievement.

<comment><USER3> Rather unconventional, but Windows 10 on desktop and mobile do have a Feedback Hub [1] where Windows 10 users are able to provide all sorts of feedback, either as a _suggestion_ or a _problem_. All the feedbacks are public and users can freely vote them up to draw more attention on them. The more vote they have, the more likely they receive a response from the developers and also get the priority in the queue of issues to be resolved.

I use it every so often when I notice something peculiar. None of my feedbacks actually became so popular. Even then I know one of them has been fixed. The fix probably didn't come because I have pointed it out, but I was happy about it regardless.

I couldn't find a web-link to the Hub, so I think it is not entirely public, but surely available to the Windows 10 users.

[1] [https://support.microsoft.com/en- us/help/4021566/windows-10-...](https://support.microsoft.com/en- us/help/4021566/windows-10-send-feedback-to-microsoft-with-feedback-hub-app)

<comment><USER4> As a Microsoft employee, I can say that that feedback is taken pretty seriously in most teams, especially if the description is good or if the problem recorder/screenshot tool is used. It's not all based on up votes.

<comment><USER5> Well then I'll report something about how my PC refuses to stay asleep after I tell it to sleep.

<comment><USER6> This happens to mine if I have an update pending, worth checking if it's an intermittent issue.

<comment><USER5> I've dug into it several times. First it was network adapter, which for some reason had a default setting to wake on any received packet (lol, wut?). Then it was waking because there was some setting deep in the system about waking up for scheduled operations. (not scheduled tasks, but timers within individual processes... why???) Now it started again but this time the power management tools report no reason for the wake.

<comment><USER7> Do you have a Display port monitor, by any chance?

After adding one, I found out that when the display goes to sleep, Windows sees it as a disconnection, and 'helpfully' wakes up to reorganize all the windows onto one display. That wakes up the Display port monitor, which triggers another reorganization, and the cycle begins again.

<comment><USER8> So that's what it is. Got a TV connected via a D-port to HDMI adapter and the stupid machine wakes when I want to just turn off the TV after I put the PC to sleep.

Googling didn't get me too far obviously.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> Insightful response in the linked thread: [https://sourceforge.net/p/sevenzip/discussion/45797/thread/e...](https://sourceforge.net/p/sevenzip/discussion/45797/thread/e730c709/?limit=25&page=1#b240)

<comment><USER9> I'm not surprised at Igor's response, it's in keeping with his refusal to use modern compilers, security features, sign his code, or support ALSR properly.

</comment></comment><comment><USER10> So, as much as I hate to hate on somebody here, Igor is... somewhat unreliable with regards to these issues.

Igor is infamous for disabling virtually every setting. 7-Zip has no ASLR, compiler-stack checks, or anything what-so-ever. Igor refuses to use a modern VC++ (Visual Studio 2015 and later have FREE versions available for open- source code) that would solve a lot of security issues and bugs.

I'm not entirely sure if this is a Win10 problem, or if its a 7-Zip problem. Any complaints from the 7-Zip dev IMO will require a very careful eye: 7-Zip code is not necessarily in the cleanest state or using the best practices.

<comment><USER11> Are there any other decent archiver programs for Windows? Explorer has had built in unzip functionality for a while but it's ridiculously slower than 7-Zip.

<comment><USER12> I looked a while ago to find alternatives when some of these issues came up a while ago but I haven't found any other viable alternatives. I thought PeaZip might be a good option until finding out that it is also based on 7-Zip.

The one tool that I did find useful during this search though is [https://github.com/ImminentFate/CompactGUI](https://github.com/ImminentFate/CompactGUI).

Apparently in Win10, Microsoft introduced a compact.exe commandline tool that transparently compresses files/folders. The above tool is a GUI for it. It's not a replacement for a proper archiver but it's a nice tool to compress things like games and other large programs that need to stay in place.

</comment></comment></comment><comment><USER13>
        // A Windows bug exists where a VirtualAlloc call immediately after VirtualFree
        // yields a page that has not been zeroed. The returned page is asynchronously
        // zeroed a few milliseconds later, resulting in memory corruption. The same bug
        // allows VirtualFree to return before the page has been unmapped.

I wonder what MSRC would think of that bug

</comment><comment><USER9> In reading the article it's clear this is not a bug, it's API abuse. The documentation for VirtualAlloc is very clear that Large Pages should be a one time allocation thing are not intended for general malloc replacement.

<comment><USER14> Api abuse should not lead to system crashes or global memory corruption.

<comment><USER15> Excuse me what? That's how pretty much all non-managed APIs work

<comment><USER16> It certainly is an OS bug. The OS is modifying your memory behind your back after it has given it to you. That can break any application, managed or otherwise.

<comment><USER15> Yes that's an OS bug. I'm saying the assumption that an unmanaged API should in no circumstances cause a system crash

</comment></comment></comment></comment></comment><comment><USER17> For those interested, this issue was apparently already resolved in RS4 insider builds and only affects some older releases. After updating a system to RS4 (the upcoming release), this issue should no longer be encountered:

[https://aka.ms/Yxum93](https://aka.ms/Yxum93)

(requires Feedback Hub App on Win 10 to view)

</comment><comment><USER18> Leery about going to read this - has sourceforge cleaned up its act at all since the download poisoning issues?

<comment><USER19> It got a new owner. I think they reduced but didn't eliminate the surface area of the questionable ads. This url is a forum and appears clean on mobile.

</comment></comment><comment><USER3> It is funnily interesting to me how they prefer to capitalize the word BUG, perhaps as a means of drawing attention to its (apparent) importance.

<comment><USER20> The pattern I've seen before is all-caps tags inserted in the code, making for easy grep, e.g. FIXME, BUG, TODO. Perhaps it becomes habit.

<comment><USER21> My super hitech code editor (erm...gedit) highlights FIXME and TODO in comments so you can easily find them while scrolling. Doesn't know about BUG though so I guess it just assumes you write bug-free code.</comment></comment></comment>


More than 95% of world's population breathing unhealthy air, says new report - <AUTHOR> https://edition.cnn.com/2018/04/17/health/world-dangerous-air-report-intl/index.html <comment><USER2> Imterstingly there's a pretty much 1:1 correlation between air quality and longetivity, much stronger than just wealth disparity. The longest lived areas in the US are Hawaii (constant supply of clean air via tradewinds, total lack of heavy industry) and the high mountain valleys of Colorado/Montana.

<comment><USER3> There's more going for Summit County than clean air and wealth.

[http://www.businessinsider.com/summit-county-is-the- healthie...](http://www.businessinsider.com/summit-county-is-the-healthiest- in-the-us-2017-10)

[https://fivethirtyeight.com/features/the-healthiest-state- in...](https://fivethirtyeight.com/features/the-healthiest-state-in-the- country-has-some-of-the-steepest-premiums/)

[https://www.aspentimes.com/news/regional/study-summit- county...](https://www.aspentimes.com/news/regional/study-summit-county-has- the-highest-life-expectancy-in-the-nation/)

[https://www.summitdaily.com/news/2017-year-in-review- great-h...](https://www.summitdaily.com/news/2017-year-in-review-great-health- news-for-summit-county-but-at-a-steep-cost/)

<comment><USER4> "A lot of what makes Summit County so healthy is also what makes the other four Colorado counties in the top-10 ranking for life expectancy so healthy: an over-representation of higher-income, young, white residents relative to national averages."

</comment></comment></comment><comment><USER5> This really affects me. I have asthma throughout my life and it shows. I think it has made me more sedentary throughout my life.

I have actually breathed really well once when I was doing work halfway inside a server farm at Alcatel Lucent (it was one of the monitor rooms so it wasn't noisy).

I can notice the air in my house is not fit to breathe and I buy hepa filters for my house.

I have thought about using an oxygen tank or some respirator and seeing if that had any measurable affect .

I just had an asthma attack today because someone spilled toner on the ground.

<comment><USER6> Where do you live? A city, or a small town, or a village?

The difference seems like it would make a big difference in traffic pollution.

I know of [http://airqualitynow.eu/comparing_home.php](http://airqualitynow.eu/comparing_home.php) for some EU settlements, and the difference between places can be massive. (Storrington at the bottom has a population of 4000. I don't know the criteria for appearing on that list.)

<comment><USER5> I mainly commute in the Chicagoland area and live in the Suburbs.

<comment><USER7> I started suffering from exercise induced asthma last year. It sucks, but I've found that with good nutrition, using the correct medications and trying to stay in a clean air environment (air cleanser, HEPA mask, etc), it's very manageable. There is a lot of good recent research out there on how to manage it, but I've noticed that most asthma sufferers and doctors are not even aware of it.

</comment></comment></comment></comment><comment><USER8> The man who self-immolated in Brooklyn on Saturday cited this among many other concerns:

> In retrospect, Mr. Morales said he knew Mr. Buckel had been upset as > recently as February when he began discussing articles about the > environment, for instance one about how 96 percent of human beings breathe > polluted air and another about the Arctic Circle experiencing record > breaking temperatures.

[https://www.nytimes.com/2018/04/15/nyregion/david-buckel- bro...](https://www.nytimes.com/2018/04/15/nyregion/david-buckel- brooklyn.html)

</comment><comment><USER9> Is living near a major roadway (e.g. [http://www.sciencemag.org/news/2017/01/brain-pollution- evide...](http://www.sciencemag.org/news/2017/01/brain-pollution-evidence- builds-dirty-air-causes-alzheimer-s-dementia) ) also sufficient to cause unhealthy air?

>> Deepening the concerns, this month researchers at the University of Toronto in Canada reported in The Lancet that among 6.6 million people in the province of Ontario, those living within 50 meters of a major road—where levels of fine pollutants are often 10 times higher than just 150 meters away—were 12% more likely to develop dementia than people living more than 200 meters away.

>> Just how the fine airborne particles might travel from a rodent's nasal cavity to its brain is a mystery. But a research team led by Günter Oberdörster at the University of Rochester in New York has used traceable, radioactive specks of elemental carbon to demonstrate that inhaled particles smaller than 200 nanometers can get through the delicate tissues lining a rodent's nasal cavities, travel along neurons, and spread as far as the cerebellum, at the back of the brain, triggering an inflammatory reaction.

>>"In 1403 elderly women, the total volume of white matter—the insulated nerve fibers that connect different brain regions—decreased by about 6 cubic centimeters for every 3.5-µg/m3 increase in estimated PM2.5 exposure, based on air monitoring data from participants' residences for 6 to 7 years before the brain scans were taken. Chen's white matter findings are consistent with studies of cultured neurons, which show that exposure to PM2.5 can cause myelin—the fatty insulation that wraps around neuronal axons—to "peel up at the ends, like a Band-Aid," Block says"

I mean, hell, even trees _do_ increase the amount of certain types of "pollutants" in the air (pollen for one). They make the air less pure for one thing.

<comment><USER10> Unlike magnetic nanoparticles, pollen isn't going to literally stick in your brain, just provoke an allergic reaction in some.

<comment><USER9> trees still produce air impurities beyond just pollen :)

</comment></comment></comment><comment><USER11> I may have missed it but I didn't see anything explicitly spelling out what components of pollution in the air that were so deadly. You'd think they'd define what form of air pollution we're talking about, not just pollution in the generic.

<comment><USER12> It's in the report which is linked at the beginning of the article. [https://www.stateofglobalair.org/sites/default/files/soga-20...](https://www.stateofglobalair.org/sites/default/files/soga-2018-report.pdf)

</comment></comment><comment><USER13> Keeping a variety of houseplants seems to help at least a bit [https://en.wikipedia.org/wiki/NASA_Clean_Air_Study](https://en.wikipedia.org/wiki/NASA_Clean_Air_Study)

</comment><comment><USER14> Does this mean 95% breathing unhealthy air today? Or breathed unhealthy air in the past year? Sometimes the air here is healthy, sometimes there's too much ozone. Am I in the 95%?

<comment><USER3> Usually it's in the past year, over some threshold, more than X times.

Even the worst locations for air quality have many good days, and some locations with normally good air have terrible inversions.

If you're in an ozone non-attainment zone, I'm guessing you might be in the Front Range. Yes, we need to get it fixed.

</comment></comment><comment><USER15> The latest More or Less podcast episode covered this.

[https://www.bbc.co.uk/programmes/p06478pz](https://www.bbc.co.uk/programmes/p06478pz)

</comment><comment><USER16> Relevant: one of my favorite articles.

[https://samharris.org/the-fireplace-delusion/](https://samharris.org/the- fireplace-delusion/)

</comment><comment><USER17> Here's the real scary quote:

> According to the report, China and India were found to be jointly > responsible for over 50% of global deaths attributable to pollution.

<comment><USER18> They also almost host 50% of world's population.

<comment><USER19> Closer to a third, but probably more than half of the population in huge cities with terrible air...

</comment></comment></comment><comment><USER20> What if we made HEPA filters in cars mandatory in such a way that every car 'clears out' the smog it creates plus some extra (won't help for all the coal burning). We could then throw out/recycle the filters once in a while and at least compensate for traffic related smog.

</comment><comment><USER21> Wonder where the 5% clean areas are?

<comment><USER22> I believe it's a population based percentage. However, there is a global map on page 15:

[https://www.stateofglobalair.org/sites/default/files/soga-20...](https://www.stateofglobalair.org/sites/default/files/soga-2018-report.pdf)

</comment></comment><comment><USER23> What impact does this have on average life expectancy?

<comment><USER22> Some quotes for you:

Among the 84 risk factors included in its comprehensive analysis, the GBD project reported that ambient air pollution from PM2.5 ranked 6th globally in its contribution to mortality in 2016, accounting for 4.1 million deaths. Household air pollution was ranked 8th globally, responsible for 2.6 million deaths. Air pollution from ambient PM2.5, ozone, and household burning of solid fuels combined was the 4th-highest global risk factor, accounting for 6.1 million deaths — 11% of the global total.

page 18, [https://www.stateofglobalair.org/sites/default/files/soga-20...](https://www.stateofglobalair.org/sites/default/files/soga-2018-report.pdf)

<comment><USER23> I've always thought the "accounting for X" deaths metric was silly of things that kill you over time. Wish they reported life expectancy changes. Perhaps it has a negligible impact.

</comment></comment></comment><comment><USER24> All those former smokers on oxygen are the lucky ones.

<comment><USER25> They still breathe plenty of air.</comment></comment>


Plotting - <AUTHOR> https://mitxela.com/projects/plotting <comment><USER2> plotting is a huge amount of fun. i've built several large drawing machines [1], [2] and gotten some old HPGL plotters working including a Roland DXY-1150 and a HP DraftPro DXL (7575A)

I'm currently working on using brushes and paint pens in a CNC router table converted to holding pens. [3] [4]

Lots more plots here: [5]

I strongly recommend getting an Axidraw - it's great fun!

[1] [https://www.youtube.com/watch?v=8rGjyPqcVbg](https://www.youtube.com/watch?v=8rGjyPqcVbg)

[2] [https://www.youtube.com/watch?v=piKsTr9XfFU](https://www.youtube.com/watch?v=piKsTr9XfFU)

[3] [https://www.instagram.com/p/CAjLfOwJa5j/](https://www.instagram.com/p/CAjLfOwJa5j/)

[4] [https://www.instagram.com/p/CApODjhpeIp/](https://www.instagram.com/p/CApODjhpeIp/)

[5] [https://www.instagram.com/jodhus/](https://www.instagram.com/jodhus/)

<comment><USER3> That video with the brush circles on your Instagram is amazing.

<comment><USER2> that one is was the first test with that brush. It turns out you can't really just drop the brush, you get strange twitch marks...

</comment></comment></comment><comment><USER4> mitxela is one of the hidden gems of the internet. Another great project by him — there are so many! — are these earrings with an embedded ATtiny9. Really inspired me to get into hardware hacking.

Video: [https://www.youtube.com/watch?v=Fzbg- BqIdJI](https://www.youtube.com/watch?v=Fzbg-BqIdJI) Writeup: [https://mitxela.com/projects/charliestar](https://mitxela.com/projects/charliestar)</comment>


Appcelerator - write native iPhone & Android apps using Javascript - <AUTHOR> http://www.APPCELERATOR.com/

<comment><USER2> I am currently working on an app using PhoneGap[1], and recently learned about Appcelerator. Apart from running interpreted code, the web view paradigm seems to be the most promising way to create platform-crossing applications. Palm may have gotten something right with webOS.

1\. <http://phonegap.com/></comment>


Show HN: Building Perl6 with Visual C++ 2015 - <AUTHOR> https://github.com/brakmic/brakmic/blob/master/perl6/install.md <comment><USER2> First, VS 2015 CE does come with `git` and `perl`[1] so you don't really need Strawberry Perl. Perl itself builds fine with the 2013 compiler (which is installed alongside 2015), so if you needed to, you could just build your own.

Second, you don't really have to do that much

        perl Configure.pl --gen-moar --gen-nqp --backends=moar --prefix=c:/opt/perl6
        nmake
        nmake install

is sufficient.

Third, I was told `panda` is no longer the preferred module installer[2] and told to use `zef` instead.

Frankly, both create too many droppings for my taste.

[1]: [https://www.nu42.com/2016/02/perl-spreading-windows- visual-s...](https://www.nu42.com/2016/02/perl-spreading-windows-visual- studio.html)

[2]: [https://stackoverflow.com/q/41416011/100754](https://stackoverflow.com/q/41416011/100754)

[3]: [https://github.com/ugexe/zef](https://github.com/ugexe/zef)

<comment><AUTHOR> Many, many thanks! I've updated the tutorial.</comment></comment>


Ask HN: What are some good types of greenery to get for an office desk? - <AUTHOR> I've had a little cactus on my desk before but have always thought it would be nice to have something a little greener, maybe leafier.<p>Does anyone have any suggestions for bringing a little bit of nature to a desk? One of those enclosed terrariums? Some kind of hardy succulent? <comment><USER2> Succulents are easy to care for & cute!

</comment><comment><USER3> Peace Lillys are nice!</comment>