Why does it take so long to learn mathematics? - <AUTHOR> http://tonysmaths.blogspot.co.uk/2012/10/why-does-it-take-so-long-to-learn.html

<comment><USER2> From the interesting submitted blog post, by a university teacher of mathematics:

"Learning mathematics takes time, and it has always astonished me how much better I understand material when I go back to it, months or years later, than when I first studied it.

. . . .

"Certainly I had little understanding of how an area of mathematics fitted together: my learning at University consisted of reading strings of definitions and theorems, with little idea where it was all going, making sure I understood each result before going on to the next one, until, perhaps, in the last lecture of the course the lecturer would say something like "and so we have now classified all Lie algebras" and I would suddenly find out what the point of it all had been."

Fields medalist Terence Tao has quite a few good articles on the work of a research mathematician on his blog. Searching around just now (while looking for something else, which Google didn't turn up), I found his post "On writing,"

<http://terrytao.wordpress.com/advice-on-writing-papers/>

which links to several articles by other mathematicians on how they learn and think about mathematics to write it up for other mathematicians to read.

<comment><USER3> I have also made the observation that coming back to mathematics after a few months makes it seem much easier. Several famous mathematicians pointed out this effect as well (I can only recall Bertrand Russell saying it at the moment). It even works on a day to day basis when it comes to solving problems.

In university, there were several times where I would spend all night working on some proofs and would go to sleep having made almost no progress. I would have dreams about the proofs (this made for restless sleep) but upon waking I would have many new insights into the problem and would be able to prove it. Conscious thinking about problems only seems to be reliable if you have faced (and solved) a similar problem before.

If there were some way to exploit this effect to maximum benefit, that would be awesome.

</comment></comment><comment><USER4> This is a rather silly question.

Why is math hard? It's not all hard, some math is simple enough for 1st graders to understand.

Why is the math I am currently studying hard? Because you already learned the easy stuff and moved on to the hard stuff.

Why does it take a long time to understand all the different things that can happen when you combine simple ideas in arbitrary ways? Because there are a lot of different ways to combine them.

Why is the body of knowledge so large? Because people have been contributing to it for thousands of years.

<comment><USER5> >> Why is math hard? It's not all hard, some math is simple enough for 1st graders to understand.

I will try to share my experience regarding this question. Please note I am neither an educator or a mathematician. Take this opinion with a grain of salt. (Also, I hope this was not just some rethorical question)

1\. I'd say "basic math" is a fairly complex beast. The difference being that children in elementary school are taught how to _do_ math, not _how_ or _why_ math works. It is one thing to be set to memorize a collection of established facts (like multiplication tables), shown how to use those to solve some highly constrained problem (the typical pen and paper multiplication algorithm) and then set to practice the method (lots of multiplication problems for homework). It is a very different thing to be shown the definition of a concept (Abelian groups) and then thrown into a bunch of theorem proofs that "ought to make sense" on first sight (derive the properties of basic, grade school, algebra by the rules of abstract algebra).

2\. An orthogonal point is that elementary school teachers have a more polished "culture" of how to transfer knowledge to students. They take many years to teach a relatively modest body of knowledge, starting from the most simple cases (addition and subtraction of natural numbers), and then extending to more general concepts (plus multiplication, plus division, plus squares&square roots, etc) and at the same time deepening the usages (natural numbers, integers, fractions, decimals, etc). Besides the core theme of arithmetic, additional concepts are introduced as permitted by the level of progress in this field (geometry, history and theory of numbers, numeric bases) and the foundations of the next big theme for middle tier education (algebra) are layered down.

Compare that to the ridiculous expectation of undergraduate level math classes, where every field is to be self contained within one (or at most two) term courses, and every session ought to introduce a new concept. University professors are able to get away with this because those courses are not a graduation requirement for most of the students, so most of those are allowed to fall from the back of the train and only the most talented, persistent and courageous ones succeed.

3\. Then there is the students themselves. In general, even though individual dedication of children will vary according to both self curiosity and parental enforcement, it can be said that all children are expected to more or less grasp what is this arithmetic thing about. Children either do apply themselves or not, but they do not tend to question the need to memorize all those facts or practice those exercises. Once and adult student reaches university level math courses, it has been instilled in their brain that "memorization" is a debased form of intellectual pursuit and that they ought to be trying and looking for the underlying patterns in their subject of study. Armed with this false belief and under the pressure of unreasonable deadlines, the natural thing to do is to weasel out of the hard work required to truly appropriate a piece of knowledge and try to find some way to "get it" without actually "going through it all".

<comment><USER6> > _1\. I'd say "basic math" is a fairly complex beast. The difference being > that children in elementary school are taught how to do math, not how or why > math works._

Same thing happens with 99% of "easy" stuff.

E.g if you find cooking easy, it's because a cook only learns how to _do_ cooking, not how or why it works (which would involve chemistry, physics, physiology, math, biology and other stuff).

</comment></comment></comment><comment><USER7> There are several very important factors:

1\. A lot of math teaching is terrible, full of teaching formulas and abstract concepts, instead of the why's and how those abstract concepts relate to real life. A former girlfriend of mine was amazed when I taught her to treat math as something conceptual, rather than memory-based -- that she almost never needed to memorize formulas, that if she understood their meaning, she could usually just derive them on the spot. Her grades suddenly skyrocketed. No teacher had ever explained that to her.

2\. Math is hard because it is exact. Fuzzy thinking is tolerated, even encouraged, in literature, political science, etc., so people can slide by with a lot less talent. Math doesn't let you do that. So, it's "harder", and can take a lot more time to learn.

3\. Concepts in math build upon each other much more rigorously than in many other disciplines. You can understand the basic concepts of postmodern literary criticism in just a few minutes, without even knowing about medieval criticism. But you can't understand the basic concepts of differential equations without a massive background in mathematical concepts up to that point.

So basically, in math there's a ton of stuff (similar to other disciplines) but it's all insanely exact (unlike many other disciplines) and most of the little bits depend on having a solid understanding of all the bits that come before it (unlike many other disciplines).

<comment><USER8> "A lot of math teaching is terrible, full of teaching formulas and abstract concepts, instead of the why's and how those abstract concepts relate to real life."

Well, I think your _terrible description_ shows how the situation is more like "teaching math is hard".

One thing about math is that once you get it seems easy and so it's easy to assume the teach who failed to teach you before this was doing it wrong. The problem is different students fall off the wagon at different points. Too much abstraction? Too little abstract? Not enough "real world applications", too many "real world applications" (the horrid "word problems" etc).

I'll give you that one-to-one teaching is especially useful since there are so many ways to misunderstand maths.

<comment><USER8> I should apologize for saying "terrible". That was mean-spirited. The description seems a little foggy but it is hard to explain. I'd say math is full of teachers facing multiple pressures that results in them seeming terrible. They aren't terrible in scheme of things either.

</comment></comment></comment><comment><USER9> There's been a variety of papers using MRI scans to show the brain restructuring itself during learning. This takes time. Mathematics and CS deal with abstraction upon abstraction, as well as counter-intuitive systems (negative numbers, unreal numbers, infinity just as a start), both of which I would suspect require more intense rewiring. I've taught CS to English grads, and entire classes can be spent trying to establish a single, simple (to me) concept.

But theresdefinitely more effective techniques than just exposure and time. Finding the smallest new knowledge beyond the students current (ie one thing at a time) can make a big difference. As does finding the right metaphor from within their current concepts, when adding a new one. But such things are harder to scale, being student centric, and most educations rely on some amount of scaling

</comment><comment><USER10> I had a similar (or identical?) experience with engineering. I "learned" much of it in school. Some of it was really challenging, and I quite frankly, did not understand it well. What's odd is that I put in a lot of effort in school. But it didn't stick. I just couldn't get it all.

Fast forward 16 years. I spent 6 years as a practicing engineer, followed by 10 doing other things. But now when I look back at a book that I had trouble with in school, it seems very straightforward. I've forgotten some of the math, but in general, everything is easier now.

Is this because learning this sort of thing takes time to sink in? (I did not actively study engineering after quitting my engineering job). Is it a matter of context? Things to compare the concepts to? Or even biological age?

Also interesting that I have not found this to be at all the case with programming, which I learn much like anything else - a bit at a time with no "leaps" in understanding.

</comment><comment><USER11> I couldn't agree more that is takes time to understand mathematics. Mathematics is akin to riding a bicycle. It looks very difficult at first to someone untrained and unpracticed. Yet the more and more repetition, and getting up after falling down, it gradually becomes easier and a better grasp of the mechanics.

For those wanting to learn mathematics I strongly urge use it everyday in a small way. The preferably way to do that would be to include it in your "work". When you apply the mathematics to the numbers you already know and understand then it becomes clearer over time.

</comment><comment><USER12> The problem with math is that very abstract concepts are introduced to students just because it's part of a curriculum. It would be the equivalent of teaching Turing machines to accountants.

Math is full of rules of thumb. Some concepts rest on top of more fundamental ones (e.g. infinitesimal calculus), but often this deeper reasoning is glossed over or ignored completely.

To _really_ learn math is hard. To pass exams though, all you need to do is memorize rules. Not everybody is comfortable with that, some people need more concrete examples, or a better understanding of the big picture, to really grasp a subject.

</comment><comment><USER13> Time is a factor in understanding almost any complicated concept but its far from the main reason.

I think schools (or atleast the schools I was exposed to) have always focused on solving theoretical puzzles without much context or understanding of how it would be applied.

If more time was spent on understanding concepts and less time mindlessly applying recipes and equations, perhaps learning math wouldn't be so difficult.

</comment><comment><USER14> I suspect that we could reorder some class offerings to improve the "throughput" of a math program. I can divide my math education career into before and after the semester I took the course based on Smith/Eggen/St. Andre's "A transition To Advanced Mathematics." Mathematics _is_ proofs, and knowing how to speak them is completely critical. After that course, I could do mathematics much more easily than before. I feel that this book is _fundamental_ to learning mathematics. And the majority of that is being blooded in the art of proof by contradiction and proof by induction.

</comment><comment><USER15> Changing habits of thinking is a very long process.) It is as if you're re- training some of your inner neural networks. Training takes time.)</comment>


KFC reports user credential breaches as result of website "targeting" - <AUTHOR> http://i.imgur.com/Znf2roS.png <comment><AUTHOR> It appears that this happened a few days ago, but they only just sent me an email today informing me so I assume a few other people don't know as well. Probably not a bad shout to let your loved ones know that they should change their password (which they probably use everywhere) if they too have a love of Chicken.</comment>


Ask HN: Does LinkedIn have to notify me of breach? - <AUTHOR> My email and sha1'd password were leaked in LinkedIn's 2012 breach. They've, up til now, made no attempt to contact me. There seem to be CA state statutes requiring notification for this type of breach.
Has anyone else received notification?
Do they get a pass, legally, because unsalted sha1 actually counts as encryption?
I deleted my account at LinkedIn shortly after this event originally occurred. I only wish I had done it sooner... <comment><USER2> Yep. I got the email. Double check that your emails are in line with your linkedin account.</comment>


Ask HN: Rails App takes 800ms to respond on a VPS. Will dedicated server help? - <AUTHOR>

I get very little traffic, this is purely a Rails performance problem. I am using New Relic and it's reporting the problem in ActionView. I know it's not a query issue because my queries are all properly indexed and no table has more than a couple hundred rows.
Even if I use some fragment caching, I'm still getting about 300-400ms delay. New Relic is reporting that ActionView is taking the most time. I also render a partial (which renders its own sub partial with AJAX forms) for each object displayed on the page (20 objects per page).
I'm using Passenger and Ruby 1.8.7 EE (just came out within past 2 weeks).
I have also tried booting up a new VPS instance to verify it wasn't the box I was on.
Is it worth trying a dedicated machine or will I see very little performance difference? <comment><USER2> The largest difference in performance between a VPS and a dedicated box is Disk I/O (much better on the dedicated).

Given that, I think it's unlikely that just switching to a dedicated box would help significantly.

A useful baseline might be to use YSlow to compare how long it takes to load your page in Rails vs. a static version of the same.

</comment><comment><USER3> It doesn't sound like the problem is a VPS or specifically a Rails problem. 800ms is a lot, and 300-400ms for a view with fragment caching is a lot. I have a completely unoptimized app in development with 20-item paginated lists of partials containing partials running on a VPS (linode) that renders the uncached view in 130ms. And this is with Haml, which is slower than erb, especially for nested partials.

I don't know what could cause the slow-down off the top of my head. Are there slow helpers? Also, IIRC, iterating over a collection to render each partial is slower than using _render :partial = > @collection_.

</comment><comment><USER4> Run it on your workstation and see how fast it is. You should get comparable speed from a dedicated server.

<comment><USER2> Not a bad suggestion, just make sure you're running it in production locally.</comment></comment>


Facebook has gone into lockdown mode in response to Google+ - <AUTHOR> http://www.quora.com/Has-Facebook-gone-into-lockdown-mode-in-response-to-Google+/answers/633605 <comment><USER2> See also: What is the "Facebook lockdown"? What does that mean? [http://www.quora.com/What-is-the-Facebook-lockdown-What- does...](http://www.quora.com/What-is-the-Facebook-lockdown-What-does-that- mean)</comment>


Gopher: When Adversarial Interoperability Burrowed Under Gatekeepers' Fortresses - <AUTHOR> https://www.eff.org/deeplinks/2020/02/gopher-when-adversarial-interoperability-burrowed-under-gatekeepers-fortresses <comment><USER2> i would not mind at all returning to gopher

<comment><USER2> [https://www.minnpost.com/business/2016/08/rise-and-fall- goph...](https://www.minnpost.com/business/2016/08/rise-and-fall-gopher- protocol/)</comment></comment>


Ask HN: C or Haskell, which to learn next? - <AUTHOR>

I've been programming for about 5 years now. I started with Perl, then moved to Ruby, then Javascript, then learning some PHP. Ruby and Javascript are my main languages. I didn't go to college, so I didn't go through a formal CS curriculum, and I'd like to learn some stuff I feel I missed out on. I've narrowed down my choices to C and Haskell at the moment.
Haskell seems to be the most practical of the functional languages from what I hear, but there aren't really any web dev applications for it that are in serious use so far as I can see. That said, functional programming would be a great way for me to learn about alternate programming paradigms.
C on the other hand I can think of projects I can do in it, but it doesn't seem as much of a leap as Haskell does, which makes me wonder if it'll be as good a learning experience. What does the HN community think would be a good next step? <comment><USER2> Learn C. So far you've done lots of high level languages, but no low level languages at all. Understanding what things look like at the machine level will make you a much better developer regardless of what language you end up using -- and there's a reason why people refer to C as "portably assembly language".

I often say that nobody ever understands when they should and shouldn't use hash tables until they've written a hash table in assembly language; you don't necessarily need to go to that extreme, but working in C at all will give you a much better understanding of fundamental algorithms and data structures than if you only ever use high level languages which hide such details away from you.

<comment><AUTHOR> Thanks for the advice, I'm taking it.

</comment></comment><comment><USER3> Haskell offers a lot of brain candy, but IMO you've already gained >50% of its benefits by understanding Ruby blocks - they're actually the most useful part of functional programming, carefully distilled and packaged to be non- threatening. :-) Better go with C first to learn what your computer actually does. When you go on to play with Haskell afterwards, you'll at least ask the right questions about the implementation.

</comment><comment><USER4> You can learn also Delphi. Is covers all the ranges from very high-level till machine language. Also, it has a much cleaner syntax vs C, you can also have a real job with it (unlike Haskell), and is has a huge community from where to learn from.

Drawbacks are: not so popular compared with C (but waaaay more popular compared with Haskell), not so functional compared with Haskell. Far better compared with both ones WRT web development (there's a very powerful library shipped OOTB for this) - especially when it comes to manage complex session states. OTOH, isn't really a web tool, it's rather a high-performance RAD environment with main focus on native (compiled) code and DB development. Other drawbacks are: \- you must know that you should ask the community where to find good libraries and examples \- the free edition (Turbo) is outdated. But there are trials.

</comment><comment><USER5> Go for C. C is here to stay.

</comment><comment><USER6> They are different enough that you could just do both simultaneously.

</comment><comment><USER7> You should use javascript to learn functional programming.</comment>


Gameful Design vs. Gamification...there is a difference - <AUTHOR> http://blog.superbetter.com/gameful-design/ <comment><USER2> Great points. It's all about what engages the player and their social circle. In our social fitness game/platform we've found our players are motivated playing and advancing based on the intrinsic nature of the game play. It's just fun and the benefit of play is healthier you. We include extrinsic rewards like achievements and badges but only to round out the game - not as a carrot. We also find competitions and challenges that are team-based build a social contract among players and are very powerful motivators.</comment>


"Snoopers' charter" petition hits signatures target - <AUTHOR> http://www.bbc.co.uk/news/technology-38130344 <comment><USER2> Is it just me or does 118k signatures seem absolutely pitiful? I heard it mentioned over and over that the _vast_ majority of citizens is in support of this (and any other) Orwellian law, and judged from a distance this seems like a correct assessment. If there was any public resistance worth mentioning, shouldn't there be millions of people not only giving signatures but protesting in the streets?

<comment><USER3> Not as compared to others; I think there's a certain sense of 'why bother' once a petition hits 100k (the requirement to be considered for debate).

<comment><USER4> Even so, with a concerted effort, you could probably get 118k people to sign just about any petition.

</comment></comment></comment><comment><USER5> I doubt they'll even debate it. And on the off chance they do, it'll be a "we understand the concern, but it's needed and your data will be safe".

Frightening, really.

<comment><USER6> > "...your data will be safe"

I'd ask for statutory and automatic (no demonstration of harm required) [minimum] damages of (say) £1000 to every citizen for every breach together with the immediate dismissal of the head of the department responsible if the breach came from a government agency. The government should also pay for the insurance premiums of private companies coerced to implement this scheme against their potential payouts.

If my "data will be safe", this shouldn't be a problem to implement as it will have zero cost.

<comment><USER7> "Oh, did we say 'your data'? Because we meant 'our asses.'"

</comment></comment></comment><comment><USER8> [http://www.independent.co.uk/life-style/gadgets-and- tech/new...](http://www.independent.co.uk/life-style/gadgets-and- tech/news/investigatory-powers-bill-act-snoopers-charter-browsing-history- what-does-it-mean-a7436251.html) \- I'm very curious why the NHS need access to your browsing history, along with everyone else.

<comment><USER9> The NHS _and_ at least 47 other organizations according to that list.

</comment></comment><comment><USER10> Can someone from the UK please explain what is up with your government officials? How do they get away with passing such unpopular, draconian bills? It just seems bizarre that they could go against the will of the average person so blatantly. Are there "people on the street" who support this charter? Why does England pass such harsh, invasive surveillance laws aimed squarely at their own people? And why does it seem like the Lords (or whoever it is that is passing them) just ignore the cries from their own constituents?

I'm sure that I see things tainted through American-goggles but it sure seems sometimes like it's not really a representative-style government.

<comment><USER11> Can someone from the US please explain what's up with _your_ government.

</comment></comment><comment><USER12> > The required data covers only the domain name of each site visited - > www.facebook.com or www.bbc.com, for example - not the individual pages > within them.

So this article was the first time I learned the law only requires host logging. But now I'm even more confused...how does the UK Gov argue that logging your access of facebook.com, but not what you do _in_ facebook.com, will help fight terrorism? Like, are terrorists going to isisrecruiting.com? I would've thought they would just use subportions of more popular and general hosts.

<comment><USER13> For the first year...

Then there'll be amendments that force ISPs to log the pages viewed, time spent on each page, downloads, etc.

<comment><USER14> >time spent on each page

Is that even universally loggable? Once a page has finished downloading, that's it, your connection is closed and you were technically only 'on' the site for as long as the total transfer took. Of course you could track it via some other (semi)persistant means - but that's more of a site thing than an ISP thing.

</comment></comment></comment><comment><USER15> Set a script to visit every website daily? Defeats the intent of the law if the isp doesn't record more info than domains visited..

<comment><USER16> Set a script to visit EVERY website? There must be hundreds of them by now.

</comment></comment><comment><USER17> A positive thing is that with so much centralized internet (facebook, twitter, etc), rather than isolated websites, there's not much they'll be able to read from it just by the domain. Are you on the facebook terrorist group or the nanna's group? Everyone will look the same to them.

<comment><USER18> Everybody visits a wide variety of websites. This data is likely to reveal:

      - if you are suffering from any illnesses (HIV, cancer)
      - your sexual orientation
      - your religion

Within months, ISPs or govt agencies will be hacked and 3rd parties will have access to this information. The implications are horrifying.

EDIT: Also, I suspect the data will be URLs, rather than just domain names, so they will be able to tell a lot from facebook etc.

EDIT2: Actually, apparently it will be just IP addresses and domain names (not full URLs): [https://www.gov.uk/government/uploads/system/uploads/attachm...](https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/504192/Operational_Case_for_the_Retention_of_Internet_Connection_Records_- _IP_Bill_introduction.pdf)

</comment></comment><comment><USER19> Snowden was right. It's turn key tyranny!

</comment><comment><USER20> Sic semper tyrannus

<comment><USER21> I think you want the dative "tyrannis" rather than nominative "tyrannus".

[https://en.wikipedia.org/wiki/Latin_declension#Second_declen...](https://en.wikipedia.org/wiki/Latin_declension#Second_declension_.28o_stems.29)

<comment><USER22> I obviously cannot tell what he meant, but in context I think that "tyrannus" makes more sense.

<comment><USER23> As opposed to the Latin expression?

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

Legitimately asking. I'm not sure why it would be anything other than "Thus always to tyrants".

<comment><USER22> Latin isn't a set of cast-in-stone strings of words. While sic semper tyrannis is very well known, sic semper tyrannus is also grammatical.

"Rest in peace" is well known, but "Rest in pieces" is neither unhead of, nor wrong. It's a riff on a well known phrase.

Same here: "Thus always (do) tyrants"

As I said, I think it makes more sense here. I think he wanted to call the UK government tyrants, not the spied-upon people.

<comment><USER23> Gotcha. Thanks for the explanation. I interpreted it more along the lines of the petition as a form of rebellion against the government, which I think would warrant _sic temper tyrannis_ , correct?

(Maybe the poster will weigh in and save us the trouble of deciphering his intent :)</comment></comment></comment></comment></comment></comment>


Show HN: GitBattle – Battle two Github accounts - <AUTHOR> http://www.gitbattle.com

<comment><USER2> Maybe it would be "exactly what it sounds like" if it was instead called "GitHubBattle". Git != GitHub

</comment><comment><USER3> Well, this makes my devops decisions no easier as it's pretty much a dead heat:

[http://www.gitbattle.com/?u1=puppetlabs&u2=opscode](http://www.gitbattle.com/?u1=puppetlabs&u2=opscode)

(incidentally, there appears to be a UI bug where it lists some repos multiple times - at the end the list looked like puppet/chef/puppet/chef/puppet/chef )

<comment><USER4> I've been thinking about a similar hack for awhile, but my idea was to measure/compare code cleanliness (in the agile sense of the word) and expressiveness between two chunks of code written by two different developers, in the same programming language and with the same number of SLOC.

I believe something like this to be a much more reliable metric of code quality than commits per day and what have you.

If someone else has already done this, I'd be fascinated to take a look at how you measure those things. The problem would require a non-trivial amount of AI.

</comment></comment><comment><USER5> If this is failing for you, make sure you haven't blocked twitter using Ghostery or the like, as this causes the script to error out.

        Uncaught ReferenceError: twttr is not defined app.js:196
        setupWinner app.js:196

Maybe the script can be made a bit more robust in this case?

<comment><AUTHOR> Good idea! Added a check to see if twttr is defined, if it isn't I just don't add the share through twitter button. Thanks!

<comment><USER5> No worries :)

I should have opened a pull request for you!

Awesome to see the quick turn around on your repo, though I haven't seen it deployed yet. It looks like you are using Heroku to deploy, have you not deployed yet or do I need to refresh my client-side resources?

<comment><AUTHOR> Made a little mistake, sorry, should be deployed in 10 seconds.

<comment><USER5> Ha, no need to apologise! The fix works great.

</comment></comment></comment></comment></comment><comment><USER6> Thanks for this. I ran into a lucky coincidence: my GitHub account is exactly 1000 days old. It's surprising that I've been using GitHub for almost 10% of my life. (I'm 10,095 days old, so it'll be exactly 10% the week after next.)

</comment><comment><USER7> I think you should weight the number of stars per repo higher. I think I am winning on number of repos and number of gists, but I think the user I'm battling beat me. Quality > Quantity.

</comment><comment><USER8> Looks like everyone else has discovered this too. I'm getting back messages that I've discovered the secret of life and still no results...

<comment><AUTHOR> are there still repos left under the processing box? if so, would you mind checking your console?

<comment><USER9> Uncaught ReferenceError: twttr is not defined

EDIT: My cookie-blocking plugin apparently was blocking something critical.

<comment><USER10> Also got the same error due to the Twitter button not loading. It might be a good idea to handle that case in the code.

<comment><AUTHOR> should be handled now, sorry about that!

</comment></comment></comment></comment></comment><comment><USER11> Neat! It'd be really cool to see the top-scorer in an organization. Trying to compute the score of tobytripp (a coworker) leaves me at the secret of life with both "Error in event handler for 'undefined': Cannot read property 'qrstr' of undefined TypeError: Cannot read property 'qrstr' of undefined " and "Uncaught SyntaxError: Unexpected token ILLEGAL" in my console.

<comment><AUTHOR> Any idea what line numbers those came on? I'll try and fix it!

<comment><USER11> The event_handler is in event_bindings:369, and the unexpected token is in line 711 of the api response, apparently? bit.ly/Tt9exN

</comment></comment></comment><comment><USER12> It seems like it overvalues Gists a bit. :)

<comment><AUTHOR> It actually only values them as 5% of your score...despite their prominence :P

</comment></comment><comment><USER13> I would love it if there were URLs that I could send to friends to show battle results.

<comment><AUTHOR> added: [http://gitbattle.com?u1=facebook&u2=twitter](http://gitbattle.com?u1=facebook&u2=twitter)

</comment></comment><comment><USER14> It's definitely fun to mess around with. Nicely, done! Quick question: why do repo and gist counts cap at 100? I haven't looked at Github's API myself yet, so there might be a technical limitation here that I'm unaware of.

<comment><AUTHOR> Yeah, there are a lot of technical limitations that we had to work around. Mainly, everything is paginated with a max per_page of 100. We decided to only analyze the 100 most recent gists and repos to not have to worry about that.

For commits, however, we couldn't not analyze them, so we do a _ton_ of processing. Basically, we loop over every one of your repos and loop over all of the pages of commits for that repo. For big repos (i.e. Facebook), that means we end up doing 100s of async API requests...it gets pretty intense.

<comment><USER14> It makes sense that you're analyzing only the first 100, but it would probably be cool to add the raw quantities of these things as a metric. Perhaps they shouldn't count towards the score, but it would be cool to display them, and the info's readily available from <https://api.github.com/users/:uname>

</comment></comment></comment><comment><USER15> What is it doing while "processing"? A progress bar would be a good idea.

<comment><USER16> Unlocking the secret of life, apparently. At least, that's what it says it's doing now, after complaining that nobody else had got this far. It's been about 5 minutes...

...maybe it would have been wise to start with a table of existing entries that could be resolved quickly. I don't use Git and couldn't think of any accounts off the top of my head, so I just set 'abc' against 'xyz' on the theory that those usernames were likely to exist. UPDATE: I'm getting the behavior with Obama v Romney and indeed Jesse P v Remy G. Maybe the server's just overloaded...

<comment><AUTHOR> Hmmm...it shouldn't be taking that long? Would you mind checking your console?

<comment><USER16> Sure:

      Failed to load resource https://platform.twitter.com/widgets.js
      Port error: Could not establish connection. Receiving end does not exist. miscellaneous_bindings:236
      chromeHidden.Port.dispatchOnDisconnect miscellaneous_bindings:236
      Uncaught ReferenceError: twttr is not defined app.js:190

¯\\(°_o)/¯

<comment><AUTHOR> :/ twitter's javascript api seems to have broken...weird. refresh and try again?

<comment><USER16> Maybe it's me...I have adblock, Ghstery, and Disconnect running.

</comment></comment></comment></comment></comment></comment><comment><USER17> Not sure if it can handle big repos very well, I just threw in Twitter vs Facebook for fun and I got stuck with the "secret of life" message. But it's pretty neat! :)

<comment><AUTHOR> Yeah, we loop over every page of commits for every repo for each user, so it takes a little while...that being said, if you wait it's pretty cool to see. Twitter is ~90 and Facebook is ~80.

I reached out to Github to see if there was a better way to do this, but they said there wasn't, unfortunately.

</comment></comment><comment><USER18> regarding the twitter vs facebook issue, checking the network panel on chrome, the rest of the request are pending and checking one of the requested url (<https://api.github.com/repos/twitter/twitter4j/commits>)

the error message is:

{ "message": "API Rate Limit Exceeded for 126.96.36.199" }

<comment><AUTHOR> In the code, if you look, I actually extend that rate limit to 5000 by using authenticated requests (on the client side, I know, this is "dangerous"). The problem is that it just takes a long long time, lots of request (~400 for Facebook alone), which gradually slow down as the browser gets overloaded.

</comment></comment><comment><USER19> Try Twitter vs Mozilla it's a fun one...

<comment><USER5> For the lazy:

[http://gitbattle.com?u1=twitter&u2=mozilla](http://gitbattle.com?u1=twitter&u2=mozilla)

</comment></comment><comment><USER20> I dont like tweeter and I want to copy the link to the results easily. Doesn't seems possible. Bleh ;-)

<comment><AUTHOR> Just added that functionality: [http://www.gitbattle.com/?u1=switz&u2=wetmore](http://www.gitbattle.com/?u1=switz&u2=wetmore)

</comment></comment><comment><USER21> This is awesome!

</comment><comment><USER22> does nothing for me in ff 17/win

</comment><comment><USER23> So funny</comment>


Ask HN: How does a newbie assess their value and negotiate a salary? - <AUTHOR> Hello HN,<p>What are some things to keep in mind for an entry level fresh graduate while negotiating a salary at a company? Since they're primarily new to the industry, they're not backed by experience and are generally clueless about their value. Wisdom comes with age and experience so it's only natural they learn with time. What are still some things you'd recommend to keep in mind? <comment><USER2> I would suggest there's a good chance you don't have a good picture of your floor / ceiling. I'd ask around as much as humanly possible to find what these numbers roughly are. It's much harder to move up in salary after you started low. That, and PTO often seems firm, but is negotiable.</comment>


Tokio internals: Understanding Rust's async I/O framework - <AUTHOR> https://cafbit.com/post/tokio_internals/ <comment><USER2> I'm (one of) the author of Tokio, hopefully I can clarify some points.

> Unfortunately, Tokio is notoriously difficult to learn due to its > sophisticated abstractions.

IMO, this is largely due to the current state of the docs (which are going to be rewritten as soon as some API changes land).

The docs were written at a point where we were still trying to figure out how to present Tokio, and they ended up focusing on the wrong things.

The Tokio docs currently focus on a very high level concept (`Service`) which is an RPC like abstraction similar to finagle.

The problem is that, Tokio also includes a novel runtime model and future system and the docs don't spend any time explaining this.

The next iteration of Tokio's docs is going to focus entirely at the "tokio- core" level, which is the reactor, runtime model, and TCP streams.

tl;dr, I think the main reason people have trouble learning Tokio is because the current state of the docs are terrible.

> Aren't abstractions supposed to make things easier to learn?

Tokio's goal is to provide as ergonomic abstractions as possible __without adding runtime overhead __. Tokio will never be as "easy" as high level runtimes simply because we don't accept the overhead that comes with them.

The abstractions are also structured to help you avoid a lot of errors that tend to be introduced in asynchronous applications. For example, Tokio doesn't add any implicit buffering anywhere. A lot of other async libraries hide difficult details by adding unlimited buffering layers.

</comment><comment><USER3> I've written a few production-facing applications with Tokio; and I think the author exactly identifies the stumbling blocks I hit while learning the landscape.

My takeaway from working with Tokio is that it's a fairly low-level abstraction and doesn't do much to address the challenges of building networked _applications_. And this is OK.

We'll need higher-level layers that use Tokio, however, to address more specific use cases. I'll point to the nascent tower-grpc[1] library as something in this direction. I hope to see more things like this fall out of our work on Conduit[2].

[1] [https://github.com/tower-rs/tower-grpc](https://github.com/tower- rs/tower-grpc)

[2] [https://github.com/runconduit/conduit](https://github.com/runconduit/conduit)

</comment><comment><USER4> > Unfortunately, Tokio is notoriously difficult to learn due to its > sophisticated abstractions.

Aren't abstractions supposed to make things easier to learn? Something about the idea of "complex abstractions" seems wrong.

(Edit: this is not a criticism of Tokio, it's a criticism of the OP's characterization of "sophisticated abstractions" which IMO should reduce complexity)

<comment><USER5> > Aren't abstractions supposed to make things easier to learn?

Not always. Some abstractions are designed to make it easier to solve hard problems correctly (than without the abstraction).

For example, consider Rust's memory model. Many people criticize that model as difficult to learn. By comparison, you might argue that C's memory model is simpler to learn. Yet, the C approach to allocating, using, and freeing memory is highly error-prone. C programs historically have frequently had mistakes such as use-after-free errors, or buffer under/overflow/reuse errors. The high-profile OpenSSL Heartbleed vulnerability was an example of a weakness in C's memory model and memory handling abstractions [1].

Rust's memory model may be more difficult to learn than C's, but once learned, they are abstractions that provide an advantage in building correct software, by ruling out certain classes of mistakes. (GC in languages like C# and Java and Go can also prevent these mistakes, but comes with a runtime cost. Rust aims to provide zero-cost abstractions.)

Building correct async IO programs using kernel abstractions is difficult for similar reasons as it's difficult to write correct programs with C's memory model. It's especially difficult if you want the async IO program to be portable across multiple OS/kernels. I have not used Tokio, but I would guess that its Rust-powered abstractions will make it difficult or impossible to leak memory or sockets, or to fail to handle error cases that might arise handling async IO.

[1] [https://www.seancassidy.me/diagnosis-of-the-openssl- heartble...](https://www.seancassidy.me/diagnosis-of-the-openssl-heartbleed- bug.html)

<comment><USER6> Yeah, but I actually have a reasonable chance of accomplishing what I want in C++.

vs Rust where I bash my head against it for 2 days then give up. I'm not smart enough for Rust, oh well.

<comment><USER7> I am not trying to personally attack you here, but most times when people say something like this, what they are actually saying is: "I think I am accomplishing the same thing in C++, but by not facing (and solving) the problems, I am actually creating a program with nasty hidden bugs, that might or might not blow up in my face later".

<comment><USER6> No, it's more "I know the lifetimes are right, but I can't figure out how to convince the compiler. I give up, I'm just going to go write it in C++".

I'm not the only one to make such comments. They made sure to try and address this in v2 of the book. It still sucks.

<comment><USER8> In that case RefCell[1] is the right approach. I use it a ton with C callbacks where like you said you can't get the compiler to understand lifetimes. You get the added bonus of Rust validating the lifetime at runtime and catching any regressions.

In the rare case where the lifetime check is too expensive you're free to turn the types into pointers and use an unsafe block, which gives you the exact same constraints as you have in C++.

[1] [https://doc.rust-lang.org/std/cell/index.html](https://doc.rust- lang.org/std/cell/index.html)

</comment></comment></comment></comment></comment></comment><comment> Const-me > The tokio-core crate provides the central event loop

Does it mean it only uses a single thread for IO notifications?

If yes, the performance won't be exceptionally great, especially on servers with many CPU cores and fast network interfaces.

The underlying OS APIs (both epoll, kqueue and iocp) do support multithreaded asynchronous IO, so that's not some platform limitation.

<comment><USER2> One can spawn as many reactors as you would like. The only thing a reactor does is receive events off of epoll (or other system selector) and notify the associated task. The task could be on the reactor thread or across a different thread.

Generally speaking, how to optimize concurrency for a network based application is pretty use case specific.

tl;dr, you can fully take advantage of many core systems w/ Tokio.

<comment> Const-me High I/O systems usually spawn multiple reactors, e.g. one reactor per CPU core, and run these reactors on the same set of file descriptors.

Does that library support such use case? Or does it imply 1-to-many relation between reactors and files/sockets? The latter doesn't scale well.

<comment><USER2> Tokio is about being flexible (true today, even more true in the upcoming release). It is more about set of primitives that you can assemble in a way that fits your needs. You can structure the concurrency of your application however you want.

So...

> High I/O systems usually spawn multiple reactors, e.g. one reactor per CPU > core.

Depends on what you are calling multiple reactors. If you mean a loop that responds to events and run tasks, then yes. For example, you can plug in [this]([http://github.com/carllerche/futures- pool](http://github.com/carllerche/futures-pool)) as the task executor and get a multi threaded, work stealing, scheduler.

Or, maybe you are talking about OS level selectors (epoll), in which case you are going to run up against OS limitations.

<comment> Const-me > you are talking about OS level selectors (epoll), in which case you are > going to run up against OS limitations.

Yes, about them, but I'm not sure what OS limitations do you mean?

For Windows, it works fine from the very first NT 3.51 version of IOCP.

For Linux it indeed didn't work in the very first version of epoll, but they fixed that adding EPOLLONESHOT flag, and recently EPOLLEXCLUSIVE flag for accept(), allowing to implement proper scaling of IO readiness notifications across multiple CPU cores.

<comment><USER2> You can get this working with Tokio if you know what you are doing.

However, I personally advise against it as I have found that deferring to the OS for scheduling results in poor thread affinity (your state gets bounced around threads unnecessarily).

You generally get better throughput by either running multiple fully isolated reactors (the seastar approach) or running a single reactor which _only_ flags tasks as ready to be executed, and then use a work stealing thread pool to do the actual execution.

Both of these structures are easy to achieve with Tokio.

</comment></comment></comment></comment></comment></comment><comment><USER9> I prefer golang's syscalls and os modules. Just direct interfaces to the C functions, no abstractions and no cruft.

<comment><USER10> That's still an abstraction, just one built into the language. And Go's approach (as well as other things, like garbage collection) requires a runtime; while that does support an interesting programming model, it also makes Go unusable for a variety of use cases that need to run without a runtime.

This approach in Rust, as well as Rust's approach to memory management and other things, allow it to run _without_ a runtime, which allows it to work for anything C does.

<comment><USER11> What use cases need no runtime (genuine question)? I understand the benefit of being compiled, since you can target a cpu instruction set and run without dependencies.

<comment><USER10> Low-level firmware, embedded applications, OS kernels, interrupt service routines, applications that can't afford the latency of being periodically interrupted, platforms where you don't have a scheduler or most OS services, libraries intended to be loaded into other applications written in other languages (e.g. where you don't control the main program entry point), writing language runtimes themselves, etc.

Early Rust, pre-1.0, did have a runtime and a green-threads mechanism; they ripped it out because they recognized that they couldn't go everywhere they wanted to go if they kept it. And if they _hadn 't_ done that, I believe Rust would have been far less successful than it has been.

<comment><USER11> So I'm guessing it's the runtime itself that expects to interact with things like an OS scheduler. Does that mean if you attempted to write an OS in Go, you'd basically have to do it without many of the features of the runtime (that provide the abstractions that are useful for application progamming?). That would be pretty crummy.

<comment><USER10> > Does that mean if you attempted to write an OS in Go, you'd basically have > to do it without many of the features of the runtime (that provide the > abstractions that are useful for application progamming?). That would be > pretty crummy.

You'd have to write the lowest-level of it in a language that wasn't Go. That language could be C, or Rust, or a pseudo-Go that didn't have many of the features people expect (including garbage collection and goroutines).</comment></comment></comment></comment></comment></comment>


Piping the web into CouchDB using node.js - <AUTHOR> http://writings.nunojob.com/2011/08/nano-minimalistic-couchdb-client-for-nodejs.html

<comment><USER2> The name "nano" in computing is already used by a well-known text editor: <http://en.wikipedia.org/wiki/Nano_%28text_editor%29>

<comment><AUTHOR> yup, I'm the author of the library and use nano quite frequently for small edits.

nano has no executable parts so this is perfectly ok.</comment></comment>


Don't waste your time at Circuit City - <AUTHOR>

I went there today and the only thing that was actually 30% off were the Monster Cables which would still be a ripoff at 80% off.
Headphones were twice as expensive there -- even on sale -- as they are online for the exact same models. Nearly everything in the store was really only 10% off, despite the signs outside saying 30%.  Looks like stuff was marked up, then down.  I'm not sure the regular prices, but no one was buying /any/thing.
I wasted my time, don't waste yours -- yet.  If this sale is going to go through March, prices are going to have to come /way/ down before anything is worth buying, but really nothing in there is worth buying anyway... <comment><USER2> I went to Circuit City the first day of the supposed fire sale and I was thoroughly disappointed. I've never EVER been a fan of Circuit City, their prices were never competitive and the stores have not been good experiences for me. So I was going purely to hunt deals.

The only deals I found were on burnable media, and on a crappy movie which I love dearly. I stood in their SINGLE checkout line as it was nearly thirty feet long, waited fifteen seconds, then deposited said merchandise on the nearest shelf and departed the store.

This is why the company is failing. They suck at life.

<comment><USER3> They're being run by a liquidator now so you can expect there won't be many employees working which results in long lines.

I've long preferred Circuit City to Best Buy because my local Best Buys are pretty terrible. I'll be stuck using them now.

</comment></comment><comment><USER4> You have to realize that there is a middle market here. Trading companies will buy up inventory from bankrupt companies and resell them through their established channels. From Circuit City's standpoint, it's better to unload all that inventory in one major deal than to try to stay open and sell them to consumers.

So for merchandise like electronics, which is easily resold, you're not going to see any deals. They'll mark the prices up to retail ("normal" price is typically discounted) and then take 20-30% off which is what they normally take off anyway. The deals are going to the companies buying this stuff up in bulk.

<comment><USER5> That doesn't really make sense, why doesn't Circuit City do what the trading companies are doing but cut out the middle man ? After all Circuit City's stores should be a fine "established channel". And why would the trading companies by from Circuit City when they could contact the manufacturers directly ?

I don't think there is a rational reason involving trading companies or some other established channels for Circuit City's pricing; instead, consider the possibility that Circuit City is run by idiots. Occam's razor dictates that idiocy is more likely explanation here. It also is consistent with the reasons they are going out of business in the first place.

That said, I also suspect that there is a large downturn in consumer buying, and it might shake out even retailers that aren't run by idiots.

</comment></comment><comment><USER6> I managed to snag Grid PC for about $16 ($20 - 20%) and a UMD case for PSP games for about $9 ($13 - 30%), but the vast majority of the stuff in there was still horribly overpriced.

Luckily, thanks to the internet, it's a lot harder for stores to call something a "deal" when in fact it is _higher_ than actual market value and get away with it.

Or maybe that's just an illusion, since there were plenty of people in there still running around grabbing stuff as though it were a super bargain, but I have to believe there were less folks suckered by it than there would've been 10 years ago.

Sidenote: I suspect that once a store starts sliding downhill, it's much harder for them to recover than it once was thanks to the same basic effect. Once upon a time, a store whose stock was starting to slide could send out a bunch of flyers, get some people in their doors, sell some merchandise and turn things around. Now, though, we all know within a day that the reason the flyer is in the mail is that the store is tanking, and so we stay away.

</comment><comment><USER7> Stores like Circuit City don't really make much money on electronics (computers, TVs, camcorders, digital cameras). Most of those items have fairly low margins. Most of the high margins are in things like accessories. This is usually reflected in their employee discount policy and also at times like these when stores are closing. The only thing you'll find significant discounts at Circuit City is cables and other accessories, but these are the same items that you can always buy online at low prices.

Also, my feeling is that in a sale like this most of the big ticket items will be purchased at relatively low discounts by people that aren't usually comfortable with buying things online. So to them 5% of a TV at CircuitCity looks like a really good deal even though Amazon sells it for 10% cheaper.

</comment><comment><USER8> As a retail store, they'd have to significantly mark stuff down to compete with online stores. I'm surprised they're still so high though; I would have expected more of a fire sale.

<comment><USER9> _I would have expected more of a fire sale._

It's one of the oldest retailing tricks in the book: advertise a fire sale, and then don't have one. There are people who will convince themselves they are getting great deals, regardless.

<comment><AUTHOR> I think people are wising up. We are beginning to demand truth in advertising. When we are lied to, we are walking away. When we had lots of money, we would tolerate it, but not anymore. In times of surplus, we can act without reason, but in times of scarcity, rationality wins.

It was funny walking around the store -- like a bad garage sale. People would pick things up, look at them with this confused look on their face like they were thinking, "Are these people serious?" and then put it down and walk away.

People don't have any money. Where is the mystery? People want bargains and Circuit City has 1.3 BILLION dollars worth of inventory they have to move.

Marking up 20% then down 10% isn't going to move product. That kind of arrogance is why they are going out of business. I hope the other big boxes don't learn this lesson the easy way and they go out of business too.

It's sounds very cynical to say it, but I think the world will be better off without brick and mortar stores like Circuit City.

Actually, it makes me very excited to see them going out of business. I know it is painful for a lot of the employees and I don't mean to relish in their pain, but it's proof that rationality wins in the end.

The Circuit City bankruptcy is a metaphor for the U.S. It's a signal that the old world is dying and a new world is being born -- online. Consumers are being smarter about their money. They don't have anymore credit cards to max out, the housing ATMs are broken and people are wising up.

We're all going to be smarter and better and more rational after the fire. Slash and burn. Plant a new crop.

<comment><USER8> You have far more faith in people than I do. Something tells me within the next 5 years Americans will have forgotten about the whole "maybe spending way more money than I make is a bad idea" and things will go back to the way they were. Whenever I have to choose between lasting rationality and history repeating itself, I almost always choose the latter.

<comment><AUTHOR> Now my mind is going crazy with the "faith" part of it. Having faith seems naively optimistic and hopeful.

It feels right now like we, or at least I, need faith in something. God's not going to help us -- we might be the evil ones. Obama, while I like him /way/ more than any other president I've known, I have little faith that he will turn things around. I wanted Ron Paul. Obama is too soft, we need some of RP's tough love right now. Spending more money in the wrong places isn't the way to get our country out of debt and Obama has already shown that he doesn't understand that concept.

Who does that leave? The other politicians up there are still corrupt. CEO's are still greedy. Banks are still crooks. Retail outlets are still lying to consumers.

All we have left to have faith in are the people. I have faith in Hacker News. What a breath of fresh air this place is! It's the only rational place left on the Internet. Please PG, work your magic and keep HN sane!

Somewhere in "the people" is someone with the charisma and the intellect and the wherewithall to be a real leader. Obama is a leader and he is extremely intelligent, but lacking in the wherewithall...

Doesn't mean I don't like him. He was our best choice after Ron Paul. We need to find a Ron Paul the people can relate to. RP is too smart. Too rational. Too extreme for the media to support. The media are people too and they have jobs and their jobs are on shaky ground and they know it. They punished RP because the Internet that loved him hated the media and the internet also threatens the media...

In 4 years though, things are going to change. The Internet will be stronger. More truth will be available. The people will have better access to knowledge and resources they can trust. Someone, probably not Ron Paul, but someone as thoughtful and honest as him, though not so far outside the comprehension of the mainstream will take over the reigns.

Sounds like I'm going from faithful to hopeful.

Man, we gotta do something!! Obama isn't gonna do it by spending money and listening to the same people that have been making all the mistakes that got us into this mess!

Shoot, I'll do it! I'm going to get rich and buy ads and listen to people and travel around the country and talk to them and understand them and hold their hand when I tell them it's going to be really really hard and we are going to have to make sacrifices and trust rationality even if we don't understand it and move forward knowing that we have to make things real again. We have to get out of our grandiosity and look around the world and understand that we are people in a big world and we are just /one/ country and everyone is mad at us for being so arrogant and Obama has a lot of work to do and I love him and I know he is going to do better things for the country than that last guy.

I'm going to take it a little bit further and make it all better! I'm tired of people complaining and not doing anything about it. They say washington is corrupt and no one wants to get in that mess and they're afraid of getting killed by the military industrial complex.

Who cares!? I'm gonna die anyway. I'll go out with a bang!

I'm going to try it! If I don't make it, it'll be a fun ride. Going to make this place a better world and start right here at home. Someone's going to have to because we're in a serious mess people. A serious mess. This isn't going to be pretty. I don't think it's really hitting people how extremely f'ed up this place is going to get because of our greed and irresponsibility and hubris.

Maybe I have some of that too, but I /want/ it to be better, not just for Americans, but for the world and if we are going to be the leader of the free world, then by damn we better start acting like we are part of that world instead of swimming around inside this tiny little fishbowl...

<comment><USER10> I really can't understand why people are so fond of Ron Paul and how his positions would solve this country's problems.

Can you be more specific on what approach you believe should be taken to pull through this recession? What is so mislead about Obama's approach? What's The Ron Paul Solution?

<comment><AUTHOR> I like Ron Paul because he is honest. He says the truth, even when it isn't in his best interest. When I listen to him, he says the things that I have come to believe over time through independent study and research regarding the world around me.

He has a solid understanding of world politics, economics, and history. He is literate and he reads a lot.

He's also a genuine guy with a huge heart. I think he'd be willing to do the hard things the nation needs in a time of crisis. He has a vision to the future. He is concerned about generations other than his own. He is concerned about the world outside his own home and he really wants to make the world better.

He's prophetic. He warned us that what is happening right now was going to happen and here it is. I think being able to predict the future and accurately analyze the current situation is something we want in a leader.

As for The Ron Paul Solutions that I would like to see implemented: responsible fiscal policy, libertarian ethics, ending imperialization, a focus on the home front, and shrinking of the size of government. Obama has none of that in mind.

<comment><USER10> What, specifically, is a responsible fiscal policy? How would he have prevented this economic mess? How does he suggest that we fix it, now that we're here? What economists support his views? Obama hasn't failed yet, how do we know his approach is wrong?

<comment><AUTHOR> Responsible fiscal policy means spending less money. It means eliminating the IRS. It means the elimination of fiat currency. It means not spending money on guns, military bases, and other things that we just don't need.

Ron Paul gets his economic views from the Austrian School of Economics. There are lots of economists who agree with those ideas. Many popular economists agree with his views including Milton Freidman, Peter Schiff, and more... A lot of what Ron Paul believes about economics are well though out ideas presented by other people, they aren't ideas he just "thought up." For example, every fiat currency ever in the history of the world has eventually collapsed. Sure, the US Dollar may prove to be the one that doesn't collapse, but history doesn't seem to indicate that is the case.

Obama may be a shining star. I hope he is. Even if he is, even if Ron Paul was up there, we wouldn't know for sure if it was the President who fixed it or not. Bush did a lot of damage and the greedy bankers he enabled did a lot of damage, I'm not sure even Ron Paul could fix it. It'll take all of us working really hard to fix it.

We are so in debt it's unfathomable. The younger generation is going to have to work really really hard to get us out of this mess. Let's hope Obama can rally the troops!

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> Don't you read Consumerist? Liquidation sales are apparently never a good deal:

[http://consumerist.com/5138341/the-secrets-of-liquidation- sa...](http://consumerist.com/5138341/the-secrets-of-liquidation-sales)

</comment><comment><USER12> This headline is equally apropos now and 2 years ago, and 4 years ago, and...

</comment><comment><USER13> yeah I went with my Android phone - and the barcode app the compares prices; there was positively no deals with any margin higher than 10% (tax money) vs even other local retailers.

</comment><comment><USER14> I got Guitar Hero 3 (Legends of Rock) Wii for cheaper than I could anywhere else... 45. Most places go no lower than 55.

Other than that, nothing to see there, move along now.

</comment><comment><USER15> See also <http://news.ycombinator.com/item?id=440124>

</comment><comment><USER16> i forgot the exact number but they owe creditors something like 180 million so they are going to charge as much as they can get away with.

wait until the last day for any true rock bottom pricing

</comment><comment><USER17> Just wait until it all gets dumped off to Big Lots and TJ Maxx.</comment>


Project Loon details from the Christchurch event today - <AUTHOR>

Pictures: http://imgur.com/a/IrZFq
I went to the Project Loon event today (Sunday June 16) at the Air Force Museum in Wigram, Christchurch, New Zealand.  Here's what I learned.  (Some of this may be misunderstood or misremembered, so don't take it as absolute truth, and this is all early prototype stuff anyway.)
It was quite a big museum-style exhibit with lots of people (it had been on the news), and several members of the team were there answering questions.
Currently there are four balloons up.  Several have recently been successfully been brought down and recovered from the ocean (land landings are easier to recover but there is no nearby land east of here).  The main reasons for testing here are that the stratospheric winds are "boring" (basically all west-east) and this latitude has few countries to coordinate with (they're working with Chile and Argentina).
The project involves a "couple of dozen" people and has taken two years to go from "ideas on a chalkboard" to this.
One of the balloons was there, inflated to its maximum size (launch size is smaller because of pressure differences, but it's a superpressure balloon with a maximum size).  It was roughly 5m high and 12m in diameter.  It has an upper portion with helium and a lower portion with air, with an impeller that can change the pressure in the air part, and thus control the height.  The height control is used to navigate, by moving to layers with different wind directions and speeds, and can take it right down to the ground (though that sounds a bit untested).  They are aiming for flights of "hundreds of days".
(continued in comments) <comment><AUTHOR> Clickable: [http://imgur.com/a/IrZFq](http://imgur.com/a/IrZFq)

Edit: that should have said 8m high

There are multiple control and networking systems connected together with a CAN bus (for controller area network, used in cars). It sounds like 4-5 ARM cores total: two Linux systems ("unfortunately" two) and one realtime controller in the main payload, and a failsafe controller up on top of the balloon (which controls helium release and parachute deployment). The controllers are designed to recover from being reset very quickly, since resetting is used as a kind of universal problem solver (sensor issues, cosmic rays flipping bits, etc.).

The stratospheric daily temperature swing (30°C down to -80°C) causes difficulties, so the electronics are in styrofoam boxes about 3cm thick, and a heating system keeps the electronics warm and the batteries warmer. The rough altitude is 20km, but it sounds like they cover about a 5km height range, I think connected to the daily cycle somehow too.

The solar panel provides 100W in full sunlight. It is mounted directly under the transparent balloon (which reduces the amount of energy by 20-25%). The batteries hold about "ten laptop" batteries' worth.

There are three vertically mounted omnidirectional antennas for balloon-to- balloon communication, and one downward facing antenna. The downward one has a 90° cone angle, and is designed so that the signal strength is even across the 40km diameter ground area. 2.4GHz and 5.8GHz, one for balloon-to-balloon and one for ground (I think 2.4GHz is ground).

The communication protocol is custom, to account for the large distances and to coordinate the ground systems so they don't transmit at the same time (since they can't see each other). The system basically acts as a VPN between end users and the ground station (upstream ISP), and traffic inside the VPN is encrypted separately as well. Currently upload and download speeds are symmetric (they don't really know what the speed will end up being, but roughly the same as 3G).

The eventual goal is commercial internet access to parts of the world that can't get it other ways, but there are no concrete plans for how that will work yet, since they expect to go through many more iterations of prototypes first. Commercial use will necessarily involve large fleets of balloons to provide continuous coverage (even if they end up covering more are each), since they move quite a lot. The balloons measure atmospheric conditions themselves and are coordinated from the ground.

Edit: I forgot to mention that there is a standard aircraft transponder (yellow and black cables in first picture), and the corners of the ~1.7m square solar panel have strobe lights to meet air codes.

<comment><USER2> The protocol uses time division multiplexing to solve the hidden node problem ([https://en.wikipedia.org/wiki/Hidden_node_problem](https://en.wikipedia.org/wiki/Hidden_node_problem)) where two nodes can be transmitting at the same time causing a collision.

They also mentioned that they didn't tilt the solar panel to follow the sun for reduced complexity, cost, weight and the risk of failure of a servo system.

They don't know what the speeds will be but 'as fast as 3G' was the marketing line.

To me it seemed like this project still had some large hurdles to viability but it was cool none the less.

</comment></comment><comment><USER3> I was chatting with some of the Google people at the event, and they said that the balloons have been responsible for a few UFO sightings. In fact, when one of the balloons' transponders failed in flight, they were able to track the balloon by the UFO reports online! This happened while they were testing the balloons in California's Central Valley.

They said the balloons are expected to take two weeks to circle the globe. Given that they said they'll eventually stay afloat for 100 days, that gives them plenty of opportunities to bring the balloons down in a specific location in order to make reuse easy.

</comment><comment><USER4> I went as well - i don't have much to add and my questions were certainly not as insightful as yours - but i will add that i was told that six balloons had launched, and the real balloons are larger than the demonstration as it's pushed down to fit into the demonstration hall. They didn't have a demonstration of the building antennas.

Multiple balloons in the air form a mesh network, allowing you to put your uplink only where it's convenient for you - which i guess is the key to making this a viable solution somewhere inbetween 3G towers and satellite internet.

It was a fun event, i hadn't been to the airforce museum before - lots of kids with helium balloons, poster giveaways and folded balloon animals. Someone was wearing the first Google Glass i've seen and lending it to people to try (that must get old pretty quickly).

<comment><AUTHOR> Most of those facts weren't from my questions :-D I asked a few, but there were lots of others asking questions too, so I did a lot of listening.

</comment></comment><comment><USER5> Do you think that project loon has anything to do with the recently acquired Makani Power? [http://cleantechnica.com/2013/05/24/google-buys-makani- wind-...](http://cleantechnica.com/2013/05/24/google-buys-makani-wind-power- kite-power-company/).

It would be interesting if they were to merge these two projects.

<comment><AUTHOR> It seems pretty unlikely, if only because of the very different altitudes the projects operate at (the kites can't be high because of tether weight, and the balloons can't be low because of weather and aircraft).

</comment></comment><comment><USER6> Apart from the commercial model that these will use (what they'll cost to make use of, etc.), the thing I'm wondering about is how visible they'll be at sunrise/sunset.

Google is saying that they'll be barely visible to the naked eye, but just after sunset/before sunrise, they will be illuminated by the sun when the rest of the earth is still dark, which should make them more visible than they would be during daylight hours. In my mind, I'm imaging a dark sky that's full of little orange dots. I have no idea whether or not it would happen like this though.

</comment><comment><USER7> Thank you for sharing! This technology is definitely interesting. I will be following news about it closely and would appreciate it if you could post more updates in the future.

</comment><comment><USER8> I think certain countries will suspect that these balloons are used as spying devices, and probably shoot them when they enter their airspace.

</comment><comment><USER9> Are they going to add downward facing camera(s) to capture close to real time Aerial imagery?</comment>


If you're autistic, once you hit 18 you are tossed out with the trash - <AUTHOR> https://www.reddit.com/r/TrueOffMyChest/comments/drg2pj/if_youre_autistic_once_you_hit_18_you_are_tossed/ <comment><USER2> I was diagnosed with Aspberger's syndrome as a child (I know it's called autism spectrum disorder, but I don't like that name). My school district had pretty rigorous special education programs for learning social skills and such. Most people wouldn't guess I have any issues now but it does bubble up. I work at Microsoft now, and while I didn't come in through their autism hiring program I have gotten support. I am encouraged by how much support Microsoft, and I believe the other tech companies are giving. Honestly, coming into the company I was a little cynical about the companies diversity programs, but I feel like the culture is about legitimately trying to help everyone.

</comment><comment><USER3> Is this an especially-strong problem with autism, or with disability in general, or people in general?

Children get more social services than adults, for sure.

<comment><USER4> It's a problem with anything chronic or long term. The people still have the problem but their support suddenly disappears because they magically transition overnight from a child, who in America at least have some marginal bipartisan support for helping, to an adult, where assistance is much more fraught and spotty.

</comment></comment><comment><USER5> This is sad. I feel like this occurs with ADHD as well. I wonder how many other "mental" disabilities this happens with

<comment><USER6> There's no need to quote mental. The idea that it's "all in your mind" is exactly true, except that, arguably, mental health can at times be more important than physical health. A mentally unhealthy person may be more likely to make physically unhealthy decisions, intentional or not, whereas a physically unhealthy person is generally not affected at all as to their mental health.

Obviously bad physical health can frustrate and depress, but it only changes reality, and does not directly change our perception of it.

</comment></comment><comment><USER7> FWIW there are some studies being done by the DoD on children with autism. [1]

There is also some discussion on this by Dr. Rhonda Patrick and Dr. Jed Fahey on youtube about Isothiocyanates and the related DoD studies on autism. It's 2 hours, sorry I forgot how far in they started discussing this. [2]

[1] [https://n.neurology.org/content/90/15_Supplement/N1.002](https://n.neurology.org/content/90/15_Supplement/N1.002)

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

</comment><comment><USER8> Worse still, the resources in schools are (for perhaps obvious reasons) only aimed at those who autism stops them learning/makes it difficult to learn. If you're on the spectrum and can do decently well at the curriculum but struggle socially/with general anxiety/etc, then you're often on your own.

This is the situation I was in at school/college/university. Meanwhile when you leave education, the same situation applies there too; the organisations and resources seem to mostly be focused on making sure someone on the spectrum is employed/not homeless, with zero real thought towards their general wellbeing.

<comment><USER9> >If you're on the spectrum and can do decently well at the curriculum but struggle socially/with general anxiety/etc, then you're often on your own.

Or worse yet, go undetected.

I was out of college before I realized I had been pushing upstream for my entire school career. My partner had gotten identified and gotten help, it wasn't easy but much easier.

I had always tested very highly on standardized tests but was a horrible student. My mom would tie me to chairs, my teachers would verbally abuse me, all of it. Not to mention the social issues I had.

It's a relief to know now, but it leaves me wondering how differently my life would've turned out had someone thought to test and accommodate. Even now I am just kind of not really sure what to do with the knowledge, beyond not guilt- tripping myself for being more "normal".

</comment></comment><comment><USER10> This is apparently written from the UK perspective. It's heartbreaking that anyone feels this way, but I don't have any experience with the UK's system to know if maybe they're missing something.

In the US, my sense is that there are more formal educational resources for adults on the spectrum.[0] That's not to minimize the gaps in the system, but to say there are communities interested in helping adults with autism.

[0] [http://collegeautismspectrum.com/collegeprograms/](http://collegeautismspectrum.com/collegeprograms/)

<comment><USER11> Note: This is what I've gleaned from my spouse, who runs an autism behavioral services company, so sorry if there are errors.

There are always gaps in the system. No matter what your issue, and no matter what the system.

That being said, once you're identified and diagnosed in the US, insurance is required to cover behavior analysis services until later than 18. But I'm not aware of any systemic services once you're in your late 20's, unless you're on the severe end of the spectrum.

The goal of those services isn't to "fix" or "cure" anything, as there's not a known fix or cure. Their goal is to help you with your goals. Often these include social interactions with peers to try to help you lead a life integrated with the rest of society. Sometimes it's academic (the goal is usually to have the students included in a general-education class).

But the real issue is the lack of available care. It's generally a very difficult field to work in, and there aren't enough providers by a long shot. The fact that insurance covers treatment helps, but it also creates a ton of demand. Clients who are younger than school-age can generally find services quickly and easily. But clients that attend school can see waiting lists for over a year in major metropolitan areas.

And it's difficult to attract people to the field. This is where insurance is a double-edged sword. By accepting insurance you have a large number of potential clients, but the rates that insurance pays are so low that it's difficult to attract quality staff. Think on the order of $15 / hr for the primary employees that the client will interact with. And it's not an easy job. My spouse ended up with major surgery that was likely the result of a client who grabbed my spouse by the hair and threw my spouse to the ground. It's hard to attract quality staff who will take that kind of risk for that kind of pay.

My spouse routinely hires high-school graduates and pays for training in the field, because it's the only way to fill those roles. Only to see the staff member leave after 3 months for another agency where they can get $2/hr more because they're already "experienced".

</comment></comment><comment><USER12> my cousin has autism that will require lifelong care, and his parents have passed. He turns 18 soon, and the plan for now is to keep him in school with the "no child left behind" rule as long as possible.

</comment><comment><USER13> People with mental sickness live in social homes called "Apna Ghar", there you've a big family and you share meals together and do all chores.

In India they live far better, I suggest anyone with mental disability to join these social homes.

And these run with help of charity donations.

Funny, that people have this bad condition in developed countries when in India they've it far better, they don't have to worry about anything.</comment>


Author Lucy Cleary - <AUTHOR> http://sylviabrowder.com/featured/author-lucy-cleary.html/ <comment><AUTHOR> I would love to hear feedback. I am a first time Author and my story is about my mother's struggles, heartache and pain as she copes with the abduction of her child. This is a story that has a prevalent impact on issues in our society today ABDUCTION</comment>


The Bear Case for Crypto - <AUTHOR> https://prestonbyrne.com/2017/09/01/the-bear-case-for-crypto/ <comment><USER2> I hear cryptocurrency fans defend taking the entire name "crypto" for their hobby because "it's not confusing in context". Here's a headline where it's confusing in context. The business case he leads with is even about cryptography.

Crypto means cryptography. With any luck, it will still mean cryptography after this speculative currency bubble bursts.

<comment><USER3> Many nephologists are still upset with cloud (computing)

<comment><USER4> They are distant enough that it's not confusing.

</comment></comment></comment><comment><USER5> Great article. I agree with almost all of it.

Although I think all this highlights the massive unmet need for high risk investment vehicles. The stock market has become huge, slow moving and boring, where the already-rich make slow gains on top of their existing fortunes. The only companies that bother to IPO anymore are basically pump and dump crap (blue apron, snapchat). Private equity and VCs are snatching all the action for themselves. Why the hell can't I invest in uber? I would take less equity and provide more capital than all their current investors.

The ethereum network now provides everything we need to offer and trade equity - etherdelta has shown that decentralized exchanges based on the ethereum network work. So this really can't be stopped now. It may not occur in USA or China's jurisdiction, but its going to keep happening.

<comment><USER6> > It may not occur in USA or China's jurisdiction, but its going to keep > happening.

Where will it keep happening?

<comment><USER5> ICO's will continue to originate from places with relaxed regulatory regimes - Switzerland, the Cayman islands. And people in countries where this type of capital raising is not permitted will find ways around it. KYC is very easy to skip around when the only real contact required is sending ether from one address to another.

I think permissionless offering and trading of securities is the killer app for ethereum.

<comment><USER6> So in that case only capital from the elite can flow into cryptocurrencies, but not be used by consumers for transactions?

Edit: Wouldn't the lack of general consumer transactions ruin the economic viability of most tokens? If so, then there is definitely a case for a bear market.

<comment><USER7> _Wouldn 't the lack of general consumer transactions ruin the economic viability of most tokens?_

Yes.

</comment></comment></comment></comment></comment><comment><USER8> Cryptocurrency minted through these ICO's from a fundamental case represents quantifiable ownership of a network. If many people are involved then the network will continue value.

I always like to relate it to many of these tech networks like twitter which will never make a profit. The twitter network itself is extremely valuable, twitter the company is fundamentally not.

These networks will continue to be supported by their users, and that is how a cryptocurrency derives it's fundamental value.

</comment><comment><USER9> HN is always conservative with blockchain. It surprises me because yes this is the tech industry but something radical is considered alien.

</comment><comment><USER10> mmm it's nice to get multiple perspectives, especially when your investing in internet money ;)</comment>


This House Can Be 3D-Printed for $4,000 - <AUTHOR> https://www.fastcompany.com/40538464/this-house-can-be-3d-printed-for-4000 <comment><AUTHOR> I think this is fascinating, not just because of their focus on the developing world, but because I would gladly put one or two or three of these in my backyard.

Let's assume that $4k is just production cost and that finishes are another $6k (because we're fancy). That means I could put 2 of these in my backyard, adding 1400 square feet for $20k? Deal!</comment>


The disappointing state of Unicode fonts  - <AUTHOR> http://www.johndcook.com/blog/2010/01/16/disappointing-state-of-unicode-fonts/ <comment><USER2> There are things that programs can do to deal with this, but unfortunately the work-arounds come at the expense of runtime performance and code complexity.

For example, a program could use a different font to pull in missing characters. But this can take a lot of extra effort to render properly; if the typography system doesn't have the concept of font substitution (or even if it does), then your layout slows down while you figure out how to place the substitute glyphs.

Another option is reinterpretation: trying really hard to display an approximation of an unsupported character, instead of garbage (this could be done using the characters that are actually in the font, or it could be done by drawing manually). The idea here is to make it as easy as possible for the user to read what was intended. For instance, Unicode probably has a dozen characters that look like an ASCII minus-sign; it is kind of silly to ever display garbage for a character as simple as a horizontal line, as long as some line-like rendering is available.</comment>


New here, just wanted to say 'hi' to everyone. - <AUTHOR>

Hey there everybody, Just found out about this site (and Y Combinator) earlier today while looking at some startup stuff online. Looking forward to spending some more time here and talking to all of you! Much love, James <comment><USER2> Hi James, welcome to HN. Your first stop should probably be <http://ycombinator.com/newsguidelines.html> and then perhaps <http://ycombinator.com/lib.html>

Have fun, this is a fantastic community.

<comment><AUTHOR> Thanks! I stumbled across the guidelines yesterday but hadn't yet seen the Startup Library. Super useful. Thanks again.

</comment></comment><comment><USER3> Hey James. There's much to learn here. Enjoy.

<comment><AUTHOR> I'm looking forward to it, thank you :)</comment></comment>