OpenGL Is Broken - <AUTHOR> http://www.joshbarczak.com/blog/?p=154 <comment><USER2> Quite a few of these issues (especially in the "Too many ways to do the same thing" category) relate to OpenGL's age as an API, which is something Direct3D's design was able to learn from and improve upon. OpenGL's origin was as a vector-based drawing tool for CAD applications which was repurposed to games; D3D was targeted for performant rendering with games as a specific target. This is demonstrated by some key features necessary for performant games (clock synchronization to avoid 'tearing' comes immediately to mind) that are core to the D3D spec and extensions to the OpenGL spec. There's also a bit of a cultural issue; if you learn OpenGL from the 'red book,' you'll learn the function-per-primitive API first, which is precisely the _wrong_ tool for the job in making a performant game. Really, the OpenGL API is almost multiple APIs these days; if you're using one flow of how to render your primitives, the other flow is downright toxic to your rendering engine (in that it's going to muck about with your GL state in ways that you shouldn't burn mental energy predicting).

Some of this is ameliorated by the OpenGL ES standard, which throws away a big chunk of the redundancy. But I'm not yet convinced that OpenGL has gotten away from its philosophical roots as a performance-secondary CAD API, which continues to dog its efforts to grow to serve game development needs. The fact that it's functionally the only choice for 3D rendering on non-Windows platforms is more testament to the nature of the hardware-software ecosystem of graphics accelerators (and the creative doggedness of game developers) than the merits of the language.

<comment><USER3> I dabbled with the Red Book aeons ago, but never got very far with 3D programming. What would you suggest for learning OpenGL? Or is there some other tool you'd recommend learning?

<comment><USER4> This is the list I typically see given to newbies (on freenode ##OpenGL, and /r/opengl) wanting to learn modern OpenGL.

1\. Arcsynthesis's gltut ([http://www.arcsynthesis.org/gltut/](http://www.arcsynthesis.org/gltut/)) is good and reasonably thorough. He explains things well but not always in the order you'd like him to. At the end you will probably know enough to be able to figure out the rest on your own as you need.

2\. [http://open.gl/](http://open.gl/) is good but somewhat short. It also goes in depth into creating/initializing a context with various APIS (SDL, SFML, GLFW, ...). More of a good starting point than a complete guide.

3\. [http://ogldev.atspace.co.uk/](http://ogldev.atspace.co.uk/) has a lot of good tutorials on how to do more advanced techniques, as well as many beginner level tutorials. I've never gone through them so I can't speak to their quality, but I've heard good things.

4\. [http://www.lighthouse3d.com/tutorials/glsl-core- tutorial/](http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/) is also good, but focused on the shading language.

See /r/opengl and freenode's ##OpenGL channel for more. Both those places are fairly newbie friendly (/r/opengl moreso than ##OpenGL, but as long as you actually know your language of choice they're nice), so feel free to ask questions.

</comment></comment></comment><comment><USER5> I think what's broken is not OpenGL, D3D, etc

What's broken is that the abstraction between graphics card and data (on the screen) is too big

We don't have troublesome/fat drivers as these since the "Softmodem" days and even then (Wifi is also complicated)

It's too big of a gap.

In 2D graphics, you send graphical data and it is displayed. You may even write it directly to memory after some setup.

Audio, same thing. Network, it's bytes to the wire. Disk drive, "write these bytes to sector X" (yes, it's more complicated then that, still)

With 3D, we have two APIs that have an awful amount of work to do between the getting the data and displaying it.

I'll profess my ignorance in the low-level aspects, I only know "GlTriangle" , OpenGL 101 kind of stuff, and I have no idea how: 1 - this is sent to the videocard, 2 - how does it decide to turn that into what we see on the screen.

Compared to the other drivers this is a lot of work and a lot of possibilities of getting this wrong.

Adding GPGPU stuff makes it easier in one aspect and more complicated in other aspects. We don't have a generic way of producing equal results from equal inputs (not even the same programming environment is available)

We don't have OpenGL, we have "this OpenGL works on nVidia, this other one works on ATI, this one works on iOS, or sometimes it doesn't work anywhere even though it might be officially allowed"

<comment><USER6> To my understanding, the critical difference between framebuffer graphics and 3D API graphics is the processing! In a framebuffer scenario, the CPU does all the rendering. Since CPU is poorly suited to rendering 3D, we have a coprocessor called a GPU. The CPU has to feed the GPU work.

Because the GPU is cutting-edge, there is a certain amount of magic voodoo required for top performance that needs to get abstracted away- maybe this _particular_ model of GPU you have doesn't support some common instruction. You don't want to handle that in your software, you want to hide that in the driver.

Beyond that, the API is also there to make the GPU easier to use. OpenGL is a mess, sure, but to my understanding most developers would pull their hair out and give up if they had to program the GPU directly.

<comment><USER7> Isn't the GPU just a computer that happens to support more parallelism than the CPU? Why not have a simpler API based on general-purpose operations like map/reduce/scatter/gather? Then there would be no need to add new "cutting edge" operations every year. I for one would be happy to use that instead of OpenGL or DX.

<comment><USER8> > Isn't the GPU just a computer that happens to support more parallelism than > the CPU?

Not really. It's like quantum mechanics compared to classical physics.

For instance, "branches" don't work like you'd expect. On a cpu you execute one branch or the other. On a GPU, you get things like both branches execute, but then it just throws away the half that shouldn't have run, but that means you're bottlenecked by whichever branch takes the longest (Or something like that -- the details escape me but I do remember something about CUDA's branching doing weird things). Point being, GPU's are weird. It's nothing like programming a CPU at all.

<comment><USER9> > On a GPU, you get things like both branches execute, but then it just throws > away the half that shouldn't have run

It's not that weird. You don't really have thousands of parallell processors, but a single processor, operating on thousands of values. (Like SIMD on steroids.)

Since all operations must be done identically on all values, a "branch" is really doing both branches and recombining them with a mask of equally many booleans - as you say "throwing away" the unwanted branch.

</comment></comment></comment></comment></comment><comment><USER10> Well-reasoned response: [http://timothylottes.blogspot.com/2014/05/re-joshua- barczaks...](http://timothylottes.blogspot.com/2014/05/re-joshua-barczaks- opengl-is-broken.html)

<comment><USER11> I nod my head in agreement with most of these OpenGL are broken articles. I've work on the OpenGL version of Call of Duty, Civilization, and more for the Mac. I think Timothy misses the real point on driver quality.

[https://medium.com/@michael_marks/opengl-for-real-world- game...](https://medium.com/@michael_marks/opengl-for-real-world- games-7d0f4d35891c)

</comment></comment><comment><USER12> The "compiler in the driver" part of this post sounds awfully like the "asm.js vs. NaCl" debate.

Sure, building an IR from scratch is fun. But making it truly cross-platform and ready for many usages is really hard. Also, the GLSL source _is_ an IR between the programmer's intent and the driver's behaviour. Code is just another type of binary. It is just slightly harder to parse, but not by much; without performance comparisons, a complaint about how hard it is to parse code is invalid.

Feeding the driver GLSL can also yield much clearer error messages for programmers. I can only imagine what kinds of error messages the IR compiler would produce. Sure, hopefully, our cross-platform IR would be accepted by all GPUs without pain, but that's improbable.

Regardless, starting from a clean slate is much harder than working our way from the current state to an improved OpenGL. Just like few browsers are on board with NaCl, few GPU makers would be on board with a brand new design.

<comment><USER13> > Sure, building an IR from scratch is fun. But making it truly cross-platform > and ready for many usages is really hard.

It's not that hard, as long it remains as close as possible to the source language (ie. GLSL). Iow, as the OP is advocating for, an AST of the shaders. This removes the cost of parsing the source code (but requires on the other hand to validate the AST, so this isn't exactly a complete gain, but definitely an progress compilation wise). However, I suppose that what motivated the choice of using GLSL source directly is the simplicity of the approach: no need to build the GLSL scripts separately. When working with interactive tools, it's a non negligible comfort, imho. Another interesting aspect is the ability to build the scripts dynamically, like people do with SQL. I wonder if this approach is used by professional game studios.

</comment></comment><comment><USER14> This post is factually wrong, and misguided. Here's why:

#Preamble: Except on Windows you cannot run Direct3D anywhere else. Unless you plan not to publish on Android, iOS, OSX, Linux, Steambox, PS4 etc. you will have to target OpenGL, no matter how much you dislike it.

#1: Yes the lowest common denominator issue is annoying. However, in some cases you can make use of varying features by implementing different renderpaths, and in other cases it doesn't matter much. But factually wrong is that there would be something like a "restricted subset of GL4". Such a thing does not exist. You either have GL4 core with all its features, or you don't. Perhaps author means that GL4 isn't available everywhere, and they have to fall back to GL3?

#2: Yes driver quality for OpenGL is bad. It is getting better though, and I'd suggest rather than complaining about OpenGL, how about you complain about Microsoft, Dell, HP, Nvidia, AMD etc.?

#compiler in the driver: Factually this conclusion is completely backwards. First of all the syntactic compile overhead isn't what makes compilation slow necessairly. GCC can compile dozens of megabytes of C source code in a very short time (<10ms). Drivers may not implement their lexers etc. quite well, but that's not the failing of the specification. Secondly, Direct3D is also moving away from its intermediary bytecode compile target, and is favoring delivery of HLSL source code more.

#Threading: As author mentions himself, DX11 didn't manage to solve this issue. In fact, the issue isn't with OpenGL at all. It's in the nature of GPUs and how drivers talk to them. Again author seems to be railing against the wrong machine.

#Sampler state: Again factually wrong information. This extension [http://www.opengl.org/registry/specs/ARB/sampler_objects.txt](http://www.opengl.org/registry/specs/ARB/sampler_objects.txt) allows to decouple texture state from sampler state. This has been elevated to core functionality in GL4. The unit issue has not been resolved however, but nvidia did propose a DSA extension, which so far wasn't taken up by any other vendor. Suffice to say, most hardware does not support DSA, and underneath, it's all texture units, even in Direct3D, so railing against texture units is a complete red herring.

#Many ways to do the same thing: Again many factual errors. Most of the "many ways" that author is railing against are legacy functions, that are not available in core profile. It's considered extremely bad taste to run a compatibility (to earlier versions) profile and mix&mash various strata of APIs together. That'd be a bit like using Direct3D 8 and 11 functionality in the same program. Author seems to basically fail in setting up his GL context cleanly, or doesn't even know what "core profile" means.

#Remainder: Lots of handwaving about various vaguely defined things and objecting to condjmp in the driver, again, author seems to be railing against the wrong machine.

Conclusion: Around 90% of the article is garbage. But sure, OpenGL isn't perfect, and it's got its warts, like everything, and it should be improved. But how about you get the facts right next time?

<comment><USER15> > how about you complain about Microsoft, Dell, HP, Nvidia, AMD etc.?

These companies are businesses that need a business reason to support your platform. Until more people are playing triple A games on platforms that use OpenGL you can't really fault them for spending money when it doesn't make sense. Apple designs its own chips for its mobile device so I'd think the OpenGL on iOS would have better driver support.

<comment><USER14> OpenGL is the only thing you get on iOS. There is no Direct3D on iOS. Likewise, it's the only thing you get on PS4, Steambox, OSX etc.

But that's not my issue, I acknowledge freely that OpenGL drivers are bad. I just don't quite see how that's a failing of OpenGL, rather than the vendors who actually implement the drivers.

<comment><USER16> PS4 doesn't use OpenGL. No game console I'm aware of has ever used OpenGL. (The PS3 is the closest example, since it used to let you run Linux, so you could run Mesa - but the GPU wasn't accessible to you.) I don't know why people keep claiming that a given console runs OpenGL.

<comment><USER17> PS4 doesn't use 'OpenGL', just a low level api and a higher level api that has features suspiciously close to OpenGL 4.3...

Also uses Clang and a bunch of Unixy open source stuff...

<comment><USER16> Sure, but in practice this is not 'OpenGL' enough to count when talking about OpenGL making ports trivial. (I say this as someone who recently shipped a game w/a OpenGL renderer that has a PS4 port in the works - there are a surprising number of differences!)

The core OpenGL feature set and API factoring are almost certainly things you can expect to be similar on console platforms, at least where the hardware matches. So in that sense 'It's OpenGL' is almost true!

</comment></comment></comment></comment></comment></comment><comment><USER18> OpenGL might be broken, but Direct3D and DirectX are _not_ the solution. Otherwise, you might as well just correct yourself and say "Windows gaming" _not_ "PC gaming". And clinging to a different single vendor's proprietary standard doesn't seem like a good idea either.

<comment> Tuna-Fish Maybe that's why his blog post was full of links to Mantle.

</comment></comment><comment><USER19> Reason #2 is chicken and egg.

I'm not excusing OpenGL for this fact, I'm just stating that if people cared about the quality of OpenGL drivers and made purchasing decisions based on that, then you bet your ass the manufacturers would make the OpenGL drivers better.

</comment><comment><USER20> I've written an in-house visualization program in OpenGL that runs on Mac and Windows. These articles just make me laugh, especially the bit where they talk about cross platform being a myth, then follow on with the virtues of DirectX.

<comment><USER21> The article specifies OpenGL being deficient for high-performance gaming, not so much for other graphics computing tasks.

</comment></comment><comment><USER17> So the solution he proposes at the end is to use Mantle? AMD has already proven themselves incompetent (or are they only unwilling?) at implementing OpenGL, unable to compete with either Intel or Nvidia, and now they want to fragment graphics APIs? And this is the 'solution'?

As for OpenGL's issues - that's what happens when a spec gets old enough. But the fact remains, it's the only graphics API that could be called 'universal', they have modernized the spec, and despite all its failings, somehow it still delivers better performance than DirectX...

</comment><comment><USER22> And it will never be properly fixed due to backwards-compatibility requirements - just hack-patched. Just like web (HTML/CSS/JS).

</comment><comment><USER23> I don't know anything about graphics programming, but I couldn't make any sense of this:

> While the current GL spec is at feature parity with DX11 (even slightly > ahead), the lowest common denominator implementation is not, and this is the > thing that I as a developer care about.

Isn't DX restricted to Windows, meaning its lowest common denominator implementation is nothing at all?

<comment><USER24> What I believe he means is that if you have an OpenGL driver that implements the ENTIRE specification (correctly and in a performant manor) then you have basically all the features of a modern DirectX 11 card available.

The problem is that many OpenGL drivers implement the base OpenGL specs and then a couple of extensions here and there. Because of this you can't rely on what's available and you end up with something that's more akin to a mix of many previous versions of DirectX: some advanced capabilities but many basic ones missing.

</comment></comment><comment><USER25> I think the difficult thing about OpenGL is it is hard to learn. The core profile of the latest version might be nice, but in practice there are still a wide range of OpenGL versions in use, so you have to learn the various ways of doing things through the OpenGL versions, or code against a crufty old version which is the lowest common denominator. Then there are various driver issues, platform-specifics around context creation, and so on. Overall it's a pretty tough chestnut if you're not going to use it directly instead of relying on an engine/framework that has figured out lots of that already.

Mobile on the other hand seems decent - OpenGL ES 2+ seems to be a well- designed clean and relatively minimal API with widespread support.

</comment><comment><USER26> With the traction of iOS Ecosystem. I think Apple could have created its own API, or even just reuse Mantle or use it as a base for a new API. This certainly wasn't possible when Mac was the minority. But now even if Apple gets only 10% of the Phone market there is still a huge userbase.

No longer bounded by OpenGL.

</comment><comment><USER27> Your site is broken. [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.joshbarczak.com/blog/?p=154)

</comment><comment><USER28> What is the current stance of Nvidia and Intel on implementing Mantle support? And what are the chances of mobile GPU makers doing the same? Is it easier to make a better OpenGL 5, or to adopt Mantle across all GPU manufacturers?

<comment><USER29> Even if it is technically quite feasible, I would be seriously surprised if Nvidia and Intel implement Mantle if only for political reasons. However, they definitely will implement DX12 --which as far as I can tell is pretty much the same thing as Mantle except explicitly multi-vendor. If Mantle was a tap on OGL's door, DX12 is a full-on wake-up call.

Back when I worked in Windows/console games, my market demanded D3D (+ sony/nintendo's wacky custom APIs). Now I work in mobile and my customers demand GLES. GL advocates used to cry "GL has the better tech! D3D only wins because of politics! Boo!" It will be quite a turn if they switch tunes to "D3D has better tech, but GL still wins because of politics! Yay!"

DX12 API Preview vid [http://channel9.msdn.com/Events/Build/2014/3-564](http://channel9.msdn.com/Events/Build/2014/3-564)

DX12 API Preview slides [http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%...](http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fsessions%2fbuild%2f2014%2f3-564.pptx)

<comment><USER28> DX12 is not the way forward because it remeains MS only and there is no indication that MS is interested in opening it up. The way forward is either creating a new open API which all manufacturers would support (Mantle, or whatever), or seriously improving OpenGL if it's possible.

</comment></comment></comment><comment><USER30> > The GL model, placing the compiler in the driver, is WRONG

How does he figure OpenGL mandates this? OpenGL allows a (caching) GLSL compiler to be part of the OS OpenGL support, leaving drivers to consume bytecode or some other kind of IR.

</comment><comment><USER31> You're webserver is broken. Anyone have a cached link?

<comment><USER32> [https://webcache.googleusercontent.com/search?q=cache:http%3...](https://webcache.googleusercontent.com/search?q=cache:http%3A%2F%2Fwww.joshbarczak.com%2Fblog%2F%3Fp%3D154)

!cache in DDG will get that for you in future.

</comment></comment><comment><USER33> I can't agree 100% with everything in the article but the part about GLSL is spot on.

</comment><comment><USER34> As is your server.

</comment><comment><USER35> OpenGL works fine for me, so it must be user/programmer error.

<comment><USER2> I'm not sure if you're being sarcastic. On the chance that you're not, you may very well be working in a space where you haven't had to either port your OpenGL-utilizing app to another hardware platform with an OpenGL API, or you haven't needed the "deeper magic" parts of OpenGL that become necessary when you get close to the limits of hardware capabilities.

Which means I envy you, in short. ;)

<comment><USER35> Is that why I was downvoted?

Seems petty.

</comment></comment></comment><comment><USER36> theory: articles of the form: "X is broken", "X is wrong", or some other equally dramatic statement, say almost exactly the same thing; nothing.

<comment><USER37> While I hate link baiting as much as the next guy, I find myself agreeing with most of the things he says about OpenGL.</comment></comment>


How to Run Great Product Team Meetings - <AUTHOR> https://andyjohns.co/why-standups-are-useless-and-how-to-run-great-product-team-meetings/ <comment><USER2> Here's why they aren't "useless":

They force people to think about what they're doing, talk about any problems they're having (so the group can help), and keep everyone apprised of what else is going on.

It's literally what the 3 questions are for, and it does it admirably. In a previous company, we followed the "Agile" rules for "standups" very strictly, and it worked for us.

And here's why a truly "agile" (not "Agile") version of standups is great: Our company uses it to socialize as well. We get the business part of the "standup" (we don't stand) out of the way and then spend some time socializing for a while.

We were already doing this for a couple years, but now that one of our team is 100% remote from across the country, it's our best chance to socialize with them and keep the team close-knit.

And it's working.

<comment><USER3> Pretty much every Agile practice is a victim of Semantic Diffusion.

The Daily Stand-up isn't a status update.

It's purpose is to be a micro re-planning session.

The team has a sprint goal agreed by the Product Owner and them at the start of the sprint and they're supposed to achieve it by the end of the sprint.

The daily stand-up following the 3-question pattern is to validate what they have done yesterday towards the sprint goal, what they are doing today towards the sprint goal, any impediments that are impacting them and most importantly "are we still going to meet the sprint goal?". If the answer to the "are we still going to meet the sprint goal" is "no" then the team re-plans and may need to bring in the Product Owner to confirm the Sprint Goal can still be satisfied with any suggested changes.

If your team's daily stand-up doesn't reflect that then you're not doing a daily stand-up as it is supposed to be done and of course in that case YMMV. Yours may even be better or more appropriate for your team but it kind of ceases to be "the daily stand-up" and comparable to others.

<comment><USER4> Agreed. As the original article said, stand-ups are useful in a run-up to a release. If you're releasing every week or two, a release should never be far out.

</comment></comment></comment><comment><USER5> Oh here is our weekly "stand ups are useless" on the front page of Hacker News.

Every team has to figure this out. I understand that people don't like them, I'm sure they have valid points. In my team this works great.

There is this trend of thinking "it gets in the way of people actually doing something productive" [sic]. I find it very reductive. How do you define productivity first of all ? Is work only about producing value ? How do you evaluate it ? Especially, as a reminder, in a field where estimating the complexity of a task is extremely difficult.

Work is sometimes a bit more than being in the zone from 9 to 8.

</comment><comment><USER6> I would argue what the author is commenting on is a problem of poor implementation. The author admits people describing what the person did over the weekend.

There is no place for that or discussion in Standup. Each person should take no more than 30 seconds except on the rare blockers. Ideally for a team of 6-8 we're speaking 3-4 minutes.

Yesterday? Today? Blocking?

We require every member to have their item list pulled up already and ready to talk without hemming or hawing.

I could easily agree that Yesterday/Today could be removed. As a team lead, it's a very nice way of getting a daily rundown in a structured, fast way. Also, if something shows up too often, it's a sign it's time to dive in, but, again, if there's too much resistance, it goes.

Blockers are a must. What's blocking you? X. Once you've said X, many times it's immediately known who can help. If the PM cannot immediately prescribe helpers, the standup slows to hear what the gist of the problem is and volunteers/leads are asked for to step up to carve out time at 2... 3... after lunch, whenever - the key is an agreed upon time to tackle the issue.

In the end, I think I'm saying the same thing as the author, but I don't think it's necessary to speak so poorly about Standup.

Unblocking is everything.

</comment><comment><USER7> Clickbait article that make a huge load of completely unfounded, sweeping assertions.

"The practical reality is that you only care about what another team member worked on yesterday if it enables you to do your job (i.e. it unblocks you). Anything shared that does not explicitly unblock you is meaningless noise."

Except when it helps you avoid merge conflicts when the other team member announces they're going to refactor a component that you've just started implementing a new feature in. Or when it gives you a cue to add an important insight into their task.

The truth is, Standup meetings are very often badly run, people go into way too much detail about their tasks and start in-depth discussions that should be done one-on-one, and neglect the "what's blocking me" part, which is far more important than the "status update" parts.

Standups need someone to act as moderator who prevents them from running off course, or they can become terribly unproductive - exactly the same as any other kind of meeting.

</comment><comment><USER8> I was told a horror story about a dev who was given a project to complete only to turn out he had done nothing 3 months later. He was too ashamed to ask for help. They weren't doing standups at that time, or anything Agile.

If nothing else, standups prevent this.

<comment><USER9> You can prevent this by being human and check if everything is good for your teammate. Let a dev working 3 month without showing you anything is going to be a disaster.

</comment></comment><comment><USER10> Strong opinions, weak alternatives.

</comment><comment><USER11> This starts off as another "let's bash standups" article, but after I read further down I found myself nodding more and more.

It put into words something I've seen first hand - how blockers are actually unmade decisions. And then gives useful guidance on how facilitate this from a project management point of view.

I've often seen how three people around a white board can make more progress than months of discussion and decision paralysis. Also the article states how standups can be useful towards the end of a product lifecycle when most decisions have already been taken. This was a new way to think about for it me, but I have to agree.

There seems to be lots of pragmatic real world earned wisdom in the article, unfortunately it's hidden behind a clickbait opening.

<comment><USER12> Standups are where the blockers are surfaced, after the standup the relevant people can gather around a whiteboard or someone's desk and figure out how to solve the issue.

The others can get on with their daily tasks.

</comment></comment><comment><USER13> The OP probably doesn't understand agile, yet they will tell us their seemingly quite uninformed opinion based on limited non-agile experience.

Standups are incredibly useful if one wants to have a team self organize to deliver something. If they have a bunch of singleton actors working in silos, and they are OK with this, then they don't need standups. Standups degenerate into status reports and are useless, which is likely what the OP thinks they are meant to be. They are also evidently not doing agile.

On the other hand, my teams do agile, I need to break silos to let teams self- organize, and standups are necessary to let teammates know how and when to help each other, especially in remote teams.

</comment><comment><USER4> I think a more useful article would have mentioned different stand-up anti- patterns. Here's a short list off the top of my head.

1\. Team members sharing about things that aren't sprint goals.

2\. Team members getting into more detail than is needed

3\. Team members checking their phone

4\. Stand-ups scheduled in the middle of a chunk of time (Scheduling at the beginning of the day or before/after everyone goes to lunch anyway means the lost productivity is minimal).

5\. Team members each have isolated, individual projects, and don't reprioritize what to work on based on what the team is trying to achieve.

6\. Stories aren't sufficiently broken down, so that each day the "update" from someone on the team is "Yesterday I was working on X, today I'm going to keep working on X."

7\. The amount of work remaining never gets re-estimated (e.g., it's a good thing if you say "We thought in sprint planning that this was going to take 3 days, but then I discovered this new task, so even after spending 1 day on it, it will take 5 more days").

8\. Trying to solve everything in stand-up. It's better to treat stand-up as a sort of "triage" session for the team's daily issues, and then let people have conversations after to actually talk through solutions.

9\. The Stand-up Is For the Manager. When the stand-up is just for the manager, it tends to feel update-y. When I've been on teams where the stand-up is for the team, team members use it as a way to ensure their own accountability with their peers, understand at a high level what their peers are doing and if they're struggling (in a broadcast manner, so every team member doesn't have to meet with every team member 1-1), and the team still finds it valuable to do even with the manager is on vacation or has a conflict.

10\. The Stand-up doesn't address progress toward sprint goals, what things are at risk of not happening by sprints end, etc., because it is entirely focused on what tasks people are doing.

If your standup is doing things, then (1) I understand why you think they're a waste of time, and (2) stop doing these things. :-)

</comment><comment><USER14> When people write - why X is useless, I have this impulse to not read. Especially when X is proven to be good. No offence to the content, but the title is quite clickbaity

</comment><comment><USER14> The standup criticized in the post is the one prevalent in the scrum methodology, where everyone focus on what they have done and will be doing. Standups can be much more different, for e.g. in Kanban standups a team discusses the progress on each ticket.

The proposed method doesn't seem to replace any of them though. It is something which every engineering team should already be doing.

</comment><comment><USER15> This isn't a how-to, it's more of a rant against something they personally dis-like and therefore label 'useless' (repeatedly).

</comment><comment><USER16> How to Run Greatly from Product Team Meetings

</comment><comment><USER17> Well, just another blog extrapolating personal anecdotes to general statements. There are more than enough posts of that kind on the internet. What we need are more substantiated claims.

</comment><comment><USER18> tldr for those who know Agile.

More groom sessions less standups (skip days) early on. Daily stand ups when getting closer to launch.

</comment><comment><USER19> Why <insert argument against common industry practice> are useless. Decent way to generate publicity and web clicks</comment>


Show HN: Simple Opt Out – Makes it easier to opt out of data sharing - <AUTHOR> http://simpleoptout.com/ <comment><USER2> The most egregious sharing and it results directly in identity theft is the sharing of your financial information after getting a credit card.

I didn't have my own credit card until a couple months ago. I am _old_. As soon as that thing landed, I now get a constant stream of junk mail with my name and contact info plastered all over it telling me I need insurance, annuities, death insurance, more credit cards, financial management, etc.

This should be illegal.

The banks should be 100% on the hook for identity theft, they caused this themselves. Infact, I signed up for the Amazon Prime Card and they incessantly try to get me to upgrade to "account protection". How about YOU protect my account, you sent me the card (which appears to NOT have a mag stripe or a chip and pin, rendering it useless except online), how about you only authorize its use for Prime purchases shipped to my house? I really should stop using Amazon. Garbage.

<comment><USER3> There's something called DMAchoice that lets you opt out of a lot of junk mail. It's at [https://dmachoice.thedma.org/](https://dmachoice.thedma.org/)

Since I signed up, I hardly ever get junk mail from anyone I haven't done business with. I don't think I've gotten a credit card solicitation in years.

<comment><USER4> I've tried this multiple times and it doesn't seem to work for me.

I literally get no value from the post office other than packages. None. I actually just got rid of my mailbox when I bought a house, but they just started laying it on the ground.

I legit want a mailbox that visibly shreds everything placed in it like a Banksy painting at this point as a revolt against endless spam.

<comment><USER5> I think you are looking for this:

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

</comment></comment></comment></comment><comment><USER6> Per the Amazon Ad Personalize setting:

> Because your selection above is managed through HTTP cookies, if you delete > these cookies or use a different browser, you will have to make this same > selection again.

Sigh. So you have to turn this on on every browser on every device.

It looks like the relevant cookies are ad-pref-session and apn-privacy. Perhaps syncing these (maybe only the latter one) would be just as effective as changing the setting through Amazon's site.

Of course there is little way of knowing how effective changing this setting is.

<comment><USER7> It would be better if there was a ublock origin for cookies. The addon would force cookie creation of every opt out cookie and maintain this information using some kind of list, maybe an EasyList for cookies.

<comment><USER8> They'd just start tracking that info on the server side (while still requiring opt-out per-device), and then we'd have to make the extension copy your session cookie between opted-out devices, and then they'd come up with a way to counter that...

</comment></comment></comment><comment><USER9> Why is the Visa opt-out page, which requires the full card number, not secure. The certificate is invalid. See: [https://marketingreportoptout.visa.com/OPTOUT/request.do](https://marketingreportoptout.visa.com/OPTOUT/request.do)

<comment><USER10> It's a Symantec cert, which are not trusted by many browsers now.

[https://blog.mozilla.org/security/2018/03/12/distrust- symant...](https://blog.mozilla.org/security/2018/03/12/distrust-symantec-tls- certificates/)

</comment></comment><comment><USER11> Given that the Chase link asks for your Social Security Number, this page could be a good test of those Google phishing lessons from a post earlier today.

More constructively, though, I wouldn't mind a service that does this for me in perpetuity. Has anyone heard of something along those lines?

</comment><comment><USER12> After this past election cycle, I was getting spam SMS from every organizer in each county I have lived in over the past 10 years. Does anyone know any master list to remove contact info? Replying "stop" to each text message wouldn't prevent others from getting through.

<comment><USER13> I don't have an answer to you, but I changed my affiliation to No Party Preference after undergoing the same deluge of election spammers. When I asked them how they got my info it came from the Democratic Party (which I am thankfully now no longer registered for. Not sure why I ever made the mistake of signing up...)

</comment></comment><comment><USER14> I used this site a few years ago to opt out of everything (I had to send letters to everyone, no buttons to push) and had very good success. I hardly get any postal mail these days, I don't show up on any of the "people search" web sites, and I'm a legend in the HR department - they call me the invisible man because they found so little information about me.

But I had a passport and a global entry card, so they decided I did exist.

</comment><comment> a-dub [http://optout.aboutads.info](http://optout.aboutads.info)

one button. over a hundred opt out cookies.

<comment><USER15> I'm not really comfortable storing tracker cookies in my browser so that I can tell the trackers I don't want to be tracked. I don't really believe it either since apparently a lot of tracker companies just fudge the rules anyway

</comment></comment><comment><USER5> I browse hacker news most days, and this by far is one of the most helpful links I've come across in a while. What a useful project. I'd love to see it get automated using some interactive version of testcafe or phantomjs, so it would pause to let me enter my credentials for each site. Now that would be cool!

</comment><comment><USER16> This is clever but not sustainable. There needs to be the equivalent of the "no call" list that does the same thing for internet marketing.

<comment><USER17> Just like the Do Not Track header?

<comment><USER16> That's not a legal requirement or a database.

</comment></comment></comment><comment><USER18> Since most of these only concern "ad personalisation" and not data collection/sharing, I don't see the point of doing this. They're still collecting your data, only difference being now you're not being constantly reminded of it. For myself, I'd rather keep these turned on to get a sense of what data they are harvesting.

<comment><USER19> If they personalize/target an ad, isn't that using my info? I don't care if they gather and store my info, or if they take a tracking cookie and pass it to an ad-net, I want neither!

</comment></comment><comment><AUTHOR> If anyone visited on a mobile device and saw an odd page layout, the mobile view should now be fixed. At least one mobile browser handled a CSS declaration unexpectedly.

</comment><comment><USER20> I want the opposite of this site: "Simple opt in" that makes all the GDPR cookie warnings go away.

</comment><comment><USER21> Have there been any developments on this since GDPR came into effect? Per the legislation, you have to explicitly opt in before any data sharing can happen (unless it's a business requirement, but it's pretty hard to argue something is if you can opt out). Most ad networks get around it with click-throughs that you have to accept before viewing a website, which per the legislation shouldn't be allowed, as it says you should be able to use the service without opting in.

</comment><comment><USER22> The capital one link did not work. I got an error saying "Not acceptable"

<comment><AUTHOR> Thank you. Looks like the opt-out Web form is gone (I had found a URL linked from an old privacy policy but couldn't personally test it). I removed it ([https://github.com/troy/simpleoptout/commit/1f4661d3139f8cb4...](https://github.com/troy/simpleoptout/commit/1f4661d3139f8cb45c0aeab53fdfccbca2a49fcd)).

</comment></comment><comment><USER23> All it takes is one "clear cookies" action to undo all of this. :\

</comment><comment><USER24> Make a chrome extension to click all the things for me.

<comment><USER8> The links I've tried have required I perform additional actions. LinkedIn was particularly bad, requiring dozens of clicks to turn off all tracking.

</comment></comment><comment><USER25> Dark UIs are all over opt out pages in general.

<comment><USER26> How can an organization fund development of a headless bot, which runs on residential IPs to navigate opt-out dark patterns, on behalf of a human who authorizes the bot as their agent?

</comment></comment><comment><USER27> Anyone know if ublock does this for you?

<comment><AUTHOR> uBlock Origin[1] will block a ton of tracking and is worth running, but it won't block most of the data retention and sharing that simpleoptout.com covers.

simpleoptout.com is mostly for personal data that's not from Web visits at all. For example, many banks can share/sell your account balance with third parties; many retailers can share your name and even purchase history with third parties. In some cases, it's data that was retained by a company when they process a user-initiated Web request (and since it's not a separate request, a content blocker can't block it).

Here's a bit more background: [http://simpleoptout.com/#additions-and- updates](http://simpleoptout.com/#additions-and-updates)

[1]: uBlock Origin is different than uBlock ([https://www.reddit.com/r/ublock/comments/32mos6/ublock_vs_ub...](https://www.reddit.com/r/ublock/comments/32mos6/ublock_vs_ublock_origin/)). Everyone should run uBlock Origin ([https://github.com/gorhill/uBlock](https://github.com/gorhill/uBlock)) unless they have a reason to run something else.</comment></comment>


Ask HN: Start a new job tomorrow – what's important? - <AUTHOR> I start a new position (contract-to-hire) tomorrow.<p>What is important to you as your start a new position? <comment><USER2> Fresh hygiene, business casual wardrobe (including shoes), and most important a friendly smile.

Go around introduce myself to my new colleagues, have lunch with them and try to establish a social network as soon as possible.

Again go through your work duties with your supervisor, make sure you have all tools and accesses needed to complete them.

Confirm with HR on company rules, work hours, reporting lines (time sheets, sick-leave report) and if they have any onboarding process.

Quickly look through your work, collect as many questions and uncertainities as possible and ask your colleagues/supervisor.

<comment><USER3> This is it. I find that establishing a social network is one of the most important things to do in the first few weeks. It makes your work more enjoyable.

</comment></comment><comment><USER4> Assert dominance as soon as possible /s

</comment><comment><USER5> Always take notes on every meeting, even if it is only a 2 person meeting.

<comment><USER6> Also helps to share the notes. Very often two people leave a meeting hearing different things.

</comment></comment><comment><USER7> Look and smell good, smile, let them talk, provide a sentence or two to show you understand what they are explaining. good luck!

</comment><comment><USER8> Just for an interesting spin: anybody have recommendations for first day of a FULLY REMOTE job?

<comment><USER9> Try to get enough 1 on 1 video calls with the Senior developers on hand who understand the source code, ask them for it via direct chat on slack if such things are not offered as a necessary onboarding requirement.

Also try to understand every bit of the source code, and make sure to not rock the boat too much on ur first few days always write code that blend in really well with the other pre written codes. You can battle for code changes later on.</comment></comment>


<script type="text/coffeescript"> - <AUTHOR> http://jashkenas.github.com/coffee-script

<comment><USER2> I think this should probably point here:

<http://jashkenas.github.com/coffee-script/#scripts>

The salient point is that CoffeeScript now automatically compiles any code in a script tag with type text/coffeescript. Pretty cool.

</comment><comment><USER3> The gist of it is this. If you include the minified version of the CoffeeScript compiler on a webpage (43k, gzipped), it will compile and evaluate the inline coffeescripts on the page. That documentation site uses it to hook up the menu and the "Try CoffeeScript" demonstration in the toolbar.

If you view source, you'll see something along these lines:

        <script type="text/coffeescript">

          window.repl_run: ->
            try
              eval window.compiled_js
            catch error then alert error

          close_menus: ->
            current_nav.removeClass 'active' if current_nav
            current_nav: null

          $(document.body).click -> close_menus()

        </script>

</comment><comment><USER4> While I like the concept of simplifying to increase productivity, I am not sure the source code of Coffeescript is any better than the original source code of JavaScript itself. The idea should be to simplify the languages, but as far as simplification is concerned, I think JavaScript is incredibly easy to learn and needs little simplification to its core syntax. There have been other projects, such as Dojo that make the complex tasks of JavaScript easier, and these I find incredibly useful, but to change the syntax of the language without significantly reducing the code size and complexity does not present a lot of value for the project. If this is expanded with one line AJAX scripts, the potential would be vastly improved for acceptance of this type of syntax replacement scheme.

</comment><comment><USER5> <http://news.ycombinator.com/item?id=1014080>

<comment><USER6> I think the OP was pointing out that you can now use CoffeeScript in <script> tags.

I did something like this for Objective-J awhile back, but it's not particularly useful ([http://github.com/tlrobinson/cappuccino- experiments/blob/mas...](http://github.com/tlrobinson/cappuccino- experiments/blob/master/Inline/inline.js))

<comment><USER3> Yep, it's not particularly useful -- there's no case I can think of where you wouldn't be better off compiling your scripts to JavaScript first.

But if you just want to play with it, or prototype a web page, it's fun for that.

</comment></comment></comment><comment><USER7> It's hard to take this seriously when the CSS gets in the way...

</comment><comment><USER8> How does this compare with parenscript?

<comment><USER9> much fewer parens :) Seriously, though- no macros here.

</comment></comment><comment><USER10> Any real languages targeting PHP as a backend? this piss poor excuse for a templating language is making my life harder than it needs to be.</comment>


How to Turn Any Material or Surface into a Sensor - <AUTHOR> https://www.pddnet.com/news/2013/11/how-turn-any-material-or-surface-sensor <comment><USER2> Or you could play with this over I2C with one GPIO for interrupt handling.

[https://www.sparkfun.com/products/9695](https://www.sparkfun.com/products/9695)</comment>


Help: Suicide note on blog - <AUTHOR> https://dennisforbes.ca/index.php/2017/01/25/four-children-lose-their-father-a-wife-loses-a-husband/ <comment><USER2> Found this thread on Twitter of someone who called the police 12 hours ago. Context suggests that it was too late. [https://twitter.com/TychoTithonus/status/824324158154645504](https://twitter.com/TychoTithonus/status/824324158154645504)

<comment><USER3> I am a little lost here, but who is dennis forbes?

This story seems to have gotten flagged. It's not showing up on the front page. [Edit]: yes [Flagged] is showing up on this story.

<comment><USER2> He's the author of this blog post: [https://dennisforbes.ca/index.php/2017/01/25/four- children-l...](https://dennisforbes.ca/index.php/2017/01/25/four-children- lose-their-father-a-wife-loses-a-husband/)

<comment><USER3> It's very sad either way, but I meant what was he known for?

<comment><USER4> This is a somewhat depressing comment to me.

<comment><USER3> Just to be clear, this is very sad.

I was just asking who the person was since I am not familiar with his work.

If my comment conveyed a different meaning, that was not the intention.

</comment></comment></comment></comment></comment></comment><comment><USER5> Really hope they reached him in time. This is no way or reason to go...

For all the interesting things the anglo countries offer, this is one of those things that concern me. Many people I know in the Netherlands and Spain were in the same situation. A very good friend of mine owes the bank E400k and has a house to sell at this moment. In Spain. The bank wanted to foreclose months ago but the judge blocked it giving her 2 years to get her affairs in order to start paying mortgage again (mortgage was not paid for over a year). It seems far more humane than what I read about anglo countries where you can end up living on the streets even without a drug habit. I know money money but as I get older I value humane far more than money. Then again, I am not sure if I think this way about uk/ca/us/au (esp US though) because of the many media hyped up posts. Maybe it is not that bad but reading things like this...

Edit: many foreclosures happen in Spain but that is mostly because people do not know that they can fight them or do not want the hassle

Edit2: post flagged? Is it fake? Does not matter for the responses here; actual people think about and do this every day. I had too many friends and family take their lives but none of them did it because of money. Broke here (correct me if I am wrong please!) is not the same as broke there.

<comment><USER6> Even if its a fake post, its brings up some useful points. What you see in places where money and what you have are everything is a loss of community. For me, when I've talked stupid about hurting myself when I was having a bad time I was fortunate coming into technology via punk rock and alternative culture to have genuine friends around to talk to. Often work won't allow for therapy, the moment a manager finds out you suffer from depression you're out hard and fast. There's a huge stigma attached to depression, but ultimately each human has a certain level of stress they can take before they break.

<comment><USER5> >the moment a manager finds out you suffer from depression you're out hard and fast.

Humane again... You cannot be fired for that here. Which is how it should be IMHO.

</comment></comment></comment><comment><USER7> This breaks my heart. I came across this and called the Halton Police Department. They are sending someone to check it out.

<comment><USER8> Thank you. It's such a horrible and powerless feeling knowing that there is very little I can do all the way here in Australia. I sent them a Facebook message, but I am glad someone was able to call.

</comment></comment><comment><USER9> Hoping with every fibre of my being that someone can get to the OP in time.

I've been close to this sort of situation before, with a six figure tax debt that I thought I could never pay out. Several incredibly tough years later, I have paid out that debt and am well ahead. I often look back at that dark patch in my life and am glad I never took the option that I thought was my only recourse while in that particular mindset.

Things can get better. The worst of times will pass. I wish I could talk to this guy and tell him my story face to face.

Whatever deity or cosmic force you believe in - hope/wish/pray that it delays this man's decision so that someone can save him.

<comment><USER10> This is sad yet completely understandable. I attempted suicide last night. After being blocked from being able to put my kids to bed by my soon-to-be-ex- maybe-but-hopefully-I-can-fix-it wife, looking at not having much in the way of visitation. It's just too much. Add financial pressure, the only thing my wife seems to respond to, and I can't take it. Writing software requires creativity from the inside - emotional stress disables me. Not fair, perhaps I'm weak, but there it is.

The cry for help stuff is annoying, too. I didn't contact anyone last night because either I cause more emotional harm (they don't stop me) or I'm just an drama-causing guy that is so unstable of course his kids can't be around him.

I used to think this was a silly response until I was in the situation. Maybe things would have gotten for this guy, maybe not.

<comment><USER9> I am glad that you are still here with us, and I would strongly urge you to get help, in whatever way. Friends and family are of course, the first ones I would suggest, but if you feel that you do not want to burden them, then please contact a help line, or a priest, or a counselling service - whatever. A lot of them let you stay anonymous.

In my experience, when you are in that state of mind that suicide seems the only/easiest option, then there is NO WAY that you are thinking of the best outcomes for other people in your life.

You not ever being there for your kids ever again is NOT a better option that you being there broken, but still there for them to be able to actually tell you how they feel and listen to you. Not even close.

You will be far too enmeshed in your own feelings of hopelessness and loss to be able to think clearly. You NEED someone who can look at the 'helicopter view' objectively and bring a new perspective to your mental state. Even a complete stranger who is empathetic can do that. They don't even need to say much - just listen to YOU saying it. The act of talking it out can help on a massive level.

My kids were very young when I went through my patch about 15 years ago. I look at them now and think about all the incredibly wonderful things I would have missed if I was not here.

Go. Talk to someone. Now.

</comment></comment></comment><comment><USER11> For the record: he's OK

> I'm okay.

> Months of incredible levels of stress, coupled with weeks of little sleep, > yielded some deeply irrational, illogical thinking that I of course regret, > but can't erase from my timeline. And for any sort of intellectual exercise, > like software development, no sleep+stress = a recursive loop of > ineffectiveness that generates more stress and even less sleep.

> I apologize to those I distressed, from family to remote individuals who > I've never met but who cared. This is my first opportunity to post anything > on this, and the lack of communications wasn't an intentional act of > dramatic exercise.

[https://dennisforbes.ca/index.php/2017/02/02/update/](https://dennisforbes.ca/index.php/2017/02/02/update/)

<comment><USER12> Wonderful news! Thanks for posting

</comment></comment><comment><USER8> This gives me knots in my stomach, I hope it's not too late to help this man and his family. I would contribute to a crowdfunding campaign, nobody should suffer like this. I don't have much either, but I could help with a little.

Someone in Canada here that can help out? The whois for the domain lists the following:

Name: Dennis Forbes Postal address: 2273 Britannia Rd Burlington ON L7P0E8 Canada Phone: +1.9053158373

<comment><USER13> This is terrible, the house/neighborhood looks very nice :(

</comment></comment><comment><USER14> It's so hard to realize that our self-worth isn't in the things that we owe. I've struggled with it myself many times. How can I be so good at so many things and yet be an absolute moron when it comes to money?

It seems so simple. Just don't spend it.

It's like my Mom's voice calling out to us as I ran out the door in high school.

"Don't sin!"

She had long given up trying to lay out a long list of things we shouldn't do and distilled everything into the most essential kernal.

"Sure mom, I'll get right on that"

For a month I can be really, really good. And then there's a closeout on new Canon lenses at B&H and it's all over.

What an idiot.

Soon enough, it all adds up and like Dennis, you have a couple of medical bills or a job go south and the ship just sinks around you.

Nobody cares and there's nothing you can do.

But it's obvious to me after reading this thread that our community DOES CARE and will reach out desperately to help.

Our self worth is far greater than some crappy shack.

The lives we touch and the memories we make mean so much more than the possessions we have.

The pain I feel inside for Dennis is touched only by the willingness of this team to reach out and help him.

I hope we can assist his family in some way.

</comment><comment><USER15> [https://www.prelist.org/properties/4438-dream-home-in-the- lo...](https://www.prelist.org/properties/4438-dream-home-in-the-lowville- area-of-burlington)

905-220-1098

<comment><USER16> I tried calling, no answer

<comment><USER15> Same

</comment></comment></comment><comment><USER17> I called the Halton police department and was told that they could not investigate until I contacted my local (US) police department and had the US police send them the information. They refused to just give me an email address where I could send the blog post or accept any information over the phone. Absurd.

</comment><comment><AUTHOR> Is it appropriate to call the local police in this situation?

<comment><USER18> Never call the police to handle a psychological traumatic episode. Especially to prevent a suicide.

They are not trained to handle it at all.

<comment><USER8> Sorry to call it like I see it, but your comment is so wrong on every possible level.

There is nobody else to call when someone is telling the world they're going to commit suicide, where is your compassion? I don't even know this guy, never read his blog and I live in another country, but reading that post and the "love" one he posted with photos of his children, that hits me right in the chest. I feel compelled to try and do something.

Police aren't just there for tending to crimes, they are there to serve and protect the community and in this case, protect someone in the community from themselves who is clearly suffering from immense mental stress and needs help.

The way society deals with people who clearly are suffering from mental illness needs to change. There are so many people out there just like him working in tech and non-tech alike feeling the same, sadly many don't get heard or the help they need. Remember Aaron Swartz?

It's easy for people to say, "he should tell someone, he should tell his wife" when they've never experienced mental illness before. It's easy to be uncompassionate when you're lucky to be a normal functioning human being.

<comment><USER19> Questioning a persons compassion because they hold a different opinion than you is low. There's no reason to believe they don't care. Their post doesn't say "Don't call the police, it's not worth the taxpayers dollar."

</comment></comment></comment></comment><comment><USER20> This is is sad and avoidable. As stated in other comments we don't seem to do enough or talk enough about mental health and suicide in tech circles.

If you need help please get it. Here is one resource:

[http://www.headquarterscounselingcenter.org/](http://www.headquarterscounselingcenter.org/)

Disclaimer, I'm on tbe Board of Directors. But if not this resource please get help from somewhere. There are people here for you.

</comment><comment><USER21> I live in halton and called the police. They said they reached him in time.

</comment><comment><USER21> I called 911. The police reached him in time.

<comment><USER8> So is he okay? This makes me feel relieved if he is okay.

<comment><USER21> The police said they were with him and he was okay. I'm not entirely sure now if the "he was okay" bit is accurate.

</comment></comment></comment><comment><USER22> Twitter OP here. I know the thread's been flagged, but for anyone who finds the thread: he's OK.

[https://dennisforbes.ca/index.php/2017/02/02/update/](https://dennisforbes.ca/index.php/2017/02/02/update/)

</comment><comment><USER23> Okay there's something not right here.

People are reporting that it was too late, however the block post is gone, and I've yet to see an obit posted in any of the locals around here.

There's more to this.

</comment><comment><USER24> I hope someone found him while they could help. His last two posts could have been clues :(

\- [https://dennisforbes.ca/index.php/2017/01/24/adieu/](https://dennisforbes.ca/index.php/2017/01/24/adieu/)

\- [https://dennisforbes.ca/index.php/2017/01/24/love/](https://dennisforbes.ca/index.php/2017/01/24/love/)

<comment><USER2> [https://dennisforbes.ca/index.php/seeking-a-well- capitalized...](https://dennisforbes.ca/index.php/seeking-a-well-capitalized- partner/)

(emphasis his)

EDIT 2016-01-24: Hello readers. This page is seeing dozens of uniques per day from non-bots. Whether it's interested parties or just people casually entertained I don't know, but I will say that if you're thinking about this _contact me now_ (email@example.com). My window of options is incredibly tiny at this point.

</comment></comment><comment><USER25> Halton Region local here - just called police department, they said that they are aware and on it. Appreciative of the call, no other info.

</comment><comment><USER26> Administrative contact: Name: Dennis Forbes Postal address: 2273 Britannia Rd Burlington ON L7P0E8 Canada Phone: +1.9053158373 Fax: Email:

[http://whois.domaintools.com/dennisforbes.ca](http://whois.domaintools.com/dennisforbes.ca)

Call ???

</comment><comment><USER27> I hope he has not followed through. He may feel like a failure, but he is much more valuable alive to his family. His kids will be devastated. You can survive anything with your family there, but without a dad those kids are going to be far, far worse off than any financial damage you feel like you've caused.

</comment><comment><USER28> Flagged or no, can we all agree to do as OP did? A post and a call could mean everything.

</comment><comment><AUTHOR> This is bad. I emailed this to what I believe is the local police department, Halton Regional.

<comment><USER28> In the name of whatever is good, I sincerely hope your intercession proves fruitful.

</comment></comment><comment><USER15> Trying to find a number. [http://datagovca.com/corporation.php?id=8370613](http://datagovca.com/corporation.php?id=8370613)

</comment><comment><USER29> May Love be with him all the way.

</comment><comment><USER30> This is real?!

</comment><comment><USER5> Offtopic; I think there should be a 'why flagged?' button on HN.

<comment><USER31> The reason people flag stories/comments ultimately comes back to the same thing: they believe it doesn't belong on HN, as per the site guidelines:

[https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

This is obviously a very sad and tragic story – no warm-blooded person could dispute that.

But it's a private matter to be dealt with by police and his loved ones.

No doubt people are generally well-intentioned in thinking that having this case discussed here may be beneficial, but for other people the interest is likely to be voyeuristic, and for it to be a topic of public discussion is insensitive and risks causing further distress to his family.

<comment><USER5> I think it was beneficial, if it helped or not. I think it shows many of the 'money first' people on here what it can do to you and how you can make bad (as in ultimately, life threateningly bad) decisions with startups and investments. I think it _does_ belong here.

<comment><USER9> Seconded. Suicide and depression is all too often swept under the carpet as being too hard to deal with, or some sort of taboo, even in these enlightened times.

We hear too much of the "overnight success zillionaires who came out of nowhere with a killer web app" or the couple of 14 year old kids who coded a mobile game in their spare time and now make $50K per day on the app stores.

But what we don't hear for every one of those is the thousands who slog away, burn through their life savings, run out of mortgage options and feel the frustration of building something with zero customers - just like Dennis did in the lead up to this terrible event.

When all you hear is the good stuff, and you are struggling, then it can seem like the problem is entirely YOU, and the abject feelings of failure are strong indeed.

But speaking to others who are running the same grind, you suddenly realise that you are NOT alone, and you are NOT doing everything wrong. There still may be no easy solution, but the problems shared are indeed problems halved.

Ask me how I know? I've been there and back several times. It is not nice.

I would hope that HN starts a trend for open honesty in this industry.

<comment><USER32> Honesty is great, but let's be honest about our own experiences, not someone else's tragedy that we randomly encountered on the internet and are in no position to make claims about. Otherwise we reduce that person to raw material for an argument. That's not right.

I understand the shock of encountering something like this, and how it can spur us to reflect more deeply on our own situation. Those are natural and good reactions. But we need to be careful about going any further, and large internet communities aren't capable of being careful that way.

<comment><USER9> Well explained. I understand, and rescind my plea in my former post. I had lost sight of the fact that we would be dragging someone into this discussion who is no longer here to give his consent or defend his decision.

</comment></comment></comment></comment></comment></comment><comment><USER13> datetime="2017-01-25T10:16:10+00:00"

which was a long time ago :( It is probably too late :(

<comment><USER33> There is also [https://dennisforbes.ca/index.php/2017/01/24/adieu/](https://dennisforbes.ca/index.php/2017/01/24/adieu/) which is datetime="2017-01-24T19:21:50+00:00", 13 hours earlier.

</comment></comment><comment><USER34> Throwaway because of obvious reasons but let this be a lesson to the HN crowd:

NEVER ever risk so much that you're family will be left homeless. The minute you had kids and a wife is the minute you chose to never be able to risk everything for bigger gains.

Also, this post sobered me up from the dream of buying a $500K home. I'll be getting a $250k and paying off that sucker ASAP.

<comment><USER35> I wouldn't have made a throwaway for this. It's perfectly reasonable advice. I never liked banks. My mom always warned me they're legal loan sharks who don't break your leg but take your home (or car, or whatever). Perhaps it's a good time to consider bitcoin.

</comment></comment><comment><USER36> That is terrible. He should have told his wife about his problems so she could help him get professional help. He also could have done a crowdfunding campain.

This is why our IT industry needs to make better support for the mentally ill, rather than vilify us and cause people to hide their mental illnesses.

<comment><USER37> This guy doesn't seem unusually mentally ill to me. He seems well within the bounds of normal. Depression happens to everybody. (I'm not sure if we actually disagree or I'm just choosing different words.)

<comment><USER38> I had your view - I just read a number of his posts. You can define 'mental illness' to be almost anything, and it would encompass a lot of folks, but most of his writings were pretty balanced.

What I did see (and others did too) was a post about need $600k - needing a lump sum, then working on something and paying it all back from the 'riches' of the project. Now.. the 'riches' part may have been somewhat tongue in cheek, perhaps, but he was really going for some "go big go home" sort of project, and that didn't work out.

Now's probably not quite the time to criticize (and I'm not criticizing _him_ ), but when is there a good time? Dennis seemed to get caught up in the belief in "big payout tech projects". This isn't to say they don't happen, but Dennis' isn't the first story I've read of people "shooting big", then ending up in deep debt, deep despair, considering suicide. We don't read about these much - we generally read about the continuing waves of billion-dollar unicorns fronted by people continually younger than ourselves. It's gotta wear some people down.

I just bumped in to some folks a few days ago who are (independently) "buckling down" on their big "game changing" projects. While I only know these folks socially, if the projects fail, and one ends up taking his life (or even considering it), I will _not_ be overly surprised (saddened, yes). But there's little I can do.

People chasing web/tech/app riches then falling in to debt/despair has got to be the unspoken plague of this industry.

EDIT: looks like his most recent project was Gallus: [https://dennisforbes.ca/index.php/2017/01/24/gallus- lessons-...](https://dennisforbes.ca/index.php/2017/01/24/gallus-lessons-in- developing-for-android/) And while that looked like it was going to pay off in a sale, the buyer got acquired and everything got put on hold. The house eviction may have pushed him over the edge?

<comment><USER5> I do believe this focus on billions of $ is extremely weird. You can live a very very nice life on a few million $. And that in itself is a weird and skewed statement of what people consider nice. There are 1000s of places all over the world with fantastic living conditions in climate, health, healthcare, pensions etc you can grow old with a few 100k. The unicorn or bust idea is very strange as the chances you will make that are very close to 0; putting everything in it instead of building a solid business and 'we will see what happens' is rather alien to me. Having a long term profitable company is far far easier than a multi million or billion payout. People who need fast cars and million$ mansions should know what risk they are taking and explain that to their family when taking them.

<comment><USER38> FWIW, many of the folks I know that are shooting for the 'big payout' aren't really chasing after the fast cars and material side of things - it's simply what the definition of 'success' has been in the tech world for a long time. TechCrunch (and that ilk) is a sort of porn, and I've known some folks become addicted to that narrative. Some of the stories on HN probably feed in to that as well. If/when you're _down_ , seeing so much seemingly easy success (and, let's be fair, some of it really was easy - there are people we read about who didn't slave away for 10 years to become an 'overnight sensation') is difficult to deal with. I don't think Dennis in particular was necessarily after the fast cars and million $ mansion (actually, he had a million dollar house already, on mortgage).</comment></comment></comment></comment></comment>


Why Renee James is challenging Intel with ARM-based server chips - <AUTHOR> https://venturebeat.com/2018/02/05/why-renee-james-is-challenging-intel-with-arm-based-server-chips/ <comment><USER2> I want to like it, but all the firmware is closed. No sale.</comment>


Apple TV graduates from hobby/accessory to product line ahead of major changes - <AUTHOR> http://9to5mac.com/2014/01/28/apple-tv-graduates-from-hobbyaccessory-to-product-line-ahead-of-major-changes/ <comment><USER3> This is how it's going to play out:

1\. Updated Apple TV launches

2\. Tech pundits and gadget blog commentators pan it because of limited content deals but most likely not living up to some pie in the sky ideal

3\. Apple TV sells well

4\. Apple keeps iterating on product adding new content as they get more leverage

5\. Console gaming gets accidentally disrupted because they don't take the threat seriously and "it's just Angry Birds on your TV, not the good games like Call of Duty"

6\. Installed base gets too large for Activision (and other large game studios) to ignore and launches Call of Duty on Apple TV

7\. Another leg on the stool for Apple

<comment><USER4> I don't get it. This is the exact same model Roku, Google, Xbox, Ouya et al are trying to follow, and so far, they've all had limited success. Even Netflix and Amazon had to give up chasing after content and had to resort to making their own. What makes Apple's attempt so different from all the others in this area? (No sarcasm intended, I'm genuinely curious.) What leverage do they have that can guarantee them the kind of instant success that the idevices had?

I guess integration with their other products is one advantage, but really, most other consoles have smartphone apps as well, and they're nothing special. The integration with Airplay that TFA touts seems rather dubious... isn't that just normal QOS any old router can do?

EDIT: The most obvious advantage, I guess, is the large corpus of devs who are willing to rewrite their apps to target a new form factor. No other company right now commands that sort of manpower, and that, indirectly, may be enough to convince content owners and game publishers to target their platform.

<comment><USER5> _What makes Apple 's attempt so different from all the others in this area?_

Because literally with the press of a button you can make the video playing on your iPhone or iPad appear on your HDTV.

Because you just plug in the Apple TV and hook it to your wireless network and it shows up on your iOS devices instantly as a recipient for video and music streaming.

No setup. No confusing configuration. It just works.

It's the same reason that Apple was the first company to really get video calls to work. Other vendors and phone companies tried to get video calls to work...and some of the tech crowd certainly made use of it. But Facetime was the first video calling system that made it ridiculously easy for non- technical folks to use.

<comment><USER6> This.

I have an AppleTV and a ChromeCast. I have a bunch of (legal) rips of the Simpsons.

On the ChromeCast I have to load a single video in the Chrometab every time. The playback isn't always smooth.

On the AppleTV, I drag VNC to the display, hit full screen and watch all day. The playback is smooth and hassle free.

The ChromeCast is more portable, but not by much. If the AppleTV was USB powered I would consider traveling with it.

</comment></comment></comment></comment><comment><USER7> Our Apple TV is the main way we watch TV, but frankly the channel options are a bit bizarre, and half of the interesting ones require a cable contract. It'd be nice if they put a stake in the ground for ESPN, Disney, HBO Go, etc and didn't require a cable subscription. Seems like such a backwards model.

<comment><USER8> I'm in the same situation and completely agree.

My guess is that Apple is trying to build channel momentum any way they can. Unable to pre-negotiate deals and launch with a huge splash, as they prefer, they're doing it from the bottom up, starting with content providers like Crackle that probably get a lot more out of it than Apple does.

But as we've seen, Crackle begets Smithsonian and Smithsonian begets PBS and PBS begets ABC. So it seems like it's working.

I bet in the next year, we'll see some sort of foldering option for home screen icons.

<comment><USER9> _...PBS begets ABC._

Actually, Apple has a relationship with the Walt Disney Company[1], which owns the ABC, ESPN and the Disney channels - and many more. Perhaps these additional TV apps were added after _enough_ content creators agreed to whatever terms.

Also, interestingly enough, there is a show on Disney Junior that first premiered on the Disney Junior iPhone/iPad app before it was shown on the regular Disney Junior TV channel. Maybe this is a new model to _beta test_ new content?

[1] [http://en.wikipedia.org/wiki/The_Walt_Disney_Company#Disney_...](http://en.wikipedia.org/wiki/The_Walt_Disney_Company#Disney_Media_Networks)

</comment></comment></comment><comment><USER10> Welp, time to start figuring out a business to build around the Apple TV. Should have started that a while back, but I was waiting for a sign they are moving.

This is the equivalent to a highly telegraphed right hook from a boxer - <USER2> also happens to be heading directly for an opponent dazed, on the ropes.

Sweeeeeeet.

</comment><comment><USER11> "We're led to believe that the game integration will utilize existing iPads, iPhones, and iPod touches as controllers"

This wouldn't come as a surprise, but using a buttonless handheld touchscreen as a controller would be a terrible interface for gaming on a tv.

<comment><USER12> If you're trying to model something like an Xbox controller with a touch surface, then, as you say, no chance.

If you're trying to model something simpler like a WiiMote, then I think you might hit closer to the mark. Let's keep in mind too the fun possibilities of asymmetric information games that are possible because of the display (think poker, football, Scrabble, Wii U type-games, etc).

</comment></comment><comment><USER13> This lines up will with what I wrote about a month ago. Everyone's focus is on the Xbox One and Playstation 4, but the real challenger in the console space is an upgraded Apple TV (and other emerging products).

[http://goldfirestudios.com/blog/121/Why-the-Xbox-One-and- PS4...](http://goldfirestudios.com/blog/121/Why-the-Xbox-One-and- PS4-Aren%27t-the-Future)

</comment><comment><USER14> I just spend $1300 on a MacBook Air, but if the part about integrating with digital cable is true it looks like Apple will be getting even more of my money. As a blind person the apple TV is the only accessible set top box. The ability to actually have an accessible TV guide would be worth a couple hundred dollars to me especially if there was some kind of DVR functionality.

<comment><USER15> >As a blind person the apple TV is the only accessible set top box.

OK, I'm curious. As a blind person, how much value do you get from watching TV? Do you just listen to the audio? What do you (for lack of a better term) watch? It seems like scripted shows typically have a lot of content that is only shown, not said; and most other content such as news and sports would be easy to get on the radio, which would seem preferable.

Care to enlighten me?

<comment><USER14> Some sitcoms are fairly easy to follow. I watch a lot of documentaries on Netflix and Hulu. I also make use of airplay quite heavily especially for listening to sports games through radio apps on the iPhone.

<comment><USER15> Interesting.

Thanks!

</comment></comment></comment></comment><comment><USER16> I really hope they merge it with airports, it's always nice to have one-less- device. I hope they put a ton of storage in it as well so it can be used for time machine and not have to always stream the movies I buy.

The gaming is also a really exciting possibility, iOS has an amazing gaming ecosystem and I miss it a lot when I'm playing stuff on my kindle and phone.

The only thing I'm not enthusiastic about is it will still be too locked down to replace my media pc.

<comment><USER17> It really needs to be able to work without a computer or iOS device. Right now you can't use just storage attached to your router and the AppleTV. Annoying limitation.

<comment><USER18> Hmm... but how will they make money from the content on your external storage? If you bought the content from Apple, then (assuming a fast internet connection) they could let you stream it, without requiring a computer or iOS device. If you got the content someplace else, then that place is Apple's competitor.

<comment><USER17> You can already do what I'm describing. It just requires that you have a computer with iTunes running or an iOS device.

<comment><USER18> What you're describing is "use just storage attached to your router and the AppleTV". You cannot already that.

I acknowledge that you can work around that limitation by using AirPlay from Mac/iOS, or adding media to your iTunes library.

My point is that there's no incentive for Apple to add the specific functionality you (we) would like, i.e. playing stuff from a USB mass storage device or from an SMB share.

<comment><USER17> >or adding media to your iTunes library.

Yes, which doesn't require the iTunes store.

<comment><USER18> My point is simply that, although there are already ways for you to watch non- iTunes-store content onto your Apple TV, Apple has no incentive to provide you with an additional method like USB mass storage or SMB streaming.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> _Now_ I get it. I'm hundred percent sure that Apple TV integrates iBeacon powered mobile payments. How else do we pay for the on-demand content on TV? Just scan your fingerprint and there you go. Maybe even buy an advertised product that you see on TV, just like that.

"This channel requires subscription, please verify your payment with your iDevice, thank you." Fantastic.

</comment><comment><USER20> Nice, this is very much a space about to get crazy. We started the process of keeping a journal of what we actually watch/use in our current satellite subscription and it was pretty revealing. Easily 80% of everything was available elsewhere in a more useful format.

</comment><comment><USER21> I have 2 Apple TV devices and have loved the product in general. { Disclaimer - I am far from being an apple fan boy }

Couple of things that require fixes.

\- Content: Frankly the current content is pretty lame. ABC has a sheepish presence catering to its prime TV shows. ESPN seems to use this as a vehicle for ESPN3.

\- Itunes: I had such a bad experience with itunes movie rentals over the weekend. Utterly bad streaming/buffering experience. Unacceptable.

\- Radio: Come on .... Do you know they have internet radio support?

-Keyboard: Searching is such a pain. Try using the search on the youtube app.

\- Remote: The remote interferes with your Bluetooth receiver on your mac book.

\- lack of local storage

</comment><comment><USER9> I think that the Apple TV is best _misunderstood_ product that Apple makes (and perhaps it's misunderstood, and sometimes frustrating, because it's dependent on another device - your TV).

</comment><comment><USER22> Hopefully that means better software support. The newest update has a bug with video playback after using iTunes Radio, video plays "through" the UI and no way for me to downgrade.

</comment><comment><USER23> Looking forward to this - the current design makes mirroring fail for most people, and mirroring is very important for our app.

<comment><USER24> Why does mirroring fail? I'm curious because it usually fails for me. Are you just talking about the supposed new integration of the wireless AP with the Apple TV?

</comment></comment><comment><USER25> I knew this would happen when they demoed Mavericks streaming. That's the coolest feature from Mavericks.

<comment><USER26> I figure their new Thunderbolt Display will be actual Apple TVs, and they'll justify the set-top box by integrating the Airport Express product so it can fulfill a standalone use if you're successfully upsold.

</comment></comment><comment><USER27> I hope Apple loosens up their design guidelines. The Netflix app is terrible on Apple TV.

<comment><USER28> Maybe I'm just being silly but I really hope not. AppleTV is the only Netflix device I know of that won't automatically keep playing TV episodes (with no way to turn this "feature" off).

<comment><USER27> I'm not asking for continuous play really, just that it only be one click when the credits begin to roll ( or however they determine when to pop up that little modal for the next episode ).

<comment><USER29> The Wii version of Netflix also does not play automatically - it's pretty much the only thing I use the Wii for.

<comment><USER28> Unfortunately the Wii doesn't do 1080/720p stuff either though :/. The increase in quality is well worth spending $100 on some other type of streamer.

</comment></comment></comment></comment></comment><comment><USER30> The first thing that caught my eye on that page is "apple hdmi to hdmi".

I immediately face-palmed in disgust.

<comment><USER31> It's not an (Apple HDMI) to HDMI cable. It's an Apple (HDMI to HDMI) cable.

<comment><USER19> This is a funny example of how people tend to see what they want to see.</comment></comment></comment>


A Better Strategy for Hangman - <AUTHOR> http://www.datagenetics.com/blog/april12012/index.html

<comment><USER2> An even better strategy would be to weight your guesses towards the most information gain. If a letter appears often, but is in the same position most of the time, getting it won't help you as much as getting a letter that appears in fewer words but in more varied positions. Doing a quick check of 5 letter words in my /usr/share/dict/words file I find: S: 659,62,267,260,2282 E: 122,829,448,1254,679 A: 252,1201,678,410,307

That is, S, when it appears, is heavily skewed towards the last letter in the word, finding it won't help you figure out the word nearly as well as finding the more evenly distributed E or A.

<comment><USER3> Doesn't this all assume that the opponent is choosing a random word? If they're trying to be evil, I'm sure they can pick words where each letter you get gives little information.

For example, which letter do you guess if the puzzle is _og? You still have to go through bcdfhjln even after you've burned however many guesses getting that o & g.

<comment><USER4> I once wrong a hangman game that did this in reverse. The computer made sure to make you be as wrong as possible, while still ensuring your guesses were "correct".

It had one problem in that it always tried to make sure you guessed wrong, but by carefully choosing your letters you could cause it to exclude tons of words because they contained the letter you guessed, leaving only a small number of possible words.

It needed a refinement to occasionally allow you to guess correctly if that maximized the number of possible words remaining that still fit the prior guesses.

</comment></comment></comment><comment><USER5> I loved this blog post (and the other one I read, about Battelship), so I wondered who was behind these great posts.

Their homepage says this "DataGenetics is a technology consultancy specializing in unlocking the value stored in large databases. Using a variety of techniques we can mine the trends in your data to help you maximize your marketing and advertising campaigns."

Damn.

Yet another group of smart folks focused on more-effective advertising.

<comment><USER6> That's where the money seems to be. It's a shame, but I can't blame groups like these.

<comment><USER7> Why not? Do you think people have no responsibility for their choices other than to maximize their financial gain?

<comment><USER6> No. I don't believe that a person's intelligence level makes it appropriate for any other party to decide what she should and should not do. I also question what "responsibility" an intelligent person has in their career choices. Responsibility to whom? Society? Should they be out curing cancer instead? I cannot accept the notion that people in the aforementioned position have a responsibility to anybody but themselves and their families.

<comment><USER7> I never said anything about intelligence level or other parties deciding what people should do.

Are you able to consider the idea that someone's responsibility to themselves and their families might lead them to make decisions other than maximizing financial gain?

Also - I'm curious as to why you think family members are a special case?

<comment><USER6> I think you may be reading my previous comment without considering its context in the thread. I was initially writing in response to the observation that this was "Yet another group of smart folks focused on more-effective advertising." It wasn't clear to me that you and I pivoted from this.

Of course I'm able to consider the idea, rbarooah. What I reject is the notion that we can project our own values on a person and then blame him for not fulfilling them (thus my original comment).

<comment><USER7> I do recall the context.

What were you trying to convey with the phrase "It's a shame?" Was that not your judgement of their choice?

Also, how do you propose to prevent other people from blaming one another for things?

You didn't answer my question about why family members are exempt from your general view - which I am genuinely curious about.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I kept waiting for the other foot to drop, and it never did.

This is great if you're playing hangman against a computer. Probably, you're not.

You're playing against a person, who probably has some sense of your strategies.

Even when I was a kid, we didn't play hangman by choosing random words. What's the fun in that? You notice how the other person plays, and in the next rounds you pick words that break their strategies.

You notice they are doing the "common letters" or even "common vowels" strategy, and you give them "lynx".

Or you trick them with a word that has a few easy-to-get letters, but is going to be hard to guess the last few because there are so many possible matching words -- I had a great one that I forget now... maybe "budder"?

Did everyone really play with randomly-chosen words? What a waste.

<comment><USER9> My favorite strategy: four letter word. Say no to everything until they guess U: _ U _ _ then decide on the least likely word which includes none of their guesses, often "junk".

<comment><USER10> That isn't a strategy, that is cheating. ;)

</comment></comment></comment><comment><USER11> It's an interesting article, but I would have thought that the best* letter to guess is the one that appears in as close to 50% of the possible words as possible, rather than the most likely to appear, given that the hangman is drawn per error, rather than per guess. Is my reasoning wrong?

* assuming as he does at the bottom the existence of a computer.

<comment><USER12> Your intuition is telling you that you should shoot for 50% so that you can divide the search space in half regardless of the outcome. A right or wrong answer will eliminate half of the possible remaining words.

But right and wrong guesses are not equally valuable in hangman. A wrong guess will eliminate all words of a given length containing the given letter. But a correct guess gives you more: you get the location (or locations) of the letter in the word as a bonus. This will reduce your remaining search space drastically.

Thus, you should optimize for the success of your next guess.

<comment><USER13> Additionally, you're not penalized for correct guesses.

</comment></comment></comment><comment><USER14> This is great, but it's just a first-order strategy! Once your opponent knows you're following these (quite rational) rules, she could pick words where the rules fail particularly badly.

I look forward to seeing your analysis of how to deal with that :)

<comment><USER15> The strategy given isn't to solve the puzzle, but to get at least one letter on the board. So if you look at the table at the end, the worst case is a three-letter word that only contains a K out of the letters given, which is the worst case scenario on that entire board. Assuming your opponent sticks to the dictionary there is no way for them to ruin this strategy, only push you into the worst cases given, which once you figure out what's going on will play to the guesser's advantage, not the word-chooser.

</comment></comment><comment><USER16> > There are no two letter words containing the letter C, Q, V or Z.

Does 'qi' count? <http://www.merriam-webster.com/dictionary/qi>

I know it counts when playing Words with Friends...

I also think 'za' is valid when playing Scrabble type games, but 'za' technically isn't a word.

<comment><USER17> IIRC "zo" is also valid. It's a Tibetan yak hybrid.

Hmmm... Yak butter tea.

<comment><USER18> In case you cared, "zo" is valid in the UK/international Scrabble wordlist, but not in the US (yet, until we persuade them to use the same wordlist as everyone else).

</comment></comment></comment><comment><USER19> This came up as an pre-interview employment challenge that I did a few months ago. I've uploaded my code here: <https://gist.github.com/2242816>.

I could make good arguments for both "most likely to be present" and "most information gain", so I implemented a mixed strategy. I calculated the information gain (in bits) and the probability of a correct guess, then used a linear combination of them to determine which letter to guess. Additionally, the weights changed over the course of the game so that correct guesses were valued more as incorrect guesses became more scarce.

To determine appropriate weights, I ran a crude Monte Carlo simulation. The final weights I ended up with were 0.60:0.03 with no incorrect guesses and 0.54:0.69 once there aren't any strikes left. (bits information gain : p(correct guess))

</comment><comment><USER20> Good comments. Being paranoid, I double checked the database I used! Neither 'qi' nor 'za' are in the database I used.

I'm not arguing that they are, or are not, words. I'm just saying that they were not in the dictionaty file I used :)

</comment><comment><USER21> Cool, but assumes all words have an even probability.

Vs a week player the ideal word list should only include 'common' words.

Vs an ideal player you need to assume they will pick from the list of words that you least likely to guess using optimum play.

Generically, optimum play ends up with a somewhat random list, aka 90% of the time pick E, 10% of the time pick I etc.

PS: Actually generating this list is a 'hard' problem and vary dictionary dependent, but you can probably get reasonably close using some sort of genetic algorithm and a enough simulation time.

<comment><USER22> > PS: Actually generating this list is a 'hard' problem and very dictionary > dependent, but you can probably get reasonably close using some sort of > genetic algorithm and a enough simulation time.

Sounds like a challenge. I don't think, given a dictionary, finding the ideal strategy for both parties will be that challenging. It's a fairly straightforward two person zero-sum game. You can either model it assuming hidden information, or concurrent play. (Which is basically the same here.)

As an interesting variation, you might allow the chooser to cheat: I.e. don't make them write down the word in the first place, just require their play to be consistent.

</comment></comment><comment><USER23> Two possible improvements, that I think may be original (thought I probably missed it in the article and comments)

1) A hit or miss of a letter tells you a lot about what the new subsequent optimal guess is. You could make a flow chart (a really big one) that shows you the optimal letter to call out next based on what has hit and missed.

2) the position that a letter has hit tells you a lot about the target word. if you have a computer, the regex becomes trivial to identify the next optimal letter to guess. an 'optimal' table could be generated based off this pattern, and it would be a huge table.

I kept feeling like every step of the way it was an infomercial, 'but wait... there's more!' and I like that, it got me thinking.

I'd love to have my hangman bot go head to head with yours on random words. that would be a fun little project.

</comment><comment><USER24> Very cool. I was implementing Hangman a few weeks back and I figured out the first strategy, use the frequency distribution for the specific length to initiate your guessing. However, I thought about but discarded the second strategy of conditioning on the previous wrong/right guesses and selecting words and then doing a histogram of the letters. Thinking back, I find it interesting that thinking about it from a complexity point of view made me dread that approach because it becomes significantly more expensive to do the recomputation of frequency distributions compared to blindly uses the naive independence assumption and I was not sure how much of a win I would get by adding that bit of optimization.

</comment><comment><USER25> Instead of a table at the end, what if you were to boil it down to a single list of letters that I can easily memorize? You could do this by weighting the final table with the number of 1-, 2-, 3-, etc -letter words in the dictionary.

Put another way, what are the letters I should guess when I don't know the length of the word?

While it wouldn't be perfect strategy, it would be easier to execute.

</comment><comment><USER26> There are lots of good further caveats in this thread.

We should have a hangman AI tournament.

</comment><comment><USER27> Does this mean that RSTLNE on wheel of fortune is non-optimal too?

<comment><USER28> Given your perception can generally fill in the vowels - picking any early on would seem non-optimal.

<comment><USER27> I think it's more a goal of eliminating uncertainty about which letter occupies a slot.

For example, if I have guess T and E and see _ _ E as the word I know it's not the word "The".

</comment></comment></comment><comment><USER29> This seems like a problem ripe for solving with a markov model.

</comment><comment><USER30> Playing hangman against Sheldon Cooper was a mistake in the first place :)</comment>