Java: "+=" applied to String operands can provoke side effects - <AUTHOR> https://bugs.openjdk.java.net/browse/JDK-8204322 <comment><USER2> Wow. This is a pretty big bug. The official bug report: [https://bugs.openjdk.java.net/browse/JDK-8204322](https://bugs.openjdk.java.net/browse/JDK-8204322) as Stuart Marks, a jvm architect, posted. I'm surprised it stayed uncaught for so long.

For the unfamiliar, the way string concatenation is compiled changed with invokedynamic.

Previously, it would compile to either Sting.concat calls or transform into a StringBuilder, but with invoke dynamic we can leave it to the runtime to optimize when it first runs.

<comment><USER3> Edit: This is obviously a bug and needs to be fixed. My post is more about how the syntax "+=" is usually explained as shorthand for "x = x + 1" ([https://www.tutorialspoint.com/java/java_basic_operators.htm](https://www.tutorialspoint.com/java/java_basic_operators.htm)), when it's not strictly true (depends on what's in "x").

"+=" is [usually explained as] shorthand for repeating the left side. Why should

> foo[i++] += 1

evaluate differently than

> foo[i++] = foo[i++] + 1

?

The way it currently works is the way I would expect it to work, but I'm evidently in the minority here. I also don't write Java and since this is a change from Java 8, it needs to be fixed.

Let me state that again: yes, of course this bug needs to be fixed.

<comment><USER4> > The way it currently works is arguably the way it should work, irrespective > of the spec.

The spec is how it should work, regardless of developer's opinions.

> Why should [a] evaluate differently than [b]?

In my opinion (and I'm guessing in the opinion of the spec authors, though I can't be sure), saying "x += y" means "add y to x", so I'd expect the language to:

      1) Figure out what "x" is once
      2) Add "y" to it

Your opinion seems to be that saying "x += y" means "desugar to x = x + y" and you expect the language to:

      1) Figure out what "x" is as a value
      2) Add "y" to the value of "x"
      3) Figure out what "x" is as a location (which may differ from 1)
      4) Store the result into "x"

To me step 3 is very surprising, that "x" may differ, which is why I think the spec's definition is the more intuitive one (plus, it doesn't require knowledge of "desugaring" things).

</comment></comment></comment><comment><USER5> > Operator += is broken for Strings in Java 9 and 10

The title [Edit: since changed] is a little bit fear-monger-y. It's only broken when the left hand side is not safe to evaluate more than once.

It can be prevented with a compile-time flag.

<comment> java-man I think it's a big deal: introduced in 9 and fixed in 11? It suggests two things: Oracle has gaps in the regression test suite, and they don't consider compiler error such as these as a big issue.

Java 9 broke other things. Here is one: [https://github.com/andy- goryachev/FxDock/issues/8](https://github.com/andy-goryachev/FxDock/issues/8) WebView is working fine in 8, totally broken in 9, partially broken in 10. Do they have a QA department?

<comment><USER2> Yea, I'm surprised the infamous TCK regression suite didn't include something so fundamental.

That said, javafx is a bit of an orphan compared the rest of the JDK. And that's why it's getting pushed out.

<comment> java-man that's another gripe...

<comment><USER2> I don't know if this is your issue but in a minor Java 8 release, the JavaFX team made all references held by a webview's JS weak references.

What a dramatic change over what seems to be a solvable memory leak. I only toyed with JavaFX but at least it's webview is dead to me.

See: [https://bugs.java.com/view_bug.do?bug_id=8154127](https://bugs.java.com/view_bug.do?bug_id=8154127)

<comment> java-man interesting. no, it is not my issue - in my case nothing gets rendered in WebView, the view stays blank.

and another thing - how does one submit a defect report to Oracle? neither bugs.openjdk.java.net nor bugs.java.com have a clear link, and I can't find where one can register an account.

</comment></comment></comment></comment></comment></comment><comment><USER6> Adding side effects to your array index expression and depending on order of their evaluation is a bad idea anyway.

Unfortunately, the `++` / `--` made it to Java, and are still used sometimes, despite JVM not being PDP-11, and definitely not trying to conserve every precious byte of RAM.

<comment><USER7> Apparently it's nothing specific about arrays or ++ — _any_ expression on the left hand side of the compound operator is evaluated twice, so any side effects happen twice.

<comment><USER6> If you read the original post to the end, you'll notice a piece of code that seemingly refutes this statement. That is, in case of Java 8, the _index_ expression is evaluated once. and in case of Java 9, twice.

<comment><USER8> What does that refute? You seem to be agreeing with the post you're replying to.

But importantly your original point about "depending on order of their evaluation" is wrong. Most of the examples don't care about order at all. They break because things happen the wrong number of times.

</comment></comment></comment></comment><comment><USER9> I used that operator in a tight loop before the compiler was smart enough to automatically convert the code to use a StringBuilder. Boy was that slow...

<comment><USER10> I didn't touch much Java Code for ~ 10 years now. I remember reading about the string concatenation problem in the Effective Java book. Using a StringBuilder was the very first thing I usually tried when I needed to improve performance on some unfamiliar code.

I didn't know the Java compiler converts this automatically now. Since which version is this? I suspect there might be still edge cases where it doesn't work.

</comment></comment><comment><USER11> Time to rewrite Java in Rust.

<comment><USER12> I know it's a (bad) joke, but Rust wouldn't solve this. This is incorrectly implemented logic and Rust will not prevent you from doing that.

<comment><USER13> To be marginally less facetious, Rust would "fix" this problem by dint of deliberately neither having a ++ operator (in either post- or pre-increment varieties) nor by allowing assignment operators (including augmented assignment ops) to evaluate to the value of their RHS, so the example from the OP would have to be written in a different fashion. :P (Rust has previously had bugs of its own related to the evaluation order of += and friends, it seems like a problem that nearly every language has at some point...)

<comment><USER8> > neither having a ++ operator

The bug happens with a function call on the LHS too.

> nor by allowing assignment operators (including augmented assignment ops) to > evaluate to the value of their RHS

I'm confused. The assignment is happening last, and whatever it evaluates to is being discarded. How would changing what it evaluates to do anything?

But more importantly, the comment was about implementing _Java itself_ in Rust, not the broken function, and that is why it wouldn't change anything.

</comment></comment></comment></comment><comment><USER14> Lisp macros get this right.

      [2]> (macroexpand '(incf (aref a (incf i)) x))
      (LET*
       ((#:G3214 A) (#:G3215 (INCF I)) (#:G3217 X)
        (#:G3216 (+ (AREF #:G3214 #:G3215) #:G3217)))
       (SYSTEM::STORE #:G3214 #:G3215 #:G3216)) ;
      T

You can't just blindly expand the += by copying the expressions/AST node on the left. Or in general; you don't take expressions in the program and blindly duplicate them. How can someone working on compilers not know that???

<comment><USER2> I see what you're getting at, but that's not the mistake that was made here. People working on it knew what it should do. It's in the spec so Java agrees with you.

This bug is a little narrower than this makes it out to be, it ONLY fails when the array on the left is a String[ ]. The way String operations get compiled down to bytecode changed a lot around those releases so the bug is more like an unforeseen interaction between optimization passes than a naive MST/Macro implementation.

The "funny" thing here to me is the surprising gap in the regression testing given the quality of most of the JDK. go figure

</comment></comment><comment><USER15> Yea... what was the Bloch's explanation for not having operator overloading in Java? I think it was something like "it's not allowed because I've seen too many programmers who did that in a wrong way" :)

On the other hand this explanation is stupid, as a programmer can implement `add()` in a wrong way.

</comment><comment><USER16> > "side effects"

A side effect would be like submitting an order for am Amazon Echo by mistake.

This is a bug, a serious bug, that leads to variables being assigned the wrong value.

<comment><USER17> "side effects" because this is only a problem if your lhs is not stateless (has side effects).</comment></comment>


"[Google] shareholders would sue them, and rightly so." - <AUTHOR> https://twitter.com/BrendanEich/status/870483249587519489 <comment><AUTHOR> I have been thinking about the ad bubble for a while now BTW. People talk about "CalExit", but even California will be affected when it bursts. Actually, I wonder if Google giving up on tracking ads would themselves be enough to trigger a recession when the stock plunges.</comment>


Testing web map APIs – Google vs OpenLayers vs Leaflet - <AUTHOR> http://robinlovelace.net/software/2014/03/05/webmap-test.html <comment><USER2> OpenLayers 3 dev here.

All these mapping libraries are great.

Google Maps comes with great data. Leaflet has a really nice API. OpenLayers 3 comes with loads of functionality built in.

Please check out our OpenLayers 3 examples at [http://ol3js.org/en/master/examples/](http://ol3js.org/en/master/examples/)

Interesting ones include:

Full screen rotate and zoom: [http://ol3js.org/en/master/examples/full-screen- drag-rotate-...](http://ol3js.org/en/master/examples/full-screen-drag-rotate- and-zoom.html)

Animation: [http://ol3js.org/en/master/examples/animation.html](http://ol3js.org/en/master/examples/animation.html)

60fps heatmaps: [http://ol3js.org/en/master/examples/heatmap- earthquakes.html](http://ol3js.org/en/master/examples/heatmap- earthquakes.html)

High quality KML rendering: [http://ol3js.org/en/master/examples/kml.html](http://ol3js.org/en/master/examples/kml.html)

Detailed geometries: [http://ol3js.org/en/master/examples/igc.html](http://ol3js.org/en/master/examples/igc.html)

Canvas effects: [http://ol3js.org/en/master/examples/layer- spy.html](http://ol3js.org/en/master/examples/layer-spy.html)

Canvas, DOM and WebGL renders: [http://ol3js.org/en/master/examples/side-by- side.html](http://ol3js.org/en/master/examples/side-by-side.html)

Full application with OpenLayers 3, Angular and Bootstrap: [http://map.geo.admin.ch/](http://map.geo.admin.ch/)

<comment><USER3> Nice! Suggestion on the animation 'Fly to Bern' \- change how far the map zooms out depending on how far it needs to move.

[http://bl.ocks.org/mbostock/6301872](http://bl.ocks.org/mbostock/6301872)

[http://www.win.tue.nl/~vanwijk/zoompan.pdf](http://www.win.tue.nl/~vanwijk/zoompan.pdf)

<comment><USER2> Thanks! This is a really nice algorithm. We should be able to add it to ol3.

</comment></comment></comment><comment><USER4> I would like to add that @mourner, Leaflet creator, gave a great talk last week in San Francisco about why he started Leaflet and how the open source community developed around it. Talk is here ([http://www.youtube.com/watch?v=bQAl43Aj_B0&feature=youtu.be](http://www.youtube.com/watch?v=bQAl43Aj_B0&feature=youtu.be)).

One thing that I think is missing from this article is the communities around these projects and release cycles. Leaflet by far has the most active community around it. Where Open Layers 3 has been chugging along without a release for a while, and Google Maps API has remained pretty stagnant. A great post from Keir Clarke ([http://googlemapsmania.blogspot.com/2014/01/the-slow- death-o...](http://googlemapsmania.blogspot.com/2014/01/the-slow-death-of- google-maps-api.html)) that is spot on.

</comment><comment><USER5> _> Google maps also has a surprising range of functionalities, although you are pretty much restricted to Google's way of doing things (you cannot, for example change the background map to be based on Open Street Map)._

the parenthetical is incorrect, _cf._

\- [http://wiki.openstreetmap.org/wiki/Google_Maps_Example#Examp...](http://wiki.openstreetmap.org/wiki/Google_Maps_Example#Example_- _Using_Google_Maps_API_v3_setting_OSM_as_a_base_map_layer)

\- [http://harrywood.co.uk/maps/examples/mapstractionv1/google-o...](http://harrywood.co.uk/maps/examples/mapstractionv1/google- openstreetmap.html)

</comment><comment><USER5> _> OpenLayers has a very wide range of functions, and it pays the price in terms of size, occupying almost 1 Mb of digital space: not ideal for mobile applications._

The stock minified OpenLayers.mobile.js weighs in @ ~377kB: [http://openlayers.org/dev/OpenLayers.mobile.js](http://openlayers.org/dev/OpenLayers.mobile.js)

And you can build your own OpenLayers files that contain only what you need: [https://github.com/openlayers/openlayers/tree/master/build](https://github.com/openlayers/openlayers/tree/master/build)

( _eg._ is your mobile application _really_ going to use OSM _and_ Bing base layers? probably not, so don't ship all of that to the user's browser and spare the browser from parsing the cruft. [https://github.com/openlayers/openlayers/blob/master/build/m...](https://github.com/openlayers/openlayers/blob/master/build/mobile.cfg) )

</comment><comment><USER6> Interesting article. We use Google Maps to lay out a list of Manufacturers for hardware companies ([http://protoexchange.com/#!/directory)-](http://protoexchange.com/#!/directory\)-) we use Google's API + Angular.

This article might have us reconsider OpenLayer!

<comment><USER7> that's a really funky url - /#!/directory)-

is that due to some framework you're using?

<comment><USER6> framework :)

</comment></comment></comment><comment><USER8> And Bing?</comment>


Ask HN: Desktop PC - <AUTHOR> We always have those "which laptop" threads, but I'm more interested in a desktop PC right now.
My last n ones were self-built. It's economic, but I'd love to get a professionally designed system next.
For example, my power supply has always been way over the top, because "I wanted to be on the safe side".
What do you get nowadays?
I'd love a fast SSD, 16 GB RAM (32, if affordable, ECC preferred, but not willing to spend double). An i5 or AMD equivalent would be fine. Linux-friendly. Mostly developing, including some Docker containers. Graphics... not much. Being able to play X-COM 2 would be enough.
There seem to be lots and lots of reviews for laptops, but very little for desktops.
Are business lines from HP, Lenovo or Dell sensible, or just not practical for a dev? <comment><USER2> FWIW, I've found custom spec machines from small shops often work better. All of our desktop PCs at work were bought this way, since for a small business with just a few people at the office, you often want to tailor the specs for each machine. I too used to enjoy self-building for my personal PCs and got excellent results, but with my business hat on the time isn't really justifiable any more.

The advantages often claimed for the big name brands in lower prices and particularly in better support are mostly illusory in my experience. Any decent small shop will also give you honest advice about the current price/performance sweet spots and will know which brands for things like SSDs or motherboards have been proving reliable recently and whose latest product was a turkey.

If you also use Reddit and do want to put a spec together yourself, you might find the /r/buildapc sub to be helpful. As well as generally helpful discussion with people who are doing this all the time, there are links to some resources to help experiment with specs and prices that you might find useful. They won't produce a spec for you, but they'll be happy to look at what you're thinking about and make suggestions for improvement or warn of things you've overlooked.

</comment><comment><USER3> i recently wanted a static gamin machine rather than using my laptop and eGPU, after a bit of research i found that you can get a lot of power for little cash if you buy a refurbished xeon workstation.

i ended up going with a Thinkstation S20:

Xeon E5-1650 v2 8Gb DDR3 (i already had 4x 8g sticks but you can upgrade to 32 pretty cheaply) 120Gb sandisk SSD Quadro K2000 2Gb

i paid a shade under £200 for that, with the 32Gb ram and 1070 i already had it pulls in a score of 5999 on 3D mark timespy, even if you dont have a GPU and RAM spare like i did £500 can easily buy you a machine that will obliterate most any day to day task and if you dont need a heavy GPU you can knock a chunk off that price, youll also usually get ECC memory as standard, if youre in the UK check out places like bargainhardware, pcbitz or tier1online where you can config the systems and see for yourself. heres an example one i just configured:

1 x HP Z440 - 700W (Grade B) 1 x Intel Xeon E5-2640 V3 - 8-Core 2.60Ghz (20MB Cache, 8.00GTs, 90W) 1 x HP Z440, Z640 - High End Heatsink & Fan 2 x 16GB - DDR4 2133MHz CAS 12.50 (PC4-17000, 2RX4, ECC REG) 1 x 240GB - SATA (6G) SSD - Major Brand New 1 x HP Z440 MT LFF Hard Drive Caddy 1 x HP SFF to LFF Converter Workstation Support Caddy

£394.80

no GPU in that but youre probably better off getting a standard GPU over the Quadro/FirePro etc</comment>


The Skinny on Dry Loop DSL with AT&T - <AUTHOR> http://xichekolas.blogspot.com/2007/08/skinny-on-dry-loop-dsl-with-at.html

<comment><AUTHOR> Not trying to spam my blog or anything (I haven't made a cent yet off it anyway), but I am fed up with AT&T misleading people so I thought I'd tell others what I found out about this.</comment>


Show HN: WebTorrent Desktop 0.22.0 - <AUTHOR> https://github.com/webtorrent/webtorrent-desktop/releases/tag/v0.22.0 <comment><USER2> Very cool, just the day before, I had to clone the repository just to install it on Fedora because there wasn't any rpm package, which I found weird considering that you use Electron, congrats for the release, keep up with the great work.

<comment><AUTHOR> You're very welcome - glad you like it!</comment></comment>


The Cornell Note-Taking System - ____Sash---701_ http://lsc.cornell.edu/study-skills/cornell-note-taking-system/ <comment><AUTHOR> The conversation here from about a month ago:

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

</comment><comment><USER2> I have tried this, and tt's a good pedagogical method for learning-how-to- learn, but it's inconvenient in practice

I think it's worth learning how to use Anki instead. The key challenge there is selecting the right level of coarseness, so that it doesn't take forever. Even if you don't end up reviewing your cards, the act of synthesising information helps you learn it. Down the line you're able to encode important information in finer detail.

Contrary to what you might think, this method is especially useful for really difficult concepts (e.g. in math and physics). Sometimes you sit through a lecture and have no idea what's going on until you start doing the exercises. In these cases you might have to use memory as a crutch, to try to memorize the main ideas (or useful facts) to create the scaffold which you fill in later.

<comment><USER3> They tried to get us to take Cornell notes back in high school. I think they can work for some people, but I found that it created too much mental overhead. Seemed to turn me into more of a recording device than a mind comprehending a lecture. The note-taking style seems to assume a certain format of lecture, and if a teacher deviates from that then it can be more confusing than simply taking notes without the extra columns and cells.

That said, I think it's a good idea, but might not be for everyone. Kind of like how there are different apps like Notion, Trello, Quip, OneNote, etc., and while Notion works for a lot of people, some people benefit more from Trello's boards and cards.

<comment><USER4> In grad school for computer science, after some struggle, I eventually found that the best thing for me was just to not to take notes at all. Just engage with the class maximally, and make sure to do the homework relatively soon after that (maximizing the time between when you cover something in class and practice it with homework, aka, "waiting until the last minute", is a bad idea for all sorts of reasons).

Obviously, my plan doesn't work for everyone, or every class (this is a bad idea for fact-dump classes for me). But certainly after this I tended to look at everyone's list of "things you have to do to succeed in class" more as a menu than a proscription. Still do look at a lot of things that way; you can see it in our industry too, where you can find people telling you just _have_ to use this type of type system or that type of database... yes, thank you for adding to my menu, but I'll examine that for myself, thanks.

</comment></comment></comment><comment><USER5> I've been in law enforcement for about 5 years now, the first 3 of which were spent entirely on felony-level criminal investigations. They teach a great deal at the federal courses on how to conduct interviews of Suspects, Victims, and Witnesses, but almost nothing is detailed on how to take notes. When I conducted these interviews (especially ones that aren't recorded or when I'm unlikely to have a chance to re-interview someone, such as with Suspects and Victims), I found that I really needed a methodology of note-taking that allowed me to set aside questions to ask when the time was right. For example, if a sexual assault victim is describing the events that led up to the assault, and mentioned that the suspect sent a message from his phone just before doing something else, I would want to know (to the best of her knowledge) what type of phone it was, but I'm not going to stop her in the middle of telling me the story just to ask that question.

Interestingly, I basically started doing something extremely similar to this system (although, apparently backwards). My notes always included a line separating my main notes on the left from my key details and questions on the right, with the right column only about 3" wide. Ordinarily, I would leave 2 or 3 blank lines after each question so I could fill in the answer the interviewee provided and it reminded me to look for any blank space on my notepad before ending an interview (or, in the case of suspects, before asking more direct questions that may lead to suspect to end the interview before I got the chance to get answers to more minor questions). Ofter, my "summary" section would be extremely short and just describe larger timeline changes, like if a report spans multiple days or locations, I would mark the end of one incident in the bottom few lines of the page and jump to a new page to take notes about the next incident.

I'm very curious if this methodology is used by a lot of others as well (especially in law enforcement), or if I just happened to find one with remarkable similarity to Cornell's.

</comment><comment><USER6> I question the value of taking notes at all. Of course different people learn in different ways, and I'm sure some students can benefit from taking notes. But for me the process of note taking is too distracting. Better to just focus on the lecturer and really _listen_. Then maybe write a few short notes afterwards for points not adequately covered in the assigned text.

<comment><USER7> I don't see a contradiction there. As you said: differnt people learn in different ways. Just speaking for myself, but I can concentrate _more_ if I take notes and not less (unless the thing is very visual in nature).

<comment><USER8> > differnt people learn in different ways.

There's something intuitive about that, but I think the data show the opposite. We all learn the same way.

[https://www.psychologicalscience.org/news/releases/learning-...](https://www.psychologicalscience.org/news/releases/learning- styles-debunked-there-is-no-evidence-supporting-auditory-and-visual-learning- psychologists-say.html)

<comment><USER9> I wish to see more research on stuff like this. I believe I've seen similar studies showing different learning styles were more effective depending on the topic, not the person.

In my experience, a lot of learning is a back and forth between rote memorization (like vocabulary) and building concepts/associations. Rote memorization can also be a lookup table to focus on higher-level concepts-- like memorizing your times tables. Spaced repetition (like Anki) focuses on rote memorization. Lectures and note taking, like this, are a mix focusing on concept building while homework is both generally focusing more on rote memorization.

But there is some difference person-to-person. For example, many people I know work through things by talking out loud. I struggle with this and feel like I have to ruminate on my own to flesh out ideas.

</comment></comment></comment></comment><comment><USER10> '15 here

I remember having these notes ingrained into my brain in middle school; at Ithaca, I didn't know a single person who actively used Cornell notes for note taking. That said, actively engaging and re-engaging with content will help you build better internal bodies of knowledge on the subject, so you'll retain the content long after prelims and finals.

<comment> rm_-rf_slash Same here. Ithaca schools are just soooo proud of the Cornell note taking system they taught it to us as if it was eternal and essential, but ultimately useless, just like cursive.

I also went to Cornell and never saw it used or mentioned once.

<comment><USER11> Same! '11, never saw a single person use it. Old prelims > graded psets > notes, to me anyways.

</comment></comment></comment><comment><USER12> If anyone else is interested in research on note taking, this is a survey of the research with citations: [https://www.cultofpedagogy.com/note- taking](https://www.cultofpedagogy.com/note-taking)

Unfortunately it doesn't look like there's been as much research on specific methodologies (e.g. Cornell method), but it may also be the case that the methodology doesn't matter at all, only that the strategies are employed.

I'm surprised it doesn't mention the encoding and external storage paradigm, but [https://www.cc-seas.columbia.edu/node/31875](https://www.cc- seas.columbia.edu/node/31875) has some additional context for anyone that wants some vocabulary and a very short "methods" and "strategies" document.

<comment><USER13> > Unfortunately it doesn't look like there's been as much research on specific > methodologies (e.g. Cornell method), but it may also be the case that the > methodology doesn't matter at all, only that the strategies are employed.

I recall that in the book Your Memory by Ken Higbee he said that various study/notetaking methods don't differ much and just combine strategies that are known to work. So he picked a popular system to recommend to readers: [https://en.wikipedia.org/wiki/SQ3R](https://en.wikipedia.org/wiki/SQ3R)

You can immediately see similarities between SQ3R and Cornell Notes.

<comment><USER14> I've heard both teachers and education researchers argue that once you understand an idea and represent it competently, repeated exposure is the _only_ thing that matters for learning.

If people who are using a specific technique get better results, it's probably just survivorship bias, because _everything_ in education is survivorship bias. Even if people who adopt the technique all do well, it's probably just selection bias on the sort of people who seek out new study techniques. And if you teach it to students and they improve, it's probably _still_ the Hawthorne effect, with novelty and optimism meaning it gets used more consistently at first.

There are a few pretty miraculous results, but they're mostly on memorizing lots of completely arbitrary info (e.g. memory palaces). Outside of that, it seems like picking anything easy to use and being consistent is the winning approach.

(I'd allow a special exception for things like Anki: if one tool supports data relationships another doesn't, it can obviously be better for learning that sort of content.)

</comment></comment></comment><comment><USER15> GTD turned me on to notecards. I can't imagine going back. No matter how you want to organize the important stuff, the ephemeral nature of 3x5 notecards helps me get more ideas out of my head than ever before.

"Your brain is for having ideas, not remembering them."

<comment><USER16> What do you do with the note cards? I love note cards, but now I just have stacks of them filling boxes.

<comment><USER17> Write the topic of the note on the index line, and store them sorted. If a card connects multiple topics, pick one and make cross-reference cards that point to the topic with the actual note.

The act of filing new notes will force you to at least glance at your old ones, which can generate serendipitous mental connections. You'll also see when you have multiple cards covering the same topic, which helps to link disparate facts about the same thing together in your head.

<comment><USER15> Yes, filing the notecards is essential.

Something I try to do is keep my physical notecard files small. Besides the inbox file, urgent and important notecards are the only ones I keep in a physical file.

It's surprising how fast you can go through a thousand notecards. So effective filing is a must. And for me, that means maintaining digital archives. Something that, on its own, is a whole topic for discussion. Once again, I recommend GTD by David Allen if you'd like to dive deeper and avoid reinventing the wheel.

<comment><USER17> GTD's a wonderful system for keeping track of things you should be doing, but I find his filing system for everything else to be a bit lacking. I've supplemented it with ideas from _The Card Index System_ ¹, traditional library card catalogs, and Umberto Eco's recommendations in _How to Write a Thesis_. At the moment, my card index fills most of my center desk drawer. It may outgrow that soon, but I have no intention of culling it down; it's quite literally an index into my own memories, to help me remember things.

¹ [https://archive.org/details/in.ernet.dli.2015.216804/page/n7](https://archive.org/details/in.ernet.dli.2015.216804/page/n7)

<comment><USER15> Yes, I agree that GTD isn't a one-size-fits-all solution.

David Allen, in GTD, recommends an alphabetized system. Something that I don't do because all of my reference material is digitized and easily searchable.

Search-ability is the primary reason I avoid keeping a large physical file system.

I take inspiration from multiple books written about productivity and organization. Other books that have been highly influential in my systems are:

\- Principles (Dalio)

\- The ONE Thing (Keller)

\- Organize Tomorrow Today (Selk, Bartow)

\- Productivity Planner (more of a journal than a book)

<comment><USER17> Interestingly, it's the lack of searchability that made me gravitate towards a physical system. It forces me to think about the situations I may find myself in when I'll want a piece of information, in order to file it in the correct place.

This has the odd effect that I'm more successful at finding things in my paper system than I ever was with an electronic one, though it's probably of little use to anyone else. I also find that flipping through the notecards to file or look up something serves as a pretty good idea-generation engine.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> They made us on several different occasions take Cornell notes saying they'd help us learn. Supposedly there were numerous studies saying that students that used them succeeded. I HATED taking these notes - it just makes more sense to me to format things as a textbook-writer would. I think of my notebooks as mini-textbooks.

On a more general note, I've noticed throughout my undergrad experience that whenever some lecturer/Professor/TA comes up and says they read a study about "evidence-based learning" and that this method will help us learn 10x better, they're full of shit. I want nothing more than to take notes however I want, to a lecture.

</comment><comment><USER19> It can be helpful to have a structured system of note-taking that you can modify so that it's customized to your needs and becomes most effective for how you learn.

</comment><comment><USER20> I imagine this would be OK for a structured maths class, but not for a weekly 3 hour history seminar where the professor pontificates non-stop for the entire time...

<comment><USER21> What's a better way to take notes for that case?

</comment></comment><comment><USER22> Any tips for taking meeting notes specifically?

<comment><USER23> I use what I know as the the "Bill Gates method". Separate things into:

* important points

* questions to ask, either during the meeting or afterwards. If it gets answered during the meeting, I put the answer under 'important points' and cross out the question.

* things for you to do after the meeting

* any commitments others take on which you want to keep track of

I do this by entering them on different areas of the page, others use different symbols at the beggining of the line (?, !, *, @).

As soon as I finish the meeting, I share the notes with everybody.

<comment><USER24> > _I use what I know as the the "Bill Gates method"._

Is there a good description/explanation of this?

<comment><USER23> I read years ago that this is how Bill Gates takes notes, but I don't remember where I read it. It wasn't much more detailed than my comment here.

</comment></comment></comment></comment><comment><USER25> Yes</comment>


Word of Mouth vs Key Influencers - <AUTHOR> http://blog.guykawasaki.com/2007/12/word-of-mouth-v.html <comment><USER2> The problem with key influencers is that they can help you get to the top few percent their crowd rather quickly but their requirements and expectations are totally different than those of the rest of your target audience and by leveraging/listening to them too much you hurt the rest of your users.

<comment><USER3> Still though, when you're fighting for exposure early on, you may not have the luxury of going against the 'tastemakers' for everyone else's good.

<comment><USER2> Absolutely and I am not saying that going after them isn't the correct strategy sometimes, but you should always be aware of your balance between these two poles.

All I'm trying to convey is that you shouldn't assume that they represent your average customer. Think of the difference between an iPhone and a Treo or BlackBerry, iPhone was made for the general user who never owned a smartphone in his life, the Treos & BlackBerries are designed for the power-user/taste- maker.</comment></comment></comment>


November Sprint app (slightly late): Go Scoring Camera for Android - <AUTHOR> http://www.goscoringcamera.com/

<comment><AUTHOR> I started this project back in November, for [Launch an App month](<http://news.ycombinator.com/item?id=1773398>). Needless to say, I didn't make the deadline, but I ended up with an app anyways. This is actually the second release; there was an earlier release at the end of December which was really just a beta to collect some training data for the machine learning algorithm.

It's currently free for the first 7 days, and $10 after that. Please try it out and provide feedback. I may experiment a bit with the price and the trial period; I couldn't come up with a way to arrange A/B tests for those, so they're basically just guesses.

English only for now, but Japanese and Chinese translations will be coming soon.</comment>


How we failed to "Hack" Hacker News but ended up on front page for 30+ hours - <AUTHOR> http://www.groovehq.com/blog/hacker-news

<comment><AUTHOR> This is a repost, I think the earlier one was removed? Anyways, seemed prudent to submit considering the content of the post!!</comment>


Doom as an Interface for Process Management (2001) - <AUTHOR> https://www.cs.unm.edu/~dlchao/flake/doom/chi/chi.html <comment><USER2> this reminded me of an idea i had for a tech fiction story

premise is that games and other Augmented Reality devices are being used to mask the task by a deceptive interface

a nice calm daisy picking bouquet arrangment simulator could be an interface to some unspeakably henious consequences on the physical implementation area [zone of carnage]

the unwitting netizens of this regime are fighting a war for thier lives while racking up high scores and new levels

the infrastructure is here already and such a thing would beg for the discovery of a "Last Starfighter" kind of Avatar that can really move a combat mechanism</comment>


Google employee collapsed on the job; coworkers say corp. culture is to blame - <AUTHOR> https://venturebeat.com/2017/04/02/a-google-x-employee-collapsed-on-the-job-and-coworkers-say-corporate-culture-is-to-blame/ <comment><USER2> If you have a sufficiently large number of employees (in the tens of thousands), basic laws of statistics say that eventually you will see nearly all of the types of medical emergencies that are experienced by people going about their ordinary day to day lives everywhere. Heart attacks, strokes, grand mal seizures, etc. It's unfortunate and sad but I don't think trying to equate "Google = Bad Thing that Stresses Employees Until they Break" is fair.

In fact I bet if you had access to the aggregated private medical data of 10,000 google employees and compared it to 10,000 randomly chosen people from the population at large, the google people experience less medical emergencies. To put it crassly, because they have higher salaries and better access to preventative medical care than 10,000 randomly chosen American citizens from all socioeconomic classes.

<comment><USER3> This is true but in this case the health issue doesn't appear to be an instance of something statistically normal just popping up for a work- unrelated reason. It seems very clear that the manager acting on Google's behalf directly impacted the health of the employee in a negative way by placing an unreasonable amount of stress on him and the employees around him, while ignoring their complaints.

I suppose the question is whether the manager's behaviour is something permitted by Google as a company and the quotes from HR in the article imply that it is.

</comment></comment><comment><USER4> It looks like VB is taking one incident somewhere in Atwater/Merced and attributing it to work culture of the co at large. From my limited interaction with googlers as well as hearsay, it would rather seem very atypical of what goes on over there. For me most part they seem somewhat coddled rather than overworked.

And then as if that unfounded generalization were not enough, they also sprinkled something about harassment and bro culture --which as far as I understand, google fights very hard against. I mean, it would seem the last big co one could accuse of sex harassment and bro culture would be google. Someone wanted to try to write something explosive where there isn't.

<comment><USER5> 12 hour days in 100+ weather and you think they were coddled?

The more disturbing parts are the political pieces. Because of this manager you've now lost a bunch of good people (and maybe a good team). And of any company google should be able to find a new job for a qualified person who requested a less demanding role due to a health issue. There should be HR and executive review of these actions.

<comment><USER4> I'm not saying this didn't happen and that that can't be overwork, but they are trying to paint it as a company culture issue, or at least an X issue --where this might have been one manager and one team. I think unless they have more evidence this is a very isolated incident. Google is not known as a company which works people to death, most of the accusations, even by VB is that people at Google have "first world" problems and overwork is the least of their issues. VB is peddling this as part of a larger "tech companies are bad and foster bad behavior in their ranks, to an extent it's noticeable and worse than industry in general" meme.</comment></comment></comment>


Ask HN: Favorite Fiction Books of 2018? - <AUTHOR> <comment><USER2> Martha Wells' _The Murderbot Diaries_ (a series of four novellas) was completed this year. It's about an AI which figures out how to break out of it's control module, and decides to not go on a stereotypical murderous rampage, and instead just do their job well enough that no one notices they're watching soap operas in their free time.

<comment><USER3> +1 Existential, thought provoking, yet fast-paced and a over far too soon. A must read for anyone interested in contemplating a near future where all the power of our smartphones is in our head, always available. Yes it's about AI, but the humanity of the bot makes it easy to see we don't need artificial general intelligence to start seeing a universe like this one.

</comment></comment><comment><USER4> _Elevation_ by Stephen King. I'd count King among my favorite authors. I regularly go back to reread classics like _Salem 's Lot_ and _The Stand_. But I've fallen out of the habit of reading him lately because his output is so prodigious, and his books have taken on a sameness that I find wearying. In that context, _Elevation_ , which is sweet-natured and short, is a refreshing change of pace and probably my favorite King book of the last 20 years.

And another vote for the Murderbot Diaries. Not groundbreaking, but fast and fun with an interesting POV character.

</comment><comment><USER5> _Bartleby the Scrivener_ by Herman Melville (of Moby Dick fame.) Incredibly well-written and hilarious short story about an apathetic office worker.

[https://en.m.wikipedia.org/wiki/Bartleby,_the_Scrivener](https://en.m.wikipedia.org/wiki/Bartleby,_the_Scrivener)

[http://moglen.law.columbia.edu/LCS/bartleby.pdf](http://moglen.law.columbia.edu/LCS/bartleby.pdf)

</comment><comment><USER6> Kind of OT but since this is a thread about fiction books, I read a very interesting short story on HN but can't remember the author or the title. It was about a person who meets god and then finally realizes that every person he has met on earth is his past self (or incarnation?). Anyone know that one? Also any good recommendations for similar short scifi stories?

</comment><comment><USER7> _Past Tense_ \- Lee Child

 _The Forbidden Door_ \- Dean Koontz

 _The Crooked Staircase_ \- Dean Koontz

 _The Outsider_ \- Stephen King

 _Sleeping Beauties_ \- Stephen King & Owen King

 _The Fallen_ \- David Baldacci

 _Zeroes_ \- Chuck Wendig

 _The Supernatural Enhancements_ \- Edgar Cantero

 _A Canticle for Leibowitz_ \- Walter M. Miller Jr.

 _A Wrinkle in Time_ \- Madeleine L'Engle

</comment><comment><USER8> I enjoyed Lake Success a lot.</comment>


EU proposes new rules that could put an end to the cookie banner - <AUTHOR> http://www.digitaljournal.com/tech-and-science/technology/eu-proposes-new-rules-that-could-put-an-end-to-the-cookie-banner/article/483542 <comment><USER2> Why don't they build the new legislation upon the Do Not Track setting? Do they even know about it?</comment>


The Xinjiang Procedure - <AUTHOR> http://www.weeklystandard.com/articles/xinjiang-procedure_610145.html

<comment><USER2> With no attempt to disapprove the medical~execution claim, there exists quite a number of over generalization of the political and cultural background of Uighurs and Xinjiang. The history told in the article was sort of misleading. I grew up with some of them and there are more content to the current situation. Please consult <http://en.wikipedia.org/wiki/Xinjiang> and <http://en.wikipedia.org/wiki/Uyghur_people> for a fuller understanding. I am no wiser than wikipedia.

</comment><comment><USER3> I have never read anything more disgusting in my life.</comment>


dmr Tribute Wallpaper - <AUTHOR> http://piclyf.com/ericzoo/pics/fullsize/36999

<comment><AUTHOR> Here is my first iteration of a fitting tribute to dmr. Unix is, i think, one of the most important invention in software in recent memory.

Soliciting Feedback/suggestions</comment>


Trump and Clinton share Delaware tax 'loophole' address with 285,000 firms - <AUTHOR> http://www.theguardian.com/business/2016/apr/25/delaware-tax-loophole-1209-north-orange-trump-clinton <comment><USER2> What a silly article completely devoid of any actual content.</comment>


To Survive the Rebound Will Require More Agility - <AUTHOR> http://www.caycon.com/blog/2011/06/to-survive-the-rebound-will-require-more-agility/ <comment><AUTHOR> Now that we have experienced the downside of business over the past few years and have come back from it, it is time to understand that even though we were forced to innovated and adapt to the changing market, we now have to continue these practices in order to keep succeeding.

Consumers have been changed forever and now we need to respect that and change our mindsets.</comment>


How Often our Anti-spam Search Toolbar Blocks Sites - <AUTHOR> http://duckduckgo.com/blog/how-often-our-anti-spam-search-toolbar-blocks-sites.html <comment><USER2> I don't know if I'll ever use duckduckgo, but I love the marketing approach: instead of advertising, create side projects or content that interest people. I find the blog content very interesting.

<comment><AUTHOR> If you have anything you want us to write about, please let us know.

<comment><USER3> could you write about the reason for naming it 'duck duck go'? I see there is a game called duck duck goose. Is there a connection?

<comment><AUTHOR> Really it just popped in my head one day and I just liked it. It is certainly influenced/derived from Duck Duck Goose, but other than that there is no relation, e.g. a metaphor.

</comment></comment></comment></comment><comment><USER4> I've never heard of duckduckgo.com, but I have to say I like it! Its less cluttered, and I like the way it asks to clarify what I'm looking for before returning results.

<comment><AUTHOR> Thanks! If you try it out, e.g. for a week, we'd love your feedback. Feel free to email me anytime (contact info in profile).

<comment><USER4> When I click "add to chrome" nothing happens.

<comment><AUTHOR> Did it get added in the background for you, i.e. if you go to options is it in the search engine drop down?

<comment><USER4> Just checked...nope.

</comment></comment></comment></comment></comment><comment><USER5> I found the toolbar to be useless at best. I uninstalled it after a week.

It blocked maybe one "junk" domain and false positived on three.

And really, it's an even worse idea than NoScript - what harm is seeing ads on a parked domain going to do you every now and then?

<comment><AUTHOR> I'm sorry you didn't have a good experience with our toolbar. The false positive rate is actually very low, but there is a subset of sites (new launches) where we still have some problems. Basically there is a time lag in our crawling. Unfortunately, this effects the HN (startup) crowd more than others.

A lot of people want to avoid parked domains and ads, hence the popularity of noscript. You do not appear to be one of these people :). So it probably wasn't for you in the first place.

</comment></comment><comment><USER6> I'm impressed with DDG. An ego search finds all the results Google does minus much of the crap.

How big is your team?

<comment><AUTHOR> Thanks! 2.

</comment></comment><comment><USER7> "Also, domains we don't cover (see [1]) are prevented from being sent to us at all."

So why sent it back at all?

<comment><AUTHOR> Not sure I understand the question. They aren't sent back to us.</comment></comment>


SWAPDB Redis command - <AUTHOR> https://github.com/antirez/redis/commit/c7a4e694ad3689d934897b0d2c37144d7b2d0b97 <comment><USER2> Looks cool. What would be the prototypical use cases for something like this?

I'd imagine something like this would already have been possible with a proxy (i.e. hot swap upstream without closing client connections).

Also, any idea how this handles clients that execute scripts via EVALSHA? If a client already loaded the script, wouldn't this break that expectation or does the client contract not allow caching that?

<comment><USER3> Hello koolba, I did not expect this commit to reach HN, but here we are... so: there are different use cases but distribution of read-only data to far places with an easy upgrade path for the data is one that comes to mind. Since this pattern is requested very often there are for sure other applications. About Lua, the scripts are atomic from the POV of Redis, so the swap happens before or after the script is executed: they should work as expected AFAIK, but thanks for hinting about that.

<comment><USER2> Cool, thanks for the reply and I've said this a number of times before on HN, but I'll say it again, I really love working with Redis!

Any plans to tie this into clustering/sentinel? Say if there's a cluster of redis servers, to have all of them switch over to a new DB in tandem?

</comment></comment></comment><comment><USER4> I'm blown away by how small the implementation is.

<comment><USER3> Yes, it's just a matter of swapping a few pointers and fixing inconsistencies with blocking clients, however this was conceptually possible thanks to the "lazyfree" work that is able to reclaim the old DB incrementally, and is a much larger implementation.

<comment><USER5> Yep, amazing 1:1 code to commit-message ratio. I love it.

</comment></comment></comment><comment><USER6> Very interesting feature. Question: is it not standard protocol to add a test with a new feature like this?

<comment><USER3> Yep it's standard, just instead of going into the same commit went into my A4 paper "TODO before 4.0 RC1", since I was not sure about the users welcoming the feature.

<comment><USER6> ahh got it! thanks :)

</comment></comment></comment><comment><USER7> Amazing feature. Amazing product. Thanks antirez.

</comment><comment><USER8> I thought that, with the introduction of redis cluster in 3.x, they were moving away from multiple logical "dbs" that had indicies. Are they going to continue to multiple databases in 4?

<comment><USER3> Hello, it's basically both... Cluster: no multiple DBs, since IMHO they don't fit the idea of a distributed DB a lot. Single instance: even more support for multiple DBs in order to create complex caching patterns. This may look strange but I think that Redis Cluster use cases don't need the complexity of multiple DBs, while Redis as a single instance (even if combined in client- side multi master shards or whatever) can benefit of multiple DBs and things like SWAPDB in order to allow the developer to use Redis as a building block.

<comment><USER8> Thanks for your response, sorry it took me so long to respond! Personally the cluster pattern is more intuitive for me and the problems I solve. I had thought that there was a sense that using multiple dbs in one redis instances was a bit of an anti-pattern. Are there any docs on some examples of the building block configurations you're talking about?

</comment></comment></comment><comment><USER9> Interesting. I can think of a number of scenarios where this makes sense if you're using Redis for caching and you don't have a proxy in your architecture.

Does redis cluster only support one database? If that's still the case, then this is probably not available for the larger redis deployments.

<comment><USER3> Exactly, this is not available for Redis Cluster, even since the concept of atomically swapping cluster-wild would be more complex. When doing client-side sharding ala memcached for a plain caching scenario however, this can be applied, with the care needed to make sure that the application logic and consistency requirements, may tolerate that the DBs of the different masters are swapped potentially at different times.

</comment></comment><comment><USER10> Couldn't one achieve the same thing simply by prefixing your DB keys with a blue/green bit and just atomically swap out which prefix should be used for reads?

</comment><comment><USER11> Nice !

would have saved us some time if this feature was there in an earlier release .</comment>


NASA Has Created Terminator-Like Material - <AUTHOR> http://techcrunch.com/2015/09/10/nasa-created-a-material-that-can-heal-itself-in-less-than-a-second-from-hurtling-space-debris/#.tejadg:sDGf <comment><USER2> Kinda misleading title. Actual article title refers to "A Material That Can Heal Itself" rather than Terminator.

The actual material is more like a glue sandwich than a T1000.</comment>


Aging, Evolution and  the "developmental drift" - <AUTHOR> http://www.dailygalaxy.com/my_weblog/2008/07/is-aging-an-acc.html

<comment><USER2> Crappy article, probably not HN worthy.

Besides, aging aka anti-cancer mechanisms, are often very much designed to work that way. Working on those mechanisms could increase longevity, however it will not cure aging.

We only have two copies of our DNA, and if you live long enough and cure every cancer, you could* still* end up with a left arm that genetically drifts from your right leg. And they both drift from your immune system.

Deinococcus radiodurans has 4 copies of its genome, but it's only a single cell. We'd need something like that but with a central place that decides what's you and what isn't _you_.

Think of it as RAID for your genome somewhere deep inside your chest. But we are nowhere near anything like that. So I wish the best of luck to Ray Kurtzweil and the rest of us, but I am not at all optimistic about the singularity.

<comment><AUTHOR> >Crappy article, probably not HN worthy.

Sorry. I found it quite interesting.

BTW, about the singularity, I do not think it means what you think it means.

</comment></comment><comment><USER3> This Cell paper was discussed previously on HN. I commented in detail on the paper in that thread:-

<http://news.ycombinator.com/item?id=256355>

</comment><comment><USER4> What about us isn't an accident of evolution?

<comment><USER5> The story is essentially saying that "aging" might not be caused by incremental damage to cellular systems as we age, but is instead caused by systems that work properly when we are young but become unbalanced as we age. As examples, the author refers to some species of tortoises and whales which can live hundreds of years. All animal life on earth utilizes the same basic cellular machinery to function, so things like free radicals and environmental stressors should effect all. However, their preliminary experiments don't support that idea.

<comment><USER4> I was commenting on the headline, not the article

<comment><AUTHOR> edited to something less linkbaitish.</comment></comment></comment></comment>


Ask HN: Should I quit my startup? - <AUTHOR> I'm the co-founder of a startup that currently makes +- 3k MRR.
We've originally been 2 technical guys building our first startup
together and making a lot of mistakes down the road.
We've been working full time for 2 years now and I'm pretty impressed by
what we've accomplished and learned even though the money is not there yet.
4 months ago, we convinced another guy to step-in with us to be the CEO.
He has a background in business and marketing.
My relation with him has been quite difficult as we share different values
and vision. On top of that, I can safely say that I'm feeling more and more
burnt out and unmotivated since he joined.
Now that we're three, disagreements are much more frequent and are usually resolved
through "politics" (2 agree, 1 disagrees).
My main issue is that I can't seem to trust the new CEO as much as I trust my
original co-founder. I feel that in a year or two when the balance of power shifts,
he would not hesitate to get rid of me if there's a big disagreement between us.
I voiced my concerns with my first co-founder, but he is very hesitant to get rid
of the CEO as he fills a very important gap in the business and I think he is right.
I see two possible scenario to the state I'm in right now:
1- I'm afraid to lose power within the company and that things
aren't going my way as much as I want to.
2- My gut feeling is right and I should not continue working with someone
I have a hard time trusting just for the sake of building a successful startup.
Questions, advices or comments are more than welcome. <comment><USER2> Few questions for you before any advice can be given

1\. Do you have any official documentation over the ownership of startup?

2\. If so, how much do you and the other founder each own and what are the vesting periods?

3\. Does the CEO have any equity and if so, what is his vesting period?

4\. When you voiced your concern with your founder, what else did he say? Did he brush aside your concerns or adequately address them, while saying that keeping the CEO in place is important for the business.

<comment><AUTHOR> 1- Papers are on the way. The corporation is done but not signed. The assets and IP are still owned by our current partnership (50/50) and need to be transferred when the time comes.

2- 37.5, reverse vesting for 4 years with a 1 year cliff. Which I disagree at the moment as I feel we should have something already as we worked 2 years on it already.

3- 25, reverse vesting for 4 years with a 1 year cliff.

4- I would say brushed them aside, but it's more complicated than that.

Ex:

We had an advisor prior to the CEO that we promised some equity in exchange for his council. When the CEO came in and met him, his intentions were to get rid of him from the start, but he was never clear about it. He's the type of person who won't speak his mind directly in order to avoid confrontation.

Our relationship with the previous advisor totally fizzled last friday as he finally understood that he's not going to get anything except stock options of a future value of 20/30k for his previous services.

The way the CEO handled the whole thing raised a big red flag for me as I considered his behavior very dishonest. While my co-founder said to me that the way he handled everything wasn't dishonest and that was the only way he could have handled it without causing more fuss.

As I understand it, the reason why he chose not to keep the previous advisor were:

1- He was asking for a lot of equity. I agree with this.

2- He didn't have any previous background with startups, but had run 3 successful companies in the past. As I call it, he had a lot of business wisdom.

3- Their values and style were totally opposite, as the advisor was more upfront, like me. He didn't like him from the start.

<comment><USER3> IMO the reverse vesting is unjustified. You typically see it after raising a round, as a way for investors to protect against founders immediately leaving a newly funded company with shares that have "real" value now. Bringing on your CEO isn't that kind of event; the reverse vesting only protects the new CEO, and he's not putting in a real investment up front (an investor is putting in $X dollars today; your new CEO is building equity over time like you guys).

You and your technical cofounder should be compensated in equity for the two years' work you put in. If you get pushed out of the company before your cliff, you will have nothing to show for your efforts. I'd really fight for two years' vested stock up front.

<comment><AUTHOR> How is that protecting him if he has a cliff too? I'm sincerely asking. I'm a total noob when it comes to lawyer stuff and I'm learning everything on the spot right now.

In fact, I'm not signing anything until my lawyer approves.

<comment><USER3> Sorry, I meant to say that it only benefits him. It's great that you're consulting a lawyer! I'd definitely talk to him/her about the reverse vesting.

A cliff generally protects shareholders against someone leaving with shares before spending a meaningful enough amount of time at the company to add value.

Imagine if you incorporated two years ago, and you started your cliff clock and vesting schedule then. Ask yourself and your co-founders: would it be fair to you to allow reverse vesting now, when your new CEO joined? To give up all your vested shares up to this point, and start from scratch with no vested shares and a new cliff?

</comment></comment></comment></comment></comment><comment><USER4> Startup are hard and full of compromises ;(

The only the real red flag i see is whether you trust your technical co- founder. I assume you do.

The other issues u raise are not unexpected.

1\. MBA guy turns out to be sleazy. Well duh.. Thats his job!

2\. previous advisor gets burned. Well duh.. As soon as you made the decision to go with your new MBA partner with lots of equity this was bound to happen. Not every one wins.

3.CEO makes decisions which upsets you. Well - thats his job. To get the numbers up, revenue up, growth up. you need to give him a fair chance to do his job. How would you feel if he started refactoring your code?

4.your equity and vesting seems fair and you appear to be properly protected (@samsheen). If the times come and everyone else agrees that ROLE changes are required - then so be it. This should not effect your equity.

5\. I find your co-founder seems to have a more mature reaction to these issues. this is a good sign! Maybe you have to accept that life is not perfect.

But everything above changes if you no longer trust your original co-founder.

Hope it helps!</comment>


Show HN: Extract clean text and translate into 50 languages with a GET request - <AUTHOR> https://extractorapi.com/ <comment><AUTHOR> Big version bump for Extractor API - just added the ability to extract boilerplate-free text and translate it to and from 50+ languages, in a single GET request. [https://extractorapi.com/features/](https://extractorapi.com/features/)</comment>


More Volatility Ahead: Gyrations in Semiconductor Industry - <AUTHOR> https://semiengineering.com/more-volatility-ahead/ <comment><USER2> I will believe it when I see lead times for eMMC come down beyond the 48 weeks we were quoted. :-)

This is also something that the cross point memory could really impact as a the "juiciest" part of the flash market is the price insensitive customers like HFT switch technologies. Always willing to bet on even the earliest technologies if it can give them an edge.</comment>


When peeing in public in this German city, beware walls that pee back - <AUTHOR> http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/12/when-peeing-in-public-in-this-german-city-beware-walls-that-pee-back/ <comment><USER2> Anyone will discover in a fraction of a second that all they have to do to avoid the reflected stream is aim diagonally at the wall.

At $117 per square meter of this paint, complete with a suspiciously well- produced video to sell it to the public, it's hard to believe this isn't just a slick packaged scam to get the taxpayer's money into someone else's pockets.

As others have pointed out, with the insane amount of money that would go into this, they could just add public toilets here and there instead.

<comment><USER3> > _all they have to do to avoid the reflected stream is aim diagonally at the > wall_

Or, not aim at the wall at all and urinate downwind...

Why there aren't more public toilets in major towns is a mystery to me. Here in Paris there are a few, but not enough by a long shot, and for some (puritanical?) reason they close automatically at 10pm, so if you're coming out of a bar or a restaurant late at night, you're out of luck.

What's the problem with public toilets????

<comment><USER4> This may sound dismissive of drug addicts, but I know in Portland, OR, USA, we shut down all our public bathrooms at night because homeless/junkies use them as places to sleep, vandalize them, do drugs in them, etc... They became more of a liability than a public benefit.

<comment><USER5> Unfortunately a case of treating the symptoms instead of the cause. Mind you, it's a bit easier to lock toilets than solve systemic inequality.

<comment><USER6> a bit

</comment></comment></comment></comment></comment><comment><USER7> I wonder why they don't just make more public toilets. If there are no toilets around, I don't wonder myself why people who drank a liter of beer start pissing on things that are surrounding them.

<comment><USER8> In Germany, sometimes there's this weird tendency to patronize people just for the sake of it. So, instead of going for the obvious, reasonable solution that's beneficial for everyone involved an inferior and more expensive 'solution' is implemented that doesn't really solve the issue but merely punishes undesirable behaviour. While the streets will still smell like piss at least people can gloat over the wrongdoers having got their comeuppance.

<comment><USER9> It's not just German.

See: homeless spikes vs homeless shelters.

<comment><USER10> Homeless spikes are an individual versus communal issue. Homelessness is a societal problem, but once society has failed and there are homeless people about, individual landlords don't want them sleeping around their buildings so they install spikes.

The bathroom situation in some parts of Europe does seem like something that could be addressed. When I'm wandering around a European city and find myself with a full bladder, I'm always relieved to find an outpost of American corporate imperialism such as a Starbucks or a McDonald's because---regardless of anything else they bring---at least they bring clean well-maintained public bathrooms.

<comment><USER11> Installing anti-homeless spikes is still a choice for punishment over viable positive alternatives such as planting a nice bush where you don't want people to lay down.

</comment></comment></comment></comment></comment><comment><USER12> "Oy guys, I heard these walls got some kinda fancy piss-reflectin' paint on em!"

"Booollocks, ain't no such thing!"

"Well, let say we settle it then"

 _unzip_

"Hey mate, I bet if I piss at an angle I can get it in that box there..."

"Five quid says you can't"

etc.

</comment><comment><USER13> Now if you sold pants which were equally repellant could you set up a standing wave of pee between you and the wall?[1]

Waterless urinals are available, I'm surprised that more of them aren't out in areas where they are trying to avoid people peeing on walls.

[1] No of course not it would end up between your shoes and the wall

</comment><comment><USER14> According to the author of _Dirty Old London_ , these urine deflectors in Clifford's Inn Passage[1] are among the last of what was once a very common feature.

[1] [http://catsmeatshop.blogspot.com/2013/07/urine-deflectors- in...](http://catsmeatshop.blogspot.com/2013/07/urine-deflectors-in-fleet- street.html)

<comment><USER15> > so unaccomodating are the owners of doorways, passages and angles, that they > seem to have exhausted invention in the ridiculous barricadoes and shelves, > grooves, and one fixed above another, to conduct the stream into the shoes > of the luckless wight who shall dare to profane the intrenchments.

!

</comment></comment><comment><USER16> Better title: "Beware walls that bounce pee back" I was expecting an active solution, like a saline water detector and a sprinkler.

Also, from the article:

> _It costs about $700 to cover six square meters with urine-repelling paint, > which has raised questions over the idea 's efficiency. According to a > WorldViews calculation, one could buy more than 1,500 bottles of normal > German beer for the same price._

It's the wrong comparison, because the people that buy beer are not the wall owners. You should compare the paint price with normal paint, detergent and cleaners, and the nice surprise of a clean wall in the morning.

</comment><comment><USER17> the physics don't really work, one can easily aim at a wider angle to the wall, not perpendicular..

from the title I was expecting some kind of sprinkler that would spray back :)

building toilets and enforcing the law through fines seems much more rational

<comment><USER18> > the physics don't really work, one can easily aim at a wider angle to the > wall, not perpendicular..

You didn't factor in the confounding variable of drunkeness with regard to its effect on the ability to reason about angles and such :-)

<comment><USER19> I think it will only take getting yourself wet once to learn that when in doubt, you should pee at an angle. People will quickly adapt.

Now if someone would make a pee _retroreflector_ coating, things could get more interesting...

</comment></comment></comment><comment><USER20> Wouldn't it be cheaper than ~$85/sq meter to just have a motion-detecting camera on each wall that would record/broadcast the people peeing in all of their glory on a town website, and have signs on the walls indicating this and the URL where they can see themselves? A drunk person isn't going to care that they have to do laundry in the morning because the wall "peed back" on them. They might care that the entire town would see them doing it though.

<comment><USER21> CCTV in public places is illegal in Germany for privacy reasons.

</comment></comment><comment><USER22> Victorian-era solution [http://www.neatorama.com/2013/08/03/Urine- Deflectors/](http://www.neatorama.com/2013/08/03/Urine-Deflectors/)

</comment><comment><USER23> it's interesting that it's not enforced as a law. I can imagine that raising the fine to $200 and spending 1 or 2 months ticketing everybody would change behavior overnight. But obviously the majority of Germans don't think that's warranted.

Lastly if a young male who is drunk pees on your house and his pee bounces back onto him potentially embarrassing him in front of his male friends or his companion how long till a brick goes through your window as you're sleeping?

<comment><USER24> They should just follow America's lead, and force everyone caught urinating in public to register as a sex offender. I mean, it works here, right?

Right?

<comment><USER23> Well in America if 100 men pee up against a wall one will get shot by the homeowner fearing a break-in. So even drunk young males will say to each other "Dude don't go into that garden/alley to pee against the wall you never know if the guy in there has a gun"

</comment></comment></comment><comment><USER25> $700 for 6 sq meters of paint? I'm gonna make a wild prediction and say this won't catch on.

<comment><USER26> Seeing as there is little sense applying it above let's say 1.2m, that means 5m of house front that's now safe.

If you had a store in an area notorious for drunks peeing against everything, investing less than $2k to completely cover yourself from damages, wouldn't you do it? This'll pay off after 4 weeks!

<comment><USER27> That sounds similar to the cost of a no-flush urinal. (Actually, I haven't looked into it too deeply, but I'd wager you could buy, install, and maintain a no-flush urinal for over a year at a cost of $2k.)

<comment><USER28> SO the solution to people pissing on your wall is to turn your wall into a proper toilet?

</comment></comment></comment></comment><comment><USER29> Of course the simple way to deal with this is to piss sideways.

On the other hand, as a resident of a neighbouring derby city, I don't personally have a problem with Hamburg football fans pissing on themselves!

</comment><comment><USER30> I have a better solution: electrified paint.

<comment><USER19> Would look cool during rain.

Come to think of it, this anti-pee coating could also be cool during rain - nothing like getting splashed by an oncoming car _from both sides_.

<comment><USER31> Actually yeah, I really would like to see how a whole street of hydrophobic buildings would look in pouring rain. Would there seem to be almost a lumpy force-shield around them from the radius of all the deflected raindrops? Where would they all go after hitting the buildings? Etc. (Good use for a physics simulation; a "rain-tracer", so to speak.)

Now I'm wondering, though, whether you could mix hydrophobic oils into tarmac in a way where all the water on a road would "slick off" toward the nearest ditch, without impacting car tire grippage.

</comment></comment></comment><comment><USER32> Presumably they're just spraying the walls in something like that Neverwet spray ([https://www.youtube.com/watch?v=DZrjXSsfxMQ](https://www.youtube.com/watch?v=DZrjXSsfxMQ)). I wonder if they realize that it breaks down in sunlight and won't work after a few weeks.

</comment><comment><USER33> >>> Public urination is quite common in Germany

This is surprising. I thought it is only a third world problem and Germany is very clean.

What are other developed countries where public urination is common?

<comment><USER34> Almost anywhere in Europe and the US. If people are out at night drinking and there aren't easily accessible public toilets, then there really isn't much of an option for non-public urination.

</comment></comment><comment><USER35> Listening to Wait Wait... Don't Tell Me?

</comment><comment><USER36> we definitely need this in san francisco</comment>


Tour Mobile1st's Mobile Device Testing Lab - <AUTHOR> http://mobile1st.com/tour-mobile1sts-mobile-device-testing-lab/

<comment><USER2> For developers testing mobile applications and responsive sites nothing beats testing with real devices.</comment>


What is the Birch and Swinnerton-Dyer conjecture? - <AUTHOR> http://www.math.harvard.edu/~chaoli/doc/BSD.html <comment><USER2> _...such a talk can easily succeed in convincing the audience that there is a dry, ridiculous, but famous conjecture coming out of nothing; crazy number theorists have wasted their life to contribute to the list of partial results, which cannot even be claimed to be a long list.

Hopefully I have failed in that way._

Ummm, I guess that even among techies on HN, there are only a small fraction who could understand this. So the author failed with me. Any one want to do an ELI5?

<comment><USER3> There are certain objects called elliptic curves. In a form called "affine", they look like y^2 = (some degree three polynomial in x). When you let x and y take values in several different fields (a field is an algebraic object in which you can add, subtract, divide, and multiply), we call solutions (x,y) of the elliptic curve _points on the curve_. After some work, you can determine that points on the curve form an _abelian group_ , that is, an algebraic structure with a single invertible operation that looks like addition (i.e. a+b=b+a for points a and b on the curve). After more work, we have concluded that the structure of this abelian group looks like some finite copies of the integers plus some finite copies of the integers modulo m. The copies of the integers modulo m is called the _torsion_ subgroup and the number of copies of the integers is called the _rank_ of the elliptic curve.

From a very different direction, to each elliptic curve we can associate something called an L-function, which is analogous to the Riemann zeta function. Through a bunch of other work, we have determined that the L function of an elliptic curve looks like a certain infinite product that in fact converges, and this L-function has an analytic continuation. If we expand this L-function as an infinite polynomial around 1 (a Taylor expansion you may rememember from calculus), then it looks like c(s-1)^r + (higher order terms). This "r" in the expansion is called the _analytic rank_ of the elliptic curve.

The BSD conjecture is that the analytic rank (the exponent in this L series expansion) equals the rank (the number of copies of the integers in the elliptic curve's abelian group).

<comment><AUTHOR> Thank you for taking the time to do that, that was great.

</comment></comment></comment><comment><USER4> This is quite advanced. At least graduate math level.

This is supposed to be a "elementary introduction to the Birch and Swinnerton- Dyer conjecture". Ha.

<comment><USER5> _This is quite advanced. At least graduate math level._

Yes, I learned most of this when I took graduate mathematics courses. Soon thereafter I decided that I'd be better off studying computer science...

 _This is supposed to be a "elementary introduction to the Birch and Swinnerton-Dyer conjecture". Ha._

I don't think the word "elementary" means what you think it means. In number theory, "elementary" means "not involving complex analysis"; it does not mean "straightforward".

<comment><USER3> In this context, they are not shying away from using complex analysis. They really do mean "elementary" as in "not for number theory experts", but for a general mathematical audience.

<comment><USER5> They mention complex analysis in passing, but I wouldn't say that they _use_ it here.</comment></comment></comment></comment>


A bold plan for mass adoption of electric cars - <AUTHOR> http://www.ted.com/index.php/talks/shai_agassi_on_electric_cars.html

<comment><USER2> A former boss of mine, an old-school metallurgist and a viciously patriotic Republican hard-ass from the midwest, mentioned this to me

<http://www.resourceinvestor.com/pebble.asp?relid=16620>

Not that website in particular, but the general fact that China has nearly a monopoly on the raw materials needed to manufacture electric cars. That website doesn't make quite that statement, just that China currently has all the production capacity, but he's told me that almost all the rare earth metal deposits are in China. He's not too keen on mass deployment of electric cars in the US. Given how the US automakers have pissed away any shot they had at innovating in this market, it seems unlikely to me that a US company would ever manage to dominate that industry. The tree-hugger in me says "Screw em: buy a foreign electric" but the flag-waver in me says "Hey what about biodiesel?"

<comment> patrickg-zill There are rare earth metal deposits in the USA, however due to environment regulations it is not even close to cost effective.

</comment></comment><comment><USER3> For the US, where will the energy come from? Given current car usage I find it hard to believe it will come from wind farms.

<comment><USER4> Electric cars aren't inherently green - they are only as green as the local source of electricity. Depending on where you are in the US, the percentage of electricity you get from renewable energy varies significantly. If we both have the same identical electric car, but you live on a mostly coal-burning grid, and I live on a mostly geothermal grid, I am a lot greener than you, despite the fact that we drive the same vehicle.

The reasons electric cars are a good idea is that once there is a mass adoption of them, individuals don't have to do anything more; as the grid becomes greener, everybody's car becomes greener. So it allows society to change its fossil fuel consumption much more quickly, vecause bold changes are made in the infrastructure but are transparent to users.

Electric cars are just one piece of the puzzle.

<comment><USER5> Right. And the transport of electricity to the charging station, the storage of electricity (and the attendant need to carry that storage) and the conversion of that storage back to kinetic energy is inefficient. The internal combustion engine, for its flaws, has evolved into a fairly efficient device.

I'm utterly convinced that electric cars are a red herring. Look instead at our insistence on dragging around behemoths of cars. We could save a tremendous amount of energy by quitting the race-to-the-top phenomena of escalating car size due to the (largely false) perception of safety.

<comment><USER6> > transport of electricity to the charging station > storage of electricity > > conversion of that storage back to kinetic energy

I'd love to see actual numbers to back up your statement--I imagine you are right about efficiency, but I'd like to see how bad the numbers are.

We have to drill, transport, and store oil, also. Efficient and dirty doesn't help us much if the dirtiness overshadows the efficiency. Lossy and clean seems preferable, because then you don't have to shed tears over losing energy bought at a steep price in terms emissions.

<comment><USER7> The comparison's not really meaningful, except to oil-burning electricity plants, but:

"most [internal combustion] engines retain an average efficiency of about 18%-20%"

[http://en.wikipedia.org/wiki/Internal_combustion_engine#Ener...](http://en.wikipedia.org/wiki/Internal_combustion_engine#Energy_efficiency)

</comment></comment></comment></comment></comment><comment><USER8> For all the good ideas, I still haven't heard of a car producer planning to sell a car with replaceable batteries.

Also what I don't think is said enough: electric cars should be better then conventional. Much better acceleration, better reliability, less noise... the list goes on.

edit: clarity. better then conventional.

<comment><USER9> What about batteries that are recyclable? BYD has created a plug-in hybrid with batteries that use nontoxic electrolytes. This should cut out many of the recycling problems we have with current batteries:

[http://money.cnn.com/2009/04/13/technology/gunther_electric....](http://money.cnn.com/2009/04/13/technology/gunther_electric.fortune/index.htm)

The car goes 60+ mi before needing to use the gas engine. I haven't done much research on performance/reliability/safety though the article does say the BYD cars lack the polish of Toyota's.

<comment><USER8> Replaceable as in "gas-station replaceable". With a top that's easy to remove and a mechanism to take them out and put another set in in less then 5 minutes. Without this, most of the ideas in the video don't really work.</comment></comment></comment>