Please reconsider the Boolean evaluation of midnight - <AUTHOR> https://mail.python.org/pipermail/python-ideas/2014-March/026446.html <comment><USER2> So ignoring the hype, here's the outcome-to-date...

The ticket was reconsidered, reopened and classified as a bug. [http://bugs.python.org/msg212771](http://bugs.python.org/msg212771)

Nick Coghlan's dissection of the issue here: [https://mail.python.org/pipermail/python- ideas/2014-March/02...](https://mail.python.org/pipermail/python- ideas/2014-March/026647.html) is pretty much perfect - wonderful piece of technical writing!

Donald Stufft has expressed an interest in making the patch for this happen, and _assuming_ all goes as planned this usage will raise a deprecation warning in 3.5 and be fully fixed in 3.6.

News in brief: User raises issue. Issue gets resolved.

<comment><USER3> Will it be resolved in 2.x though? That's what most people care about.

<comment><USER4> 2.x is EOL and only remains for legacy programs. A backwards-incompatible change won't even be considered for this branch.

</comment></comment></comment><comment><USER5> If I understand the argument there correctly, the responder is saying: Nobody should ever use this functionality, instead they should always check that the date is not None. So, we should leave this broken, because we don't want to break backwards-compatibility with that class of applications that nobody should ever write.

That philosophy, taken to its logical conclusion, results in everything being broken forever.

<comment><USER6> Yes. This is where Linus would step in and say "SHUT THE FUCK UP! We don't break user space, EVER!" Developers who enter into the mindset that the users of their code are using it "wrong" are a blight and will always be a blight. Too bad Python has a BDFL and not a Raging DFL.

<comment><USER7> Linus does NOT break backwards compatibility. That is what this change implies.

Which doesn't mean I disagree with changing the behaviour, but I doubt Linus would use that reason for that.

<comment><USER8> It's undocummented, and very complex to use. That mail does not even have sufficient information to understand how to use this "feature". I hightly doubt anybody uses it outside of the datetime codebase.

I never saw Linus complaining about changing undocummented and not used behaviour.

<comment><USER9> It is documented. That's the strongest argument against changing it: it's a documented piece of user-facing behavior. The python developers are changing it anyways because they're practical people who have decided it is more likely that people wrote bugs into their code, than that they wrote code that depended correctly on the falsiness of UTC midnight.

<comment><USER10> This is true, but if it is documented it is still sufficiently oddball to be useless. Consider:

        Midnight UTC, timezone EST:  True
        Midnight UTC, timezone CET:  False
        Midnight UTC, timezone CST:  True
        Midnight UTC, timezone WIT:  False
        Midnight UTC, timezone PST:  True

Now the problem here is that it may well be documented but it is in fact unsafe to rely on in any context. The behavior is thus irretrievably broken, documented or not. It isn't even expert-friendly. The behavior, documented or not, is irretrievably broken. After all timezones west of GMT will never have false times.

If there is a use case for this behavior, I sure can't see it. Unless you like bugs appearing when you change timezones.

</comment></comment></comment></comment></comment></comment><comment><USER11> INADA Naoki's argument [1] is succinct and insightful.

      I feel zero value of non abelian group should not mean
      False in bool context.

      () + () == ()
      "" + "" == ""
      0 + 0 == 0
      timedelta() + timedelta() == timedelta()
      time() + time() => TypeError

[1] [https://mail.python.org/pipermail/python- ideas/2014-March/02...](https://mail.python.org/pipermail/python- ideas/2014-March/026674.html)

<comment><USER12> If that were true, it would mean that dict should not support bool:

        >>> {} + {}
        Traceback (most recent call last):
          File "<stdin>", line 1, in <module>
        TypeError: unsupported operand type(s) for +: 'dict' and 'dict'
        >>> bool({})
        False

Since I find bool(a_dict) to be very useful, and the lack of a_dict+b_dict to be reasonable (precisely because it's non-abelian!), I conclude that logic is cute, but not that relevant.

Those who think it this argument is pursuasive, should bool({}) raise an exception? Or should {1:"A"}+{1:"B"} not raise an exception and instead return ... what?

Or do I misunderstand something?

<comment><USER13> {1: ["A", "B"]}?

<comment><USER12> Okay, then what about

      {1: "A"} + {}

Should that return {1: ["A"]}? In which case {} is no longer a zero value.

What about

      {1: "A"} + {} + {1: "B", 2: "Z"} + {1: "C"} + {}

In any case, your suggestion would break all existing code. Based on all the StackOverflow and python-list questions, most people expect one or the other value, and few want the two-element list containing both. (And why a list instead of a tuple?)

Guido chose the current behavior because there is no clear-cut winner. "Refuse the temptation to guess."

<comment><USER14> How does {1:"A"}+{} = {1:"A"} imply that {} is no longer a zero value? 1+0=1 makes total sense...

<comment><USER12> It's not just that one expression, but when done in addition to the previous suggested answer. That is, what is the type of the values in the summed dictionaries?

If {1:"A"}+{} == {1:"A"} then the type of each value is unchanged from the input list.

If {1:"A"}+{1:"B"} == {1:["A","B"]} then the type of each value (or at least each shared value) is a 2-element list.

If both are true, then no one can write sane code which knows how deal with the sum of two dictionaries.

That is, the insane code has to have checks for if one of the dictionaries is empty, and if so, do one thing, otherwise do another thing. In which case, why is this definition useful?

Therefore, either {} is the zero value, or dictionary summation produces lists for the resulting values, but not both.

</comment></comment></comment></comment></comment></comment><comment><USER15> I've never seen a good argument for anything beside "false" to be considered false. Likewise for "true". Keystrokes are not a commodity for most coders, and compilers are not dumb; just be explicit and write "!= 0" or whatever.

(And 0 == False, "" != False, but both 0 and "" are considered false? C'mon Python, that's borderline JavaScript territory.)

<comment><USER16> Python has truthiness and falsiness as well.

That shortens code like:

       if not x:
          do_something()

x could be 0, None, False, empty set set(), {}, [], (), '',"" or an I believe any class or object that appropriately overrides __nonzero__() or __bool__() methods.

It is a matter of taste, so I rather like it.

<comment><USER17> I appreciate falsiness in python as well (especially for None, [], {}, set([]))... Interestingly I think zero is arguably the most dubious of the falsies (not that I'd recommend changing it, for obvious backward compatibility pain), but I can remember being burned by bugs from zero evaluating False a number of times, yet I can't once remember being burned by any of the other values I listed burning me.

I do hope the ticket in question is reconsidered though. Midnight is obviously a "valid and populous instance" that shouldn't evaluate False.

<comment><USER18> "0 is False" is extremely useful to a Pythonista. Ever indexed into an array with a boolean offset? Yes, you can do that. (False is 0, True is 1). Makes for very succinct code.

<comment><USER19>
        >>> bool() == int()
        True

</comment></comment></comment></comment></comment><comment><USER20> I just got bit by this a few days ago. I was creating an event scheduling system that uses either repeating entries with a datetime.time, or one time entries with a datetime.datetime. I had code that said "if start_time" to see which it was, and discovered later that midnight evaluates to false. It's not the best idea.

<comment><USER10> What's actually interesting if you dig into the discussion is that the actual behavior depends on your timezone.

Basically from UTC east to the IDL, it behaves as you describe it. Anything west, it evaluates to true as long as it is set and there is a timezone offset. This is because once you are at a negative offset, you subtract and get a higher number so it will never evaluate to false with a negative offset.

Basically this current behavior is useless for anything I can imagine. You can't use it to check for midnight UTC. You can't use it to check for whether it is set. You can probably use to check for midnight with no timezone but add a timezone and now your handling is messy.

This is why contracts need to be sanely written from a code contract point ahead of time. This was apparently a developer describing how his code worked and later calling it a contract, which is a very bad thing :-D

</comment></comment><comment><USER21> Ignoring Python for a bit and thinking as a designer of some hypothetical future language: there is a nice rule given here for evaluation in a Boolean context. I wonder whether it should be taken as a general guideline for future languages.

The rule, in its entirety, is this:

\- Booleans are falsy when false.

\- Numbers are falsy when zero.

\- Containers are falsy when empty.

\- None is always falsy.

\- No other type of value is ever falsy.

I can think of two ways we might possibly want to alter the rule.

The first is to expand the idea of _number_ to include arbitrary groups (or monoids?), with the identity element being falsy. So, for example, a matrix with all entries zero might be falsy. Or a 3-D transformation might be falsy if it does not move anything.

The second is one I have encountered in C++. There, an I/O stream is falsy if it is in an error state. This makes error checking easy; there is one less member-function name to remember. We might expand this idea to include things like Python's urllib, or any object that wraps a connection or stream of some kind.

EDIT: OTOH, there is the Haskell philosophy, where the only thing that can be evaluated in a Boolean context is a Bool, so the only falsy thing is _False_.

EDIT 2: The comment by clarkevans (quoting a message from INADA Naoki) already partially addressed the above group idea: "I feel zero value of non abelian group should not mean False in bool context."

<comment><USER22> Making anything besides booleans "truthy" strikes me as asking for a lot of trouble for very little gain. For each of these cases, how hard is this to write:

        x == 0
        isempty(x)
        x == nothing

How much clearer is the intent of that code than a truthy boolean test would be? This clarity is all the more important in dynamically typed languages without type annotations since the code itself doesn't give any hint what the type of `x` might be, so the programmer doesn't know what it is the test is really checking for.

Oh the other hand, the cost of truthiness is pretty significant. Each person reading or writing code in a language with truthiness must remember all the arbitrary truthiness rules that particular language uses – and they're quite different for each of Python, Perl, Ruby, C, JavaScript, etc. As this issue demonstrates, whenever you open the door a little, even in a generally sane language like Python, at some point some weird decisions get made and you find yourself with some strange corner cases like midnight being falsey. If you wanted to know if a date was midnight, wouldn't it be easy enough to just explicitly test that?

<comment><USER23> Completely agree. C# has this right. An expression must produce a valid boolean value, the language does not evaluate any random type as boolean based on a set of rules.

E.g. you can't say following in C#

if(number) //number is of type integer.

if(o1) //o1 is a reference type variable.

if("string")

if(number = 10) // number = 10 is an assignment and produces 10.

You must write:

if(number == 0)

if(o1 != null)

if("string".Length > 0)

if(number == 10)

</comment></comment></comment><comment><USER24> James Coglan recently pointed out that all of Python's falsy values are the additive identity of some type. Midnight fits the mold.

This results in some weird results from an intuitive perspective, but is very principled and elegant in other ways.

My one objection was that I don't know how None fits in.

<comment><USER25> Midnight is not the addittive identity of points in time. There is no additive identity because there is no addition operation. You're confusing the ``time`` type, with the ``timedelta`` type, which represents a duration, and does have 0-minutes as an additive identity.

midnight is not, nor has it ever been, the "zero-time", it's simply a point whose typical representation contains some 0s. It is no more Falsey than the origin (0, 0) in the cartesian coordinate system is Falsey.

<comment><USER24> You win: I was confusing those things! I was thinking times were treated as a timedelta ranging from 0 to 23 hours 59...

</comment></comment></comment><comment><USER26> Lots of Python objects are falsey: empty lists, empty strings, etc. So it's never a good idea to write "if <thing>" when you mean "if <thing> is not None".

This is pretty well-known, I thought.

<comment><USER27> A big part of it is about user expectations. I would be shocked if any experienced Python programmer who wasn't familiar with this exact implementation detail expected the following:

        if datetime.time(0, 0, 0):
            print "foo"
        else:
            print "bar"

to print "bar"

<comment><USER28> Oh man people that have used python for a while have come to expect datetime to just be strange in general. Essentially the default is to be in your TZ from midnight, you need to convert and there are different classes for epoch, and some of the members seemingly willy-nilly are not there or named differently then! And that's just the start, that's why things like arrow exist: [http://crsmithdev.com/arrow/](http://crsmithdev.com/arrow/) time and datetime in python show their age.

</comment></comment></comment><comment><USER29> Off the top of my head I can't think of a reason to check if a date exists, but I would certainly expect midnight to be truthy if I found a reason.

<comment><USER30> What about optional date fields in a Django application?

<comment><USER31> you check if it's None or for the type.

</comment></comment></comment><comment><USER32> Whilst reading that thread, I stumbled accross:

      "goto fail" is a well-known error handling mechanism in open source
      software, widely reputed for its robusteness:

      http://opensource.apple.com/source/Security/Security-55471/libsecurity_ssl/lib/sslKeyExchange.c

      https://www.gitorious.org/gnutls/gnutls/source/6aa26f78150ccbdf0aec1878a41c17c41d358a3b:lib/x509/verify.c

      I believe Python needs to add support for this superior paradigm.

      It would involve a new keyword "fail" and some means of goto'ing to it.
      I suggest "raise to fail":

      if (some_error):
         raise to fail

      fail:
            <error handling code>

      Unless there are many objections, this fantastic idea might be submitted
      in a (short) PEP somewhere around the beginning of next month.

      There is some obvious overlap with the rejected "goto PEP" (PEP 3163)
      and the Python 2.3 goto module. However, the superiority of goto fail as
      error generation and error handling paradigm has since then been
      thoroughly proven.

[https://mail.python.org/pipermail/python- ideas/2014-March/02...](https://mail.python.org/pipermail/python- ideas/2014-March/026581.html)

<comment><USER25> Python already comes with the logical conclusion of goto-fail out of the box. There's no need to add a new special feature for it.

(There is absolutely no certificate store checking for certs by default, nor is there any hostname checking, or any of the myriad of other checks one might expect a reasonable TLS implementation to perform. Use the requests module.)

</comment></comment><comment><USER33> I think he understates the most powerful part of his argument.

Midnight is a value, not a special value. There is no reason why it or any other valid time should be falsey on a daily cycle.

<comment><USER34> Couldn't the same argument be made about zero?

<comment><USER10> There are times when I like the fact that zero is false in Perl.

However, usually I am happy that '0 is false' in PostgreSQL raises a type exception.

</comment></comment></comment><comment><USER35> I think the interesting part is what is revealed about Python and the difference with something like Ruby.

Python is stable[0] and places a high degree of importance on backwards compatibility.

This behaviour is well documented (and called out for particular note). This reinforces that it is (a) official and (b) not a bug because it is the documented behaviour.

On the other hand Ruby (and most Ruby libraries) seem both less concerned with backwards compatibility, have less thorough documentation[1] but are more willing to change and improve.

There isn't a right and a wrong between these approaches although for most things I think I would prefer something between the two. I think I generally prefer Python in terms of syntax (Ruby is a bit too flexible with too many ways to do things for my taste) but I do wonder if Python will be left a little behind.

[0] Python 2/3 transition is a single big deliberate change.

[1] I have an open Rails issue that I don't know if is a bug or not because there isn't documentation that is sufficient to compare the behaviour with so it is a case of what feels right/wrong: [https://github.com/rails/rails/issues/6659](https://github.com/rails/rails/issues/6659)

<comment><USER36> I'm gonna disagree with you! Well, I actually agree about ruby _libraries_ , but the ruby _standard library_ is the proper comparison here, which in my experience manages backwards compatibility and documentation of edge cases rather nicely. The (many) changes to the language itself since 1.8 have nearly all happened in backwards-compatible ways. So maybe the ruby _community_ has a more flexible attitude (I've honestly never used enough external python libraries to have a good comparison point), but I don't think it's fair to say that the language itself is.

<comment><USER35> I was deliberately discussing the whole library ecosystem you could well be right about the stability of the core of Ruby.

</comment></comment></comment><comment><USER37> Not being a Pythonista, I have the following questions:

1) Is there a (native or custom) date type in Python? Is it an object?

2) Midnight _when_? Today? This date last year? Sure there's a "zero value" for dates - it's the epoch for whichever platform or library you're using.

3) Why in would anyone call it a "date" if it's really a _time_?

Maybe I'm getting off into the philosophical decisions of the reptile wranglers, but this particular debate sounds a lot like someone made a decision long ago that had ramifications further than expected and now the justification is engrained, things are built on it, and no one's willing to make the 'correction.'

<comment><USER38> Python has dates, times, and datetimes[0]. They're all objects. So yes, you could get around this by always using a datetime. However, sometimes what you need is just a time.

[0] [http://docs.python.org/2/library/datetime.html](http://docs.python.org/2/library/datetime.html)

</comment></comment><comment><USER39> Python has weird ideas about comparisons, I'm pretty sure it's the only language where this is possible: [https://eval.in/113749](https://eval.in/113749)

<comment><USER40> That's been fixed in Python 3.

</comment></comment><comment> eq- The only reason for midnight being a falsy value that I can think of is that someone thought that _all_ objects should provide some functionality for __nonzero__/__bool__.

It was a bad idea.

</comment><comment><USER41> This kind of crap is exactly the reason why I don't like doing just "if var:" unless var is guaranteed to be a boolean.

</comment><comment><USER42> Midnight UTC is zero's all the way down. Seems false to me, but I'm from the land of C. This seems to be in line with some low level hardware or common assembly practice across many languages.

Everyone is talking higher echelons of consideration, but what effect is there on generated byte code or in fitting within the virtual machine's tight pants?

</comment><comment><USER43> This offers a counterexample to the simplistic notion that 'duck typing' results in programs that automagically do the right thing. The reality is that duck typing does not relieve you of the responsibility of understanding the semantics of the elements you use to construct a program from.

</comment><comment><USER44> On the plus side, Boolean Value: Midnight would make a great CS-themed action movie title.

</comment><comment><USER45> This is freakishly similar to the discussion on a PHP bug I submitted in 2006:

[https://bugs.php.net/bug.php?id=39579](https://bugs.php.net/bug.php?id=39579)

</comment><comment><USER10> This sub discussion seemed interesting to me: [https://mail.python.org/pipermail/python- ideas/2014-March/02...](https://mail.python.org/pipermail/python- ideas/2014-March/026656.html)

My first thought was this:

[http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_el...](http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements005.htm)

</comment><comment><USER46> While I agree this is surprising behavior and I wouldn't design an API this way, it is documented behavior. From the docs:

"in Boolean contexts, a time object is considered to be true if and only if, after converting it to minutes and subtracting utcoffset() (or 0 if that's None), the result is non-zero"

Changing at this point would possibly break code that relied on documented library behavior. That's not a responsible thing to do.

<comment><USER47> Explicit is better than implicit.

Simple is better than complex.

<comment><USER46> I'm not sure what that is supposed to mean in this context. Testing for "is not None" is more explicit and avoids the trap being discussed. I don't know how the second sentence applies, maybe "if timeval:" is simpler?

BTW, do you know the original author of the Zen of Python has posted to this very dicussion (while also being the orginal author of said module):

[https://mail.python.org/pipermail/python- ideas/2014-March/02...](https://mail.python.org/pipermail/python- ideas/2014-March/026573.html) [https://mail.python.org/pipermail/python- ideas/2014-March/02...](https://mail.python.org/pipermail/python- ideas/2014-March/026577.html)

<comment><USER48> "Simplicity" is not measured in terms of key presses or characters.

The "if timeval:" case may contain fewer characters, but it's less explicit. Being less explicit opens it up to greater ambiguity. Ambiguity is a form of complexity. Complexity is the opposite of simplicity.

The explicit "is not None" check may require more typing, but it's far more explicit and exact. That means it's much less ambiguous, and thus less complex, and thus exhibits greater simplicity.

</comment></comment></comment></comment><comment> mark-r In every other language I've used, a time value of 0 is used when a datetime only contains a date and doesn't have a specific time. The existing behavior would make sense in that context. I know Python also has a separate date object, are the two interchangeable enough that you could mix and match without problems?

</comment><comment><USER49> I came across a similar issue when using rails the other day, where I gave my model a boolean field that had presence validation. The presence validation of the boolean field fails if the bool is set to false, had me confused for a while, but It wasn't a big enough issue for me to research/report.

</comment><comment><USER50> It seems there are two choices:

1\. Before applying a numerical value to a Boolean test, ask whether it can ever be zero when that's not the intent of the test.

2\. Create a new rule that forbids testing numerical values as though they're Booleans, and break nearly every program in existence.

Hmm ... wait ... I'm thinking it over.

</comment><comment><USER51> Why would anyone evaluate dates in a boolean context? They are (should be) always True.

<comment><USER52> > They are (should be) always True.

This is the obvious intuition, which doesn't match the current implementation.

> Why would anyone evaluate dates in a boolean context?

I'd guess, usually to tell whether a variable has a date or None. For example, maybe you have some kind of GUI with a form where the user is supposed to fill in a time, and some variable somewhere in the code is set to None [1] when the time field is blank [2], and a time object representing the time entered by the user otherwise.

Maybe you want to require the user to fill in all fields in the form before advancing to the next step in your program's workflow. If you like falsiness, you might write:

        if not form.time_field:
            show_warning("You must enter a time to proceed")
            continue_current_phase()
        else:
            proceed_to_next_phase()

You actually intended the first line to be:

        if form.time_field is not None:

But the only way you'd find this bug is when a user on the East Coast complains that the form won't accept 7:00 (UTC midnight). It will accept 6:59 or 7:01, but not 7:00. Of course you're on the West Coast, so you close their ticket as "can't reproduce" since 7:00 works just fine for you...

[1] None is the Python equivalent of other programming languages' null (or NULL).

[2] Or unparseable

</comment></comment><comment><USER53> Creeping semi-booleans make me very uncomfortable. But what's the alternative? A-values and I-values? A "μ" for questions unanswerable in the type system? Just punt and let Javascriptisms take over the world?

</comment><comment><USER54> This is how languages die. I wasn't aware that Python had become such a bureaucracy.

The current behavior is insane - just fix it! No need for days of discussion on the mailing list or three-point non regression plans.

</comment><comment><USER55> Deprecate datetime and introduce datetime2 with better behavior for midnight. Problem solved.

</comment><comment><USER56> boolean blindness [http://existentialtype.wordpress.com/2011/03/15/boolean- blin...](http://existentialtype.wordpress.com/2011/03/15/boolean-blindness/)</comment>


Hi, I Am AI and Blockchain-Powered SummarizeBot - <AUTHOR> https://www.summarizebot.com/ <comment><USER2> Calling this "Blockchain" sounds like buzzword bingo to me. The actual API documentation only mentions blockchain once in the marketing blurb at the top, and the most substantial justification of their use of the term on that website is at the very bottom of the FAQ:

> We apply decentralized architecture to train and test our artificial > intelligence model. Using blockchain technology helps us to collect more > accurate data for training. We used blockchain protocols to validate data > label quality, ensuring the most accurate datasets possible.

Which is generic to the point of meaningless.

How about: less marketing bullshit and more live demos and meaningful comparisons to the many competitors in this space. I'm interested in these sorts of NLP services, but your website provides 0 reason for me to even consider you.

<comment><USER3> Hi! Thanks for your feedback.

> Calling this "Blockchain" sounds like buzzword bingo to me.

First of all, our main technology is multilingual natural language processing, but not blockchain. But we use blockchain protocols to create training collections in the same way as many similar projects like DBrain do.

> more live demos and meaningful comparisons to the many competitors in this > space.

1\. We use our chatbot as the smart demo of all our technologies. 2\. Non of our competitors are working properly. 3\. Non of them supporting this amount of languages we do (such as Chinese, Japanese, Arabic and etc.). 4\. Non of them having features we have (multilingual summarization, audio summarization, news aggregation and etc.)

Besides, we have a lot of advantages that make us really unique and different from our competitors:

\- summarization feature. Our summarization and multi-language (100+ languages) algorithm can extract and structure the most important information from text, images and even audio files.

\- news sentiment analysis. Our sentiment analysis models are specially trained and optimized for the effective analysis of news articles, while most of our competitors are focused on the analysis of user reviews. Sentiment analysis method supports English, French, German, Italian, Portuguese, Spanish and Russian languages.

\- news aggregation. Thousands of news sources has been indexed and analyzed by our custom artificial intelligence modules to give the perfect search accuracy in natural language mode.

\- set of web scraping tools. Using our services, you can not only analyze your custom dataset, but also collect your own collection from unstructured sources: extract clean article text and other data from news articles, extract lists of reviews/comments from forums and etc.

\- image processing. In addition to analyzing the texts, we also offer image recognition and face detection functions. If you plan to expand your document analysis system with image processing capabilities, you don't need to find another service provider, as we have both of these components (text analysis & image processing).

Best regards, Summarizebot team</comment></comment>


Show HN: Made a Map of the Loadshedding Schedule for Cape Town - <AUTHOR> http://loadshedding.johanndutoit.net

<comment><USER2> Thanks ! Awesome work ! :) Makes it waaay easier to check up on load shedding times than the actual site !

One request if you're up to it (or in the mood) : Load shedding times summary in a tooltip when the user hovers over an area. Example : User hovers over Brackenfell area (with map set for today) Tooltip displays : Wednesday Stage 1 : n/a Stage 2 : 14:00 to 16:30 Stage 3 : 00:00 to 02:30 14:00 to 16:30 20:00 to 22:30

</comment><comment><USER3> Learned something today: "load shedding" and "feeder rotation" are synonymous with "rolling blackouts".

This map shows where in Cape Town the power will be off at any given time. Cool. Nice use of the tools and data available.

</comment><comment><USER4> very nice.</comment>


Moto 360 - <AUTHOR> http://moto360.motorola.com/ <comment><USER2> I'm very impressed. When I saw the Google video, I thought the round watch was a photoshopped concept we may see in the future, but it's actually shipping in a few months.

Also, is this the first mass-market device with a round screen? I'd be interested to see how the layouts work from a developer perspective. Whether relative or fixed, desktop, mobile or web, we're all so used to rectangular, grid based layouts.

<comment><USER3> It's still "simulated" which means Photoshopped / After Effects. I"m actually pretty nervous because there's no "simulated" disclaimer, yet these mock-ups are terribly rough:

\- fake / inconsistent lighting accents & bevel

\- screens in the photos are pixelated (looks like a screen-res quality source was rotated), yet the 3D model's screen is totally smooth suggesting 400 dpi or better

\- clip rotation angles are off

\- the cropping is poor, has antialiasing problems

<comment><USER4> In other words, you can tell by some of the pixels?

<comment><USER3> An easy way to tell: look at the edges of the text area's white background. See how they're kinda jaggy, almost like steps? That's due to low resolution. Either the device is low res (which most smart phones are) or the source image was.

Now look at the edges of the 3D watch's hands: they're all smooth at every angle. That means either a 3D mock-up or an incredibly high res screen. Yet look at the black watch face in the prior shot: all the hands are jagged.

<comment><USER5> Nice; though reading your explanation made me imagine how we're getting close to [https://xkcd.com/331/](https://xkcd.com/331/) territory ;).

</comment></comment></comment></comment></comment><comment><USER6> Am I the only one who doesn't wear a watch (even if I wanted to) because I don't like the way it scratches against my MacBook Pro?

<comment><USER7> I find it hilarious that you name the exact model of laptop.

<comment><USER8> This is anecdotal evidence but I've noticed people using idevices mention the models rather than generic device names.

I wonder why that is.

<comment><USER9> Apple is more a fashion company than a tech company. Those who buy and use its products are primarily concerned with advertising the fact that they use Apple products - conspicuous consumption. It's no different from how Gucci or Prada owners make sure to prominently display the brand of their handbag when they are in public. It's a simple form of signaling your identity, that you belong to a particular group.

This is also why Apple's profit margins are sky high. Consumer electronics is an industry with razor thin margins, but with fashion, the sky is the limit (given that you can effectively manipulate the minds of consumers, which Apple is excellent at). An iDevice cannot be commoditized, no matter how hard Apple's competitors try.

<comment><USER10> Either you're a troll or you're delusional. Which is it?

>Apple is more a fashion company than a tech company.

Not even remotely accurate for possible definitions of either of those terms.

>Those who buy and use its products are primarily concerned with advertising the fact that they use Apple products - conspicuous consumption.

Oh really? You don't think it has anything to do with their excellent track record of hardware design, software design, reliability and usability?

>It's no different from how Gucci or Prada owners make sure to prominently display the brand of their handbag when they are in public.

Yes, because Dell and HP laptops are completely devoid of physical branding...

>It's a simple form of signaling your identity, that you belong to a particular group.

Or it's because Apple products let productive people be productive.

<comment><USER11> > You don't think it has anything to do with their excellent track record of > hardware design, software design, reliability and usability?

Of course. It has to do with Apple's _branding_ of "hardware design, software design, reliability and usability".

Just like G-Star advertises their clothing as "raw", while their jeans are actually quite flimsy and rip or tear easily.

Sure, they look pretty and well-fitted. Just like I would recommend my grandmother an iPad because I know it's well-designed and she'd have less trouble using it.

> >It's no different from how Gucci or Prada owners make sure to prominently > display the brand of their handbag when they are in public.

> Yes, because Dell and HP laptops are completely devoid of physical > branding...

You're proving his point here: It's not like other brands of handbags (or shoes) are completely devoid of physical branding either. Yet it's not like their owners are even _aware_ of its brand, half the time.

In this context I'd sooner compare Apple products to Nike shoes, rather than the fashion "I have money to spend" signalling Gucci/Prada handbags.

Come on, the evolution of "brands as lifestyle + identity" has been around for at least 30 years now. You should know a thing or two about how it works. It's not really a disputed theory.

And you can't seriously deny that Apple isn't fighting along in the Big Brand mindshare arena just as much as Coca-Cola, Nike, Red Bull and Calvin Klein, in a sense that Dell, Asus or Lenovo are very much not. A quick litmus-test is whether they have a significant brand-identity that can be separated from their products (sometimes even more prominent than their actual core product, especially in the case of Coca-Cola or Red Bull).

> >It's a simple form of signaling your identity, that you belong to a > particular group.

> Or it's because Apple products let productive people be productive.

See what you just did? Put Apple product users in the group of "productive people being productive"? :) Would you _ever_ say something as generic about a Lenovo laptop? (which has excellent hardware and lets productive people be _very_ productive) That's because Apple is a brand identity, over just being a brand of laptops. As if they're charged with a kind of "soul".

You don't have to consider it a bad thing, but I think it's important to at least be aware of these very real differences, because they do influence the way people act, behave and feel about their stuff. And it's nothing new, and it's nothing you can or should prevent, everyone is affected by these ideas to some extent, which is again why it's so important to be aware of it. Just don't deny it.

<comment><USER12> Exactly! Discussions on HN (and elsewhere) have been full of Apple users bemoaning problems that, if they happened on Android, would be held up as proof that it was inherently crap. Because Apple have successfully branded themselves as the usable, well-designed option these issues get treated as a temporary aberration - even though from what I can tell they've always been the norm for Apple.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Really cool stuff! From what it looks like this is a big departure from the previous Android smart watches that look like they jammed Android 1.0 on there.

Two big concerns for me: 1) Battery life 2) Display visibility

They go hand-in-hand for me. Get that nice high-res display but will it last me a day? For battery life it would be nice to have induction charging if it were to last about 8 hours (my personal guess).

<comment><USER14> If they price this to compete with typical mid-high watches, then you're looking at about $4000 [1] which is more than enough to get some very impressive display technology in there.

If they skimp and try to put in cheap hardware and go for a $500 price target then this is going to fall flat. Hopefully they understand the watch market and know to charge more and put in the best materiel, but knowing the tech industry I doubt it a lot.

[1] [http://www.thewatchquote.com/List-Price-and-tariff-for- Montb...](http://www.thewatchquote.com/List-Price-and-tariff-for-Montblanc- TimeWalker-Chrono-Automatic-ref-09668-watch-No_5108.htm)

<comment><USER15> $4000 is _insane_ for a piece of consumer electronics OR a watch. A watch that expensive is purely status-indicating jewelry.

If all you want to do is tell the time quickly, a $10 quartz watch does the job just fine.

I am sure Vertu or some other ridiculous company will sell you your insane diamond-encrusted titanium penis size signifier with a touch screen and Android Wear integration, but it won't be any more functional than the regular version.

<comment><USER16> This was, by far the best cost/benefit watch that I found latelly: [http://www.amazon.com/gp/product/B004VR9HP2/ref=oh_details_o...](http://www.amazon.com/gp/product/B004VR9HP2/ref=oh_details_o01_s00_i00?ie=UTF8&psc=1)

Also, Swatch have some very nice ones, with a VERY good price.

<comment><USER17> Don't take this the wrong way but: That thing doesn't even have a respectable water-resistant rating, I was very exciting when I clicked on that link because I'm in the market for a new watch, but I need something that can take more than a couple drops of water...

For comparison: My first two watches lasted 2 years each and costed me ~$10 a pop plus they had a WR rating of 300m. Sadly they looked kinda juvenile and I needed something with a little more status, but I'm leaning on just going back because they really worked!

<comment><USER18> Does 30m (99ft) not translate to approx 30 meters/99 foot underwater for watches? If you want a watch to go diving in fair enough, but the way I read that it seems a fair bit more than a couple drops of water?

<comment><USER17> so it's strange but that's not quite how it works, Here's a pretty good explainantion of what those numbers actually mean: [http://deloachwatchservice.com/other_stuff/water_resistancy....](http://deloachwatchservice.com/other_stuff/water_resistancy.htm)

<comment><USER18> Wow, thanks for that! I'm in the market too so I'll definitely bear that in mind. Bizarre that they advertise them numbers without such an explanation.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> I'm excited about this, and disappointed in Pebble. They were first to market but totally squandered their opportunity. I got my Pebble last year, and stopped wearing it after a week because all the promised apps were still a work-in-progress. One year later, not much has changed :/

<comment><USER20> I'm using mine with RunKeeper and it works great. I'm pretty happy with my Pebble's notifications as well. Having said that, I didn't have great expectations to start with. I wasn't going to play games on a watch. I wasn't going to type responses to my SMSs or e-mails. I'm happy because I don't miss calls anymore. I see my notifications instantly. And when I'm outside running, I can easily see my distance, pace etc. And I only recharge once a week or longer.

<comment><USER19> Same here. My biggest use case was a nextbus app.

</comment></comment></comment><comment><USER21> An aside: When does the deal of selling Motorola Mobility to Lenovo close? I'm assuming not for a while and this is why they're still branded as a Google company?

<comment><USER22> The sale hasn't gone through yet, so they're still a Google company for the time being.

</comment></comment><comment><USER23> Can I ask a dumb question? Is this a stand-alone device (requiring a SIM card) or does it require pairing with a phone for data access?

Because if it's the latter it's no better on the key feature of portability than the existing Samsung/Pebble devices (AIUI).

<comment><USER24> I would be amazed and/or shocked if it had a 3G radio in. It surely _has_ to be paired with a phone for data access. The power requirements alone would result in a watch that had a 2 hour battery! I suppose it could use WiFi, but that seems unlikely. I am guessing bluetooth pairing...

<comment><USER25> Well, it doesn't have to be 3G, good old GSM, so I could leave my phone in the locker and go to gym and have all the data available to me right there. It has small screen, which most of the time should be turned off, without bluetooth (which is battery hungry also) and without wifi, I think it should work for 1 day. That kind of smartwatch I would definitely buy.

<comment><USER26> I'd really hope the screen never goes to sleep. That would kinda defeat the whole point of the idea IMO.

Make it bluetooth only. Try to give it a decent battery. Maybe a peltier could help stretch it further (seen on some watches, though I suspect the space would be better used for a larger battery since this watch would be much more power hungry)?

Still. Pretty pumped about this.

</comment></comment></comment></comment><comment><USER27> Am I the only person hoping this comes through with some type of iOS compatibility? It seems to be the only smart watch out there that looks like a watch and not a futuristic-80's-era-digital-caluclator-watch

<comment><USER28> Definitely second your point about the styling. This is the first smart watch I've seen that I could see myself wearing (although it still looks a bit thick for something I'd be wearing on my wrist -- but that's a hard problem to get around with current-generation technology).

Current smart watches remind me of those Windows convertible tablets from 2006-2007. It was a good idea, and for certain use-cases it was the best thing out there, but the technology just wasn't quite advanced enough to make them practical for most people. I see smart watches catching on when they are sleek enough to function as a no-compromises watch while also integrating all the contextual information they promise to make available.

</comment></comment><comment><USER29> I have a full blow Android watch (Simvalley AW420) , but I wouldn't recommend a Smartwatch to others.

Why?!

\- Gorilla arms; When your in bed or on the couch, keeping the watch turned towards your face takes a toll on your wrists. It's tiring. See how the people in the video look down towards their watch, try doing that 20+ times a day for prolonged times.

\- Call quality; Calling with it sound like your wearing a skimask. A bluetooth dongle is the only option for good voice quality, but its another extra device on you.

\- Battery quality ; Battery lasts one day if your taking it easy.

\- Restricted Controls; The only thing you can do is swipe or touch. I can manage the onscreen keyboard, but its tiny! The only things you can truly use it for is a notification system.

<comment><USER30> Call quality is a matter of using decent hardware, and [http://minuum.com/](http://minuum.com/) solves the keyboard problem. I expect to see amazing developments in the next couple years!

<comment><USER29> No matter how good your mic is, you still have too much ambient sound. A mic near your mouth is the best solution so far.

</comment></comment></comment><comment><USER31> I'm extremely curious to learn about how they build the display. I have been to lots of component trade shows but have never Seen anyone able to produce non rectangular screens or flexible screens that could be bent like they would need to here, does anyone know more?

Meta: Why after so many comments am I the first to ask this?!?

<comment><USER32> Cutting an AMOLED screen in a circle isn't exactly rocket engineering. Driving it will be a bit of a challenge, but not something that a team of electrical engineers can't overcome. The biggest problem is that it's going to be expensive, which is convenient because a smartwatch is a luxury item and people will be willing to pay if it's even halfway decent.

The biggest problem is that they haven't demonstrated it will be even halfway decent yet, and none of the existing comparables give any confidence to that.

<comment><USER31> Doesn't seem to be Amoled, the only screen so far that would atleast from the the tech fit the bill: [http://www.alibaba.com/product-detail/unique-small- circular-...](http://www.alibaba.com/product-detail/unique-small-circular- screen-1-38_518740441.html)

<comment><USER32> How can it seem to be anything, it's not even real yet. It's a marketing mockup.

AMOLED fits the bill easily because the technology allows you to place dots however you need to place dots and doesn't restrict you to arrays or rectangular shaped emitters or even planar geometry. The only challenge is running wires to each LED to drive it.

</comment></comment></comment></comment><comment><USER33> Someone should teach Motorola that "I would like to receive product information from Motorola and confirm that I'm 16 years of age or older." is NOT what "opt in" means...

<comment><USER34> The whole point of entering your email address on that page is to "receive product information from Motorola". That's what signing up for updates on the Moto 360 is: asking to receive info on a Moto product.

<comment><USER35> To be fair, I had a similar reaction (still went ahead and subscribed, though) - I first had the impression I was signing up to receive information specifically related to this one product, and now don't know if that's the case or if I'm going to get a tonne of mails about stuff I don't care about while waiting for an update on this.

</comment></comment></comment><comment><USER36> My first impression is that the face looks slightly too big for the wrists it is being modelled on. If the pictures are representative of the final product then I can't see it being worn by many women, or men with slimmer wrists.

</comment><comment><USER37> >Synchronizing your pulse with Google...

>Say "share now" to share your cardiovascular activity on Google+

>...

>Synchronization completed!

>5 minutes later

> _ping!_ One new message. Say "read" or "later"

>" _read_ "

>Enjoying the run? Try these Adidas XYZ shoes for only 99$, perfect for athletic running!

Call me a tinfoil hatter, but I am not touching this tracking device with a five foot pole.

<comment><USER38> This device just connects to your phone.

<comment><USER39> And that will prevent Google from implementing libraries and functionality specifically designed to enable what the GP proposes? I think more along the lines of more and more integration to compel users to "get the full experience" out of their phones and watches.

</comment></comment></comment><comment><USER40> I am still failing to get the idea of enabling phone related services on a tiny device like this, it's unlikely it can run sms/phone calls at its own, rather you would have to keep a smartphone with it. That said, I guess the focus should be on doing something that phone can't. Than indirectly using your phone by this device, which barely makes any sense to me.

The device depicted in the images does not appeal me, it's seems massive and old fashioned. I don't think a smartwatch should have this look. We do not need a touch screen enabled watch, we are talking here about a 'smart' watch.

<comment><USER41> It's impossible it can run anything on its own, its an accessory, that's the point.

The best use is typically just getting notifications. So you can see SMSes, IMs, whatnot. The fact is that 90% of the time it's more important to have read a message than to reply to it. It also saves you the trouble of having to remember to read something when you notice you've gotten a message but you can't check it just now 'cause you are busy with something else. That alone is a huge use case. Sure, it doesn't apply to everyone, but it applies to enough people that it justifies the product.

And ultimately it is just a product not a way of life being imposed on humanity. If it doesn't work for you then don't use it. If you don't like sailing you don't have to buy a sail boat, but you also don't have to decry their existence either.

</comment></comment><comment><USER42> Seriously... It looks like a toy comparing to a good old swiss watch :

[http://www.omegawatches.com/planet- omega/bond](http://www.omegawatches.com/planet-omega/bond)

<comment><USER43> And Omega is to Swiss watches what Lindsey Lohan is to acting =)

* I'm Swiss and this comment was made in good humour

<comment><USER44> Let's be honest - a Tag Heuer is the Macaulay Culkin of watches and not everyone can afford a Patek. Omega is ok. ;)

<comment><USER16> How about Tissot? (I'm by no means really understand about swiss watches, just curious)

</comment></comment></comment></comment><comment><USER45> I wonder how can you call someone? You can speak to the phone but how do you hear what is being said to you? Does it comes with some kind of wireless earphones or something?

<comment><USER46> Or how you text someone, for that matter.

<comment><USER47> I'd guess that it's like Google Glass - quick to read things like texts, and you can respond with short transcribed messages.

<comment><USER48> Watch the Android Wear video, it uses Google's voice input to transcribe messages.

</comment></comment></comment></comment><comment><USER49> how it is different from Moto Watch[1]? I guess they just changed the dial.

[1] - [https://motoactv.com/home/page/features.html](https://motoactv.com/home/page/features.html)

<comment><USER48> Well, for starters, it's round, which is a big thing (round LCDs are hard to pull off). Secondly, it runs Android Wear, not whatever custom baked thing was running on the MotoActv watch. Thirdly, it does completely different things. The MotoActv watch was a fitness watch. It's meant to track your runs, etc. This is a smartwatch. It's meant to connect to your phone and give you relevant information. Completely different use cases.

<comment><USER49> MotoActv is also a smart watch. Please refer to feature list below. Sales of Moto 360 will see whether there more fans round dial or square screen.

The trend I see here is - if your shit does not sell in first attempt then repackage it under a new name.

MotoActv Features - 1\. gps 2\. heart rate 3\. monitor 4\. music 5\. challenges 6\. texts 7\. ant+ 8\. wi-fi 9\. clock 10\. weather 11\. display

<comment><USER48> Except not even slightly accurate. The MotoActv is not primarily a smartwatch, it's a fitness device first. It's meant for active audiences who want a watch while they excercise, hence the Actv part of the name.

The Moto360, which looks absolutely nothing like the MotoActv (seriously, where the hell are you getting that they're repackaging an existing watch under a new name? They're completely different) is meant for an entirely different market, has completely different features, and probably features none of the same internals as the MotoActv.

They are two watches, with completely different functions, with completely different UIs, meant for completely different people. The only similarity is that they're both made by Motorola but even that's a stretch because the Motorola of today (I'm referring to Motorola, a Google company) is nothing like Motorola of 2 years ago, when the MotoActv was released.

</comment></comment></comment></comment><comment><USER50> This has to be the smoothest scrolling image transition on that scale I've seen.

Anybody care to enlighten an amateur how they did it?

<comment><USER51> Looks like it's mostly jquery. You can check out the scrolling stuff here: [http://moto360.motorola.com/js/functions.js](http://moto360.motorola.com/js/functions.js)

<comment><USER52> That has the weirdest mobile detection code I have seen. Is is bad code, or is this the best that can be done:

      window.mobilecheck = function() {
    		var check = false;
    		(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera);
    		return check; }
    	var isMobile = mobilecheck();

Scroll right to see the code...

<comment><USER53> Not saying whether it's a good method or not, but it's the standard detection script from [http://detectmobilebrowsers.com/](http://detectmobilebrowsers.com/)

</comment></comment></comment></comment><comment><USER54> If you're looking for a video like I was, there's one on their blog post: [http://motorola-blog.blogspot.com/2014/03/moto-360-its- time....](http://motorola-blog.blogspot.com/2014/03/moto-360-its-time.html)

It's light on product shots, however.

<comment><USER55> They clearly don't have a working model, yet. All of the physical devices they showed in that clip were engineering prototypes (CNC or 3D printed plastics) with no electronics.

</comment></comment><comment><USER56> My first thought: who would want to wear that? I think that watch is way too unwieldy to have mass appeal.

But let's assume that I have no taste: assuming that the model shown is an average western white male, the size of that watch cuts out 50% or more of the population because it is too wide for their wrists.

And yes, they do mention "a selection of styles", but I doubt that will include size differences. If you scale it down to the size of a ladies' watch, chances are you will run into problems w.r.t. Battery volume.

Power usage may be the Achilles heel, anyways, but they may have tweaked that through software (I think it might be possible to use motion and light sensors to infer when the user might be looking at the watch and switch off the display when he isn't)

</comment><comment><USER57> It would be nice if the watch was the phone and the black 5 inch square was a cheap secondary screen.

<comment><USER58> It would be nice if I could fly too, but I'm fat and able to generate shockingly small amounts of lift.

</comment></comment><comment><USER59> Any idea how this works? I don't think we have reached technology level to cram CPU+memory+battery+GPS to do all that in standalone watch. So my guess is that the watch has bluetooth that connects to your phone and uses its horsepower. It probably pings phone in your pocket every 1-5 seconds. This then bags question if it is compatible with only Android phones and how far can it be from phone.

It also appears that the watch has color LCD that would display analog faceplate. It would be pretty expensive to run color LCD full time though. Another alternative could be color E-Ink but unless there have been any recent advancement that was still experimental.

</comment><comment><USER60> If you want a watch, you should buy a good Swiss watch, you don't need this cheap crap on your hand, unless you are 15 years old (which btw is a market on its own).

I don't know why people invest in these things. I don't know where this vision is coming from, but this is not a tech breakthrough. These things will not be used in the long run, period.

Do you think that Eric Migicovsky wears a freaking pebble watch? I hope not. I hope he can afford a cheap Rolex or a little more expansive IWC.

There should be a disclaimer, product for 5-16, 16-18 if your mom still changes your diapers, or for true tech lovers.

<comment><USER61> This is a pretty shallow, close minded perspective.

<comment><USER60> "I don't know why people invest in these things. I don't know where this vision is coming from, but this is not a tech breakthrough." < I don't like the comment that I made here, it was a little harsh but written in the moment. Thanks

</comment></comment></comment><comment><USER62> This looks great. I'm a little bit confused though by motorola calling itself "a google company" .. wasn't motorola essentially sold to Lenovo?

Or did Google, in addition to the patents, keep the motorola brand?

<comment><USER44> I assume, until the sale is cleared by regulatory bodies, contracts signed,and money exchanges hands, they are still 'A Google Company'

<comment><USER62> Sure, but a major product release tied to the Google brand like this seems to be coming at an odd time.

This watch, for better or worse, is now going to be seen as the Google watch.

<comment><USER44> So what where the options? Wait till the regulatory body approved the sale? Nobody will think this is a google watch except the same people that follow tech news - and therefore know about the sale.

<comment><USER62> Just drop "a google company" from your website (which is where people are buying your products). That seems like the most sensible option, unless there's now some indication that the deal may not go through.

<comment><USER63> There are a lot of rules about what a sold company can do. IANAL but it probably makes the most sense to just act as though you're not sold until the deal is final.

<comment><USER64> It's not sold until the deal is closed. Till then, it is a Google company.

</comment></comment></comment></comment></comment></comment></comment><comment><USER65> I guess I'm the only one here who sees no use in that. I have my smartphone with me and my company phone. I don't need another display with less features. Especially not on my arm where I have a real watch.

I somehow feel it as a step between a phone and an hand-free device like google glass (or even implants). But because we have already google glass I don't even see why we need to go a step back.

Edit: downvotes with no comments? I did not expect that here.

<comment><USER66> I'm right here with you. This is not a compelling piece of jewelry for me. It's too thick, the battery is undoubtedly insufficient, my phone works better (and isn't _always listening_ ), and I don't want another device that impairs my attention.

</comment></comment><comment><USER67> Maybe it's only me, but I'm tired of big watches. I recently got a Jawbone UP and it replaced my wrist watch. The only downside is that the UP doesn't have a clock on it. I don't like having a lot of things on my wrist and I don't like having anything on the arm that I use my mouse with.

What I want is the smallest possible watch out there, and so far I really haven't found anything.

<comment><USER68> Traditionally, female watches are small, and male ones are larger. I don't see this changing any time soon.

Try a Nike Fuelband however, it's very thin. It's not always on, but it sure is fancy when you click the button in public.

<comment><USER69> Smartwatches are somehow male?

<comment><USER70> As a matter of fashion, male watches tend to be larger than female ones. As a matter of practicality, current smartwatches are all large. So yes, yes they are.

</comment></comment></comment></comment><comment><USER71> Very cool - hopefully '360' is not a reference to how many minutes of battery life it will have. I hope for one that it uses an OLED screen, so the black- background watches will use very little battery. Also, I found it interesting that each of the pictures were of vascular men-forearms. I guess they don't expect this to be well adopted by the female population.

<comment><USER72> The Moto X uses the OLED screen to effectively support the active notifications feature without burning battery. I've been very pleased with this feature and taking that technology to a watch just seems to make sense in my opinion.

<comment><USER26> Off Topic, but I had a MotoX and couldn't figure out for the life of me what "Active Notifications" did that Apple's iOS Notifications didn't.

I'm pretty sure I'm going to pick up a Nexus5 soon, but it still bugs me that I can't figure it out.

I mean, if the phone is face down it doesn't display anything on the screen. I get that. It's kinda clever. But it's so minor I have a tough time calling it a "feature" much less a compelling one.

Otherwise I was more annoyed with the MotoX notification system than anything. When you get a notification your unlock slider changes position. If you get more than one you can't jump to the specific one you want, only the latest. iOS didn't have either of these issues but it seemed like everyone considered Active Notifications somehow revolutionary. Or at least state-of-the-art. And it felt like neither to me.

So I dunno. Going off on a tangent I guess. Just curious what I was missing is all...

</comment></comment></comment><comment><USER73> I think this is the first real smart watch that i might buy depending on the final price, battery lifetime and design/functionality.

</comment><comment><USER74> Signed up to be a developer and told them I'd make a beer pong trainer app. Here's to hoping they give me one for free!

</comment><comment><USER75> Am I the only one who thinks it's ugly??

<comment><USER57> probaably

</comment></comment><comment><USER76> The double-twist to open the camera on the Moto X is probably my favorite physical interaction with a device. It works perfectly 100% of the time and I never accidentally open my camera in my pocket. I take more instantaneous photos than ever before. If that precision is brought to the interactions on this watch, sign me up.

<comment><USER77> I also use a Moto X and really like this functionality. However, it doesn't work for me 100% of the time, more like 90%. And I have managed to take several photos of my pocket, though usually while skiing or during other active pursuits. Just another data-point.

</comment></comment><comment><USER78> Although about Android wear in general, this video shows off some of the UI and gives a glance at the builtin features (mostly notifications and something that reminds me a lot of Google now): [http://www.youtube.com/watch?v=0xQ3y902DEQ](http://www.youtube.com/watch?v=0xQ3y902DEQ)

</comment><comment><USER79> So now I have to charge 2 devices instead of 1 every day? This is my biggest issue with smart watches.

<comment><USER80> Pretty much this. any smart watch with current battery tech is going to be on the charger a lot. My gps/hrm watch needs to be charged at least once a week, and that is annoying, I can only imagine what a "smart watch" is going to need in terms of charge cycles.

</comment></comment><comment><USER81> That stem is interesting. The Pebble has 4 buttons, which are generally mapped to up, down, select, and back. That strikes me as the minimum for useful app interface.

With the Moto 360's stem I can see getting up down and select, but now how they'd do back. Maybe a long-press?

<comment><USER82> Not really input related, but is it remotely plausible that winding could charge the battery?

<comment><USER83> Absolutely not.

      1. The dynamo would take up too much room
      2. Pinching a tiny metal shaft is ergonomically awful
      3. have you seen the tiny wind-up flashlights?  they're huge, and they require quite a lot of winding, and that's just to power an LED for a few minutes.
      4. groundbreaking features like a wind-up piece of personal electronics, are *flagship* features.  If this thing had a 1 week battery, or was windup, or whatever, that would be a *very high visibility* part of the ad campaign.

</comment></comment></comment><comment><USER84> I wonder if they will let you flip the screen orientation so left handers can wear it properly..

<comment><USER85> Is that a problem in any other watch? Left or right wrist, the 12 stays on top. Only the button is on the other side.

Besides that: don't count on it. If you pay close attention, you see that the bottom part of the round screen stays black. Most likely to accommodate the controller for the screen. Upside down will not work for that reason.

In a square watch, it might.

<comment><USER84> Yeah, normally, you have two options, just wear the watch with the stem pointing inward which means you have to reach over the watch face to use it, or buy a special watch with a left handed stem. You can't just rotate the watch 180 and wear it with the stem facing outward because the numbers would be upside down.

With a completely digital display though, theoretically, it would be possible to rotate the watch and have the display rotate as well. The clasp would still potentially be upside down, but depending on the type of clasp, that doesn't matter much.

As you said, if the controller face of the screen is dedicated and not able to be rotated as well, that wouldn't work.

</comment></comment></comment><comment><USER86> Impressive! this watch may mark the comeback of Motorola in the mobile arena. Well done Google.

</comment><comment><USER87> This form factor had already been invented by Microsoft more than five years ago: [https://www.youtube.com/watch?v=WazA77xcf0A](https://www.youtube.com/watch?v=WazA77xcf0A)

</comment><comment><USER88> Its a little strange that all of the promo pictures on the site are of male arms. I wonder if it was on oversight or if they really are only going after a male demographic.

<comment><USER89> I assumed that they used only large arms to make the device appear smaller. On a typically sized woman's arm, I suspect this thing would look quite hefty.

The fact that it seems to be relatively large may unavoidably limit its appeal to smaller individuals of either gender.

<comment><USER88> Do you think that a smaller version might make the interface unusable? I wonder if they are keeping it that large because they cant get the insides smaller or because it would not be easy to use.

<comment><USER89> I suspect it's the smallest they can do while still meeting the technical requirements.

There is definitely a size below which usage would suffer too much for many people, but such a device doesn't need a very large UI, since most of its utility is in displaying small bits of information quickly, and extensive data input is performed better on a phone anyway.

</comment></comment></comment></comment><comment><USER90> Now here's something that could actually work. Not sure why anyone thought people would want a device that looked like one of those casio calculator watches.

</comment><comment><USER91> I hate it. It is selfish, but I hate it.

Problem is, I love real watches. More specificaly, I love mechanical watches. You know, those little miracles with cogs and spring in it. And jewel bearings. And balance wheel. See-through back, where you can watch movement running.

And I love technology at the same time. I think that this is the future of technology, everybody will now jump onto bandwagon of smartwatches. But I don't want to replace my beatiful mechanical watches with something like this. I hate that I love watches, because otherwise I would be thrilled to put something like this on my wrist. But I'm not.

</comment><comment><USER92> As a stylish watch, this is right up my alley. Add that it will probably work awesomely w/ my Moto X and I'm sold.

</comment><comment><USER93> I'm really glad that it's a style significantly different from pebble. Should be fun to develop on!

</comment><comment><USER94> Love it! Price?

<comment><USER32> It's marketingware, which is worse than vaporware because it means they spent money making mockups instead of, you know, the actual device.

</comment></comment><comment><USER95> The dial is just too big and too thick!

</comment><comment><USER96> did anyone else notice how there are no ports on this watch...hoping for inductive charging!

</comment><comment><USER97> That guy's clothes look so comfortable yet still professional! I wish I had some.

<comment><USER98> A tweed jacket and polka dot chambray? Uniqlo and H&M got you.

</comment></comment><comment><USER99> I wonder if pebble will react to this. BTW, is there any mention of sensors on it?

</comment><comment><USER100> I'd definitely use one, but two things need to happen:

\- make it smaller, it's bloody huge

\- better battery

<comment><USER101> You realize that those are in opposition of one another, right?

<comment><USER102> That doesn't make it an unreasonable request. There's always the option of not purchasing one until the technology improves enough to make it smaller while having an acceptable battery life.

Given the full color display and the current abysmal battery life for any smart watch not using e-ink, I'm pessimistic about the battery life of this product. I would be very happy to be surprised though.

</comment></comment></comment><comment><USER103> This is very, very interesting. I wonder how much it'll cost.

</comment><comment><USER104> Holy fuck is the "responsive" HTML broken on this page.

</comment><comment><USER105> Yes, but where can i get that guy's shirt?

</comment><comment><USER106> Google is taking Motorola to the next level!

<comment><USER107> They sure are: [http://www.bbc.co.uk/news/business-25956284](http://www.bbc.co.uk/news/business-25956284)

</comment></comment><comment><USER108> 2014 and the best we can do is a Dick Tracy watch.

[http://i.imgur.com/hpSgOcA.png](http://i.imgur.com/hpSgOcA.png)

</comment><comment><USER109> That underside is dope.

</comment><comment><USER110> A kid could have done those mockups better.

</comment><comment><USER111> Is it possible to automatically rotate the UI 45 degrees if the watch detects the arm perpendicular to the body?

Makes me wonder.

<comment><USER111> I guess an NFC tag in your belt would do.

</comment></comment><comment><USER112> Does anyone have any details? That page is amazingly non-informative.

</comment><comment><USER113> -__- IT'S. A. FUCKING. WATCH. -__-

</comment><comment><USER114> Cool, a male only product.

I know more women that wear watches than men, but let's go with something that is gigantic and only men would wear. Seems to be a sound strategy.

<comment><USER115> >Cool, a male only product.

Well you got to test the waters somehow. Its better to test it in one segment and if it doesn't flop, expand it further. Else, complaints can also include why they din't target children or the elderly.

Also gender specific products are established by society. You don't have necessarily follow them. If a female wears a men's watch, it won't automagically stop working.

<comment><USER116> > If a female wears a men's watch, it won't automagically stop working.

Its huge. I think the concern is more female upper body strength than aesthetics. Or fear she will grow massive biceps if she wears it.

</comment></comment></comment><comment><USER117> So I'm only seeing white male hands

<comment><USER118> Also how about trying to make a watch that women will want to buy? I just don't see that happening for most women who won't really care about this kind of gadget (maybe I'm wrong).

<comment><USER119> Honestly, making a watch that will fit comfortably for women would be a step up. Wrist size differences and all.</comment></comment></comment>


Monte Carlo estimation of Pi - <AUTHOR> https://github.com/calebmadrigal/math-with-python/blob/master/MonteCarloEstimation.ipynb <comment><USER2> BTW, your scatter plots aren't colourblind-friendly - they just look like boxes of indistinguishable dots to me, I had to ask a friend if I was missing something. You seem to have accidentally made an Ishihara test[0], thanks to the particular shades of red and green you've used - red & blue would be better for accessibility.

[0] [https://en.m.wikipedia.org/wiki/Ishihara_test](https://en.m.wikipedia.org/wiki/Ishihara_test)

<comment><USER3> Is there a service that makes it trivially easy to simulate colour blindness on an image or document? Heck, why's it not built into data publishing applications?

<comment><USER4> Colorblinding - Chrome extension: [https://chrome.google.com/webstore/detail/colorblinding/dgbg...](https://chrome.google.com/webstore/detail/colorblinding/dgbgleaofjainknadoffbjkclicbbgaa?hl=en)

</comment></comment></comment><comment><USER5> One of the first labs I did in college, it brings back pleasant nostalgia.

<comment><USER6> It was my first independent Monte Carlo calculation -- changed my life.

That project led directly to the 'rand' call in this function [1] 13 years later and fundamentally altered the way I think about data analysis.

[1] [https://github.com/4kbt/PlateWash/blob/master/mlib/bootstrap...](https://github.com/4kbt/PlateWash/blob/master/mlib/bootstrapData.m)

</comment></comment><comment><USER7> Compare this program, which uses a text object in its own source code to estimate pi: [http://ioccc.org/1988/westley.fix.c](http://ioccc.org/1988/westley.fix.c)

<comment><USER8> Yeah, and you can just make the circle bigger to get a better approximation. :P

</comment></comment><comment><USER9> With darts: [https://www.youtube.com/embed/M34TO71SKGk](https://www.youtube.com/embed/M34TO71SKGk)

<comment><USER10> "Does that look random to you?" [https://youtu.be/M34TO71SKGk?t=1m20s](https://youtu.be/M34TO71SKGk?t=1m20s)

Golden!

<comment><USER11> I remember a Mythbusters episode where they were building a buttered-toast- dropper. To test the null hypothesis, they first did 10 runs without buttered toast, just marking one side with an X. They got 7/10 landing the same way up... and declared "It should be 5/10! This is not random enough!"...

<comment><USER10> One hour Radiolab worth listening to:

[http://www.radiolab.org/story/91684-stochasticity/](http://www.radiolab.org/story/91684-stochasticity/)

</comment></comment></comment></comment><comment><USER12> Once an Amazon interviewer asked me this (in my second or third year of University) as an interview question.

I didn't get it at the time and I deeply resented the problem. What does this have to do with being a software engineer?

But interesting to see how it's actually done.

<comment><USER13> Monte carlo method can be used to provide software project estimates. The examples I've seen using it are about the same as planning poker

<comment><USER14> Planning poker has no element of randomness though? I'm confused.

</comment></comment></comment><comment><USER15> Some addendum:

1\. You can do one quadrant rather than four, then multiply that approximation by 4.

2\. Montecarlo is good to develop an intuition about Monte carlo approximations but converges really slowly.

Ramanujan-Sato series for pi or Chudnovsky algorithm can be a scalable alternative, gives you a lot of digits.

Now... how many digits you usually need? Very few. Practical applications requiring more than 15 digits are hard to find. e.g: NASA uses 15 digits for interplanetary navigation, even for the most distant spacecraft such as the Voyager 1 which is now 20 billion kilometers from Earth.

Can just use a constant, or in the worst case, if missing, define it as:

        pi = arc tan (1) * 4

<comment><USER16> Accuracy from one quadrant and four quadrants would be the same, though, and full circle is easier to code (no extra conditions).

To get better accuracy you would need to cut out some parts that are clearly inside or outside the circle, and only throw the points in the areas where the circle can actually be.

<comment><USER15> Sure, that is equivalent to doing it on one quadrant with 4 times the dots and averaging it.

</comment></comment></comment><comment><USER16> You can try the same with quasi-random rather than pseudo-random numbers (Sobol, Halton, or even just additive). Should probably get better accuracy with the same number of iterations.

</comment><comment><USER17> Interestingly, this method is the primary example on the Dart homepage: [https://www.dartlang.org/](https://www.dartlang.org/).

</comment><comment><USER18> BTW there is a nice related course on coursera: "Statistical Mechanics: Algorithms and Computations"[1]. Also notice there is a rosettacode entry for this[2].

1\. [https://www.coursera.org/learn/statistical- mechanics](https://www.coursera.org/learn/statistical-mechanics)

2\. [http://rosettacode.org/wiki/Monte_Carlo_methods](http://rosettacode.org/wiki/Monte_Carlo_methods)

</comment><comment><USER19> Funny this is here, I did recently a dwitter here to visually do the same: [https://www.dwitter.net/d/702](https://www.dwitter.net/d/702)

It is also the example I give on a (true) parallel library for front-end javascript with math-intensive code such as calculating PI with Monte Carlo: [https://github.com/franciscop/uwork](https://github.com/franciscop/uwork)

</comment><comment><USER20> Today I tried to write this on shell, I couldn't do it in a compact way. Are there some nice PLs for these kind of plays? Cleanest I could do was doing below in a single line via "python -c". I couldn't get it done via bc or awk.

      from random import random
      l = lambda (a, b), c: (a + c, b + 1)
      g = (1 if random()**2 + random()**2 <= 1 else 0 for i in range(10**6))
      r, t = reduce(l, g, (0.0, 0))
      print r / t * 4

<comment><USER21>
      python3 -c 'from random import random; N=1000000;print(4*sum([ int(random()**2 + random()**2 <= 1.0) for i in range(N)])/N)'

</comment></comment><comment><USER22> See also [https://m.youtube.com/watch?v=RZBhSi_PwHU](https://m.youtube.com/watch?v=RZBhSi_PwHU)

</comment><comment><USER23> If for some reason you'd like to actually Run this notebook,I uploaded it to:

[https://notebooks.azure.com/smortaz/libraries/MonteCarloPi](https://notebooks.azure.com/smortaz/libraries/MonteCarloPi)

You can click on it, sign in to run, edit, etc.

Sign in: any outlook, xbox, hotmail, or msft ID.

</comment><comment><USER24> [https://www.youtube.com/watch?v=I-BC_vI4CAE](https://www.youtube.com/watch?v=I-BC_vI4CAE) \- I thought this was genius, obtaining a value of Pi using the monte carlo method, via rain drops!

<comment><USER21> LOL we all have those moments, I thought I was a genius for thinking I could calculate PI by doing a double integral over x,y from 0 to 1 using the Heaviside step function with (x^2+y^2) or something I can't remember... Basically it was that in the integral the step function is on if x^2+y^2 is less than 1 and off if >1, so you would end up with PI/4\. Anyways it didn't work out :)

</comment></comment><comment><USER25> Props to Ken Liu for having the character Luan Zya derive the Monte Carlo estimator in "The Grace of Kings". That was a wonderful read.</comment>


Kavka's toxin puzzle - <AUTHOR> https://en.wikipedia.org/wiki/Kavka%27s_toxin_puzzle <comment><USER2> I would intend to drink the toxin, and intend not to change my mind. Therefore I would actually drink the toxin and get the money.

This is a very interesting paradox that I've never heard of before.</comment>


Bellagio sportsbook error may be largest past post loss in Vegas history - <AUTHOR> https://www.reviewjournal.com/sports/betting/bellagio-sportsbook-error-may-be-largest-past-post-loss-in-vegas-history-2066855/ <comment><AUTHOR> ESPN has more details > [https://www.espn.com/chalk/story/_/id/29389142/probe- opened-...](https://www.espn.com/chalk/story/_/id/29389142/probe-opened-las- vegas-bettors-exploit-error-international-baseball-bets)

</comment><comment><USER2> "The errors could cost the operator nearly a quarter-million dollars because of approximately 50 questionable wagers, "

$250k to Los Vegas betting industry is a pittance. I think this headline 'largest...in Vegas History' is silly.

<comment><USER3> Sports books don't work like slot machines or table games. Bets on each side are balanced against each other and the bookmaker works in a spread for themselves.

<comment><USER2> Yeah, I understand that. But the fact is 250,000 is still a tiny number compared to the scale of these operations. As a concrete example, "Also key to the overall total was the money brought in by the state's sportsbooks, which collected an all-time high $329.1 million in revenue during 2019, up 9.5% over the previous year." [https://www.pokernews.com/news/2020/01/inside-gaming- record-...](https://www.pokernews.com/news/2020/01/inside-gaming-record-year- for-sports-betting-in-nevada-in-20-36522.htm)

<comment><USER3> For a section of the industry where losses are never more than $0, they consider this a large amount. All a matter of perspective.

I do agree that sportsbooks are a drop in the bucket compared to the entire handle in Vegas and other large gaming jurisdictions. Casinos would probably love to drop them completely and get some space back for more slots. But they're still around because visitors expect it. Like Keno.</comment></comment></comment></comment>