Instance-First Development (2004) - <AUTHOR> https://blog.osteele.com/2004/03/classes-and-prototypes/ <comment><USER2> I love Oliver Steele's work with dynamic languages, and have really enjoyed doing "instance first development" with OpenLaszlo, and miss it now that it's gone obsolete, because I haven't found anything quite like it.

[https://en.wikipedia.org/wiki/OpenLaszlo](https://en.wikipedia.org/wiki/OpenLaszlo)

It's about iteratively programming from the ground up, avoiding premature and unnecessary abstraction, smoothly and rapidly developing prototypes into reusable components and working products, and organically growing and easily abstracting only when needed.

I think there's still a lot to be learned from OpenLaszlo and applied to new systems. It would be great to inspire somebody to take the idea of instance first development, and run with it in a modern framework.

Oliver is an old school Lisp Machine hacker, so OpenLaszlo had a very declarative prototypical Lispy feel to it! Another "dynamic language" Oliver created was Dylan at Apple.

[https://en.wikipedia.org/wiki/Dylan_(programming_language)](https://en.wikipedia.org/wiki/Dylan_\(programming_language\))

OpenLaszlo was a VERY enjoyable system to work with, because of the way instance first development dovetailed with constraints, prototypes, and data binding, that really got me into an extremely productive groove.

Of all the frameworks I've learned about, Svelte seems the most like OpenLaszlo, philosophically. They both have a JavaScript to JavaScript compiler that wires up reactive constraint dependences automatically, for example. But I don't think Svelte has an instance creation syntax that parallels its class definition syntax, to enable the "instance substitution principal" that supports instance first development: An instance of a class can be replaced by the definition of the instance, without changing the program semantics.

[https://svelte.dev/](https://svelte.dev/)

Here's some stuff I recently (and not so recently) posted about OpenLaszlo (with some broken links fixed):

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

Oliver Steele describes "Instance First Development", which the language he designed, OpenLaszlo, supported through the "Instance Substitution Principle". I've written about it here before, and here are some links and excerpts.

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

In the right context, prototypes can enable Instance-First Development, which is a very powerful technique that allows you to quickly and iteratively develop working code, while delaying and avoiding abstraction until it's actually needed, when the abstraction requirements are better understood and informed from experience with working code.

That approach results in fewer unnecessary and more useful abstractions, because they follow the contours and requirements of the actual working code, instead of trying to predict and dictate and over-engineer it before it even works.

Instance-First Development works well for user interface programming, because so many buttons and widgets and control panels are one-off specialized objects, each with their own small snippets of special purpose code, methods, constraints, bindings and event handlers, so it's not necessary to make separate (and myriad) trivial classes for each one.

Oliver Steele describes Instance-First Development as supported by OpenLaszlo here:

Instance-First Development

[http://blog.osteele.com/2004/03/classes-and- prototypes/](http://blog.osteele.com/2004/03/classes-and-prototypes/)

[...]

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

[...] The mantle of constraint based programming (but not Instance First Development) has been recently taken up by "Reactive Programming" craze (which is great, but would be better with a more homoiconic language that supported Instance First Development and the Instance Substitution Principle, which are different but complementary features with a lot of synergy). The term "Reactive Programming" describes a popular old idea: what spreadsheets had been doing for decades. [...]

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

Oliver Steele (one of the architects of OpenLaszlo, and a great Lisp programmer) describes how OpenLaszlo supports "instance first development" and "rethinking MVC":

[http://blog.osteele.com/2004/03/classes-and- prototypes](http://blog.osteele.com/2004/03/classes-and-prototypes)

[http://blog.osteele.com/2003/08/rethinking- mvc](http://blog.osteele.com/2003/08/rethinking-mvc)

[...] I've used OpenLaszlo a lot, and I will testify that the "instance first" technique that Oliver describes is great fun, works very well, and it's perfect for the kind of exploratory / productizing programming I like to do. (Like tacking against the wind, first exploring by creating instances, then refactoring into reusable building block classes, then exploring further with those...)

OpenLaszlo's declarative syntax, prototype based object system, xml data binding and constraints support that directly and make it easy.

OpenLaszlo's declarative syntax and compiler directly support instance first development (with a prototype based object system) and constraints (built on top of events and delegates -- the compiler parses the constraint expressions and automatically wires up dependences), in a way that is hard to express elegantly in less dynamic, reflective languages. (Of course it was straightforward for Garnet to do with Common Lisp macros!)

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

Instance-First Development:

[https://blog.osteele.com/2004/03/classes-and- prototypes/](https://blog.osteele.com/2004/03/classes-and-prototypes/)

>The equivalence between the two programs above supports a development strategy I call instance-first development. In instance-first development, one implements functionality for a single instance, and then refactors the instance into a class that supports multiple instances.

>[...] In defining the semantics of LZX class definitions, I found the following principle useful:

>Instance substitution principal: An instance of a class can be replaced by the definition of the instance, without changing the program semantics.

In OpenLaszlo, you can create trees of nested instances with XML tags, and when you define a class, its name becomes an XML tag you can use to create instances of that class.

That lets you create your own domain specific declarative XML languages for creating and configuring objects (using constraint expressions and XML data binding, which makes it very powerful).

The syntax for creating a bunch of objects is parallel to the syntax of declaring a class that creates the same objects.

So you can start by just creating a bunch of stuff in "instance space", then later on as you see the need, easily and incrementally convert only the parts of it you want to reuse and abstract into classes.

What is OpenLaszlo, and what's it good for?

[https://web.archive.org/web/20080211173607/http://www.donhop...](https://web.archive.org/web/20080211173607/http://www.donhopkins.com/drupal/node/124)

Constraints and Prototypes in Garnet and Laszlo:

[https://web.archive.org/web/20080211173607/http://www.donhop...](https://web.archive.org/web/20080211173607/http://www.donhopkins.com/drupal/node/69)</comment>


Covid-19 Risk Assessment Guide for Your Project - <AUTHOR> https://teamsuccess.io/risk <comment><AUTHOR> We wrote an introductory risk assessment guide, since we got lots of questions about the additional risks that COVID 19 introduces into projects.</comment>


Untangling the WebRTC Flow - <AUTHOR> https://www.pkcsecurity.com/blog#webrtc-flow <comment><USER2> Your article is very good, but I only know that because I've been through this myself. I'm not sure I would have completely understood WebRTC until I implemented it in an application by myself for the first time. Once you get it, it's actually quite simple. I think it's the unfamiliarity of the various terms like ICE, STUN/TURN, and SDP, and everyone treating the issue like everyone should A) already know what those are, or B) be able to figure out the implications once given the acronym definition. If you're going from WebSockets to WebRTC, there is a lot of new terminology to swallow all at once.

But you definitely helped clear up some of the rougher points for me. Like, I didn't realize that createOffer should be called after the negotiationNeeded event occurred. I just call it immediately after creating my DataChannel (I'm doing text-only transmissions as part of a system to combine inputs from multiple devices to play a game). I had wondered what the negotiationNeeded event was all about, but none of the articles I'd found had really said anything clear about it, and it wasn't in any of the example code I found.

And I found all of this through MDN! The existing documentation for WebRTC is apparently really bad. And that's quite disappointing, because I've usually found MDN to either be excellent or merely incomplete, not specifically having documentation that was poor.

Again, thanks for this.

<comment><AUTHOR> Thanks! Yeah, the major motivation behind this was to fill in some missing gaps in the documentation. There unfortunately is a bunch of incomplete and/or inaccurate info that's out there (maybe because the spec is still in flux).

</comment></comment><comment><USER3> Does anyone happen to know how one is expected to choose the _output_ audio device? Seems like every WebRTC app just uses the default output which is completely the wrong thing to do when using a headset.

</comment><comment><USER4> Why would any sane person bring SDP into WebRTC? They had a fresh slate to get things right, and instead they end up making it worse than the SIP headache. SDP, the spec that suggests people might use SDP to setup _chess_ games is a terrible format. In fact, unless they changed the offer answer model, there's actually no way to determine what single codec is in use. It's one of those things where every vendor sorta does something, and relies on tons of interop and guessing to actually come up with an implementation. Plus it's yet another custom parser with a strange format. And deliberately clipped in verbosity (for a text format) because the SIP authors were terrified of IP fragmentation and actually _spec 'd_ a hardcoded MTU size.

Edit: Frustration aside, this is a really nice explanation, thanks.

<comment><USER5> Where is the MTU of SDP specified? I can't find it in RFC 4566.

Furthermore, the SDP configurations that Windows Media Services emits can include a multi-kilobyte base64-encoded ASF configuration element. So it's not like applications can't choose to ignore such a rule, or agree on a standard that drops such a limitation.

If I had to guess why they used SDP it's because 1) it's simple to parse and 2) WebRTC also uses RTP, and RTP libraries already typically include or are accompanied by SDP libraries.

I dislike standards that provide so much rope for people to hang themselves. Multimedia standards are horrible rats nests of options, sub-options, and sub- sub-options, the vast majority of which nobody uses or even parse correctly. And while SDP is simple, it aids & abets such behavior by being such a generic format.

Still, it's common and there are plenty of standards which define various SDP configurations.

<comment><USER4> The MTU is specified in the SAP protocol. Which is even more strange; a mixed binary and ASCII system, rife with the IETFs poorly conceived SHOULD and MAY clauses, which serve no purpose other than to cause interop issues. Anyways, perhaps networks in 1999 didn't know how to handle IP fragmentation. SIP made the MTU issue worse, requiring _switching to TCP_ on-the-fly when a message exceeded their arbitrary MTU. I'm saying perhaps these considerations are why SDP has such strange choices in formatting.

In context of WebRTP, SDP provides no benefits. Might as well used a JSON representation of the media negotiation, requiring no additional parser. Things are already ambiguous and poorly handled when using SDP in the real world. I think it must be something about "simple" permissive protocols that encourage implementation issues.

</comment></comment></comment><comment><USER6> I found [http://peerjs.com/](http://peerjs.com/) really, really helpful when attempting a webRTC project. Like most people, I found the spec to be a lot of gibberish and even the majority of examples are hard to follow. PeerJS 'just works'.</comment>


Amazon accused of 'intolerable conditions' at Scottish warehouse - <AUTHOR> https://www.theguardian.com/technology/2016/dec/11/amazon-accused-of-intolerable-conditions-at-scottish-warehouse <comment><USER2> So is it a condition of employment they sleep in tents or is this just another anti-amazon story with no real basis?</comment>


Is the iPad Mini the Beginning of Apple's Decline? - <AUTHOR> http://gizmodo.com/5959770/ <comment><USER2> I think the Mini is the worst business decision ever for Apple.

According to numbers, it's a great idea. They hope to get some sales from the cheaper android versions.

But what is different now, is that the price tag gets a lot lower and the iPad has to compete MORE.

Now it's obvious that the iPad mini 32 gb is 2x as expensive as the Nexus 7". Add 20$ to the Mini and you can have a Samsung Galaxy Tab SII 10 inch.

While according to numbers, it's a good decision. Apple will be losing face, because people can get more bang for their buck at competitors and narcisme doesn't count as much any more as it used to.

</comment><comment><USER3> What this writer doesn't understand:

\--not every single human has a 10" iPad, already. \-- the iPad mini is a response to a different segment of the market that Apple was missing out on. \-- the iPad mini is Apple's new iPod.

Just because this isn't made for tech writers doesn't mean that it won't add to Apple's revenues and it especially doesn't mean that Apple doesn't have anything else in the pipeline for brand new segments.

Has everyone forgotten about Apple TV already? Just last spring all of the major news outlets were reporting on it...

</comment><comment><USER4> Dave Winer via Gizmodo? Give me a break.

</comment><comment><USER5> The effect that the Retina Display had our industry is both magnificent and tragic at the same time. The screen is beautiful, but the increase it's had on consumer expectations is unfortunate.

We don't need a Retina Display on every computer we use.

<comment><USER6> Why is an increase in expectations unfortunate?

<comment><USER5> Apple has succeeded in convincing consumers they need something that they really don't. In other words, I think the consumer's perceived value of an ultra-high resolution display is much greater than its actual value.

<comment><USER7> Depending on the meaning of "need" you may be correct -- at least, I'm having a hard time imagining a task which can only be performed on a retina display. However, for most people I think the display will serve as the primary source of output from their digital device, and I think it makes a lot of sense to improve it as much as possible. Even if it's only for an improved user experience and not any strict requirement, I think it's beneficial. After all, if computers still had the user experience quality that they had in the 80s they probably wouldn't be so common place today.</comment></comment></comment></comment>


I scratch it to make myself feel good - <AUTHOR> http://www.magedsharabi.com/i-scratch-it-to-make-myself-feel-good/

<comment><USER2> that's the reason I scratch it too :)</comment>


Image diffing using CSS - <AUTHOR> http://franklinta.com/2014/11/30/image-diffing-using-css/ <comment><USER2> If it's two images you are comparing you can use `background-blend-mode: difference` to spot the differences also.

E.g. [http://codepen.io/bennettfeely/pen/NGdzjr](http://codepen.io/bennettfeely/pen/NGdzjr)

</comment><comment><USER3> This is the same general method as I used to quickly solve "spot-the- difference" games as a child. Just cross your eyes until the images match and let your brain pick out the disparities.

<comment><USER4> Does this method also work when I'm missing a semicolon somewhere between lines 35 and 994?

<comment><USER5> Use an IDE or a linter.

<comment><USER6> Or git diff

</comment></comment></comment></comment><comment><USER7> What if the two images were taken from a camera instead, and are subject to some noise/transformation? I worked on an image algorithm on this related problem a couple years ago: [http://shuklan.com/photo/difference- analyzer/](http://shuklan.com/photo/difference-analyzer/)

</comment><comment><USER8> I would like to see an image diff which could reason about insertions and deletions as well as just changed pixels. For example if I were to insert a new section in a webpage, and take a screenshot before and after, the image diff would show the new section of the screenshot in green.

</comment><comment><USER9> Neat... I can see a use case for this in comparing pre- and post-final HTML documents (though I don't relish the headaches involved in actually acquiring both relevant sets of images at the same time out of our CMS).

Presumably it gets deeply murky when dealing with compressed jpegs?

<comment><USER10> Rather than use this, you can use a custom tool built for comparing websites, for reasons similar to your use-case:

[http://responsivenews.co.uk/post/56884056177/wraith](http://responsivenews.co.uk/post/56884056177/wraith)

[http://bbc-news.github.io/wraith/index.html](http://bbc- news.github.io/wraith/index.html)

<comment><USER11> Thanks for sharing this. I actually had this exact idea last year, but BBC News implemented it better than I probably ever would have.

</comment></comment></comment><comment><USER12> Not too far from it being a useful business. See: diff.io or diffbot.com.

</comment><comment><USER13> Cool idea. Btw if you want a tool that does this, the free Perforce diff/merge tool can diff images. It allows you to specify a tolerance for how different as well.

<comment><USER14> imagemagick also has `compare`. I wouldn't be surprised if Perforce uses that under the hood

</comment></comment><comment><USER15> Very cleaver idea..UI automated tests can be a lot simpler.

</comment><comment><USER16> There's a 3.5" floppy disk on the tray of cookies on the right!</comment>


How to avoid being forked into oblivion by a more powerful contributor? - <AUTHOR> http://programmers.stackexchange.com/questions/253925/how-to-avoid-being-forked-into-oblivion-by-a-more-powerful-contributor

<comment><USER2> Step 1 would be to read the MIT license before you apply it to your project, so if you want to always be in control of it you know not to use that license because of how explicitly, deliberately permissive it is.</comment>


Neovim now has builtin terminal emulation via libvterm - <AUTHOR> https://github.com/neovim/neovim/pull/2076 <comment><AUTHOR> This will be used for :! and :shell commands.

* :term [prog/args] will open a new special buffer "connected" to a pseudo terminal running prog/args

* any command that would enter insert mode will focus the terminal buffer instead.

* when focused a new mode is entered where all keys are passed directly to the program. The <c-g><esc> combination will return to normal mode.

* new terminal-only mappings can be added with the "t" prefix(eg: tnoremap <c-a> <c-g><esc> exit terminal focus using ctrl+a)

Someone asked: "I really don't know how I would use this feature but it's impressive how well it works."

tarruda replies: "With time, the numerous use cases for this feature will be clear, but here's one idea: This allows another level of integration between text mode programs and Neovim. For example, we'll be able to make gdb respond to nvim mappings and change file/line numbers when a breakpoint is hit(Technically this might be possible with tmux but not without numerous hacks)"

If you want to try this out yourself and have installed neovim with brew, do this:

      brew tap neovim/homebrew-neovim
      brew edit neovim

At the top of the recipe, change the head:

      #head "https://github.com/neovim/neovim.git"
      head "https://github.com/tarruda/neovim.git", :branch => "builtin-terminal-emulation"

And then:

      brew install --HEAD neovim
      -or-
      brew reinstall neovim

<comment><USER2> This promises to be _incredible_ for all of the use cases where folks currently remote-control tmux windows, etc. When considering things like debugger integration, this cracks the door to some features previously owned well only by GUI IDEs.

I think the killer feature here is not just terminal-in-vim, but the full emulation aspect. When I used to use Emacs extensively, I could never really get into eshell because it ignored terminal emulation. It was OK for some things, but mostly just threw a wrench in my normal shell workflows.

<comment><USER3> To note: Emacs supports full terminal emulation too, with `ansi-term`. It's a little janky switching between line/char mode, but I use it as my default terminal.

Of course, if you use Vim, this looks great too! I just don't want anyone to be dissuaded from Emacs for this reason ;)

<comment><USER2> Thanks for the info. It's been many years since I tried shell use under Emacs; I should have figured there'd be a better solution by now!

</comment></comment></comment></comment><comment><USER4> This is another proof of how editors and terminal multiplexers should really be just one thing.

Editors are replicating terminal multiplexer functionalities - tabs, windows, and now with terminal emulation they have _become_ terminal multiplexers. Terminal multiplexers are also replicating editor features (copy-mode of tmux, for example). Unfortunatly neither has reached a state to completely supersede the other - I always find vim's window-manipulating commands obscure, and copy-pasting with tmux is never as satisfactory as in vim. I suspect that such a state will never be reached, since both party are still keeping their narrow mindsets - vim still tries to remain an editor, and tmux still tries to remain a terminal multiplexer.

The world can benefit from something that is built as both an editor and a terminal multiplexer from the very beginning. There is acme ([http://en.wikipedia.org/wiki/Acme_%28text_editor%29](http://en.wikipedia.org/wiki/Acme_%28text_editor%29)), but we need something slightly more elaborate and friendlier to the keyboard.

(There is also emacs, which is both an editor and a terminal multiplexer. But it is also a news reader, a web browser, and a million other things. Something that is "just" both an editor and a terminal multiplexer is probably better for the reset of us.)

<comment><USER5> No. They are not the same and shouldn't be. Rather they should communicate with each other. That is vim shouldn't have its own window functionality but instead detect that it runs within a terminal multiplexer and instruct it to create a new window. When I find the time I will try to experiment with this design in vis.

[https://github.com/martanne/vis](https://github.com/martanne/vis)

As for the copy mode, in my opinion the multiplexer should use the editor as a filter (which requires that the editor uses stderr for its regular output). The whole scroll back buffer is piped to the editor and whatever the editor writes to stdout is kept around in a copy buffer.

That is the way it is implemented in the latest dvtm releases.

[http://www.brain-dump.org/projects/dvtm/](http://www.brain- dump.org/projects/dvtm/)

<comment><USER6> Reusing one's functionality is amazing, but not always the best solution.

The example you gave is exactly this: imagine if your web-browser would create new windows instead of tabs. Why? Well, it would just let OS manage the tabs, afterall that is the main functionality of the Operating System.

Hardly everyone wants their vim to create a bunch of tmux windows messing up their workflow: constantly changing IDs of tmux windows; slow navigation between vim files as user now has to open ID 15 (tmux); mixed order... Oh that sounds as bad as seeing all your open websites in Meta/Alt+Tab.

So please, do not speak for everyone with arguments " _vim shouldn 't have its own window functionality_".

<comment><USER5> If your window manager is not able to manage your windows to your liking, you might want to fix it? Arguably creating a new window per tab is the correct thing to do. This allows your window manager to do its job. It is also more flexible, for example you can use something like tabbed ([http://tools.suckless.org/tabbed/](http://tools.suckless.org/tabbed/)) to group multiple applications into a tab-like interface.

As for the editor case, in dwm/dvtm lingo each editor instance (or filename?) would get its own (dynamic?) tag. Therefore you can easily switch to a view which only contains your editor related windows.

Again if your navigation among tmux windows is slow/cumbersome you might want to improve that instead of duplicating the functionality at another layer.

</comment></comment></comment></comment><comment><USER7> libvterm is really awesome and a very powerful library it's great to see it getting more use.

I've previously used it for a graphical terminal project ([http://41j.com/hterm](http://41j.com/hterm)) and via Emscripten to create a web-based ssh client ([https://minaterm.com](https://minaterm.com)). It's been very easy to work with in both cases.

<comment><USER8> It looks great, though light on documentation.

<comment><USER7> Thanks, yes at present both projects are mostly proof of concepts. I'd want to see if they gain any general interest before putting much more time into them and improving documentation (and to be frank general quality of the code).

</comment></comment></comment><comment><USER9> whats the status of neovim at the moment ? has it reached a level such that you can use as an editor on a daily basis ?

<comment><USER10> I've been using entirely Neovim for around 4 months now. The only issue i experienced was two plugins (out of many) that had slight issues. One was an issue with Powerline, and i forget the other. Note that i had wanted to get rid of powerline anyway, so i didn't bother trying to get it to work.

As a side effect, various things seemed to become much faster, such as Vundle installs. I assume this is due to some async work, but i never really looked into it, so this is very anecdotal.

Overall it's been a seamless transition. I haven't even bothered to keep up to date with the repo master, simply because it has worked so well i haven't needed to.

Really enjoy this project, can't recommend it enough :)

<comment><USER11> > Really enjoy this project, can't recommend it enough :)

Genuine question, why is it so great? any reason to switch to it?

<comment><USER12> One of the big reasons is it has multithreading. So, you know when you have a plugin that's doing something and the whole editor locks up so you can't do anything... with NeoVim there's a way to prevent that from occurring.

<comment><USER13> I tend to avoid plugins so that really has never happened to me. I can see how that would be annoying to those that do though.

<comment><USER14> Additionally, neovim has gone through a huge code cleanup. Something vim will not do because they want to maintain infinite backwards compatibility.

Many old builds have been dropped and a number of important things have started using libraries (libvterm just an example of this). In theory this won't change the functionality, but may, long term, improve stability.

It's also nice that we aren't relying on one person to keep the project going. Bram is very dedicated, but when his response to "How can the community ensure that the Vim project succeeds for the foreseeable future?" is "Keep me alive", that doesn't say anything great about the project.

</comment></comment></comment></comment></comment></comment><comment><USER15> Does neovim support 24 bit color themes for terminals which support it like Konsole?

<comment><USER16> Not yet [https://github.com/neovim/neovim/issues/59](https://github.com/neovim/neovim/issues/59)

</comment></comment><comment><USER17> Has anyone played with Atom NeoVim? That looked like the most promising gui based approach. I'm sticking with macVim in the near term, but I'd love to play with Atom.

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

</comment><comment><USER13> How is the Windows side coming along?

<comment><USER18> Builds and Runs apparently: [https://github.com/neovim/neovim/pull/810#issuecomment-74986...](https://github.com/neovim/neovim/pull/810#issuecomment-74986872)</comment></comment>


Why We Don't Need Phone Numbers Anymore - <AUTHOR> http://baligu.blogspot.com/2011/05/addresses-identity-and-social-media.html

<comment><AUTHOR> Apologies for the link bait like title, but I'd be interested to hear your thoughts.</comment>


Elon Musk Acquitted of Defamation Against British Diver - <AUTHOR> https://ourbitcoinnews.com/elon-musk-tesla-ceo-elon-musk-defamation-case-latest-news-updates-elon-musk-acquitted-after-calling-british-cave-diver-pedo-guy-acquitted-in-case-of-elon-musk-defamation-britis/ <comment><USER2> Am South African - never heard of the phrase. Certainly not pedo cow??

Closest I can think of is pedo mustache. And there it has actual hints of candy van about it so not helping his cause.

<comment><USER3> Copyrighted article is tossed into a language converter and tossed back.

And you get a new article.

With a few improvements to the story like guy -> cow

Might be a GAN, but seems to high tech</comment></comment>


Worse than Heartbleed? Today's Bash bug could be breaking security for years - <AUTHOR> http://www.theverge.com/2014/9/24/6840697/worse-than-heartbleed-todays-bash-bug-could-be-breaking-security-for

<comment><USER2> Betteridge's law? I know that the headline doesn't actually end with the question mark, but I think it just might still apply.

</comment><comment><USER3> I sometimes imagine a world where OpenBSD is the norm for most data sensitive services, not just firewalls.

</comment><comment><USER4> Aren't wabbits and forkbombs common knowledge in 2014?</comment>


Philippe Starck: Why design? - <AUTHOR> http://www.youtube.com/watch?v=Z4PwHD7XKj0&feature=player_embedded#!

<comment><USER2> He's a designer, why doesn't he have any slides or other preparation for a TED talk? Does he put any effort into speaking English clearly? Why does he talk about that bogus lightning/primordial soup theory? Why is he attacking a straw man that we are the permanent pinnacle of evolution? Eight minutes in and he still hasn't said anything about design. I give up.

<comment><USER3> That talk is only about design! Do you know who Philippe Starck is?

<comment><USER2> No. Is it a pre-requisite that I know who he is in order to appreciate his TED talk? Because what I saw didn't stand very well on its own merit.

<comment><USER3> if you are going to complain about the things you do I would say yes it is a pre-requisite.

</comment></comment></comment></comment><comment><USER4> This is interesting, not in a way that's easy to understand. A few of his keypoints are:

\- On Design: when designing something, think beyond (in fact, way beyond) the thing that you are designing.

\- On Living: the smart way to live is to build stuff for many people (the more the merrier).

\- On Civilization: do your best to fulfill your part.

</comment><comment><USER5> Anyone have a transcript? I tried, I really did.

<comment><USER6> Here: <http://blog.ted.com/2007/12/04/starck/>

</comment></comment><comment><USER7> Phillipe Starck is such a wind bag celebrity designer. I don't believe this guy for a second just because he's pseudo philosophical. Congratulations on your horrible lemon squeezer.

<comment><AUTHOR> That's the feeling I had before watching this video. Have you watched it already ? I'm pretty amazed by what he says even with my previous thoughts about him.

</comment></comment><comment><USER8> Can't stand his accent, and I'm french...

<comment> saint-loup Same here.

Maybe because it's not so different from my own english accent. :]

</comment></comment><comment><USER9> I'm pretty sure Starck is a better marketer than designer. (Not that there's anything wrong with that.)</comment>


Show HN: Integer Snake – Connect squares with the same number in them - <AUTHOR> http://www.integersnake.com <comment><USER2> Nice work, what a fun game! (Although I'm not very good at it ;) )

<comment><AUTHOR> Hey thanks :)

</comment></comment><comment><USER3> I don't like that the numbers get added randomly, but pretty fun otherwise

<comment><AUTHOR> Yeah, people are divided over this. Some people (me example) like this random element. Some don't.

<comment><USER4> A compromise is to have next 3 numbers coming shown on the side. We can then be a bit tactical about it.

</comment></comment></comment><comment><USER5> Would a better method for the tiles in the chain be to sum up to that point?

</comment><comment><USER4> Would love this as an android game. Very addictive.

<comment><AUTHOR> I'll definitely consider making one! For now I'll keep on fixing some issues here and there :)

</comment></comment><comment><USER6> Great game, collecting 48 in a cell is my max by now.

<comment><AUTHOR> Thanks! Mine is 144 ;D</comment></comment>


Ask HN: Your favorite TED Talks to help me prep for mine - <AUTHOR> Hi everyone! I've been selected to give a TEDx talk about the gender gap in technology and about how I, while working with a nonprofit, am working on closing this gender gap. Please help me by: 1. Sharing your favorite TED talks 2. Sharing your least favorite TED talks, or ones that weren't done in the best way. 3. Sharing any research/resources you might have for information about the tech gender gap, or any books you might recommend I read! <comment><USER2> Check this list out: [https://docs.google.com/spreadsheets/d/1Yv_9nDl4ocIZR0GXU3OZ...](https://docs.google.com/spreadsheets/d/1Yv_9nDl4ocIZR0GXU3OZuBaXxER1blfwR_XHvklPpEM/edit?hl=en&hl=en)

They used to have a ratings column, but it doesn't look like its there anymore : /

<comment><USER2> When ratings column was there, as far as I remember this was the higher rated talk: [https://www.ted.com/talks/ken_robinson_says_schools_kill_cre...](https://www.ted.com/talks/ken_robinson_says_schools_kill_creativity?language=en)

And the lowest rated one, I cant find it, but the presenter made a put with word "shit" in it or something like that and kept repeating to get a few more laughs out of the crowd, but he kept doing it (4-5 times in a span of 4 min), he stopped when Chris Andreson lost it and spoke up from the audience saying he won't ever present on that stage again.

</comment></comment><comment><USER3> Favorite Ted talk: [https://youtu.be/ORp3q1Oaezw](https://youtu.be/ORp3q1Oaezw)

Good luck with your Ted talk!</comment>


The Dave Matthews Band shows how to make money in the music industry - <AUTHOR> http://www.slate.com/id/2279757/pagenum/all/ <comment><USER2> Want a TLDR version? The gist is that unlike the traditional musician business model (get discovered, get a large amount of money up front, produce shippable versions of your product), they actually - ya know - work for a living. DMB incrementally grows their fan base by constantly reaching their customers directly, and selling them shows instead of records. And while the "record" business is dying, music isn't going anywhere. Satisfy a core customer need, work your ass off, and you have a viable business. You don't need to go raising tons of money to have a huge reach.

Hmm, what other thing does this sound like?

<comment><USER3> _Hmm, what other thing does this sound like?_

Yes, yes, yes. Music groups are small businesses and bootstrapping is now a model that makes sense for many of them. But although there are many parallels between musicians and startups (labels are the VCs of music etc.), there are some significant differences. For example, one of the tenets of bootstrapping is the pivot. If you're not profitable, take what you've learned and change your direction. For musicians this is far more difficult I believe. Like many popular artists, DMB's success stems from their unique 'sound'. This sound is a special mixture of each members personality and is very hard to change up while still remaining genuine. Founders certainly have a similar effect on their startups product, but I believe its far easier to hire a new designer than to stop playing the music you feel in your heart.

tl;dr - Music is business but its also an art. There needs to be a new bootstrapping methodology tailored towards music.

<comment><USER4> Re: Bands Pivoting - Happens all the time. They try out new drummers, new singers, new bass players. Sometimes they go solo. They keep experimenting, either with their style, or their bandmates, until they find something that works for them - both artistically and commercially.

Sometimes it never goes anywhere - but that's true of startups as well.

</comment></comment></comment><comment><USER5> The author seems to make the weird assumption that DMB is somehow not as "big" as Bon Jovi and so they must be doing something clever to be making as much money.

That's simply the delusions of an out-of-touch 50 year old. DMB was the most consistently popular musician of my generation. How to make money in the music industry? Make music that hundreds of millions of people want to listen to.

<comment><USER6> Also, DMB got famous from the "old" music industry when you could still make some money by selling CDs. I'm tired of the "now that the label has made me famous, who needs labels" and "now that I've had N platinum albums, who needs to sell albums" stories; I'd like to hear about a _new_ artist who succeeded without help from the industry.

<comment><USER7> Sufjan Stevens seems to have built a reasonably successful music career without having a major label deal. His CDs are issued by an indie label (Asthmatic Kitty) he reportedly co-owns with his stepfather (<http://en.wikipedia.org/wiki/Asthmatic_Kitty>), and while he doesn't seem to come close to Dave Matthews in concert revenues, his tours seem to do all right.

<comment><USER8> Good example. I wasn't aware he did everything on his own. I've been to see him live and the crowds are always large and very excited.

<comment><USER9> Clap Your Hands Say Yeah achieved widespread popularity in the indie scene through MP3s with a self-release debut, no record deal of any kind.

<comment><USER10> How much of that do you think depends on location? How critical is having a local (e.g. tri-state) scene?

</comment></comment></comment></comment></comment></comment><comment><USER11> They make money for three reasons:

1\. Their music is excellent and consistent. Dave Matthews is one of the best songwriters of this generation.

2\. They constantly make concerts exciting by playing completely different versions of their songs live, with emphasis on improvisation. People go to DMB concerts two nights in row because they never know what they're going to get. They won't get a repeat show- they'll get something completely different, often times. I don't know many other bands who have fans that would go to a concert two nights in a row.

3\. They also seem to genuinely love touring / performing. They give up a lot to be on the road that often, and I don't think its money or fame they're chasing.

<comment><USER12> for proof of 3. just check out their drummer. He constantly has a huge smile on his face during the shows, and they all seem to be having a blast.

Its too bad they're not touring this summer, I've seen them the past 3 years and their shows never fail to impress

</comment></comment><comment><USER13> The article (like many of its style) draws strong comparisons to the grateful dead. They serve as a cautionary tale as well - the road, especially when defined as year in year out tours, can take a heavy toll. They lost three keyboardists to drug and alcohol abuse (two directly and one had to leave), their last one had serious drug problems and their bassist struggled with hep C and needed a kidney transplant.

Garcia was of course the most famous casualty - he died in rehab due to the complications of long term abuse. He struggled with addiction for ~20 years and according to some reports often longed to quit the road entirely in part because of its effects on his health. In the end the band simply made too much money - and provided for too many peoples livelihood through their touring regime - and when met with resistance to stop he simply felt he needed to soldier on for other's benefit.

It's not all drugs and alcohol either - many musicians find the road punishing sooner or later for reasons ranging from diet and exercise to alienation and homesickness. I'm sure a few consultants out there can sympathize.

None of this is to say that a comfortable living can't be made on the road or that a live music oriented can't counter some of the negative effects piracy has on artists. But clearly there are some people out there (who are being held up as the ultimate examples) that might not choose to do it that way again.

<comment><USER14> I'm a huge DMB fan and have seen them many, many times. I can say with certainty that the quality of DMB shows gets worse every year, as clearly the band is just plain worn out. I was very happy to hear they are taking 2011 off. Touring every year (and they often do up to three tours a year: summer, winter and a non-US tour) just can't be good for them.

</comment></comment><comment><USER15> DMB makes money by having an utter sociopath for a manager, a fellow named Coran Capshaw. Coran would sell his own mother in the slave markets if she could fetch a few bucks.

<comment><USER16> He raised the price of phish tickets to $70 a pop this tour. He's a maniac and IS the reason they make so much money.

<comment><USER17> Phish is like crack to some of my friends. They go to every single show in a 250 mile radius. Year after year. Then complain they are broke.

</comment></comment></comment><comment><USER18> I don't know if other bands are doing this, but Phish did live pay-per-view of their New Year's Eve mini tour for $15-$20 per show. That seems like a very interesting model.

I love going to see concerts, but can easily imagine paying $x to see some well videoed live shows in HD.

<comment><USER19> Phish and DMB share the same manager

</comment></comment><comment><USER20> Most bands don't have this luxury. They make money because they are popular and are able to still sell out venues.

<comment><USER21> But how did they become popular? Is the way they did it now blocked for other musicians, or is it now easier than before to reach potential fans?

<comment><USER22> I used to trade CDRs with people from all over the US/World for each show via snailmail. (I recorded a few shows back in 97/98 on minidisk) The early tape trading CDR community centered around DMB is one of the most endearing 'net communities' I have ever been part of (google "Dave Matthews Band CDR Webring"). Some people might say the band killed that a little when they started releasing their own copies, but I think a lot of people accepted it because of the quality of those official copies (to this day they release old shows in much better audio that the tape traded copies). I have not really been part of the show trading community for about 7 or 8 years, but it was great fun traveling from city to city for shows and meeting people you had traded and discussed stuff with on the net. That is something that certainly can still be replicated by today's bands. This was also possible not only because of the music but also the band's charismatic singer. I think people wanted to trade shows just to see what Dave said in certain instances.

</comment></comment></comment><comment><USER23> Why is the premise of the title and article that DMB makes money and other bands don't? Plenty of other groups are raking it in.

While record sales might be down, I bet the amount of musicians able to make a living wage today, solely from music, is much greater than it was in 1990. This is due to the same technology and disruptiveness that has shaved 10% off the earnings of the megastars.

The story should be about how smaller bands are now able to be much more successful, not that a mega-band can still pull $70 million while others have been reduced to (gasp) $50 million.

</comment><comment><USER24> You know, Hacker News is one of the last places that should be criticising the 'old fashioned' way of making money from music (e.g. contract with recording studio, make an album, recording studio keeps lion share of the profits).

Why?

Because the 'old fashioned' model of financing a band to produce a record is directly analogous to the VC model of financing a startup to produce a product.

Consider: in both cases the investor is taking a large risk, and needs to make multiple investments because the chance of each one going bust is large, and correspondingly they are looking for a 20x return (or more) from a 'hit', because they need to make big dollars from the few that achieve success to pay for all the ones that fail.

Except that, of course, the evil corps that make up the RIAA did much more for the artists than VCs ever do for software startups, including (but not limited to) big marketing pushes of their product.

NB: yes, I'm aware of Courtney Love's rant about how evil the music industry is: see

<http://www.salon.com/technology/feature/2000/06/14/love>

for an insider point of view.

I just think it is a bit rich to have people who suckle on the teat of VC money to tell the music industry that _they_ need to change and get with the times.

I wonder how much that point of view is motivated by the "music should be free" way of thinking - or as we like to call it "something for nothing and your money back".

<comment><USER25> Record labels don't invest in artists, they loan them money while taking a very substantial percentage and ownership. If you take funding and fail, you don't have to pay it back. Make an album and fail, and they own you.

<comment><USER24> Arguably that is only the case since musicians are less finance/numbers savy than programmers.

In any case, in America it would be relatively easy to get in the hole to your music studio to the tune (sic) of 2.2 million dollars, have your record flop, and then declare bankruptcy to avoid being 'owned'.

</comment></comment></comment><comment><USER26> Related from a technology standpoint: CASH Music (<http://cashmusic.org/>) is a non profit dedicated to providing technology to enable a more direct musician to patron relationship. Lots of artists are going this route, which is really much more in line with how artists typically made a living up until the 20th century (i.e. patronage).

</comment><comment><USER27> Could someone forward me the part of the article where it explains how an up and coming band can use a time machine to go back to an era where they can use the Recording Industry Promotion Machine to become a national act, such that they'll be able to build a large enough fan base to support a tour oriented business plan? Slate seems to be dropping that part in my browser.

</comment><comment><USER28> > "And while the "record" business is dying, music isn't going anywhere. > Satisfy a core customer need, work your ass of, and you have a viable > business."

Well, for some of us, music is what's RECORDED, not live shoes.

I can accept: "well, too bad, traditional recording profits are dwindling, just man it".

But, "it's no problem, just give live shows" is a stupid answer. At best, it's a non general enough one.

All those articles and blog posts hammering on the "make money by playing live shows" theme, feel to my European tastes as written by Texan rednecks, whose idea of music is Willie Nelson or something... (and DMB is not that far off).

It's 2011: there are tons of groups, music genres etc where it doesn't make sense to have traditional concerts. And there artistis that don't like to give them, anyways. Not all musicians want to be onstage, especially in electronica, ambient, etc genres. Heck, even the Beatles got bored and stopped playing live mid-career. Oh, and "selling t-shirts and merchandise"? Some people want to be in the MUSIC business, not that of Matel and Threadless.

<comment><USER10> 'But, "it's no problem, just give live shows" is a stupid answer. At best, it's a non general enough one.'

Hear, hear. This is a problem I've, of late, being trying to sort out, and would love to hear success stories about musicians or musical outfits that have a viable business without having to tour.

OTOH, I have no problem with selling related product; in fact, I found the idea compelling, especially non-traditional delivery means.

But not so much T-shirts and the standard rock memorabilia. "Art" objects, physical things that are interesting in their own right, whether it be some aspect of CD/DVD/USB/SD packaging or something more out there.

<comment><USER28> Yes, some kind of "art objects" I can see selling (speaking as an electronica artist), but t-shirts and typical rock memorabilia seem too gimmicky, like something a hair metal band would do.

I would also consider artistic/theatrical type shows, like The Residents use to do --things that are not tied to the typical "come to hear a band playing their same ole songs live".

<comment><USER10> 'I would also consider artistic/theatrical type shows, like The Residents use to do --things that are not tied to the typical "come to hear a band playing their same ole songs live".'

I've been contemplating that as well. For ideas on performing don't involve many live musicians, and I'd like to make the overall experience more engaging and memorable, ideally involving the audience in some not-too-gimicky way.

Creating something that people can't help talking and writing about for some time, even after it's well over, could get the buzz of more frequent gigs, but with (I hope) lower overhead.

And yeah, The Residents are a good example in that vein.</comment></comment></comment></comment>


Twitter bootstrap PSD free download ver.1.0 - <AUTHOR> http://gui.repixdesign.com/#freebies

<comment><USER2> I'm curious as to why you'd bother to mock up with a PSD when (at least in part) the idea behind Twitter Bootstrap is rapid prototyping?

</comment><comment><USER3> Typo: "Purshase" -> "Purchase"</comment>


Typefaces for Dyslexia - <AUTHOR> http://www.dyslexic.com/fonts <comment><USER2> They recommend Comic Sans. _They recommend Comic Sans._

</comment><comment><USER3> "Make your text 'Dyslexia friendly'"

Shouldn't that be: "Make your text 'Dyslexic-friendly'"?</comment>


After Facebook Deal, Moves App Changes Privacy Policy - k-mcgrady http://blogs.wsj.com/digits/2014/05/05/after-facebook-deal-moves-app-changes-privacy-policy/

<comment> k-mcgrady >> "As recently as Friday, Moves's privacy policy said the company did not "disclose an individual user's data to third parties," without a user's consent, unless compelled by law enforcement. The policy said it would stay in place even if Moves were acquired.

On Monday, the policy permitted a wider range of data sharing. "We may share information, including personally identifying information, with our Affiliates (companies that are part of our corporate groups of companies, including but not limited to Facebook) to help provide, understand, and improve our Services," the policy says."

I think the moral of this story is never to trust anything a company acquired by Facebook says. Personally I love the app but I'm deleting it. It basically contains a history of where I was, when I was there, and how I got there. The fact they blatantly lied to users has eroded the trust I had in them and I'll be switching to a different app (probably Breeze from Runkeeper).

NB: If you want to export your data you can [0]

[0] [https://accounts.moves-app.com/signin/export](https://accounts.moves- app.com/signin/export)</comment>


We Are Nowhere Close to the Limits of Athletic Performance - <AUTHOR> http://nautil.us/issue/39/sport/we-are-nowhere-close-to-the-limits-of-athletic-performance <comment><USER2> This is only true because running 1/100th of a second faster than the last person is considered sufficient to set a new world record. Will someone eventually run very slightly faster than Bolt? Probably. But there is no real reason to think that anyone will ever, say, run 100m in 7 seconds. That's pure speculation.

I think the article also underplays the role of training. It's extraordinary how poorly athletes trained even as recently as 50 years ago. This is evident when you look at the performance of lower tier athletes. There are now very many people who can run a 4 minute mile, even though this was an extraordinary feat as recently as 1954. Are they all genetic freaks? Or are they just training more effectively than runners did in the 50s?</comment>


South Korea's infection rate falls without citywide lockdowns - <AUTHOR> https://www.scmp.com/week-asia/health-environment/article/3074469/coronavirus-south-korea-cuts-infection-rate-without <comment><AUTHOR> I have proposed this solution previously [https://news.ycombinator.com/item?id=22429262](https://news.ycombinator.com/item?id=22429262) I am glad to see this playing out nicely in South Korea.</comment>


Will It Optimize? (2010) - <AUTHOR> http://ridiculousfish.com/blog/posts/will-it-optimize.html <comment><USER3> This has been resubmitted a few times:

Most comments: [https://news.ycombinator.com/item?id=1540567](https://news.ycombinator.com/item?id=1540567) (357 points, 1555 days ago, 60 comments)

Latest: [https://news.ycombinator.com/item?id=6823768](https://news.ycombinator.com/item?id=6823768) (2 points, 329 days ago, 3 comments)

Also, it would be a good idea to add [2010] to the title because some of the optimizations may be available in the latest gcc version. (I'd like to read an update, or a year by year comparison.)

<comment><USER4> And I upvote every time.

<comment><USER3> The article is interesting. But in many articles also the HN comments are insightful and interesting, so I like to read them again. This is the reason I usually link to the most voted/commented resubmission.

</comment></comment></comment><comment><USER5> On (1) recursion elimination ...

Tail-recursions are the exact equivalent of loops.

We've lost sight of what "recursion" means. There's a difference between recursive functions and recursive _algorithms_ , which need by definition a stack and there are lots of such problems that can't be optimized to run in constant space. Whether that stack is the call stack, or a manually managed stack (within a loop or a tail-recursion), that doesn't matter, what matters is that the space requirements are definitely not constant.

It's nice that the GCC compiler can optimize that Fibonacci sample. However you're not getting a guarantee that it can optimize every function that is optimizable. I'm also pretty sure that the compiler is extremely limited in what it can do here. And that is dangerous, as running in constant space is often a matter of correctness, not one of optimization. I would rather have the compiler err on me if it sees non-tail recursive calls, rather than try to be smart sometimes.

<comment><USER6> > recursive algorithms, which need by definition a stack

Your vocabulary is not standard.

[https://www.google.com/webhp?#q=recursive+algorithm](https://www.google.com/webhp?#q=recursive+algorithm)

[http://en.wikipedia.org/wiki/Recursion_(computer_science)](http://en.wikipedia.org/wiki/Recursion_\(computer_science\))

A recursive algorithm is one that computes a result by way of the same algorithm applied to a smaller input. (Smaller, or else the algorithm will diverge.)

The distinction between "stack" and "parameter" is a minor one. A simple factorial function has an ever-growing (accumulating) parameter.

Tail-recursive algorithms can be translated into loop algorithms. Thet are still recursive.

<comment><USER7> > (Smaller, or else the algorithm will diverge.)

This is not true. The first example that comes to mind is the ridiculously over-powered one: conjecturally ([https://en.wikipedia.org/wiki/Collatz_conjecture](https://en.wikipedia.org/wiki/Collatz_conjecture)), the definition

         f x | x `mod` 2 == 0 = f x/2
         f x | x `mod` 2 == 1 = f $ 3*x - <USER2>
         f 1                  = [ whatever ]

is perfectly well defined on positive integers `x`, although many recursive calls actually apply `f` to _larger_ values.

(To be fair, you didn't actually say what 'smaller' meant. I think it's one of the standard term-rewriting theorems that, if given the freedom to define 'smaller' appropriately, then any total recursive function _does_ make only smaller recursive calls.)

</comment></comment></comment><comment><USER8> The advice about enabling -ffast-math is dangerous. Be advised that the fpclassify() family of functions (e.g. checking for NaN or infinity) no longer work as expected. If you really want to go into that territory, be sure to read the compiler documentation: -ffast-math is an option that in fact enables a number of other flags, and you may want to be a bit more picky in which ones you choose.

</comment><comment><USER9> The first example is really dangerous. We recently had a issue with GCC not optimizing a tail recursion in a relatively large function with parameters passed in as references to std collections. The result - it was running out of stack space at large scale. So if you make it to a habit of using tail recursion extensively GCC can bite you where you don't expect.

Of course adding a unit test for every function saved the day as usual, however it is trivial to convert tail recursion into a loop and not worry about stack overflow.

<comment><USER10> It's nice to be able to annotate functions that should have some optimization done to it, and then the program fails to compile if it isn't able to perform the optimization.

<comment><USER11> Scala has this: [http://www.scala- lang.org/api/current/index.html#scala.annot...](http://www.scala- lang.org/api/current/index.html#scala.annotation.tailrec)

<comment><USER10> I've used it when implementing a game "loop" (just continually asking user for input to the game). It's nice to be able use recursion when you want to, and be sure that the call stack won't grow larger just by playing the game for several rounds.

</comment></comment></comment></comment><comment><USER12> I wonder how that 2nd example optimisation would behave with multiple threads, with one thread reading the string and another thread appending to it. Or would that be considered undefined behaviour? Probably an edge case (and likely to be a race condition bug), but still worth thinking about...

<comment><USER13> That would be UB. In fact C does not know much about threading at all, the result of a function should be "equivalent" to what it would be if the statements were executed in order, unless you use some synchronization primitives.

But if you call a function, even without suppling s as a parameter, instead of simply result += s[i], then that function could have side effects on the string since the char *s is not "restrict".

</comment></comment><comment><USER14> I'm surprised by the if chain one. I tried it using cremno's gcc.godbolt.org suggestion, and the newest gcc doesn't turn it into a jump table like the author suggests, but clang does.

[http://goo.gl/PgqAIs](http://goo.gl/PgqAIs) <\-- The code

</comment><comment><USER15> Now I think back many years to when I used bit shifts in C++ to 'optimise' some multiplications and realise I probably didn't measure twice before cutting. These days I hope I'm a lot saner!

</comment><comment><USER10> It feels like I have decent intuitive hunches about what compilers can do; I mostly just ask the question, "is the problem conceptually simple?", and go from there. Of course, I'm missing all of the edge cases and subtleties when I'm doing that. And I don't actively try to do it when it comes to actual code; mostly for quizzes like this.

My intuition seems to fail me, though, when we get to things like escape analysis in languages like Java. It seems like a conceptually simple problem - that is, stack allocating or "unpacking" objects (like value classes/objects)that are __obviously__ going to not escape the scope of a method. I don't mean simple as in determining _all_ objects. And the __obvious__ ones seem much more common than the non-obvious ones, in regular code. But then it seems that this is a fairly recent implementation, which might suggest that it isn't so simple to implement?

<comment><USER16> The JVM is ...hairy, and poorly understood. Some of its code has not changed since 1996, and much has been very heavily hand-optimized; the people who work on it today are not the people who originally wrote it. Implementing _anything_ in the JVM is not so simple; it's not really a reflection on the complexity of the thing you're implementing.

(It might have got better now - I know the OpenJDK folks were making some efforts in that direction)</comment></comment>


Ask HN: What is the best way to connect other HN users? - <AUTHOR> There are few users I want to connect to but on their profiles, I don't see any contact info. And just commenting on their comments to ask for email doesn't see quite right. <comment><USER2> If someone doesn't list contact information on their profile, then maybe the best assumption is that that person does not wish to be contacted in the context of using Hacker News. To put it another way, it's not clear why you wish to contact those few users: maybe you're a recruiter or a grifter or looking for a technical cofounder to implement an idea for 10% sweat equity. Or not. Either way, Hacker News isn't Linkedin. It makes anonymity available by default and other people's choice in that regard is worth respecting as a community value.

Good luck.

<comment><AUTHOR> valid point. Fair enough.

</comment></comment><comment><USER3> You're profile doesn't have any contact details either.

<comment><AUTHOR> Updated.</comment></comment>


Hurricane Sandy Eats - <AUTHOR> http://www.hurricanesandyeats.com/ I built this website, so that people who are on the East Coast can figure out which restaurants are open near them as things slowly open back up after the Hurricane.<p>So far it's mostly focused around midtown Manhattan but feel free to add additional openings in other affected areas. <comment><AUTHOR> If anyone finds this tool useful, please consider donating a small amount to the American Red Cross to help the victims of Hurricane Sandy. I've included a link on the site, but you can also go directly to the Red Cross website.

</comment><comment><USER2> Totally irrelevant, but I first parsed that domain name as "Hurricanes and Yeats" and second as "Hurricanes Andy Eats."</comment>


Ask HN: Can someone please recommend interesting startup/tech documentaries? - <AUTHOR> Can someone please recommend interesting startup/tech documentaries? Thanks! <comment><USER2> <http://www.weliveinpublicthemovie.com/>

it's a documentary about josh harris- mostly his startups after jupiter. pseudo.com, and a bunch of people living underground.

the beginning covers a bit of the early nyc scene in general as well. pretty cool movie if you take it for what it's worth. jason calacanis and fred wilson both make appearances.

<comment><AUTHOR> This is a good one. I've seen it before; very entertaining.

</comment></comment><comment><USER3> Code Rush is a doc filmed about 11 years ago. It followed the engineers of the Netscape browser. <http://www.youtube.com/watch?v=u404SLJj7ig>

<comment><USER4> I was an engineer at Netscape through the period this documentary covers and it's one of my favorite (though bittersweet) documentaries. I wasn't involved in the development side, so my involvement with most of those featured was quite limited, but . . . what a great piece. I'd also couple it with (what I'm sure has been mentioned elsewhere, but I've not read that far, yet) Revolution OS ( <http://www.youtube.com/watch?v=CjaC8Pq9-V0> ).

</comment></comment><comment><USER5> If you haven't seen Startup dot com (the movie, not website), that's a good place to start.

<comment><USER6> Seconded. One of my all-time favorite documentaries.

</comment></comment><comment><AUTHOR> For what it's worth, I'll mention this.

I've seen a few episodes of Startup Junkies (<http://www.hulu.com/start-up- junkies>). It's not the greatest but fairly entertaining.

Also, Indie Game: The Movie seems pretty interesting. I'm not sure when it'll be out though. <http://www.indiegamethemovie.com/>

</comment><comment><USER7> Triumph of the Nerds is interesting, though your significant other is not likely to think so (unless they're a hacker as well)

<http://bit.ly/mmVlhF>

<comment><USER8> Triumph of the Nerds is amazing. Some of Steve Jobs' best quotes come from there. It's interesting to see in historical context as well - Microsoft was still on top, and Apple was going through hard times.

</comment></comment><comment><USER9> <http://en.wikipedia.org/wiki/Startup.com>

Chronicles the build up and ultimate failure of govworks.com in 2000-2001

</comment><comment><USER10> Not a documentary, but <http://folklore.org> is an incredible resource of true stories in Apple when they were starting out.

Also not a documentary (and exaggerated in parts), but I've always had a soft spot for Pirates of Silicon Valley. It's a good watch.

</comment><comment><USER11> This has been criticized as inaccurate but it's the #2 best made-for-tv movie (after "the day after")

<http://www.youtube.com/watch?v=xflXMZL2stU>

<comment><USER12> Pirates of Silicon Valley is a great movie. Noah Wyle makes a great Steve Jobs.

</comment></comment><comment><USER13> Haven't seen it yet, but I've heard good things about _Something Ventured_ :

<http://somethingventuredthemovie.com/>

</comment><comment><USER14> This looks like it's going to be a good one: <http://thestartupkids.com/>

<comment><AUTHOR> I'm waiting for this one. Looks interesting!

</comment></comment><comment><USER15> E-Dreams <http://www.imdb.com/title/tt0262021/>

</comment><comment><USER16> I heard Joel's movie was interesting...

<comment><AUTHOR> What is the movie that you're referring to?

<comment><USER17> Available on youtube:

<http://www.youtube.com/watch?v=0NRL7YsXjSg></comment></comment></comment>


Do Not Crawl in the DUST: Different URLs with Similar Text - <AUTHOR> http://www2007.org/papers/paper194.pdf

<comment><AUTHOR> I just found this paper in my school's library. Its not new and it looks like google + yahoo + msn have maybe given up on trying to find 'DUST' because they now let you do that

( [http://googlewebmastercentral.blogspot.com/2009/02/specify-y...](http://googlewebmastercentral.blogspot.com/2009/02/specify- your-canonical.html) , [http://ysearchblog.com/2009/02/12/fighting- duplication-addin...](http://ysearchblog.com/2009/02/12/fighting-duplication- adding-more-arrows-to-your-quiver/) , [http://blogs.msdn.com/webmaster/archive/2009/02/12/partnerin...](http://blogs.msdn.com/webmaster/archive/2009/02/12/partnering- to-help-solve-duplicate-content-issues.aspx) )

Its still interesting that

1\. Many sites have a lot of 'DUST'

2\. It is not very hard to find the 'DUST'- which obviously reduces crawling time.</comment>


Who is working on Etherpad V2? Smart documents? - <AUTHOR>

I was just looking at the "An incomplete list of HN collaborative Google Docs/Spreadsheets" thread (http://news.ycombinator.com/item?id=2772398). Is it me or it just feels like Google Docs not a good tool for collaborating with a large group of people.
I am thinking on the lines of the simplicity of Etherpad and some of the powers of git/github. I really like how you can see the network of forks and how some forks take off.
Few problems.
- It's hard to see what has changed over time.
- How do I see the power contributors?
- Easy to consume different types of documents. Spreadsheets vs graphs vs text only.
- Smarter documents. Right now all documents are fairly dumb. What if I want to add something like smart sections? For example: Incomplete areas/Need more work sections in a document. I should be able to tag different areas in a document and quickly see all the incomplete areas in one without having to do any extra work. It also makes it easier pick out information from large documents.
Thoughts? <comment><USER2> This looks promising: <https://github.com/Pita/etherpad-lite></comment>


The first Google eBooks-integrated e-reader - <AUTHOR> http://googleblog.blogspot.com/2011/07/first-google-ebooks-integrated-e-reader.html <comment><USER2> I wonder if Barnes and Noble is getting ready to follow suit. It would be great to see Google Books on a Nook ... (of course it would be great to see the Kindle app as well (without rooting the device)).

<comment><USER3> They both use Adobe DRM, so you can read Google Books on a Nook now, but a dedicated store would be nice (although counter to B&N's store, so unlikely).

</comment></comment><comment><USER4> Wish this prototype wasn't Sony hardware. I might have bought one.

<comment><USER5> It's not Sony. It's made by iRiver, like the rest of the Story series.

<comment><USER4> Feeling very foolish. When I read this story on my mobile I read it as Sony not Story. Not being familiar with the line of readers or that OEM, I just made a leap, and foolish comment.

Thanks for pointing out it, though. I'm going to give this a closer look in person.

</comment></comment></comment><comment><USER6> I think most readers don't care as much about Google Books as Google does. People want one thing from their online book store - the ability to buy the book they are looking for. In a sense, a replication in digital of the physical bookstore.

Does Google Books do that better than Kindle, Nook, or iBooks?

If the answer is not a resounding yes, then it's kind of redundant isn't it?

<comment><USER7> Well, although I am likely in the minority, there is no Kindle or Nook app for my phone of choice (and certainly no iBooks app). I can read Google Books editions on my phone and there is a Kobo app for my phone.

Does Google Books do it better than Kindle, Nook, or iBooks (or Kobo)? No, but it does it just as well and works for me.

That said I'm still kind of torqued that the four volume paperback of the first four books in the "A Game of Thrones " series is ~$20 while the eBooks are ~$30. I know they are just trying to move the inventory to make way for the 5-book version that is sure to come along but still...</comment></comment>


Massive iPhone activation errors - robert-boehnke https://twitter.com/search?q=activate%20iphone&f=realtime <comment><AUTHOR> Only developer accounts that upgraded back on June 5th. Today is the fourth- month anniversary.

</comment><comment><USER2> It's the beta version of ios7 expiring. DFU and restore to 7.0.2 should do it.

</comment><comment><USER3> Appears to affect iOS7 only (personal experience)</comment>


A Crypto Challenge For The Telegram Developers (2013) - <AUTHOR> http://thoughtcrime.org/blog/telegram-crypto-challenge/ <comment><USER2> this is about 2 years old</comment>


REPL Driven Design - <AUTHOR> http://blog.cleancoder.com/uncle-bob/2020/05/27/ReplDrivenDesign.html <comment><USER2> Great article! I've found myself going through the same cycle of getting something working in the REPL and then regretting not having tests some time in the future several times!

In my experience much of the value of unit tests comes from "proofs of correctness", which REPL-driven development also provides! But unit tests also provide a lot of value in making confidence in changes, and knowing that the behaviour your verified in your REPL stays correct weeks and months later.

</comment><comment><USER3> I'm guessing TDD stands for Test Driven Design/Development, but I feel compelled to call out the author's failure to spell out the acronym at its first usage. Same for Read Eval Print Loop.

<comment><USER4> I guess it's understandable for Uncle Bob to omit those - he's been chewing on the subject of TDD for many years now, and REPLs are his recent darling.

</comment></comment><comment><USER5> Why not both? After I am done experimenting with the REPL in a playground, I clean it up and put it in a test.</comment>