'I believed I didn't have the right kind of brain for science' - <AUTHOR> https://www.theguardian.com/books/2019/jun/08/nell-freudenberger-professors-have-to-figure-out-how-to-behave-with-their-students <comment><USER2> I too never thought I was smart enough - in my case, for computers. Nothing to do with my gender. My father bought me my first computer at 10. But, others said that I can't learn programming if I don't know maths, and I was crap at maths. So I didn't learn to program.

Not until I went to university, to study computer science, of all things. I was good at language, so I treated programming as a language problem. I learned well enough to make a career for myself as a programmer. I guess that doesn't say much, though, there's many bad programmers out there who make tons of money.

After university, I did a masters in Data Science. Why I get myself in those situations, I'll never know, but I studied Data Science. By then I knew how to program so I tackled all the maths problems as programming problems. When I didn't get something, I coded it. So I coded a bunch of linear and logistic regressions, and perceptrons and recurrent neural nets and the like, 'till I grokked them right.

So now I'm studying for a PhD in machine learning, in one of the best universities in the world. Not bad for a kid who always got the worse grades at maths, at school, eh?

So what I learned is this:

a) play to your strengths, not your weaknesses.

b) Dont' believe when people say you haven't got what it takes. They only know one way to do things. You do you.

Oh and- you know what? Turns out I'm not that bad at maths after all. Certainly not the discrete maths used in computer science. Not even the continuous maths used in data science and machine learning. I get by.

<comment><USER3> _Not until I went to university, to study computer science, of all things. I was good at language, so I treated programming as a language problem._

Just today I was reading this blog post from someone who loved math, went into programming, and claims that programming isn't math, it's language, and that the image comes from early programmers being mathematicians and the industry hasn't moved on from that image yet:

[http://www.sarahmei.com/blog/2014/07/15/programming-is- not-m...](http://www.sarahmei.com/blog/2014/07/15/programming-is-not-math/)

 _People with a math background did fine, of course, but people with a heavy language background often did better. I saw this curious effect again when I started working with high schoolers, with a similar curriculum. Bilingual kids often took to programming more easily than monolingual kids._

(Has that been discussed or investigated?)

<comment><USER4> I remember this being a common belief back in the 90s.

At school I knew a guy who was good at maths, obsessed with computers (as in often knowing more than the teachers) but was rejected from the computing course (until his parents complained) because he wasn't doing well in English.

Personally, I believe they were getting confused with English as it was taught (mainly literary appreciation) and Language/Linguistics (as in the grammar/semantics and logic) which wasn't actually taught in (my) high school.

</comment></comment></comment><comment><USER5> It is hard to do the things you love when you aren't wanted. Setting aside the statistics for a moment, imagine being a teenage girl and overhearing boys talk about how girls are dumb. Brainless machines of no consequence. That women can't code or contribute much in fields like math. "They just don't have the brain for it."

These moments stay with you and they impede you at moments when you need to be free. They push you away from being the best version of you that you can be.

<comment><USER6> Maybe Spain (of all places) is super-progressive, but I can't recall a single instance of anyone saying anything similar to "Women can't code" or "Women can't do math".

In fact, for most of my educational life the "top student of the class" has been female, even through engineering and maths.

Am I some kind of odd outlier? is the experience on other countries different? I'm genouinly curious.

<comment><USER7> I think this stuff actually is pretty regional/local; participation rates by women are much better in some non-Anglosphere countries.

Edit: It can also become weirdly specific; participation in computer science and physics remain quite low here (Ireland), say, but I believe most chemistry undergrads are now women.

<comment><USER6> I was referring way more the prevalence of those type of comments through education. I don't think participation rates are very different than other countries. From my experience (I have a rather weird educational path, so I have anecdotal data on engineering, math & physics undergraduate courses).

Engineering and physics have similar ratios around 10% to 20%, while maths is way higher around 50/50 (the rates for the classes I was taking were actually higher, but that's another story). Chemistry here also is mostly women.

The only hypothesis that fits my (admittedly anecdotal) experience, is that there's quite a difference in the interests of men and women, and that the country differences in enrollment are more a symptom of how the curricula are structured.

For example, Spain does not have CS degrees structured like in the anglosphere, so depending the subfield you intend to work on, you should go to engineering instead. Most of the women I met at engineering would have chosen a CS degree over engineering if there was one. I have seen stark differences too in physics, were the majority of women there wanted to pursue pure theoretical physics with pretty much none of them showing interest in applied physics.

</comment></comment></comment></comment><comment><USER8> From what I could see the teacher discouraging her from going into science after failing a math test was greatly beneficial as she became a successful author. Yet she is resentful that she was never included in the scientific establishment which seemed to be more what she wanted.

Not really the point I was SUPPOSED to get from this article though. I think I was supposed to be angry at sexism for discouraging her from becoming a scientist. She reminds me of how I feel about the cooks who discouraged me from becoming a cook although it was for the best I'm still bitter they said I shouldn't be one.

</comment><comment><USER9> > by the time she reached Harvard, hoping to study medicine, she was so far > behind that "I couldn't even take a remedial math class"

Wat? How'd she get into Harvard then? Legacy admission?

<comment><USER10> Harvard offers undergraduates remedial classes through their extension school. In fact, you may be surprised to hear that so many admits have issues with writing that they offer a non-extension remedial writing class (Expos10.)

These are just undergrads - students come from a variety of educational backgrounds and are admitted for various reasons, of which legacy is just one possibility.

<comment><USER11> I think there are 2 things that make math different than writing in this case.

1\. I expect the main reason for needing remedial writing would be English as a second language people. That is, smart people who got a good education, but that education wasn't primarily English. That doesn't really apply to math.

2\. I expect standardized tests can more easily test math than writing due to the nature of solving math problems vs writing. Thus Harvard would be able to filter out people who are bad at math more easily than people who are bad at writing. Then again, maybe Harvard doesn't want to filter out people who are bad at math.

<comment><USER12> Math is one of many subjects. Many Harvard students head remedial classes in music, art, and literature too.

</comment></comment></comment></comment><comment><USER13> The article seems kind of unfocused and meandering. It touches on the common talking point of women being discouraged from STEM, then about the good time the author had doing research for her fiction novel, and some scenes from the novel, but it never actually says anything about the plot of said novel. "There's a professor who may or may not be creepy and a student who may or may not fall in love with him" is about as far as it goes.

An area of academia as seen by an outsider usually makes for good storytelling but this article is a mess.

</comment><comment><USER14> What a banal way to advertise your book.

<comment><USER15> There, that's one of those "knock down" the article is about.

There's this point I heard someone made about internet toxicity: "it used to be that if you didn't have anything positive to say you'd just shit up and move on; if anything to avoid a bitter quarrel in person. On the internet, the lack of any immediate personal consequence removed this restraint, allowing the worst thoughts to pour out, and drown whatever good is said."

Thanks, for being today's example. Now can you please make the effort next time?

<comment><USER4> > it used to be that if you didn't have anything positive to say you'd just > shut up and move on

While that's an attitude I've learned to follow ("If you'd don't have anything nice to say, don't say it." as my maw would put it) I'm not sure it's actually that healthy. It shuts down all possibility of (negative) criticism for fear of causing offense, or bad feeling.

<comment><USER15> Sorry, I might have worded it too generally; imho a well reasoned criticism falls under the "positive" side, unlike Evil quips and disparaging remarks.

</comment></comment></comment></comment><comment><USER16> I have a PhD in physics and worked at CERN (which is mentioned in the article).

The way math and physics was taught at school vs university makes a world of difference. You leave high school without a basic understanding of science, yet you had to learn what schroedinger equation was.

Then you do not understand what kWh on you power bill means and how this is related to your lamp or keetle.

If math and physics was taught with pragmatism and not the idiotic idea that everyone needs to know everything then we would have more people interested in science.

Same for coding taught at school. You start with data structures. WTF? I do not care what a dict is before I can imagine a useful usage case.

I taught my kids to write code with a lot of handwaving first, than with a lot "you go get what this means later" and now they code. They are not big fans but it will be peanuts for then to go through coding curriculum at school. All it took were two evenings and a bit of minecraft.

</comment><comment><USER17> The videos I watch online include several game streamers who like to talk about their STEM careers. One of them in particular keeps emphasizing how to them, studying their field did not come easy to them, but they had luckily realized soon enough that working in a lab was what they wanted and loved to do. So they chewed through the academic career. In short, do not exclusively measure your chances for success by how well you do in school.

Myself I haven't had a very successful academic career, and even a decade later I'm still a mediocre programmer struggling to get things done for perfectionism reasons. But I persevere and don't stop learning things. That lead to me getting a job in the industry a few years back, now carrying a comparably big responsibility in my current position.

I very much encourage women to pursue the career they consider the most thrilling. But I can also see that for women, needing more stability sooner in life may make it less appealing to chew through an academic career in a field when they're not sure if they can get good at it.

</comment><comment><USER18> I related to this story because I also believe I am not well wired for maths, and have live with 37 years of imposter syndrome as a qualified and always employed computer scientist. It's a sub branch of mathematics yet I feel mathematically challenged.

</comment><comment><USER19> You do have the right kind of brain for science. Even healthy brains are desired.

[https://braindonorproject.org/](https://braindonorproject.org/)

[https://www.brainsupportnetwork.org/brain- donation/](https://www.brainsupportnetwork.org/brain-donation/)

[https://www.alz.org/alzheimers- dementia/research_progress/br...](https://www.alz.org/alzheimers- dementia/research_progress/brain-donation)

[https://hbtrc.mclean.harvard.edu/donate/](https://hbtrc.mclean.harvard.edu/donate/)

I love how the NIH explains things: _" As an organ donor, you agree to give your organs to other people to help keep them alive. As a brain donor, your brain will be used for research purposes only—it will not be given to another person."_ That's good to know.

<comment><USER20> And there are so many stories about science donations disrespecting the donors intentions.

Reuters did a series on it:

[https://www.reuters.com/investigates/special-report/usa- bodi...](https://www.reuters.com/investigates/special-report/usa-bodies- brokers/)

[https://www.reuters.com/investigates/special-report/usa- body...](https://www.reuters.com/investigates/special-report/usa-bodybrokers- industry/)

<comment><USER21> Just when I think maybe I'm too cynical in thinking that non-corrupt charities represent a statistical rounding-error, something like this pops up to reconfirm my intuition. Thanks for the link

</comment></comment></comment><comment><USER15> I need to finish the article but let me leave a "reaction post" here just for starters... that Strumia guy - the misogynist Italian physicist - is a tool. The prototypical socially disabled person that compensates for their ineptitude by digging themselves into a trench of books. I'm male, but having studied engineering I had the displeasure to bump into examples a couple times; and it left marks.

<comment><USER22> That Strumia guy was mostly "compensating" for his sour grapes, actually. He actually brought up an internal controversy about tenure promotion or something similar, that _he_ was involved in, as an example of gender bias for his CERN "talk", and people fell for it. Master troll.</comment></comment>


What is it like to get a job offer over Twitter? - <AUTHOR> http://www.feross.org/what-is-it-like-to-get-a-job-offer-via-twitter/

<comment><USER2> He got a better offer from Quora over Google?

That's a nice development for the future of internet.

<comment><USER3> What made the offer better could have been that it was coming from Quora rather than Google.</comment></comment>


Ask HN: What is your favorite HN post? - <AUTHOR> Recent, old, perhaps anything that is interesting to read. <comment><USER2> Some of my actually favorited posts:

jjoonathan on Oct 6, 2014 on: Glut of postdoc researchers stirs quiet crisis in ... [https://news.ycombinator.com/item?id=8416875](https://news.ycombinator.com/item?id=8416875), "For most people it's not, but some people subscribe to the notion that choice implies consent/endorsement/approval ..."

scardine 12 months ago on: Ask HN: My company plans an ICO despite my opposit... [https://news.ycombinator.com/item?id=16126082](https://news.ycombinator.com/item?id=16126082), "Like almost all problems in life you have only 4 options: ..."

graycat on Mar 28, 2015 on: The FedEx Problem [https://news.ycombinator.com/item?id=9282104](https://news.ycombinator.com/item?id=9282104), "Yes, at FedEx, we considered that problem for about three seconds before we noticed that we also needed: ..."

Animats on Nov 21, 2015 on: How a little bit of TCP knowledge is essential [https://news.ycombinator.com/item?id=10608356](https://news.ycombinator.com/item?id=10608356), "That still irks me. The real problem is not tinygram prevention. It's ACK delays, and that stupid fixed timer. ..."

<comment><USER3> Just learnt something new about TCP, thank you :-) (See also this post: [https://news.ycombinator.com/item?id=9048947](https://news.ycombinator.com/item?id=9048947))

And discovered that Animats is in fact John Nagle...

</comment></comment><comment> barry-cotter Yudkowsky Ambition Scale

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

How Do I Start Being a Consultant?

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

Bane's rule, you don't understand a distributed computing problem until you can get it to fit on a single machine first.

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

Edit: Thanks detaro for telling me how to link to individual comments.

<comment><USER4> The first is an amazing hubris detector.

The "going deep" post reminds me of the "programmer-archaeologist" role from the Vernor Vinge novels, where a long-running spacefaring civilisation has built up a _very_ large amount of code on which their magic nanotech runs. This provides opportunities to dig for long-forgotten things .. or exploits.

<comment> barry-cotter [https://news.ycombinator.com/item?id=4511950](https://news.ycombinator.com/item?id=4511950)

> That reminds me of Peter Thiel's Venn diagram of 'Sounds like a bad idea' > and 'Is a good idea'. It's a pretty slim area in the middle and the 'Sounds > like' part means it's hard to know until you do it.

</comment></comment></comment><comment><USER5> "I have a slight fascination with sweeteners."

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

</comment><comment><USER6> "The 4-color map theory is bunk," [0] a comment in which a user boldly refutes modern mathematics and, when faced with contradictory evidence, continues to double down on his assertions.

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

<comment><USER7> Sometimes I feel like the colored version of that map should be the official logo of all Internet message boards.

<comment><USER8> …more like the un-colored one. :-D

</comment></comment></comment><comment><USER9> These are from my notes (the quotes below may be boring but related discussions are good imo):

"My working theory is something like "romanticism/emotionalism vs. abstract rationalism"; if you're writing something that benefits from immediate experience and emotional input (e.g. Kafka writing about nightmarish bureaucracy after working all day in an insurance firm) then it is better to write at night, after the events of the day have happened and your mind has been operating for 12+ hours." [https://news.ycombinator.com/item?id=18369337](https://news.ycombinator.com/item?id=18369337)

"Classes get in the way between the programmer and the problem. They force you to reify your thinking into "things" (classes) that demand names and citizenship rights, so to speak, in the system. These "things" don't really exist, but we act like they do, and so increasingly see the problem in terms of the classes we've defined." [https://news.ycombinator.com/item?id=3717715](https://news.ycombinator.com/item?id=3717715)

"One thing that I find sorely missing in many teams is onboarding documentation. So when you come in, document everything that you need to do (required permissions, development environment setup, mailinglists, subscriptions) and how to do it." [https://news.ycombinator.com/item?id=17353854](https://news.ycombinator.com/item?id=17353854)

"The real value of Flask is that it makes you appreciate what Django does by default. When I first started learning Python / web frameworks, I went with Flask because it was smaller and "simpler". As my project grew however, I had to organize it. I was basically imitating what Django gives you by default, though less cleanly." [https://news.ycombinator.com/item?id=16935441](https://news.ycombinator.com/item?id=16935441)

</comment><comment><USER10> @cperciva in this thread: [https://news.ycombinator.com/item?id=35079](https://news.ycombinator.com/item?id=35079)

<comment><USER11> Those two comments come up frequently, but it's worth noting that in the whole preceding thread 'cperciva was being a pretty massively arrogant jerk.

That thread is a classic example of why the most capable people aren't necessarily the ones you should want to work with.

<comment><USER12> I like to think that was my lowest point on HN and I've been less of a jerk ever since.

I considered deleting my comments, but decided instead to keep them to remind myself to behave better.

</comment></comment></comment><comment><USER13> I've compiled mine (which are mostly comments) on my blog: [https://raihansaputra.com/hn-wisdom](https://raihansaputra.com/hn-wisdom). It's hard to say that I am following those advice though. The gap between knowing and action is hard to cross, somehow.

<comment><AUTHOR> This looks great. Will save it somewhere.

</comment></comment><comment><USER14> This question was already answered several times here:

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

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

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

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

(possibly more)

<comment><USER15> While correct. New posts happen all the time.

<comment><USER16> Also, new people frequent here all the time, and opinions can change.

<comment><USER17> Related: [https://xkcd.com/1053/](https://xkcd.com/1053/)

<comment><USER15> The end of the comic was great.

</comment></comment></comment></comment></comment><comment><USER18> All the criticism in the Dropbox post: [https://news.ycombinator.com/item?id=8863](https://news.ycombinator.com/item?id=8863)

<comment><USER19> Ironically much of the criticism and skepticism was dead on, but that didn't stop Dropbox from becoming a very successful startup, though I think the ultimate future of the company is not certain as of yet.

</comment></comment><comment><USER20> my favorite by far was the very first thread on the Snowden revelations: [https://news.ycombinator.com/item?id=5830633](https://news.ycombinator.com/item?id=5830633)

comment by comment you could sense the earth shattering awareness slowly setting in, or how the HN crowd suddenly went from unquestionable faith in big government to "oh lord what have we done".

<comment><USER3> On the whole, this is one of the more edifying political threads I've read around here...

</comment></comment><comment><USER21> I'd like to ask a parallel meta-question: How can we make better use of HN's existing 'favorite' feature?

Currently, we have the option to click on 'favorite' to add submissions or comments to a publicly visible list. Occasionally (a couple times a month?) I do this for comments that I think are excellent: [https://news.ycombinator.com/favorites?id=nkurz&comments=t](https://news.ycombinator.com/favorites?id=nkurz&comments=t)

Some other users do the same, but I don't really know how many, because there isn't really an interface to explore this. It looks like about half the top of the "leaders" list make use of this feature, although in some cases these might just be accidental clicks.

Anyway, it would seem like there should be some great way to make use of this information, but I don't know what it would be. A simple list of recently favorited comments? Marking on the comments that have been favorited? Just more prominence to what a user's favorites are?

Probably there is some even better way: How can we make better use of HN's 'favorite' feature?

<comment><USER22> Good point; personally, I'd like: 1\. Ability to rename and/or annotate my favourite 2\. Ability to put them in folders / hierarchical structure

(Mind you, easily fixed on personal level by simply bookmarking them in browser itself instead, but doesn't help HN)

</comment></comment><comment><USER23> I really enjoy the, "what's your stack?" threads that pop up every now and then. It's always interesting to see what people are using, how they're using it, and why they made the decisions they did.

</comment><comment><USER24> I think about this "tech has it so much better" take often: [https://news.ycombinator.com/item?id=11370776](https://news.ycombinator.com/item?id=11370776)

</comment><comment><USER25> I can't find it anymore, but from it I learned for the first time that functional programming can be understood simply as programming using component-oriented design - from then on, my favorite programming concept. I have a huge interest in software composition, so here's at least something I could find that explains it well:

[https://alvinalexander.com/scala/fp-book/how-functional- prog...](https://alvinalexander.com/scala/fp-book/how-functional-programming- is-like-unix-pipelines)

</comment><comment><USER26> Posted a mere three hours before this thread, regarding writing code in a language more reliable than Bash.

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

</comment><comment><USER27> I'm not sure if this is #1 but this is one of my favorites.

"What're the best-designed things you've ever used?"

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

<comment><USER28> I read that as "You're the best-designed thing you've ever used", which sounds like a inspirational poster in a church office, so I expected a bunch of rants about intelligent design :)

</comment></comment><comment> m-i-l See also the YC curated selection of HN highlights[0] and also an algorithmically generated list of (recent) best comments[1].

[0] [https://blog.ycombinator.com/category/hacker- news/](https://blog.ycombinator.com/category/hacker-news/)

[1] [https://news.ycombinator.com/bestcomments](https://news.ycombinator.com/bestcomments)

</comment><comment><USER29> Producer vs. Consumer

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

</comment><comment><USER30> I like this one:

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

<comment><USER31> This is a great one

<comment><USER32> particularly, this comment: [https://news.ycombinator.com/item?id=18856271](https://news.ycombinator.com/item?id=18856271)

<comment><USER2> Another favorite of mine: [https://news.ycombinator.com/item?id=18861388](https://news.ycombinator.com/item?id=18861388)

</comment></comment></comment></comment><comment><USER33> Lets say you were just hired as the President of a furniture company. The owner says he knows it's good furniture but even despite huge investments they can't seem to sell any furniture. Your job is to turn things around...

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

</comment><comment><USER34> I have really enjoyed reading peoples recommendations on what they have learned and how they have grown, this post on "What has the past 12 months taught you?" is really interesting: [https://news.ycombinator.com/item?id=17316120](https://news.ycombinator.com/item?id=17316120)

</comment><comment><USER35> Here's my favorite comment, which I believe deserves status as a law of the internet: [https://news.ycombinator.com/item?id=1012082](https://news.ycombinator.com/item?id=1012082)

</comment><comment><USER36> This one, about the "medicinal benefits" of Cinnabon: [https://news.ycombinator.com/item?id=15615654](https://news.ycombinator.com/item?id=15615654)

</comment><comment><USER37> You can view everyone's favorites in their profiles. [1]

[1] - [https://news.ycombinator.com/favorites?id=JunaidBhai](https://news.ycombinator.com/favorites?id=JunaidBhai)

</comment><comment><USER38> This is an all-time gold:

"Did you win the Putnam?"

Yes, I did.

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

</comment><comment><USER39> I really enjoy this one:

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

</comment><comment><USER40> x0x0 on: Canada to Scrap IBM Payroll Plan Gone Awry Costing... [https://news.ycombinator.com/item?id=16495504](https://news.ycombinator.com/item?id=16495504)

> Humans are very good at holding lots of exceptions in our heads and, in the > absence of clear rules, doing reasonable things. Computers are shit at both > of the above.

</comment><comment><USER41> I've always loved the posts where people share their side projects that are making them $xxx / month.

</comment><comment><USER42> ry_ry imagines a possible future for the kernel after Linus is gone.

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

Funny and very well written.

Edit: pasted a wrong link, fixed the context

</comment><comment><USER43> The ballooning one</comment>


Hails Web Platform Framework - <AUTHOR> http://hails.scs.stanford.edu/

<comment><AUTHOR> A web framework for building web platforms instead of websites/apps, where a web platform is specifically intended to integrate untrusted 3rd party apps/plugins/etc - eg Facebook, Twitter, etc.

See GitStar ([http://gitstar.com/](http://gitstar.com/)) for a simple implementation - a code repository like GitHub except where all functionality is implemented by untrusted 3rd party plugins.</comment>


Opster: Pythonic option parsing - <AUTHOR> http://blogg.ingspree.net/blog/2009/09/14/opster/

<comment><USER2> Wait, I missed the newsletter: what don't we like about optparse?

<comment><USER3> My gripe with optparse is that there's no built-in way of reading options from a config file, and allowing them to be overwritten from the command-line. I've ended up kludging together my own code to do so (as, I think, have many others), but I'd much rather have that kind of thing work out-of-the-box.

But, at first glance, this new 'opster' doesn't try to address that.

<comment><USER4> What about something like..

        defaults = load_stored_config_to_dict('example.conf')

        parser.add_option(
            "-q",
            "--quiet",
            action="store_false",
            dest="verbose",
            default=defaults['quiet'],
            help="don't print status messages to stdout")

<comment><USER3> yeah, that's not a bad way of doing it. I ended up with something more convoluted, partly because of the catch-22 situation of wanting to be able to specify the config file from the command-line.

More discussion of this problem: <http://deadbraincells.org/configopt/docs/configopt.html> [http://wiki.python.org/moin/ConfigParserShootout#ConfigParse...](http://wiki.python.org/moin/ConfigParserShootout#ConfigParser.2CoptparseMarriage)

</comment></comment></comment></comment><comment><USER5> This reminds me: did anything ever come of Zed's "Curing Python's Neglect" blog post? He wrote:

> but I realize that none of this will be fixed until > there's a cultural > shift in Python away from this > habit of Neglect.

Did that end up motivating any positive change?

</comment><comment><USER6> The argument parsing file used by Lamson is pretty good.

[http://bazaar.launchpad.net/%7Ezedshaw/lamson/development/an...](http://bazaar.launchpad.net/%7Ezedshaw/lamson/development/annotate/head%3A/lamson/args.py)

<comment><USER7> Lamson's argument parsing is directly addressed at the top of this article.

<comment><USER6> Yes I am aware, but he doesn't like it. I do.

<comment><USER7> Do you care to address any of his points so as to be relevant to the article ostensibly being discussed here? He makes a fair argument to use his options, rather than Lamson's.

<comment><USER6> He looked at a Lamson release several versions out of date and several of his points are incorrect. So not only did he not take the time to check the newest version, he didn't take the time to properly analyze the version he did check.

Choice example: _command function (can't invent better name, sorry) need to have preformatted name (like command_ping)_.

This is incorrect. From the documentation: _Note that the _command suffix is optional and configurable, but it is there to disambiguate your commands so you can use Python reserved words and base types as your command names. Without it, you can do a list_command or a for_command._ This is after line _10_ of the Lamson argument source file. Couldn't read that far I guess.

I wont bother addressing his other points. Putting in effort to refute an argument put together with no effort is nothing something I enjoy doing.

<comment><USER7> This would've been a much better initial post, though it still fails to address the merits of the system - more DRY, less required human toil, and (apparently) errors on incorrect command lines.

<comment><USER6> I wasn't criticizing the new system, just his poor representation of existing solutions. I don't need to address the merits of his system. As for why I didn't make that my initial post, see above. Also, anyone who bothered to click on the link I provided could have seen just as easily as I did that the claims about Lamson were false.</comment></comment></comment></comment></comment></comment></comment>


πfs – A data-free filesystem - <AUTHOR> https://github.com/philipl/pifs <comment><USER2> I've been working on an alternative implementation of this but using tau instead, I'm not sure if my calculations are correct but I think it offers a 2x speedup over this method.

It's still in stealth mode but I'm hoping to unveil it sometime in late June.

<comment><USER3> Since the code already exists, within pi - or tau - surely all you have to do is to find the working code with it.

I'm sure that you can do that before noon of the first of next month.

<comment><USER2> Actually I was going to unveil another project that day. I've been excitedly working on this idea since I had the epiphany last night. So, I was checking our logs over the weekend and noticed that no jobs or processes ran between 2 and 3 AM early Sunday morning. I thought it was a fluke of our system, but I started poking around in unrelated logs and I found the same thing. I even looked at a couple of public systems and saw the same thing. Now I don't know why this is but apparently NO Unix systems (and I think maybe Windows too) ran any processes during that window. Is it some bug in the OS? Maybe, but I can exploit it.

So I've designed a once-a-year data processing system. It's going to queue up all your requests throughout the year and save them for this "quiet window" and then distribute all the jobs across all network connected computers running this new code. I think I'll make a pull request to Linux for maximum coverage. The best thing is, there is absolutely no performance hit or impact on everyone's servers because they're ALREADY not being used.

<comment><USER4> I heard that all the servers in Arizona still processed data during that time. Sounds like a conspiracy to me.

<comment><USER5> Arizona is able to compute during that time period due to the residual heat in the desert providing energy.

</comment></comment></comment></comment></comment><comment><USER6> This concept reminds me of [https://libraryofbabel.info/](https://libraryofbabel.info/)

"At present it contains all possible pages of 3200 characters, about 104677 books." ([https://libraryofbabel.info/About.html](https://libraryofbabel.info/About.html))

<comment><USER7> * "At present it contains all possible pages of 3200 characters, about 104677 books." *

Copy-paste error caused a dropped exponent. It's 10^4677 books.

<comment><USER6> Oops, it's too late to edit now.

</comment></comment></comment><comment><USER8> I think it is fair to say my gene sequence is somewhere in there. It is also fair to say that my gene sequence is somewhere with alterations where my stomach processes Chipotle burritos with less.. fanfare. So it sounds like I need to come up with some kinda of a CAS9-ish process of finding this better burrito processing version of my gene sequence inside pi. The better version of my 'life of pi' for burritos.

</comment><comment><USER9> Of the more obscure file systems, pingfs is still my favorite. [https://github.com/yarrick/pingfs](https://github.com/yarrick/pingfs)

<comment><USER10> > pingfs is a filesystem where the data is stored only in the Internet itself, > > as ICMP Echo packets (pings) travelling from you to remote servers and > >back again.

So... if your Internet connection goes down, you lose all your data?

<comment><USER11> > So... if your Internet connection goes down, you lose all your data?

So it is like every cloud service...

</comment></comment></comment><comment><USER12> I wonder if it might be easier to start with a immutable tree of typical office documents. Then filesystem just stores the diff. Eg you save a memo document and its pretty much the same as one of the standard memos. Think of the savings.

</comment><comment><USER13> Supposing I found the index location of the next Star Wars movie in pi, would it be copyright infringement for me to mention that on a forum?

<comment><USER14> I'm not sure it could be but I'm not expecting this to happen during any of our lifetimes :)

<comment><USER15> Let's redefine copyright timelines in terms of computational effort to find its location in pi.

</comment></comment></comment><comment><USER16> Do we know that every possible finite sequence exists in pi?

<comment><USER17> IIRC, since there are an infinite number of digits in Pi, and there are no infinitely repeating finite sequences in Pi, there are therefore an infinite number of finite sequences in Pi.

Granted, the index might be larger to represent than the actual sequence you're indexing, but...

<comment><USER18> "An infinite number of finite sequences" does not mean "all finite sequences". For example, the number 1.10100100010000100001... contains an infinite number of finite sequences, but does not contain, for example, any sequences with a 2, or even the sequence '10101'.

<comment><USER19> You cannot bend the rules in this way and still equate it to the question at hand - you're introducing characters outside of base2 in your example. If you stuck within the realm of base2, '2' in its binary form certainly appears in the pattern.

Not only that, but Pi is normal (all digits distributed evenly), and your sequence clearly is not.

I understand what you are saying - indeed there are infinite finite sequences - but it just does not apply here.

<comment><USER20> The example isn't base two. It's base 10. It just happens to be a number that only has 0s and 1s. Like eleven. Or 1000.

</comment></comment></comment></comment></comment><comment><USER21> Someone needs to alert the White House about this. Terrorists implementing piFS will have access to all the secrets of the US.

The movie industry should just shut down now. Any two people implementing piFS will have already shared all possible movie files, including future, unreleased films.

Your medical records are now available to anyone with time and patience.

The horror!

(Seriously, we should see if we can wind up Spicer about that first one and see if he explodes).

</comment><comment><USER22> > Now, we all know that it can take a while to find a long sequence of digits > in π, so for practical reasons, we should break the files up into smaller > chunks that can be more readily found. In this implementation, to maximise > performance, we consider each individual byte of the file separately, and > look it up in π.

So basically like a regular filesystem except now lookup each byte every time you intend to use it?

<comment><USER23> This is a reference to a common situation that arises anywhere in the internet that compression is discussed. There is a segment of people who seem to find it personally, mathematically, or even perhaps morally offensive that there can exist no algorithm that can take all possible inputs and be guaranteed to emit something compressed by at least one bit. This seems to be true despite the fact the proof of this statement is very, very simple; it can be sketched on a literal post-it note and you could easily convince an open-minded 10-year-old of its truth.

In those situations, you can bet money that some compression scheme will be proposed that fits into at least one of the two categories "did not check to see if it actually compresses data" or "works by hiding bits where you forgot to count, but they still count".

"I'll just give an offset into pi" is in the first category; it does, technically, work, in the sense that it can validly represent the original data, but it turns out that in order to represent the offsets into pi it takes more bits than the content had in the first place. (You can get lucky every once in a while, and store 14159265 as "0/8", but the vast, vast majority of sequences get expanded.) _Everyone_ proposes this one. It's almost funny how often it gets proposed, given that it is actually a very slow method for making your data bigger. Don't hold your breath for your Fields Medal for that one.[1]

An example of the second case is "I'll just store the first few bytes in the filename of the file and then 'forget' that I have to count the filenames in the size of the compressed content". Vigorous, month-long debates about whether or not something "counts" as part of the content will follow, which can be resolved by pointing out that the challenge is basically to give a stream of bytes over the network to a computer that only has the algorithm on it that fully reconstructs all the content, but this rarely satisfies Our Hero who has discovered perfect compression.

I add the word "moral" not just as a jab, but as the only way I have to explain how these people react to things like pointing out "if that worked, I could compress all files to one bit/one byte" or "I can't actually reconstruct the original content with that information". They get _offended_.

[1]: Just for fun, let's implement the ideal "index into a sequence" compression algorithm. This is not written to proof standards, but "give the reader the flavor of what is going on" standards. (Technically it assumes the proof, in an attempt to illuminate it from another direction.) The problem with pi is that it tends to repeat a lot. Let's chunk up 8 bits into a byte, since that's pretty common, and let's build the idea sequence of bytes that we can index into easily. For completeness, let's just index the 8-bit bytes in a one sequence:

         00000000000000010000001000000011

and so on, 0, 1, 2, etc, up to 255. The most efficient way to index this list is to break it up along the 8-bit boundaries, because you'll find (if you try it) that any more clever attempts to exploit overlapping numbers will end up at best matching that performance and at worse taking more bits. Therefore, we can index into that list to get a 0 as... 0. And the index for 1 is... uhhh... 1. And 143 is... 143. And so on.

You'll find this approach, extended into as many consecutive bits in a row as you please, will _wildly outperform_ pi as a sequence to index into to get values. Because this is, of course, just the identity transform, and pi in practice does _way worse_ than that. This transform is also wildly more efficient than the pi indexing operation, having computational complexity O(zero), if you'll pardon me the abuse of notation.

<comment><USER24> > _the proof of this statement is very, very simple; it can be sketched on a > literal post-it note and you could easily convince an open-minded 10-year- > old of its truth_

Could you write that proof here, for the benefit of tired HNers who are just finishing their day of work?

<comment><USER25> Pigeonhole Principle. The number of messages of bit length N is 2^N. You are trying to map these into 2^M compressed strings, M < N. By the Pigeonhole (or Dirichlet's Box) Principle, at least one compressed string will have more than one message mapped to it. So it cannot be reversed.

<comment><USER23> Yup, that's the one.

The "literally sketchable on a post-it note" is that you can show this for 1 bit, 2 bits, and 3 bits pretty easily, and 4 bits if you sketch small enough. At that point it's not hard to see this goes to infinity, maybe not rigorously enough to pass for a proof, but pretty strong. (It's a fairly small step to an inductive proof from there, though this verges on a trivial proof by the time you've laid all the bits out.)

</comment></comment></comment></comment></comment><comment><USER10> This brings to mind a practical question - what's the largest valid file that's been located in the digits of pi? Has anyone yet found a valid jpg, say? Or gif? PDF? I suppose a text file would be easiest.

<comment><USER26> "Text files" are perhaps underspecified (what character set?) but a good fraction of bytes would, by themselves, count as valid text files.

<comment><USER10> We can be generous and say any common character set - ASCII, Latin-1, UTF-8, UTF-16, etc. It'd be interesting to see the longest intelligible phrase has found so far.

</comment></comment></comment><comment><USER27> Haha, I love it.

To anyone confused: Look today's date!

<comment><USER28> They were talking about Pi day on the radio. "Today is the day the whole world celebrates Pi day". No, it really doesn't. It's just the US, the only country in the world that uses the MM/DD/YYYY order.

<comment><USER29> Well, since you're being pedantic... this _is_ the only day the whole world celebrates Pi Day, because it only occurs in the US date format. So... their statement is correct.

<comment><USER30> We can celebrate pi day too, just to less accuracy. The third of January?

<comment><USER31> Or, you could celebrate pi time every single day, to as great a level of accuracy as you choose :)

</comment></comment></comment></comment></comment><comment><USER32> The indexing kinda sucks though. I can never seem to find what I'm looking for.

</comment><comment><USER33> If you could convert all algorithms to constant time operation you could simulate the universe at any point in the future or the past and just read the bits out of memory from simulated future RAM as long as any correct algorithm was used to read and write bits to disk.

</comment><comment><USER34> I wonder, assuming the computation was instantaneous, how effective it would be for compression.

<comment><USER35> If computation is instantaneous, then you could recurse down to a single pointer, which points to a pair of pointers, which each point to another pair, and so on until you have an arbitrary amount of your data. Since computation is instantaneous, it is instantaneous to compute this first pointer for the contents of any hard disk. And since computation is instantaneous, rebuilding the files on the disk from that pointer is instantaneous.

Your compression ratio would approach infinity.

<comment><USER35> Nevermind, I neglected to take into account the length of that pointer:

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

</comment></comment></comment><comment><USER36> The problem with that is that the length of offset pointing to your data is going to be geometrically(or worse?) bigger than the size of your data.

Thus - storing and maintaining the offset in PI becomes more expensive than storing data elsewhere.

</comment><comment><USER37>
        As long as you know the index into p of your file and its length,
        its a simple task to extract the file using the Bailey–Borwein–Plouffe
        formula Similarly, you can use the formula to initially find the index of your file

        Now, we all know that it can take a while to find a long sequence of digits in p,
        so for practical reasons, we should break the files up into smaller chunks that
        can be more readily found.

        In this implementation, to maximise performance, we consider each individual
        byte of the file separately, and look it up in p.

I'm not entirely convinced my files would be present in those smaller chunks. You would need a copy of π (p) going way past the 5 trillion digit world record. Even then it's not guaranteed the bytes needed would be there.

<comment><USER38> Bailey–Borwein–Plouffe lets you calculate the nth binary digit of pi without calculating 0..n-1.

You would not need to store the entire number.

[https://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%9...](https://en.wikipedia.org/wiki/Bailey%E2%80%93Borwein%E2%80%93Plouffe_formula)

You

</comment></comment><comment><USER39> I work in bioinformatics. I remember writing a rough implementation of this for the human genome during my phd as a way to compress sequence information. Turns out it doesn't perform better than gzip.

<comment><USER40> Did it perform better than _cat_?

</comment></comment><comment><USER41> I bet that the index will be larger than the data for most cases... but then you could store the index of the index... of the index, and the number of times this goes on.

</comment><comment><USER42> lol, this reminds me of the time when I took the numerical calculus class at the uni and I came up with the best compression algorithm ever: compress a file by using the bytes as points, so the only thing you need to recreate the file is to calculate the newton poly for that set of numbers. Of course, that also requires the metadata for the newton poly, and since you don't want a lossy algorithm, you need to make sure all points are represented.

</comment><comment><USER43> Is this inspired by "A Hard Boiled Wonderland and the End of the World" by Murakami?

A really great literary read btw.

</comment><comment><USER44> Seriously for a second - can you mathematically prove that a certain sequence does not exist in pi?

<comment><USER45> I don't think we know whether it is decidable whether you can, but we certainly cannot (?yet?)

As other posts already said, if, as many think, π is _normal_ ([https://en.m.wikipedia.org/wiki/Normal_number](https://en.m.wikipedia.org/wiki/Normal_number)), every sequence appears in it. If it isn't, that still is open.

</comment></comment><comment><USER46> This README file is more hilarious than this source code.

</comment><comment><USER47> Hey, if CPU is abundant and memory is limited, why not?

<comment><USER48> Because it's likely that the size of the index into pi is larger than the data itself.

<comment><USER47> Good point. Actually, that brings up an interesting question: what is the mathematical relationship between the size of the input and expected offset?

<comment><USER44> Probably not a good one the more you increase your data size

</comment></comment></comment></comment><comment><USER49> πfs for Hadoop!</comment>


Ask: what do all of you think of Cuill (and other search startups)? - <AUTHOR> http://www.cuill.com/founders.html I'm skeptical of anyone who tries to play in the same ballpark as Google, but it looks like Cuill is composed of a fair number of ex-Googlers and others who are smartypants.<p>Anyone know anything about Cuill and what they do that a Google search wouldn't turn up? <comment><AUTHOR> Cuill seems noteworthy in that two of the founders are ex-Googlers and all of them seem very smart. "Cuill is a stealth search engine startup which claims that it can index web pages significantly faster and cheaper than Google. Cuill has told potential investors that their indexing costs will be 1/10th of Google's, based on new search architectures and relevance methods."

I can't find anything that indicates whether there's any substance to their claims. Certainly very smart people can do interesting work whose significance they greatly embellish and overestimate (AI researchers in the 70s and 80s).

<comment><USER2> The logical argument against that seems to be that indexing costs aren't Google's major problem and cheaper indexing wouldn't provide much of a competitive advantage.

<comment><USER3> Exactly, reducing the indexing cost has little to no impact on the customers, so there is no competitive advantage to using Cuill over Google for searchers. They claim more "relevancy" but there is nothing to support that claim so far, but I'm eagerly awaiting it.

Even better relevancy may not be enough as most people believe current search technology is "good enough". It would have to be very innovative. If nothing else, they're a good acquisition target for an existing search company looking to further reduce costs and increase profits or allocate more resources towards more computationally expensive algorithms (spam filtering, semantics, content targeting, etc.)

<comment><USER4> Ah, but they did say they can do it faster. If they can survive long enough to catch up and pass Google or Yahoo in terms of sheer numbers of pages indexed, they may have something.

I think if they can index significantly faster, then it's highly likely they'll be bought up by Google or the competition for their indexing tech before anything in mentioned in that first paragraph happens.

<comment><USER3> Faster? Interesting! I hadn't heard that before. Personally I'm rooting for them, I would love to see some innovation in the search market. Unfortunately I just don't see the consumer benefiting directly much from any of this. I hope they prove me wrong.</comment></comment></comment></comment></comment>


Show HN: Guides – Add a knowledge base to your existing website - <AUTHOR> http://userdeck.com/guides

<comment><USER2> This is cool. I know it would be useful to many different departments within larger organizations. Who are you targeting? large businesses or small mom and pop's?

<comment><USER3> Thanks Paul! We're targeting both markets, but our primary focus is on SMBs.

We'd love to get your feedback on it if you have any suggestions or ideas.

</comment></comment><comment><USER4> Any plans for a self-hosted installable version? This is something that we can use, but we won't use it as a service.</comment>


How to Read a Scientific Paper (About a Scientist With a Worm in His Mouth) - <AUTHOR> http://www.wired.com/wiredscience/2013/10/how-to-read-a-research-paper-about-that-scientist-with-a-nematode-in-his-mouth/ <comment><USER2> Yes, this really is what the title says. Quote from the article after the scientist discovered the worm in his mouth: "Wow, this is really interesting," thought Allen. And then 1) I hope it's not fatal and 2) I hope it's publishable"

Not your typical reaction... this is another article that also adds some imagery: [http://www.wm.edu/research/ideation/notes-and- curiosities/ti...](http://www.wm.edu/research/ideation/notes-and- curiosities/tired-of-being-a-host123.php)

</comment><comment><USER3> A quote that I loved from the article: _Allen did email his colleagues with the subject line: "A paper in my mouth._

Ahh, _science._

</comment><comment><USER4> How was it moving under skin without causing pain or inflamation?

</comment><comment><USER5> He's an American and he is not suing the oral surgeon for malpractice? Also that was really gross.

</comment><comment><USER6> I must admit I read the article (wired, not the paper), but I don't get the point at all. The relevance to my life appears (hopefully) to be zero.

<comment><USER7> Do you aim to only read things relevant to your life? I thought it was entertaining.

<comment><USER6> Actually, yes. And if I read something for entertainment, I don't tell other people they _should_ read it.</comment></comment></comment>


It's a seven-character fix - <AUTHOR> https://github.com/remy/nodemon/pull/787 <comment><USER2> Highly entertaining, I wish someone did a screenplay with this.

On another note: I do maintain one or two a-tiny-bit-popular repos on Github myself, and every time I receive a comment or pull request I'm always surprised how much that "job" is not worth doing. Most contributions are useless and most developers behave like spoiled, stupid, five year olds. (No offence, I'm including myself here.)

</comment><comment><USER3> How does allowing `:`, `\n`, and a bunch of other characters that might be problematic in a Unix or Windows shell fix anything? What if every time someone demanded "change these seven characters," project maintainers complied?

Without a test, without a clear problem spec, without an explanation of why those specific seven characters are _the_ fix.

What would happen then?

<comment><USER4> They opened a new pull request and merged it.

[https://github.com/remy/nodemon/pull/789](https://github.com/remy/nodemon/pull/789)

A few bad habits I noticed:

\- Adding a "chore" commit to an unrelated pull request. (like an earmarked bill)

\- Modifying the source with no explaination in a commit that should only add tests. (and didn't add a test for that change)</comment></comment>


It's time for the US to use the metric system - <AUTHOR> http://www.vox.com/2014/5/29/5758542/time-for-the-US-to-use-the-metric-system <comment><USER2> Contrary to what this article claims, I would say that the motivation for such a switch has never been weaker.

\- The switch to metric has already taken place in science and engineering (where it's most harmful to have 2 systems), largely because of the horror stories from decades past mentioned in the article.

\- Packaging and labeling costs associated with having 2 systems is effectively zero because it's all automated.

\- Everyone has a computer in their pocket capable of performing a conversion if they really get in a bind (though this has literally never happened to me)

On the other hand, people are generally content with using the imperial system so a switch would be met with a lot of resistance. This resistance, coupled with increasingly vanishing costs associated with having 2 systems leads me to believe that this switch is not going to happen in my lifetime.

TLDR; The metric crusaders need to find a new cause to pour their energies into.

<comment><USER3> > The switch to metric has already taken place in science and engineering > (where it's most harmful to have 2 systems), largely because of the horror > stories from decades past mentioned in the article.

A nontrivial fraction of science and engineering is still done using an unholy mix of US customary and metric units. For example: laser optics frequently have diameters specified in inches and focal lengths in millimeters. Even for science experiments, things like screws and threads are SAE/UTS and not metric. Parts for machining are often specified in US customary units. Torque requirements are often specified in foot pounds.

Non-metric units aren't dead in science, but I sure wish they were.

</comment></comment><comment><USER4> Its been time for two centuries.

<comment><USER5> One could argue that it is _now_ time to have measurements based on computer- friendly _powers of two_ rather than ten.

</comment></comment><comment><USER6> Part of the problem of mixed system is lack of intuitions. I grew up in the metric system, so I still struggle with intuitions from imperial systems. (It's very hard for me to "feel" 10 feet, while I have an instant feel what 3 meters is like.)

Most cases, this won't cause issued beyond missed perceptions, but it can hamper the ability to detect anomalies -- perhaps part of the reason what caused some of the incidents described in the article as well.

Long ago, I once overheard someone's conversation, this was an architect in the process of designing a home for foreign market, and he was designing closets in some room too small, again, because he had to work with obscure units (for Japan, they use "Tsubo," about 3.306 square meters / 35.58 square feet -- and yeah, this is one of the few places that Japanese people are still stuck with customary units...)

</comment><comment><USER5>
      Congress could pass a new law with a hard
      mandate and a solid timeline to switch over

using exactly what _power_ granted by the Constitution?

Congress _could_ pass a law that government contracts must limit procurement to metric-denominated products, but that's not quite the same thing.

</comment><comment><USER5>
      Foreign manufacturers also have to modify products
      just for the US market (or decide that maybe it's
      not worth the bother)"

How so? I can't think of an industry that does this other than to make a product _specifically for measuring_ , like tape measures.

A bigger trade issue is differing national standards, such as making left- side-driver versions of vehicles for those countries that drive on the right (much of the world that doesn't speak English or Japanese).

BTW, did anybody get that "Boeing 767 ran out of fuel midair" story link to work?

</comment><comment><USER7> I really think the resistance to switching is political. America does a lot of things differently than the rest of the world, and the people in power want it to stay that way.

They see some advantages to keeping the general populace on the imperial measurement system.

1\. They are afraid of problems which might surface during a conversion from imperial to metric due to the large population.

2\. They want to make it harder for the populace to compare things in the US to the rest of the world.

3\. They are lobbied to keep a non-decimal measurement system in place to make it harder for customers to compare product sizes vs. price.

</comment><comment><USER8> The US has chosen an AP approach to the metric system rather than CP. As it turns out, because there are AP approaches the rest of the world winds up with AP rather than CP for it's measurement system.

And don't blame the US, the simplest way to lay out a futbol pitch is in yards and feet.

</comment><comment><USER9> If metric were so superior people would just do it because it made things easier.

People don't have incentive to switch, because most people don't have to do math.

</comment><comment><USER10> Getting closer, but we aren't there yet.

Truth is, there is a TON of industrial machinery, tooling, fasteners, and more centered on Imperial units. Increasingly, new projects are happening in SI units too. This may start to snowball in the near future. Some of this is driven by global networking effects. Common units are a must, and global engineering efforts are less efficient with Imperial units.

Most of the new work in the major vertical industries is now Metric (SI). That's been a long, painful transition. They still carry a lot of ongoing, sustaining engineering and a supply chain supporting it and it's Imperial units however. I'm not sure the author really appreciates the weight of this legacy. It grows a little lighter every year, but it's still very significant and very costly.

In the US today, there are ~200 to 250K small to mid sized manufacturers. These remain all over the map, and they typically are the last to adopt new units and technology. It's not that they are lazy, or unable, though unable is a factor. It is all about that investment making sense for them. Often, it just doesn't. If what they have works and they can compete they will do that. Machinery investments are often significant and multi-decade long service life is expected.

Older machinery often doesn't work in dual units, and when it doesn't, conversions are error prone and confusing to everyone in manufacturing, which leads to the problems of dual units, duplicate drawings, etc... It's often easier to either continue with Imperial units, or target some switch over date to minimize the problem, and when older machinery remains capable, incentives to phase it out are low. Incentives to rework / upgrade it can be attractive though, depending.

It's a lot better than it was in the 80's and 90's, when I began to have some direct familiarity with manufacturing. Back then, I was a prototype mechanic for a while, and maybe 1 out of 100 jobs was metric. Back then, the first thing most often done was a conversion and check. It was rare to work in the Metric units directly. Most test and measure equipment in use, as well as the machines, were Imperial units and often didn't even have the capability to switch.

I just toured a nice mid sized shop recently. Almost all the equipment in the building was dual unit capable, with a nice mix of units seen in the drawings and data on the shop floor. Some older machines were running new, reasonably advanced controllers too. (Yes, I looked some of that over out of interest as I will be sending that shop some work in Metric.)

The company I manage has just started it's first couple of Metric projects. Reason: comparability with robotics, where Metric dominates.

If you ask me, my hunch is that we will see a more significant incentive to switch formally when robotic automation has matured in the small to mid-sized manufacturing market, and the last of the old guard machines has gone past it's useful service life and is phased out.

This may be accelerated by new, small, lean, localized manufacturing coming on line about now. It's growing more practical to setup shop and serve niche ecosystems and still make money. This is a ripe target for new business, new machinery, and that's all very highly likely to at least support metric (SI) units.

All of the useful software is dual unit now. That has been a non issue for well over a decade. Legacy software can take forever to cycle out of manufacturing, and it's finally happening en-masse. Really old stuff, DOS and older, is almost never seen now, meaning the tools from the 90's is in aggressive phase out and with that, the last of the single unit software solutions goes out the door.

Until then, there will be more than enough inertia backing Imperial units.

Maybe 10, 20 years at the earliest? We might be able to take a step, like preferred units, depending on how we want to handle our huge Imperial unit based legacy.

All that said, if we want a jobs program, just pass a mandate and fund the crap out it. We will pay hard for a decade, but we will have largely switched too. I don't see that happening, though it would be good for us to do, largely because we will carve out lots of stuff for cost reasons, and we will do that, because investment spending is poorly differentiated from other kinds of spending in the US right now, taking meaningful legislation and the funding needed for it off the table hard. A well thought out plan has the potential for real economic stimulus as well as some gains in terms of overall manufacturing capacity and efficiency. From a pure competitive standpoint, this kind of investment could be a great idea.

Barring some real change in how we think about spending overall (fat chance!), ongoing and incremental industry improvement driven by global network effects will nudge us there, bit by bit.

Good as it gets right now kids.</comment>


Show HN: Docspell – a fresh document organizer written in Scala and Elm - <AUTHOR> https://github.com/eikek/docspell <comment><AUTHOR> Hello HN,

for about the last year I worked in the evenings on a tool that would let me cope with all the postal and electronic mail and documents that arrive at home to get a bit organized there. It's a rather basic software (more an opinionated tool in contrast to a generic "dms"), but it serves me quite well moving away from too much paper.</comment>


Gas memory could send spooky messages the full distance - <AUTHOR> http://www.newscientist.com/article/dn16282-memory-trick-may-send-spooky-communication-the-full-distance.html <comment><AUTHOR> I would love it if someone qualified could explain this article a bit more; specifically, they're NOT talking about faster-than-light information transfer, correct?

<comment><USER2> The reporter once again demonstrates that the worst thing about reporting is reporters, as the reporter clearly is talking FTL communication. A little knowledge...

It sounds like this person is researching communicating actual qubits, instead of conventional ones and zeros, over a communication link. Basically, a networking technology for quantum computers that remains quantum. Interesting, but with no FTL communication implications.</comment></comment>


Spark Electron: Cellular dev kit with a simple data plan - <AUTHOR> https://www.kickstarter.com/projects/sparkdevices/spark-electron-cellular-dev-kit-with-a-simple-data

<comment><USER2> Ouch, that's quite a price for data when you can get gigabytes for $10 each.

I'm sure it's not their fault, cell companies love to gouge.

But I thought I'd compare with a couple other options*

Spark: $3 per device with 1MB, $1 per MB

Ting: $6 per device, $3 for 100MB shared

Zact: Requires a Zact device. _claims_ $0 per device, can do 20MB for $1.40 or 100MB for $3.08, shared

* selected arbitrarily on the basis of Ting being an option I've heard good things about, and Zact showing up in search results when I tried to remember the name of Ting

<comment><USER3> I think it's pretty obvious that they're not trying to compete in cost per GB. The point is that if you're running a sensor that phones home once a day, you probably have less than 1MB's worth of data to send per month anyway, so your total cost with Spark is $3, whereas for Ting it would be $9. That the Ting option comes with 99 more megabytes is immaterial if you don't have 99 megabytes' worth of stuff to send.

<comment><USER2> Price per GB is not their _main_ concern, but it's still pretty amazing that the price is far more than ten times higher than it could be.

I'm just pointing out that while this is about as good as you can get for 1MB, if you need perhaps 5MB there are better options, and god help you if you try to use 20MB on this plan.

<comment><USER4> You're treating it as if transfer is the only cost associated here. Every one of these lines requires consuming a telephone number, which is a fixed cost passed down from the MVNO

<comment><USER2> That's the $3 part.

</comment></comment></comment></comment></comment><comment><USER5> Two things:

It's annoying that they are selling a 2G model. It'll be useless about a year after they start shipping.

The data rates are absolutely comedy. Considering EU roaming laws mandate that carriers have to sell at a wholesale level at 5 eurocents/MB, that is a giant markup. Perhaps there is some level of basic admin on the accounts, payment processing etc, but charging 20x the wholesale regulated cost isn't great.

<comment><USER6> It's not useless in Europe, where 2G will be supported for years to come.

<comment><USER5> Will it? Says who? Already operators are refarming 2G spectrum out in the UK at least. There may be coverage but it may become increasingly patchy as it is reused for 4G.

</comment></comment></comment><comment><USER7> Did they say anywhere who's network they were using for their MVNO buildout? I didn't see that on the Kickstarter page.</comment>


Ask HN: Interest in teen trends? Or already exists? - <AUTHOR>

I'm trying to find a place that will tell me what's trending for the youth.  For example, teens are leaving Facebook, and going where? What devices do they use?  What apps? Is there a good place to find this?  If not, would people be interested if I created a blog or newsletter or something about this? <comment><USER2> I know this isn't what you asked for, but I'll provide my perspective, being an American teenager.

(not that this is not necessarily true for all segments of the teenage population- it only reflects my firsthand observations of upper-class, suburban, well-educated teens)

Social Media:

-Facebook: It's not like teens are in-mass deleting their Facebook accounts, however most are visiting the site less and less often. When they do visit, it is usually to post/look at photos or chat. Status messages and non-birthday wall posts basically are no longer used. Many younger teens are not creating Facebook accounts in the first place, this Freshman class is the first time I've seen many students without accounts

-Twitter: Twitter has become very popular, but there is still a large segment of the teen population that doesn't "get" it and has no interest in using it. I feel like it is very unlikely that Twitter will be able to win over these people.

-Instagram: A year ago, I would have said that Instagram is the most popular social network, however it seems to be getting less use in recent months. It's still very popular. The impending addition of ads have the potential to significantly turn-off Instagram's user base.

-Snapchat: I personally don't "get" Snapchat, however it is incredibly popular, and, contrary to popular belief, it is used more for selfies than sexting.

-Vine: Some people love it, some people hate it. Reposting "funny Vines" is popular, but I don't think too many teens are actually using the service itself.

-Tumblr: Used by a younger audience, and used mainly for porn.

-Tinder: Very popular on certain college campuses, but not at High Schools.

Devices:

-Smartphones: like any other affluent population, iPhones are the most popular, but Android phones are preferred by people who consider themselves more "geeky." The few teens I know who have gotten Windows phones have hated them, mostly because of the app ecosystem (or lack there of). There is a very, very minute segment of the teenage population that still swears by their Blackberry keyboards.

-Cameras: DSLRs (Canon or Nikon) are very prevent. Very few people have MILCs.

<comment><USER3> What about Kik? My colleague's daughters seem to use that.

And another one.. They use facetime or Google hangouts and just leave the camera on. Is that a common behavior?

<comment><USER2> Kik is more often used by teens who have Android phones. iMessage group messaging is much more popular on iPhones.</comment></comment></comment>


Logitech Linux support - Vote plz - <AUTHOR> http://forums.logitech.com/t5/Mice-and-Pointing-Devices/Performance-Mouse-MX-and-others-Linux-support/td-p/835604

<comment><USER2> Please do not write "Vote plz" in the headline. Thanks.

</comment><comment> cm-t I would like have more support. Something like the wacom tablet menu in system setting</comment>


Productivity brought by Clojure [slides] - <AUTHOR> https://www.slideshare.net/humorless/the-productivity-brought-by-clojure-149170292/ <comment><USER2> Clojure's immutable data structures (lists, vectors, maps and sets) are actually _not_ copy on write, they're based on red-black trees such that when you "mutate" the value, a new one is created that shares everything but the mutated part with the original.

Clojure is amazing and i can't recommend it enough. I wish more people looked past the unfamiliar syntax and understood why it exists and how it makes you achieve more with simpler code.

<comment><USER3> I'm pretty sold on Clojure's value, I've read up on its structure/syntax, but generally struggle with learning the standard lib and trying to read/write actual code. Any resources you can recommend for gradually ramping up, and/or "lightbulb moments" for a dev steeped in C-like languages?

<comment><USER4> If you're new to functional programming, I recently gave a talk on applying FP concepts at ClojureNorth:

[https://youtu.be/vK1DazRK_a0](https://youtu.be/vK1DazRK_a0)

The main example I work through is in JavaScript so that Clojure's syntax doesn't get in the way (I love s-expressions, but they're not the point of the talk).

<comment><USER5> Came across this talk a few weeks ago and I have to say this is one of the best pragmatic talks comparing non-FP vs. FP paradigms I've ever seen. I really like your example problem, how you explore state and mutation in the different paradigms, and how you refactor step-by-step towards a functional design. Thank you!

<comment><USER4> I'm very glad you liked it! Thank you for your kind words.

</comment></comment></comment></comment></comment><comment><USER6> Amazing how they just write a flat: "at least 30%" increase in productivity. Based on what exactly? How did they even measure that? I don't want to talk these slides down, especially since I think that a lot of use cases might benefit from something like clojure but sources would be nice to read up.

<comment><USER7> If you are referring to the "30% increase in productivity from REPL driven development", it could be he means not having to recompile after each change, so not having your workflow interrupted.

<comment><USER8> That sounds like support for REPL-driven development, not specifically clojure use.

<comment><USER9> Agreed to a degree.

I find Python in the REPL to be great, but I think Common Lisp with Slime and maybe Clojure with Cider take it to a new level. You can write your code and when it errors out it drops you into the REPL where you can update the code incrementally while it is running.

If Python gets me X% increase, Lisp and Smalltalk (and maybe Forth) get you some X% + Y%. The parent comment is right that 30% is probably a back-of-the- envelope calculation and not a rigorous one.

I'm only a novice/superficial language geek, so I can't tell you why Lisp and Smalltalk can do that though. Extreme late binding? Hopefully someone more educated can reply.

<comment> marble-drink Python in a REPL isn't really possible because you can't reload modules. It's OK if you're working on just one module but as soon as that's not true it's just not possible. And if you use relative imports you can't even do that.

I'd love to know if anyone has a way to get it to work because I really miss REPL based development from my common lisp and Clojure days.

</comment></comment></comment></comment></comment><comment><USER10> Really nice to see stories about Clojure on HN.

Initially, it wasn't clear for me what editor is used but it appears to be Vim/Neovim with Fireplace: [https://github.com/tpope/vim- fireplace](https://github.com/tpope/vim-fireplace)

Actually looks pretty simple and straightforward. There is a healthy choice of different editors and IDEs for Clojure right now, thanks to building on common foundations of [https://github.com/clojure/tools.nrepl](https://github.com/clojure/tools.nrepl)

</comment><comment><USER11> I have never really understood what people get from these slides, but my while my experience with clojure is extremely limited I can say that I found it to be rather interesting but hard.

I could not grasp several error messages, took me a long time to write something to a database and it didn't really feel at all natural to me. But I guess you'll have to get used to the functional nature, but I don't believe all the hype about functional programming in general.

If it was so effective as people seem to claim, I am sure everybody would use clojure. My experience is rather the reverse, it is harder and takes a long time to develop in. Maybe it's more predictable and is better software with less bugs in the long run, but I wouldn't really know since I lack the experience.

A lot of programming languages today, like javascript, already has functional stuff within it. I get the appeal for it, but I'm not sure it's the best tool for every job or even most stuff.

If anyone is willing to post a youtube-talk or something that can convince me of otherwise, please feel free.

<comment><USER12> > If it was so effective as people seem to claim, I am sure everybody would > use clojure.

I don't think this is even remotely true. As much as everyone in this industry wants to believe it's fast paced and fast moving / evolving, it's hellishly slow in picking up on good ideas and will waste an exorbitant amount of time on bad ideas...

Cool / Hip seems to be valued more than quality when it comes to languages / frameworks while the actually useful slowly, _painfully slowly_ , trickles down.

<comment><USER13> Java, c# and python are hardly hip and rank as some of the most used languages

<comment><USER14> I was around at the dawn of personal home computing and for the commercialization of internet technology so I have seen each of these come and go. Though they are not the cool kids anymore, the sheer volume of code keeps them around, and given that people have those skill-sets, new code gets produced in them.

Java was certainly the fad dejure in it's time, OO was the craze and Java had just been dumped out on the internet, by Sun, for free. In a time when a good portion of compilers costed money (especially if you where not on an Intel based PC), you could learn Java for the price of an internet connection.

c# was the cool kid if you where a Windows developer, Microsoft was looking to update their aging development stack and give themselves hardware portability, so they basically created the JVM for windows in the form of .NET . To ensure that people switched over they kicked the legs out of VB6 and pretty much forced everyone to the new dev stack. They offered a host of language that you could use to write windows apps, but they conformed all of them to the OO style that was popular at the time. With that said, VB.NET did not look like VB6 it looked a whole lot more like C# with VB syntax. So given that developers had to pretty much learn a new language even if it had familiar syntax most opted to just go ahead and learn c# as Microsoft was pimping c#.

Python is the odd ball in your list as it kind of languished for a while. It was not obscure but it was more like Ruby, it had it's devotees but was rather flat, not obscure just flat. That being said, it did have it's cool kid, day in the sun and that was when Google started using it heavily. The AI winter really killed LISP as "the" AI language and there really was no heir apparent, that is until (IIRC) Google started producing some of their machine learning tech and they implemented it in Python. This instantly made Python the cool kid and people started adopting it. My opinion is that Google felt they where too heavily invested in Java and thus needed to diversify into another language. At the time there where not a lot of options that had the combination of mature enough/without legacy clutter/availability of developers, to make the cut, that is why I think Python made the short list.

TLDR: the GP poster is right, popularity and trends have more to do with language adoption than technical merit does.

</comment></comment></comment></comment><comment><USER15> The fact that Clojure runs on JVM turns me off. I find that Elixir is very similar to Coljure, with a runtime that better supports immutability and concurrency.

<comment><USER16> Why does it matter to you? I mean, I know why I find it to be a positive: implementing a runtime is a vast and complex task, and doing it well is way too expensive for most projects (see for example the problems Python has had over the years with the global interpreter lock).

If you can use a runtime with gazillions of man-hours invested into making it better, and get easy access to bazillions of native libraries, why not?

<comment><USER17> While I agree with you that the JVM is great, I think most people that don't like it really just hate Oracle. It's not really a technical argument as much as it is philosophical. I don't really care either way, but I can see why people would mistrust Oracle knowing their history.

<comment><USER16> I understand the sentiment, Oracle is a terrible company and I don't like it either. But at this point we have the OpenJDK and you can use the JVM without caring about Oracle at all.

</comment></comment></comment></comment><comment><USER18> Too many people conflate clojure with high paying salaries. It's not clojure that is earning the salary... it's the kind of engineer who might practice something like clojure that is desirable.

<comment><USER19> I think the reason why Clojure (alongside with F#) is the most paid language (according to StackOverflow and State of JS surveys) because more and more FinTech companies are discovering that the language is exceptionally well suited for manipulating financial data (and not just that). Another reason is: like the one you've mentioned: Clojure mainly attracts more experienced, "grumpy" developers, those who have seen things and tried different ways and become almost apathetic and burned out from (over and over again) building and maintaining projects that despite all the efforts almost always spiral into big, unmaintainable clusterfucks.</comment></comment>


The next big restaurant chain may not own any kitchens - <AUTHOR> https://techcrunch.com/2018/10/07/the-next-big-restaurant-chain-may-not-own-any-kitchens/ <comment><USER2> You don't even have to look to the big chains or into the future to see this principle in action - in NYC, Seamless/Grubhub/etc have created a whole industry of commissary kitchens operating multiple "restaurants" out of an anonymous, shared prep space, doing all of their business by delivery. I'm sure its probably the same in other similar markets.

(The idea isn't really new, either... even pre-internet, the thousands of food carts and trucks around the city got most of their supplies from shared commissary kitchens who do some degree of prep and cooking far away from where the cart will eventually operate).

We're just watching TechCrunch writers and the investors they write about discover commissary kitchens together.

<comment><USER3> > thousands of food carts and trucks

And indeed restaurants themselves in the UK, especially pub ones, will order quite a lot of their food partially prepped already

<comment><USER4> Same in Italy, certain restaurant classes get premade meals that only need heating. Usually pubs but "enoteche" (wineries?) too

</comment></comment></comment><comment><USER5> This idea is here already, at least in the UK. If you go into a motorway service station, exhibition centre or a railway station then you are presented with a choice of restaurants, coffee places and other stores. So you could have 'Delice de France' next to a 'Burger King' and half a dozen other places to 'choose from'.

What is not obvious is that one company, e.g. someone like 'Compass' group, run all of the franchises at the site. So the choice is a fake one, the infrastructure behind the store fronts is all the same with the same loading bay for all the 'different' stores. The coffee may appear to be different and you might be able to choose between your favourite Italian/American/British coffeehouses and the coffee may even taste different in each of the different outlets, however, you won't get cheap or brilliant coffee, no matter what you believe about your chosen brand as, at that location, it is all coming from the same company. This company has just franchised a few brands to operate its storefronts from.

Luckily people are easily fooled and they do not ever think to ask if the same company is behind all the apparent 'choices' they have on site. Communism was more honest, they didn't have fake brands.

<comment><USER6> I don't really understand what you think the core of the problem is?

Why should a consumer care who owns the franchise? What difference does that make to me?

If you have a service station with a Starbucks and a Burger King are you saying they both secretly serve the same coffee? I'm sure Starbucks franchise agreements do not allow that and it will be the coffee that Starbucks select and roast (whether you think that's good or bad), not the coffee Burger King supply. So there is a real difference and a real choice there isn't there?

They share a loading bay and a till system? Why on earth do care about that?

<comment><USER7> Because it is fake competition, which is pretty much what we get anymore. With real competition, one of the two places might do a better job of pleasing customers and get most of the business. With real competition, the employees preparing and serving the food will get a free market wage. Otherwise, it is all Disneypeople serving Disneyfood.

<comment><USER8> it's not been free market competition for a long time. I look out at the number of Pret a Mangers that office workers around me go to at lunch. It's like watching pigs going to the troughs to feed. The buildings empty, the pigs go to the next available spot and they return to their pens. They don't really give a shit really how long the lines are. Also fast food employees getting free market wages? They get minimum wage and if they work there for two years, they get a dollar increase to their wage. That's it, there is no lateral promotion.

</comment></comment></comment></comment><comment><USER9> Most chain and many local bar restaurants barely have kitchens as is, they mainly just reheat Sysco or US Foods products.

</comment><comment><USER10> It's an interesting field that could potentially be huge. I'm working for a startup in that space, so maybe I'm biased but food tech really has a chance to change society. Exciting to be a part of it.

</comment><comment><USER11> It won't be big because most people don't want to eat soggy food that has been likely transported by a bicycle when they go to a restaurant.

</comment><comment><USER12> Yet another fantasy that won't come true

</comment><comment><USER13> And the drive to mediocrity continues.

Now everybody can serve up TV dinners Applebees/IHOP/Darden Restaurant style...

<comment><USER14> Why do you assume it has to be low quality or mediocre?

The article is about infrastructure for food preparation and storage.

How many food entrepreneurs and chefs have you talked to? What are their biggest pain points and what are the biggest barriers to entry to go from a novel food idea to serving it up to customers? What are the biggest barriers to quality in food?

How many restaurant-goers have you talked to? What kind of food do people want and how is that changing? How fast are delivery businesses growing YoY and can something like this enable more delivery-based restaurants?

There are so many interesting questions and data around this space.

If you have even a fraction of the answers to these question, please do share and contribute because as it stands now, your statement is more suited for Reddit. I can't respect such a shallow take on something quite complex.

<comment><USER15> I am very curious why food-related startups are mostly about delivery like deliveroo and uberEats. Is it because of the advertising efforts put in, or my lack of attention.

Would love to learn from someone who can shed some light on your set of question!

<comment><USER16> > I am very curious why food-related startups are mostly about delivery like > deliveroo and uberEats.

I assume because it's much cheaper to hire contractors than employees, and it's much easier to make delivery drivers contractors (you can deliver for lots of companies in one night) than chefs (you're not going to cook each different meal for a different restaurant in one night). So if you only provide the delivery you only need contractors for the actual service you provide.

</comment></comment></comment></comment><comment><USER17> Hmm: looking at 19th century shops where only merchants picked products to self-checkout today, that seems like the trend. Everyone will end up doing everything themselves.

</comment><comment><USER18> duplicate - look at "past".

<comment><USER19> On HN it isn't a duplicate if there haven't been many reposts and the previous posts didn't get significant attention.

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


Show HN: Fast autocomplete service written in Go and JavaScript - <AUTHOR> https://autocompeter.com/

<comment><USER2> I've found Apache Solr the best approach to building a flexible, fast auto- complete service. Solr can spit results back in json so it's dead easy to write a simple API wrapper in whatever language you're using (go, python, ruby).

You can then stick Varnish in front of the whole lot if the search space is relatively static and not ridiculously huge.

</comment><comment><USER3> Consider using package `log` for logging, `fmt.Printf` doesn't linearize writes to stdout.

[https://github.com/peterbe/autocompeter/blob/master/server.g...](https://github.com/peterbe/autocompeter/blob/master/server.go#L134)

Also with `log` you don't need to add a `\n` at the end, it will do it for you.

<comment><AUTHOR> Thank you!

</comment></comment><comment><USER4> Clever name, Peter. :)

Btw, I noticed a missing "c" in the "url -X POST" example on this page of your docs:

[http://autocompeter.readthedocs.org/en/latest/api/#bulk- uplo...](http://autocompeter.readthedocs.org/en/latest/api/#bulk-upload)

<comment><AUTHOR> Annoying. Must be a bug in ReadTheDocs or something [https://github.com/peterbe/autocompeter/blob/master/docs/api...](https://github.com/peterbe/autocompeter/blob/master/docs/api.md#uniqueness- of-the-url)

<comment><AUTHOR> Actually, local mkdocs gets it right. Only on readthedocs does it get screwed up.

<comment><USER4> It looks to me like it was missing in the source markdown file? I submitted a pull request on Github.

<comment><AUTHOR> Right you are! I looked at a different `curl`.

</comment></comment></comment></comment></comment><comment><AUTHOR> I blogged about it here: [http://www.peterbe.com/plog/autocompeter.com](http://www.peterbe.com/plog/autocompeter.com)

</comment><comment><USER5> Meh, it's a decent and properly commented implementation, but the interesting stuff is done by Redis, not in Go.

I wrote a similar service (JS+Go) 2 years or so ago using only the Go standard library (specifically the excellent index/suffixarray and gobs for persistence). It typically got ~3ms response timings (locally) with > 1 million records indexed.

<comment><AUTHOR> I wrote a cache layer in Go (with limits so it doesn't bloat too much) and I could get 22K req/s instead of the usual 4K.

However, the hit ratio is too low to work. It only protects me from the stampeding herd problem at best.

</comment></comment><comment><USER6> I put together an autocomplete service using Ruby and Redis but rather than dealing with the network latency of a remote service I decided to package it up so it could be mounted along side my app: [https://github.com/doomspork/autocomplete- me](https://github.com/doomspork/autocomplete-me)

<comment><USER7> Yeah, where I work we use another redis + ruby gem that the seatgeek guys wrote called soulmate. [https://github.com/seatgeek/soulmate](https://github.com/seatgeek/soulmate)

<comment><USER8> Heh, I always feel a bit bad when people mention this since we're not using it ourselves anymore. Though it's a nice and easy way to get going quickly if you're already running redis (and especially if you've got a rails app).

We're using elasticsearch now which is definitely a bit more of an operational headache.

<comment><USER9> Curious... why use Elasticsearch over Redis? We're currently using Elasticsearch, but were considering switching to Redis, but now I'm thinking maybe we shouldn't. What's the downside?

</comment></comment></comment></comment><comment><USER10> Comments:

1\. The focus should be on the search box when the page is loaded.

2\. While typing the word "javascript", sometimes the amount of results shrinks and immediately increases, resulting in flickery behavior.

<comment><AUTHOR> Thank you so much for that piece of feedback. It really did flicker.

I investigated the problem and found a very good explanation for why it was happening.

Solved now: [https://github.com/peterbe/autocompeter/commit/a31c919c1281d...](https://github.com/peterbe/autocompeter/commit/a31c919c1281dc683620ef9b3a6209be3c17a2fe#diff-343723a0cb380f664aedf0dfed5c1c2fR4)

</comment></comment><comment><USER11> " Fast Redis autocomplete service written in Go and JavaScript "

FTFY

<comment><AUTHOR> Taglines are hard. I tried to make the tagline more "end-user friendly" instead of focusing on the tech. The people who implement it actually don't need to know how it's made. They just drop in the .js the .css and send their data to the REST API. They don't need to know that the database is Redis and that the server framework is Go.

</comment></comment><comment><USER12> It would have been nice to give suggestions even if you make spelling mistakes.

<comment><AUTHOR> Also, I think it would be nice to be able to upload a list of synonyms. E.g "go==golang" so if someone types "golan" it could return "Go is a language" for example.

</comment></comment><comment><USER13> Ok, what `fast` means here? There is no database for the server-side project.

<comment><USER6> It is fast because Redis, which provides the storage, is considerably fast at the tasks necessary to implement such a service. Go has last little to do with it.

<comment><AUTHOR> True but it's open source and perhaps people are interested to see something beyond HelloWorld with Go+Redis.

I actually re-wrote it once to switch out Redis for Postgres but it was way too slow.

</comment></comment></comment><comment><AUTHOR> 20,000 searches have been made in the last post. I love HN!

</comment><comment><USER14> Nice! This will come in very handy for me.

</comment><comment><USER15> I wonder how they can do this for free?

<comment><AUTHOR> It started as a side-project and still is. I'm the creator of the service and my day job is as a web developer at Mozilla.

If this service becomes surprisingly popular I'll look into ways to monetize but that's unlikely to be the case unless I'm really really lucky.

The origin of building this is that I found a cool prototype of the concept in a blog post, then threw that into my own site and later realized I want to re- use that for a (day)work site. So I though instead of copying it, I'll write a microservice.

<comment><USER15> Very nice. I hope to use it one day.

</comment></comment></comment><comment><USER16> Does it support unicode?

<comment><USER17> In the features list:

> Can find "Pär is naïve" by typing in "par naive"

</comment></comment><comment><USER18> and rust ?

<comment><AUTHOR> Next version maybe.</comment></comment>


DIY Solar Panels on Nissan Leaf - <AUTHOR> https://cleantechnica.com/2019/07/23/diy-solar-leaf-project-shows-the-untapped-potential-of-solar-evs/ <comment><USER2> Disappointed that so many people criticized his project. He built an MVP and put it out there. Impressive</comment>