Java 8: Replace traditional for loops with IntStreams - <AUTHOR> http://www.deadcoderising.com/2015-05-19-java-8-replace-traditional-for-loops-with-intstreams/ <comment><USER3> Maybe a heretical opinion here, but I like writing loops much more than using higher order functions like map/fold/filter, even though I have quite a bit of experience with ML family languages by now. These are my reasons:

1) The automatic parallelization opportunities of HOFs don't happen in practice nearly as often as you'd expect. Sorry, but it's true. Haskell's "map" doesn't parallelize automatically.

2) Loops are a single construct you learn once and apply everywhere, while HOFs are a huge and bewildering zoo.

3) Loops can do many things that HOFs cannot. You can do break/continue/return in the loop body. You can iterate over two collections at once, skipping elements of one collection depending on what you see in the other. And so on.

4) Loops scale to from simple use cases to complicated ones gradually and continuously. With HOFs, when your use case changes slightly (e.g. you add a counter), you often need to go all the way up and use a different HOF.

5) Loops make the time and space complexity much more obvious. With HOFs, you often get nasty surprises. For example, see the tail-recursive vs non-tail- recursive implementations of "map" in OCaml, or the foldr vs foldl vs foldl' situation in Haskell.

6) Loops are much easier to understand from a machine point of view. For HOFs, you need a language with closures, and in some cases GC as well. Loops, on the other hand, can be done in C.

In a nutshell, loops are easier to learn, easier to read, easier to write, and easier to execute.

<comment><USER4> The problem I have with loops is that they are like fly-paper. Once you have a loop iterating over a collection it's tempting to add more and more to it, mixing responsibilities in run-on code. This isn't theoretical, I see code like this all of the time. It's nearly impossible to abuse HOFs that way.

<comment><USER3> Yeah, I agree. "Fly-paper" sounds a bit judgmental though. For a more neutral metaphor, we could say that HOFs are like Lego bricks, and loops are like clay. Both have their benefits and drawbacks.

I've been fascinated by HOFs for many years, but my personal projects are filled with "loop abuse" and mixed responsibilities, all soft and malleable, just the way I like it. If I had to dismantle half the thing just to change the color of one brick, I'd give up pretty quickly.

<comment><USER4> That sort of change is easy - at least you have bricks. Clay just oozes all over itself.

Whatever works for you. If it's just your code, you have enough control to keep loops from going bad. Large multi-programmer projects seem far more prone to that problem.

</comment></comment></comment></comment><comment><USER5> The next step is to realize that you can use streams to communicate between processes. Stream parallelization is used not just to speed things up but as an easier way to write massively parallel programs.

Instead of bug inducing mutexes and semaphores, you write a series of threads who are only able to communicate between themselves through streams. Each thread possesses input streams to receive data from other threads and output streams to talk to other threads. Each thread is idle until it receives an input from one of the streams. It then performs some processing which can include sending messages to output streams before going back to sleep. A system may possess a large number of threads and

I wrote a pacman this way where interactive object was a thread: the pacman, ghosts, bonuses,... Even the score was in its own thread. Since the game was real time there was a special clock process to generate the ticks to advance through each frame of the game.

Except for the initial wiring up and flow control (when the emitter of the stream is faster than the receiver), the system is easy to reason with and debug. By looking at the stream you can get a high level of visualization.

I guess the next step after that is to realize that you can apply this to the entire system and replace messy one-to-one ESB RPC calls with something like Event Sourcing.

<comment><USER6> Standard unix programming with streams and pipes is quite functional-ish. The auto-pausing of pipes and lazy infinite streams it makes possible are quite useful.

</comment></comment><comment><USER7> I was thinking "this is cool" \-- a more functional style of iteration for Java. But then it occurred to me that now you will need to know yet another style of writing the same thing. That brought up (bad) memories of Perl, where the problem of "there's more than one way to do it" was that you had to be comfortable with _reading_ all of them. (And, much as I love Lisps, that's the problem with macros in Lisp -- they create a semantic burden on new readers of the code.)

<comment><USER8> One of the hotly debated aspects of java is that even with java 8 additions the language is fairly simple and there really aren't that many ways to express the same thing.

<comment><USER9> Hmm... Java's reference manual is about 800 pages long. That is close to Ada's reference manual, and Ada is quite a hard to grok language, and its reference very exhaustive, by design. It is bigger than C++14's ISO reference, which is fun considering Java was marketed as "much simpler than C++".

Overall, Java is not an arcane language, but it has many, many gotchas and mixing new concepts with old design decisions only increases the number of gotchas.

<comment><USER10> The spec is long because it's very, very detailed (probably more than any other language spec out there). Also, Java doesn't allow any undefined behavior under any circumstance. It is much, much simpler than C++.

<comment><USER11> There are also lots of awkward edge cases where Java specifies something just as complex as a more general language feature, that's then only used in one tiny case. E.g. Java has a specification of type inference - that's used only for anonymous classes. And another, more limited form of inference that's applied to generics. Java has a syntax for union types - that can only be used in catch clauses - and generic type bounds have their own parallel syntax and rules. Language constructs are inconsistent (braces are mandatory around the body of a try or a function, but not an if or while). A lot of parts of the specification need special-casing for primitive types and/or arrays, which most languages handle in a more unified way (e.g. accessing the length of an array via reflection is unlike any other method or field access).

<comment><USER10> So what? A language's complexity is measured (by developers) as the mental effort required to learn and read it -- not by the regularity of the grammar. Java is a relatively very simple language (for a statically typed one) -- even with its corner cases. It's certainly more complex than C and a little more than Go, but it's much simpler than C++, C#, Scala, Ada, Rust, Haskell, OCaml and pretty much every other statically typed language out there with more than 1000 users.

<comment><USER11> These aren't just theoretical grammar issues. Every beginner struggles with when you use == and when you use .equals(), or the differences between casting primitives and casting objects. I've witnessed even very experienced developers get confused reading generic bounds, or fail to take advantage of multi-catch or generics inference. All I can say for your comparisons is that I disagree with many of them.

<comment><USER10> > Every beginner struggles with when you use == and when you use .equals(), or > the differences between casting primitives and casting objects.

I actually agree with those points (though Java is still very simple), but there's an obvious reason: that's the exact same behavior as in C++ (unless you start playing with operator overloading), and any other behavior would have looked surprising or strange to people coming over from C/C++, which was basically everyone who learned Java in its first 10 years. The same goes for the fallthrough switch statement.

Generic bounds indeed completely go against the language's design goals, but failing to take advantage of multicatch or generic inference (or lambda inference) is not a problem[1]. Java is a language designed for ease of reading (it says so right in its design documents), and for large teams/project, so code is made to look uniform, with all "advanced" features being local and obvious to anyone reading them. The goal was to make every new developer on your team (people working on large projects move around a lot) immediately able to read the code and not have to learn the team's DSL or coding style. Those were the problems that plagued C++ (alas, they only became apparent years after C++ had been in widespread use, and cost the industry billions), and Java very successfully avoided. Go has adopted the same design philosophy.

[1]: Not that it's important, but every Java IDE would automatically suggest the shortened syntax. Java IDEs even automatically convert loops to streams.

</comment></comment></comment></comment></comment></comment></comment></comment><comment> c-rack Interesting approach. It would be nice to see some benchmarks of IntStream vs. traditional loop.

I would expect that IntStreams are slower if it does not use the parallel execution, see: [https://stackoverflow.com/questions/22658322/java-8-performa...](https://stackoverflow.com/questions/22658322/java-8-performance- of-streams-vs-collections)

And even parallel execution might be tricky: [http://zeroturnaround.com/rebellabs/java-parallel-streams- ar...](http://zeroturnaround.com/rebellabs/java-parallel-streams-are-bad-for- your-health/)

<comment><USER12> A coworker and I tested this out when the announcement was originally made, at least in the use case of iterating a massive array. (Insert 100M trues and one false at the end, and find me the false)

Code is here: [https://gist.github.com/Karunamon/abc6483ac1d08f6cc137](https://gist.github.com/Karunamon/abc6483ac1d08f6cc137).

The result was that streams were roughly 4x slower.

Still, I really like some of the new constructs that Java is getting - <USER2> make the language a bit more expressive, lack of which has always been my main gripe with the language.

<comment><USER13> Write code to be as clear and expressive as possible, then optimize for performance when you know performance is a problem. This is why I don't mind the performance cost of new language features like this. 90% of the time it won't matter, and you can optimize the other 10.

<comment><USER9> These constructs don't always make code any easier to understand / maintain. I have played a lot with NetBeans' feature that automatically translate loops with their "functional" equivalent. Sometimes the code was so clever I couldn't understand what was happening.

Sure, code is more compact, but compactness is not an end in itself.

<comment><USER14> Compactness is more of a side effect and can be a detrimental one. Personally I find that this kind of code is more declarative of intent than the more imperative for loop. By using particular functional tools for the job you're avoiding any possibility of a bug in your looping construct and making your purpose explicit.

I also like how it removes boiler plate to handle different container types making it easier to switch to different ones.

</comment></comment></comment></comment></comment><comment><USER15> Iterators are an interesting addition to Java 8, but a bigger change is what they had to do to enable iterators to exist.

What they did was allow interfaces to provide default methods. They then added stream() and parallelStream() default methods to the Collection interface to generate streams and start all of the iterator goodness.

The result is that in Java 8, an interface now behaves like a Ruby mixin. It is a way to do multiple inheritance in a language that officially does single inheritance.

I'm sure there will be some disasters before the Java community settles on best practices for this feature. :-)

</comment><comment><USER4> The idea that you can replace nearly every loop with functional constructs really clicked for me when I saw that you can use zip in Haskell and each_cons in Ruby to see each element and its successor at the same time.

[10,11,2,3,4,5].each_cons(2).map {|curr,succ| succ - curr } => [1,-9,1,1,1]

<comment><USER16> Or just:

      (-)':(10 11 2 3 4 5)

...in K.

Or:

      (-) prior (10 11 2 3 4 5)

..in Q, if you feel more comfortable with words than symbols.

</comment></comment><comment><USER17> Just write functional programs in a legible manner for understandability. I've seen people write five functions on a single line and takes me a while to figure out what is going on. They should be on separate lines with a possible tail comment.

</comment><comment><USER18> I know backward compatibility with Java 5 is important for the clojure world, but I would love to see streams and invoke dynamic implemented in a "Clojure 2.0".

I would love to do it myself, if someone would pay me to do it :)

<comment><USER19>
        I know backward compatibility with Java 5 is
        important for the clojure world...

Why is that? (I googled but didn't find anything relevant.)

<comment><USER20> Since Clojure 1.6, Java 6 is the minimum requirement.

I'm sure there is a discussion somewhere, but I expect that there are quite a few people who run Java on commercial J2EE app servers and the like which don't officially support newer JDKs.

</comment></comment></comment><comment><USER21> Liking that java is getting nice now. But they need to get type inference next too.

<comment><USER22> Seems to be an unpopular opinion, but I don't like or want type inference. All that happens is instead of seeing

      int result = someFunc()

you see

      val result = someFunc()

Is anything really gained other than saving a couple obvious (and compiler checked) keystrokes? And you've lost the ability to see the type of each variable locally in the function. It's never seemed very useful to me.

<comment><USER23> For your example, sure.

But it's not uncommon (in my opinion) to write stuff like

        EnumMap<FooEnum, BarClass> map = new EnumMap<FooEnum, BarClass>(FooEnum.class);

which to me ought to read something like

        var map = new EnumMap<FooEnum, BarClass>();

Of course, I don't do a lot of Java programming these days and perhaps my first example is simply broken due to ignorance.

When I wrote something very similiar to that last week, I failed to figure out how to avoid repeating the type signature, and was annoyed.

<comment><USER24> It's not quite as short as you'd like, but since Java 7 came out in 2011, it's been possible to write:

      EnumMap<FooEnum, BarClass> map = new EnumMap<>(FooEnum.class);

using the "diamond operator" [1]. In fact, my IDE even provides automatic hints to make use of it!

With that said, I do think java has too much pro-long-method-and-variable-name culture.

[1] [http://www.javaworld.com/article/2074080/core-java/jdk-7-- th...](http://www.javaworld.com/article/2074080/core-java/jdk-7--the-diamond- operator.html)

</comment></comment></comment></comment><comment><USER25> cool article! parallel reminds me of C#'s Parallel.For/ForEach loop. Does anyone have experience of the performance of streams vs conventional for loops?

<comment><USER8> Performance has been briefly mentioned in this thread; if you google you'll also see some empirical results. But really the best you can hope for, all else equal, is same perf as for loop. The JIT compilers have been taught about loop optos for a long time now, and the best you can hope for is the JIT removes the extra abstraction when using streams, but it can be brittle.

</comment></comment><comment><USER26> Java needs to come out of the Ruby closet.

</comment><comment><USER27> Not only do I wish for for loops to remain I would like to see the magical looking lambda crap removed.</comment>


Show HN: A Project Board built for remote teams - <AUTHOR> https://shipped.dev?ref=hn <comment><USER2> Neat idea, but anything that ties into slack or threads in slack is asking for lost or complicated work. Slack threads are probably the worst tool for getting any work done.

<comment><USER3> I don't think that's some kind of moral absolute. Slack is indispensable for a chunk of the remote work that I do.

<comment><USER4> Are Slack _threads_ , though?

<comment><USER3> I wouldn't call them indispensable but they are helpful in moderation.

</comment></comment></comment></comment><comment><USER5> Sounds interesting, but the website has very little details on it so I can't really evaluate how well it would work for me.

</comment><comment><USER6> Why are you overriding native scroll?

</comment><comment><USER7> My team uses slack and trello what are we missing out on by not using this?

<comment><AUTHOR> Shipped replaces Trello, with Shipped conversations are 2-way synced so that teams can respond from Slack instead of having to check trello

</comment></comment><comment><USER8> I would highly recommend against using "Jira Blue" :)

</comment><comment><USER9> Nothing happens when I click the Join with Slack button.

<comment><AUTHOR> Sorry to hear that, if you click refresh it should load properly, we're working on fixing that!

<comment><USER9> Came back and tried again. Something was getting blocked by my content blocker (1Blocker), reloaded without content blocking and it worked. I figured this was probably useful for you to know.</comment></comment></comment>


Another wave of nootropic supplements is hitting the market - <AUTHOR> https://www.vox.com/the-goods/2019/7/8/18772467/nootropics-silicon-valley-brain-fitness-goop-smart-drugs <comment><USER2> Regular exercise has a hugely noticeable effect on my ability to concentrate and keep multiple mental plates spinning at once. However, it's not available in pill form last I checked.

You can do it anywhere, anytime, at any intensity. It's as easy as taking a walk around the block, or as challenging as 50 pull-ups. You control the difficulty, handicaps, and every aspect of the activity. Bonus attributes are _it 's addictive_. Once you do it long enough, your brain will begin to encourage and reward this healthy behavior. Sometimes, it will even punish you for trying to skip exercise with negative emotions and nature's great motivator: shame.

The best TV infomercial for mental well-being would be a 72 point font that reads: "turn me off and get off your butt!".

EDIT: If you want some help or initial instruction, there is an app for most smartphones that can help you get started at any level. There are many variations of this type of app, but I like the "Johnson & Johnson 7-minute workout" one. You can customize it way beyond 7 minutes, and it has helpful video instruction and voice prompting. Link to homepage: [https://www.7minuteworkout.jnj.com/](https://www.7minuteworkout.jnj.com/)

<comment><USER3> > Bonus attributes are it's addictive. Once you do it long enough, your brain > will begin to encourage and reward this healthy behavior. Sometimes, it will > even punish you for trying to skip exercise with negative emotions and > nature's great motivator: shame.

Maybe I am non-normal here, but I've no idea what that feels like. Mind, I've run a marathon before, participated in a few organized athletic sports leauges, been on sports teams, improved my weight lifting substantially, and just gone for mile runs and bit of basketball.

I've _never_ felt like I _needed_ to go out and exercise. Sitting on the couch has always been just fine.

It has always been an internal battle to go out and exercise. I feel like crap after exercising. I'm tired, sweaty, grouchy, my legs are wobbly after any distance run, and it takes about 3 hours for me to wind down. I do sleep better, but I can't exercise after ~6pm if I want to get to sleep by ~10pm. My concentration is shot during the winding down and I can't work or study either. Truely, honestly, I do not like exercising. Like, I know it's good for me, but, man alive, it just sucks to do!

Look, I know I am weird here, but based off the data on rates of exercise, I'm not super certain that I'm too far off the average.

<comment><USER4> I think what some of this discussion is missing is there are _two_ continuous scales of wanting exercise. There is the axis the GP speaks of of wanting to exercise (for me, because of the endorphin rush) but _also an orthogonal axis_ of laziness/busyness/inertia/etc that fights the first desire. I've found it common to both intensely want and simultaneously not want to exercise — and eventually one axis out-weighs the other.

It is similar to the HR principal (forgot the name) where employees can both intensely like the job but also dislike it — all because the continuoum is on a single axis one.

<comment><USER3> >for me, because of the endorphin rush

I think my lack of exercise-wanting is related to this! I don't get that rush feeling. Sorry to not have mentioned that. I just feel terrible the whole time. My SO mentioned this too. For my SO, there is this 'glow' feeling after a workout. I don't believe that I get any such benefit.

</comment></comment></comment></comment><comment><USER5> The easiest way to think more clearly is the one it seems is least tried: a good night's sleep. The second easiest: periodic disengagement from phones, computers, and people.

Stimulants such as the ones discussed in the article interfere with that.

<comment><USER6> No offense, but that's kind of a load of shit. As someone diagnosed with ADHD, I can get by alright without Adderall, but there is no denying the profound intensity of focus I get when I take it. And a good night's sleep doesn't even come close.

There are plenty of good arguments against enhancement-style use of stimulants, but to suggest they don't do anything more than decent rest is just silly.

<comment><USER7> I have ADD myself, and while I agree that adderall is something of a wonder drug in this regard, adopting a regular sleep schedule has had absolutely immense benefits for me. Almost every activity where it's possible to gauge performance has seen a benefit.

I think the parent's point about it being the biggest relative increase in cognitive function is correct.

</comment></comment></comment><comment><USER8> Mainstream nootropic supplements have three primary ingredients: Marketing, placebo effect, and very mild stimulants.

The hyperbolic marketing material primes the user for maximum placebo effect. When the mildly stimulating compounds kick in, the user can actually feel something. All of the marketing material about enhancing brain function through combinations of carefully-researched ingredients feels validated. The user may only feel a mild stimulating effect, but it feels so much more significant after reading elegant marketing about supporting neurotransmission, helping healthy brain signaling, and promoting healthy cell membranes.

It's easy to see why this combination is so effective. Caffeine's stimulating effects are well-known, as are the rebound, tolerance, and dependence that come from repeated caffeine dosing. Remove caffeine from the equation and now the user's expectations are a blank slate, malleable according to whatever marketing materials the team can dream up.

The BrainGear supplemented listed in the article is a prime example; The raw ingredients in each drink cost pennies (search Amazon for bulk Acetyl L-Carnitine, Choline, Inositol, and the other ingredients if you're curious). Their largest costs are likely distribution, storage, and marketing. Many of the ingredients can be found in similar quantities in a regular, healthy diet that includes eggs, leafy greens, and a cup of green tea each day. There is nothing magic, noteworthy, or particularly valuable in this supplement, yet here we are reading a vox.com article where a journalist happily links to their product and fails a strawman attempt to debunk it by solving some Sudoku for a couple of days. This is a great marketing success story.

</comment><comment><USER9> People want an edge, but everyone wants to take the shortest path. Nooptropics, supplements, etc are perceived path shorteners where perhaps no such one exists. It seems that the power of the mind (i.e. placebo) is the only real thing here. I would like to see how meditation/mindfulness apps and adoption measure against nootropics.

== UPDATE ==

I did not mean to imply that stimulants like caffeine, amphetamines, etc are placebo. I should have made a clear distinction between such classes of nootropics and those that do not contain such ingredients or those that are proven not to have effect. I agree, the coffee I had this morning was not a placebo for increasing my wakefulness.

<comment><USER10> > Nooptropics, supplements, etc are perceived path shorteners where perhaps no > such one exists.

At least one exists - caffeine. Double-blind studies have proven many times that it improves alertness, which leads to higher scores on many mental performance tests. I find it implausible that no others exist.

<comment><USER11> "Multiple studies have shown benefits of caffeine in improving endurance. Military studies have shown caffeine increase vigilance in sleep deprived and one study showed improved shot group tightness."

"Recommended dosing is 5mg/kg of bodyweight. Dosing of 200-300 mg has also been used. Higher dosing has been associated with side effects that would decrease performance. Serious adverse reactions have been seen at 2,000mg so this quantity of caffeine should be avoided."

The military does some cool studies on these. Source is below, but you can find the actual study with charts on how firearm proficiency rises and drops with dose.

[https://www.benning.army.mil/tenant/75thranger/content/PDF/R...](https://www.benning.army.mil/tenant/75thranger/content/PDF/RANGER%20TOP%2020%20Supplement%20List.pdf)

<comment><USER10> > _one study showed improved shot group tightness_

I refrained from mentioning caffeine's other reported and studied benefits, as my understanding is they mostly disappear when alertness is compensated for. Shot group tightness, memory performance, response time, critical thinking and many other performance criteria have studies indicating that caffeine improves results, but it's hard to separate the performance enhancement of just being more alert. Maybe people shoot more accurately or memorize cards better with caffeine, or maybe they just weren't quite paying attention when not using caffeine.

</comment></comment></comment></comment><comment><USER12> I can imagine that we could use bio compatible chips to accurately measure blood levels of different vitamins and proteins. With this personal bio data you could identify if you have an imbalance of anything and address it, improving congnition and other conditions. Maybe this would be something a company like Apple or Fitbit develops as it seems like a natural extension of the health tracking they already do.

<comment><USER13> The first thing we'd need to do is evaluate the optimal value of various vitamins, proteins, minerals, and other supplements for all humans- we're definitely not there yet. Our current blood tests allow a relatively large range of 'normal' for pretty much anything the blood uptakes.

<comment><USER14> So you use the new data gathering system to identify what variations matter.

</comment></comment></comment><comment><USER15> My supreme techniques are

* Provigil

* 2000IU daily Vitamin D during the darker half of the year

* Weightlifting, it really improves mental focus

* Get to sleep early enough to wake before the alarm goes off

* Strong coffee

</comment><comment><USER16> Scott Alexander at SlateStarCodex wrote a good piece on why these branded combination nootropic supplements are risky and probably a bad idea: [https://slatestarcodex.com/2017/08/10/brief-cautionary- notes...](https://slatestarcodex.com/2017/08/10/brief-cautionary-notes-on- branded-combination-nootropics/)

</comment><comment><USER17> This isn't a new wave. Just the same wave by the same people.

</comment><comment><USER18> Please tell me more about where you buy these drugs.

</comment><comment><USER19> I remember the first time I used a specific industrial gas recreationally. I felt the arteries in my brain open up, and there was a sort of clarity that wasn't there before.

Then the benefits faded into the background, and I now don't notice the effect like I did the first few times.

I think remedial biology hacking works this way. If you're deficient in a specific area you'll notice a huge benefit right away. If you don't need a specific hack, you won't notice a benefit.

Another brain-hack that I noticed the first few times was Methylene Blue [0], a potent MAOI and general metabolism-booster. I started out with microgram- level doses, and I definitely noticed ... something.

But then it too faded into the background, and I don't notice the benefits so much anymore. I still use this one occasionally but this too doesn't have exactly the magic I'm looking for. (I use it on my dog though - she developed a tumor when my dad took care of her for a few months - he took her off all the supplements and fed her what I consider junk. He left for the summer and my dog is back on my supplement program; I think she's got her spunk back. [Edit: google scholar has some articles about methylene blue having anti-tumor activity]).

[0] Methylene blue, the cheapest cognitive enhancer: [https://selfhacked.com/blog/methylene-blue-the-cheapest- cogn...](https://selfhacked.com/blog/methylene-blue-the-cheapest-cognitive- enhancer/)

At the other end of the mind-hacking spectrum, the mainstream mental health industry takes cognitive decelerants and tells certain patients that they have a chronic condition that requires chemical lobotomization. Today these drugs are marketed by the prescription drug cartels as anti-psychotics, but originally they were known as major tranquilizers. Patients can't protest the side effects of their medications because the psychiatrist will use the complaint to claim that their patient "lacks insight" into their condition, which justifies the use of force to make them take the drugs the professional thinks they require. Psychosis is mostly a treatable metabolic problem, but patients are much more profitable to the industry by pretending they have chronic conditions.

Because the best cognitive enhancers are natural substances and safe patent- expired medications, profiteers swoop in to repackage these vitamins and other Over the Counter substances. Everyone has to figure out what they actually need on their own.

The best mind-hack I've had is certain kinds of body work, which helped me relax like nothing else. Sometimes massage/etc practitioners have the magic touch that gets my body to turn off, but they tend to not know what they did and I don't consistently get the effect. It's very frustrating.</comment>


Google will shut down Google+ four months early after second data leak - <AUTHOR> https://www.theverge.com/2018/12/10/18134541/google-plus-privacy-api-data-leak-developers <comment><USER2> Yikes. A release in November introduced an API bug that was active for about 6 days, impacting 52.5 million users.

* With respect to this API, apps that requested permission to view profile information that a user had added to their Google+ profile—like their name, email address, occupation, age (full list here)—were granted permission to view profile information about that user even when set to not-public.

* In addition, apps with access to a user's Google+ profile data also had access to the profile data that had been shared with the consenting user by another Google+ user but that was not shared publicly.

<comment><USER3> FWIW, also from the blog post:

> We discovered this bug as part of our standard and ongoing testing > procedures and fixed it within a week of it being introduced. No third party > compromised our systems, and we have no evidence that the app developers > that inadvertently had this access for six days were aware of it or misused > it in any way.

<comment><USER4> Yeah, testing in production. I wish the tech industry would stop this madness and do QA before releasing. It's all about code velocity and shipping things, we need to hold ourselves to higher standards. I'm afraid unless there will be legal pressure and a framework it will continue this way.

<comment><USER5> There's nothing that says there's no QA/testing _before_ releasing. "Testing in production" doesn't _remove_ the ability to do testing _before_ production.

You should be testing your software at every step of its lifecycle, _especially_ in production. Production is where it matters if there's bugs.

</comment></comment></comment></comment><comment><USER6> Again, this is poor reporting. It's newsworthy that Google+ found and disclosed a vulnerability in its own code, but there is no norm for reporting internally-discovered vulnerabilities and few companies reliably do it, especially in SAAS platforms where there's no end-user patching activity that needs to be motivated.

There's a colorable argument that you don't even want this to be a norm, because of the incentive problems it creates:

[http://flaked.sockpuppet.org/2018/10/09/internal- disclosure-...](http://flaked.sockpuppet.org/2018/10/09/internal-disclosure- boring.html)

Regardless: bear in mind that you haven't even heard about a fraction of the horrible vulnerabilities internal teams at tech companies have discovered over the years.

<comment><USER7> As someone in the heart of trying to help people get off G+, what's particularly newsworthy is that after two full months (and two days) of radio silence on the Google+ sunset, the first substantive comment from Google is ... that the sunset has been advanced by four months.

We'd be recommending people be _starting_ their migrations by Feb - May, and now they've got to _complete_ them by April. That's something of a PITA.

[https://social.antefriguserat.de/index.php/Exodus_Planning_a...](https://social.antefriguserat.de/index.php/Exodus_Planning_and_Scheduling#Phases)

There are 7.9 million Google+ Communities. Sure, 3.9 million of those are 1 (or fewer) users, but that leaves tens of thousands of 1,000 or more members. Even at only a few percent of those as active, that's a lot of communities and people involved. And Google+ has no effective community migration process.

Source on communities: I counted them myself, well, via sampling: [https://old.reddit.com/r/plexodus/comments/9zx67d/google_com...](https://old.reddit.com/r/plexodus/comments/9zx67d/google_communities_membership_analysis_preview/)

</comment></comment><comment><USER8> I haven't followed the Google+ saga, so forgive me if this has already been answered:

Does the shutdown of Google+ mean that Google Search users will get the + operator back?

<comment><USER9> put the term(s) in double quotes, it does the same thing, no?

<comment><USER10> "term" is require_exact_match(term) and +term was require(term), so the latter would, for example, allow spell checking, IIRC.

<comment><USER11> It's not really "term" \- at least, it can't handle multiple words.

"foo bar" is actually treated like "foo" "bar", which is far less useful than it once was.

<comment><USER12> > "foo bar" is actually treated like "foo" "bar"

No it isn't. Compare "internal engine" with "internal" "engine":

[https://www.google.com/search?q=%22internal+engine%22](https://www.google.com/search?q=%22internal+engine%22)

[https://www.google.com/search?q=%22internal%22+%22engine%22](https://www.google.com/search?q=%22internal%22+%22engine%22)

<comment><USER11> You're correct, it does not work as I describe. My description of the problem was just wrong, so thanks for pointing that out.

However, it doesn't work the way it used to either.

I get frustrated once or twice a year about this, and every time I fight with the many (old) tutorial examples, but eventually end here: [https://productforums.google.com/forum/#!topic/websearch/6gH...](https://productforums.google.com/forum/#!topic/websearch/6gHVUEl8y1k/discussion)

Where we see that "foo bar" only says that "foo" will appear in the text before "bar" (but anything can be between them), and that's assuming the bug is actually fixed.

That status of "we think it's fixed and users don't agree" is the last I've ever seen.

<comment><USER13> Under "search tools", you can change "all results" to "verbatim" to fix that. Really not obvious, though.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> There's a lot of great content on Google+. Is anyone working on a script to archive some of it before it all goes away? Perhaps the fine folks at the Internet Archive (Wayback Machine)?

Specifically, I'm wondering if someone's working on a script that does the following:

\- Ideally for each post URL given, it would preserve the post, and the comments (including the first few ones, not just the last few ones that are shown by default). It would be nice if it also preserves the +1s (including who +1d them), but that's optional.

\- And given a user, it would do the above for each (public) post of the user, or (optionally) use your account to save (just for yourself) the posts that you can see.

There were a lot of people posting great stuff on G+ and resulting in wonderful thoughtful conversations (especially a couple of years ago), it would be shame to lose all that permanently.

(If someone doubts this: see e.g. (if you're interested in mathematics) the posts by [https://plus.google.com/+TerenceTao27](https://plus.google.com/+TerenceTao27) [https://plus.google.com/+TimothyGowers0](https://plus.google.com/+TimothyGowers0) [https://plus.google.com/+johncbaez999](https://plus.google.com/+johncbaez999) etc, or [https://plus.google.com/+DanPiponi](https://plus.google.com/+DanPiponi) for more CS-y stuff, or for more "general" stuff [https://plus.google.com/+YonatanZunger](https://plus.google.com/+YonatanZunger) etc -- and for all these people, especially in 2015-2016 or so.)

 _Edit:_ You can download your _own_ content using Google Takeout [https://takeout.google.com](https://takeout.google.com). Just learnt of these other places where this question has been asked / is being asked: this G+ community ([https://plus.google.com/communities/112164273001338979772](https://plus.google.com/communities/112164273001338979772)) and this wiki ([https://social.antefriguserat.de/index.php/Main_Page](https://social.antefriguserat.de/index.php/Main_Page)) -- if you have any answers those may be good places to post too :-)

<comment><USER15> > Is anyone working on a script to archive some of it before it all goes away? > Perhaps the fine folks at the Internet Archive (Wayback Machine)?

The archivist in me is screaming that yes, of course it should be archived.

The web-old-timer in me just shakes his head that people never learn to keep a copy of their content on the actual free - as in freedom - web, on their own website. Let it be a mere text file, uploaded by ftp, or a WordPress, or anything, just do it. Nobody should expect others to archive it for them. (For more on the topic, see [http://indieweb.org/why](http://indieweb.org/why) ).

Back on topic: talk to [https://www.archiveteam.org/index.php?title=Main_Page](https://www.archiveteam.org/index.php?title=Main_Page) .

</comment></comment><comment><USER16> So, how does Google, which we all trust with our precious data end up messing up like this several times in a row?

If this is the company with the best security team in the world does that mean we should simply abandon all hope?

<comment><USER17> My opinion is that, given the infrastructure and practices we have, anything that is in digital form will be eventually hacked in one way or another. It is just a matter of time. Unfortunately the best security team can't do anything about it.

<comment><USER16> It's depressing.

<comment><USER18> Its liberating. There is no information immortality.

<comment><USER16> Hacked data is more, not less immortal.

<comment><USER18> Let me rephrase that: there is no information privilege immortality.

</comment></comment></comment></comment></comment></comment><comment><USER19> From Google: [https://www.blog.google/technology/safety- security/expeditin...](https://www.blog.google/technology/safety- security/expediting-changes-google-plus/)

</comment><comment><USER20> Does anyone know how or if this will affect OAuth2 logins? Several of the sites I run rely on Google OAuth2 and get the user's avatar using Google APIs. It's a simple thing that does not require Google+ but it's unclear to me how it will be affected.

What is this the 3rd or 4th social network Google has failed at?

<comment><USER21> It won't be affected. Google spent the last few years decoupling every useful G+ feature into standalone services, the account feature to me looks completely separate nowadays. Besides, without the OAuth provider, tons of integrations (that Google actively want on their products) would break.

G+ was such a silly play, when you consider that Google already had the key to centralized identity all along: the ubiquitous GMail account. They will continue to push that for sure.

</comment></comment><comment><USER22> It amazes me that a company with all the resources that Google has repeatedly coming up with ideas and doing absolutely nothing effective with them. They've had some winners, like Chrome, and their acquisition of Youtube eventually paid off, but something as simple as a social media site and the best they can come up with from scratch is Google+.

<comment><USER23> I don't know what you mean? The G+ UI is pretty good, certainly a lot better than Facebook was at the time when G+ launched. For a while, a lot of people were happy there, particularly in certain niches like photography.

It's a shame the implementation was so complex (apparently) that now it can't be easily maintained. This does seem to happen to Google a lot. It probably has more to do with too many resources, rather than not enough.

But maybe it's not simple to compete with Facebook. Maybe this has little to do with technology.

<comment><USER24> I don't know, but the whole Circles things was overcomplicated and average users didn't bother to put their followers into different circles, I am not sure how they thought this would work.

<comment><USER25> Circles was fantastic, and continues to be what I wish for in a lot of other networks. Mainly because there are people I follow loosely (don't mind seeing the occasional update from), and people I follow religiously (because I know them personally or care about every single thing they say). I used to maintain really primarily two feeds. One I cared to always read all the time, and one I'd browse when I was bored.

G+ mostly mitigated the frustration of it for people who didn't care years ago: You can just click follow and it puts them in a default following circle.

<comment><USER16> Circles is great for geeks who like to have such fine-grained control over their lives, both online and offline. For the rest of the world it doesn't really matter, and even if it does it is too difficult to set up and maintain. A company called Hyves in the Netherlands did much the same thing (but with a fairly crappy UI) long before Google+ came along. That fell to FB as well.

</comment></comment></comment></comment></comment><comment><USER26> Can we have Google Reader back now?

<comment><USER27> this is what i was looking for when i saw this headline.

</comment></comment><comment><USER28> They could have done soo much more with Google+ ... The hype was real up until launch. Really wish they had done things a little differently. Oh well... With all these leaks, I'm actually really glad they weren't successful with this.

<comment><USER21> Even after launch. But the Real Names policy and lack of write api killed any momentum.

</comment></comment><comment><USER29> So is this four months per new leak found or "half the distance to the goal line?"

</comment><comment><USER30> I admit I actually rather liked Google+, for certain communities it was really active and well suited. However now that Google is decoupled and free from G+ shackles, it has really room to take off and grow in new areas, which is exciting to see. eg G+ logins will now be returned to G or Gmail branding, probably dramatically increases consumer confidence and mindshare, and other stuff. Developer teams can be fully redeployed to other products etc. Building of "micro" communities within Maps, YouTube, etc will accelerate, and that's really where it should be, rather than forced to accede to G+ product area.

</comment><comment><USER31> How do I download all the discussions (posts with comments) I have participated in?

<comment><USER32> Google Takeout has two different Google+ entries that may have what you're looking for.

</comment></comment><comment><USER31> What are some good alternatives to Google+? I mean microblogs with subscribers/followers instead of friends, without a strict message length limit, with first-class comments, letting you to edit your posts and comments after you submit them and to limit access to particular post to a specific group of people?

<comment><USER33> Dreamwidth (Livejournal fork)? A recent Wired article: [https://www.wired.com/story/tumblr-porn-bloggers- dreamwidth-...](https://www.wired.com/story/tumblr-porn-bloggers-dreamwidth- pillowfort/)

</comment></comment><comment><USER34> Actual announcement: [https://www.blog.google/technology/safety- security/expeditin...](https://www.blog.google/technology/safety- security/expediting-changes-google-plus/)

</comment><comment><USER35> Is it accurate to call this a leak if no one actually took advantage of the vulnerability?

</comment><comment><USER36> Did they ever unfuck the merging of Google+ comments with YouTube comments?

<comment><USER7> Mostly.

</comment></comment><comment><USER37> I suppose I'll ask this here.

Does anyone know of a good way to archive a Google+ group. There is a bunch of good info about hacking the Kankun smart plug that I would like to preserve.

<comment><USER7> No.

There are some tools.

[https://social.antefriguserat.de/index.php/Data_Migration_Pr...](https://social.antefriguserat.de/index.php/Data_Migration_Process_and_Considerations#Third_Party_Tools)

</comment></comment><comment><USER38> I really don't care what they do with the consumer version (who uses it?), but I'd like to see mapping and wayfinding features added to the paid GSuite version.

</comment><comment><USER39> Data really has become radioactive.

<comment><USER40> That is so true.

Its like most of us live behind this wall of our behavior online, like it isn't shared unless there is a hack.

But its sold, shared and traded without us knowing it, and used to display a reality tailored to us with the unintended consequence of us living in a bubble and not seeing much outside the edge of the bubble.

This site is a great example of bubble breaking.

</comment></comment><comment><USER41> Wait...

Google+ had 52 million users?

That should be the headline.

<comment><USER42> Everyone with a gmail address or youtube account was strong armed into having a google+ account, which counts as their "userbase" regardless of whether or not any of those people actually made use of any google+ specific features.

<comment><USER27> then it should be more than 52,000,000 people.

<comment><USER43> The vulnerability did not affect all of the users.</comment></comment></comment></comment>


Are We Making Elections Less Secure Just to Save Time? - <AUTHOR> https://theintercept.com/2018/09/04/election-results-voting-system/ <comment><USER2> People put a spy device in their home to save time. I'm sure you could link fit-bit's and smart phones to the voting system without much resistance.</comment>


Ask HN: Simple, simple, simple editors for Linux. - <AUTHOR>

My father-in-law is 81 and in good mental shape, but he's unwilling to learn yet another bunch of stuff that seems irrelevant to his main requirement.  All he wants to do is write letters (to be printed and posted) and write papers (which may be printed, may be emailed, but will certainly be plain text).
He doesn't want to learn about OpenOffice, and certainly doesn't want to learn about vi or emacs.
Any suggestions?
EDIT: They run KDE, and he has trouble using a mouse.  Driving entirely through the keyboard is close to an absolute requirement.  Sorry I forgot to say this earlier. <comment><USER2> Terminal-based "pico" (part of the pine distribution) is pretty simple to use.

<comment><USER3> Many distributions don't install this by default, but nano is there. I find it an acceptable pico clone.

</comment></comment><comment><USER4> Joe (Joe's Own Editor) which IMO has better on screen help than pico/nano.

Although if the app is well designed, a GUI editor should be entirely keyboard controlled as well. Hit alt-f(ile) or alt-e(dit) in whatever text editor came with the install. If that works, find out how to disable the button bar to free up that screen real estate.

</comment><comment><USER5> Is having a GUI a requirement? If not, check out Diakonos (<http://purepistos.net/diakonos/>) I haven't used it much, but the keyboard shortcuts are all "standard", and it's branded as a "Linux editor for the masses". Maybe the lack of a GUI would be helpful?

</comment><comment><USER6> I think Kate is the default in KDE, have they tried that?

</comment><comment><USER7> I'm pretty sure they sell "e-mail typewriters" for this - a typewriter that you hook up to an e-mail account, and you can see emails come in on it and you can type them back out - and that's it.

If not, it can't be hard to customize a linux distribution to do that.

EDIT: Or get a typewriter & a fax machine with your fax2email number on speed- dial.

</comment><comment><USER8> I'm generally a fan of SciTE. It runs on Linux, Mac and Window with the exact same UI; you can drive it with a keyboard alone. It is very simple to use, but it's intended as an editor for code (it has built-in syntax hiliting for a large number of languages) so it may not be _exactly_ what he is looking for unless he writes his letters in LaTeX...

</comment><comment><USER9> Mousepad or Gedit.

<comment><AUTHOR> Thanks for the swift reply - let me add that they are running KDE, not Gnome. Also, he has trouble using a mouse, always has. Ideal would be something that can be driven entirely, and obviously, from the keyboard.

I'll investigate Mousepad.

<comment><USER10> nano is simple enough, if it has to be all keyboard i guess it works fine for that.

</comment></comment></comment><comment><USER11> A while back, someone came out with a prototype driver for a mouse that used, for lack of a better word, "stabilization" to compensate for a jittery hand. I want to say it was an IBM Alphaworks project, but I'm not sure. Think of image stabilization, but applied to mouse input rather than a camera image.

If a shaky hand is limiting his ability with the mouse, while a long-shot, it might be worth looking into this. (I'll google around a bit and see if I get lucky.)

\----

EDIT:

The following apparently is only for Windows. Whether you might be able to adapt/adopt it in one way or another, I don't know.

SteadyMouse

<http://www.oatsoft.org/Software/steadymouse/>

The page mentions an IBM hardware adapter as both inspiration and as a possible alternative, albeit one that (as of 2006) is not yet available.

A comment to the page mentions this hardware adapter. Looks like it sits on the mouse's USB line and is fairly OS independent. I can understand the pricing based on the probable small size of sales and corresponding mode of manufacture. And for someone really needing it, it may be money very well spent. But it's not cheap. (On the other hand, some of use spend as much on ueber-keyboards.)

<http://www.montrosesecam.com/index.html>

Per the About page, it looks like this is the licensed offshoot/production of the IBM product:

 _In 2004 IBM secured a global licensing agreement with Montrose Secam Limited to manufacture and market the mouse adapter._

<comment><AUTHOR> Thanks for the info - but a shaky hand isn't the problem, so stabilisation won't help. It's partly a cognitive thing, and partly an alzheimer's-like problem (actually Binswager's). He's likely always to have a problem with a mouse, but I'll also have a look.

Thanks.

And thanks to everyone for the incredibly useful responses. Currently I'm looking at pico or nano.</comment></comment>


The Minnesota Starvation Experiment - <AUTHOR> https://en.wikipedia.org/wiki/Minnesota_Starvation_Experiment <comment><USER2> "The motivation of the study was twofold: first, to produce a definitive treatise on the subject of human starvation […]

The study […] used 36 _men_ […] The subjects were all white males, with ages ranging from 22 to 33 years old."

No ethics committee would allow a truly definitive study, as that would include kids and pregnant women, and female volunteers would be harder to find, but this was either "everyday sexism" or just laziness. Male volunteers in that age range were easier to find, given military conscription.

<comment><AUTHOR> No ethics board today would allow this study at all. That said, the key finding was that people recovering from starvation need very large amounts of calories but specific nutrients don't matter very much. There's no reason to expect this wouldn't be generalizable.</comment></comment>


Why Neurons Have Thousands of Synapses: a Theory of Sequence Memory in Neocortex - <AUTHOR> http://arxiv.org/abs/1511.00083 <comment><USER2> Hawkins' mantra is sequence based memory. I love this guy and his work. And although I think his company has had success with sequence based AI, it still doesn't totally answer how the brain works. His model basically works by taking encoded symbols and being able to predict the next encoded symbol. This works great for things with patterns (power consumption, traffic patterns, etc), but it doesn't work with language. You will not be able to predict what I am going to say, or predict my answer based on the question, at least not very well. The problem is that he needs to figure out meta computation. His product, nupic, would take in a string of words, which gets encoded into a semantic representation, and tries to predict what's next. But concepts are larger than a single word, and until it can build a working semantic representation of what it's currently processing, it will not prove to be a useful model in describing how the brain works, or at least being able to compare it to our brain.

<comment><USER3> _> This works great for things with patterns, but it doesn't work with language._

Sure it does.

[http://karpathy.github.io/2015/05/21/rnn- effectiveness/](http://karpathy.github.io/2015/05/21/rnn-effectiveness/)

 _> Hawkins' mantra is sequence based memory._

Note that Hawkins wrote "On intelligence" in 2005.

Schmidhuber wrote "Learning complex extended sequences using the principle of history compression" in 1992, and "Long short-term memory", with Hochreiter, in 1997.

Today, a LSTM-based RNN can answer your Gmail.

[http://people.idsia.ch/~juergen/rnn.html](http://people.idsia.ch/~juergen/rnn.html)

[http://googleresearch.blogspot.com/2015/11/computer- respond-...](http://googleresearch.blogspot.com/2015/11/computer-respond-to- this-email.html)

<comment><USER2> Sorry! To clarify that it doesn't work with language, I mean you can't ask it a question and then expect it to come up with an answer. For most meaningful questions, you can't sequence an answer from it's question in a general way. This might be in part because Hawkins isn't trying to mimic the brain, but learn about how it works to apply the algorithms it uses to our needs/wants.

<comment><AUTHOR> _you can 't ask it a question and then expect it to come up with an answer_

Why not? If the model was trained on a large enough corpus of texts, it will have seen lots of answers to your question, or similar questions. It can, in principle, extract the important features of those answers, and present them to you as an answer. This is pretty much how the majority of humans would answer "the most meaningful" questions.

<comment><USER2> Nupic showcases it's "What did the fox eat" use case which uses cortical.io's SDRs of words. In this example it "asks the question" what does the fox eat after teach it what other animals eat, and without ever seeing fox before, it's able to accurately say what it eats since it groups foxes with coyotes, etc, which have a similar SDR. However, this is a sequence... They fed it sentences only in the form "a eats b" and then fed it "fox eats", and it replied "rodent" or whatever... The SDR's have to be sequences in order for the HTM to work. So if you ask "Guess how many balls are in this jug", you have to do an implied computation to guess how many possible balls fit inside the jug, and that implied computation is not the word sequence (or sdr sequence). Even if you gave it an infinite amount of similar questions and answers like this, it would never be able to figure out a general way to answer the question, which means you could always stump it by giving a different sized jug + different sized ball.

<comment><AUTHOR> H in HTM stands for "Hierarchical". This means, that it can, in principle, construct more general, more abstract SDRs (patterns) based on many low level SDRs it sees. Thus it's plausible to see forming of ideas out of sentences, or something similar. This is how it can build a world model, and then run your input through multiple levels of abstraction, as many as needed to give a high confidence answer.

<comment><USER2> My example was also spoon feeding questions and answers to the HTM. If you were to just give it a corpus of text, and then ask it a question about that text, it would not be able to formulate an answer that has any meaning, and follow proper English grammar. If you disagree, you can respond with a working example.

<comment><AUTHOR> _If you disagree, you can respond with a working example._

I am the working example. I can read texts and answer questions. HTM is an attempt to explain how I do that. Obviously, it's an incomplete theory, but its main ideas make sense to me. You got a better theory?

<comment><USER2> I don't have a better theory, but that wasn't my point. It may be that there is a setup to read and understand language, but there has never been code presented based on this technology that does it. This is why I'm interested to see how you could set it up to make it work. If you could prove me wrong, then great! I'd love to see it.

<comment><AUTHOR> HTM is a theory. It's very incomplete at this point, because our understanding of the brain is very incomplete. Numenta published their code as they discover more and more about the brain. Once the system is complete enough to process language, the code will be able to process language.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> > It has been previously proposed that non-linear properties of dendrites > enable neurons to recognize multiple patterns. In this paper we extend this > idea by showing that a neuron with several thousand synapses arranged along > active dendrites can learn to accurately and robustly recognize hundreds of > unique patterns of cellular activity, even in the presence of large amounts > of noise and pattern variation.

I didn't RTA, and I'm clearly no expert, but what surprises me here is that a single neuron can apparently "learn" patterns. I was previously under the impression that only networks-of-neurons could learn patterns (as in artificial neural networks). Does this mean that the ANN community should rethink their mimetic approach?

<comment><USER5> Neural Network "neurons" have nothing to do with biological neurons

What it seems more likely from this paper is that one neuron == one small neural network

<comment><USER6> I haven't read the paper and IANABiophysicist, but I have read that fuzzy- logic-like non-linear functions can actually be computed at the junctions where dendrite branches come together... and there are quite a lot of those per neuron. Of course many components of a neuron behave non-linearly to some degree. So yes, quite a lot like a whole ANN.</comment></comment></comment>


Review my startup: Similarity, online dating in the age of Facebook - <AUTHOR>

Here it is:  http://www.similarity.com/
I'm trying to build an online dating site that actually makes good use of the social graph.  It uses some elements from traditional algorithmic matching systems to make a game of sorts out of setting up your friends.  Or you can just use it for yourself.
Since we're all geeks here:
* Automatically builds a profile for you out of your FB info when you arrive.
* Matching is based on Likes.  You can like and dislike more stuff.
* You get to play with the algorithm and get different results.
* You can limit match results to the friends-of-friends circle.
* You can pick a friend to match as, and see their match results - even if they aren't a Similarity user.
* You can suggest dates on your friends' walls, which posts a cute blurb about the things they have in common.
There's just one developer right now, me.  I built it in about four months using Appengine, GWT, and a half-dozen opensource projects - some of which I published myself (http://objectify-appengine.googlecode.com/, http://batchfb.googlecode.com/).  I pulled off the "coming soon" page a week ago so my friends can try it out, and now it's ready for public consumption (I hope!)
I'd love to hear your thoughts. <comment><USER2> Don't do the "friends" thing--reason: the friend zone. What would be interesting is if users could post content to a generic stream sorted by proximity, sex, and age. Users set thresholds for mutual likes before their information is made available to one or the other. The more you like another user's content the larger or more visible it becomes in the stream; the more another user likes your content the "hotter" (perhaps in color?) it becomes in the stream to you. The important thing here is to make sure there is a positive feedback loop between two users, ultimately creating content posts that are both "hot" and "large". If anyone is wondering, there are studies showing that compatible people like the same things, however obvious the notion may seem.

If you want to beat a dead horse: allow fb users to add people they like to your service whom aren't their friends using their URIs on fb. Use fb's ad api to allow users to pay for highly targeted ads to these people they like (<\--monetize this). This will also help solve your chicken and egg problem. Where two anonymous users add each other's fb URI, there is a match and both are notified (you can crush crush notifier).

Bonus points if you can combine both these concepts into one service uniformly. This would be how I would make a dating service. Btw, nice domain name.

<comment><AUTHOR> I've been planning something along the lines of your first suggestion - essentially a replacement for craigslist personals, with temporal data but sorted efficiently. I can do that pretty well with the dataset I have. The problem I see is that it has an even _worse_ chicken-and-egg problem; it requires people to post a bit of content. Right now the steps to going in the match system involve: 1) Accept FB connect and 2) Click "I'm available". If folks had to write content too, there wouldn't be anything to start.

I figure that a feature like this makes sense to add once the kernel of a critical mass exists. It can happily coexist with the traditional "search everyone's profile" feature.

Which feature are you referring to as the "friends thing"? There are two features that leverage the social graph - you can limit matches to friends-of- friends (2°, not 1° - you already know those people) and you can suggest dates for your friends (I suspect your bro's/best gf's will be the prime user of this feature).

Thanks for the feedback.

</comment></comment><comment><USER3> Background color really hurt my eyes, also it asks for too much data access. Normally I'd never authorize an app to do that but I let it slip this time to give you a feedback.

At first,to test this app I basically switched to monkey mode and started clicking on links and buttons to list some chics' profiles. Nothing happened.

Then I switched to manual mode and clicked on 'matches' tab. I only had 2 parameters in my interests list, so no result was returned.

Then I clicked on 'you' tab, started rating the things that the app threw at me, after about 15 votes or so, I started to have some results in matches section.

If I were a regular user who was using the app for the first time you'd probably lose me after the 'clicking around and not getting any chic profiles' part. So directing newcomers using visible (shiny, bouncy) tooltips is crucial.

I was getting a limited number of profiles in results, so I tried to play with sliders. I was expecting to get different profiles but instead I just got the same profiles, but fewer of them. I don't know if this is a bug or a feature, but I'd love to see different people based on the search criteria. Do you keep showing the same results until a member pays you money?

<comment><AUTHOR> Thanks, this is great feedback. I must work on the newuser process.

The chief problem is that there are only a few dozen "published" profiles in the system right now, so you're probably seeing _all_ of the candidates that match to your likes. The sliders just aren't going to be much fun until there are at least a few hundred users.

I suspect that the chicken-and-egg problem is the biggest issue with online dating startups, but it's one that (I think) will go away after a thousand or so users sign up.

</comment></comment><comment><USER4> The text on the home page is a bit difficult to read. I'd suggest a color with more contrast.

"Oh no, a Facebook app?!

        * We won't spam your wall (unless you ask)
        * Your profile starts out hidden"

<comment><AUTHOR> Fixed. I was attempting to make that text unobtrusive, but apparently succeeded a little too well. The landing page is currently the "minimum viable experience" - I will redo it soon.</comment></comment>


Good Judgement: Coronavirus Outbreak - <AUTHOR> https://www.gjopen.com/challenges/43-coronavirus-outbreak <comment><AUTHOR> If you've read _Superforecasting_ , the Good Judgement Project is a continuation of the one described in that book.

This page has various forecasts that they are working on which are related to Coronavirus.

As for why their forecasts on random stuff are believable...read Superforecasting. :-)</comment>


Forklift: a tool for working with Docker containers - <AUTHOR> http://ixa.io/2014/04/28/forklift-a-tool-for-working-with-docker-containers

<comment><USER2> Sounds cool but just a heads up, there is a mac file transfer client called ForkLift which has been around for a while at [http://www.binarynights.com/forklift/](http://www.binarynights.com/forklift/)

\- Mark</comment>


Chrome Is Scanning Files on Your Computer - <AUTHOR> https://motherboard.vice.com/en_us/article/wj7x9w/google-chrome-scans-files-on-your-windows-computer-chrome-cleanup-tool <comment><USER2> Sadly, the article doesn't say what's being uploaded to Google.

Just the file metadata of my documents folder? Just the metadata of the files that Chrome thinks might be malware?

In this climate, I'm shocked Google thinks they're above needing to fully inform their users that their web browser is inspecting user files that have nothing to do with that browser.

</comment><comment><USER3> I don't want any browser to do antivirus/malware scans.

I already believe browser vendors taking care of privacy is a huge dilemma. This should be baked into the standards.

</comment><comment><USER4> As far as I could tell as a non Chrome user, Chrome Cleanup Tool is a separate download from Chrome. Chrome may prompt to install it under some circumstances. However, what's described in the article does not appear to be a functionality that exists in normal Chrome installation.

<comment><USER5> Process "chrome.exe" opens files. I don't think that it's a separate program.

</comment></comment><comment><USER6>
        "But there's no reason to freak out about it."

Thank you vice for telling me how to think.

</comment><comment><USER7> The last thing I want on my computer is anti virus. The last feature I want in my web browser is anti virus.

What on earth?

<comment><USER8> At some point as as community need to recognize that we're grossly out of touch with how people outside our bubble use computers. Browsers are the #1 consumer attack target and have been plagued with all forms of malware since before IE6 -- malicious plugins, extensions, DLL hacks, history harvesting, apps that override settings to push adware.

It's not that surprising that browsers are trying to go on the defensive, Firefox shipped extension signing and Google is trying an active scanner.

It sucks for our bubble but that's ignoring the huge number of people with horribly infected browsers that are about to be cleaned of malware.

<comment><USER7> So because IE6 was a trainwreck and you could dump dlls over port 80 you think Chrome needs anti virus?

I don't think this is a "bubble" problem, rather a "statistical arrogance" problem. Google seems to have plenty of the latter nowadays, I wonder when someone is going to stand up to all the data people making bad decisions.

</comment></comment></comment><comment><USER9> It comes from Google, so it most certainly _is_ something to worry about.

</comment><comment><USER10> Also, I think the article is misleading:

> it [antivirus] only has normal user privileges (meaning it can't go too deep > into the system),

On a single user system all personal files are accessible with "normal user privileges".

> In other words, Chrome Cleanup Tool is less invasive than a regular "cloud" > antivirus that scans your whole computer (including its more sensitive parts > such as the kernel)

How kernel is "sensitive"? It is the same on every computer running same OS.

> Chrome Cleanup Tool is less invasive than a regular "cloud" antivirus that > ... uploads some data to the antivirus company's servers.

How do you know Chrome doesn't? Is this module open source? They write Google got it from ESET so it is possible that Google themselves never saw the source code and received it as a binary module.

</comment><comment><USER10> Do you believe that this is really an "antivirus"? Is it open source? Please remember the case with Kaspersky software that moved files from NSA contractor's PC to Russia. Now let's think what is the probability of Chrome moving your files to NSA?

<comment><USER8> Here's the thing I don't get. If you're running Chrome you're already trusting them with basically everything -- they could record every page you visit, every key you press, every ad you click on, every process running on your computer, or secretly use your webcam or microphone. If you don't believe their word carries any weight then this scanner is probably the least of your worries.

If you believe that Google would ship you malware for nefarious purposes and then sraight-faced lie about it then you probably shouldn't be using Chrome.

<comment><USER10> I use Chromium, not Chrome, but it doesn't matter. Software vendors should not be allowed to do this.

Imagine if you hired an electrician but he would secretly go across your house and searched everything to get rid of bugs (at least that's what he said). Would you like that?

If you advertise your app as a browser then it should not secretly scan files.

<comment><USER8> > If you advertise your app as a browser then it should not secretly scan > files.

Not trying to be snarky, why not? It's one of those statements that seemed obvious until I thought about it. Who even gets to decide what features something called 'X' is allowed to have?

Sure, I would personally prefer that they didn't but I honestly cant think of a reason they should be forbidden from doing so. "Our users' browsers are horribly infected due to malware/adware that's not being purged. So we're including an AV to combat that" seems like enough of a justification.

<comment><USER11> Why not? Secretly exfiltrating my data is plenty.

</comment></comment></comment></comment></comment><comment><USER12> Google.

"Quietly" trying to transform Windows (and soon other OSs?) into ChromeOS? Accessing file system (apart from just downloading & uploading would be a huge leap.

Might sound like a noob dream, but I wish there were a permission system like Android (I'm not used to iOS).

</comment><comment><USER13> Actual program they are referencing: [https://www.google.com/chrome/cleanup- tool/](https://www.google.com/chrome/cleanup-tool/)

</comment><comment><USER14> Chrome is, actually, not scanning files on my computer. Because I don't run Chrome on my computer.

This is very much a no-thanks piece of functionality. If I already have malware scanning software, the last thing I want other apps doing is _also_ scanning my entire file system. I'm mostly on SSDs now which significantly reduces the performance hit, but still.

I would also note this is a serious concern with the whole trend for auto- updating "evergreen" software. Without you even knowing, your browser software may decide to load up a different company's antivirus engine without even giving you so much as a heads up about it. You have to be aware of what companies you grant this type of access to, because once they have it, they essentially have complete control of your computer.

<comment><USER15> > Because I don't run Chrome on my computer.

That's what you think.

<comment><USER16> Explain why you say this. What if chrome is not installed?

<comment><USER17> Slack? It's supposed to be Chromium but still..

<comment><USER16> why mention slack? didn't see anything in either the article or the comment about slack. Article says this is specific to chrome windows.

Google does way too much tracking as it is, but this is about a supposed AV scan not link tracking, so I'd like to understand the comment.

<comment><USER14> Slack's desktop apps use Electron (the GitHub Desktop and Discord apps do as well, for further examples), which is built on Chromium.</comment></comment></comment></comment></comment></comment>


EA Artist, Soon To Be Laid Off, Burns EA Management, Discusses Failed MMO - <AUTHOR> http://www.gamerevolution.com/manifesto/ea-artist-soon-to-be-laid-off-burns-ea-management-1903 Link to blog: http://ealouse.wordpress.com/ <comment><USER2> I worked on Warhammer Online for nearly two years before it left the offices of Climax Entertainment in Nottingham, England. When I arrived the game was already a couple of years in development, but the focus was on the technology not the game. We had no game, just a test area running on a local server.

There was a design department consisting of 10 people, 4 working on environment and level design, 6 working on quests, the magic system, and general game mechanics. There were 10 artists, 4 animators, and 13 programmers.

You'd think we would get somewhere with such a large team, but we didn't other than developing the underlying tech. The main reason the game design didn't progress was a second design team led by Paul Barnett was sitting in the office above us coming up with another vision for WHO without any interaction between the 2 departments other than meeting with the lead designer occasionally.

When the news came of Climax stopping development of the game it was not surprising to most people working on the title. You could see it coming for months before it happened. It looks as though that continued at Mythic although they did at least manage to ship.

I left a few months before the announcement was made and ended up having two exit interviews. The first was a standard set of questions given by the studio's human resources deaprtment. The second was with a representative of Games Workshop looking for answers as to why development was not progressing as they had hoped. They were in the dark about what was happening with their IP and wanted answers.

<comment><USER3> A little outside perspective: This is exactly the way it goes with a huge percentage of IT-related projects, in many serious industries. The "Enterprise" is screwed.

<comment><USER4> Sometimes it feels this is so because we have a lot less number of ruins when it comes to IT related projects. Stop construction of a building you have a gigantic half constructed bloat of concrete and bricks. Nothing can be reused (except for the land). Stop construction of a program and you will have some files which can be deleted, all the machines are general purpose and all this can be reused.

<comment><USER5> I think it is partially because nobody has figured out how to reliably estimate project costs and timetables for software. If houses routinely came with estimates like "We think this house will cost between $200k and $2.6 million to build, and it could be done in between 6 months and 10 years, and at the end it may or may not have a bathroom", every general contractor in the country would be in the unemployment line.

"Oh, the wizards burned through another $300,000 last month. Well, who knows what those wizards do. Tell them to get the payroll system ready by next month, OK?"

<comment><USER6> I think the problem is more fundamental than that. The requirements for a house are pretty much static. The requirements for an application are often in constant flux.

<comment><USER7> I think the requirements for the house change a lot more than you think. There's definitely a push/pull with the client in civil engineering as well. And for contractors, oh boy, do they deal with clients changing things on them constantly.

I don't have much faith in most Enterprisey teams to ship good software even if they have a thorough concrete spec. We love to blame changing / incomplete specs, but I'd imagine that most dysfunctional teams would manage to bone up a perfect spec anyway.

<comment><USER8> The largest problem is that the people telling you what they want are not good enough to through every possible path the user may want to go down. This leads to specs that are ambiguous at best, contradictory at worst. It takes a good developer to see the hidden things in the spec and raise the questions that need to be asked before the development goes too far down a bad path.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> "I'm sick of seeing EA outsource"

My country is poor and lots of developers work in outsourcing firms from the first world. The funny thing is that a friend of mine does class assignments for kids in American universities, perpetuating the cycle of outsourcing need.

<comment><USER10> This comment needs to be stickied, printed, whatever so that people can ALWAYS see it. This one bit of insight is key to what's happening with American technical talent and managers.

I see MBA students who would happily outsource their work and have no moral qualms about it. They will turn around and work for companies where they will outsource work because they are only thing about 1 thing - cost.

My wife's company is in the process of outsourcing their financial work. Utter failure. I can't even describe what a fucked up process it is with internal financial work being done in 2-3 developing countries. But why outsource it? So managers can cut costs enough to get their quarterly bonuses.

<comment><USER11> > My wife's company is in the process of outsourcing their financial work. > Utter failure. I can't even describe what a fucked up process it is with > internal financial work being done in 2-3 developing countries. But why > outsource it? So managers can cut costs enough to get their quarterly > bonuses.

Replace "outsource" with "computerize" and you have a common complaint from 15 years ago, made by people ignorant to the possibilities of computers.

Outsourcing is not a silver bullet, and it's not easy. Does that mean that outsourcing is always a bad idea, and only ever decided by stupid managers? Of course not. Just like the fact that many software projects are failures doesn't make software a bad idea.

</comment></comment></comment><comment><USER12> "So we shut up and did what we were told, by people too afraid to tackle real problems. It is a culture of fear [...]"

In my experience, this is passing the buck. Culture is not something dictated by management. Culture is something that every person in an organization takes part in. Anyone can change it any time they like. It just takes a little brass. Shutting up and doing what you're told is not good enough. I've seen it happen in most of the failed startups I've worked for (3-4). When people relinquish responsibility for the well-being of the company and the culture, everyone is the worse for it. It often takes hard work to have your voice heard.

I'm going through this now with a company I just joined that has kludged their codebase into a massive steaming pile of untestable horse shit. There's tons of bugs and development moves crazy slow. The tech lead/architect hasn't really done any architecture beside accepting product's piecemeal direction and submitting to design by accretion. I don't plan to accept things as they are and just keep my head down. I plan to make a difference.

Most people are more afraid of what they might become than what they might fail to become. Never back down.

<comment><USER13> This might work at a startup or a small company, but at a large company like EA, it is nearly impossible for a single individual to change the culture. EA has been a staple of bad management in the game industry for years, but it apparently did not impact their bottom line. Why would they change? I am all for not backing down, but you've got to pick your battles carefully.

</comment></comment><comment><USER14> Interesting article. I'm not certain I understand the complaint about the non- existent marketing campaign. According to the author, they sold a million boxes, but lost two thirds of the subscribers in the first month, and kept losing them thereafter. It sounds like they got the bums on the seats, people just hated the show.

I could understand faulting Evans for not pushing back and saying "We can't release this, it it's not ready" But it's hard to see how inducing more people to experience a lousy product would have helped, given that the business case presumably lives or dies on recurring revenue.

<comment><USER15> Given some of the hype they come out with about the game and the IP it was a given they were going to get a heap of people to give it a shot, same with Age of Conan, it sold a heap of copies initially.

Once you lose the player base it's a real uphill battle to retain them, if Age of Conan released in it's current state it would be a different story for them, would have kept a lot more people initially.

<comment><USER16> It would have been almost impossible for them to release Age of Conan in it's current form. The current form was fashioned after massive amounts of customer feedback. Developing a MMO in the dark for 6 years isn't going to make it better than a released game that takes a couple years to mature. The issue is that you can't charge 60 bucks for a half finished game and 15 bucks a month after that. You also have to contend with impossible gamer's expectations considering they've been expecting WoW2.0 and nothing else will do.

MMOs are a killer market. That's probably why it cost Bioware 300 million to get their MMO out.

<comment><USER15> It's true, but you can't really sell a game on the premise it will be eventually good, so yeah they are a killer market, well at least since WOW redefined what you had to do to have a successful MMO.

<comment><USER17> You can, it's just really hard.

This is basically what Minecraft is doing - the game is entertaining now, but it's also got INSANE potential. So it's absolutely worth plopping $13 down on. Notch made $3 million or whatever (enough to fund game development) on the alpha sales. Of course, he may have trouble making money post-release if he can't charge the people who bought Alpha for the full version and if most of his potential audience buy Alpha or Beta.

Torchlight had the right idea, I think - create a fun initial product, and use the income from that to fund your more expensive V 2.0 that has a subscription model.

</comment></comment></comment></comment></comment><comment><USER18> See APB (All Points Bulletin) for an even bigger recent MMO game fiasco. In development for 5+ years, cost over $50 million to make, closed 2 months after launch.

Over 250 people were laid off, including those working on a different game.

<comment><USER19> There were some similarities in the situations from what EA Louse is saying to what I experienced. I'll be interested in seeing the Old Republic launch product because of that.

In respect to the RTW failure, senior dev Luke has a series of articles which explain it much more eloquently (and kindly) than I ever could.

[http://lukehalliwell.wordpress.com/2010/09/15/where- realtime...](http://lukehalliwell.wordpress.com/2010/09/15/where-realtime- worlds-went-wrong/)

<comment><USER18> RTW claimed to be of top pedigree, yet spent a long time and a lot of money to make a horrible game. Led by pretenders, I'd say.

<comment><USER20> Led by some of the same people featured in this documentary.

[http://video.google.com/videoplay?docid=-1012096952890708986...](http://video.google.com/videoplay?docid=-1012096952890708986#)

</comment></comment></comment></comment><comment><AUTHOR> <http://ealouse.wordpress.com/>

<comment><USER21> There's some interesting comments on that(as well as the inevitable trolls)..

<comment><USER22> Yeah really, I was kinda hoping to read through some relevant posts, but it's just been taken over by a bunch of tards concentrating on his SWTOR comments.

<comment><USER23> This one made my day: _"Panic set in, and it suddenly had to be WOW 2.0"_

<comment><USER7> There should be a fundamental game industry mantra in there: "Don't try to beat Blizzard at their own game. You will lose."

Caveat: Unless you think you can sneak out a Diablo game before Diablo 3 comes out. (Nice one, Torchlight)

<comment><USER24> Jeff Strain formulated it like this: "the team that is best poised to deliver a successful game that is an evolution of WoW is... well, the WoW team".

[http://www.guildwars.com/events/tradeshows/gc2007/gcspeech.p...](http://www.guildwars.com/events/tradeshows/gc2007/gcspeech.php)

It will be interesting to see how much of his own advice he managed to follow.

</comment></comment></comment></comment></comment></comment><comment><USER25> As someone who literally has two Warhammer tattoos on his forearms, I was so let down by WHO. I was one of those launch purchases, and I wanted to game to be good so dearly... but it just wasn't.

It's unfortunate when developers are forced to release something that they feel isn't ready.

<comment><USER16> I had the same reaction with Star Trek Online. I'm a long time trekk{er,ie} and I just couldn't stick with the game. I could deal with the bugs but the game was a skeleton, less content then an average game.

</comment></comment><comment><USER26> It's interesting to read about the internal workings of EA, but the reason WAR failed was because it was an awful game.

Poorly built, buggy, and not fun, unless waiting for an hour next to the mail box to get your mail is your definition of fun. The in-game bug report tool, which we were urged as beta testers to use to write bug reports along with steps to reproduce was limited to <256 characters! When I reported that as a bug, I was told it wasn't a bug.

But, I think it is wrong to put all the blame for the outcome on EA's execution. I think an additional problem is that Warhammer really wasn't that great an IP. Warhammer is a very dark place and an ugly place. I don't think that is what most people want in a fantasy world. That doesn't mean there wasn't a niche for Warhammer, but it's a smaller niche, and if you also alienate people with poor execution, maybe too small a niche for an MMO to be successful.

</comment><comment><USER27> Video games. Long hours. But excellent drama.

</comment><comment><USER28> I have no inside knowledge of EA but from reading this and the EA Spouse letter in the past, I'm amazed EA can actually deliver any software.

<comment><USER29> I grew up in Vancouver, Canada - home of EA's largest office, and knew many people who worked for them.

They deliver code because the number of glory-seekers is basically infinite. They can _afford_ to burn people out and abuse them to no end because there are a hojillion more lined up outside the door, just _begging_ for someone to get burned out and leave so they can get in. I also knew some testers, and heard about the horrific hours that they voluntarily put themselves through on the vague promises by management that exemplary performance in testing could be a path to development. This rarely actually happened, but it happened enough that the testers would basically pummel themselves with work for that off chance.

At this point I'm unconvinced that the majority of CS grads will realize what a shithole the games industry is in terms of sane employment. It seems to take some first-hand experience (I've also known people who interned with EA and then ran away screaming) for people to realize that making games is a completely different beast than playing them.

<comment><USER30> The games industry is _exactly_ like the TV or movie industry. Entry level jobs really, really suck. But if you can stick around long enough to become established (read: ship a successful title) then you can write your own check. Experienced game developers never lack for good offers. Heck, most of the people I've seen fired for incompetence were able to find new jobs within a few weeks if they'd shipped before.

<comment><USER31> There's still a lot of burnout, though, because it's very hard to get into a position with significant creative control, even once you get established. You can get a _job_ , but not the job the aspiring designers _want_. Among well- regarded developers I can think of off the top of my head, Borut Pfeiffer, Chris Hecker, Damian Isla, and Chaim Gingold have all left the AAA-title part of the industry in the past year or two, either to try their hand at indie development, or start a consulting firm.

</comment></comment></comment></comment><comment><USER32> What ultima is being created? I recently have been dreaming of ultima online being created for the browser.. Seems like it could be possible now, no?

<comment><USER33> A civony/evony clone* with Ultima branding was released in the last year - maybe that? Don't get too excited, the game had no RPG gameplay that I could see; it looked like a city/kingdom sim.

* is Evony a clone of some other web game? I'm not familiar with the genre.

<comment><USER34> Evony is maybe a clone of Tribal Wars, which is maybe a clone of something else...

Evony also ripped a lot of art out of the first half of the Age of Empires series. I don't know how they haven't been sued.

<comment><USER35> Travian's been around a while.

And I believe the Ultima game is Lord of Ultima [.com]? Played it for a bit, was an ok timesink but eventually I grew out of it since I mostly used it as a Sim City type game.

</comment></comment></comment></comment><comment><USER36> Lets see.

1 job I had, the company could not realize that monitors are important for developers.

The next job all managers from every department pointed fingers at other managers until the entire company went bankrupt. They had the best product on the market and the only reason why it would not sell insanely would have to be due to the sales team. They instead did not dogfood and paid a heavy price, when they tried to dogfood they realized too late that everyone is incompetent.

And now I have a very high-up manager shooting himself in the foot with a shotgun.

</comment><comment><USER37> This might be a partial explanation of why EA's takeover of Mythic never resulted in a shaping-up of the jaw-droppingly bad programming DAoC still suffers from, 9 years after its launch.</comment>