The Zen of Python by Example - <AUTHOR> http://artifex.org/~hblanks/talks/2011/pep20_by_example.py.txt

<comment><USER2> By way of an afterword, I'm both pleased and surprised with the thought and attention people have given to these slides, which I made for a perhaps too hastily prepared, 10 minute talk at this Tuesday's joint PhillyPUG / philly.rb meeting. (Many thanks to the organizers, other speakers, and attendees -- it was a great turnout and a good time, too.)

I agree with several commenters that, like any collection of aphorisms, the lines in PEP 20 are not real rules but rather rules of thumb. Nevertheless, rules of thumb, or heuristics, are surprisingly important to the practice of engineering,* and perhaps even more so to the work of writing software. As such, nothing in PEP 20 should be followed hard and fast, but almost all of it is worth considering. Also as such, there's nothing (except for the comment on Guido) that makes PEP 20 relevant only to Python. It happens that these rules have a particular currency in the Python community (i.e., when people talk about being Pythonic, they're often talking about something described in the Zen of Python). But if you work in a different language, there's probably something worthwhile in it there, too.

On a different note, it is flattering to find this code, hacked out such as it was, has been reviewed by a far larger number of peers than the (comparably) few, albeit exceptional, engineers I work with at Monetate. Although it was hardly intended to be read on its own, or to run beyond the feeble purpose of generating its own slides, I have tried to correct what errors people have found. Ambiguities, of course, remain, but you can find an updated document at the original URL, or a diff of the changes at:

        http://artifex.org/~hblanks/talks/2011/pep20_by_example_2011_02_10_edits.patch

To respond to a few specific or general points:

\- Yes, of course, importing from within in a function is almost always a bad idea (the only exception I've ever seen is Google App Engine, and that's obviously just a performance hack). Nor would you ever want to actually convert your floats to strings and back -- my only point there was to illustrate the fact that yes, those are the rules of floating point, and so you can't expect Python to break them for repr().

\- The order of examples is not necessarily bad first, good second. (Alas for inconsistency!) So, for instance, ORMs may be complex, but they're often much better than writing your own SQL, which even in this trivial example starts to get complicated. Similarly, doctests often make code more readable than unit tests hiding in some other file -- although in honesty the doctest/unittest split is probably a false dichotomy; for some things, doctest is much cleaner, for others (like things that require setting up a DB schema first), unit tests are.

\- Finally, I still didn't have the wherewithal to call pygments directly (it's certainly easy and better; I just knew the command already). But I did add HTML output, since this the web, after all, to:

        http://artifex.org/~hblanks/talks/2011/pep20_by_example.html

* Cf. Billy Koen's enjoyable discussion of engineering heuristics, _Discussion of the Method_ or _Discussion of the Engineering Method_. (Some chronicle is available at <http://www.me.utexas.edu/~koen/OUP/HeuristicHistory.html>)

<comment><USER3> Do you by any chance know Jack Lange? That's the only other time I've ever seen an artifex.org domain.

<comment><USER2> Yes, I do. Jack's an old friend an another one of the admins for Artifex.org.

<comment><USER3> Oh, cool! He was an advisor of mine during a summer REU a couple years ago when I was working on Palacios. Welcome to HN, by the way!

</comment></comment></comment></comment><comment><USER4> There is a bug in #1. The condition should be `i % 2 == 0` to get even numbers:

      def halves_of_evens(nums):
          for i in nums:
              div, mod = divmod(i, 2) #NOTE: it might be slower
              if mod == 0: #NOTE: `not mod` is not explicit enough
                 yield div

#2: Function level import is a bad practice though it might be justified in this case.

#3: `users` is not defined. `sqlalchemy` names are not defined. The file should be opened for writing in the json example.

#5 It is simpler to allow the animal to know its kind:

      def identify(animal):
          return animal.__class__.__name__

or just:

        animal.kind

#6 `elem.xpath('./a/@href')` is simpler than

      [a.attrib['href']
       for a in elem.find('./a')
       if 'href' in a.attrib]

Also `elem.iterlinks()` could be used <http://codespeak.net/lxml/lxmlhtml.html#working-with-links>

There is no `lxml.CSSSelector` (python-lxml 2.2.6-1). Use `elem.cssselect`

#7 You don't need to add `ifmain` stub in every module:

      $ python -mdoctest module_with_doctests.py
      $ python -munittest module_with_unittests.py

# 8 & 9: The first variant of `make_counter()` won't work without `nonlocal i` -- it leads to `UnboundLocalError` otherwise.

Despite the fact that it works on my machine on all available Python implementations such code should be avoided:

      assert float('0.20000000000000007') == 1.1 - 0.9 #XXX horror!

# 10 & 11: Use stdlib's version:

      try: import json
      except ImportError:
           import simplejson as json

It is a matter of preference but it makes testing more predictable.

#13 `__builtins__` is not defined on jython:

      try: import __builtin__ as builtins
      except ImportError:
           import builtins # py3k

<comment><USER5> Why is function level import considered bad practice?

<comment><USER4> Deadlocking on the import lock might be introduced by an innocent code that uses a library with function level imports.

In general globals should be written at a global level.

</comment></comment></comment><comment><USER6> You know, the Zen of Python makes a for a really cute thing to read, but even Guido himself has admitted that it requires quite a bit of interpretation and doesn't apply in all cases. Generally, I feel that applying it directly to code is tricky (except for trivial pieces of code like these). I think it's better to treat the Zen of Python as a broad vision for how Python code should look rather than as a concrete set of rules for code.

For example, explicit isn't _always_ better than implicit. I mean, by that standard alone, the idea of a garbage collector going around implicitly freeing memory would be terrible.

<comment><USER7> I think that the issue is that some of the statements can come into conflict. You can easily make something that is more complex (i.e. less simple) in an attempt to make something that is more explicit and less implicit.

</comment></comment><comment><USER8> I couldn't help but feel irritated by this document. It's cute and all, but it implies Python is somehow unique—culturally or technologically—in grasping at these concepts. You could easily have written this as a Ruby or Scheme manifesto with nearly identical wording and had a valid message.

And then, in our very first example, there is a use of lambda, a misnomer of a concept Python doesn't really support? My brow furrowed slightly more.

I can't help but feel like these people are celebrating their investment in their tools rather than the virtues of the tools themselves.

<comment><USER9> The first section is pointing out list comprehensions as a better syntax than lambda, I believe. Also, the zen of python has been around for a long time: <http://www.python.org/dev/peps/pep-0020/>.

There's an import statement that will print it I believe, but I'm not sure exactly what it is.

<comment><USER8> It's a better syntax than _Python's 10-year-out-of-date notion_ of lambda. For example, this is what a more modern language does with lambdas:

        numbers.filter( _ % 2 == 0 )

This document is old, so we can probably excuse it... but how many Python folks know that?

<comment><USER4> What is the language?

      numbers.filter( _ % 2 == 0 ).map( _ / 2 )

Zen of Python doesn't contain any lambdas (the link from the grandparent <http://www.python.org/dev/peps/pep-0020/> ). List Comprehensions are 10 years old <http://www.python.org/dev/peps/pep-0202/>

How do you write:

      lambda x, y=1: x+y
      lambda *args: reduce(lcm, args)
      lambda **kwargs: kwargs.get('a') or kwargs.get('b')

      def lcm(a, b):
          return a*b // gcd(a, b)

      def gcd(a, b):
          while b:
              a, b = b, a % b
          return a

<comment><USER8> The link for the thread: [http://artifex.org/~hblanks/talks/2011/pep20_by_example.py.t...](http://artifex.org/~hblanks/talks/2011/pep20_by_example.py.txt)

It does indeed mention a lambda in the very first example, if only as a competition with list comprehension syntax. But even Python's list comprehensions look a little dated now.

<comment><USER10> Python's list comprehension is actually inspired by Haskell (or was it the other way around)?

What do you mean by dated? What new ideas have come up for List comprehension syntax?

(I agree that Lambda should be call fun or fn or \\. An implicit _ might also work, though that's somewhat against Python's spirit---c.f. the explicit self in methods.)

<comment><USER11> Like most good ideas, it came from Haskell :)

The part that bothers me about the list comprehension section is that conflating list comprehension and lambda. Is it telling me that list comprehension is better than map/filter or better than lambda? I don't know. Quiet honestly, in many situations I find:

halves_evens = lambda nums : [i/2 for i in nums if nums % 2 == 0]

to be the cleanest.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> I love this document. This stuff is my porn.

That said, I'm having quite a hard time grappling with section 4.

First, what is the 'users' keyword all about in the "bad" area?

Second, why is ORM the "bad" approach, and manual construction of SQL strings the "good" one? It seems to me that the abstraction and centralization of query language is paramount (examples: to afford oneself an easy one-day migration to GQL/BigTable, or to a document-oriented database like MongoDB or the upcoming Couchbase).

<comment><USER13> Just like how he reached for PyUnit for "readability counts", I definitely think of ORMs over raw SQL when it comes to "readability counts". Especially when you're actually working with data, not just the table creation step.

<comment><USER14> Agreed completely. The difference between a good ORM and raw SQL is like the difference between, well, Python and assembly, IMO. Perhaps the difference is a little less extreme, but it's similar in spirit.

<comment><USER15> er, as someone who did much database access in assembler, I'm going to have to disagree with your analogy.

You could argue "between Python and C"... but most certainly NOT assembler

<comment><USER14> Wow, I'm sorry you had to do that, haha. Python and C is surely a more reasonable comparison in terms of actual ease of use; I was thinking in terms of "raw instructions" versus "high level abstraction".

</comment></comment></comment></comment></comment><comment><USER16> Forgive me if I am wrong, but I believe that section 1 contains mistakes. In the implementations of evens_only, shouldn't both of the places where modulus is used be preceded by "not"?

This isn't meant to detract from the truth that "Beautiful [code] is better than ugly," I merely thought the implementation should be correct.

<comment><USER17> or better yet i % 2 == 0

<comment><USER18> I agree. Using the truthiness of non-boolean values has always seemed questionable in any language (Javascript is possibly the worst offender). For many statically typed languages this is caught as a syntax error, which is nice for those of use prone to occasionally typos.

<comment><USER19> The boolean equivalents of non-boolean values are well-defined and fairly simple in Python, and I believe it's encouraged (or at least extremely common) to use them as such.

</comment></comment></comment></comment><comment><USER20> A quarrel -- Pygments is written in Python, and is appropriately modular. Why did the author use subprocess and create new Python interpreter to run Pygments, when he could have just imported it and run it directly, without kicking off a new interpreter?

</comment><comment><USER19> Awesome. Here it is in a paste bin with syntax highlighting:

<http://paste.pocoo.org/show/336126/>

</comment><comment><USER21> Here is the history of "Zen of Python", aka ">>>import this" :

[http://www.wefearchange.org/2010/06/import-this-and-zen- of-p...](http://www.wefearchange.org/2010/06/import-this-and-zen-of- python.html) , a blog post written by Barry warsaw.

On a side note, other eggs are :

>>> from __future__ import braces

>>> import antigravity

</comment><comment><USER19> This is a bit off topic, but what are your opinions on the validity of the 80 character width restriction? I think the 80 character limitation is increasingly rarer to actually encounter these days. Even people developing via a shell will almost certainly have much more than 80 characters of width to play with.

We've finally accepted that web developers can expect visitors to have a higher resolution than VGA, and those are potentially non-tech-savvy users. Can't we expect developers to have more than 80 character width editors? Plus, I think splitting lines is pretty ugly.

<comment><USER6> On the other hand, I prefer not to have all of my desktop taken up by my editor. Usually, I dedicate half of it to my editor and half to a command- line. Now, 80 characters might be a bit _too_ small, but I think it's a good goal to shoot for as long as you bear in mind that it's a guideline and not a hard rule.

</comment></comment><comment><USER11> I have a hard time agreeing with this document. In many cases it is hard to tell which part of the wrong solution they are actually correcting. For example on the one where they write measurements out to a file, in the first case they use sqlalchemy to write to a sqlite db and in the 'correct' case they write json to a file. So what is the issue that is be corrected here? Is using sqlite without sqlalchemy ok? Both?

</comment><comment><USER22> I do not like example 4 "Complex is better than complicated". Use of string concatenation is going to lead to SQL injection bugs and SQLAlchemy version actually looks better to me.

Can somebody please enlighten me on how using raw sql is preferable?

<comment><USER23> You could use dbapi's query parametrisation instead of string concatenation, or maybe use sqlalchemy's SQL Expression if you don't want to write SQL.

ORMs are not a panacea. Especially when the database schema gets more complicated they require more setup and tuning, and there's always the problem of how much data the ORM should suck in vs. how lazy it can behave.

</comment></comment><comment><USER15> Hey, I was at the RedSnake meetup where this was presented on Tuesday night!

Go Hunter!

<comment><USER24> It was a great event - there is a short writeup of the other talks here: [http://trevmex.com/post/3198570101/redsnake-1st-annual- phill...](http://trevmex.com/post/3198570101/redsnake-1st-annual-philly-ruby- python-meetup-notes)

</comment></comment><comment><USER25> For the evens_only implementation, is there a reason to use map/filter vs a generator? eg:

       evens_only = lambda nums: [n/2 for n in nums if n%2==0]

seems to work just as well.

<comment><USER21> I think that is List Comprehension and not Generator. 'Return' would be replaced by 'Yield' in case of a generator.

</comment></comment><comment><USER26> PDF version is easier to follow:

<http://artifex.org/~hblanks/talks/2011/pep20_by_example.pdf>

</comment><comment><USER27> I find all this discussion about the rules slightly amusing, as it is Zen. The rules are there to instruct the apprentice, to guide adept, but there are no rules for a master _. shu ha ri.

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

_ I do not claim to be a master</comment>


Libuv: Revert "doc: Removed use of gendered pronouns" - <AUTHOR> https://github.com/joyent/libuv/commit/804d40e

<comment><USER2> The discussion on HN from earlier: [https://news.ycombinator.com/item?id=6823279](https://news.ycombinator.com/item?id=6823279) .. before it got flagged off of the front page, I'm guessing :-(

</comment><comment><USER3> OMG LOL WTF</comment>


EFF Statement on Glenn Greenwald Charges - <AUTHOR> https://www.eff.org/deeplinks/2020/01/eff-statement-on-greenwald-charges <comment><USER2> It's curious and sad that journalists are having to use the same or similar tools -- Tor, e2e encrypted, zero-knowledge chat and file transfer services -- as child pornographers or organized crime and to hide from the same people: agents of the government. Without journalists doing what they do then there's little to stop these over-stepping government agents from imposing digital tyranny.

<comment><USER3> Hence the crackdown.</comment></comment>


Ikea Uppleva [video] - Ikea starts building TVs - robert-boehnke https://www.youtube.com/watch?v=0Nm7-EuctOs

<comment><AUTHOR> It'll be interesting to see if they'll create their own app store for this.</comment>


Google Is Forbidding Users From Reselling, Loaning Glass Eyewear - <AUTHOR> http://www.wired.com/gadgetlab/2013/04/google-glass-resales/

<comment><USER2> I see a bunch of folks confusing first sale doctrines, contract law, etc here, so let me give a very short generalized primer:

1\. The first sale doctrine is exhaustion of a single right of the exclusive copyright rights. In particular: It states that the right to restrict _distribution_ [1] terminates upon first sale. It's codified at 17 USC 109, and states: "... the owner of a particular copy or phonorecord lawfully made under this title, or any person authorized by such owner, is entitled, without the authority of the copyright owner, to sell or otherwise dispose of the possession of that copy or phonorecord. "

As mention, this is exhaustion a very specific right of copyright, and applies to copyrighted works. In this case, that would be software. It has literally no bearing on _a contract as part of the sale of goods_ , or whether you can sue for breach of that contract. It is a defense to _copyright infringement_.

To whit:

If I sell you a book, as part of a contract, and that contract says "no resale", and you sell it, the first sale doctrine would probably[2] prevent me from winning a lawsuit for _copyright infringement_ but not prevent me from winning a lawsuit for for _breach of contract_.

2\. Sales of tangible goods in the US are covered by the UCC (uniform commercial code). Every state has passed a version of the UCC (though not all are on the same revision, for this discussion, it doesn't really matter).

The UCC lets you freely contract for almost anything. It fills in and has default terms when not stated, requires some contracts be in writing, etc, but there is generally nothing that prevents you from doing something like preventing resale of an object. You can argue it's unconscionable to a court, or you can argue it violates some _other law_ (antitrust, whatever), and thus the court should not enforce it but in most cases, it'll be a valid and enforceable contract on its face. In general, if you have a legal right to do something, you can validly contract to forgo that legal right. For example, you can promise to not marry anyone until age 30, promise to marry someone in exchange for money, etc (Neither of these would be UCC contracts)

3\. As a final note, for sales of UCC goods, there is no additional consideration necessary for them to modify the agreement, only the general requirement of good faith.

I offer literally no opinion on the status of this particular agreement, or anything like it. The above is also not legal advice (among other things, i've left out exceptions, and merchant <-> merchant rules, and ...), just an attempt to clear up some common misconceptions.

[1] "to distribute copies or phonorecords of the copyrighted work to the public by sale or other transfer of ownership, or by rental, lease, or lending;" Note that "distribute copies" does not mean "make copies", it literally means "distribute" an already made copy. Reproduction is a separate right.

[2] There are some current cases (and past ones) making arguments that you can contract away your first sale rights. The problem with this idea is that as titled and written, 17 USC 109 is, IMHO, not an affirmative right (and thus something you could agree to forego, even though some cases hold it must be pleaded as an affirmative defense), but instead a limitation on the exclusive rights _the_ owner has. It's even titled " Limitations on exclusive rights: Effect of transfer of particular copy or phonorecord".

This is why the standard mechanism software companies attempt to use is to classify their agreements as _licenses_ that do not transfer ownership, rather than _sales_ that do. If you are not an owner, the first sale doctrine does not help you. Success varies in ability to convince courts they aren't selling software, but instead, licensing it. In the end, it may not matter if they can succeed by suing for breach of contract rather than copyright infringement :)

</comment><comment><USER3> If you read the terms @<http://www.google.com/glass/terms/> Specifically the 'Device Specific Addendum' at the bottom you can see that this restriction only applies to the Explorer Edition. I believe this article may be intentionally omitting this detail to create drama.

<comment><USER4> If you read the terms, in the non-Device Specific Addendum:

> You may not commercially resell any Device, but you may give the Device as a > gift, unless otherwise set forth in the Device Specific Addendum.

So, nope.

<comment><USER5> > May not _commercially_ resell

Sounds like you can still give / gift / sell / otherwise transfer a glass unit to another individual privately. This all sounds completely normal.

<comment><USER6> The addendum for the Explorer Edition states: _you may not resell, loan, transfer, or give your Device to any other person_.

That's what the story is about, because there are no other editions of Glass.

<comment><USER5> I don't understand this reply. I was replying to the comment, not the story directly. The comment is referring to future editions.

</comment></comment></comment></comment></comment><comment><USER7> This seems normal and precedented.

When they handed out free Chromebooks 860 days ago[1] they had the same terms.

Of course they also said: _"Do not expose the device to water, moisture, or rap music."_ Not sure how we were supposed to take the rest of the message seriously...

[1] <https://news.ycombinator.com/item?id=1987536>

<comment><AUTHOR> Isn't there a difference between limiting what you can do with a free Chromebook and limiting what you can do with something you pay $1500 to acquire?

<comment><USER8> I'd say the difference is a fairly underpowered laptop versus an entirely new form factor for a mass-produced computing device.

Edit: For underpowered, I meant the hardware for the CR-48, not ChromeOS. The hardware was unusably slow for me.

</comment></comment></comment><comment><USER9> If you buy a thing, do they have the right to do this? Is there a difference between "purchasing a physical item" and "entering a contract where someone supplies you a physical item on specific terms"?

Surely there are consumer rights that protect us from this insane greedy abhorrent shit?

What fucking right do companies have over your property? Surely even free- market capitalists should be recoiling in horror over this massive shit that is being taken over consumer rights?

The market is only as free as the consumer.

<comment><USER10> This is not the retail version.

This is a limited run that is meant to be tested by a small number of people.

<comment><USER8> And is remarkably similar to the CR-48, which had the same "do not loan, do not sell" provision.

I wouldn't pay $1,500 for the test hardware with this provision, but I'm going to withhold my hypothetical anger until Google does this with the consumer version.

</comment></comment></comment><comment><USER11> This was explicitly stated in the rules for the #ifihadglass lottery in advance. I'm all for railing against the decay of first-sale rights, but this seems like a sufficiently limited case that I have no worries. I find the article to be sorely lacking in such details.

</comment><comment><AUTHOR> I wonder about the relevance of the recent Supreme Court decision that stopped publishers from trying to limit the resale of imported textbooks:

[http://www.insidehighered.com/news/2013/03/20/supreme- court-...](http://www.insidehighered.com/news/2013/03/20/supreme-court-sides- against-textbook-publishers-resale-imported-works)

But maybe someone with a better understanding of the law could help clarify the connection - if any?

<comment><USER12> With Google Glass you're signing a contract agreeing to specific terms. But when you buy a book, you haven't signed away any of your rights.

<comment><AUTHOR> So why wouldn't publishers just make people sign a similar agreement if it's that simple?

<comment><USER13> Would you sign a contract to get a book?

<comment><USER14> I wouldn't pay $180 for a book either, but most people who buy textbooks don't have a choice.

</comment></comment></comment></comment></comment><comment><USER15> That's not different from all the hardware that bears the inscription "ENGINEERING SAMPLE - NOT FOR RESALE," other than the fact that they're promoted to a larger public (read: not developers that have drawers full of obsolete engineering samples). Some of that hardware is not the same hardware than the retail version and is essentially obsolete as soon as the retail version comes out, due to a different BOM between the sample and retail version and the fact that the manufacturer does not want to support the prototype version with updates.

It doesn't make any sense for Google to restrict the resale of the retail version, but at this point in time, Google Glass is not a product that is generally available. If they keep that restriction for the retail version, now _that_ is news.

</comment><comment><USER16> I sincerely doubt Google will care if it's sold. They stated that you couldn't sell Google Wave / Voice / Gmail invites, yet they were all over eBay.

"Whether or not users will continue to be allowed to sell invites is unclear though, as Google Wave's terms say that users are prohibited from "Sell, trade, resell or otherwise exploit the Service for any unauthorized commercial purpose," though a number of Google Voice invites can also be found on the auction service."

<http://mashable.com/2009/09/30/google-wave-invite/>

</comment><comment><USER17> I wonder whether one could do something similar to concert tickets, and allow resales at face value, but not greater. Louis CK did that for his recent tour, and there wasn't (unless I missed it) widespread outrage; rather, people were happy to keep tickets out of the hands of scalpers.

<comment><USER18> <http://cashortrade.org>

</comment></comment><comment><USER19> How does this not run afoul of consumer protection rights?

</comment><comment><USER20> The issue I see here is that people were asked to submit entries to this contest because Google was trying to get product testing information from people who would actually use it... and in interesting ways. This guy is being disingenuous (and a douchebag IMHO) if he tries to sell it on ebay before he even has it in hand. He gives ethical consumers a bad name and should be taken out of the closed beta test. This is just like all the people/companies who mass purchase concert tickets the millisecond they come out and resell them at 1000% face value because of "free market" blah blah, but actually they created the artificial demand and increased the price by speculation.

</comment><comment><USER21> I'd feel much better if they explicitly forbid users from wearing this eyewear around children, in public toilets, beaches, swimming pools, shop changing rooms, or anywhere else its use could be utilized to fulfill a perversion (this assumes they have the camera). So basically, probably means they can just wear them at home.

</comment><comment><USER22> > _Welcome to the New World, one in which companies are retaining control of > their products even after consumers purchase them._

A joke, right? After Amazon's removal of books remotely from Kindles and all those iSomething from Apple, Glass is far from being the first one.

<comment><USER23> Just because the New World is already a year old, doesn't mean we can't welcome new people to it.

</comment></comment><comment><USER24> Makes sense. If what they want to do is index people.

</comment><comment><USER25> This is what RMS has been preaching all along.

It finally makes sense now.

<comment> mh- except it's not. and nonsensical invocations, like yours, just make skeptics of his find him even more delusional.

this is a restriction on tester hardware (so-called _Explorer Edition_ devices), which were already only available to people who paid for the privilege of being able to buy them.

and please save any _slippery-slope_ reply for another thread.

<comment><USER26> _... paid for the privilege of being able to buy them._

Did they __buy __them or not?

<https://en.wikipedia.org/wiki/First-sale_doctrine>

Edit: upon further reflection, first-sale doctrine is around intellectual properties like books and music. I presumed there was a legal right to sell goods you've bought... but maybe not?

<comment><USER27> First sale is only about intellectual properties because it is applied to copyright. That is, it is necessary to grant you the right to resell something that contains copyrighted property.

For example, without first sale you couldn't sell a book you legally bought, because the author still has distribution rights over the story it contains. (That make sense?)

For physical items, there is not a government granted monopoly to compare.</comment></comment></comment></comment>


Corporate Open Source Anti-patterns (2012) - <AUTHOR> http://www.slideshare.net/bcantrill/corporate-open-source-antipatterns <comment><USER2> This presentation has an absurd amount of spin.

It extensively discusses OpenSolaris, without raising the most important issue there: taking an unwanted and unloved project and making it open will not suddenly turn it into a good project everyone wants to use. Sun seemed to think that people would flock to Solaris, without realizing the exceptionally high bar for any non-Linux POSIX OS to take any mindshare from Linux; OpenSolaris didn't even manage to match the success of BSD, let alone Linux.

The anti-copyleft discussion comes out of the same bitterness. Sun intentionally made OpenSolaris non-GPL-compatible, almost certainly _because_ they didn't want Linux to adopt code from it; who would want to run OpenSolaris if all the interesting bits of it run on Linux instead? Copyleft is not obsolete; it'd be fair to say that some substantial communities exist around non-copyleft software (for instance, Android, or Ruby modules), but that's not the same thing. In any case, the lesson is "don't use a license incompatible with the GPL".

Counting lines of code under various licenses is not a particularly useful metric, unless you take usage and mindshare into account. And counting code under GPL-compatible licenses will still show that the vast majority of FOSS code retains compatibility with the GPL. (Apart from an island of Apache code, compatible with GPLv3 but not GPLv2.)

MPL is not a particularly good recommendation: it's GPLv3 compatible, but not GPLv2 compatible. If you want a weaker copyleft than the GPL, use the LGPL.

Advocating a contributor agreement is a bad idea. Anything more heavyweight than "Signed-off-by", especially something requiring a signed contract, adds a significant barrier to contribution. At least this presentation doesn't recommend copyright assignemnt, though.

Dual-licensing is a completely reasonable business model, and it doesn't require spreading FUD. The dual-licensing model just boils down to "free for FOSS software, pay us for proprietary software"; simple as that, unless you consider copyleft _itself_ a problem as this presentation seems to.

The bits about competitive paranoia and about forking/control do make sense, and provide useful advice that more projects need to follow.

<comment><USER3> Ignoring the ad hominem attacks, I didn't actually advocate a contributor agreement -- to the contrary, I cautioned against them. And indeed, the reason that this two-year-old presentation is on HN today is because today we did away with the node.js CLA[1]; we're walking the talk here.

As for your misunderstanding of history with respect to OpenSolaris licensing: the decision to use a modified MPL (i.e., the CDDL) and not the GPLv2 had nothing to do with Linux (indeed, none of us predicted that the GPL would be so ardently perceived to be incompatible with the CDDL) and everything to do with the fact that (due to various covenants and agreements), we couldn't actually open source everything. That is, we needed to allow for proprietary in-kernel code from both ourselves and from third parties -- and we didn't want to end up in the legal no-mans land of "tainted" kernels. Simon Phipps has been very clear about this[2]:

 _The difficulty with using the GPL was that it became clear as we did the licensing archaeology that there were going to be places in the software where we couldn 't negotiate a free license for the source code. And, there were going to be some quite important places in the code, and there were going to be quite a lot of them for a long time. And, that was probably the deciding factor not to use GPL but to use the Mozilla license._

Finally, I stand by my assertion that the GPL is in decline relative to MIT/BSD/Apache -- a trend that I elaborated on after my FISL talk[3] and has only accelerated in the two years since, declining from 36% to now 27% of projects.[4]

[1] [http://www.joyent.com/blog/broadening-node-js- contributions](http://www.joyent.com/blog/broadening-node-js-contributions)

[2] [http://www.linuxjournal.com/article/9624](http://www.linuxjournal.com/article/9624)

[3] [http://dtrace.org/blogs/bmc/2012/08/01/post-revolutionary- op...](http://dtrace.org/blogs/bmc/2012/08/01/post-revolutionary-open-source/)

[4] [http://www.blackducksoftware.com/resources/data/top-20-open-...](http://www.blackducksoftware.com/resources/data/top-20-open- source-licenses)

<comment><USER4> >As for your misunderstanding of history with respect to OpenSolaris licensing: the decision to use a modified MPL (i.e., the CDDL) and not the GPLv2 had nothing to do with Linux

The actual creator of the CDDL licence, Daneese Cooper claims that it was indeed crafted to be GPLv2 incompatible, and of course from a business standpoint that also makes perfect sense as Linux was eating Solaris in the market and handing over their technical advantages (ZFS, Dtrace) for inclusion in to Linux would have made no sense to Sun's management.

So both the word of the person responsible for the licence, aswell as pure business logic says that it was indeed created to be incompatible with GPLv2.

It's also hilarious when you say something like this:

>For example, GPLv2 has prevented the integration of open source technologies like DTrace and ZFS in Linux • Was it the intent of those who licensed their work under GPLv2 to erect walls within open source software?

Linux was already GPLv2 licence when Sun decided to licence Dtrace and ZFS under CDDL a new licence they created, when they (Sun) instead could have chosen a number of GPLv2 compatible licences under which they could have licenced their code had they so wished, or even made sure that the one they ended up creating would be GPLv2 compatible.

Of course that was never the intent, for VERY logical reasons, this is just as JoshTriplett said, 'an absurd amount of spin' on your part.

<comment><USER3> Danese Cooper was not the "actual creator" of the CDDL; she was one person among several who advised the efforts internally, and Simon Phipps played a much larger role in the drafting and selection of the CDDL -- and (again) he is very explicit as to why a modified MPL was selected.[1] Of course, I appreciate that the facts don't fit with your chosen narrative here and that you are much more likely to discard the facts than change your narrative...

[1] [http://www.linuxjournal.com/article/9624](http://www.linuxjournal.com/article/9624)

<comment><USER4> Simon Phipps himself introduced Danese Cooper as -"the one who actually wrote the CDDL", at the 6th annual Debian conference where Danese Cooper said that it CDDL was indeed drafted to be incompatible with GPLv2.

I realize this does not fit 'your chosen narrative', but hey.

<comment><USER5> So, I found this which is interesting.

[https://web.archive.org/web/20110605051830/http://www.openso...](https://web.archive.org/web/20110605051830/http://www.opensolaris.org/jive/message.jspa?messageID=55013)

Search for 'webmink' in there (Phipps username)

<comment><USER4> Yes it is interesting, the post states both Danese and many engineers, promoted GPL.

But the Sun management was not going to use GPLv2, despite it being available, and according Danese they management was hoping for GPLv3 to be released which would be GPLv2 incompatible (since Linux is GPLv2 ONLY) but it was taking too much time.

And in the very post you linked, he (Phipps) lists GPLv3, not GPLv2 as an alternative for licencing, gee.

This ties in with what he said in the Debconf video where Danese spoke about the deliberate GPLv2 incompability, he says later in the video (after Danese has spoken) that "I actually disagree with Danese to some degree", where he states that Sun's management wanted something copyleft, while stating that the engineers had a strong BSD preference (somewhat at odds with what he wrote in what you linked), and that waiting for GPLv3 to be finalized or be allowed by Sun legal to release under the unfinished GPLv3 licence would have taken years and probably involved mass resignations.

Again, GPLv2 was available at this point, along with a lot of other GPLv2 compatible licences, yet GPLv2 or any compatible licence was never on the table, instead the question was to either wait for GPLv3 (which would not be compatible with Linux GPLv2 ONLY) or draft a new licence, one which as it turns out was GPLv2 incompatible and thus Linux incompatible, go figure!

Now from a business standpoint I can't blame Sun for this choice, they were fighting an uphill battle against Linux as it was, and letting their crown- jewels such as ZFS, DTrace be incorporated in to the Linux kernel would hardly have made it easier for them to compete.

As for Phipps statements, at this time he was Sun's 'open source chief officer', a job which obviously included mending bridges with the FOSS community which had been burned by Sun CEO Jonathan Schwartz who was attacking GPL as something which allowed the US to 'pillage developing countries of intellectual property' amongst other things.

Of course that was just desperation on his part as the attack was not actually leveraged at GPL itself but rather the GPL licenced Linux kernel against which Solaris was losing market, further illustrated by Sun later releasing Java under GPL.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I take issue with some of the points regarding the GPL license. The author says that "GPLv2 has prevented the integration of of open source technologies like DTrace and ZFS in Linux." However, surely this is also the fault of the CDDL rather than the GPL alone. The CDDL license was written after the GPL, and according to some sources was specifically designed to be GPL incompatible.

<comment><USER5> Yes, I've heard that was explicitly designed to be incompatible with the GPL.

</comment></comment><comment><USER7> The number one ant-pattern is DON"T CREATE YOUR OWN LICENSE. To me there is GPL, BSD, MIT - and I'd have to read to discern the later two. MPL and Apache are there if you want a variation on the main ones. Everyone else creating a new license has some kind of agenda. This was apparent to a lot of us when SUN put out their license AND required assignment. Let me say that again. If you're not using one of the top 5 licenses you've got an agenda and may as well go home.

<comment><USER3> Absolutely agreed. (After all, the presentation is everything we got wrong, not everything we got right -- and I definitely agree that the world emphatically does not any more open source licenses.) I don't agree that this is the "number one" anti-pattern because we don't see it much anymore: the five licenses that are out there cover a wide range of philosophies and objectives, and one of them should suffice for just about any project.

</comment></comment><comment><USER8> "The companies that adopt your technology are nearly tautologically not your competitors..."

I don't follow. If they're using your tech (which you developed to do business) to do business, why are they clearly not competing with you?

<comment><USER9> Watch the video: [http://www.youtube.com/watch?v=NhgXQFk9noI](http://www.youtube.com/watch?v=NhgXQFk9noI)

The slides don't exactly stand fully alone. I love watching the "bcantrill show". This video's audio is horrendous, but he explains what he means on that slide pretty well, starting at about 38m20s.

<comment><USER8> Excellent, thanks for that link!

The argument seems to rest entirely on the shoulders of "NIH prevents them from ever touching your source". I very very very much don't believe this, especially if they know they're competing with you. Even if they don't use it _directly_ (because, lets face it, it's probably crap for their precise needs), they can learn a _lot_ from looking at it, for a _lot_ lower cost than what you paid to discover it.

It's the same thing as arguing copyrights / patents are _entirely useless_ for the holder because nobody who competes with you would ever even consider looking at what you're doing. How is this not nonsense? The main (loud) complaints about e.g. patents revolve around them _working too well_ for this purpose, giving _too much_ of an advantage to the first mover, and suppressing others from using what is otherwise valuable to them.

</comment></comment></comment><comment><USER10> Slide 16 is absolute genius. If you're doing any kind of business with OSS, tattoo it on your forehead.</comment>


Show HN: Pagekit – A new, modern CMS built with Symfony components - <AUTHOR> http://pagekit.com/blog/2014/07/21/pagekit-public-alpha-launch <comment><USER2> I've been looking forward to someone publishing a new CMS. WordPress is great, but I've been wanting something new and fresh. I got the alpha installed and it looks good but there is still work to do, but I like what I see. Keep it up!

<comment> at-fates-hands If you're into shiny new things, I'd recommend Keystone:

[http://keystonejs.com/](http://keystonejs.com/)

"Node.js CMS and web application platform built on Express and MongoDB."

It's a pain to get going on a Windows machine, but I got it working on my Linux box inside of 10 minutes. If you're on a Mac, its probably about the same time to get up and running.

It also uses Jade for templates along with Markdown.

<comment><USER3> The guys at Thinkmill recently did an amazing presentation at SydJS where they released the full source to a Keystone app project. Should be a great place for anyone starting out.

[http://www.sydjs.com/showbag](http://www.sydjs.com/showbag)

Big thanks to @bladey who put a lot of it together!

</comment></comment></comment><comment><USER4> With the explosions of frameworks lately, it's refreshing to see that people are still working on CMSs. It's interesting, though, why they made their own templating language rather than use an existing one (twig, for example, is used by OctoberCMS and there's even a Wordpress plugin.)

Also in terms of clients, it'd probably be useful to have a wysiwyg editor or even just editable sub-fields that you can set for each page. Right now there's no clear-cut advantage for using this over, say, a static-page generator (except for the ORM, I guess).

<comment> w0rd-driven Razr is largely inspired by the Razor view engine for ASP.NET. Twig is nice and looks to be inspired by Ruby syntax, something I'm a little more familiar with in using Octopress. Perhaps they wanted to introduce a templating engine that was a little more familiar with someone coming from ASP.NET? I can only really speculate as no definitive reason was given.

Writing their own templating engine is definitely an interesting choice and one that follows the razor syntax makes it even more interesting indeed.

<comment><USER5> Twig syntax takes from Django/Jinja [1], not Ruby.

[1] [http://fabien.potencier.org/article/34/templating-engines- in...](http://fabien.potencier.org/article/34/templating-engines-in-php)

</comment></comment></comment><comment><USER6> A little background on the folks who make PageKit: Yootheme is one of the top-3 WordPress theme developers on the market, and they also support other CMS's. They started with Joomla and after developing their own front-end theme framework, they added support for WordPress as well. You could use the same themes across multiple CMS installs - so if you work with their themes it allowed you to be pretty flexible.

After building themes for years, now they have set out to create the CMS they actually want to be using every day, the CMS that doesn't fight back when you need to skin it, and one that lets you do what you need without trying to 'hide' all the settings and options deep inside menus.

I downloaded the alpha and tested it out and I'm thrilled at what I see. I can't wait for this to mature and blossom into a usable product, and with Yootheme behind it I know for sure there will be gorgeous themes available for it! I'm really looking forward to how they solved my pain points working with WordPress, the more I see the more excited I get about this project :)

</comment><comment><USER7> Just a note — when trying to register an account the form rejects my email, but got an activation email after 1-2 minutes anyway. Which also, out of sheer confusion led me to probably double-register under different usernames and multiple email-addresses.

Edit: but other than that — looks promising. Will keep an eye on it.

<comment><USER8> Same happened here

<comment><USER9> It looks like the form is ajaxing out when you press enter. No 'loading' text or other display and no redirect so browser doesn't indicate it's working.

</comment></comment></comment><comment><USER10> Awesome project, being a PHP developer, I was waiting for someone to launch something that could take some share away from Wordpress. I dig Ghost, and their initiative, but I was not thrilled with it going on Node.js as it'll not be adapted by Wordpress users.

<comment><USER11> There are _so_ many other CMS's... some of which are better than wordpress (for certain people / certain workflows / certain tasks).

I'm a huge fan of Concrete5 ([http://concrete5.org](http://concrete5.org)) for small- to medium- sized informational sites. Relatively easy to theme, somewhat easy to develop against, and by far the easiest page editing interface for non-technical end-users (it's all done on the front-end, not in the dashboard).

ProcessWire ([http://processwire.com](http://processwire.com)) is also one that looks really good -- stays _completely_ out of your way in terms of the markup, and is a very rational system that is built up from very simple conceptual building blocks to give you the flexibility to build whatever kind of site you need to.

If "take some share away from wordpress" is what you're after (as opposed to "a CMS that is better than wordpress for my own needs), perhaps OctoberCMS ([http://octobercms.com/](http://octobercms.com/)) is the ticket? It was recently launched and appears to have a lot of momentum behind it and a great community around it (probably because it's based on the Laravel framework, which also has a lot of momentum and a great community around it).

Someone else mentioned CraftCMS as well, although that's not free/open source.

Not to mention the copious static site generators that are popular right now (although asking non-technical customers to edit text files on a server is not feasible, so those are mostly for developer or product sites in my opinion).

Best of luck!

<comment><USER10> Yes, I have been keeping an eye on October CMS, it looks promising. Laravel is a great framework (I use it too, outside of my own).

</comment></comment></comment><comment><USER12> I incorrectly assumed from the marketing page that this was a hosted CMS. It wasn't until after sign-up it became clear this was a self-hosted build. Why do I need to sign-up when it's available on github?

</comment><comment><USER13> Looks interesting and I will most likely give it try but when I think of a "modern" cms I think more of the approach that prismic.io and contenful are using. Decoupling the backend from the frontend and using RESTful services to tie it together is a more "modern" approach, especially when web apps are considered. I would love to see some opensource cms's that allowed me to use whatever client side framework I choose to build the frontend.

</comment><comment><USER14> Is pagekit.com built using Pagekit?

</comment><comment><USER15> Will be watching this project. My first concern though is that Symphony & Doctrine could be an overkill for small sites on shared hosting.

<comment><AUTHOR> It's using Symfony components, not the framework. It also is working great on shared hosting.

</comment></comment><comment><USER16> For those who don't know, the next version of Drupal (Drupal 8) has incorporated components of the Symfony project into the core CMS code.

[http://symfony.com/blog/symfony2-meets- drupal-8](http://symfony.com/blog/symfony2-meets-drupal-8)

It's still called Drupal, but in many ways it is sounding like a new CMS compared to Drupal 7.

<comment><USER17> My experience with building products with Drupal 6/7 is that it's great if your use case involves staying within the very rigid boundaries of what Drupal canonically does. If you need something custom or if you need highly- performant code, you're better off writing it from the ground up, because otherwise Drupal fights you the whole way.

<comment><USER16> I think developer flexibility is one reason they are making such big changes in the architecture for Drupal 8.

That said, well-written custom code should outperform CMS code, because the CMS has to carry more overhead to offer flexibility for more people. That's true of any CMS.

</comment></comment></comment><comment><USER18> In this era of frameworks, I'm glad to see a modern CMS pop up. Props for that.

We really didn't need another templating language though. Especially one that looks nearly identical to the blade templating language. ([http://daylerees.com/codebright/blade](http://daylerees.com/codebright/blade))

</comment><comment><USER19> Bug report: "Learn more about Pagekit in the About section." links to a non- existent page.

<comment><AUTHOR> Thanks, it's fixed now.

</comment></comment><comment><USER20> You can start working with this CMS right now. I created a new terminal.com container with Pagekit up and running. Check it here: [https://terminal.com/tiny/4NEUNXJUy8](https://terminal.com/tiny/4NEUNXJUy8)

</comment><comment><USER21> I'm going to be in the minority here, but when I hear Pagekit, I think of Apache::PageKit, also known as plain old "PageKit". See [http://pagekit.org/](http://pagekit.org/)

</comment><comment><USER22> 4 redesigns? That seems ...high? Maybe they're just being playful but I wonder what the explanation behind the redesigns was.

*[http://pagekit.com/blog](http://pagekit.com/blog)

</comment><comment><USER23> I'm confused of the title compared to the description of Pagekit on the website. Is it supposed to be a CMS or an application framework?

</comment><comment><USER24> Disappointing not to see an example app's source code. It's the quickest way for developers to get an understanding of it.

<comment><USER25> I suppose you could go here: [https://github.com/pagekit/pagekit](https://github.com/pagekit/pagekit) the link was kinda hidden but on the website somewhere

</comment></comment><comment><USER26> Was it essential for this project to use PHP to compete with Wordpress? In other words, does cheap, cheap hosting still imply PHP?

<comment><USER27> I don't think it was a case of "let's make the next greatest CMS... what language should we choose..?" I suspect it was more like "what can we build to showcase Symfony." So, using PHP is somewhat the point of the project.

But, considering your question more generically as far as if you wanted to write a Wordpress killer must it be written in PHP? I would say that currently the answer is yes. PHP hosting is ubiquitous and you would face an uphill battle if you also had to wait for shared host providers to provide another environment.

It's kinda chicken/egg thing. If customers start requesting Erlang being installed on shared hosting then providers will start offering it. The thing is, most Wordpress customers don't give two shits about what language their CMS is written in. I'd argue that many of them don't even know what language it is written in.

</comment></comment><comment><USER28> The first thing that caught me was the Snake-inspired logo. Very nice touch.

Looking forward to playing around with the demo.

</comment><comment><USER29> No matter what username i put in it said "not available

</comment><comment><USER30> do any of these new school CMS's give a relatively uncluttered/user definable REST api for free for mobile clients? Preferably something self hosted

<comment><USER31> [https://doc.ez.no/display/EZP/eZ+Publish+REST+API](https://doc.ez.no/display/EZP/eZ+Publish+REST+API)

</comment></comment><comment><USER32> i18n?

<comment><AUTHOR> Multi-language not yet, but it is on the todo list. At the moment only localization.

</comment></comment><comment><USER33> I was excited until I got to this:

> Razr Template Engine

Even if you don't like Twig (why wouldn't you?) there are at least a dozen template engines already.

I wonder in what other places did NIH take over?

<comment><AUTHOR> You can also use Twig as template engine. Not a big deal.

<comment><USER34> I'm inclined to agree with adamors, any time a framework says you can plugin any templating engine, it's almost always more of a hassle than not. If you choose a templating engine that is not a first class citizen of the framework, you're often blocked from key features or functionality offered by the framework. Even if a third party library bridges the feature gap, that library often trails development of the framework or ends up unmaintained and outdated.

I also agree that it's disappointing Twig wasn't selected. It's syntax is incredibly common among templating engines so ramp up time for new developers is usually short - and once you get into the more complex features it's pretty dang cool.</comment></comment></comment>


The name of someone to help a startup with tech skills - <AUTHOR>

Hi,<p>I cannot think of the name so I was hoping you could help, if I needed an advisor / co-founder who was solely technical who could invest off experience in return for equity in the business what type of person would they be ? I am guessing they wouldn't be your standard VC / Angel Investor <comment><USER2> 1\. If this is this a viral app? Nobody. Go get an account with one fo the site builders setup a low-cost landing page with a video and start working on marketing it. Get about 200-1000 email sign ups that buy into your site. 2. If this is an enterprise app, go close a 20k deal and you can pay someone. 3. If this a b2b website/app you need to find 5-20 potential customers that said they'll work with you. 4. marketplace do 2 and 3. Most developers don't want to do the sales/markeitng side so you actually have a true partnership there. Also, be prepared to cough up 50%

<comment><AUTHOR> That is pretty useful info thanks for that :)</comment></comment>


The Tiko Printer: What Happens When You Innovate Too Much - <AUTHOR> http://hackaday.com/2017/02/27/the-tiko-printer-what-happens-when-you-innovate-too-much/ <comment><USER2> > They had ordered their complete BOM before a prototype was finalized... They > spent all their money buying components before their design was finalized. > These aren't poor engineering decisions, they're poor business decisions.

Not having even a single prototype (even if you ignore the fact that ideally there should be multiple) done before ordering the parts for manufacturing is fundamental failure of engineering process, it is not a business decision failure.</comment>


Pebble Raises $15 Million as Wave of Smart Watches Arrives - <AUTHOR> http://bits.blogs.nytimes.com/2013/05/16/pebble-raises-15-million-to-ready-itself-for-wave-of-smartwatch-competitors/

<comment><USER2> Wearables ought to ditch the attempted interaction.

The second I'm prodding at a watch to do more than triage notifications or cycle through a couple google-now-style 'cards', I might as well have pulled out my phone.

They should focus on data collection -- which they can be awesome at; notification triage -- which they can be legitimately more-convenient for, and some security integration [1]. And if they did some NFC-triggering, that'd be cool too.

Even _supporting_ deeper interaction is going to relegate these things to 'calculator watch' territory.

[1] if my watch is near my phone, phone should only require the 'simple' unlock code (or none). if watch isn't around, require the full password. also: lock my workstation when the watch 'leaves' the presence of the PC.

<comment><USER3> You'd need some pretty hefty antennas to trigger NFC tags at the range of watch-to-phone or watch-to-computer (say 1 to 2 metres max). Most NFC readers operate around a couple cm, maybe 10cm max. Your computer would lock every time you sipped your coffee :-(

The general idea is great though. I'm not sure what the right proximity tech would be. Someone else can no doubt chime in. Bluetooth would be overkill, NFC not enough.

<comment><USER4> Is there one can't just use Bluetooth instead of NFC? Does the power consumption get bad?

<comment><USER5> The power consumption of Bluetooth is so minimal that turning off Bluetooth on an iPhone only hides the icon, it doesn't actually turn Bluetooth off.

<comment><USER6> do you have a source for this?

</comment></comment></comment></comment></comment><comment><USER7> Pebble is in the land grab stage right now. Their primary advantage being that they are the first mover.

Their #1 priority is to win the hearts and minds of their users.

A successful kickstarter campaign is a good start but to create "raving fans" they need to be hyper focused in getting you to love the product. To adore it. Otherwise competition will rip them to shreds.

So those of you that have a Pebble? How do you like it? Is it everything you hoped for?

<comment><USER8> I've had mine for a couple of weeks, using it with an iPhone, and so far it's a neat toy that doesn't do very much. I can see text messages, and I can see the phone number of the person calling me (not their name yet, though). I can control the music playing on my phone. That's about it right now. I haven't tried Runkeeper yet.

I've heard that Android users can hook in to a lot more. Hopefully iOS opens up more access for other apps to send notifications to it.

The feature I probably use the most is the watch itself - I don't have to pull my phone out of my pocket to check the time, and flicking my wrist to activate the backlight works really well.

<comment><USER9> Exactly what I was about to write. Went back to my Nike Fuel band almost immediately. As a watch, it's just ok. Beyond that, it just isn't that useful. And as phones continue to get thinner and lighter -- I guess I don't see the point.

<comment><USER10> The Fuel Band is the worst watch I've ever owned. It drives me mad how many times I have to hit the button, and how long I have to wait, just to find out the time.

<comment><USER9> Fair point. In truth, I use my phone as my watch. I pretty much dont switch from Fuel reading on band.

</comment></comment></comment></comment></comment><comment><USER11> It will be interesting to see what happens if rumored watches show up from larger companies. If that happens, I think Pebble is done. I have one, I like it (but I don't "love it!"). Pebble has demonstrated trouble with coordinating all of the moving pieces, from manufacturing to software and firmware. I don't fault them, it's a tough job, but their window is shrinking. At the moment they have yet to fulfill all of their Kickstarter backers, and I just don't see that happening until at least July.

Those 600 "apps" the article mentions? They're just watch faces (and a few small games, I guess). Those were built with an alpha version of the watch face SDK, with the warning that your watch could be bricked if you install any of those 600 "apps". A real SDK with two-way communication with the watch is nowhere to be seen.

Maybe that $15 million will allow them to get cracking on getting that SDK out the door. Without some real dev support, allowing them some real traction, I suspect they will suffer the same fate as Microsoft's SPOT watch.

<comment><USER12> The just released the two-way SDK today.

[http://www.kickstarter.com/projects/597507018/pebble-e- paper...](http://www.kickstarter.com/projects/597507018/pebble-e-paper-watch- for-iphone-and-android/posts/482492)

</comment></comment><comment><USER13> They raised from CRV. George Zachary is one of the best VC guys in the valley. No matter what, he always replies to your email. You'll get a reply from him which might come 1-2 weeks later on Sunday midnight. Which means he is working all the time and tries to respond to everyone! Big congrats to the Pebble team from starting a whole new market segment with their vision starting from the kickstarter till the closing the round to all the stuff that they'll be doing in the future!

</comment><comment><USER14> I'm strongly cross-dominant [1], I write left-handed and mouse right-handed (I also swing right-handed in baseball and golf, but box southpaw so go fig). As a result, I have no comfortable hand to wear a watch. In high school I got by with cheap pocket watches for awhile. But let's be honest, pocket watches are not a great fashion statement.

The mas market adoption of cell-phones was great for me, since they're essentially pocket watches with a phone (and now a computer) attached.

I've seen various smart watches over the years, but I inevitably fall back to "but I'd have to wear a watch".

1 - <http://en.wikipedia.org/wiki/Cross-dominance>

<comment><USER15> Wow, I'm the same and never knew it had a name. I write left-handed use use a fork with my left-hand and generally consider myself left-handed. But, I throw right-handed and swing right-handed (although I became a decent switch hitter in little league, I had more power left-handed but more accuracy right- handed). Some tasks I have trouble picking a hand and go back and forth between the two. When I bowl (which is usually only about every 5 years or so) I spend the entire time switching between both hands to find one that feels more comfortable. I also pass a tennis racket from hand to hand depending on which side the ball is on, but I play ping-pong solely with my left hand. When I first started using computers in elementary school I made a conscious effort to use the mouse with my right hand because even then I knew that every computer I came to would have the mouse on the right side. However, I usually use a laptop trackpad with my left hand. I, like you, found wrist watches uncomfortable to use. I wore one in high school and always put it on my left wrist but I had to remove it every time I sat down to write or type. I think smart watches could have some useful applications, especially when cycling as a glance-able cycle-computer paired with a ride tracking app, but I just don't think I could put up with the pain of wearing a watch every day to get any benefit from one.

<comment><USER14> Yeah watches just ended up being a huge irritant to me as well. It bothered my father tremendously as he thinks not wearing a watch is a symbol of being a "layabout". But of course I always had a watch or clock on me or near me, just not a wrist watch.

</comment></comment></comment><comment><USER16> I got a pebble to try to build a specific app: electronic leash (using bt 4.0le) to a phone and/or laptop. It's pretty easy to do electronic leash of a Mac laptop (or Linux, or Windows) using an iPhone; hard to do for the iPhone/iPad alone due to Apple. Presumably feasible to do on Android, but most hardware still seems to lack 4.0le, which would kill battery.

Wouldn't wear it as my watch in general. It's really "tall" (not thick, not wide) -- I have decent-sized wrists, and the watch still bumps against stuff more than what I wear otherwise. I really prefer metal-cased watches with deployment clasps and tritium gtls, too, which would be difficult to Pebble- ify. The pebble is really well made for a kickstarter'd consumer electronics device, and well made for any non-Apple consumer device in general, but it's still not quite a $100+ wristwatch mechanically or aesthetically.

Otherwise, the "show a notification" thing is interesting, but I can feel my iPhone vibrating in my pocket, so if I have a way to tune notifications (like dnd mode) and lock-screen viewable messages, it's pretty close. I'd still prefer the Pebble for quickly glancing on public transit, or in any situation where I'd feel uncomfortable taking out my phone.

</comment><comment><USER17> Smart Watches are on my radar. We develop a lot of GPS type apps, so this sort of platform is an easy and natural shift for us. It seems like there is a lot of uses for smartwatches, from health and fitness, to productivity and and people management.

I think the watches will have a quicker start than the glasses out of the gate, and usher in the era of cyborgs. I'm not sure if there is iPhone-level of money for the first to reach the platform though. It's really PC, Internet, and iPhone sized shifts you get the most from recognizing.

</comment><comment><USER18> I still can't see myself ever wearing one of these. It's cool and all and I would love to write some custom apps for it, but its just not there yet aesthetically.

<comment><USER19> That is a very easy problem to solve from their standpoint. The next step after this first round of watches is to offer different styles, I'm sure.

</comment></comment><comment><USER20> I think a good combination might be Smart watches + Google Glass. Smart watches can provide more sophisticated input while glass provides great output and camera. I don't really see the value of a smart phone + smart watch combination.

<comment><USER17> How about getting alerts on your watch, while your phone is in your pocket? Or syncing your watch with your iPad after taking a run, over bluetooth, automatically? Or talk into your watch while your phone is a camera?

</comment></comment><comment><USER21> It's funny right, there was a time when investors didn't think smart watches were going to be of any interest to anyone; that was just a few years ago. This is really the difference between a visionary entrepreneur and the rest. Congrats Eric and the team, great job and looking forward to see what's to come. Pebble glasses, perhaps ?

</comment><comment><USER22> I wouldn't call them first-movers because there are some companies including Nokia, Apple and Microsoft that already had a smartwatch project on hold.

Plus the fact that Pebble is focusing on sports watches.The others will focus on a full-featured smarwatch.

<comment><USER23> They are however the first the ship, and that's what counts

<comment><USER22> We will see in the near future I guess...</comment></comment></comment>


Complexity and Collapse: Empires on the Edge of Chaos  - <AUTHOR> http://www.foreignaffairs.com/articles/65987/niall-ferguson/complexity-and-collapse

<comment><USER2> URL of the whole text without subscription:

[http://laudyms.wordpress.com/2010/02/26/niall-ferguson- compl...](http://laudyms.wordpress.com/2010/02/26/niall-ferguson-complexity- and-collapse/)

<comment><USER3> Thank you

</comment></comment><comment><USER4> I can't agree with the negative comments here. I think that his comparison to chaotic systems is right-on.

</comment><comment><USER5> > First, debating the stages of decline may be a waste of time -- it is a > precipitous and unexpected fall that should most concern policymakers and > citizens. Second, most imperial falls are associated with fiscal crises. All > the above cases were marked by sharp imbalances between revenues and > expenditures, as well as difficulties with financing public debt.

Long article that says little and manages to contradict the few points it makes. Read 'The Tipping Point' instead. If not, be prepared to read about a dozen different rephrasings of

>Defeat in the mountains of the Hindu Kush or on the plains of Mesopotamia has long been a harbinger of imperial fall.

<comment><USER6> That seems to be a problems with Ferguson. His book, "Empire: The Rise and Demise of the British World Order and the Lessons for Global Power", was annoying in that he makes quite a few generalizations of more complex phenomenon. In it he comes off as pro-colonialist, but completely disregards the view from the colonized. Essentially he says that the British Empire was good because it gave everyone a common basis for the modern world. However, he completely ignores all the ills that empire created.

He is pretty renowned in the Historical circle, but that book put a bad taste in my mouth.

<comment><USER7> My favorite historian about the British Empire is Peter Hopkirk.

His books primarily deal with central/southeast Asia.

Some books he's written: 1\. The Great Game 2\. Setting the East Ablaze 3\. Like Hidden Fire 4\. Trespassers on the Roof of the World.</comment></comment></comment>


Get 10% OFF IntelliJ IDEA Personal License until end of August - <AUTHOR> http://blogs.jetbrains.com/idea/2013/08/end-of-summer-sale-10-off-intellij-idea/

<comment><USER2> If anyone is on the fence about this, get it. I recently moved to IntelliJ IDEA after being an Eclipse head for a few years and took a co-workers suggestion to try out the free version and absolutely love it.

One big seller for me is a native vim plug-in that works for free. The interface is also very minimal and doesn't get in the way and is packed with shortcuts to show/hide windows. Comes default with attractive themes that don't hurt to look at for hours. It's also highly portable (like eclipse), but seemed to be better than eclipse at recognizing new android devices on my linux distros (Ubuntu/Xubuntu).

It would be nice in their Ultimate Version if you could natively convert .form swing files from NetBeans into something IDEA could use. There is a third party app [0], but it'll run you $80-100 for a license which makes it an expensive move for any heavy Netbeans user. That's my only real gripe. Excellent IDE overall.

[0] [http://www.formdev.com/](http://www.formdev.com/)</comment>


Amazon's Working on Kindle Reader Software for Mac, Too - <AUTHOR> http://www.fastcompany.com/blog/chris-dannen/techwatch/when-will-kindle-become-open <comment><USER2> Regarding evolution of the e-reader, I think course literature is going to be the "killer market". I've attended courses where half of the class couldn't even get all the books. Required reading is also often a fraction of the books content. Sometimes one book is more expensive then all the other books combined and you can't really make notes in them if you want to sell them later. If you miss a class session you always have to find out if there were any changes or notes handed out. To summarize, it's really a pain.

Imagine if you instead could loan/lease the books to your e-reader for the duration of the course and only pay for the relevant pages. You could make digital notes and share with your classmates and ask questions to your teachers. By syncing the device you would always have the latest course schedule and material. Some of this is doable without an e-reader, but there always be a disconnect between the analog and digital information.

This might already exist or never be practically feasible. But when people claim that 'people always prefer physical books', I don't agree. At least not when it comes to course literature.

On a side note, anyone seeing Google selling OCR'ed books as e-books with an android based e-reader? :)

<comment><USER3> _Imagine if you instead could loan/lease the books to your e-reader for the duration of the course and only pay for the relevant pages._

I imagine that as soon as physical textbooks were out of availability the cost of "only the relevant pages" would climb drastically. Without an active market in used textbooks, and with DRM preventing any reselling of the content you purchased, I have little doubt that the captive student market would be exploited as hard and as often as possible.

<comment><USER2> The only real future for the publish industry that I see, with regard to course literature, is if they either create an outstanding service themselves or work together with the universities. I don't really see any drawback with electronic books that won't solve itself by time.

The publishing industry faces some of the same challenges that the music industry did when the mp3 players started to become available. And similar to then people will start to think of books as data, and not psychical things. They need to realize this and make the most of it themselves, and not make litigation and DRM part of their business plan.

<comment><USER3> Look at what working with the universities did for student loans. American educational institutions have proven themselves perfectly willing to screw their students for a cut of the profits.

Sure, that would be great for the publishing industry, just as it is for the student loan industry, but considering the cost to the student it doesn't seem like the outcome to root for.

</comment></comment></comment></comment><comment><USER4> A web browser? Amazon's books are just HTML.

<comment><USER5> with DRM.

Also, it's not really HTML. Amazon uses the .azw file format which is basically a mobireader .prc with some extra drm on top

<comment><USER4> Right, but the DRM is one Python script away from being gone. It is like saying DVDs have DRM; sure, they do, but it's so trivial to break that nobody even notices anymore.</comment></comment></comment>


My little open source app which converts HTML to PDF - <AUTHOR> https://github.com/jurgelenas/pdfify-server <comment><USER2> There are plenty of apps for that already. My favorite:

[http://wkhtmltopdf.org/](http://wkhtmltopdf.org/)

<comment><AUTHOR> Sure, but mine provides HTTP API. It can be used with zero configuration and tinkering - see Heroku Deploy button and Dockerfile. And it is battle tested for year and a half across various projects. It keeps running 2 PhantomJs instances by default to avoid startup time penalty, cycles these instances regularly to prevent memory leaks. I use PDFify to generate invoices and legal documents. In my use cases, for quite simple HTML documents with no Javascript and embedded images my server median response time is 61ms. Because of that I convert HTML to PDF on the fly for each request.</comment></comment>


Viv Is a New Artificial Intelligence from the Inventors of Siri - <AUTHOR> http://www.esquire.com/lifestyle/a34630/viv-artificial-intelligence-0515

<comment><USER2> All they show is its ability to do some specialized airline searching? Which presumably means that is its current limit of functionality. Potentially useful, for sure, but hardly a "New Artificial Intelligence".

Expanding it to generalized product searching, or finding concepts on the internet, is a whole 'nother ball game, that frankly we haven't a clue how to do. Specialized tie in to well understood product spaces like airline ticketing, with a natural language processing engine tied in, is hardly world changing.

</comment><comment><USER3> Is the possibility of human level AI a highly accepted Conjecture? Why does almost everyone use that term so loosely?

<comment><USER4> 1\. Brains are physical systems

2\. Physical systems can be simulated

3\. Brains have human level AI

Therefore the possibility of human level AI is real. Hopefully something better than a simulated brain is possible though :p

<comment><USER5> I have been a paid practitioner of AI since the early 1980s but I have a fundamental difficulty with the creation of a "real AI" that thinks as we do.

I follow the Idealism philosophy (which is the opposite of Materialism) that posits that the fundamental property in the universe is universal mind or consciousness and our individual thoughts and ego are derived from a filtering operation: we as individuals filter out a small part of this collective unconsciousness (to use Carl Yung's term) and that is what gives us our identity while we are alive. All of modern physics would be layered on top of the underlying mind or consciousness.

If these ideas interest you, I suggest reading "Why Materialism is Baloney" by physicist and computer scientist Bernardo Kastrup.

All this said, I think "real AIs" are inevitable (even if far in the future) but I think they will seem very alien to us.

<comment><USER6> Philosophy is not the right tool to attack AI science, although it has taken itself up to do so. I would sum up my general argument to support this as: "AI has enormous philosophical implications, but philosophical thoughts have very few implications on AI development (other than which research branches get social blessing)."

The philosophical lines often seem to boil down into something like, "but even if it was intelligent, it wouldn't _know_ what it's like to think like a human, thus it isn't thinking like a human", but this seems like a really weak line of thought to me. I don't nor ever could know what it's like to be you or any other person, but I can certainly relate and be related to by others as a human.

There is over whelming evidence that the brain's operation(and thus it's resultant product: conscious and human though) _is a physical process_. There is no physics that suggests we can't replicate this process, but using a different substrate(ie electronic computing of some shape or another), and there is no physics that suggests we can't make such a system mimic the physical processes as a human. It seems more likely, in this case, that the differences and difficulty of relating to such a artificial system would be similar to that of just another different human being.

<comment><USER5> There are many theoretical physicists who argue that consciousness is tied in with quantum mechanical effects (e.g., my Dad's friend Henry Stapp; they were in the physics department at Berkeley together, and of course Roger Penrose) that are not supported on conventional computers.

My Dad, who is a member of the National Academy of Science, does not agree with me re: Idealism vs. Materialism, but that just makes for more interesting conversations :-)

</comment></comment></comment></comment></comment><comment><USER7> This looks rather similar to IBM Watson, but with the added input of the end- user's preferences.

<comment><USER5> I have used IBM Watson and this seems very different (and also in very early stage development).

This seems more like Google Now than Siri. My friends with iPhones just ask Siri questions. Google Now also takes actions of creating info cards, adding stuff to my calendar that appears in emails, provides traffic warnings, etc.

One problem that does not get enough discussion is false positives when taking actions. I saw on my calendar the other day that I was supposed to be checking into a hotel in some random city that day. It turns out that a customer had sent me an email that included his travel plans. Voila! Google Now 'thought' that I was taking a trip.</comment></comment>


Ask HN: Researching an Uncommon Medical Issue - <AUTHOR> I'm curious if anyone has ever dealt with a medical issue that doctors couldn't adequately diagnose and then proceeded to conduct independent research. It seems to me like the medical system is grossly inefficient if someone is experiencing a problem that doesn't neatly fit into any particular specialist's silo. Of course WebMD et al are similarly useless. I've also tried scouting medical research without much luck. Looking for any suggestions on a good process. <comment><USER2> The best i can advise you is to find a forum on medicine. reddit is known to have such subreddits. Research is best to conduct but self diagnosing is highly frowned upon especially if you know nothing of the medical field. Dont limit yourself to doctors of your country as whatever they have not discovered there could have been discovered elsewhere. I hope you find the solution to your problem.</comment>


Nassim Taleb discusses uncertainty; more technical than his other talks (2009) - <AUTHOR> http://streamer.perimeterinstitute.ca/Flash/9112b33e-4480-41b5-91a6-d90f93750b99/viewer.html

<comment><AUTHOR> Get's most interesting (statistics and real-world wise) from 13:00 onwards.</comment>


Introduction to Position Based Fluids - <AUTHOR> http://physxinfo.com/news/11109/introduction-to-position-based-fluids/ <comment><USER2> If you have an iPad I highly recommend getting LiquidSketch. It's a great puzzler about getting pools of liquid into the right place, and the liquid effect is stunning. It moves exactly as expected, has surface tension, splits and recombines etc - but the really stunning element is colour mixing. When two groups of different colours combine the mixing of them is just utter convincing, and beautiful. Amazing how this was all done on a lowly iPad.

<comment><USER3> When you say "on a lowly iPad", bear in mind that the latest (4th-gen) iPad has a dual core 1.4 GHz chip plus a GPU capable of 14.4 GFLOPs. It's actually a pretty powerful machine.

<comment><USER4> You still cannot compare it with the GPU from the OP rendering, that does 3000 GFLOPS (GTX 680).

<comment><USER5> I can however compare it to the famous Cray 2 supercomputer, capable of 1.9GFLOPS.

Remember when we were promised we'd someday have supercomputers in our pockets? We do.

Well, ok, fairly big pockets in the case of the iPad, but still, you get my point.

<comment><USER6> We also were promised real-time raytracing if we ever got to that point. What's the hold-up?

<comment><USER7> Real time raytracing is vary doable and high quality, it's just we got really good at rasterisation. Consider a 2012 demo <http://www.youtube.com/watch?v=h5mRRElXy-w> it's cool and all but what seperates it from rasterisation is fairly subtle and the computing costs are rather high.

<comment><USER8> Thanks for sharing this. I'm actually really excited; raytraced scenes have a "solid" feel to them that rasterized ones simply can't get.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Impressive for real-time, but nowhere near realism one can get with Naiad or Realflow and a proper renderer. For example: <https://vimeo.com/37536300>

</comment><comment><USER10> The only uncanny valley effect here is that the water doesn't wet anything - everything is perfect Teflon. So it's hard to judge whether the movement of the water is perfectly realistic, because I keep looking at the transitions. If I don't look at surfaces, it seems very convincing.

<comment><USER11> The color is also not right. But the animation seems almost flawless otherwise.

<comment><USER12> Really? The color's not right? Not all liquids are the same color. Hell, not all water is the same color. But the GP is right when the water doesn't wet anything, it's kinda eerie.

EDIT: Having said that, water simulation is HARD.

<comment><USER13> I think the point is that water is only technically blue; in small quantities like those simulated, its appearance is mostly the effect of refraction and scattering and all that fun stuff, which is a whole new can of worms. So they add some blue (or green) partly to make it more obvious what's going on, but partly to cover up for the optics not being quite right.

You can see it especially in the last demo in the video. When the water spreads across the floor, it looks a little like a puddle of blue dye is diffusing into the water, and it's hard to tell how it would look if the water were more realistically transparent.

</comment></comment></comment></comment><comment><USER14> Jaw-dropping? Maybe. Realistic? Nope.

I work in a group with scientists whose sole job is to solve the Navier-Stokes equations. Now that's realistic.

<comment><USER15> Perhaps you could elaborate on this. I do agree that the title and video give slightly more credit than is due based on the current state of fluid dynamics knowledge. However do you mean your group is searching for closed-form solutions to NS or are you generating approximate numerical solutions (CFD)?

<comment><USER14> Approximate solutions are found computationally.

Non-trivial closed-form solutions are hopeless. Existence of solutions is a little less hopeless. Existence of solutions over small time horizons has been proven. This is all in three space dimensions.

There is a theorem stating that if global-time solutions exist and are unique, then computationally computed approximate solutions are 'good'. Moreover, they get better as you refine the computational domain.

<comment><USER16> Is finite element method good enough? Can you provide a concrete example where approximation is not good enough.

<comment><USER14> Special approximations called 'Galerkin approximations' converge.

Finite element methods are a special case of Galerkin methods. Finite element methods are good enough.

</comment></comment></comment></comment></comment><comment><USER17> I think the nVidia real-time ray tracing demo is more impressive: [http://www.youtube.com/watch?v=w9SH8xlgzoI&feature=playe...](http://www.youtube.com/watch?v=w9SH8xlgzoI&feature=player_embedded)

Primarily because of the distortion of the visuals through the water. This simulation fakes it somewhat, which you can see with the distortion being somewhat blocky.

</comment><comment><USER18> This should lead to much more interesting interactions with water in games, because now it has actual physical properties instead of just being something pretty to look at. Watching the water flow out of the aquarium makes me think that water is about to become a real active part of the game environment. Very cool.

<comment><USER19> I remember Super Mario Sunshine was much lauded in the games press because of what it did with water and the effects. I absolutely loved the game but you don't really hear much about it any more.

</comment></comment><comment><USER20> When I look at this water, it feels as though the volume of water is the size of like an acre. Is this to exaggerate the effect or is this a limitation of our current modeling capability?

<comment><USER21> Yeah, what you're referring to is the fact that surface tension is not scale invariant. In other words: dew can only be made of smallish droplets, not large ones.

I think the reason you see that is that they don't really simulate surface tension, but use a rather crude trick [0]. My uneducated guess is that in oder to achieve water that looks ok at small scales they would have to increase the size of the particles to the point it doesn't look smooth anymore.

[0] equation (14) of <http://mmacklin.com/pbf_sig_preprint.pdf>

<comment><USER22> > Yeah, what you're referring to is the fact that surface tension is not scale > invariant. In other words: dew can only be made of smallish droplets, not > large ones.

You completely blew my mind there! I'd never noticed that before.

Does the size of a dew drop relate to the size of the particles? i.e. can we estimate the size of water molecules just by looking at the maximum dew drop size?

<comment><USER21> Wait wait wait. I was talking about the particles in this particular simulation.

Surface tension is _not_ a function of the size of water molecules. In fact you can change it quite easily just by adding a little soap.

<comment><USER22> D'oh, I was being stupid, thanks.

</comment></comment></comment></comment></comment><comment><USER23> The clip showing the water interacting with breaking glass blew my mind. It may well be a while before we see anything close to that level of realism being incorporated into games though.

<comment><USER24> True, but technologies like this usually make their way into pre-rendering first, i.e. pre-rendered cutscenes in games, CGI scenes in movies, or fullly animated movies. Although the latter category hasn't seen much in the way of realism, mostly due to uncanny valleyness.

<comment><USER25> This isn't prerendered - it's real time. Prerendered water (as seen in movies) looks far more realistic than this. Check out the Naiad link someone posted above.

This is great for real time though. It's using a form of SPH which is far easier to adapt for GPUs, and can crunch through those particle-particle interactions.

High end offline water sims would use a different algorithm (usually FLIP), maybe run for several days to sim a few seconds and occupy 10's of Gb of memory.

If anyone's interested, download a copy of Houdini Apprentice for free and have a play.

</comment></comment></comment><comment><USER26> I've never seen water simulations that can pass the U test. Basically, take a pipe, bend it into a U shape, pour the water in one side, and see if the water levels even out. If it does, then it's a very accurate simulation of water.

<comment><USER27> What happens instead in the simulations that fail?

<comment><USER26> usually the water fills up the bottom part of the U until it reaches the width of the pipe, the only one side fills up (the supply side). So if I fill up the left side of the U pipe, the water forms an L shape. On some simulations, the other side rises, but doesn't really even out.

</comment></comment></comment><comment><USER28> Cool stuff, but the viscosity seemed a bit off (especially noticeable when the glass walls were shot out towards the end), and waves seemed to hold their shape for a bit too long. I wonder how hard that'll be to tweak.

</comment><comment><USER29> I prefer their ocean simulator: [http://www.youtube.com/watch?feature=player_detailpage&v...](http://www.youtube.com/watch?feature=player_detailpage&v=A84v7lbdcYg#t=565s)

</comment><comment><USER30> Perhaps it is the _most_ realistic, but I've yet to see a fluid demo, this one included that didn't look like overly "energetic" shampoo.

</comment><comment><USER31> It's definitely realistic, but sometimes it seems just _a little_ off. There are times when it seems to "clump" up like a solid would when you have water particles thrown in the air. I'm not sure if that's my own bias or the uncanny valley effect at play here.

<comment><USER32> I noticed that too; seems like it might be a matter of making the particles smaller.

</comment></comment><comment><USER33> This reminds me of a much older open source game where two players controlled liquids and the aim was to engulf the other liquid. I can't remember the name of the game, though.

<comment><USER34> liquidwar?

<comment><USER33> Yes! What a funny game.

</comment></comment></comment><comment><USER35> Somehow, I felt wow. I am able to appreciate this because of the number of applications it holds - Tsunami simulation, Bridge and dam construction. And real-time? Full points!

<comment><USER36> Artistic water simulation and scientific/engineering fluid simulation tend to be mutually exclusive in that they optimize for different objectives. Typically, a solution in one domain is ill-suited for the other. For instance, the "Stable Fluids" trick leads to desirable artistic properties (fluid behavior more closely matches stage direction = active energy input) at the expense of systematic inaccuracy (total energy is biased downward) that would be undesirable in an engineering context.

If this technique worked equally well in both domains it would go from "impressive" to "miracle". In the meantime, we can certainly applaud it for the things it does do well!

</comment></comment><comment><USER37> Particle generators like this have been used in Hollywood for quite awhile, I bet you would have never have guessed it was CGI though.

<comment><USER38> The difference being that this demonstration is real-time.

<comment><USER37> Thank you for clearing that up, now this is actually impressive, although I would imagine it would require a ton of GPU & CPU power.

<comment><USER39> PhysX is aimed at running on current generation 'consumer grade' gaming hardware, so think a GPU you can get for $200 (if not less). It works out of the box on all of NVIDIA's modern graphics cards.

Of course, you do have the problem of what to do when the water sim uses up all the available GPU compute power and bandwidth - not much left to render, in that case...

</comment></comment></comment></comment><comment><USER40> honestly, after watching the demonstration video, there is nothing in the video that i haven't seen in numerous hollywood films or games before. am i missing something? would someone care to explain what i should be looking for?

<comment><USER41> I've never seen water simulation with this degree of complexity in games. I've seen it in prerendered video sequences, but when you sit and look at a lake or river in an Elder Scrolls game (or similar), it is usually much more simplified -- or has a flow which is modeled to look pretty.

The difference here is that it's showing interaction between the water particles and things that they impact on: characters, boundaries, piers, and behave in a more realistic way than games have previously had.

</comment></comment><comment><USER42> Yeah, that does it. We live in a computer simulation.

</comment><comment><USER43> Does anyone here know what technology stack this is implemented in/with/on?

<comment><USER44> C/C++/nVidia (formerly Ageia, formerly Novodex) PhysX.

</comment></comment><comment><USER45> That is so god-like! I give up I do not want to program anymore.

<comment><USER46> very cool</comment></comment>


Java runtime environment .jar in Windows 10 - <AUTHOR> http://www.wifigeeks.org/2017/05/how-to-open-jar-files-windows-10/#prettyPhoto <comment><AUTHOR> Hello, friends..! If you want to open .jar extension file then don't worry about this. You must have firstly installed Java runtime environment in Windows 10. jar file will be open, then you can Execute.</comment>