Jepsen: PostgreSQL 12.3 - <AUTHOR> http://jepsen.io/analyses/postgresql-12.3 <comment><USER2> Personally, this kind of thing actually gives me _more_ confidence in Postgres rather than less. The core team's responsiveness to this bug report was incredibly impressive.

Around June 4th, the article's author comes in with a bug report that basically says "I hammered Postgres with a whole bunch of artificial load and made something happen" [1].

By the 8th, a preliminary patch is ready for review [2]. That includes all the time to get the author's testing bootstrap up and running, reproduce, diagnose the bug (which, lest us forget, is the part of all of this that is actually hard), and assemble a fix. It's worth noting that it's no one's job per se on the Postgres project of fix this kind of thing — the hope is that someone will take interest, step up, and find a solution — and as unlikely as that sounds to work in most environments, amazingly, it usually does for Postgres.

Of note to the hacker types here, Peter Geoghegan was able to track the bug down through the use of rr [4] [5], which allowed an entire problematic run to be captured, and then stepped through forwards _and_ backwards (the latter being the key for not having to run the simulation over and over again) until the problematic code was identified and a fix could be developed.

\---

[1] [https://www.postgresql.org/message- id/CAH2-Wzm9kNAK0cbzGAvDt...](https://www.postgresql.org/message- id/CAH2-Wzm9kNAK0cbzGAvDtdJi-rj_ngsBbRX0i_DKdjYxqJnzNA%40mail.gmail.com)

[2] [https://www.postgresql.org/message- id/CAH2-Wzk%2BFHVJvSS9VPP...](https://www.postgresql.org/message- id/CAH2-Wzk%2BFHVJvSS9VPPJ_K9w4xwqeVyfnkzYWtWrBzXJSJcMVQ%40mail.gmail.com)

[3] [https://www.postgresql.org/message- id/CAH2-WznTb6-0fjW4WPzNQ...](https://www.postgresql.org/message- id/CAH2-WznTb6-0fjW4WPzNQh4mFvBH86J7bqZpNqteVUzo8p%3D6Hg%40mail.gmail.com)

[4] [https://en.wikipedia.org/wiki/Rr_(debugging)](https://en.wikipedia.org/wiki/Rr_\(debugging\))

[5] [https://www.postgresql.org/message- id/CAH2-WznTb6-0fjW4WPzNQ...](https://www.postgresql.org/message- id/CAH2-WznTb6-0fjW4WPzNQh4mFvBH86J7bqZpNqteVUzo8p%3D6Hg%40mail.gmail.com)

<comment><USER3> Thank you for this comment that gives credit where it's due, this is a very impressive set of threads to read through.

And I agree. For me, one of the most important measures of the reliability of a system is how that system responds too information that it might be wrong. If the response is defensiveness, evasiveness, or persuasive in any way, i.e. of the "it's not _that_ bad" variety, run for the hills. This, on the other hand is technical, validating, and prompt.

Every system has bugs, but depending on these cultural features, not every system is capable of systematically removing those bugs. With logs like these, the pg community continues to prove capable. Kudos!

<comment> shawn-butler What are the storage requirements for using rr for intense or longer debugging sessions?

<comment><USER4> The exact recording in question was about 125MB, and that was after I materialized it using "rr pack".

I'd say that the storage overhead is unlikely to be a concern in almost all cases. It's just something that you need to keep an eye on.

</comment></comment></comment></comment><comment><USER5> This postgresql mailing list thread allows you to read along with the PostgreSQL developers and Jepsen, seems like a very useful discussion: [https://www.postgresql.org/message- id/flat/db7b729d-0226-d16...](https://www.postgresql.org/message- id/flat/db7b729d-0226-d162-a126-8a8ab2dc4443%40jepsen.io)

<comment><USER6> This is just such a pleasure to read, even as someone that has only surface awareness of database internals at all. Both for the incredibly friendly and professional tone, and for the obvious deep technical knowledge on both sides.

And that first email, my god, that should be titanium-and-gold-plated standard of a bug report.

<comment><USER7> > that first email, my god, that should be titanium-and-gold-plated standard > of a bug report.

It's a thing of beauty. It even includes versions of software used!

My daily experience with bug reports are that they 50/50 won't even include a description, just a title. It's such a cliche already, but "project name is broken" makes my blood boil. What environment? What were you doing? Is this production? How do I test this bug? (from an Ops perspective) When did you notice this? Has anything changed recently to possibly cause an error?

Arg, my blood pressure!

/offtopic, sorry.

</comment></comment></comment><comment><USER8> It is very rare to see a Jepsen report that concludes with a note that a project is being too humble about their consistency promises.

Finding effectively only a single obscure and now fixed issue where real-world consistency did not match the promised consistency is pretty impressive.

<comment><USER9> The testing on Zookeeper found no problems, which was extremely impressive given how thorough Aphyr is.

<comment><USER10> Strong consistency is easier when throughput and concurrency are limited.

Zookeeper is impressive in many ways. However, unless something changed drastically in the last two years, Zookeper throughput will always limit it to configuration/metadata/control-plane rather than a primary/data-plane use cases.

</comment></comment></comment><comment><USER11> > _PostgreSQL has an extensive suite of hand-picked examples, called > isolationtester, to verify concurrency safety. Moreover, independent > testing, like Martin Kleppmann's Hermitage has also confirmed that > PostgreSQL's serializable level prevents (at least some!) G2 anomalies. Why, > then, did we immediately find G2-item with Jepsen? How has this bug > persisted for so long?_

This is super interesting. Jepsen seems to be like Hypothesis for race conditions: you specify the race condition to be triggered and it generates tests to simulate it.

Yesterday, Gitlab acquired a fuzz testing company[1]. I wonder if Jepsen was envisioned as a full CI integrated testing system

[1] [https://m.calcalistech.com/Article.aspx?guid=3832552](https://m.calcalistech.com/Article.aspx?guid=3832552)

<comment><AUTHOR> Yes. Jepsen and Hypothesis both descend from a long line of property-based testing systems--mostly notably, Haskell & Erlang's QuickCheck. Jepsen makes a number of unusual choices specific to testing concurrent distributed systems: notably, we don't do much shrinking (real-world systems are staggeringly nondeterministic). Jepsen also includes tooling for automated deploys, fault injection, a language for specifying complex concurrent schedules, visualizations, storage, and an array of sophisticated property checkers.

<comment><USER11> Is Jepsen for testing - say the microservices for Uber?

Or is it specific to the people who build things like databases, api frameworks,etc.

<comment><AUTHOR> You can test pretty much any kind of concurrent system using Jepsen: in-memory data structures, filesystems, databases, queues, APIs, services, etc. Not all the tooling is applicable to every situation, but it's pretty darn general.

<comment><USER12> Do you know of anyone using Jepsen to torture their microservices? This sounds like a really interesting usecase.

<comment><AUTHOR> I hear occasional rumors, but nobody's published.

</comment></comment></comment></comment></comment></comment><comment><USER13> Reading through the source of Elle:

> "I cannot begin to convey the confluence of despair and laughter which I > encountered over the course of three hours attempting to debug this issue. > We assert that all keys have the same type, and that at most one integer > type exists. If you put a mix of, say, Ints and Longs into this checker, you > WILL question your fundamental beliefs about computers" [1].

I feel like Jepsen/Elle is a great argument for Clojure, reading the source is actually kind of fun. Not what you'd expect for a project like this.

[1]: [https://github.com/jepsen- io/elle/blob/master/src/elle/txn.c...](https://github.com/jepsen- io/elle/blob/master/src/elle/txn.clj#L43)

<comment><USER14> Wonder if this "manual type constraints"-style code is pre-"spec"

<comment><AUTHOR> Normally I'm a core.typed person, but static type constraints don't quite make sense here. We _want_ heterogeneity in some cases (e.g. you want to be able to mix nils and ints), but not in others (e.g. this short and int mixing, which _could_ be intentional, but also, might not be)

I've considered spec as well, but spec has a weird insistence that a keyword has exactly one meaning in a given namespace, which is emphatically _not_ the case in pretty much any code I've tried to verify. Also its errors are... not exactly helpful.

<comment><USER15> This is interesting to me as a Clojure person - you would be approximately the first person I've seen using core.typed since CircleCI's post in 2015 discussing why it didn't work for them. Are you using more modern versions of core.typed? What's the experience like these days?

<comment><AUTHOR> I don't use it often. In general, I've found the number of bugs I catch with core.typed doesn't justify the time investment in convincing things to typecheck--my tests generally (not always, of course!) find type issues first. I also tend to do a lot of weird performance-oriented stateful stuff with java interop, which brings me into untyped corners of the library.

That said, I've found core.typed helpful in managing complex state transformations, especially in namespaces which have, say, five or six similar representations of the same logical thing. What do you do when a "node" is a hostname, a logical identifier in Jepsen, an identifier in the database itself, a UID, and a UID+signature pair? Managing those names can be tricky, and having a type system really helps.

<comment><USER15> Interesting, thanks for the feedback. I often miss having a type system in Clojure and I was really hoping that core.typed might be more ergonomic these days. It sounds like it's still a pretty serious tradeoff, and probably not worth it for most code.

</comment></comment></comment></comment></comment></comment><comment><USER16> This is my understanding of what a G2-Item Anti-dependecy Cycle is from the linked paper example:

      -- Given (roughly) the following transactions:

      -- Transaction 1 (SELECT, T1)
      with all_employees as (
        select sum(salary) as salaries
        from employees
      ),
      department as (
        select department, sum(salary) as salaries
        from employees group by department
      )
      select sum(all_employees.salaries) - sum(department.salaries);

      -- Transaction 2 (INSERT, T2)
      insert into employees (name, department, salary)
      values ('Tim', 'Sales', 70000);

      -- G2-Item is where the INSERT completes between all_employees and department,
      -- making the SELECT result inconsistent

This is called an "anti-dependency" issue because T2 clobbers the data T1 depends on before it completes.

They say Elle found 6 such cases in 2 min, which I'm guessing is a "very big number" of transactions, but can't figure out exactly how big that number is based on the included logs/results.

Also, "Elle has found unexpected anomalies in every database we've checked"

<comment><AUTHOR> Yeah, it was relatively infrequent in that particular workload--dramatically less than PostgreSQL's "repeatable read" exhibited. These histories are roughly 15K successful transactions long--see the stats field in results.edn. I'm hesitant to make strong statements about frequency, because I suspect this kind of thing depends strongly on workload, but I would hazard a gueesssss that it's not super common.

</comment></comment><comment><USER17> Props to Jensen for exposing this longtime bug. Props to the PG team for identifying the culprit and their response. This report just strengthens my faith in the project.

</comment><comment><USER18> It would be great to see Jepsen testing on distributed Postgres as this is a single node issue they've found here. In prod don't folks run HA?

<comment><AUTHOR> I started this analysis intending to do just that--it's been difficult, however, to figure out which of the dozens of replication/HA configurations to actually test. I settled on Stolon, since it seemed to make the strongest safety claims. However, I found bugs which turned out to be PostgreSQL's fault, so I backed off to investigate those first.

<comment><USER19> And herein lies the rub: HA Postgres is an extremely painful proposition. Based on our non-scientific research, Patroni seems to be the most battle tested solution, and as popular if not more so than Stolon.

<comment><AUTHOR> Patroni's documentation also seems to suggest that even with the strongest settings, it can lose transactions; Stolon makes stronger claims.

<comment><USER5> Patroni does have synchronous_mode_strict setting, which may be what you're looking for:

This parameter prevents Patroni from switching off the synchronous replication on the primary when no synchronous standby candidates are available. As a downside, the primary is not be available for writes (unless the Postgres transaction explicitly turns of synchronous_mode), blocking all client write requests until at least one synchronous replica comes up.

[https://patroni.readthedocs.io/en/latest/replication_modes.h...](https://patroni.readthedocs.io/en/latest/replication_modes.html#replication- modes)

edit: seems I missed this discussion on twitter: [https://twitter.com/jepsen_io/status/1265626035380346881](https://twitter.com/jepsen_io/status/1265626035380346881)

<comment><AUTHOR> Er, again, the docs say "it is still possible to lose transactions even when using synchronous_mode_strict". I've talked about this with some of the Stolon folks on Twitter, and we're not exactly sure how that manifests--possibly an SI or SSI violation.

<comment><USER20> why is stolon more safe than? I tought stolon uses synchronous replication of pg aswell?

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> We laughed when this happend to MongoDB.

The difference though is the reaction from the vendor.

<comment><USER22> For me, MongoDB has track record of bolstering a lot ("webscale") and hiding/denying mistakes.

PostgreSQL is quite the opposite on that front, confident yet open to critics and abble to admit mistakes. Hell, I've even them present their mistakes at conferences and ask for help.

<comment><USER23> Yes, for instance not returning errors in some cases when writes fail. I think this was until version 2 but to be fair they fixed this kind of stuff and started to deal with this differently later on. However their reputation never fully recovered from this.

</comment></comment></comment><comment><USER24> > Neither process crashes, multiple tables, nor secondary-key access is > required to reproduce our findings in this report. The technical > justification for including them in this workload is "for funsies".

Always read the footnotes!

</comment><comment><USER25> By the way: where does the Jepsen name come from?

I have wondered more than once and my browsing and searching skills are failing me on this one.

Edit: The closest link I can find is "Call me maybe" but I am not able to find a causation or even a direct link or mention for now.

<comment><USER26> I don't actually know, but I could imagine it's a tribute to Carly Rae Jepsen and their song "Call me maybe".

I dimly recall that either Aphyr's blog or the jepsen blog was called "call me maybe" in the earlier days.

<comment><USER27> Here's at least one reference to it: [https://www.informationweek.com/database/the-man-who- torture...](https://www.informationweek.com/database/the-man-who-tortures- databases/d/d-id/1111407) And it looks like earlier versions of the github project looked more like this: [https://github.com/threadwaste/jepsen](https://github.com/threadwaste/jepsen) with references to the Carly Rae Jepson song in the project description in both the README and in github.

Actually, it looks like the original talk (Slides: [https://aphyr.com/media/jepsen-ricon- east.pdf](https://aphyr.com/media/jepsen-ricon-east.pdf) has multiple references) and the original blog post has a slug referring to the song [https://aphyr.com/posts/281-call-me-maybe-carly-rae- jepsen-a...](https://aphyr.com/posts/281-call-me-maybe-carly-rae-jepsen-and- the-perils-of-network-partitions)

</comment></comment></comment><comment><USER28> I am still wondering when we will see PostgreSQL being tested in a HA form.

It's just extraordinary to me that it's 2020 and it still does not have a built-in, supported set of features for supporting this use case. Instead we have to rely on proprietary vendor solutions or dig through the many obsolete or unsupported options.

<comment><USER29> There is a built-in supported set of features for high availability. What exactly are you missing?

<comment><USER30> The option to install postgres on three instances, specify that they're in cluster "foo" and then it just works, including automatically fixing any issues when one of the instances drops out and rejoins.

That's what other DBs have but it seems to be missing from postgres. If it now exists could you point me to the doc explaining how to do this?

</comment></comment></comment><comment><USER31> What does this really mean? I just migrated from mongo to Pg.

<comment><USER32> There were edge cases in PostgreSQL's SERIALIZABLE isolation level - which is supposed to ensure that concurrent transactions behave as if they were committed sequentially.

Specifically - if running a transaction as SERIALIZABLE there was a very small chance that you might not see a rows inserted by another transaction that committed before you in the order. Many applications don't need this level of transaction isolation - but for those that do it's somewhat scary to know this was lurking under the bed.

Every implementation of a "bank" system where you keep track of deposits and withdrawals is a use-case for SERIALIZABLE, and this means a double-spend could happen because the next transaction didn't see an account just had a transaction that drained the balance, for example.

Props to Jepsen for finding this.

<comment><USER33> The common bank example as I understand it doesn't require serializable, but only snapshot isolation: If two transactions both drain the source balance, the one that commits last will fail, because its snapshot doesn't match the state anymore.

<comment><USER32> If you're UPDATEing a balance on some account table - yes. If you're using a ledger and calculating balances (which you SHOULD) then SERIALIZABLE is needed.

</comment></comment></comment></comment><comment> rolls-reus So this does not affect SSI guarantees if the transactions involved all operate on the same row? Is my understanding correct? For instance can I update a counter with serializable isolation and not run into this bug?

<comment><AUTHOR> I think so, yeah. You _could_ theoretically have a G2-item anomaly on a single key, but in PostgreSQL's case, the usual write-set conflict checking seems to prevent them.

</comment></comment><comment><USER34> For the repeatable read issue, I don't intuitively understand why the violation mentioned would be a problem. In particular, even though the transaction sequence listed wouldn't make sense for a serializable level, it seems consistent with what I'd expect from repeatable read (though I have not read the ANSI SQL standard's definition of repeatable read).

Any insights into why we should want repeatable read to block that? It feels like blocking that is specifically the purpose of serializable isolation.

<comment><AUTHOR> The report talks at length about this, but maybe it bears rephrasing!

The ANSI definitions are bad: they allow multiple interpretations with varying results. 25 years ago, Berenson, O'Neil, et al. published a paper showing the ANSI definitions had this ambiguity, and that what the spec _meant_ to define should have been a broader class of anomalies. They literally say that the broad interpretation is the "correct" one, and the research community basically went "oh, yeah, you're right". Adya followed up with generalized isolation level definitions, and pretty much every paper I've read has gone with these versions since. That didn't make its way back into the SQL spec though: it's still ambiguous, which means you can interpret RR as allowing G2-item.

Why prevent G2-item in RR? Because then the difference between repeatable read and serializable is specifically _phantoms_ , rather than phantoms plus... some other hard-to-describe anomalies. If you use the broad/generalized interpretation, you can trust that a program which only accesses data by primary key, running under repeatable read, is actually serializable. That's a powerful, intuitive constraint. If you use the strict interpretation, RR allows Other Weird Behaviors, and it's harder to prove an execution is correct.

For a very thorough discussion of this, see either Berenson or Adya's papers, linked throughout the report.

<comment><USER34> Thanks, I got the part about the spec being ambiguous, am more interested in the "why" aspect, since the current behaviour seems intuitive to the name "repeatable read". But on closer inspection, I see PostgreSQL's repeatable read blocks phantom reads even though the ANSI spec permits that! I don't get why phantom reads would be acceptable under "repeatable read"... I probably should give those papers a read some time. But in the meantime, given the choice of phantom reads or G2-item, I think I'd pick blocking phantom reads. (It might be nice to have the option to choose though!)

In PostgreSQL's case, if they somehow made repeatable read to prevent G2-item without sacrificing the phantom reads, would that mean repeatable read is then "serializable" according to the ANSI definition?

<comment><AUTHOR> _But in the meantime, given the choice of phantom reads or G2-item, I think I 'd pick blocking phantom reads._

Well... it's not quite so straightforward. SI still allows some phantoms. It only prohibits some of them.

 _In PostgreSQL 's case, if they somehow made repeatable read to prevent G2-item without sacrificing the phantom reads, would that mean repeatable read is then "serializable" according to the ANSI definition?_

I'm not quite sure I follow--If you're asking whether snapshot isolation (Postgres "Repeatable Read") plus preventing G2-item is serializable, the answer is no--that model would still allow G2 in general--specifically, cycles involving non-adjacent rw dependencies with predicates.

</comment></comment></comment></comment><comment><USER35> I don't know why the author is surprised that Postgres offers stronger guarantees than serializability in practice. Serializability per se allows anomalies that would be disastrous in practice: [http://dbmsmusings.blogspot.com/2019/06/correctness- anomalie...](http://dbmsmusings.blogspot.com/2019/06/correctness-anomalies- under.html).

<comment><AUTHOR> It's not particularly surprising, but it is noteworthy. Other systems I've tested have offered serializability but _not_ strict serializability: for instance, CockroachDB.

</comment></comment><comment><USER36> Ah, now I know why you hopped on IRC finally last week. :)

</comment><comment><USER37> @aphyr could you please clarify this sentence?

> _This behavior is allowable due to long-discussed ambiguities in the ANSI > SQL standard, but could be surprising for users familiar with the > literature._

Should that be "not familiar"? And which literature - the standard or the discussions?

<comment><AUTHOR> Familiar. If you've read any of the literature on snapshot isolation or isolation levels in general (Berenson, Bernstein, Gray, Melton, O'Neil, O'Neil, Adya, Liskov, Fekete, Cerone, Bailis, Alvisi, Clement, Crooks, Pu...) you would probably not expect to see SI treated as stronger than RR. The paper which first defined SI says it's not. Heck, Jim Melton, who _wrote_ that part of the ANSI spec, is a co-author on that paper, which goes on to say the strict interpretation is incorrect and not what ANSI intended!

<comment><USER37> Thank you.

BTW, nice to see one of of my lecturers (Fekete) among the names!

</comment></comment></comment><comment><USER38> Thanks for doing these, they're incredibly interesting, useful, amusing (Oh no! the schadenfreude!) and also, incredibly inspiring to me to be a better engineer, so thank you again :)

</comment><comment><USER39> Can (should ?) Jepsen tests be integrated in PostGres CI/CT ? Can we raise money for that ?

</comment><comment><USER40> Any plans to test any other NoSQL databases? I'm interested in MarkLogic

<comment><AUTHOR> No, Jepsen is over, sorry!

Jokes aside, Marklogic is welcome to pay me. Each one of these reports takes weeks to months of full-time work.

<comment><USER41> This is probably outside the purview of Jepsen but have you ever looked at Kdb, or the language it is build on top of? (K)

Curious to hear your thought on it! Would love a Jepsen style analysis of kdb

</comment></comment></comment><comment> k0k-xox I think its funny</comment>


Typing with pleasure, and low latency - <AUTHOR> https://pavelfatin.com/typing-with-pleasure/#summary <comment><USER2> > Because sampling rate is fast enough to misinterpret contact bounce as > keystrokes, keyboard control processor perform so-called debouncing of the > signals by aggregating them across time to produce reliable output. Such a > filtering introduces additional delay, which varies depending on > microcontroller firmware. As manufacturers generally don't disclose their > firmware internals, let's consider typical debouncing algorithms and assume > that filtering adds ~7 ms delay,

Since it's debouncing rather than outright spurious activation, it's possible to latch/register/sample on the initial switch closure and only delay recognition of the subsequent release. This seems like a good idea since the press is almost always where a user's attention is focused, and the timing of the release being important is usually associated with holding the key much longer than the bounce period (e.g. modifier keys, cursor/player movement). Anyone know if keyboards are doing this?

<comment><USER3> I spent a few years working on embedded keypad products. Often there is a hardware keypad scanner that takes care of much of the details, not allowing the programmer this level of control. Your driver configures the rows and columns (inputs and outputs), the scan rate, debounce time, etc, and the hardware will monitor for edge transitions, then perform a scan, capture the result in a register and assert an interrupt. It will likely have a double (or more) buffer mechanism to prevent dropped events due to software latency.

In low power/mobile situations this allows the host CPU to sleep as much as possible and even the scanner, which walks the rows (or cols) need not be running all the time.

While many SOCs have a integrated keypad interface, there are also keypad controller ICs (some GPIO expanders have the ability to double as keypad controllers) that free the programmer from having to manually implement the scanner logic. I suspect these types of chips would be found in a typical USB keyboard. Software may still have to deal with additional debouncing and ghost keys depending on the complexity of the IC.

Edit: I suppose one could configure the keypad controller to apply no debouncing and then perform a software debounce the way you describe.

<comment><USER4> Computer keyboards typically contain only one chip which has a combined USB- PS/2 port, scanner and a 8051 to glue things together. DIY keyboards normally just use any microcontroller with a built-in USB controller.

</comment></comment></comment><comment><USER5> _TL;DR of very good while long ;) article:

_ Use a responsive editor (makes the most difference).

* Use a low-latency keyboard, if possible.

* Choose programs that add global keyboard hooks wisely.

* Turn off unnecessary "image enhancers" in you monitor.

* Enable stacking window manager in your OS (e.g. in Windows 7, 8).

 _TESTED EDITORS RESULTS, Average latency, ms_

        IDEA-zl     11.9
        GVim	19.0
        Gedit	23.9
        Emacs	44.7
        Sublime     52.1
        Atom	90.0
        Netbeans	119.1
        Eclipse	133.6

<comment><USER6> What is IDEA-zl? (Google turned up nothing)

<comment><USER7> IDEA in zero latency mode

[https://blog.jetbrains.com/idea/2015/08/experimental-zero- la...](https://blog.jetbrains.com/idea/2015/08/experimental-zero-latency- typing-in-intellij-idea-15-eap/)

<comment><USER8> does that mean IDEA 2017 is zero latency ?

<comment><USER9> Looks like it:

> So today, after almost 6 months of extensive testing, we are enabling zero > latency typing as the default setting in all IntelliJ-based IDEs, including > CLion.

[https://blog.jetbrains.com/clion/2017/01/clion- starts-2017-1...](https://blog.jetbrains.com/clion/2017/01/clion- starts-2017-1-eap/#zero_latency)

</comment></comment></comment></comment></comment><comment><USER10> >Regardless of keyboard type, key switches are mechanically imperfect and are subject to contact bounce — instead of a clean transition, the switch rapidly bounces between on and off states several times before settling. Bounce time depends on switch technology, for example, for Cherry MX switches bounce time is claimed to be less that 5 ms. Though exact probability distribution is unknown, basing on related empirical data, we can assume that average bounce time is about 1.5 ms.

This is amazing. I thought I knew everything about mech keyboards, but this opens new perspective.

<comment><USER11> Cherry MX switches are much bouncier than some types of switches. (This explains why some keyboards with MX switches end up dropping or duplicating keypresses when their controller uses a poor debouncing algorithm.)

For instance old "complicated" Alps switches (circa 1990) have an extremely clean switch from off to on, with almost no bouncing.

</comment></comment><comment><USER12> Previous discussion: [https://news.ycombinator.com/item?id=10787812](https://news.ycombinator.com/item?id=10787812)

</comment><comment><USER13> Here some results for VSCode: [https://github.com/Microsoft/vscode/issues/27378](https://github.com/Microsoft/vscode/issues/27378)

Update: on my system Emacs has an average of 6ms vs VSCode 17ms.

</comment><comment><USER14> Wish I could type with pleasure and low latency on my Android phone. Even on my HTC One M9 it's cringeworthy!

<comment><USER15> The jitter and latency on androids is terrible but I feel like they're more accurate than the iphone for some reason.

My $20 raspberry pi with a cheap USB keyboard has neither problem though...

<comment><USER16> The lag behind your finger on Android is one of the reasons I have an iPhone. It's really noticeable.

</comment></comment></comment><comment><USER17> "John Carmack explains why it's faster to send a packet to europe than a pixel to your screen"

[https://www.geek.com/chips/john-carmack-explains-why-its- fas...](https://www.geek.com/chips/john-carmack-explains-why-its-faster-to- send-a-packet-to-europe-than-a-pixel-to-your-screen-1487079/)

</comment><comment><USER18> Posting Google's web cache, since the site appears to be down:

[https://webcache.googleusercontent.com/search?q=cache:l14kPB...](https://webcache.googleusercontent.com/search?q=cache:l14kPBoBPdgJ:https://pavelfatin.com/typing- with-pleasure/+&cd=1&hl=no&ct=clnk&gl=us)

<comment><USER19> archive.org:

[https://web.archive.org/web/20170726220513/https://pavelfati...](https://web.archive.org/web/20170726220513/https://pavelfatin.com/typing- with-pleasure//)

archive.is:

[http://archive.is/JYKGR](http://archive.is/JYKGR)

</comment></comment><comment><USER20> Also check out the author's companion article "Scrolling with pleasure": [https://pavelfatin.com/scrolling-with- pleasure/](https://pavelfatin.com/scrolling-with-pleasure/)

I thought it was a fascinating read.

</comment><comment><USER21> > _As we can see, Aero introduces at least one frame delay (~16.7 ms for 60 Hz > refresh rate) and leads to time discretization._

Yep. There is one built-in frame of latency in the Windows composition engine. It's even documented here: [https://msdn.microsoft.com/en- us/library/windows/desktop/hh4...](https://msdn.microsoft.com/en- us/library/windows/desktop/hh437350.aspx#composition_frame_scheduling)

Rather than performing composition as late as possible, which would be beneficial for latency, Windows performs composition as _early_ as possible, at the start of the frame. This introduces a completely unnecessary 16.67ms extra latency into everything you do. There is no supported way to disable the compositor on Windows 8-10 (though the article links to a scary-looking hack that apparently works in Windows 8,) so you're stuck with this.

I really hope this situation will be improved with future updates to Windows 10. Microsoft are still making improvements to the compositor, for example window resizing is much smoother in the creators update, but as far as I can tell, the one-frame delay still exists.

</comment><comment><USER22> The zero latency typing change was the biggest "I didn't know I wanted that" feature I can think of for years.

It made the thing a pleasure to use and I didn't hate it before, I just didn't know what I was missing.

</comment><comment><USER23> Anybody else seen a massive increase in the latency of _graphical_ Emacs on recent versions of OS X? Please don't reply if you only ever use Emacs inside a terminal emulator: I'm very much attached to my mouse.

The latency problem began when I upgrade from 10.8 to 10.11. (I use Mitsuharu Emacs, but would be stunned if the problem were absent from plain-FSF Emacs.)

<comment><USER23> P.S. Has anyone gotten the typometer application described in the OP to work with a graphical emacs on OS X? Whenever I open the application, my Emacs just freezes till I close the application.

<comment><USER24> Yes, it works for me. I'm using the Mitsuharu version. Results: text mode - 6.7ms (SD=0.3); fundamental mode - 6.7ms (SD=0.2); js2 mode - 13.2ms (SD=11.6); org mode - 13.9ms (SD=14.2)

</comment></comment></comment><comment><USER25> I'm glad someone's worrying about this!

Interestingly, this topic is quite old. The original mainframe systems had channel controllers for I/O which did a lot of processing locally, which included echoing and even local editing, freeing the CPU for "real" work. This approach was thrown out when minicomputers arrived; this is why the Unix IO system looks the way it does and why C, in a then-noteworthy departure from most languages of its time, didn't include I/O operators.

Even in the pre-TCP ARPANET, network latency on interactive connections was an important topic (this is when the main backbone was a single 56K line IIRC). The MIT SUPDUP protocol (Super Duper remote access alternative to Telnet) included a local editing protocol for connections to remote machines. Even non-line-mode applications could interact with it so essentially run part of the interface remotely all in the interest of zero latency.

</comment><comment><USER26> This is very cool. I primarily write in Word and Texmate. Word is noticeably slower (greater latency) in many if not most circumstances. As file size grows, in particular, Word seems to slow more.

<comment><USER27> I'd think that would have more to do with painting the screen then actually processing the keystroke. A few ms difference wouldn't be noticeably slower unless you were watching for it specifically.

<comment><USER28> What other measure of keystroke latency matters for typing than time from keystroke to display? I certainly am not impressed just because my keystrokes got placed in some invisible software buffer _really quickly_.

<comment><USER27> I guess my contention is that we all should realize a giant program like word is going to exhibit areas of latency that simpler programs can be more efficient in.

Idk, I don't expect word to pain as quickly as vim because why would it? It's huge.

Word is what I use for editing rich text, and I can tell you from firsthand experience that doing the same in vim or emacs is much more of a chore and less intuitive.

Idk, seems like comparing a wrench to a hammer from my perspective, that's all.

<comment><USER29> Considering that current Word doesn't do _that_ much more than Word2000 but is undoubtedly slower, why shouldn't people complain about lag?

<comment><USER27> I don't experience any lag with current word except for very large files. It's slightly less responsive than typing in vim, but most operations feel instant.

</comment></comment></comment></comment></comment></comment><comment><USER30> This timing is pretty coincidental for me. I never really thought all that much about refresh latency/etc... (which I realize is weird since I do play a fair amount of games) but I rebuilt my home office a few weeks ago, and for the time being all I have to connect my 2014 MBP to a 4k monitor is an HDMI cable....and the 2014MBP can only do 4k@30hz over HDMI. Lets just say the keyboard/mouse lag is....infuriating. And it gets WAY worse the less you scale the external monitor.

<comment><USER31> I found this too when I tried running my PC with a 30Hz display. I was surprised how bad it was. Windows '9x's default mouse sampling rate was 35Hz, and that was perfectly tolerable. 25Hz/30Hz games are playable. 60Hz will be better, but there's no reason a 30Hz monitor has to be an absolute outright disaster. And yet...

Obviously over time a bunch of extra frames of latency have snuck in, and at a refresh rate of 60Hz it's just not noticeable enough for enough people to have proven worth fixing.

(I've read of a lot of people finding 60Hz monitors more annoying to use after they've spent some time with 144Hz. So roll on 144+Hz... perhaps either we'll all upgrade, and the cycle will repeat, or our eyes will be retrained and we'll start to demand more from our existing equipment.)

</comment></comment><comment><USER32> Bit depressing to read about such low latencies given every day I have to work with 500ms+ latencies due to remote access to the VM I work on.

<comment><USER33> Have you tried mosh [1]? And if latency is too big to fix it with mosh or the firewall prevents using it, I have found that using Emacs shell buffer and lsync to transfer commands and files on pressing enter or save made remote development possible over links with over 1s of latency.

[1] - [https://mosh.org](https://mosh.org)

<comment><USER34> " _(Why you should trust Mosh with your remote terminal needs: we worry about details so obscure, even USENIX reviewers don 't want to hear about them.)_"

Oh, mosh...

Several (Ok, many. I feel old now. Satisfied?) years ago, doing remote development over a VPN, Emacs + Tramp mode was a lifesaver.

</comment></comment></comment><comment><USER35> Hmm I tried using his tool on my Mac and it did not seem to work for any of the editors I tried (system vim in a terminal, TextEdit, MacVim).

Does anyone know if there is an existing tool for these kinds of measurements on a Mac?

Doing a few google searches mostly turns up this article. But maybe my googling skills are weak.

<comment><USER36> I got it to work after a few tries. Used it with VSCode, terminal, iTerm, Hyper Terminal, and TextEdit.

It took a few trials, and I had to disable transparency. I think it also doesn't like blinking cursors, and if (...) is turned into it's own glyph, you should start the line with some dots of your own to prevent that.

</comment></comment><comment><USER37> I wonder how they managed to get this low typing latency on JVM...

<comment><USER4> Contrary to folklore, the Oracle JVM is one heck of a workhorse.

<comment><USER37> I don't doubt it. It's just that I was curious. I wonder if the same is possible for eclipse.

</comment></comment></comment><comment><USER38> And don't even think about a bluetooth keyboard!

</comment><comment><USER39> Atom 1.1, though. We're at version 1.20...

<comment><USER35> The article was published on Sunday, December 20th, 2015.

Although at the time this was published Atom 1.3 had been released, however I do not know when the author recorder their data. Atom 1.1 was from Oct 2015 so thats not to out of date.

<comment><USER39> Sure, I'm saying it's out of date now...

</comment></comment></comment><comment><USER40> Can't relate. Coding on neovim in tmux on a remote machine obviously with a very slight lag.

</comment><comment><USER41> >Error establishing a database connection

</comment><comment><USER42> TL;DR: Use Windows, as the latency penalty for using Linux is excessive. I'm hoping whatever multiserver µkernel os replaces Linux actually does better.

<comment><USER34> Latency is where µkernels have historically fallen down.

<comment><USER43> That's a surprise. Does anybody have a link that talks about this?

<comment><USER42> This paper has a neat table in it. Third page.

[http://sigops.org/sosp/sosp13/papers/p133-elphinstone.pdf](http://sigops.org/sosp/sosp13/papers/p133-elphinstone.pdf)

For contrast, Linux takes whole microseconds.

<comment><USER43> I'm misunderstanding something. I interpret "Latency is where µkernels have historically fallen down." as implying that µkernels have historically been worse than Linux. But, that table shows them historically being sub- microsecond.

<comment><USER34> I'm unable to find references, so I'm reconstructing this from memory and the paper ([http://sigops.org/sosp/sosp13/papers/p133-elphinstone.pdf](http://sigops.org/sosp/sosp13/papers/p133-elphinstone.pdf)). I have never had any experiences with L4 or any of its relatives; all of mine were with Mach and its derivatives, along with reading about the Scout microkernel ([http://www2.cs.arizona.edu/projects/scout/](http://www2.cs.arizona.edu/projects/scout/)).

As I recall, the problem is that raw IPC costs are a red herring. It's possible to get the IPC costs almost arbitrarily small, if you're not actually toting any data or if you don't have memory protection domains separating the components (as in Scout).

If you are toting data around, such as reading or writing to a filesystem server, you have three options:

* Copy it. That's kind of expensive.

* Share it. Copy-on-write magic, for example. Unfortunately, that requires fiddling with the VM system, to set up a mapping between user-space and filesystem-server-space, for example. Fiddling with the VM system can be surprisingly expensive, too.

* Pre-establish a shared-memory buffer. This is what L4 does(?), if I'm reading section 3.2.2 correctly. It may be much better than the other options, I have no experience there.

(Excellent paper, by the way. I'm hoping to get to do something with L4 at some point; microkernels are neat and it seems like it doesn't suck.)

</comment></comment></comment></comment></comment></comment><comment><USER44> I guess "high uptime" wasn't on their priority list

<comment><USER45> I find the fastest editors I use (Sublime, Notepad++) to be very stable and have uptime of weeks. On the other hand, the Electron nonsenses have to be killed quite often to clear memory and bugs.

<comment><USER44> I was talking about the website, I guess</comment></comment></comment>


As the Chrome dino runs, we caught up with the Googlers who built it (2018) - <AUTHOR> https://blog.google/products/chrome/chrome-dino/ <comment><AUTHOR> In Google Chrome, browse to chrome://dino to play the endless runner game in the article.</comment>


Interview with Sam Odio on the launch and sale of Divvyshot (YC W09) - <AUTHOR> http://mixergy.com/sam-odio-divvyshot-interview/ <comment><USER2> Why did he bring the Macbook Air thing up in the first place? I'm still letting it play in the background to get past it because skipping past it isn't working.

<comment><USER3> Sam Odio "...came forward about the Macbook Air" [http://sam.bluwiki.com/blog/2010/03/confession-i-was-one- who...](http://sam.bluwiki.com/blog/2010/03/confession-i-was-one-who-came- forward.php)

<comment><USER2> Yes, I know the background story, I'm just wondering why he brought it up in the first place and dragged it out. That story is pretty old as it is.

</comment></comment></comment><comment><AUTHOR> One of the fun things I learned in this interview is that Sam paid for school with this: <http://DinarProfits.com/>

<comment><USER4> Andrew,

Thanks for an awesome interview. It's eye-opening to see such an exotic idea becoming a multi-million dollars with the proper execution and with some luck added. Incredible!

</comment></comment><comment><USER5> Sam Odio is a baller.</comment>


A16Z partner: fake it 'til you make it - <AUTHOR> https://twitter.com/ljin18/status/1086738156840308736 <comment><USER2> FTT:

 _A few examples: 1) Uber launched by going to black car companies and paying drivers to be available on Uber during certain hours, ensuring that riders would be able to find a ride.

2) Relationship Hero, a relationship coaching marketplace, scaled to dozens of customers with just one coach--its cofounder! But the website listed 10 fake coaches, to give users the sense that it was a more active platform with diverse coaches who fit their particular situation.

3) Beepi, which was a used car marketplace, had a massive chicken and egg problem in attracting sellers and buyers initially. To solve this, the founders went out and purchased used cars to seed the supply side. After a few months, they moved to the marketplace model._

A reply:

 _The examples in this thread are really something — #2 was lying, bordering on fraud, and #3 burned through $75m in 18 months before going out of business._

[https://twitter.com/michaelshafrir/status/108676474531371417...](https://twitter.com/michaelshafrir/status/1086764745313714178)

</comment><comment><USER3> Makes me think of Theranos...</comment>


Extensions in Firefox 61 - <AUTHOR> https://blog.mozilla.org/addons/2018/05/17/extensions-in-firefox-61/ <comment><AUTHOR> Having the tab hiding API enabled by default means that Tab Group can finally come back and that we don't need to have a custom userChrome.css to hide the tab bar for Tree Style Tabs.

<comment><USER2> Tab hiding [0] is separate from tab strip hiding [1] unfortunately.

[0] [https://developer.mozilla.org/en-US/Add- ons/WebExtensions/AP...](https://developer.mozilla.org/en-US/Add- ons/WebExtensions/API/tabs/hide)

[1] [https://bugzilla.mozilla.org/show_bug.cgi?id=1332447](https://bugzilla.mozilla.org/show_bug.cgi?id=1332447)

<comment><AUTHOR> Aw snap, I though there were the same.</comment></comment></comment>


Ask HN: What to do if you are not Heads Down? - <AUTHOR>

Over the last decade I have been writing code, and have been pretty good at collecting a pay check as an engineer, or engineering consultant.
However I have been noticing that maybe not matter how much I am able to do something maybe it's not what I am best at, or maybe what I am best at is changing.
When I was young I was easily 'filled up' sitting down stairs in a basement hacking away at code or fixing a computer or maybe breaking one would be more correct.  Today, however, I don't feel like that's me anymore.
I also used to do very well in school, both engineering school and in art school.  I was top of my class in design and once I made the switch to computer engineering I was at the top of my class and often times challenged the teachers in class and won.
This all circles back to how I have changed and how I am not sure I want to be an engineer any more.
I want to do something where I have more of a say around the product, it's design and how it's marketed.  Maybe that means I have to be a founder, but maybe there is a role I could move into to be happy, and learn something new in the process.
Have any of you made the shift out of engineering into another role that made you happy?  How do you do it?  I have tried to get product jobs before, but they usually want someone with that experience on their resume.
I have had a few people recommend me for evangelist roles, but I am not sure that would feed my hunger to create great projects.
what advice can you give?  for someone that wants to contribute more to a product than just with lines of code? <comment><USER2> Sounds like you should be a founder. I found myself in a similar position a couple of years back, and yes becoming a founder did make me more happy and fulfilled.

<comment><AUTHOR> The current company I am at now has been having revenue issues, so I started lining up meetings with executives. The CEO seemed happy with it, but today I ended up missed a rough timeline, and the CTO came down on me. ( operationally not important code )

I know I could bunker in and get the code done quick, but I feel like the company is now just trying to leverage my connections long enough to make a sale or a pivot and not reward me for it anyways.

I am just sick of being an employee. I guess if my luck was better earlier on, or if i was a better sales closer maybe one of the startups i was working on would still be here.

On the upside i have meet so many great people while working at all of these companies. If i could figure out how to raise money this time i bet i could build a kick ass team and product.

I have a product and a pitch, but i don't know anyone who can afford to quite their job right now to be a co-founder.

Can you pitch alone. Otherwise I need to keep working on it on the side.</comment></comment>


Fred Wilson's thoughts on the new Startup Visa Bill - <AUTHOR> http://www.avc.com/a_vc/2011/03/startupvisa.html

<comment><USER2> _If an entrepreneur can get funding to start a business in this country, he or she should be able to get a visa._

Or, as seems to be the case in the new bill, if an entrepreneur can convince enough people to pay enough money for their product (a type of "funding" in itself). An important side point, I feel.

<comment><USER3> That seems reasonable enough. I'm not sure why that isn't focused on more. Rather, there is plenty of hyperbole:

"This is an important issue for america, its economy, its vitality, and its entrepreneurial culture. "

</comment></comment><comment><USER4> I saw the original article posted here yesterday, but seems to have disappeared. I came across this statement in Wadhwa's article "...and recipients of the startup visa will not be allowed to stay in the U.S. permanently unless they do..." Hmm that doesn't really make a lot of sense. I was reading the article carefully to see what the path to citizenship would look like. Does the bill specify a path?</comment>


Tell HN: Accepted to DreamIt for Summer. Looking for Hacker to join us. - <AUTHOR>

We're looking for a front-end guru (Flash, AJAX)  to join us for the DreamIt program. Expertise in media streaming (FMS, Wowza, etc) is a MAJOR plus.
Ideally we'd like to find hackers to join as fully committed co-founders. If you want part-time/contract work or an internship, we're open to that too.
LearnBat has created the most interactive e-learning platform in the market, bringing live video/audio, online test materials, and collaborative whiteboards using a tablet interface. The app is currently on Flash and iPad platforms (not in App Store yet)
email firstname.lastname@example.com - thanks yall <comment><USER2> San is the man, great guy to work with and very connected in the ny startup scene!

</comment><comment><USER3> Easy link to their site: <http://www.learnbat.com/>

I've met San a few times. A good guy!

</comment><comment><USER4> Hey San , I will be joining you in Philly this summer as well. Learnbat looks like an awesome product.

</comment><comment><AUTHOR> Thanks for the kinds words guys - I agree :)</comment>


Push Pop Press acquired by Facebook - <AUTHOR> http://pushpoppress.com/about/

<comment><USER3> Facebook is up to something really big.

Awhile ago they brought on Brandon Walkin (<http://www.brandonwalkin.com/blog/>) who is, arguably, one of the most detailed-oriented user interface designers on the planet. He's also a very talented Cocoa developer and apps that he's worked on have won Apple Design Awards.

Next, they acquired Sofa, another Apple Design Award-winning design & software firm who have created some of the best-looking apps for OS X.

Now they nabbed Push Pop Press, founded by Mike Matas and Kimon Tsinteris, who were both instrumental to the launch of the iPhone on the software side.

Facebook is building an army of UI designers/developers who 1) used to work at Apple, or 2) have built apps Apple has deemed best-in-class.

I'd be really surprised if Facebook isn't working on something big to go up against Apple and Google. There were rumors of a Facebook phone, perhaps Facebook is building their own hardware and need a world-class design team to craft its OS? I can't see Facebook sticking all this amazing talent on a redesign of Photos or Chat, or updating icons in Facebook's iPhone app.

<comment><USER4> I doubt Facebook would build a hardware device. Instead, I think they'll do a 'social OS' that uses Android for all the low-level stuff, but with the Google apps all replaced with apps that have deep Facebook integration (messages, contacts, photos, etc.).

Microsoft Bing apps (e.g. Maps) could round out the features that FB doesn't build themselves, and they could use Amazon's Appstore in lieu of Android Market.

But to your point, it's possible these designers are at work making this social OS beautiful. Android in the back, iOS in the front.

<comment><USER5> Facebook won't build their competing phone OS on top of android - <USER2> controls android and Google is facebook's biggest competitor.

<comment><USER6> "Google controls android"

Meh, they control it to an extent. The core open sourced Android (gingerbread atm) is clearly "good enough" that all anyone has to do to credibly fork it and still deliver a high end device is bring as much to the table as Google itself does.

That's not a herculean task although only a handful of companies qualify and most of those are better off jumping through Google's hoops to get the full experience anyway. Facebook probably isn't one that wants to jump through Google's hoops though.

I'm not saying the FB phone will be a success. Clearly some people want it. Let's go benefit of the doubt and say it will be technically awesome. Well so were a lot of other flops. I think a FB phone is one of those things on a knifes edge that could be a Vista/Zune/Edsel level flop or could be the iDevice killer every tech pundit has been waiting on for the last decade.

</comment></comment></comment></comment><comment><USER7> I wonder how Mike Matas would feel after a year of being at Facebook...

When I first read about them and heard his TED talk, I really believed in what he was saying, that they aspired to change the way the world reads. I believed in his revolution...

So, this is definitely a let down...

<comment><USER8> It's easier to change the world after you get Bank.

<comment><USER9> Sure, it is. But Push Pop got a ton of publicity partly because of Al Gore and partly because of Mike's passionate Ted talk, so I presume they would have been able to get more than enough funding. And of course you can't change the world if someone does it before you.

Anyway, the folks at Push Pop Press, as well as Sofa and the rest of top tier design talent that Facebook have been eating up, are smart bunch and I'm sure they know what and why are they doing. Or it could be the allure of a metric buttload of money.

<comment><USER7> I want to believe that its because Facebook is showing them a bigger 'vision' but this smells like $$ to me...

People can be smart but sometimes the short-term allure of happiness (in this case the payout) can harm their long-term growth and impact to the world.

</comment></comment></comment></comment><comment><USER10> Sad to see. This was the only promising execution of ebooks for the tablet age, and Facebook is where it goes to die? I know they probably got obscene amounts of cash, but it is still disheartening to see innovations swallowed up by decidedly non-innovative companies.

<comment><USER11> While I thought _Our Choice_ was a pretty snazzy product, and I think it's a shame that they're discontinuing work on their publishing platform, they did have a somewhat conservative approach to ebooks. No selectable text, "interactivity" that was pretty much limited to embedded videos and charts, and so on. What made it special was the incredibly "fluid" interface, meaning there wasn't a single button or control, you navigated the book purely by touching what you wanted to move and it worked like magic.

But there's lots of other ways books can be done in a digital format. For one really excellent example look at Inkling [1]. Now _that's_ revolutionizing a medium (in this case textbooks).

[1] <http://www.inkling.com/>

<comment><USER12> Push Pop's first publication did have a novel interface, but it was fundamentally no different than what we are used to. It was a book with other forms of media embedded within it.

I can get behind Inkling being revolutionary because it seems to me (focusing on their Social Learning feature) that it is closer to Vannevar Bush's vision of the memex. It is like the memex[1] in that it is taking advantage of the interactivity and social capabilities of current tech to create an interface that better matches the way we learn. The way we learn indirectly from others via books (where information is frozen and up to you to learn from it) and the way we directly learn from each other (mainly communicating about a topic in a conversational manner).

[1]<http://en.wikipedia.org/wiki/As_We_May_Think>

</comment></comment></comment><comment><USER13> Is it a pure talent acquisition? As Push Pop Press's core business (coffee table iPad books) is so distant from Facebook's. Maybe they want to do something Flipboard-ish?

<comment><AUTHOR> Sounds like mostly talent:

 _"Although Facebook isn't planning to start publishing digital books, the ideas and technology behind Push Pop Press will be integrated with Facebook, giving people even richer ways to share their stories. With millions of people publishing to Facebook each day, we think it's going to be a great home for Push Pop Press."_

<comment><USER14> It's kind of hard to deny the parallels between Flipboard and tech like what Push Pop Press has developed. I know a number of people for whom Flipboard is the preferred method of interacting with Facebook. I'd assume that Facebook has some means of knowing which applications are using their API the most. Maybe there's some underlying data here that we can't see, like maybe Flipboard makes up a lot of Facebook's mobile usage, and we know how important it is for Facebook to control the user interaction.

/rampant speculation

</comment></comment></comment><comment><USER15> The horrible beast swallows up another good idea. :(

<comment><USER16> At least they aren't gobbling up a generation of talented youth and putting them to work plastering optimized and personalized little text ads on everything ;-)

<comment><USER17> Well, those text ads do let us get, for free, a good mail service and an oracle that knows all and tells all.

<comment><USER16> This "free" you speak of is something of a Faustian bargain :-)

</comment></comment></comment></comment><comment><USER18> My first thought upon hearing that it was Push Pop Press was education. Because of their work with Al Gore. Maybe even the predecessor to the TYLIP. Perhaps it could even be field-tested at the beneficiary school district(s) of the $100M pledge.

In Neal Stephenson's "The Diamond Age", a plot device (not central), is The Young Lady's Illustrated Primer. It is an adaptive AI tutor. To realize TYLIP, hard AI problems will need to be solved. Yet, it is possible the iPad is a big step towards a simpler Primer.

"TYLIP is...a book that is powered by a computer so advanced it's almost magical, and it teaches children everything. It does this through a fully interactive story. It teaches you how to read, how to do maths, it teaches you morals, ethics, even self-defence. 'Diamond Age' is a very entertaining read, mainly because of the TYLIP."

[http://mssv.net/2006/05/01/the-young-ladys-illustrated- prime...](http://mssv.net/2006/05/01/the-young-ladys-illustrated-primer/)

</comment><comment><USER19> Mike Matas is awesome. I've been a fan of his work since Delicious Monster and I hope (if the past endeavors haven't already) that this transaction sets him up nicely. His photography and videography of his world travels at <http://mikematas.com/> is amazing and I'd love to see more.

</comment><comment><USER20> Wow, that's just a straight up talent acquisition maybe with some patents thrown in for the impending legal meltdown. Remember the first acquisition Parakey? It was going to be a web OS of some sort so even Grandma can easily share pictures or something. Instead we got a perennially buggy Facebook iPhone app. It just goes to show how hard it is for growing companies to find good talent in the valley.

These are really brilliant people though. Must be amazing to have all those people in one building. Still, have no idea how Facebook can really bring out the best of that talent, Apple seems like a lot better place except for their old school secrecy. I guess it's hard to shine when you have two super novas like Steve Jobs and Jonathan Ive.

<http://en.wikipedia.org/wiki/Parakey>

<comment><USER21> We also got Three20. Not the best framework in the world, but it probably did more to enable iOS apps than any other non-Apple framework.

</comment></comment><comment><USER22> On a side topic, how facebook decides to acquire companies? Any idea?

</comment><comment><USER23> Congrats on flipping your startup. It's pretty much what everyone is doing nowadays. Change the world... whatever.

<comment><USER23> really.. why the downvote ? can't a man be blunt on HN anymore, i have to make sure i don't hurt anyone feelings isn't this a "dipshite company" in Mike Arrington's dictionary.

[http://techcrunch.com/2010/08/15/venture-capital-super- angel...](http://techcrunch.com/2010/08/15/venture-capital-super-angel-war- entrepreneur/)</comment></comment>


CouponMate: Browser extension that automagically applies coupons at checkout - <AUTHOR> https://www.couponmate.com/?ref=hackernews <comment><USER2> What's the business model?</comment>


You are not running out of time (2010) - <AUTHOR> http://rahulbijlani.com/essays/you-are-not-running-out-of-time-essay/ <comment><USER2> I will take this optimism with a grain of salt. There are physhiological and social hard limits to acheiving a lot of goals.

A man couldn't be an MMA fighter at 50 if he never worked out his whole life. A woman can't have her own baby past menopause. Even experiencing the similar events is different at 20 compared to 30 or 40.

Even when you can acheive the goal,the journey is different if you start too late. I could probably climb everest 10 years from now but will I give up midway then where I would have the stamina to finish it now?

Never the less,it's never too late to start doing what is right.

</comment><comment><USER3> As someone who has wondered about this subject and periodically pondered it, I am grateful to be fortunate enough to now have read this. The author definitely exceeded my degree of progress, and with eloquence to boot.

A great reminder that in many cases perspective and frame of mind are everything.</comment>


U.S. probes allegations AB InBev seeking to curb craft beer distribution - <AUTHOR> http://www.reuters.com/article/2015/10/12/us-abinbev-doj-antitrust-exclusive-idUSKCN0S623R20151012 <comment><USER2> > Many states require brewers to use distributors to sell their product, and > once AB InBev buys a distributor, craft companies say they find that they > can't distribute their beer as easily and sales growth stalls

That seems like the problem here. Why can't brewers sell direct?

Like Telsla sales channels - what is it about the US and middle men?

<comment><USER3> The three-tier system was created after the end of prohibition to provide a single point for the control and taxation of alcoholic beverages by the states, the wholesalers (distributors). It also protected the smaller suppliers (breweries) from the bigger ones by requiring that wholesalers be independent from the suppliers, who are independent from the retailers.

However, when you're as big as InBevAB, you essentially own any wholesaler you deal with, since your sales will account for such an overwhelming share of their overall sales.

Many craft breweries can get around this three-tier system by operating their own brewpubs, where they produce and sell their product on the same premises.

I feel like the three-tier system has probably outlived its use and is likely more harmful than beneficial.

</comment></comment><comment><USER4> No surprise there

Typical of big companies to squash competition in favour of the crap they sell

<comment><USER5> yep, don't people know how Capitalism works? This sort of stuff is perfectly expected, just like the VW cheat. It's a fight for money and there aren't many rules.

<comment><USER6> and yet in this case the Big Company is using one rule -- sales through distributors exclusively -- to make seemingly anticompetitive moves.</comment></comment></comment>


Advertising without invading privacy – Bring back the Deck - <AUTHOR> https://medium.com/@davidomoyele/bring-back-the-deck-604e128c0cc5 <comment><USER2> Advertising cannot be separated from invading individual's privacy. That's something that as an advertiser you can't do without. Otherwise you are always in the dark in terms of how effective your advertising is. I wrote on this if you want to check it out here: [https://alvaroduran.me/writing-in-times-of- clickbait](https://alvaroduran.me/writing-in-times-of-clickbait)

<comment><USER3> The original article is something, but it should not be used as a cover for an article that could gain traction on its own.

personal blogs are not the hottest on HN but some do get attention when they are substantial.

invading peoples privacy is what elevated web ads from annoyance to an attack surface, a threat model, and malware conduit. This is exactly why most people use adblockers, or proxy portals to fish out a webpage.

Advertisers have screwed themselves into a corner as they look for a way to make a few more pennies they are rebranding thier product in a most negative shade possible. I dont see an ad and think about information, I used to but now i see advertising and i think threat harrasment malware and criminality. the ad guys pissed in thier own bed and now try to sell it to someone</comment></comment>


Glowing Plants: Natural Lighting with no Electricity - <AUTHOR> http://www.kickstarter.com/projects/antonyevans/glowing-plants-natural-lighting-with-no-electricit

<comment><USER2> this would be world changing if this tech can be expanded, refined, and perfected. really excited to see how this progresses in the next decade.</comment>


Ask HN: Anyone in the Hong Kong / Shenzhen area for the spring festival? - <AUTHOR>

Hi HN,
Anybody in the Hong Kong / Shenzhen area during the spring festival ?
I will be in HK and I would love to share a coffee and ideas ;) <comment><USER2> Please don't post the same question multiple times. (duplicate of [https://news.ycombinator.com/item?id=9048552](https://news.ycombinator.com/item?id=9048552) from 12h ago)</comment>


Vim FAQ - <AUTHOR> http://vimhelp.appspot.com/vim_faq.txt.html

<comment><USER2> [http://vimhelp.appspot.com/vim_faq.txt.html](http://vimhelp.appspot.com/vim_faq.txt.html) currently shows:

"This application is temporarily over its serving quota. Please try again later."

A Google search for "vim faq" shows:

[http://vimdoc.sourceforge.net/htmldoc/vimfaq.html](http://vimdoc.sourceforge.net/htmldoc/vimfaq.html)

But it says the latest version is 6.3, which was released in 2004. I don't know whether there's a newer version of the FAQ.

<comment><AUTHOR> The Hacker News effect! Thanks for the link.

</comment></comment><comment><USER3> Why hasn't anyone come up with a way to make these less hard on the eyes? Reading code in mono-spaced is divine, but reading prose in mono-spaced actually causes my brain to almost shut down and refuse to read. It's less bad in a terminal with a dark background, but on a white webpage, I really have issues.

<comment><USER4> Should be obvious, but think it's pretty rare for frontend / designer types to use Vim.

/me Looks around and notices that I'm a designer.

OK. Proposition. I've always wanted to a really nice tutorial / guidebook for Vim. I however, am not someone familiar with the guts of Vim, Vimscript and mostly just implement packages and pick up stuff as I go. If there is a coder- type person out there that is interested in working on the more technical bits, I'd be happy to style up the documents and make it presentable. I have experience writing, making videos and styling technical docs. You can see my work at [http://www.webhook.com](http://www.webhook.com)

Also, I should say I don't think this FAQ is a good intro to Vim. I think a better way to do it would be to present a chapter by chapter guide that gives people very easy earlier wins. To me, that means you focus on package installation and configs first, and then start working on movement and more advanced packages. Get people hooked on customization first, because the movement stuff takes weeks of brain training. At the end of the day I love Vim because I can make it whatever I want.

<comment> bulte-rs Perhaps contact the author of submitted link? I'm fully open to setting something up; 10+ years of vim usage behind me, just inexperienced in writing up this kind of stuff. Might still give it a shot though :P

</comment></comment></comment><comment><USER5> Vim has been my main editor for years now, and I still can´t get used to think with with motions that involve more than 1/2 lines/words/chars.

I think it´s just an unnecessary middle step for the brain: if I want to get to the word "dog" I don´t want to think how many lines/words/chars away it is.

Instead: focus on search to move about. It´s much more immediate and practical in my opinion. Using '/' I can usually get where I want to be in 2/4 keystrokes.

Combine it with visual mode (or small motions) and then you will really experience the power of vim AND its simplicity.

I think for a beginner (and I still consider myself one, even after a couple of years of intensive use) it´s a much easier paradigm to start with.

</comment><comment><USER6> This is one of my favorite Vim tricks/guides posts: [http://mislav.uniqpath.com/2011/12/vim- revisited/](http://mislav.uniqpath.com/2011/12/vim-revisited/)

<comment><USER7> I might as well chime in too. I thought this was a fun way to get the motor- memory down for movement: [http://vim-adventures.com/](http://vim- adventures.com/)

And although I agree with the post you made, that everyone should know how the .vimrc file works, I use Vundle to help make my vim experience less painful: [https://github.com/gmarik/Vundle.vim](https://github.com/gmarik/Vundle.vim)

My biggest complaint about vim is probably a common one: the key commands don't seem to have much rhyme or reason. Perhaps in Bill Joy's mind they did but even now after years of use I find myself always having my vim cheat sheet nearby.

<comment><USER8> What do you mean with key commands? `i` for insert and `c` for copy makes quite sense to me.

</comment></comment></comment><comment><USER9> That FAQ is broken, the first thing on there should be "How do I quit vim?".

<comment><USER10> I know you probably meant that as a diss on vim, but for a long time that was the only vim command I knew. I felt more comfortable exploring files in editors and vim was the only editor available on the servers. The first two dozen times, I had to google the :q!

<comment><USER9> Partially a diss, partially as if it's the default editor it'll open with no clear indication of how to actually quit it in certain circumstances. I had to do the same thing repeatedly when I first encountered it.

</comment></comment></comment><comment><USER11> This is useful, because the official links to the VimHelp format FAQ have gone dead:

[http://vimdoc.sourceforge.net/](http://vimdoc.sourceforge.net/)

You're taken to a Geocities dead page where you are rickrolled.

(For those who don't know what that is: [http://en.wikipedia.org/wiki/Rickrolling](http://en.wikipedia.org/wiki/Rickrolling))

<comment><USER12> The plain text version is broken, but the html version is right under it.

I usually just go to vim.org, click through to documentation and then FAQ, so I never noticed until now. I'll figure out how we can get the broken link removed.</comment></comment>


Ask HN: Can I expect extra compensation for fixing product problem of employer? - <AUTHOR> There is a company we acquired that has a product, with an issue that prevents it from working as the diligence team believed. I was not part of the diligence, nor is my job description related to products of this nature (e.g. this is all occurring beyond the scope of the my job description). Nonetheless, I believe I may have a solution to this issue (to fix the product), but it is worth at least $2M to the company. I'd like to test and share the idea, but I'd like to be compensated accordingly. <comment><USER2> Short answer: It depends.

More useful answer: It is the market expectation that salaried employees devote their work-related efforts to the benefit of their employer. This issue is work-related, even if not related to your job description; your consideration for best efforts for fixing it is your salary.

If your employer wants to be extra special nice, they may decide to award a discretionary bonus. This will be calculated against your normal pay, in line with other discretionary bonuses [0], and not ordinarily on the incremental business value contributed by your discovery.

[0] At US companies in the tech industry there is wide discretion in these with the lower end being 0, the lower end of plausible being "Here is a gift card for $20 at Applebee's", the mid-range in the tech industry being ~$1k, and the upper range being "AppAmaGooFaceSoft can be _quite_ generous when they want to be."

Broadly speaking if you want variable comp you generally have to be taking on substantially more risk that W-2 employees normally take. If you were a consultant who successfully sold an engagement with the same outcome, you might well be able to negotiate $50k or $100k for the outcome.

There exists substantial variability in work cultures around the world with regards to this question; I know of no geography which is more likely to award a bonus than the US and many which are materially less likely. There exists substantial variability between industries (with finance and sales-oriented professions being most likely to pay directly for an outcome) and within industries.

</comment><comment><USER3> To add to what patio11 said:

Even if as an employee you don't get paid a lot directly for fixing it, there is still some benefits:

1\. You can use this as argument for getting a raise or promotion.

2\. When you look for next job, you can say "and I identified a problem, on my own, which saved my last employer $2 million". Which should allow you to negotiate much higher pay.

So overall it might still raise your lifetime earnings by a noticeable amount, if you take advantage of it.

</comment><comment><USER4> What makes you believe that tossing problem in the market will not help find a solution for lesser than what you are demanding?

I've had people quote me millions for fixing some key architecture issues which I later solved by paying a few thousands.

Most people underestimate what market can offer.</comment>


The SEC Shows Why Bitcoin Is Doomed - <AUTHOR> http://www.bloomberg.com/news/2013-08-08/did-the-sec-just-validate-bitcoin-no-.html

<comment><USER2> This article is riddled with factual errors, outright deception, and logical fallacies. It makes a variety of attempts to scare the reader (what if "Bitcoin gets hacked"? utter nonsense). They even make a claim that Bitcoin's anonymity may appeal to users, but it's been stressed repeatedly and constantly that the BTC transaction network is far from anonymous.

Here is an excellent 3 minute video summary on Bitcoin: [https://www.youtube.com/watch?v=CdVVECKKSXo](https://www.youtube.com/watch?v=CdVVECKKSXo)

Far more informative and far less spin. It's even from Bloomberg -- the same news organization that's affording blog hosting to article's author.

<comment><USER3> As far as I can tell, nothing in the article is factually inaccurate.

Why is it nonsense that Bitcoin _might_ get hacked? It's entirely possible, though perhaps improbable.

<comment><USER4> How does one "hack" Bitcoin? Not snark; I'm genuinely curious because I've seen this mentioned quite a number of times.

Do you mean your computer could be compromised? If so, then is that any different than a house going up in flames with money under mattress?

Article mentions "Unlike gold or silver, Bitcoins have no intrinsic uses" which is true, but then fiat money has value not because the paper/fabric/plastic blended note and ink add up to what's printed on the face. In that regard Bitcoin has value on faith as well.

<comment><USER2> Surprisingly (or not), there is a Bitcoin wiki[1] that is actively maintained.

Here is a short list of weaknesses:

* Wallet Vulnerable To Theft: malware searching and downloading wallets

* No authentication for IP transfers: you can send transactions to IP addresses, this is vulnerable to MITM attacks and someone can re-route transactions to a different IP address

* Energy Consumption: electricity has a variable and external cost, which can be manipulated

* Illegal content in the block chain: arbitrary data can be included transactions, including binary data (eg: child pornography)

* Breaking the cryptography: Bitcoin uses SHA-256 and ECDSA, this isn't vulnerable now but it could be in the future

* Double-spending[2]

* Coin destruction: if your wallet file is deleted, your coins are gone forever

Obviously wallet theft is the biggest issue, especially with using third-party wallet services and running insecure operating systems (ie: old versions of OSes). There are a variety of reliable learning resources for managing your wallet files securely.

[1] [https://en.bitcoin.it/wiki/Weaknesses](https://en.bitcoin.it/wiki/Weaknesses)

[2] [https://en.bitcoin.it/wiki/Double- spending#51.25_attack](https://en.bitcoin.it/wiki/Double- spending#51.25_attack)

<comment><USER5> The only real "weakness" is theft/loss of your wallet and keys. Bitcoin is like cash in that respect, but with unique new properties. It's easier to hide and move, but it can be stolen remotely (unlike paper bills). This is a problem and we all are working on different ways to decrease risks. E.g. by having multi-party authorization, "cold storage" (e.g. keys printed on paper), 3rd party services ("banks"), hardware wallets.

Not real issues:

\- "No authentication for IP transfers" \- not an issue, no one uses it. If you need to authenticate payment address, either get it over HTTPS, or use upcoming (in 0.9) payment API (same principle as with HTTPS, but without HTTP) or any other way that reduces risks of spoofing payment address.

\- "Energy Consumption" \- not an issue. Miners spend as much energy as profitable for them, just like anyone else on the planet. Visa datacenters also consume energy. Who decides how much energy spending is "too much" if everyone spends what they can afford?

\- "Illegal content in the block chain" \- not an issue with Bitcoin, but an external arbitrary threat created by feds. Same applies to unencrypted WiFi connection or someone sending a well-hidden picture in email attachment to you. Also: users are not required to store the blockchain. If you don't like a threat of "illegal content", use lightweight client to keep your keys only.

\- "Breaking the cryptography" \- does not uniquely apply to Bitcoin comparing to, say, PayPal or bank wires. If some algorithm becomes weak, Bitcoin can be upgraded just like your bank's SSL certificate can be.

\- "Double-spending with 51% attack" is getting less economically viable with every single day as more people mine, use or simply know about Bitcoin. Also, it does not affect all the users, but only those with whom attacker transacts. And if that happens once, people would start sending expensive transactions directly to miners they trust to mitigate the issue.

\- "Coin destruction" is not a problem for society. Everyone's money gets more valuable when you lose yours. Divisibility is enough for a long time to come and can be increased on many levels, inside and outside Bitcoin core protocol. Lost/stolen wallet issue is covered above already.

</comment></comment></comment></comment></comment><comment><USER6> > They invented a very clever peer-to-peer payment system that also happens to > enable fraud, tax avoidance, drug dealing and other sordid pursuits that > governments won't abide for much longer.

This sounds like cash. What's the problem?

The status quo is annoyed because Cash 2.0 is better than the swill they're handing out at banks.

<comment><USER3> Cash is regulated. Bitcoin isn't.

Looks like that's gonna change pretty quickly.

<comment><USER2> "Bitcoin" encompasses multiple and distinctly separate concepts, namely: a transaction network, a currency, a wallet, and mining operations.

Does the wallet in your pocket get regulated? No, that's silly. It's just a container for currency.

Do the coins in your pocket get regulated? No, that's silly. It's just coins.

Does the generation of money get regulated? Absolutely, it's more tightly controlled than most other activities are in humanity. How will they regulate BTC mining? It's not really possible, but they'll likely engage computer hardware vendors of all stripes and sizes (across the planet) to pool purchase order histories to the government.

Do money transactions get regulated? Absolutely, it's another tightly controlled activity. How will they regulate BTC transactions? It's not really possible, but they'll likely engage BTC exchanges of all stripes and sizes (across the planet) to pool transaction histories to the government.

<comment><USER7> > It's not really possible

Both places this is used with regard to regulation, this claim needs to be justified. It seems to me it misunderstands what it means for it to possible to regulate something.

</comment></comment></comment></comment><comment><USER8> > The closer Bitcoin gets to being an accepted currency, the less useful it > will be as a method of exchange. And the less useful it is as a method of > exchange, the harder it is to see why it has any value at all.

I really don't understand how they are arriving at this 'contradiction'. Unless you really squint, there is really no support for it in the article.

Codifying that virtual currencies have actual real-world value doesn't change anything about how the ecosystem/currency works. Am I missing something here?

<comment><USER9> The paradox is that as Bitcoin gets more mainstream, in practical terms it will be more and more similar to "real" money.

Bitcoin has been off the radar for the SEC, but as it gains notoriety there will certainly be an interest in regulating it.

Imagine that tomorrow Bitcoin gets really big, it isn't crazy to think that many people will be worried about having all their money in the computer they use everyday and is connected to the Internet. Then some companies start offering a service which lets you deposit your bitcoins and they assure you that they won't get robbed and if they do, they will be held responsible for that. Oh, and they require you to have a verifiable identity for your account since that helps to prevent fraud. They just ask a monthly fee for the maintenance of your account and a small fee for every transaction you make through them. You have in front of you something similar to a bank.

So, if you have to pay bureaucratic costs of regulation, and institutions like banks for Bitcoin, then it's not that different from the money we are used to. The one which also hasn't intrinsic value and for most of us is just a number in a computer anyway.

</comment></comment><comment><USER10> _" so either users will willingly submit to a further deflationary spiral or, more likely, they'll clamor to expand the stock"_

This doesn't make any sense. Why would users care that their bitcoins are getting more valuable over time (i.e. deflation)?

It sounds like the author is throwing around the term "deflationary spiral" without understanding what it actually means.

Anyway, it's damn near impossible to "expand the stock". If somehow a majority of miners decide they want a larger reward the users who actually hold bitcoin can decide to ignore their fork. See "economic majority": [https://en.bitcoin.it/wiki/Economic_majority](https://en.bitcoin.it/wiki/Economic_majority)

<comment><USER11> Yeah, that line made me wonder about the article's author. He really appears not to know. It makes me suspect a lot of financial writing is like writing about cars. He's throwing stock phrases around.

</comment></comment><comment><USER12> tl:dr

> The group of developers who came up with Bitcoin did not produce a viable > replacement currency, a revolution or even a particularly wise investment > opportunity. They invented a very clever peer-to-peer payment system that > also happens to enable fraud, tax avoidance, drug dealing and other sordid > pursuits that governments won't abide for much longer.

article is basically a smear, little to none informational content

</comment><comment><USER13> As long as there are things which can only be purchased with bitcoins they will always be relevant. If people can only buy drugs on the internet in bitcoins then bitcoins will continue to be used.

I could possibly say the same about USD. As long as I must pay my taxes in USD the USD will always be relevant and continue to be used. There might be other things which also help to make the USD relevant, but this is its basis, its keystone point to being.

</comment><comment><USER14> > _The closer Bitcoin gets to being an accepted currency, the less useful it > will be as a method of exchange._

Within America, due to taxes, etc.... _possibly_ (marginally, arguably) true. America has many alternatives that are cheap or free and mostly reliable (paypal, google wallet, square, cash). In many other countries, and _between_ countries? More legitimacy is purely a good thing.

</comment><comment><USER15> The problem with this article is it's a straw man basically. The author argues that BTC appeals to people because of the lack of regulation but I would counter that's not the case, and the advantage is that you separate your currency from central banks and their inherent financial systems. Of course you will always be coupled to real world economies, financial industries, and the regulations that come with it. BTC isn't strictly about hiding your transactions, it's about decoupling from a currency system that many think is flawed.

<comment><USER8> ... and to believe that BTC actually 'hides' your transactions in any real way is the naive assumption that just wont go away.

<comment><USER15> I agree. Right now I think the biggest hurdle to BTC truly is FUD. People are nervous when it comes to money. Probably a healthy skepticism. But judgements should be based on the truth. Right now it's hard to get the proverbial _fair trial_ when it comes to BTC and the facts.</comment></comment></comment>


Ask HN: What do you think about Litecoin?  - <AUTHOR>

I've been tracking the other cryptocurrencies movement along with bitcoin and was wondering if you think Litecoin will be viable in the future?<p>Is Bitcoin gold and Litecoin silver? Or is there only room for one? <comment><USER2> I too am curious. I just recently looked into mining btc only to discover that its completely pointless due to FPGA farms. is mining litecoins and trading for btc worth it?</comment>


Computer-related horror stories, folklore and anecdotes (1990) - <AUTHOR> http://www.speedygrl.com/funnies/texts/computer.folklore.from.net.rumors.html

<comment><USER2> Is there still a good way to browse Usenet archives? When Google bought Dejanews, it made a big thing of how you could go right back to the moments in history - the first smiley, the first mention of Madonna etc. Now Google Groups seems to make historical Usenet really hard to browse - hiding the email addresses and trying to bounce you to modern groups. Or am I missing something?

<comment><USER3> Point your NNTP client at: nntp.olduse.net or one of those new-fangled "Web" browser things at: [http://olduse.net/](http://olduse.net/)

olduse.net is not an archive, as such, but more of a repeat performance - " _updated in real time as it was thirty years ago_ " \- the bang!path email addresses are not hidden, and work-arounds to the "line eater bug" abound.

The Google archive at: [https://groups.google.com/forum/#!browse](https://groups.google.com/forum/#!browse) seems useful to me, with, for instance, with 400+ results for "The Devouring Fungus".

The Google interface has a "Show Original" function under the "More messages actions" pulldown, and a "Show unmasked email addresses" function behind a Captcha. Perhaps I'm missing something?

</comment></comment><comment><USER4> Neat! Interestingly, many of these stories made it into dead tree form in Karla Jennings' _The Devouring Fungus_, which provides a nice narrative around this folklore and investigates some of these more thoroughly. She also goes into computing history a bit (Babbage, Zeus, etc.)

I was surprised to see it's still in print, so if you're an old neckbeard or interested in computing history, it's recommended.

<comment><USER5> [https://openlibrary.org/books/OL14414111M/The_devouring_fung...](https://openlibrary.org/books/OL14414111M/The_devouring_fungus), but it appears to be "checked out". The concept of an electronic file being checked out to one person on the whole internet is a goddamned abomination.

</comment></comment><comment><USER6> "Let's see if 160Kb makes it around the Net." Love it.

</comment><comment><USER7> If you think that's bad, I heard a story about a guy at the local TAFE (Australia's Technical and Further Education) who annoyed all his classmates. This being the 90s, they were still using floppy disks.

Well, one day he annoyed the class a little more than normal. When he went for a bathroom break, they took his floppy disk, removed the magnetic media and replaced it with a circular sander. Sanded the heads right off his FDD when he got home.

</comment><comment><USER8> The page contains this quote:

> ...the teflon insulation reacted with the hot (molten) metal to

> form HF gas. When the fire department turned on the sprinklers

> in desperation: hydrofloric acid.

I'm interested in where that comes from.

<comment><USER9> Last bit is definitely correct, since hydrofluoric acid is HF in solution with water.

HF is produced in Pyrolysis of Teflon[1], so I wouldn't say 100% myth busted.

[1][http://www.fluoridealert.org/wp- content/pesticides/teflon.de...](http://www.fluoridealert.org/wp- content/pesticides/teflon.decomposition.prod.htm)

<comment><USER8> I was wondering if that post was included in full in the link, as I failed to find it.

</comment></comment></comment><comment><USER8> I always like stories about weird hardware/software problems where one is interfering with the other.</comment>


Motorcycles could ease traffic congestion - <AUTHOR> https://www.brusselstimes.com/all-news/belgium-all-news/58612/more-motorcycles-on-the-road-says-belgian-automobile-federation/ <comment><USER2> It is well known that motorcycles have a higher death and injury rate than automobiles that are human driven, I expect self driving cars to increase this differential? Will they ever make self driving motorcycles to allow them to catch up? It may never be possible to make motorcycles as safe as self driven automobiles. Will we tolerate the deaths and injuries in exchange for greater traffic density? I think not. I have driven in Taiwan and other Asian countries with huge numbers of motorscooters and motorcycles, and I was amazed at the huge number of young men on crutches and with limps. I asked my taxi driver why this was, and he said that people's knees stick out on scooters and motorcycles, injured knees are the largest injury that people suffer when they have an accident. The logic is clear.

<comment><AUTHOR> Future, with computerized streets & highways (to assist self-driving cars) might help motorcycling.

In terms of statistics.

A non-trivial portion (34%) of motorcycle fatalities involves alcohol (at leat in US) [1].

Simply by not drinking and driving, one could reduce a chance of fatality by 30%.

In motorcycles fatalities ans serious injuries resulting from impaired driving, are much more pronounced, obviously.

Overall, though, if we continue to view transportation by well equipment and maintained motorcycles -- as 'injuries-only', then wouldn't we end up arguing that everybody is better off driving 5,000 tonn SUVs and trucks?

[1] [https://www.iii.org/fact-statistic/facts-statistics- motorcyc...](https://www.iii.org/fact-statistic/facts-statistics-motorcycle- crashes)

(see Drivers In Fatal Crashes By Blood Alcohol Concentration (Bac) And Vehicle Type, 2006-2015 ) )</comment></comment>


Sending plaintext password even though the customer complains? - <AUTHOR> www.comhem.se (owned by tele2) has been sending plain text password from a third-party domain with no encryption for several years. their management don't even change it when we file a complaint. after writing to a newspaper they recently published an article about it but the company still denies doing it wrong...https://computersweden.idg.se/2.2683/1.722651/com-hem-losenord-klartext <comment><USER2> That might be a case for the Swedish implementation of GDPR.

<comment><AUTHOR> GDPR is implemented in Sweden but only for sham purposes like everything else here, the laws look good on paper but then reality is completely different</comment></comment>


Google Cloud Datalab – ipython as a service - <AUTHOR> https://cloud.google.com/datalab/ <comment><USER2> Google is racing to overtake AWS. Datalab and Cloud Shell are some amazing products released by Google. Using Cloud Shell, you can orchestrate your infrastructure right from your browser. Using Datalab, you can do data science from the browser.

<comment><USER3> Hope they announce other kernels to use Jupyter (Formerly IPyhton).

</comment></comment><comment><USER3> IPyhton only refers to the kernel now it is Juypter as a service.</comment>


The left fold: week in review: API design, branching, and Basic - <AUTHOR> http://www.foldl.org/issues/2009-12-21/

<comment><USER2> Great, I'm finding it readable, and pretty well-selected. I look forward to seeing the next issue.</comment>


Ask HN: I'm thinking about creating 'Oscar' for IT. What do you think? - <AUTHOR> I've watched The Oscar 2016 and realized it will be nice to have similar for IT industry with following categories:<p>* best coder<p>* best tester<p>* best bug/issue<p>* best product/app<p>...<p>What do you think about this idea? <comment><USER2> The scope would not be very well defined, unless it's something like "Opensource JS Oscar", or similar. Otherwise you'd be excluding lots of people we don't know about and who do amazing work. Then there's difference of environments. Finally there's what does it even mean to be a coder?

If you reduce the scope a lot, then something like that already exists. For example Pwnie Awards ([https://en.wikipedia.org/wiki/Pwnie_Awards](https://en.wikipedia.org/wiki/Pwnie_Awards)) But it's more about fun and categories are made up as needed.

</comment><comment><USER3> The idea is fine, however you're going to have to start it from some point of influence, along with a marketing strategy to get widespread agreement, or it will just be one more thing that no one has heard about and wining such an 'oscar' would be meaningless.</comment>