A Python implementation of formal systems from the book "Gödel, Escher, Bach" - <AUTHOR> https://github.com/alexprengere/FormalSystems <comment><USER2> My implementation of M-I-U, more than 30 years ago, as a kid, in Turbo Pascal.

[https://github.com/ehud/MIU](https://github.com/ehud/MIU)

<comment><USER3> Didn't the original PC have lowercase? I thought I programmed TP in mixed- case, but can't remember.

<comment><USER4> I definitely programmed TP 1.0 in mixed case on a TRS-80 Model II running CP/M.

<comment><USER2> Sure. It was a style thing!

</comment></comment></comment></comment><comment><USER5> For those not in the know, the first book ever bought from Amazon was Douglas Hofstadter's "Fluid Concepts and Creative Analogies : Computer Models of the Fundamental Mechanisms of Thought"

<comment><USER6> Did he get that right or do neuroscientists dispute his models?

<comment><USER5> Most neuroscientists don't try to tackle such philosophical topics, unfortunately.

</comment></comment></comment><comment><USER7> Here is an introduction to the MIU formal system for someone who hasn't read GEB.

[https://sirodoht.xyz/blog/the-miu-formal- system/](https://sirodoht.xyz/blog/the-miu-formal-system/)

<comment><USER8> Thanks for sharing. This is also a nice answer to the MU puzzle, mentioned at the end of the article: [https://en.wikipedia.org/wiki/MU_puzzle](https://en.wikipedia.org/wiki/MU_puzzle)

</comment></comment><comment><USER9> On a related note, if you are interested in learning more about Godel and the Incompleteness Theorem and its significance, I recommend the book Incompleteness by Rebecca Goldstein.

</comment><comment><USER10> I remember doing this with pen and paper ages ago when I read the book. Somehow it clicked with me a lot better than my Abstract Algebra lectures.

<comment><USER11> I did that too; I remember the squares paper in the book. I see it in front of my eyes still. Good memories at some Portugal vacation with my parents in the 80s.

</comment></comment><comment><USER12> Author here! Thanks for the post :)

</comment><comment><USER13> Here's some more Python related to the book (by a coworker):

[https://github.com/Quuxplusone/TNT](https://github.com/Quuxplusone/TNT)

</comment><comment><USER14> I once did an introductory talk to Agda that was structured around solving the MU problem, i.e. proving that MU is not derivable in MIU: [https://unsafePerform.IO/projects/agda/sg- meetup/SGMeetup.pd...](https://unsafePerform.IO/projects/agda/sg- meetup/SGMeetup.pdf) (the MIU bit starts in Part III, slide 46)

</comment><comment><USER15> Nice, I wrote code for MU as well. What about BlooP and friends?

<comment><USER16> There's only one of those "friends" (FlooP): Hofstadter explained that there is no more powerful "GlooP" language, because FlooP turns out to be as powerful as any computing formalism that can be implemented on a computer.

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

</comment></comment><comment><USER17> I'd be interested in seeing implementation of the machine learning systems from "fluid concepts"

<comment><USER18> Fluid Concepts and Creative Analogies is a wonderful book. I wouldn't call the systems they build upon (such as lMetacat [1] and Tabletop [2]) "machine learning"...

[1] [http://science.slc.edu/jmarshall/metacat/](http://science.slc.edu/jmarshall/metacat/)

[2] [https://deepblue.lib.umich.edu/handle/2027.42/105891](https://deepblue.lib.umich.edu/handle/2027.42/105891)

I'd also like to see FARGonauts / Center for Research on Concepts and Cognition style software implementations around... I have run with success this python implementation of Copycat:

[https://github.com/ajhager/copycat](https://github.com/ajhager/copycat)

<comment><USER2> The original version in Common Lisp is also available: [http://web.cecs.pdx.edu/~mm/how-to-get- copycat.html](http://web.cecs.pdx.edu/~mm/how-to-get-copycat.html)

<comment><USER19> I implemented it in Python (while reading from that LISP version, a Java version, and Melanie Mitchell's "Analogy-Making as Perception"): [https://github.com/jalanb/co.py.cat](https://github.com/jalanb/co.py.cat)

</comment></comment></comment></comment><comment> castle-bravo Where's typogenetics? :D

<comment><USER20> It'd be great to get all of DH's code online. Even the scratch and mistakes and half baked ideas and notes and...

heavy-breathing

</comment></comment><comment><USER21> I am not a mathematician but are there any others who have problems with Godel's 'Theorem'?

<comment><USER22> Why would you have problems with Gödel's incompleteness theorems (which are, I assume, the ones you are referring to), and why do you put 'theorem' in quotes as if they aren't actually theorems?

<comment><USER21> A sort of uneasiness about their symbolic basis to start off with, nothing subsequent - I can follow it. Lack of understanding. That 'it smells' feeling. I'm not suggest they are wrong, just asking. Its okay to ask?

<comment><USER23> Well perhaps you have the same problem as Whitehead and Russell? In GEB Hofstadter IIRC is quite harsh on them for their intellectual timidity in not being able to face the paradox inherent in Godel's Theorem...Paradoxes can "feel" uncomfortable.

<comment><USER24> That sufficiently capable logical systems are necessarily incomplete can be uncomfortable, especially if the beauty of completeness has been your lifelong goal.

But on the other hand, it's very cool that this provides an opening for consciousness and free will to arise.

<comment> castle-bravo How are consciousness and free will implied by incompleteness of formal systems?

<comment><USER24> I defer to Douglas Hofstadter:

[https://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach](https://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach)

[https://en.wikipedia.org/wiki/I_Am_a_Strange_Loop](https://en.wikipedia.org/wiki/I_Am_a_Strange_Loop)</comment></comment></comment></comment></comment></comment></comment>


Google Express - <AUTHOR> https://www.google.com/express/u/0/ <comment><USER2> Took me a few clicks to actually find the about page:

[https://www.google.com/express/about](https://www.google.com/express/about)

</comment><comment><USER3> So, another way for people to tell Google _even more_ about their lives?

</comment><comment><USER4> This has been around for years. Where is the news?</comment>


Finland offers free online Artificial Intelligence course to anyone, anywhere - <AUTHOR> https://yle.fi/uutiset/osasto/news/finland_offers_free_online_artificial_intelligence_course_to_anyone_anywhere/10206283 <comment><USER2> So do Coursera, Udacity, EdX, Apple, and (I assume) MIT.

I would say that we need a new AI course like we need a new Javascript framework, but education is different. Different people learn in different ways and it might be useful to have different courses.

I wish we could compare all the courses in some kind of overview to see what they do, how they compare, and how well people learn from them.

<comment><USER3> EdX in fact have several, depending on your goals:

[https://www.edx.org/microsoft-professional-program- artificia...](https://www.edx.org/microsoft-professional-program-artificial- intelligence)

[https://www.edx.org/micromasters/columbiax-artificial- intell...](https://www.edx.org/micromasters/columbiax-artificial-intelligence)

[https://www.edx.org/learn/artificial- intelligence](https://www.edx.org/learn/artificial-intelligence)

All free to take, you just pay if you want the certificates.

</comment></comment><comment><USER3> _hey want to make Finland the world 's most educated country in the field of artificial intelligence_

The way to do this is almost certainly to make it the world's most educated country in the field of linear algebra first!

<comment><USER4> It's actually likely pretty high up there.

</comment></comment><comment><USER5> This looks like a high level "What is AI" 'course'. Not really practical except for the manager or generalist trying to understand what AI is.

<comment><USER6> exactly! This course is made for non-technical people. We are planning to do a followup course later on with programming skills required. (I'm a member of the Elements of AI team)

<comment><USER7> When do you plan to do the follow up?

<comment><USER6> the plan currently is end of 2018/early 2019

</comment></comment></comment></comment><comment><USER8> Wow, this is awesome. This is a great way to help everyone take a step forward into the future. The public having a larger understanding of AI will be extremely important as it becomes a larger part of our lives.

</comment><comment><USER9> I'm always a fan of free educational tools, especially ones that cross traditional borders.

</comment><comment><USER10> There was a strong interest within our company about this course (I work in an agency in Helsinki). I'm curious if the authors of the course would be willing to share some stats with me: how many people are actively participating vs saying they will (for anyone with @companyname.fi emails). If it's possible, could some of the authors get in touch via my profile :)

</comment><comment><USER11> Nice that the Nokia dude claims the electricity phrase for himself...

</comment><comment><USER12> If you take the course, begin with the Finish in mind.</comment>


React-Spring Visualizer - <AUTHOR> https://react-spring-visualizer.com/ <comment><USER2> Really love the stylistic yet minimalist design of this.

Best part is being able to click the boxes under the viewport to change visualizations. My advice is to make them look more like tabs on the viewport.

</comment><comment><USER3> I'm glad it lets me put in nonsense numbers. Watching it break itself when friction is set to -1 is a delight.

</comment><comment><USER4> I wonder if the routing fidelity is necessary or maybe just a "create link to these settings" button will do the trick.

I played with the toy for a while and it ate up like 30 history entries. I ended up opening a new tab to get back to hacker news manually.

</comment><comment><USER5> This is incredibly rad, both from a design and a functionality pov. Nice work.

</comment><comment><USER6> Possibly the most misleading name of all time.

<comment><USER7> Fwiw it does basically exactly what I expected. Were you thinking the spring framework?

<comment><USER8> Yes, I guessed it was about visualizing dependency injection or data flow in Spring application ...</comment></comment></comment>


Updates on Servo - <AUTHOR> http://blog.servo.org/2015/05/24/twis-32/

<comment><USER2> Quote:

"We improved support for archaic pre-CSS formatting markup, as used on Hacker News and the website for the 1996 film Space Jam."</comment>


The IRS sent stimulus checks to 1M dead - <AUTHOR> https://www.politico.com/news/2020/06/25/irs-stimulus-checks-dead-people-339530 <comment><AUTHOR> Over 1 million dead people have gotten their stimulus checks, and my wife an I still haven't received ours.

If the IRS sends out checks pretty much every year relatively flawlessly, how did this get bungled so badly?

<comment><USER2> Lots of reasons. One common example, gov't assumes you're alive until the SSA says so. People file decedant returns to the IRS all the time for refunds/status and nothing happens until you notify SSA.</comment></comment>


Ask HN: We're still developing - A competitor has launched - what to do? - <AUTHOR>

We are still working on our product while a competitor product has launched and is getting traction from some top retailers already (we are in the retail ecommerce space). They do not have all the pieces we have so our platform is far better and we're mid way in development so we can't really cut scope now.
What do we do? Start selling with "product coming" promises? The product is in the large company space so the selling process takes a few months, so getting a headstart may not be a bad idea.
Thoughts? <comment><USER2> Things learned from building a best of class enterprise product and trying to beat out the competitors. We were the last entrant in the market.

(i) List all completed features. - Guarantee these will work now & compare & contrast with your current competitors. Preferably give them a testing environment after the demo.

(ii) List all features currently being developed. - Estimate when they will become available. Make sure you fudge enough, so that you don't shoot yourself in the foot.Share this road map during the sales cycle.

(iii) Request your clients for any features that are important to their business, that you have overlooked.

(iv) Make a list all future features including the ones from the above list - Request your clients to prioritize these and give them a date by which you'll have the estimates done and have built a product roadmap. Share the roadmap.

(v) Be in constant communication with the clients. Keep them aware of any changes that is happening to the roadmap.

With all this we got beaten up on pricing as the clients were comparing apples to oranges.

So we hired sales people with expensive hobbies, and watched them work the magic.

<comment><USER3> > So we hired sales people with expensive hobbies, and watched them work the > magic.

In case anyone misses the reference, there was a post on HN a while back about why you want salespeople to have expensive hobbies. It basically boiled down to this:

Sales staff get paid more if they make more sales; people with expensive hobbies need to get paid more; sales staff with expensive hobbies need to make more sales to fund their lifestyles, and will thus be more driven to do so.

</comment></comment><comment><USER3> It's rarely about being first to market. Apple didn't make the first MP3 player, Microsoft didn't make the first GUI, Google didn't make the first search engine. Stick with what you're doing; you can't be first, but you can be the best.

Personally, I would also keep in mind the 'competitor card'. 'Well, your competitor bought our competitor's version, and it's good, but if you go with us, you'll get these extra awesome features that'll help you get ahead of them' or whatever. Then again, that's a job for sales, not for development, and good sales people will know when to play it.

<comment><AUTHOR> Good point. Thanks.

</comment></comment><comment><USER4> Go sell your product now. Get some evangelists. The worst thing to do is wait, because unless your product is going to save someone time/money - there won't be a real value in switching for some nicer features if they've already put the effort into registering with your competition.

<comment><AUTHOR> I think you are right. Seems like we have to do that. Thank you.

</comment></comment><comment><USER5> How is their current marketing and recognition? It might be worth it to start up an early marketing strategy and at least out-market them before you actually can launch. I don't know about the retailers, but some of them may be willing to wait on purchasing a product if they knew something better was coming along later.

<comment><AUTHOR> I think you are right - and we're leaning towards that. Just get the conversation going so we can get some traction since the sales cycle will most likely be 3 months at least. Our product will be production ready by then.

My only worry is talking about products and someone really wants to go and we won't be able to right away.

<comment><USER6> I am not sure that your worry is warranted. If your sales cycle takes 3 months, it will be at least one month before anyone even decides that they want to "go". That should buy you some time.

I don't know about your product, but enterprises take a VERY long time to decide these things. And you can always stretch out the deal to buy some time.

</comment></comment></comment><comment><USER7> Learn from their mistakes. Look at the reactions from their customers, and make sure that you ship with their #1 wishlist feature and make sure that feature is emphasized.

Also ... "They do not have all the pieces we have so our platform is far better" This is dangerous thinking. People generally prefer the most minimal product that actually solves their problem -- only established users want more features.

If you can't cut (or postpone) features, can you ship an early closed beta to some "early adopters"? If people anywhere are using your software it will give the impression that it's right around the corner and people may delay purchasing. If you just say "coming soon" people will not believe that unless you have a track record.

<comment><USER3> _Learn from their mistakes. Look at the reactions from their customers, and make sure that you ship with their #1 wishlist feature and make sure that feature is emphasized._

This is a good point to emphasize. Let someone else be first to market and make all the mistakes. Learn from their mistakes and respond faster than they can and you can capitalize on their first-to-market advantage.

 _People generally prefer the most minimal product that actually solves their problem -- only established users want more features._

I'm not entirely convinced of this. People will tend to buy things with more features because it has more features that they might someday want. The key is complexity. If it's simple to use despite those extra features (or because of them), then they're a benefit. If they make the product harder to use or slower, it's a drawback.

In Japan, the cell phone industry is the logical extreme of this. People cycle phones at ridiculous intervals to get more and better features, most of which don't work well or at all, and all of which make the phone more complicated to use. Yet still, it's a status symbol that you paid for a non-functional accelerometer that your friend doesn't have.

</comment></comment><comment><USER8> Keep at it. If your product is better, you will win.

Try not to give those "coming soon" promises, you don't want to be under even more pressure.

Good luck

<comment><AUTHOR> The product is "much" better. However, once they get a few key customers - it's all about traction and they can sell others based on the first few. That's the worry here.

<comment><USER9> Just speculating:

I don't think customers buy "better", they buy "solution". They don't care about elegance or how many features you have. Just, "does it solve my problem?". If two things solve the same problem, it may then come down to "how easy" and "how much money".

On a different note: if you have a plan, stick with it (if you think it is the right plan). Your competitors may have just validated the market for you.

<comment><AUTHOR> Yes, they definitely have. They are getting traction - and fast.

I agree with they buy "solution" and even if better, they will stick with that old one for a while - which is why it's more important to get selling early I think.

</comment></comment></comment></comment><comment><USER10> What about your trusted customers? Do you have any customers you are working with to develop your product? If they still believe in your product, keep working hard on it. Release a version - with fewer features than you planned on - sooner. What do people think about this suggestion? It sounds reasonable to me but I'm basing it on others' advice (Steve Blank on customer development) and not on experience.

<comment><AUTHOR> We have 1. But a base version wouldn't work for them.

</comment></comment><comment><USER11> "we can't really cut scope now"

Why not?

<comment><AUTHOR> Because a) we're mid-way through all of the modules we're building. b) Those are the pieces that would differentiate our offering. If we didn't have those, it would be the same as the competition which means we're late in the game with almost the same product and no customers yet c) if we cut, we would have to start over again for the ones we left hanging - or at least have to do quite a bit of rework

Note: we have a team of 6 developers working on this, so it's not a 1 person thing.

<comment><USER11> I don't think you will get customers to ditch the competitors product they are already using for yours unless these extra features are a game changer for the customer. If you cut features and just work on what you need to be on par with the competitor you will just be a little later to market, and you can continue working on the remaining features. If you wait to finish your extra features, the competition will already be picking up those customers you could of had if you released early. Ultimately it depends on if those features are something you consider to be at the core of your business, if they are then maybe you are right.

</comment></comment></comment><comment><USER12> Just ignore them, and focus on your todo list. Assuming that your product solve a problem for your customers, most important is that you focus on just that now.

</comment><comment><USER13> What's your competitors site?</comment>


Is this a new kind of puzzle? - <AUTHOR> http://www.reddit.com/r/math/comments/chzzd/is_this_a_new_kind_of_puzzle/

<comment><AUTHOR> Also see:

[http://www.reddit.com/r/geek/comments/ci5bg/askgeek_is_this_...](http://www.reddit.com/r/geek/comments/ci5bg/askgeek_is_this_a_new_kind_of_puzzle/)</comment>


The Double Bind Theory: Still Crazy-Making After All These Years (2006) [pdf] - <AUTHOR> http://www.psychotherapy.com.au/fileadmin/site_files/pdfs/TheDoubleBindTheory.pdf <comment><USER2> "This state of affairs is known technically as the "double-bind." A person is put in a double-bind by a command or request which contains a concealed contradiction...This is a damned-if-you-do and damned-if-you-don't situation which arises constantly in human (and especially family) relations...

The social doublebind game can be phrased in several ways:

The first rule of this game is that it is not a game.

Everyone must play.

You must love us.

You must go on living.

Be yourself, but play a consistent and acceptable role.

Control yourself and be natural.

Try to be sincere.

Essentially, this game is a demand for spontaneous behavior of certain kinds. Living, loving, being natural or sincere—all these are spontaneous forms of behavior: they happen "of themselves" like digesting food or growing hair. As soon as they are forced they acquire that unnatural, contrived, and phony atmosphere which everyone deplores—weak and scentless like forced flowers and tasteless like forced fruit. Life and love generate effort, but effort will not generate them. Faith—in life, in other people, and in oneself—is the attitude of allowing the spontaneous to be spontaneous, in its own way and in its own time."

-Alan Watts, The Book on the Taboo Against Knowing Who You Are

<comment><USER3> !!

thanks!</comment></comment>


The software routing 260,000 grocery deliveries a week - <AUTHOR> http://ocadotechnology.com/blog/ocado-internet-of-vans/ <comment><USER2> I work for Ocado, and I've spent some time working on the routing system (although I don't work on it any longer).

Feel free to ask any questions and I'll try to answer them as best I can, without revealing anything I'm not supposed to reveal :)

<comment><USER3> what is the stack you use ? especially for the algorithm hotpath ? I'm not sure if you are using libraries like Gurobi or CPLEX.

<comment><USER2> The optimiser is actually written in pure Java.

The JIT compiler works pretty well, and with tools like JITWatch, Honest Profiler and the -XX:+LogCompilation -XX:+PrintAssembly options you can understand how the hot paths are running in a lot of detail.

For our current operation, the optimisers' servers run Ubuntu on bare metal in our own data centres. Of course, like in any large organisation we make plenty of use of virtualization and EC2 - just not for our optimisers at this point in time.

<comment><USER3> did you not try to do this on the GPU by any chance ? Especially using CUDA libraries. I'm wondering what is the state of art in this field.

<comment><USER2> Our current design isn't well suited to adaption to a GPU, because it branches a lot and the memory accesses aren't strided evenly. So we couldn't just plug our current code into a java-to-cuda compiler; we'd need to change the design.

So no, we haven't yet tested using GPUs.

<comment><USER3> Thank you for the answer. I was not aware that these kind of considerations impact the cpu vs gpu debate. I was under the impression that most cpu heavy computations can be ported to the gpu.

</comment></comment></comment></comment></comment></comment><comment><USER4> My buddy and I gave a talk about how we solve the same problem at RedMart. We're not as large as Ocado (yet?), but this video has more technical content: [https://www.youtube.com/watch?v=6fmFb3r7Tmg](https://www.youtube.com/watch?v=6fmFb3r7Tmg)

</comment><comment><USER5> Interesting talk on the subject from a data scientist at Instacart: [https://blog.dominodatalab.com/data-science- instacart/](https://blog.dominodatalab.com/data-science-instacart/)

<comment><AUTHOR> We've also looked at data science to solve the problem but found that a traditional approach still offers the best performance.

<comment><USER6> Can you define "traditional approach" please? :) What do you mean specifically?

</comment></comment></comment><comment><USER7> This is a similar problem to figuring out search results when you try to find an airline reservation. It's a problem people have been working on for almost 50 years and it still works, although there are a lot of likely shortcuts. I also remember we had some kind of system that tried to optimize pricing and schedules for airlines which which ran for days sometimes (this was in 2000 or so). I think modern hardware is much better and allow algorithms that are much more capable. I wonder how you test something this complex that is never actually done; how do you know its working optimally (or at least acceptably)?

</comment><comment><USER8> I don't understand why this is on the front page. It has almost no technical details, just a bragging piece.

</comment><comment><USER9> Took a couple classes in graph theory in college which was interesting because of the complexity involved in solving for optimal routes. We started with brute-force search and moved on to other shortest path problem algorithms like the ones mentioned here:

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

This article doesn't seem to add anything to the field.

</comment><comment><USER10> Pure advert. No actual tech content

</comment><comment><USER11> For someone quite interested in these kind of problems, what's the current best practice for solving these kind of problems? Not on this scale but still large enough that Google's built-in api for solving it (only 25 points allowed) can't do it.

<comment><USER12> 99% of their code will be ordinary CRUD plumbing, dealing with orders and integrating with other systems. The algorithmic code is the fun part, and they've had years to tune it.

This is just self-congratulatory PR, trying to persuade potential investors that's they're a hard tech company.

<comment><USER13> Ocado is an interesting case. Their public line is that they're a technology company that happened to end up delivering groceries. They invest a lot in automation and robotics - definitely a hard tech company:

[http://www.gizmodo.co.uk/2017/02/inside-ocado-discover- the-h...](http://www.gizmodo.co.uk/2017/02/inside-ocado-discover-the-hidden- robotic-intelligence-behind-your-online-shopping/)

This is not a vapourware start-up, they've been leading the grocery delivery business in the UK for years. That said, they have the same problem as Amazon in that they invest so much into RnD that they're not terribly profitable (about £10M on a $1Bn turnover).

That said, in this particular example I don't know how much their solution differs from Royal Mail (which uses fixed routes) or people like DHL, Fedex, et al. Routing isn't exactly a new problem and courier companies presumably have always had a lot of people working in operations research.

<comment><USER14> The missus uses Ocado, they really have their shit together in the UK on the logistics side (a field I work in but not groceries), the deliveries are on time, the process is slick and professional and the drivers are polite and helpful.

She swears by them, I mostly swear at the bill.

</comment></comment></comment></comment><comment><USER15> Good brag, but fix your https.</comment>


Alibaba Could Buy Yahoo for Free - <AUTHOR> http://www.bloombergview.com/articles/2014-09-22/alibaba-could-buy-yahoo-for-free

<comment><USER2> Google can buy alphabet for free too</comment>


Why Good Programmers are Lazy and Dumb (2005) - <AUTHOR> http://blogoscoped.com/archive/2005-08-24-n14.html

<comment><USER2> The idea that being a "dumb" programmer helps with debugging reminds me of a tactic I see people use on StackOverflow. Some programmer will post a problem they're having, and lots of ultimately unhelpful solutions will be suggested until someone else asks "what are you trying to accomplish?" and then it's suddenly made clear that the programmer's problem was being approached in the wrong way.

I've seen this happen so many times on SO, with good results, that it's become the way I want to think about other problems in life.

<comment><USER3> This is common enough on SO to have a name: the XY Problem.

[http://meta.stackoverflow.com/questions/66377/what-is-the- xy...](http://meta.stackoverflow.com/questions/66377/what-is-the-xy-problem)

</comment></comment><comment><USER4> In that regard, see the three classic virtues of a programmer - laziness, impatience and hubris. [http://www.cranked.me/2008/07/laziness-impatience- hubris-thr...](http://www.cranked.me/2008/07/laziness-impatience-hubris-three- great.html)

</comment><comment><USER5> Efficient != lazy Inquisitive != dumb

I agree with the overall gist of the article, but the title is obvious link- bait and his valid points have been twisted just to fit it.

</comment><comment><USER6> "a good programmer must be dumb. Why? Because if he's smart, and he knows he is smart, he will:

a) stop learning b) stop being critical towards his own work"

No. Just, no.

<comment><USER7> Exactly. That is pretty much the opposite of the Dunning–Kruger effect.

[http://en.wikipedia.org/wiki/Dunning–Kruger_effect](http://en.wikipedia.org/wiki/Dunning–Kruger_effect)

</comment></comment><comment><USER8> So being smart equates to not being able to put oneself into question ? Not the way I'm used to think about intelligence. Though, programming cultivates the habit of rethinking your premises, I think we can all testify.

</comment><comment><USER9> \- A paradoxical claim of "bad is good" in the title. Off to a good start.

\- The content is some neverheard's blog post with no substance to back up the claim. Getting there.

\- Analogies, personal stories, vaguely "motivational" Powerpoint lingo, rambling, self-contradictions... Bingo!

Yes, I'm sure this will be quite successful on the HN front page.

<comment><USER10> Your post adds far less value. Please leave the snark at home.</comment></comment>


José Valim on the Elixir Language, Concurrency, Iteration - <AUTHOR> http://www.infoq.com/interviews/valim-elixir

<comment><USER2> I've had Elixir on by backlog of languages to play around with for a while now. This weekend I actually got a chance to sit down and poke around for a while. It was really enjoyable, love the tight integration of pattern matching. The ecosystem surrounding the language also seems very nice: The REPL, the mix build tool, and the nice integration with unit testing, are all very attractive features of the platform.

I took the chance to write up my beginning experience playing with the language, trying my best not to look at the docs. You can find the write up here: [http://bjg.io/learning-elixir/](http://bjg.io/learning-elixir/)

There also seem to a bunch of existing resources for getting started:

\- [http://elixir-lang.org/getting_started/1.html](http://elixir- lang.org/getting_started/1.html)

\- [https://howistart.org/posts/elixir/1](https://howistart.org/posts/elixir/1)

\- [http://learnxinyminutes.com/docs/elixir/](http://learnxinyminutes.com/docs/elixir/)

<comment><USER3> I would also suggest this talk by Dave Thomas [http://youtu.be/5hDVftaPQwY](http://youtu.be/5hDVftaPQwY)

</comment></comment><comment><USER4> I started getting interested in Elixir, especially after seeing the amazing benchmark of Phoenix, built on top of Elixir >> [https://github.com/mroth/phoenix-showdown](https://github.com/mroth/phoenix- showdown)</comment>


2 major microbial groups found to use fermentation, not respiration, for energy - <AUTHOR> https://scitechdaily.com/two-major-microbial-groups-discovered-that-cant-breathe-may-predate-the-evolution-of-respiration/ <comment><AUTHOR> Ancestral Absence of Electron Transport Chains in Patescibacteria and DPANN

[https://www.frontiersin.org/articles/10.3389/fmicb.2020.0184...](https://www.frontiersin.org/articles/10.3389/fmicb.2020.01848/full)</comment>


What we learned getting Resque set up on Dotcloud (YC S10) - <AUTHOR> http://artchang.com/setting-up-rails-with-redis-resque-and-rescue

<comment><USER2> I've just started using Dotcloud for some Django projects, and I just want to say I absolutely LOVE how easy it is to set up apps, databases, etc, _despite_ the beta state and the limited documentation at the moment. Highly recommended.

<comment><USER3> Thanks for the kind words! Since the DotCloud team is furiously refreshing this page, now is a good time to ask questions and give feedback! We also have a brand new community forum: <http://support.dotcloud.com/forums>

Also happy to give out invites to fellow HNers!

<comment><USER4> Would love to have an invite as well, email in profile. Thanks!

</comment></comment></comment><comment><AUTHOR> Two quick updates I'm going to put in the blog post: Know that the server times are in UTC, so your cron schedule needs to be in UTC. Also you need the RAILS_ENV to be set to production in the scheduler as well as the worker.</comment>


Apple's churning of the gut - <AUTHOR> http://eliainsider.com/2013/01/16/apples-churning-gut/

<comment><USER2> You're stating as fact that this kind of reporting happens to Apple and not to other tech companies. But that has hardly been established. I often see dubious news stories about several of the companies on your list, and back and forth discussion about those stories. So I'd add a fifth explanation: You're seeing lots of these stories because you're following people who blog about Apple. If you're bored of bogus Apple controversies and want to see fewer of them, just stop reading the blogs of Apple pundits.

<comment><USER3> >> _So I'd add a fifth explanation: You're seeing lots of these stories because you're following people who blog about Apple_.

Is this your gut saying it can't possibly be true that Apple attracts lots of negative press mainly because it has been King of the Hill for so long, when it comes to fat profit margins and popularity?

I couldn't disagree with you more. Sure enough other companies get unjustified bad press every now and then, but you have to be blind to deny the fact that each and every website, even if it's only remotely related to technology, appears to be populated with people who can't resist the urge to slam Apple for whatever is the popular Apple-fail-du-jour.

It's not unlike the 90', when Microsoft was in the position that Apple is now. No matter what they did, it was bad, evil, anti-competitive, it sucked, they stole the idea, whatever. I'm was guilty of irrational Microsoft hate myself back then. Today, people almost feel pity for poor Microsoft, finally trying to innovate in the smartphone and tablet space, but failing spectacularly to attract people to their platform.

There's really nothing surprising here. In dutch, we have this saying that goes along the lines of 'higher trees catch most of the wind'. I think it has something to do with human nature. People envy success, especially when they don't understand it. Combined with a tendency to herd around the popular opinion, it's not hard to see how successful companies attract most of the bad press. In the last few years I've seen some of the most nonsensical arguments against Apple products you couldn't even make up yourself, almost go viral on the internet.

At some point in time some other company will take Apple's place as the big evil technology corporation that can't do anything right. Facebook would be a pretty obvious candidate, the moment they start getting more successful at monetizing their service, I predict they will become the centre of attention for haters and trolls.

<comment><USER4> > _"each and every website, even if it's only remotely related to technology, > appears to be populated with people who can't resist the urge to slam Apple > for whatever is the popular Apple-fail-du-jour."_

Is that because they actually hate Apple, though? Or is it just a function of the emotional attachment Apple creates?

Consider what we'll call "The Oprah Example".

Oprah doesn't remotely write or talk about technology that often. And far more people in Oprah's audience will have Windows PCs and Android phones than Macs and iPhones.

But Oprah is far more justified in talking about Apple. (And she does.) Because those people in her audience who have Apple devices likely have an _emotional_ bond with them. And they will appreciate a story about Apple. Whereas even those people with Android phones and Windows PCs in her audience almost certainly don't give a damn about Microsoft or Samsung. They likely don't even _know_ off-hand who manufactured their devices.

Not that Oprah herself parrots _component order_ stories. But it's the same mechanism in other places that do. People _care_ about Apple. Ergo they will actually read about Apple. Any number of blogs might have a grudge against Sony or Samsung or Microsoft, and repeat negative stories about those companies, but the fact that no-one really cares about those companies means that they necessarily fall flat.

So the "dog pile" on Apple that you perceive doesn't exist because people hate Apple for its success. It's because people have _emotional_ opinions about Apple and thus will actually read stories about Apple.

Indeed what you see as a dog-pile against, many people who dislike Apple see as a mindless cult that gets outsized press because the newspapers and hollywood are full-fledged devotees to the cult.

They're two views on the same mechanism: the emotional reactions Apple generates.

And the proof of this is as simple as looking to the way that Apple has _long_ commanded a slice of the public consciousness that far outweighed its marketplace relevance. It's only fairly recently that their user base was large enough to justify the press _they already had_.

<comment><USER5> _So the "dog pile" on Apple that you perceive doesn't exist because people hate Apple for its success. It's because people have emotional opinions about Apple and thus will actually read stories about Apple._

I don't understand the distinction here. It sounds like you're exempting "hate" from "emotional opinions". Please clarify.

<comment><USER4> The distinction is this: it's not the _writers_ motivations that makes Apple articles different.

A handful of people Hating Apple may well motivate them to write negative things about Apple. A handful of others may reblog it for similar reasons.

But all sorts of people hate all sorts of things for all sorts of reasons. And one can easily find examples of similar emotionally-driven negative articles about Sony, Microsoft, Google, etc.

Yet those other articles don't inspire the _response_ an Apple article does. They don't generate huge threads. They don't get reblogged much. They don't often generate many responses.

So Apple can't be different simply because of _writers_ motives.

No, it's different because of the way _readers_ react to it. And, specifically, the very large number of readers (historically out of proportion to Apple's significance) with very strong _emotional_ reactions (both for and against).

</comment></comment></comment></comment></comment><comment><USER6> >Apple was the underdog for so long and now that it is one of the biggest and most successful companies in the world, well, we can't root for them anymore.

Uh... I think the patent abuse, App Store censorship, and attempting to normalize a paradigm where one needs the hardware vendor's permission to run software have something to do with antipathy towards Apple.

</comment><comment><USER7> This article is the opposite of what I think it should be.

>I think the right answer is that Apple just fails to pass the gut test for most people.

This is no surprise. Apple holds no significant monopoly so AAPL is volatile. The stock is ripe for manipulation with a P/E that is far lower than many other tech companies while almost one-third of the company's value is in cash on hand.

The bigger issue for me is why this story has been so well covered by Daring Fireball, The Loop, MG Siegler and the rest of the Apple blogosphere? Do they really believe that they will affect general opinion of the stock or force an investigation?

What screams out to me is that this is about favoritismm but coming from intelligent people whom can deny it in a way that sounds reasonable to the average person.

<comment><USER8> > The bigger issue for me is why this story has been so well covered by Daring > Fireball, The Loop, MG Siegler and the rest of the Apple blogosphere? Do > they really believe that they will affect general opinion of the stock or > force an investigation?

You're surprised that bloggers who blog about Apple are blogging about Apple? What's the issue here, again?

<comment><USER7> No, it's one thing to talk about technology. It's another to mount a campaign about how the WSJ got the story wrong about stock prices when it will all be settled within a few days.

There are other issues that exist at Apple which are far more important.

I could say the same for any tech company but I expect more from those who pretended to be above it all.

<comment><USER8> > No, it's one thing to talk about technology. It's another to mount a > campaign about how the WSJ got the story wrong about stock prices when it > will all be settled within a few days.

Daring Fireball isn't a technology blog, it's an Apple blog. Apple's stock price is entirely relevant.

> There are other issues that exist at Apple which are far more important.

Are these issues being ignored? These bloggers tend to post more than once a day on a variety of Apple-related topics.

> I could say the same for any tech company but I expect more from those who > pretended to be above it all.

When have folks like Gruber _ever_ pretended to be above covering Apple news and stock prices?

</comment></comment></comment></comment><comment><USER9> > _" There is no way, the gut tells folks, that Apple can continue growing at > the current rate. There's no way! "_

Apple's stock price was on a parabolic growth trend. Sure, this time _could_ be different, but history says that such growth is unsustainable. Combine that with the "intangibles" (Jobs' death) and the recent price correction isn't shocking.

Why is every movement in Apple news? Because it's one of the planet's most recognizable brands and biggest companies. Those are things that make news.

</comment><comment><USER10> It goes both ways.

Until recently, there were an avalanche of positive stories about Apple. Some of it are overstated.

What did the author think of too much positive news about Apple back then? He's only reacting now because it's negative.

</comment><comment><USER11> So far as the stock value is concerned, Apple's peak stock value assumed a continued high rate of growth.

I don't know if that's possible.

In the last few years, Apple dominated (practically created) two product categories: digital music players and smartphones.

If Apple is going to keep growing like this it needs something bigger than the iPhone. What's it gonna be? An iTV? An iCar, a complete line of iKitchen appliances? A Buckminister Fuller-style iHouse?

I just don't see how they can find an opportunity like that without losing focus.

<comment><USER12> Did it assume growth, though? Even at its peak, their P/E ratio was similar to companies like Microsoft, GE, and IBM. If they just sustained their current profitability they'd still be well worth the peak price and more. One can certainly make arguments about whether they can even sustain, but that peak price didn't require continuing levels of growth similar to the 2007-2012 period.

</comment></comment><comment><USER13> >What interests me more is why does this stuff keep happening in Apple's name?

It's very similar to politics. Apple are the Republicans of tech in that every minor story is major news, all dirty laundry aired by journalists, bloggers, and tweets, and mockery where possible.

<comment><USER14> Strange analogy. That happens for all politicians regardless of party. Example: Anthony Weiner

</comment></comment><comment><USER15> The only option that the author doesn't explore, is the possibility that the WSJ author may be correct in saying that the more robust Android ecosystem is gobbling up market share.

<comment><USER16> Or even more blandly: Apple overshot estimates for the holidays and has stock on hand they have to sell. There doesn't need to be any "falling off a cliff" or "gobbling up" to explain this. Orders in the just-in-time manufacturing world have always been volatile. That they haven't for _Apple_ is simply because of Apple's extremely rapid growth. Extremely rapid growth isn't sustainable long term. And they're finally leveling off.

</comment></comment><comment><USER17> The author forgets one other factor that has become significant: the death of Steve Jobs.

So it's the "law or large numbers" and the "doomed without Steve" arguments that impact the news of Apple these days, but hopefully some of that will fade with time.

<comment><USER7> AAPL has seen serious fluctuations during the Jobs era as well when everyone thought he was healthy. The day that Jobs showed off the iPad the stock had a serious drop as well. The same goes for the day he shoed off the Macbook Air as well.

In fact, Apple has better The Streets for most of the past six years.

</comment></comment><comment><USER18> This thought just occurred to me. Most companies in the world, the people who care about mundane reports on the company are a subset of the people who own shares in them. With Apple, it's the other way about - the share owners are a small subset of the people who care about these news reports.

</comment><comment><USER19> blogger complains about linkbait apple stories in a linkbait apple story :)

</comment><comment><USER20> >What interests me more is why does this stuff keep happening in Apple's name? No one comes out and says this crap about Samsung, Google, Nokia, RIM, Microsoft or any other big name in technology. It's all Apple, all the time.

Err what? I've seen this happen to every company on that list.

For example, lets take Nokia. Three months after launching the Lumia 900, they discounted the price on contract at AT&T from $99 to $49. This led to a huge cacophony all over the internet with a lot of publications reporting "Nokia discounts phone by half", totally ignoring the fact that it was on contract price, so the price discount was closer to 10% and was totally normal. There was no such hype when other Samsung, HTC etc. phones were dropped in price as part of the normal pricing cycle of such phones.

[http://www.telegraph.co.uk/finance/newsbysector/mediatechnol...](http://www.telegraph.co.uk/finance/newsbysector/mediatechnologyandtelecoms/telecoms/9402618/Nokia- cuts-Lumia-900-price-in-half-just-three-months-after-launch.html)

Nokia, RIM and Microsoft are some of the most beat down companies in analysis and news. The "news" is universally junk and has more to do with attention grabbing headlines and flamebait, regardless of the companies involved.

I think the author is suffering from a huge selection bias.

<comment><USER21> Given the age of the blogger, I'm kinda surprised he so easily dismisses all those years of M$ bashing in the press.</comment></comment>


A query had to go - <AUTHOR> http://activityclubapp.tumblr.com/post/161511428077/a-query-had-to-go <comment><USER2> It should be count(*), not count (activity_type_id), because count(expressions) evaluates expression for every row returned, whereas what you actually want is the total number of rows (which also happens to be what you get because activity_type_jd always evaluates to true.

Then, I'd try an INDEX(user_id, activity_type_id) on activities. InnoDB only uses a single index per table IIRC, and that would mean reading the entire table every time.

Lastly, and I'm not sure if this makes a difference, but it feels wrong to specify the activities.user_id = #{id} in the ON clause. It really should be in WHERE... That may not change anything, or it could cause some really bad cross products currently being produced as intermediate results.

<comment><USER3> > Lastly, and I'm not sure if this makes a difference, but it feels wrong to > specify the activities.user_id = #{id} in the ON clause. It really should be > in WHERE... That may not change anything, or it could cause some really bad > cross products currently being produced as intermediate results.

Haven't really used mysql in recent years (6+), but I remember once optimizing a query with about 8 inner joins, grouping and a very long where statement. After setting up all the indexes it still didn't perform as we hoped. Moving some of the conditions up into the ON parts just like in that blog post drastically improved performance. It seemed like in the naive approach, mysql really did all the joins first and only in the end started filtering. I was quite surprised that wasn't handled by the query optimizer, but maybe that has improved since then.

<comment><USER4> I've been consistently surprised by how little optimization MySQL does on joins. As of 5.6, it didn't even eliminate join clauses that weren't referenced in either the select or where clause which should be a pretty basic optimization and one whose absence hurts a lot given MySQL's nested loops join algorithm.

</comment></comment></comment><comment><USER5> Disclaimer: I work on this project w/ the author.

The author writes about how he used this system to solve a case of a slow query. However, this is really sort of the wrong query to illustrate why we built this. It's more of a "oh hey look since we already have this data super fast in this other system, lets just use it."

What the system does is allow us to arbitrarily summarize at whatever granularity we want, any second, to any second.

For example we can ask it to summarize January 4th at 11:22:02 to March 1st at 16:22:09, and so however many writes happened during that time at any second are tallied up very quick, because of the way the data is stored. So even though lets say during this 3 month~ period you have 10,000,000 writes for one user some that say "add 3" or "remove 4", you will only query at a second granularity around the edges, and the middle you will query whole day, or month buckets.

Another way of explaining the point of this system is that it allows us to really quickly (well under 1ms) summarize any data in the past N days (N usually equals 120) from any start to any stop point we want, using any granularity we want, and we can do it concurrently and generate this for 1000 users at a time and it all can happen in 30-50ms. Considering that the underlying data is recorded at second granularity, and can be retrieved at that granularity and automatically expired when this granularity is not needed, redis is the right tool for the job here. To accomplish this in pure sql you would have to log all writes you make to the table, and query this change logging table in a similar way. So not only would this add a lot of overhead to the database as a whole, but a lot of churn to remove the lower granularity when its not needed.

We will be polishing the system more over time, and more blog posts will come out when we release some of the client code ;)

</comment><comment><USER6> I think they could just have tried optimizing the query? My knowledge could be out of date, but I read that the problem with Limit is that it is applied on the end. Meaning their original query will happily take all available results, sort them and then return the first 9. If normal values for freq are known, a simple WHERE freq > X could have helped.

That might also make the join less painful, right? Additionally, I think there might be a logic issue with the query itself, but I can't fully wrap my head around it.

Also, activities.user_id = #{id} smells like an SQL injection. But maybe that's just because of the simplification for the blog entry, or id not user chose-able. Still.

<comment><AUTHOR> hey feel free to checkout the golang code here [https://github.com/activityclub/pointspaced](https://github.com/activityclub/pointspaced) it's way more versatile than sql for our needs. BTW the #{id} we call .to_i on it first so ruby will make that 0 if it's a string with a single quote or something.

<comment><USER2> I've had only a cursory look, but it really feels as if you're reinventing database indices.

Indices are based on the same logic, i. e. "99% are reads, let's try to do more work on writes".

Redis is great. But to be honest: so is MySQL. If you give MySQL enough RAM and create the right indices, you can easily get to 6-digit numbers of queries per second.

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

</comment></comment></comment></comment><comment><AUTHOR> hey mods, we had a Tumblr issue, can u edit link to [http://activityclubapp.tumblr.com/post/161513427912/a-query-...](http://activityclubapp.tumblr.com/post/161513427912/a-query- had-to-go-this-entry-is-our-first-entry)

</comment><comment><USER7> Working link: [http://activityclubapp.tumblr.com/post/161513427912/a-query-...](http://activityclubapp.tumblr.com/post/161513427912/a-query- had-to-go-this-entry-is-our-first-entry)

</comment><comment><USER8> Looks like a page had to go as well. (404)

</comment><comment> default-kramer I don't have MySQL handy, but this query doesn't even look like it should work. It groups by "activities.activity_type_id" but then includes "activity_types.*" in the select list.

Unless MySQL is smart enough to do something like "implicit grouping" where if you group on the primary key it knows that all other columns of that table could also be included in the group... in which case I really should give MySQL another chance!

<comment><USER9> I believe MySQL does exactly this, but it's been a number of years since I worked with it in any depth.

<comment> default-kramer Ah, I found it. It turns out if you include nonaggregated columns it will just pick one value from the group arbitrarily.

[https://dev.mysql.com/doc/refman/5.5/en/group-by- handling.ht...](https://dev.mysql.com/doc/refman/5.5/en/group-by- handling.html)

</comment></comment></comment><comment><USER10> Just add an index or summarise periodically into a summary table.

</comment><comment><USER11> 404\. Link dead?

<comment><AUTHOR> [http://activityclubapp.tumblr.com/post/161513427912/a-query-...](http://activityclubapp.tumblr.com/post/161513427912/a-query- had-to-go-this-entry-is-our-first-entry)

</comment></comment><comment><USER12> Four O Four

</comment><comment><USER13> 404</comment>


What will VCs fund next? (interview with Bain VC) - <AUTHOR> http://itmanagement.earthweb.com/erp/article.php/3669106 <comment><AUTHOR> His quote about what they're looking for first dealth with a strong team that could change plans as necessary, and then this, about going after larger markets:

"You also need a large market potential, so the area that you are going after has to be worth going after. There are a lot of businesses out there that are niche businesses that make wonderful companies, but relatively small companies and not the types that require venture capital investment."</comment>


Easy Retina Ready Images with SCSS - <AUTHOR> http://37signals.com/svn/posts/3271-easy-retina-ready-images-using-scss

<comment><USER2> A critical thing to remember is that this can become very inefficient if you are using it in many places, as sass's implementation currently just pulls the media query repeatedly out of the current selector, rather than looking through and combining media queries into blocks for each resolution. The author left a super important comment on the article which you should use if you are actually planning on using this in production:

"You can get media query combining right now w/ sprockets using [https://github.com/aaronjensen/sprockets- media_query_combine...](https://github.com/aaronjensen/sprockets- media_query_combiner)

<comment><USER3> When you say ineffecient, what is the performance penalty for wrapping hundreds of rules with their own media query for each? I would be surprised to see it make any noticeable difference at all when gzip is enabled.

</comment></comment><comment><USER4> I think -webkit-image-set is a much better approach.

</comment><comment><USER5> Yeah lets fragment the web like it's 1999.

Apple did after all invent the HTML. Lets make it Apple-specific.

</comment><comment><USER6> This works nicely for background images. For <img src="..."/> tags, I use srcset, and then shiv browsers with javascript:

<https://github.com/jcampbell1/jquery-srcset-retina-polyfill></comment>


No password is safe from new breed of cracking software - <AUTHOR> http://www.salon.com/2013/09/02/no_password_is_safe_from_new_breed_of_cracking_software_partner/

<comment><USER2> I'm sorry, but this latest spree of articles is nonsense. There is nothing wrong with a _randomly_ constructed password or passphrase, and each of these articles conveniently forget to mention that the tools are only this effective when the service provider doesn't do password authentication properly (e.g. by using bcrypt or scrypt with a high work factor rather than MD5 or SHA-1 to store the password 'fingerprints.')</comment>


Getting Women to Speak at Your is Hard. So What? - <AUTHOR> http://www.dogsandshoes.com/2012/06/getting-women-and-other-under-represented-people-to-speak-at-your-conference-is-hard-so.html

<comment><USER2> Title is missing the word "conference". Makes it a bit hard to know what the article is talking about.

</comment><comment><USER3> I really like the positioning of the problem as a technical issue, or a series of bugs. FIX ALL THE BUGS [in society].

<comment><USER4> I really hope it's not premature optimization. I'd rather see a good speaker lineup as a first priority and a diverse lineup coming second. I really don't care WHO presents, as long as the talk is good. I'd really hate to have to sit through bad talks just because somebody felt like they would have to favor diversity over content.

<comment><USER5> I don't think she's suggesting you favor diversity over content. Note that the bugs she mentions include, "men are better speakers than women".

<comment><USER4> Oh, I didn't mean to imply that.

I just wanted to point out that trying to fix this bug 'up front' might be a timesink. I think for conferences, you should try to optimize the 'details' once you're at a point that your product could 'ship' :)</comment></comment></comment></comment>


Ask HN: Editor used by ninja devs. - <AUTHOR> YC startups developers : what is the text editor you use for modern Web development in general (php, ruby, python, javascritp, frameworks) and why? <comment><USER2> I'm not a ninja dev, so I frequent between a few editors. Mostly using gedit now w/ a few plugins but - scite is also good but you need to customize it a lot before it makes sense.

</comment><comment><USER3> Emacs, Vim, IntelliJ IDEA, Xcode, BBEdit

</comment><comment><USER4> Emacs. Programmability.

<comment><USER5> I sincerely hope that there's little overlap between the members of the Most Holy Church of Emacs and those heretics who like to affect terms like "ninja" and "rock star".

TextMate seems to be rather popular in those camps (note: not meant as derogatory remark against TM users. Use it myself, and my last dalliance with ninja-ism involved tightey-whiteys, an mask improvised out of a towel and rubber shuriken)

<comment><USER4> Ha! Yeah, Emacs isn't sexy enough for the "cool" kids. Hahaha.

Personally, I don't even notice all of those stupid adjectives any more. They are totally content-free.

</comment></comment></comment><comment><USER6> Linux: vi

Windows: Editplus</comment>


Building a simple multi-player game using node.js, backbone.js, & socket.io - <AUTHOR> http://tech.loku.com/2012/04/25/tic-tac-node-part-iii-putting-it-all-together/

<comment><USER2> Thanks for this great blog post. It's good to see such articles with real-life use cases for node and socket.io. And perfect timing: I was about to write some multiplayer sound-based game with node

</comment><comment><USER3> Thank you very much, I've been looking for this for so long!

</comment><comment><USER4> shoutout to Loku!</comment>


OCaml: Polymorphism - <AUTHOR> http://haifengl.wordpress.com/2014/07/08/ocaml-polymorphism/

<comment><USER2> I'm quite happy to see that every week one or two quality OCaml articles are posted on HN and lobste.rs. OCaml doesn't have the general appeal of JavaScript, the innovation factor of Rust, the get-shit-done reputation of Go, but it deserves to be more widely known.

<comment><USER3> It doesn't have the get-shit-done reputation of Go, but it should. I personally find that OCaml is a very pragmatic language.

<comment><USER4> What's the story for building a little HTTP server or command-line tool ? Go has a great batteries-included standard library.

<comment><USER5> > building a little HTTP server

        opam install cohttp

> command-line tool

        opam install cmdliner

> Go has a great batteries-included standard library.

OCaml doesn't, but there are good stdlib replacements, and its package manager is really nice.

<comment><USER6> I tried to use Opam on Debian Unstable a few months ago. It was 1.1.0.

When requested to install a second package with overlapping dependencies as a previous package, it would try reinstalling _all_ dependencies, including previously installed ones, and would fail.

That is, in my book, an epic fail for a package manager, let alone a supposedly >1.0 version (if that even means anything today). I'm still annoyed about that. Searching online found recommendations to get the latest version from Github.

1.2.0 has since been released and included in Debian. I keep meaning to give it another go, but I must admit being wary after that first experience.

<comment><USER7> > When requested to install a second package with overlapping dependencies as > a previous package, it would try reinstalling all dependencies

This was unfortunately a mistake made by upstream Debian. Rather than reimplement the constraint solver badly, we use the Aspcud external solver. An upgrade of Aspcud changed its command-line interface, and OPAM 1.1.0 wasn't upgraded to OPAM 1.1.1 at the same time (which detected the new version of Aspcud and worked with it).

A similar issue (to do with the libdose interface) has been in the Ubuntu package ages and not addressed by upstream despite a detailed bug report: [https://bugs.launchpad.net/ubuntu/+source/opam/+bug/1401346](https://bugs.launchpad.net/ubuntu/+source/opam/+bug/1401346)

> Searching online found recommendations to get the latest version from Github

What else could we recommend?

It's really frustrating to know that a source-compiled OPAM works fine, but that the packaged binary versions are broken and our only recourse is to wait six months for the next OS release of Ubuntu. On the bright side, the OPAM 1.2.x series has been very stable and is now making its way upstream, so this is hopefully a temporary issue.

<comment><USER8> That explains a lot. I thought opam was behaving better now, than I recall it did at some random point in the past.

I'm really grateful to everyone doing all this work. This is a typical example of the kind of "excitement" mixing distro package managers and language package managers can lead to. The only recourse is to file a bug, maybe provide a backport if feasible, and move on -- and have everyone (package maintainers, distros) be a little wiser, and (hopefully) everything working on the next release.

Anyway, I see I have opam in my ~/bin -- so clearly I've compiled it myself at some point. No wonder, as I'm still running stable on this laptop:

[https://packages.debian.org/search?keywords=opam&searchon=na...](https://packages.debian.org/search?keywords=opam&searchon=names&suite=all&section=all)

Maybe there should be a note in the wiki about it, although it should be resolved when jessie is out?:

[https://wiki.debian.org/OCaml](https://wiki.debian.org/OCaml)

(Yeah, I know, it's a wiki. I could just add it. I don't feel quite confident enough to go and clutter such a short little page, though. Different if there's a page where "someone is wrong on the internet".)

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> All of them.

But the one I like the most is Parametric polymorphism because it tends to make algorithms generically available to anything.

And the one I like the least is subtype polymorphism due to it's reliance on inheritance with all it's attendant problems. The exception being for the sub- genre of "interface" polymorphism. Which doesn't really exist in C++. However when it does exist such as in languages like Go, Java, or C# then it fixes almost all of the problems that tradional subtype polymorphism has by taking inheritance completely out of the picture.

<comment><USER10> OCaml models "interface" polymorphism using an extension to parametric polymorphism called row polymorphism ([https://realworldocaml.org/v1/en/html/objects.html](https://realworldocaml.org/v1/en/html/objects.html)), which lets you avoid subtyping even for interface types.

</comment></comment><comment><USER11> Another kind of polymorphism that's way underappreciated is what Qt calls "static polymorphism" ([http://doc.qt.digia.com/qq/qq13-apis.html#staticpolymorphism](http://doc.qt.digia.com/qq/qq13-apis.html#staticpolymorphism)).

This is just a fancy word for naming stuff consistently instead of trying to shoehorn constructs to have some kind of formal language-aware relationship via abstract methods, overloaded methods, etc., which sometimes just increases coupling/complexity with no real benefit.

<comment><AUTHOR> Interesting. It is more a design pattern rather than a language thing. But it is always good to design a consistent API across similar but not related classes.

<comment><USER11> Agreed, with all languages I'm aware of this is purely a design concern, outside the scope of language specification. However I'm currently working on a library that relies heavily on this so-called static polymorphism, so you can imagine what a pain it is whenever I do a major refactor. Without formal relationships between classes, methods, etc., it's much more of a manual and error-prone process, as far as introducing inconsistencies in the API. This has led me to ponder some language-level (or even just IDE-level) ways to specify loose relationships between disparate constructs that would make such iterative API development easier. No brilliant insights yet though. :)

<comment><AUTHOR> Structural subtyping are mostly close to static polymorphism. After all, we just don't like inheritance, not dynamic polymorphism. Besides, interface and trait are not really inheritance although closely related.

</comment></comment></comment></comment><comment><USER12> It would be cool to see a "layered" language. By this, I mean a language that has no typing at its lowest level, but you can add it as a library on top of the base level. Then you can add stuff like automatic resolution of calls, etc., as another abstraction level. Of course, you could also add other rules instead of typing. For example, you could pepper your programs with arbitrary proofs, etc., and this could be directed by yet another library on top of your program.

Perhaps I'm dreaming. But it sounds like useful to me, as there are so many languages that are almost similar, and yet are slightly different in the way they handle typing and things like polymorphism. It would seem to me that those languages could all share a common base.

<comment><USER13> Perl is dynamic enough to support this.

See [http://search.cpan.org/~ether/Moose-2.1403/lib/Moose/Manual/...](http://search.cpan.org/~ether/Moose-2.1403/lib/Moose/Manual/Types.pod) and [http://search.cpan.org/~ether/Moose-2.1403/lib/Moose/Manual....](http://search.cpan.org/~ether/Moose-2.1403/lib/Moose/Manual.pod)

Competing type systems, competing Object systems, and enough internal run-time rewriting to do whatever it is you want.

See also [http://search.cpan.org/~smueller/Filter- Simple-0.91/lib/Filt...](http://search.cpan.org/~smueller/Filter- Simple-0.91/lib/Filter/Simple.pm) for a simple rewriting filter, and the Acme namespace for all kinds of fancy experiments.</comment></comment>


Web Hooks and the Programmable World of Tomorrow - <AUTHOR> http://www.slideshare.net/progrium/web-hooks-and-the-programmable-world-of-tomorrow-presentation <comment><USER2> Wow this is a really detailed and thorough presentation.

I think web hooks really are the next step in the progression of the web. Feeds and most APIs are very "one-way," once web resources are actually able to initiate exchanges/transactions, we are undoubtedly going to start seeing some really exciting stuff.

</comment><comment><USER3> Just went through this presentation. A valuable read for anyone who is not quite sure what Web Hooks are. I never had the chance to really look into them and this told me tons.

Also bookmarked a few cool services mentioned within it. Awesome stuff

</comment><comment><USER4> First saw these in Github preferences.

Immediately groked the value.

Nice to see it put into context.

</comment><comment><USER5> yay to progrium!</comment>


Previously reported Tesco security shortcomings being investigated - <AUTHOR> http://www.theregister.co.uk/2012/08/21/tesco_ico/

<comment><USER2> What's the betting that the developers brought up the plaintext password problem at the time and were overruled?

I've lost this argument with PHBs in the past. They want to be able to send password 'reminders'. Sometimes they want to be able to look up users' passwords too.

Once they've made the decision to misfeature like this, _nothing_ will change their mind: that would show weakness or fallibility.

I bet there's a developer somewhere in the UK right now who's glowing with a warm sense of I-told-you-so.

</comment><comment><USER3> This is interesting, because it shows up the culture of Tesco as a "cover it up" rather than "do something about it" organisation.

It didn't use to be. Time to sell your shares.

</comment><comment><USER4> He wasn't "singling out" Tescos. I'd like to know who these unsourced critics are. Looks to me like another example El Reg inserting a bit of misinformation in their reporting...</comment>


Parents' Math Anxiety Is Contagious to Their Kids - <AUTHOR> http://well.blogs.nytimes.com/2015/08/24/square-root-of-kids-math-anxiety-their-parents-help/ <comment><USER2> Another thing is that even very basic math concepts can be hard to explain in a way that makes sense to kids. For example, if you have to explain why multiplying unlike fractions works one way whereas adding unlike fractions requires an entirely different procedure, lots of parents have no idea other than "that's just how I learned it."

The transcripts included in the research paper "Mathematics in the Home" (PDF: [http://www.researchgate.net/profile/Nicole_Else- Quest/public...](http://www.researchgate.net/profile/Nicole_Else- Quest/publication/222680508_Mathematics_in_the_home_Homework_practices_and_motherchild_interactions_doing_mathematics/links/0a85e530ca35b49b3b000000.pdf)) are really telling. Parents who are comfortable with math will tend to ask their kids questions and give little hints when they're stuck, whereas parents that are uncomfortable with math will tend to just blurt out the solution whenever things are taking too long, or encourage strict adherence to one particular heuristic for finding a solution. Over the long haul, the result is that mathematics will start to look like just one long arbitrary list of rules. Of course, that's no fun, and so kids of mathophobes become mathophobes themselves.

Plenty of help available, though, for people who do want to help their kids: "Help Your Kids with Math: A visual problem solver for kids and parents", "Math Power: How to Help Your Child Love Math, Even If You Don't", "What Can I Do to Help My Child with Math When I Don't Know Any Myself?"

<comment><USER3> A deeper problem is that math is almost always taught as a list of rules in the first place, frequently by teachers who do not themselves understand the underlying concepts. Teachers who only remember the procedures can of course only teach procedures. Most adults don't even remember any procedures, since they have no need to in daily life.

This condemns children to repeat the cycle. They (completely rationally) decide that they're just 'not math people' because they can't follow lists of arbitrary seeming steps to do something that no one they have ever met ever actually does in daily life. And some of them grow up to be teachers themselves.

<comment><USER4> > A deeper problem is that math is almost always taught as a list of rules in > the first place, frequently by teachers who do not themselves understand the > underlying concepts. Teachers who only remember the procedures can of course > only teach procedures

Sigh, your statement reminds me of one time when I was in 6th grade geometry and was asked to complete this one proof. The problem was intended to get us to apply a concept we had been taught verbatim, but I couldn't remember it well and so I completed the proof a different way by extrapolating other basic concepts we had gone over into a method we had not been taught. I remember feeling very proud of myself when I finished, as I had created something which in my 12 year old eyes was a "novel proof". I ended up being given 0 points on the problem because I did not complete my proof using cookie cutter methods we had been taught (even though my proof was correct and it was not specified that I use a particular concept in the instructions).

I remember complaining to my teacher about how this was unfair and she kept saying something akin to "well you didn't do the problem the right way". The incident pretty much killed any interest I had in math, which wasn't rekindled until I stumbled upon machine learning recently in my 20s.

<comment><USER5> That kind of story makes me irrationally upset. That's horrible — killing a child's interest in math because they didn't do the problem the "right way". It's completely antagonistic to the spirit of the field. Teachers shouldn't be teaching subjects if they don't understand them.

<comment><USER6> Its these kind of experiences that I want to learn to teach my child to make it through.

There are a lot of other people out there who will unknowingly be very discouraging, to both children and adults, but their opinions have no bearing on our ability to learn. I remember being in music class in grade 1 and it was my absolute favorite class. Near the end of the year I was told that I wasn't very good at singing by my teacher. I never tried to sing again, but I learned later that I have good pitch and a decent voice. I am not really interested in singing now, but I might have learned a different set of skills if I didn't avoid it.

Is there a way that I could have been prepared so that being told by the person I looked up to for validation, that I was no good wouldn't make me stop trying to improve?

I don't know about that, but if there's a way to teach that, it would definitely be a good lesson. It would certainly be nice if teachers didn't do things like that, but even if you could guarantee they didn't, you won't stop the bullies or the critics or anyone other hater as you get older.

<comment><USER7> As they say, don't let your schooling get in the way of your education.

To the grandparent: I don't think getting upset is at all irrational.

</comment></comment></comment></comment></comment></comment><comment><USER8> And, likely, vice-versa. I was struggling with modulo artihmetic in 7th grade, and came home and explained so to my mom. She said 'It's like a clock', and I got it immediately.

<comment><USER9> My mom was the same way. I remember a particularly challenging (to me) elementary school word problem, involving a fictional system of currency. She went to a box of Trix cereal, we decided which cereal pieces corresponded to which fictional currency units in the word problem, and then we started doing transactions with the cereal, until I finally figured out the answer to the problem.

I found out later that she hated math, and thought she was bad at it (she really wasn't, but that's another issue entirely...). However, she never let me see that, which was fantastic.

</comment></comment><comment><USER10> I smell a Blank Slate Fallacy.

Math talent, like other intelligence, is inheritable. So until you've pried apart nature and nurture, the simplest assumption is that these kids are bad at math because they don't have much talent for it.

Google Turkheimer's Three Laws of Behavior Genetics for more on this often neglected field.

<comment><USER11> Indeed, well said. Seems just as plausible, if not more so, that the anxiety is a symptom of poor familial aptitude for mathematics than the cause itself. But that's a thoughtcrime these days, so best not mention it ...

<comment><USER12> But until we know something provable about genetics and mathematical aptitude this line of thought is just hand-waving. You still don't know any better than anybody else why somebody is having a hard time with math.

<comment><USER11> That's why I said it seems "just as plausible" as the alternative. Its the article that's making the more definitive statements, not me. Besides, I think there's a reasonable amount of science that makes the argument for genetics over nurture quite compelling, but 20 years of malpractice and misdirection in the social sciences obfuscated that.

</comment></comment></comment></comment><comment><USER13> I wonder whether there is anything specific to Math in this, or whether we're looking at a broader trend, which might perhaps be phrased as "Parents' academic anxiety is contagious to their kids"? Or maybe even "Parents' anxiety is contagious to their kids"?

Does this work the same way for parents who aren't comfortable talking or reasoning about (for example) history? Or literature? Or is math a special case that works differently from other subjects taught in schools?

There's a useful note in the article that maths-anxious parents didn't affect their children's reading ability. But it'd be fascinating to know whether (for example) poorly-literate parents have an effect on their children's reading ability, independent of other factors.

<comment><USER14> Or what about "mathy" parents that show anxiety for the soft sciences?

<comment><USER15> Is soft science anxiety a thing?

<comment><USER16> Anxiety about writing or public speaking is. Not quite the soft sciences, but maybe close. (I think "outright dismissal" of the soft sciences is more likely than "anxiety" and maybe that's the point you were making.)

</comment></comment></comment></comment><comment><USER17> > So much for good intentions. The more the math-anxious parents tried to work > with their children, the worse their children did in math, slipping more > than a third of a grade level behind their peers.

OK, assume they found a negative correlation between grades and the amount of help of the parents. I'm not buying this explanation. Sure, if your kid has worse grades then you help him/her more on the critical subject.

<comment><USER2> This is the study I believe they are referring to: [http://cogdevlab.uchicago.edu/sites/cogdevlab.uchicago.edu/f...](http://cogdevlab.uchicago.edu/sites/cogdevlab.uchicago.edu/files/uploads/Maloney%20et%20al%20\(2015\)%20Intergenerational%20effects.pdf) (PDF)

> we tested the interaction between parents' math anxiety and the frequency of > parents' homework help while controlling for students' grade, gender, > beginning-of-year math achievement, and beginning-of-year math anxiety

So the study controls for baseline performance. It's definitely possible that some selection bias remains, but it looks like a reasonably well-executed study on a large sample (438 children) and I wouldn't discount the results out of hand.

</comment></comment><comment><USER18> Aren't practically all of parents' anxieties contagious to their kids?

</comment><comment><USER19> My wife and I homeschool our kids. My wife and I were also both homeschooled. We both did Saxon math through highschool. For me it was hard, boring and great. After about 9th grade I basically just opened up the textbook and worked through the thirty or so problems every day. They were repetitive lessons with a short paragraph about the concept and how to do an example problem or two. There was not much detail or explanation in the textbook. This forced me to work out the underlying concepts myself and I knew trigonometry, algebra and basic mental math better than most of my peers by the time I went to college.

My wife is more of a visual hands on learner and suffered through the same text books. In college she had a series of bad professors (like, cancelling class because the professor had a hangover bad) and this just cemented her view that she was bad at math.

All that long exposition is to say that people learn different ways and a "bad" method may result in a good outcome. Learning is a complex interplay of teacher, student, material and presentation that can be different for every person.

When I teach my kids I like to have them all in the same lesson even though they are different ages and doing different levels of work. The primary purpose of this is to just talk about math, make it normal to think and reason about it and show that it's not scary. Math concepts are often taught as a series of ever increasing obstacles to be jumped over. You jump over them until you reach a ten foot wall that you just can't summon the mental power to leap over. Then you are bad at math.

But math is more like a hike. you start out in the foothills where even your 5 year old can keep up with the rest of the family. Each footstep is a little closer to the peak. You are making progress and learning even if you only make it to the first mile marker. You get fitter and accumulate some equipment and technical skills for the mountaineering sections higher up as you go. It's challenging but fun and you have a sense of accomplishment no matter how high you are. As you get higher the vistas opened up to you show you the world in ways you could never see lower down and give you motivation to go forward towards higher peaks and better views.

<comment><USER20> Saxon was a great math program. I worked my way through the Algebra 2 book in 7th grade, and coasted on that until I reached college. For some reason (ahem- one of the teachers helped write it-ahem) my high school used a different, much shittier math program. Until the second half of my senior year AP calculus class, I didn't have to cover anything that I hadn't done in the Algebra 2 book.

Particularly for things like manipulating and simplifying systems of equations, the Saxon program was great, simply because it was built on repetition and practice - you would work through dozens of problems of a particular category over time. The other thing that was very nice about the Saxon program was that it would revisit older concepts - the problem sets would not just be on the current chapter concepts, you'd also have to work through material that had been covered over the previous 15-20 chapters. My mother is a special education teacher, and she's had success even with children that have serious memory deficits, because the repetition will pound the knowledge through into short, medium and long-term memory.

<comment><USER19> Yes the repetition can be really boring and some of the problems, even the easier ones from previous lessons can take a while to solve. But I still remember the concepts from algebra 1,2 and trig and can pull them out and apply them in real world situations. I had to build a gaga pit[0] for my towns school just this past weekend and some basic trig definitely came in handy there.

[0][https://en.wikipedia.org/wiki/Ga-ga](https://en.wikipedia.org/wiki/Ga-ga)

</comment></comment></comment><comment><USER21> That quiz at the end makes it almost impossible not to be classified as math anxious to some extent; answering even a single question (out of ten) with anything other than "Not anxious at all" (on its five point scale) gets one classified as "A little bit math-anxious" and told "Hey, who isn't? You don't panic over math, but perhaps you don't like it very much, either".

</comment><comment><USER22> I'd assume parents X anxiety, or fear, or anger would be contagious to children in general. But this does bring back memories of my dad (general contractor) getting mad at my homework and calling for my mom (engineer) to come help hahaha. It was Calculus.

</comment><comment><USER23> Contagious? Sure about that? Have you ruled out epigenetics?

<comment><USER24> Epigenetics isn't a magic wand; unless you really think people have "math receptors" in their body that will tune their epigenetics to be even worse at math in the future if they're frustrated today, and then pass it on to their children, it's a silly theory.

Moreover, most people have it _exactly_ backwards... to the extent passing epigenetics to your children makes sense at all from an evolutionary perspective, it is passing _adaptations_ , not _weaknesses_. If a parent has a hard time finding food, the stress of being hungry passes on to a child to make them smaller, i.e., _less needing of food_ because they're not going to try to grow as much. Epigenetics is not "If you break a leg, your child will be born with a broken leg". That's just Lamarkianism, and Lamarkianism is _still false_.

<comment><USER25> > Moreover, most people have it exactly backwards... to the extent passing > epigenetics to your children makes sense at all from an evolutionary > perspective, it is passing adaptations, not weaknesses.

While I don't think epigenetic math anxiety is particularly plausible (for, basically, the "math receptor" reason you state earlier), an adaptation in general may turn out to be a weakness in a particular case. If, say, it was possible to epigenetically pass on stress triggers (an "adaptation", because having a stronger, quicker fight-or-flight response to a particular environmental condition that is a frequent stress source might generally be an advantage) this might manifest as a weakness in some particular cases. Now, because its hard to believe that there are "math receptors", it seems unlikely that even if this was possible in some general sense, that it would be possible in some way where "math" was the specific sensitized trigger, but if it was...

</comment></comment></comment><comment><USER26> "Math anxiety affects not only test taking and grades but also self-esteem and everyday computational skills. (How many gallons of paint for two coats of your living room? Can you convert a double-layer cake recipe into a triple- layer?)"

Is this really a thing? Are there adults (except for those in the < 2nd std dev range, who are near-but-not-quite-at mental disability-level) who cannot calculate the amount of paint needed to paint a room?

<comment><USER27> What? Yes, of course it's a thing. I meet people like that _every_ day.

A better example of following the rules without understanding would be percentages. Many people could tell you what buttons they push to answer "What is 37% of 240?" But many people would be lost if you asked them "What is 84 as a percentage of 270?"

Or "This product now costs £230. It has had a 20% discount applied. How much did it used to cost, before the discount?"

<comment><USER28> I think that "learning to regurgitate" information is partially to blame for these type of scenarios. Kids are encouraged to "do past-papers" and other such practice-based learning techniques; while these techniques may be a component of establishing knowledge they are most certainly not a singular solution. A person who has only done past-papers only knows how to be a parrot, and a parrot can't make the _creative_ leap from "% of X" to "X over Y as %."

People I went to school could definitely work out the paint or percentage problems, but for a really good majority of them: only because they faced those exact questions in exams/tests.

</comment></comment></comment><comment><USER29> More importantly, why are parents doing their kids homework anyway? They're never gonna learn - how - to learn, if the answer is always to ask mum and dad.

<comment><USER2> The trouble with traditional homework is that you have to wait a long time before you get feedback, at the earliest it'll be the next day. This makes it hard to correct misunderstandings. So parents helping with homework is a great idea, not because pupils shouldn't learn to take charge of their own learning, but because homework kind of sucks as a tool for learning.

<comment><USER24> "at the earliest it'll be the next day."

One of the interesting hard mathematical results to come out of generalized learning theory, as used by machine learning, is that there is a fundamental relationship between the speed of feedback and the ability to learn. It is not merely a matter of "willpower" to learn from temporally distant feedback, it is fundamentally, irreducibly harder, and there's no way to "correct" it because it's not even wrong.

Homework _grading_ (note the emphasis) as a _learning_ mechanism has such a delay that its learning rate is effectively zero. And what feedback you get is often not even very much beyond _WRONG!_ , which is not exactly rich with information itself.

Homework is only useful for the feedback and learning you get while doing it, and for the ability to assess the student because we live & die on assessments, give us a direct choice between assessment and learning and the system will generally prefer the former. So, I won't say "homework is useless" but we could save everybody a lot of time if we only checked that it was done and spot-graded it for assessment, rather than making the teacher laboriously, yet nearly entirely uselessly, grade stacks of homework.</comment></comment></comment>


Debt explosion: US' long-term interest rates on course to double - <AUTHOR> http://www.telegraph.co.uk/finance/financetopics/financialcrisis/5754447/US-lurching-towards-debt-explosion-with-long-term-interest-rates-on-course-to-double.html

<comment><USER2> If the fed buys us treasuries like they did in march, then the interest rates will remain low. Our debt holders like china, japan, and europe will be forced to buy our debt to keep the exchange rates favorable. A weak dollar means their current holdings are worth less and they have less ability to export goods and services. Us debt of these proportions is a gun to the head of the US debt holders. interest rates will remain low...like it or not.

<comment><USER3> They will remain lower than what the market price for interest would be but I don't think the Fed can keep rates too low for too long. We're in the midst of a major capital shortage in the world right now. Eventually someone is going to want access to the savings bad enough to offer higher returns on capital. Right now the Fed is having a hard time keeping the 30 year mortgage rate down to where they want it.

</comment></comment><comment><USER2> The article was about the national debt. If the treasury auctions the us treasury bonds and nobody bites, then the interest rates must go up to entice them. OR the fed can buy the bonds at the lower rate and bingo. New cash is flooded into the market and the current debt holders are paid back with cheaper dollars.

There are only two ways we get out of this debt mess. Pay it off, or inflate our way out of it.

Paying it off will require a tax increase or an expansion in productivity and gdp. Productivity gains were what kept interest rates lower in the 90's.

Inflation is the other way, but it comes at a price. It steals the widow's ability to buy from her fixed income. It is only good for governments.

Letting the debt spiral out of control is not sustainable. Thats why you see china buying oil, steel and gold with their dollars now before the dollar gets inflated. It would be tough to be in their shoes right now. The are playing the globalization game and the us has a gun to their head.

<comment><USER4> Given that one of Obama's advisers is currently pushing _another_ stimulus package [1], and given the fact that Obama has absolutely blown the records in every category of spending possible for this upcoming budget, I believe our plan is to inflate away our debt.

[1] [http://www.bloomberg.com/apps/news?pid=20601068&sid=ajQb...](http://www.bloomberg.com/apps/news?pid=20601068&sid=ajQbZ.WrAVwQ)

</comment></comment><comment><USER5> In the medium-run the dollar value will go down (in 6/8 months). There's non way the USA could repay the debt. Brasil,Russia,India and China (the BRIC) want a group of currencies non only the dollar, to be the world currency. They don't want, for the future, to encrease their dependance on the dollar. In the future they will become (and the China is becoming now) more advanced economies, not only selling goods to the west. And the american debt holders are afraid of the american debt becoming larger day by day. So you should expect bat times for the american bond and the dollar (but good for your export and debt).</comment>


The enormous problems with using the war on terror as the basis for gun control - <AUTHOR> http://www.vox.com/2016/6/20/11953254/guns-terror-watch-list <comment><USER2> I think the main takeaway is "due process".

If you're on the terror list, or the no fly list, there is no trial, you're simply deprived of some rights you used to have, with no recourse. I've had to deal with the DMV, and you get sent to many confusing places and have to spend many hours trying to extricate yourself from them.

With gun control, it's the same thing. "The list is a state secret". They won't tell you how you got on it, and won't tell you how to get off, and there's no due process where you can plead your case in court.

The fact that you have to fight a Kafka-esque bureau to acquit yourself of something you've never been convicted of should raise the hackles of everybody involved.

</comment><comment><USER3> From the article: "The reason is simple: If you give the government more power to ban terrorists from having guns, you're reinforcing the power it has to define who counts as a terrorist.

That power is something of which both many liberals and many conservatives are deeply skeptical."

I for one am happy that the discussion is including this attitude. While obviously mass shootings are a tragedy we should address, I'm also conscious that U.S. has made a few steps towards a totalitarian/police state that are pretty scary. There may not be any easy solutions to gun violence, but "rushing to give government more anti-terror laws" seems like the cure is worse than the disease, by a _lot_, and it seems like at least some politicians agree..

</comment><comment><USER4> It's perfectly reasonable for the security services of any country to identify potential bad guys. It's reasonable for the potential bad guys to face extra scrutiny. It's perfectly fine for the NSA or FBI or whoever to say (internally) "Here's a list of people we think are behaving suspiciously. Let's keep an eye on them."

But it is not reasonable to deny someone rights, _any_ rights, because they've been identified as subjects of extra scrutiny. We already have a system through which people are denied rights based on things they've done. It's not perfect, but it's a hell of a lot more perfect than a list which a) isn't public knowledge, b) has no official procedure for adding people and c) has no procedure for appealing your inclusion.

Beyond that, this particular list is a list of _names_ , not a list of identities. Lord help you if you share a name with somebody who is behaving a little suspiciously. There must be many thousands of people named, for example, Mohammed al-Masri, or John Smith, or Pablo Gonzalez, or Amit Patel. Supposedly Ted Kennedy ended up on the list because he shared a name with someone they were watching.

</comment><comment><USER5> Funny how the republicans handed the democrats two gun control measures, and they turned them down.

</comment><comment><USER6> "The greater the diversity in a community, the fewer people vote and the less they volunteer, the less they give to charity and work on community projects; In the most diverse communities, neighbours trust one another about half as much as they do in the most homogeneous settings."

[http://www.boston.com/news/globe/ideas/articles/2007/08/05/t...](http://www.boston.com/news/globe/ideas/articles/2007/08/05/the_downside_of_diversity/)</comment>


A superelastic alloy with a nearly limitless temperature window - <AUTHOR> https://phys.org/news/2020-08-superelastic-alloy-limitless-temperature-window.html <comment><AUTHOR> >Iron-based superelastic alloys with near-constant critical stress temperature dependence

[https://science.sciencemag.org/content/369/6505/855](https://science.sciencemag.org/content/369/6505/855)

>Designing a wider superelastic window

[https://science.sciencemag.org/content/369/6505/773](https://science.sciencemag.org/content/369/6505/773)</comment>


Ask HN: what's the black bar on top of HN? - <AUTHOR>

I just started seeing a ~3px tall black top-border on the orange HN header (on my iPhone browser)<p>Yeah, what's that all about? Seems a bit out of place :) <comment><USER2> <http://news.ycombinator.com/item?id=2712469></comment>