New features you can't use unless you are in Python 3 - <AUTHOR> http://www.asmeurer.com/python3-presentation/slides.html#1 <comment><USER2> One big thing that's missing from this list is the __traceback__ on exceptions, which pretty much does what you think it does. In Python 2, there's _no_ way to access the traceback for an exception once you've left the `except:` block. This matters when you're using things like gevent; if one of your gevent greenlets throws an exception and you inspect the .exception attribute on it, you'll be able to get the exception message but won't know what line it came from.

N.B. This is absent from Python 2 due to concerns with creating self- referential loops. The garbage collector got better in the meantime and the feature was never backported to Python 2.

<comment><USER3> Huh, I was almost sure you were wrong and that I'd done this before, but the frame does indeed "go away" once you leave the except block. Fascinating.

        In [8]: try: crasher()
           ...: except TypeError as e:
           ...:     exc = e
           ...:

        In [9]: type(exc)
        Out[9]: TypeError

        In [10]: traceback.print_tb(exc)
        AttributeError: 'exceptions.TypeError' object has no attribute 'tb_frame'

I can understand the concern, though it seems like there would be easier fixes than the garbage collector for that specific case.

</comment></comment><comment><USER4> I did not know you could append to a Path via "/", but that's really awesome! I also really love working with generators when I write Python. They are just such a simple idea that's very powerful and I miss them so much when I go back to javascript (I know javascript has them now, but I haven't written them, and they don't look as fluent as Python 3, where the large parts of the language design is based around them).

<comment><USER5> Overloading operators for cute purposes is usually a misfeature. There was a fad for this in the early C++ days. I once wrote a marshalling library which overloaded "||", so that you could write

        p = stream || rec.a || rec.b || rec.c;

and get an object which, if written, marshalled the record, and if read, unmarshalled it. The marshalling order was only specified once. Cute, but in retrospect, bad.

Python's classic overload problem comes from using "+" for concatenate. For built-in vectors, "+" is concatenate, but for NumPy arrays, it's addition. You can use "+" between a NumPy array and a built-in vector. Does it add, or concatenate?

("|" is supposed to be the concatenate operator; it was added to ASCII to support PL/I. But decades of C have made it the bitwise OR operator to most programmers, so we're stuck. "_" is allowed within symbols, so that's taken. There's "⁀", character tie, but nobody can type it.)

It seems to be best to restrict the math operators to math.

<comment><USER6> > Overloading operators for cute purposes is usually a misfeature

Whether a function for which an operator is overloaded is "cute" or "fundamental to clarity" depends on the context in which it is used.

> There was a fad for this in the early C++ days.

Yeah, like overloading the bitwise shift operators as stream insertion/extraction operators.

> Python's classic overload problem comes from using "+" for concatenate. For > built-in vectors, "+" is concatenate

Python doesn't have built-in vectors, it has lists.

> but for NumPy arrays, it's addition.

Not sure I see a problem. For numbers, it's an addition. For simple ordered collections, it's concatenation. For matrix-like collections, it's memberwise addition.

> You can use "+" between a NumPy array and a built-in vector. Does it add, or > concatenate?

To the extent _that 's_ a problem, it's a problem with implicit coercion more than operator overloading.

<comment><USER7> > Whether a function for which an operator is overloaded is "cute" or > "fundamental to clarity" depends on the context in which it is used.

The fact that it requires context other than the language spec is where the problem resides. The cognitive overhead of reading code is high enough without having to alias common operators.

<comment><USER6> > The cognitive overhead of reading code is high enough without having to > alias common operators.

The cognitive overhead of reading code is, IME, often lower with context- approprate operator overloading (just as it is with well-chosen vs. poorly- chosen method names.)

There is a reason human languages (and, yes, even the notation of mathematics) develops context-specific dialects, and it is to _reduce_ the cognitive overhead of communication. Code switching with clear contextual boundaries is often far more efficient than using a one-size-fits-all notation that is context-insensitive.

<comment><USER8> I'm pleased to see this perspective represented; it's the main reason I still really love the Perl programming language. The idea that context is useful and can actually help with clarity is a core concept.

<comment><USER9> The problem is that a reasonable context response is different from person to person and culture to culture.

I feel like this makes things like using operator overloading to clean up code incredibly dangerous, especially in popular libraries.

Best: Context-appropriate overload that makes sense to me

Good: Standard language meaning that may not fit cleanly in context, but has the same definition always

Worst: Context-appropriate overload that doesn't make sense to me

So if you aren't sure whether or not your clever idea will actually fall in the third category for some people, go with the second instead of pushing for the first.

Aka, "for every story someone can tell of a magical operator overloading that makes code more readable, I can come up with some dumbass architect who did the most counterintuitive thing you can imagine."

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I really like the format strings in Python 3.6: [https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep49...](https://docs.python.org/3/whatsnew/3.6.html#whatsnew36-pep498)

Seems that this set of slides (which were very informative!) is for up to 3.5

<comment><USER11> How many format strings does Python have already?

<comment><USER12> [https://pyformat.info/](https://pyformat.info/) should know, ask it

<comment><USER13> This link does not mention f-strings, the feature in question.

The answer is there are 3 ways to format a string: %, .format, and f-strings.

<comment><USER14> .format() and format string literals essentially share the same syntax, so I don't really think it's fair to bracket them out separately.

You could sort of pull a retcon and say that .format() is the dynamic form of f'' literals.

Having used the equivalent feature in JavaScript, this stuff is super handy. It also makes "printf" a lot nicer:

      print('I have {count} {color} {object}'.format(count=count, color=color, object=object))
      print('I have {} {} {}'.format(count, color, object))
      print(f'I have {count} {color} {object}')

% had real issues, so I'm quite glad .format() came along.

</comment></comment></comment></comment></comment><comment><USER15> My personal favorite is native support for IP addresses, introduced in python 3.3[0]. Makes IP math and address validation so much easier.

[0] [https://docs.python.org/3/library/ipaddress.html](https://docs.python.org/3/library/ipaddress.html)

<comment><USER16> > address validation

just try: socket.inet_aton

<comment><USER17> That doesn't seem to support IPv6 at all. And doesn't let you do much with a parsed address either.

</comment></comment></comment><comment><USER18> How old is Python 3 now? I've always used Python for a "miscellaneous task" language, and still do... and even I find "...because you refuse to upgrade" a bit insulting. If I used it for something serious, even more so.

The way 2.x -> 3.x was handled is/was/will is an absolute disaster. Upgrading simple scripts is a non-issue. Larger projects seem to always be a horrible pain.

<comment><USER19> I used to think like you, but when i started actually using Python 3 it all was a lot less worse than i've expected it to be from reading Hacker News comments. YMMV, but converting existing code for me usually didn't amount to more than adding parentheses around print statements. The proper support for unicode alone was enough of a reason to upgrade for me.

<comment><USER18> The bigger issues of upgrading I've run into: * Systems generally still ship with 2.7x * Dependencies that also have not upgrades (e.g. 3.x doesn't exist) or require a complete re-work now * Searching for help on X often results in 2.7x help

I've upgraded projects, but this "you refuse to upgrade" business bothers me. There is a reason people haven't: The way Python handled all of this is horrid.

It's often easier to just move to another language.

</comment></comment></comment><comment><USER20> Does anyone use 2.x _by choice?_ I've only seen it required as to not break legacy code.

<comment><USER21> Yes. My reason is that I simply don't really care that much. It's the default on all my systems, so why bother putting in the effort to use something that doesn't appear to offer much advantage to me personally? I use python for my personal research, so my particularly situation affords me this laziness.

edit: I don't mean this as a knock on py3. All I'm saying is that my situation and uses for python allow me to be apathetic towards 2 vs. 3.

<comment><USER22> I'm in similar situation wrt what I use python for, and suffered from the same apathy until quite recently. Man, it was _really_ easy to switch, and completely worth it just for the little things (like UTF-8 as default encoding for strings). It's really painless, but if you want to ease into it, I recommend using __future__ in your py2 stuff for now just to get you into a py3 state of mind: [https://docs.python.org/2/library/__future__.html](https://docs.python.org/2/library/__future__.html)

<comment><USER5> UTF-8 isn't CPython's default encoding for strings. The internal encodings are ASCII, UTF-16, or UTF-32, depending on the widest character in the string.

I would have made UTF-8 the internal representation, and generated an array of subscript indices only when someone random-accessed a string. If the string is being processed sequentially, as with

        for c in s :
            ...

you don't need an index array. You don't need them for list comprehensions or regular expressions. One could even have opaque string indices, returned by search methods, which don't require an index array unless forcibly converted to an integer. Some special cases, such as "s[-1]", don't really need an index array either.

<comment><USER23> I agree. Go does something similar (using UTF-8). The Go creators _invented_ UTF-8, so I trust them. :)

<comment><USER5> Go uses UTF-8 internally, but you index a Go string by bytes, not glyphs or graphemes. The "index" function on strings in Go returns an integer, not an opaque index object or a slice. You can create a slice of a UTF-8 string which is misaligned and not valid UTF-8.

Indexing a string in Python 3 returns glyphs (which are strings), not bytes. Not graphemes; if you index through a Python 3 string with emoji that have skin color modifications, you'll get the emoji glyph and the skin color modifier as separate items.

Python 3 also has a type "bytes", which can't quite decide whether it's a string type or an array of integers. Print a "bytes" type, and it's printed as a string, with a 'b" in front of it, not as an array of integers. But an element of a "bytes" array is an int, not a bytes type. This is for backwards compatibility; it's roughly compatible with legacy "str" from Python 2.

Rust struggles with this. Rust tries to prevent you from getting a invalid UTF-8 string. The solution used involves re-checking for UTF-8 validity a lot, or bypassing it with unsafe code. This gets messy.

<comment><USER24> > The solution used involves re-checking for UTF-8 validity a lot,

You only need to check once, at the boundary of when you're converting from something that may or may not be UTF-8 to a UTF-8 string.

</comment></comment></comment></comment></comment></comment></comment><comment><USER25> TL;DR:

 _The important stuff that makes a good case for Python 3:_

\- Adittion of "yield from" allows easier programming with async I/O "a la " Node.js (using 'await')

\- Standarized annotations of function arguments and return values can help in the future for type checking, optimization, etc.

 _Even more important stuff_

\- Unicode can be used in symbols. You can now use Kanji characters in your function names, to annoy your coworkers and win the International Obfuscated Python Code Contest.

 _Other stuff_

\- Minor unimportant stuff that is definitely no reason alone for switching for Python 3.

<comment><USER26> Of those, only the async I/O stuff seems compelling. But compelling it is, at least as used in Curio. It feels like this is still shaking out, with the standard library and Trio (?) alternatives, but it looks really cool.

<comment><USER27> If you work with international users full unicode support is very compelling.

<comment><USER28> Why do your users care about symbols internal to your code?

<comment><USER29> They don't, they care about `str` being unicode and developers not having to do additional work to support unicode strings.

<comment><USER25> Strings can be unicode in Python2, you start a unicode string with u".

Python2 has full unicode support. While Python3 supports _only_ unicode strings.

<comment><USER29> I was thinking through my response to this, and realized that I would just be repeating what I already said.

Is there _any_ reason to require extra work to support unicode strings?

<comment><USER27> I've come into large python2 projects which had been started with non-unicode strings (because the initial developers didn't think about it). At some point a user with non-English characters invariably signs up and then shortly complains. It has been significant work to (1) convert everything that should be converted to unicode (2) re-train the developers to use the unicode syntax.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> Read this and then realized a bug I was chasing in some Python 2.7 code was actually because I was comparing a Long with a String :)

Thanks for helping me solve my bug dude!

</comment><comment><USER31> Quite a nice presentation!

But I just wanted to point out that the title is a bit presumptuous. I don't refuse to upgrade to Python 3, it's that the default Python for most distributions is 2 (sometimes as far back as 2.6). If you want to write a user-space tool with Python you can either require additional dependency setup, bundle a full interpreter with your package, or just write Python 2.7/6 code that is forward compatible with Python 3...in which case I still can't use the new features of 3.

At the end of the day, the continued slow adoption of Python 3 today is because ecosystems move slowly. Not to mention the original releases of Python 3 were really rough around the edges (such as being slower than Python 2.7 until ~3.4) which definitely contributed to the slow adoption in the early years.

<comment><USER32> Python 3 has been available on most dists for 5-10 years.

<comment><USER31> What I said was the _default_ version of Python is old on most distributions.

For example, CentOS 6 ships with Python 2.6 out of the box. Even faster moving distros (like Ubuntu) are still trying to make Python 3 the default (although at least Ubuntu ships with both 2.7 and 3.4+ out of the box).

<comment><USER32> Centos 6 is 7 years old, if you are still using that it is unfortunately your problem. It's not hard to write "python3" on a modern dist.

Ubuntu has 3.5 and 3.6 is easily installable though not yet default 3.x.

<comment><USER33> You think someone is going to start a new project and use a 7 year old OS? I don't think it's "unfortunately my problem" when biz/client reqs for a 7 yo OS are completely out of my hands, unless of course the mindset is "use Python 3 or die trying".

<comment><USER32> And the other 96% of us can move on, no need to act like you're the majority.

Py 2.6 is already EOL for almost five years.

<comment><USER34> >no need to act like you're the majority

Is he making that assumption, or are you?

<comment><USER32> Let me reiterate, a 7 year old version of EOL software. Yes.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER35> @OP tag this 2014 [https://github.com/asmeurer/python3-presentation/blob/gh- pag...](https://github.com/asmeurer/python3-presentation/blob/gh- pages/slides.html#L1021-L1023)

Feature 0: Matrix Multiplication

Feature 1: Advanced unpacking

Feature 2: Keyword only arguments

Feature 3: Chained exceptions

Feature 4: Fine grained OSError subclasses

Feature 5: Everything is an iterator

Feature 6: No more comparison of everything to everything

Feature 7: yield from

Feature 8: asyncio

Feature 9: Standard library additions

Feature 10: Fun (Unicode variable names etc...)

</comment><comment><USER36> This presentation could use some navigation buttons.

<comment><USER37> The buttons are on your keyboard. Swipe on touch interface

<comment><USER38> I don't expect to have to use my keyboard to navigate a webpage. It's also not discoverable or prompted in any way.

<comment><USER39> Using the arrows keys for the slides has been a standard since the dawn of web presentations, a decade or so ago.

Doesn't have to be more discoverable imho. As soon one finds it out, they can use the knowledge for any other presentation they chance upon -- and presentations remain clutter free, without prompts and extra navigational buttons for the rest.

<comment><USER40> > Using the arrows keys for the slides has been a standard since the dawn of > web presentations, a decade or so ago.

So have arrows icons you can click to switch slides... Such as on Slideshare (coincidentally a decade old!).

<comment><USER41> If the icons disappear as soon as I use my keyboard or tap, that wouldn't be too terrible.

</comment></comment></comment></comment></comment></comment><comment><USER42> Asyncio is the most important feature of 3.5+ imo. I'm not sure why this is buried at #8.

<comment><USER41> Perhaps this comment has something to do with that burial: " _Not going to lie to you. I still don 't get this._" Personally, the most confusing thing about that code is that apparently _return_ will wait on a _yield from_ , which seems odd.

<comment><USER43> Python 3.5+ supports the async/await syntax which is much easier to follow than _yield from_. I fully expected async/await to be item #1 of a list of Python 3 killer features over list comprehension doodads; it's surprising that it's entirely missing from this list!

</comment></comment></comment><comment><USER44> From: [http://www.asmeurer.com/python3-presentation/slides.html#55](http://www.asmeurer.com/python3-presentation/slides.html#55)

... why is this good:

        def dup(n):
            for i in range(n):
                yield i
                yield i

... but this one better?

        def dup(n):
            for i in range(n):
                yield from [i, i]

... it would seem you're needlessly creating (1): another level of generators, and (2) creating a real list

<comment><USER45> Compare these instead:

for i in range(n): yield i

yield from range(n)

<comment><USER46> Both seem quite readable, really.

Seems similar to the usual "list comprehensions vs. for loop" arguments; to which I always think "use whichever is readable for the given code".

<comment><USER47> The thing about "list comprehensions vs. loop" is that you can compose comprehensions, but you must edit loops to change them.

I fail to see how anything similar would apply here.

</comment></comment></comment></comment><comment><USER48> I'm impressed how much Python seems stuck on older versions. What went wrong?

<comment><USER49> It was source-level incompatible with older code so it couldn't be used as a smooth transition like... almost any other language upgrade I've ever seen.

Breaking code like this was a big mistake in my opinion - it resulted in many people sticking on the old version for code and library compatibility. There are _still_ libraries which don't work on Python 3, though now fairly few of them.

In addition to that, the unicode changes were in my opinion another mistake - they made it far more complicated to deal with strings and byte arrays as now even for the simplest of applications you have to put thought into character encodings. Another annoyance for me personally is that I often use python to do things like hex and base64 encoding, the removal of .encode("hex") really wrecked this one for me. Now I have to remember weird import libraries like "binascii" with weird function names like "hexlify".

Ultimately Python 2 works. And it works well, there just aren't that many compelling reasons to move to 3 given that it often is more complicated and breaks existing code. They have a few cool things now, so I sometimes use it for new code but there's still nothing that's making me want to delve into a port of my older codebases.

<comment><USER50> > _It was source-level incompatible with older code so it couldn 't be used as > a smooth transition like... almost any other language upgrade I've ever > seen._

Ruby released the source-incompatible Ruby 1.9 just months before Python 3. IIRC most versions of Swift have been source-incompatible with each other. Even a language as buttoned-down as C++ has made source-incompatible changes[1]. I have no idea where people got the notion that Python invented the idea of breaking changes, but it just isn't so.

[1]: [https://stackoverflow.com/questions/6399615/what-breaking- ch...](https://stackoverflow.com/questions/6399615/what-breaking-changes-are- introduced-in-c11)

<comment><USER49> Go ahead and look at those breaking changes, then compare with Python 2 to 3's breaking changes.

It's a difference of a few minor things versus a whole swath of changes to the handling of strings in the language, heck, a python 2 print statement isn't compatible with python 3.

These are much more significant breaking changes which make porting code much harder than any of the other examples you've given. For the most part, developers don't have to touch or only have to make minor changes for specific cases to port to Ruby 1.9 or C++11 - look at those C++11 changes for example, so few people were doing those things and they're such bad practices that it simply didn't matter. They successfully preserved compatibility in the nominal case. But even following all the best practices in your Python 2 code will not make it run under Python 3.

<comment><USER50> I don't use Swift or C++ much, but I have several years of experience in both Ruby and Python. The changes in Python might be a bit bigger, but the changes in Python 3 and Ruby 1.9 seem of roughly the same magnitude to me. Text encoding is now a problem you need to think about, some methods were removed, other methods were added, the output of some methods changed (e.g. the output of Array.to_s, the result of indexing a string), a few syntactic constructs changed (e.g. character literals used to return numbers, now return strings), and all C-based libraries broke in Ruby 1.9. In both cases, more than 99% of your code will probably be the same (unless your program is mostly print statements, I guess). What's more, Python took more pains than Ruby to ease the upgrade process, with stuff like __future__ imports, 2to3, and the six library. IIRC the Ruby team just changed stuff and said, "OK, update your code accordingly and we promise not to do this to you again for a long time."

It seems to me like the primary difference that made the Python upgrade worse is that the authors of the big libraries in Ruby were enthusiastic about moving to Ruby 1.9, so that it was possible to start porting most Ruby apps very soon after 1.9 released, while a few big Python library authors dragged their feet on even getting started. This was a very real problem, but it was essentially a cultural problem of the library landscape being very different, not a matter of the language itself being drastically different.

</comment></comment></comment></comment></comment><comment><USER51> Glad to see the Enum class made the list. We've put them to good use in our codebase, especially the Flags enum variant which gives as a powerful summary feature to annotated data samples with all the sorts of flagging information we want to tack around it.

</comment><comment><USER52> The slides on chained exceptions (feature 3) are missing one thing, I think. The "raise from" example is not really a way to "do this manually", but rather a way make explicit the relation between the two chained exceptions (as can be seen in the traceback messages), which is quite helpful.

The first example says that one error occurred, we tried to handle it, but then another error occurred in the handling. E.g. "Failed to find eggs in refrigerator. Tried to buy eggs, but tripped and broke leg."

The syntax in second example should be used when the exception in turn causes a larger process to fail, e.g. "Failed to make pancakes due to a failure to find eggs in refrigerator."

</comment><comment><USER53> I still don't think that any of those new functions justifies the need of a total compatibility breakdown, like the one that was artificially induced from python2.7 to python3.

Python3 is good, but should have happened as a smooth transition from python2.7. The way it was handled was just a mess, and still keeps polluting the Python world.

Next time somebody asks what Java has over Python... here it is: nothing like the python 2 vs 3 mess.

<comment><USER54> Honestly, if they had just keep the print statement, the push back would have been almost non-existent.

It was that one change that pushed python 3 from "some programs and libraries will need to be written" to "almost every single program and intro to python tutorial needs to change".

<comment><USER55> How hard would it have been to allow Python 2 and 3 code files to be mixed?

<comment><USER56> That's a giant can of worms. One example problem: Python 2 has a type of class (old-style) that doesn't exist in Python 3. What happens when you try to pass this type of class or one of its instances between the languages? There's a bunch of stuff like that. You'd end up with a very weighed-down interpreter with a bunch of caveats if you ended up with one at all.

<comment><USER55> Would doing that then deprecating those features after 5 years or so not be better than what's happened with the Python 3 transition? I'm curious what options there are for how to make such a transition smoother.

<comment><USER56> The important part of Python 3 is the bytes/str/unicode rework, and there's no way to make that not a breaking change. Everything else is minor stuff that's allowed to be breaking because the str change already broke backwards compatibility.

(And yes, making strings text rather than bytes was really that important. Python 3 would be a huge improvement even if it were only that and some other safety things like removing the default ordering of incompatible types.)

</comment></comment></comment></comment></comment></comment><comment><USER57> The new keyword-only arguments look great, but it looks like it relies on adding a " * " parameter that allows any number of arguments. What if I want the safety of keyword-only arguments, but I _don 't_ want varargs? Is there a way to do that?

<comment><USER58> This is covered in the link. Just put a * without a name, as in

      def foo(*, x=None, y="")

(Edit) The specific slide: [http://www.asmeurer.com/python3-presentation/slides.html#16](http://www.asmeurer.com/python3-presentation/slides.html#16)

<comment><USER59> Oh my, it looks atrocious.

Almost every time I see something introduced in Python 3 I have an impression that current Python envies Perl its baroque semantics, except that Perl usually tries to guess what the programmer meant, while with Python the relationship is reversed: the programmer needs to guess what the language wants.

Python's main selling point was simplicity of syntax and semantics that preserved its high-level language status. This simplicity is no longer present in 3.x line.

<comment><USER60> Python 2 is a vastly more complex language compared to Python 3. Just try to name the basic classes of types that exist in Python 2.

Hint: Cannot be counted on two hands.

<comment><USER59> Well, try this for me, especially that you didn't use searchable terminology, so it's hard to confirm what you're saying. And then tell how much of that is important for typical code.

<comment><USER60> Python 2 has old-style classes, new-style classes, functions, bound methods, unbound methods, slot wrappers, descriptors, method wrappers, built-ins, ... and I'm rather certain I forgot some. All kinda callable types I mentioned behave differently. This makes the language complicated; and due to the dynamic nature leads to subtle bugs that are only detectable at runtime. Python 2 is a lot like C there. This isn't limited to callables but is spread around the language in a lot of places. Python (both 2 and 3) is not a simple language. It has a supremely complicated data model whose documentation is insufficient and scattered.

</comment></comment></comment></comment></comment></comment><comment><USER61> Ruby's 1.8 to 1.9 transition seemed to go much smoother - I'm curious what the difference is. Just down to what is essentially better source comparability I guess.

<comment><USER6> Ruby 1.8 to 1.9 was a similar mess for a shorter period of time, and not because it was handled better, but because there was less diverse entrenched code and subcommunities to deal with: when Rails and popular Rails libraries worked, most of the community could move; Python had a whole lot more that had to be addressed, the curse of it's broader success.

(Also, being already expression-oriented, Ruby didn't have to deal with running into problems where a core feature was a statement that couldn't be used in contexts limited to expressions; fixing that is inherently painful.)

<comment><USER62> Didn't Ruby 1.9 also offer a meaningful performance boost as well? Whereas early Py3 was actually about 5-10% slower than Py2.

</comment></comment></comment><comment><USER63> Just wondering but what should you do if you decide to go with Python 3 and find a library you want to use that isn't compatible and you are short on time?

<comment><USER64> That fear held me back 7 years ago when I started learning Python. In 2017, having worked in many projects, what I have to tell you is this: I never found such case where Python 3 wasn't supported, and I should've learned Py3 to begin with. YMMV, but the fear was unfounded back in 2010, and even more so today.

There are very few projects without Py3 support, and most you'll find without Py3 support is because the project has been dead for quite some time.

<comment><USER65> >There are very few projects without Py3 support, and most you'll find without Py3 support is because the project has been dead for quite some time.

One notable exception is FreeCAD for anyone who is looking to jump into a project to help with the transition from python 2 to 3.

</comment></comment></comment><comment><USER66> It's funny how the differences between python 2.7 & 3.x is less than swift 2 to 3, yet python stays in 2.7 land forever.

<comment><USER67> Probably because there was a lot less Swift code than Python in the wild at the respective times each came out with the new version, so having everyone upgrade all the old, incompatible code was less daunting.

</comment></comment><comment><USER25> It seems i also can't scroll to the next page on this slide "because i refuse to upgrade to Python 3"...

</comment><comment><USER68> thus, python did jump the shark.

The biggest thing that python _needs_ is proper multithreading.

The rest is nice noise.

</comment><comment><USER69> Open page. Nothing works. Enable their scripts. First slide shows but nothing works - except the link to the pdf version.

Why not give a link to the pdf version in a <noscript> element?

<comment><USER70> Works for me! when I hit <enter> or right-arrow it goes to the next slide, <left-arrow> for previous slide.

<comment><USER69> Tried all of these - as well as space :(

</comment></comment></comment><comment><USER71> I'm not touching python like it was fire since it threw YouHaveAMissingTabSomewhereException at me 6 years ago.

And it always pisses me off to see a python source code all lower case. Someone would think upper case letters cost money and underscores are a must like a lemon in a corona.

Am I the only one?

<comment><USER72> Who can't _touch_ fire? No ... ?

But yeah syntactic whitespace was a thing to get used to for myself over 10 years ago as well. It's no big deal and it works great (imho).

</comment></comment><comment><USER73> Alternative view titles:

 _Zero - The Number of Applications that Can only be Developed in Python 3_

or

 _7456324 - The number of companies that only use Python 2.x_

Although these made up titles are slightly tongue-in-cheek, they do server to illustrate that for me at least, I do not have a compelling reason to switch to Python 3.

<comment><USER74> That's also a meaningless argument. It's true of any turing-complete language.

<comment><USER73> > _" That's also a meaningless argument. It's true of any turing-complete > language."_

Title 1 of course. Title 2 is a far more compelling reason to stay with Python 2.x. If I program for fun, then Python 3 is definitely worth playing around in, but for professional development, everything I do in Python is done in Python 2.x. That is not a theoretical argument, that is fact.

<comment><USER56> > for professional development, everything I do in Python is done in Python > 2.x. That is not a theoretical argument, that is fact.

And everything I do professionally in Python is done in 3.x as of this January. Also fact! Industry standards sometimes move slowly, but they are moving.</comment></comment></comment></comment>


3D imaging of fetal head molding and brain shape changes during labor - <AUTHOR> https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0215721 <comment><USER2> Hats off to the women who agreed to give birth inside a MRI for this study. Wow!

</comment><comment><USER3> One of the evolutionary theses about why our brains are at the size they are, and no larger / smaller is that we've hit the hard limit on what can exit a female body without killing either the parent or the baby. This paper adds a lot of credence to that theory.

<comment><USER4> Sounds plausible. I have an extended family member who was born after a multi- day labor [in the 40s] where the doctor asked of the father "do you want the baby or your wife to go home, because they're not both going to make it". He picked his wife; his wife picked the baby; both went home, but my aunt had life-long deficits from the multi-day traumatic labor and a forceps extraction.

<comment><USER5> thank god they picked both

</comment></comment></comment><comment><USER6> If I'm reading this right...

Skull and brain is crushed during natural birth, but usually recovers its normal size afterwards.

I wonder if 'lack of crushing' can be bad for C-section births?

<comment><USER7> > I wonder if 'lack of crushing' can be bad for C-section births?

I don't think they mentioned anything about anything in the "pro" for the deformation - in fact "These MRI findings suggest that the fetus is subjected to greater stress than previously thought, which could explain the high incidence of asymptomatic brain hemorrhages and retinal hemorrhages found after normal vaginal delivery."

This is something we've adapted to deal with, it's not an ideal event.

<comment><USER6> Thats what I mean - there might be benefits too. For example, a bit of crushing might trigger damage-response in the brain which leads to more growth.

Since this has been the case for millions of years, evolution might well use what appears to be a disadvantage as an advantage in some cases. Just like there are some kinds of tree which grow better with occasional forest fires.

<comment><USER7> There may be, but we'll need evidence for that. Right now we just see the trauma. Not everything that nature does is a benefit - evolution is a pragmatist. Our bipedal nature and need for a big brain requires certain sacrifices to be made. Our ability to make our skulls deform enough to give birth is the only evolutionary advantage it needs to give us to justify it - it's hard to survive as a species if you can't give birth. I wouldn't make a jump to "cesareans are bad" just because it may be right, especially without any evidence from this evidence being for that, and the evidence against being "brain trauma".

<comment><USER8> My medical friends say that csection births can have complications with fluids not draining fully from the respiratory system and sinuses etc leading to infections. This is one benefit of the squishing during natural birth to help squeeze out fluids where it is no longer needed. Sorry I don't have anything to cite.

edit: misspelled "birth"

</comment></comment></comment></comment></comment><comment><USER9> That's bizarre! A lot of my friends coincendtslly had babies around the same time. The C-section babies were adorable with perfectly round heads, while the vaginals looked like Kanamits (obscure Twilight Zone reference).

Of course, all the strange-shaped heads morphed back to normal after a few weeks.

(What was particularly odd was one friend whose vaginal baby's head was, like a C-section baby, perfectly spherical... a few crude jokes were made regarding the implications...)

<comment><USER10> That's to be expected. It's how births are. When babies pass through the mother's birth canal, the tight fit temporarily squashes their heads, elongating their flexible skulls and changing the shape of their brains. The child with a round head either went through a wider birth canal or was smaller. Joking about a woman's genitalia postpartum is simply distasteful.</comment></comment>


The Amazon Is Not the 'Lungs of the World' - <AUTHOR> https://www.forbes.com/sites/michaelshellenberger/2019/08/26/why-everything-they-say-about-the-amazon-including-that-its-the-lungs-of-the-world-is-wrong <comment><USER2> I think there is too much simplistic analysis of the Amazon's net CO2 contribution in the popular press which is besides the point here. Destroying a vast amount of the world's ecosystem is a really bad idea for many reasons besides climate change.

[https://en.wikipedia.org/wiki/Amazon_rainforest#Biodiversity](https://en.wikipedia.org/wiki/Amazon_rainforest#Biodiversity)

[https://www.conservation.org/blog/why-is-biodiversity- import...](https://www.conservation.org/blog/why-is-biodiversity-important/)

</comment><comment><USER3> >And while fires in Brazil have increased, there is no evidence that Amazon forest fires have.

i see. let's read on.

>What increased by 7% in 2019 are the fires of dry scrub and trees cut down for cattle ranching as a strategy to gain ownership of land.

so it appears that fires in the Amazon have indeed increased as a result of intentional deforestation efforts using fire. this undermines the author's prior statement.

>Against the picture painted of an Amazon forest on the verge of disappearing, a full 80% remains standing.

put differently, we've lost 20% of it. we should be battling as fiercely as possible to prevent any further losses and doing whatever we can to reseed the areas which can be recovered.

i'm not a fan of this kind of "debunkery" because it's counterproductive and doesn't debunk much of anything. this crisis is real, whether or not the media has cared about it in prior years. our planet is dying because of our actions. the details are less relevant than the big picture.

finally, i suggest that you look at the titles of the author's other published articles. he appears to be repeatedly arguing heavily in favor for nuclear power while often trying to undermine the prospect of renewable energy sources. i am pro-nuclear power, and agree that many renewables are imperfect. but consider that he has an agenda of some sort which makes him vastly less trustworthy regarding these matters of climate change, because his agenda is in favor of a specific industry (nuclear power) rather than the planet.

<comment><USER4> How does him arguing for nuclear power over renewables makes him less trustworthy? You completely lost me there. Sounds like you're just trying to find something to attack his motives.

<comment><USER5> The author has another article with the following headline:

"Republicans Can Own The Libs on Climate Change By Defending Nuclear Plants On The Brink"

That's troll language. This guy is not a legit journalist.

<comment><USER6> This is a low brow ad-hominim attack.

The article he has written is worth discussing, and by dismissing it out of hand because of your politics you are adding to the problem.

We're supposed to be intelligent people on HN. Let's discuss ideas, not who or who not might be trolls. A "troll" who has genuine and substantiative ideas backed by facts aren't trolls IMO, so by focussing on the content the trolls get weeded out anyway.

<comment><USER7> While I appreciate your sentiment and in principle agree with you, I have a hard time arguing points of people who do not argue in good faith. And it does seem like the author is trying to persuade more than he is trying to make a logical and/or correct point.

</comment></comment></comment></comment></comment><comment><USER8> It was amazing how fast "the Amazon is burning" news meme spread everywhere. It seemed like everyone I knew was fired up and outraged about it, posting about it, arguing about it, seemingly out of nowhere. It is honestly disturbing to see everyone collectively pivot on a dime to a new cause.

And I would bet most of them have no idea of its connection to the massive EU- Mercosur trade deal that is only just now coming to the forefront after 20 years.

<comment><USER9> Let's not forget French farmers were until recently protesting the trade deal.

</comment></comment><comment><USER10> The whole article is based on one supposed expert (Nepstad) calling out the supposed "bullshit" reporting and political activism, but he himself sounds like a political activist who at the end of the article is asking for 2M$ for his own conservation network.

I'm getting a bit of a bullshit vs bullshit impression.

</comment><comment><USER11> >The Amazon produces a lot of oxygen, but so do soy farms and [cattle] pastures.

Could someone explain this quote from the article to me? I don't understand how a cattle pasture would produce as much oxygen as a rainforest.

I also don't understand the part about all the oxygen produced being used up due to respiration, surely that means that the world's forests would produce no oxygen for animals to breathe? That seems to completely oppose everything else I've ever seen about the oxygen trees produce.

</comment><comment><USER12> Sadly, it takes a week after an internet outrage storm until serious journalists get the fact check article finished.

<comment><USER13> I saw on the NYT they had a nice info graphic[1]; the fires this year are on par with previous years and some other years have been worse. Additionally this is mostly seasonal agricultural burning that happens in most tropical places.

So it's obviously mostly due to scaremongering and outrage culture. And a few people will be happy people become concerned but the great majority will chalk this up to "crying wolf" and will take future serious issues with a grain of salt.

It basically preaching to a choir which feels good but does nothing to further a cause (slow deforestation, and eventually reverse it).

[1][https://www.nytimes.com/interactive/2019/08/24/world/america...](https://www.nytimes.com/interactive/2019/08/24/world/americas/amazon- rain-forest-fire-maps.html)

<comment><USER14> Do you by chance have a link to the NYT article that you could share?

<comment><USER13> Sure, right here: [https://www.nytimes.com/interactive/2019/08/24/world/america...](https://www.nytimes.com/interactive/2019/08/24/world/americas/amazon- rain-forest-fire-maps.html)

</comment></comment></comment></comment><comment><USER15> "Half of the Amazon is protected against deforestation under federal law."

For now.

The point is we should be RE-foresting the planet, not DE-foresting at all, regardless of whether more or less rapaciously than previous years.

</comment><comment><USER16> I thought that people like Macron have staff that could fact check whatever he's going to share. It's not that it changes the message, but mistakes like this could be used by someone to undermine his claim.

<comment><USER17> Macron's stance seems just a way to appease the hard left. It doesn't really matter if his declarations are scientifically correct or not.

It is the most appealing course for him. He literally doesn't have to take any action, but to shout out some sentences raising awareness of Brazil and putting the blame on their hard right president, and, voilá, free points next to the French hard-left electorate (which he really needs at the present, after the continued demonstrations from the yellow vests).

Something similar already happened with Merkel (although that time, it wasn't just lip service, there were policies and effort to be made). Merkel was hated by the hard-left in Europe, after the way she managed the crisis, and the huge social issues the policies she forced, created when they were imposed to Southern Europe. Suddenly, she became a defender of basically unchecked migration, and the hard-left completely stop doing her opposition and even supporting her.

<comment><USER5> This post overtly political and Hacker News does not approve of that.

</comment></comment></comment><comment><USER18> "And yet the photos weren't actually of the fires and many weren't even of the Amazon. The photo Ronaldo shared was taken in southern Brazil, far from the Amazon, in 2013. The photo that DiCaprio and Macron shared is over 20 years old. The photo Madonna and Smith shared is over 30. Some celebrities shared photos from Montana, India, and Sweden."

I wish people that (rightfully) blamed and made fun of Trump for spreading BS on tweeter would be as fierce with the other side of the political landscape.

<comment><USER13> And the worst part is this negligence _undermines_ a generally good cause.

Why do they knowingly do this? Do they think they won't be found out?

<comment><USER19> > Why do they knowingly do this? Do they think they won't be found out?

In the attention economy, it doesn't matter. Get found out? More attention, more clicks, more likes, more ads, more money.

<comment><USER18> On a side note, reading 19th century novels about the press makes you realize « attention economy » is what press is about right from the very first days.</comment></comment></comment></comment>


Mac Mini Pays for Itself After 2 Years - <AUTHOR> http://cjgill.wordpress.com/2009/10/25/free-mini/

<comment><USER2> A few people are debating the numbers, but I think there's a much more important message here. Consumers rarely factor in the total cost of ownership (TCO) of a computer, and only look at the retail price.

I used to think this way, particularly because I didn't have much money, so I needed to buy the cheapest computer I could at a given time, resulting in paying more over the lifetime of the computer (which might not be that long).

It was only once I began working with data centers when I realized what a huge amount the power and cooling bills could be. In a datacenter, the power and cooling requirements of a high-end system can easily be more than the cost of buying the system initially. A great example is Western Digital's new "Green" 2TB drives. The drive costs more $/GB initially than two 1TB drives, even when you factor in the cost of housing the drives; but if you look at the power required by the hard drives (and hard drives really do pull a lot of energy) the 2TB drives can come out cheaper. The same analysis applies to SSD drives.

If you want to be smart with your money, and have more in the long run, don't forget to account for ALL the costs you'll incur when compared to another solution. This applies to just about everything, not just computers.

<comment><USER3> Saving on power in the datacenter is one of the worst ways to try to save money, in my experience.

It varies greatly, but $10 million dollars worth of servers, network gear, and storage might cost $25k/mo in power. Shaving 5% or 10% off that bill is practically meaningless. You can save a lot more money in other ways.

Obviously at massive scale (think Google) it's a different story, but for the average small-medium company it's not even worth thinking about until you've gone after everything else.

<comment><USER4> While I agree that for those numbers, 5% to 10% savings isn't worth the effort, this isn't a good reason to dismiss saving by reducing data center power. Nissan recently starting rolling out virtualization solutions for some of their datacenters, resulting in 34% energy savings. For the kind of numbers you list, that would end up being over $100k of savings a year.

<comment><USER3> I found the press release you were referencing: [http://www.informationweek.com/news/software/server_virtuali...](http://www.informationweek.com/news/software/server_virtualization/showArticle.jhtml?articleID=218100715)

It proves exactly my point: That focusing on power usage is backwards. You should worry about other stuff, like using less servers.

The guy that worries about using less servers can consolidate 159 servers to 28. He saves $5 million dollars and $10k/mo. The guy that worries about power usage itself just buys 159 slightly less power hungry servers. He saves $2k/mo.

<comment><USER4> Ah, now I understand the distinction you are making. And I agree; get fewer servers, not the same number of slightly more efficient ones, and then you can talk about saving money on power.

</comment></comment></comment></comment></comment><comment><USER5> Oh come on...

Computers get more efficient all the time. My last power hungry desktop was replaced with a mobile ultra low voltage CPU notebook. Guess it paid for itself, too. But it wasn't from Apple, so I didn't make a fuss about it.

You know what, since you are so good at maths, I could sell you my old car for 10000 bucks. That way you would save 20000 bucks because you would not have to buy a more expensive car instead.

<comment><USER6> Whenever Apple takes a crap, fanboys flock to the stall to comment about how smart the smell is, and how stylish the toilet paper is. How only Apple could produce turds of such quality because they really, you know, _think_ about what goes into the process and their specially formulated fiber diet is a totally unique combination of oats and bran that you simply _can't_ replicate in the Windows or Linux world. So you have to pay 3x the price for that formulation.

And then blogs are filled with how it's all just so totally brilliant.

</comment></comment><comment><USER7> He might have saved even more electricity had he gotten a laptop with the same specs as the mini. My Dell Inspiron 1525 has a 65W power supply, vs the similarly-equipped Mac Mini's 110W, and that 65W includes the screen. Adding an LCD to the Mac Mini adds another 30-50W.

<comment><USER8> They don't make laptops with 42" screens, which is what he has attached to the mini.

<comment><USER7> You could just as easily connect a 42" screen to the laptop, as I sometimes do using my laptop's HDMI out. It will still end up using less power than the Mac Mini.

</comment></comment></comment><comment><USER9> Rule of thumb: for each watt your always on device consumes, you will pay $1/year in electricity. (at $0.12/kwHr, common US price)

You folks in Silicon Valley are paying 50% more than that for your electricity, so adjust accordingly.

His savings are high, $233/year which says to me he saved 150 watts, which seems a touch on the high side, but if his Pavilion did not sleep well (common in PCs) and his Mini does it would be right on the button.

<comment><USER8> An always on torrent server, as described in the article, doesn't sleep.

</comment></comment><comment><USER10> Possibly a title reworking is in order so it looks less like spam...

edit: exactly, thanks.

</comment><comment><USER11> Side benefit of low power: low noise.

That's actually the first thing I check when buying a new computer. How silent is it?

<comment><USER12> The Mac Mini is almost completely silent unless the CPU is being maxed for long enough (a few minutes), causing the fan to kick in.

<comment><USER5> No it isn't. I tried to use my PowerPC Mini as a homeserver, but my gf complained about the constant noise, so I had to switch it off. The fan is spinning continuously.

<comment><USER13> Wasn't the PPC notorious for running hot? My Intel Mac runs completely silent unless I'm building something from source.

(I have no experience with PPC Macs. Comment solely based on anecdotal evidence. Correct me if I'm wrong.)

<comment><USER14> G4 Powerbooks (PPC) were known to cause severe burns to people. So much so that Apple never called them laptops because you couldn't use them on your lap. (Granted, those people were wearing shorts and had the computer on bare skin, and the heat built up slowly so you didn't notice it).

Point being, the PPC Macs ran damn hot. My old G4 powerbook ran hotter than my current MacBook Pro. IIRC, notebook cooling and power requirements were the main reasons for the switch to Intel chips.

</comment></comment></comment></comment></comment><comment><USER15> There are too many other factors to consider when looking at the final bill. Next time, use an in-line power use monitor and tell us about it.

</comment><comment><USER16> I have a similar experience.

I got used to having a linux server on 24/7 when I was in college (no electricity bill in the dorms).

I moved to California when I graduated, and was spending over $40/month on electricity. I borrowed a friends kill-a-watt and measured my server at 180W-220W depending on the load!

I put together a machine based around the Via C7 and measured it as using 18W at the outlet. The whole thing cost a bit over $300. Also, no fan, which is nice as the server is now in my living room. As soon as SSDs get cheap enough, I'll have a no-moving-parts server.

<comment><USER17> I've got an Atom-powered rackmount firewall ([http://www.netgate.com/product_info.php?cPath=60_107&pro...](http://www.netgate.com/product_info.php?cPath=60_107&products_id=793)), a fanless rackmount HP ProCurve GigE switch, and a 2009 series Mac Mini running the home/business network. The rest is done with notebooks.

</comment></comment><comment><USER18> Where do you live? If it's somewhere warm I'd say not having fans might be part of your cost savings.

It would be much more compelling if you were giving us an apples-to-apples comparison with regards to the dates. My electricity bills in the winter are 1/6th what they are in the summer (although that's due to air conditioning).

[Edit: whoops, I misread the examples in the OPs link; for some reason I thought the lower bills were in the cooler months, and that is not the case. Still, my question stands with regards to wanting to make apples-to-apples comparisons]

<comment><USER2> Mine is the opposite, for not having AC. Winter bills are much higher.

The month of the change is probably a very important factor. If you make the change between January and February, or June and July, the weather is probably a minimal factor if at all.

</comment></comment><comment><USER19> auto sleep your computer after x minutes of idle. done.

<comment><USER20> Can you wake it up with an IR remote? If not, then auto-sleep is a non-starter for a set-top box. Just for example.

<comment><USER21> The Media Center remotes will wake/sleep your system. Windows Media Center does a fantastic job with sleep, actually. It'll wake up to record, then go back to sleep. If you hit "sleep" while it's recording, it will shut off the video output, then sleep when it's done.

</comment></comment></comment><comment><USER22> I'm not sure how they justify their claim that the Mac Mini is the most power efficient desktop. According to another post in this discussion, the average draw under load is approximately 35W. The Lenovo M58 & M58p--which have been out since December, 2008--also draws an average 35W under load, and are also EPEAT Gold and Energy Star 5.0 rated. I believe HP has had a similar product for a while too; probably every PC maker does.

</comment><comment><USER23> Where is the wasted energy lost to? If it is lost to heat and you have electric heating in your house, would that lead to a correspondingly lowered heating bill?

<comment> bjelkeman-again Yes, but you really don't want to heat your house or your hot water with straight electric radiators or water heaters. Use a heat pump. A heat pump will give you a 30-40% lower electricity bill.

I have a heat pump which takes heat from the ground (two boreholes) and for every 1kWh of electricity I put into it I get 2.5-3 kWh equivalent of heating in my house. This is essentially stored solar heat in the ground which I use the heat pump to transfer into my house. The electricity comes from regional hydropower. With electricity usage for heating without the heatpump of roughly 50,000 kWh and an electric price of about 15 US cent for the kWh, this knocks off a significant piece of the electricity bill, down to about 18,000 kWh and gives lower environmental impact. [http://en.wikipedia.org/wiki/Heat_pump#Ground_source_heat_pu...](http://en.wikipedia.org/wiki/Heat_pump#Ground_source_heat_pumps)

Also, reversely, if you are in a warm climate your aircon will have to take all that extra heat from your computer and push it out of the house, with a corresponding loss in efficiency.

<comment><USER17> I was born and raised in Las Vegas, NV. So was my father. His father started a water well drilling business in 1953, my father joined him in that business (post collage) in 1957.

In 1980, my father decided to build a house. We (meaning _I_ ) was sent to the property in order to drill two 800 foot deep 'wells', which were subsequently cased with 8" (ID) steel pipe, but not perforated. (There was a 1/2" plate on the bottom of the casing.)

After this, we filled the casing with water. (A fine test of one's skill at welding.) Then added a 2" galvanized "loop" inside the casing, which was then hooked in to a heat pump.

It was the single-most efficient "single family residence" HVAC system in the state.

We subsequently added hot-water recapture to the indoor AC units, in order to make the most of the heat "pulled" out of the house.

Dad also built the house with R-44 insulation in the walls, R-60 or so in the attic, and a white 'Spanish tile' roof.

The result, a power bill of around $100/mo for a 5000 sq ft home in the desert that was numbingly cold in the summer, and pleasantly warm in the winter. (It does get cold in LV.)

It helped that 40% of the square footage was basement (something else nobody in Las Vegas has, because it turns _hard_ about 4 feet down.)

</comment></comment></comment><comment><USER24> Would love to know what his KWH consumption is per month. His electricity bill is 1/2 mine. Is electricity generally cheap in North America?

<comment><USER25> I can tell you that in Europe, €0.20-0.25/kWh (about US$ 0.30-0.37, ZAR 2.20-2.80) is typical for residential customers.

<comment><USER26> I'm not sure, but NPower in the UK appears to be 8 pence (about 12 cents). That does seem low!

<comment><USER25> My figures include taxes and average amortization of any fixed costs. That said, UK energy prices do seem to be lower than in central Europe; I'm not sure why.

</comment></comment></comment></comment><comment><USER27> My guess is something Atom-based, like the EEE Box, would save even more in electricity.

<comment><USER6> Correct, they use about 50% less power, plus it costs less to purchase to start with.

</comment></comment><comment><USER28> Best home computing device I own!

It's connected to my LCD TV and acts as my source of TV/movie, etc enjoyment, along with net surfing and conversing!</comment>


Fresh Plum Fun - <AUTHOR> https://github.com/benawabe896/Fresh-Plum

<comment><USER2> I can't believe someone posted the answer that's pretty lame. John is a password cracker, its probably "the password cracker." John has optimized assembly instructions for many hashes for many cpus so its blazingly fast for a CPU attack. Reallocating GPUs from btc mining to this would have been a waste given that the answer was in /usr/share/dict

</comment><comment><USER3> Is this the place where I admit that the fastest way to reverse an md5 hash like that is to google it?

<comment><USER4> That's exactly what I did yesterday :) Even though I'm not even looking for a job.

Then I went to their website to email them anyway and wasted more time figuring out the address to send it to.

</comment></comment><comment><USER2> You realize in the time to init a repo you could have solved the problem with john.

<comment><AUTHOR> I'm not sure who or what john is :) I just thought it was a fun exercise, and since the solution was already posted, I figured it could be beneficial to post one way of doing it.

<comment><USER5> <http://www.openwall.com/john/></comment></comment></comment>


Why we don't want touchscreens on our desktops - <AUTHOR> http://www.itworld.com/hardware/80750/why-we-dont-want-touchscreens-our-desktops <comment><USER2> The idea of regularly putting grubby fingers on a screen is pretty awful. It would get so crusted up so fast that you'd have to get a windshield scraper to clean it.

</comment><comment><USER3> At least some people may want touchscreens for first person shooting (FPS) games if touchscreens can handle finger poking. :-)

<comment><USER4> I'm not sure how good this would work. At least, the front of the touch screen would need to be pretty sturdy, if I consider the violence if my mouse movements sometimes. Also, I am not sure how one would want to replicate fully used 8-button-mouses :)</comment></comment>


BitHub = Bitcoin + GitHub. An experiment in funding privacy OSS - <AUTHOR> https://whispersystems.org/blog/bithub/ <comment><USER2> This is very cool, but my initial reaction was "this is amazing" to a misunderstood model of what this is.

This is: Create a pool of btc, distribute to those who commit to current round.

What I thought this is: Anyone can tip on individual commits that they find useful or of exceptionally high quality, akin to Reddit Gold for code. This way, not all commits are treated equally and great commits can be compensated. To further the reddit gold analogy, this can tip for premium features (i.e. tip some btc or usd for a month of free github premium) or just straight out money.

I realize there's gittip, but this is on the level of commits, not developers.

<comment><USER3> Sure, except that tippers (users) are not likely to be in position to judge the quality of a commit, nor really want to wade through hundreds of commits to decide which ones might be worth spending money on, and for the most part, just want to support the development of the project rather than micro-manage it. It's a nice ideal us developers can dream of, but the model implemented BitHub is just easier to use.

To use a restaurant analogy, a shared tip jar that gets split evenly at the end of the night results in much fairer distribution (and includes the chef and cashier as well) as opposed to personalized tips which get unfairly / unevenly distributed between waiters. Most people tip because of the full service, from ambiance to service and cooking, not just the front-man performance.

And you can still always ways to tip individuals developers (or waitresses) personally if you so wish.

<comment><USER4> Perhaps this would create an incentive for contributors to better explain the significance of their changes in their commit messages. Whether or not this would be a positive effect is up for debate.

</comment></comment></comment><comment><USER5> My gut instinct was "this is perfect". However, sferik says it's made maintaining his repo much, much harder:

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

(SFErik had nothing to do with the bitcoin stuff; someone else put up the money and started it for his repo.)

<comment><USER6> Our hypothesis with this project is that any commit, even a "fluff commit," is better than no commit, and that the overhead of trying to build a more complex accounting model is higher than the cost of paying out 2% for "fluff." Basically, worse is better.

But, we could be wrong! We'll see.

<comment><USER7> I actually think your attitude is the right one to have for this kind of experiment. We can pontificate endlessly on what people might do, how people might exploit such a system, but I'm of the (possibly naive) opinion that just because a person can, doesn't mean a person will.

I suspect that, despite the _potential_ for abuse, you won't actually see very much actual abuse.

<comment><USER8> Alternatively, it may influence commit behavior. People may not want to be accused of filing fluff commits & slow their contributions to accumulate 'enough' changes to justify the payout.

<comment><USER9> We added a FREEBIE keyword today for commits that are small enough the author doesn't think they should get a reward.

</comment></comment></comment></comment></comment><comment><USER10> This seems like a _terrible_ idea to me. I believe the entire world of open source functions based on intrinsic motivation: people participate because the act of participation itself is enjoyable. This has some flaws (less fun stuff like docs don't get as much love), but unlocks a _huge_ pool of untapped motivation in people.

Studies have shown that if you add in even a small amount of extrinsic motivation (i.e. pay people) it dramatically affects their perception of intrinsic reward. In other words, if you pay someone for doing the _exact same thing_ , the _task becomes less enjoyable_.

If we start throwing cash around, it's going to have a huge impact on the psychological aspect of open-source, and probably not for the better.

<comment><USER11> >Studies have shown that if you add in even a small amount of extrinsic motivation (i.e. pay people) it dramatically affects their perception of intrinsic reward.

These studies are typically set up such that there's no choice; you have kids (usually) do some activity like drawing for either no reward or extrinsic reward, and then see how many continue once you remove the extrinsic reward.

There are a lot of possible explanations for this; the one I like the most is based on self-perception theory, which would predict that once you've accepted the reward, you attribute your motivation to the reward.

There are some differences between those studies and this scenario:

1\. Open-source developers have a far wider range of options, and must actively choose to work on a project with financial reward.

2\. Open-source developers who have already contributed some amount for free should be less influenced than new developers -- they already have had altruistic/intrinsically-motivated self perceptions.

Developers that are attracted to OWS projects because of this reward probably won't stay if the reward is removed, but I'm not sure, and don't predict, that OWS projects will attract fewer developers overall because of this.

I think that intrinsic and extrinsic motivators can definitely co-exist, especially for domains where there are differences in the tasks -- for example, offering these bounties for "less fun" stuff (or dynamically offering more for parts of the repo that have been touched further into the past).

<comment><USER10> > These studies are typically set up such that there's no choice; you have > kids (usually)

There's a lot more literature behind this than just studies with kids, though I'm a total novice here. Here's[1] a painfully detailed meta-analysis I found.

> Developers that are attracted to OWS projects because of this reward > probably won't stay if the reward is removed, but I'm not sure, and don't > predict, that OWS projects will attract fewer developers overall because of > this.

Reducing this down to just "more or fewer contributors" is the kind of over- simplifying that I worry about here. The software industry is not historically people-savvy, and open source is an entirely social phenomenon. It's easy to mess things up.

I'm less worried about the number of people changing than I am their relationship with the projects they work on changing. Right now, if I send someone a patch, I feel good because I know I'm doing a purely good thing. If I send a patch to a project that pays for patches, that's not _bad_ , but it means now I feel more like I'm freelancing or some other more complication jumble of emotions.

Likewise, if someone sends me a patch, do I get excited that they want to be a part of my project? Have I met a kindred spirit? Or are they just gunning for a chunk of BTC in their off hours?

I'm not saying introducing money is a bad thing here, but like all other avenues of social activity, involving even a small amount of money radically changes the nature of it. Don't believe me? Try tipping your parents after they have you over for dinner. Maybe leave a fifty on your significant other's bedside table and see how that goes. :)

[1]: [http://www.rug.nl/gmw/psychology/research/onderzoek_summersc...](http://www.rug.nl/gmw/psychology/research/onderzoek_summerschool/firststep/content/papers/4.4.pdf)

</comment></comment></comment><comment><USER12> I think this is genius.

Call me naive but this is a really nice idea. Reminds me of flattr except it's automated. The idea of having bounties to various project issues and setting up a commit/pull-request payout could be a real incentive for a lot of people to contribute to actual open source software.

Bitcoin is just the icing, makes this really well integrated and anonymous too. I can't wait to see where this project leads us to. Maybe an actually fully decentralized open source employment career?

<comment><USER13> One thing I see as a problem here is that anonymity enforces very careful code reviews focusing on security imlications of the changes.

<comment><USER14> I think that can be a feature as well.

Also, are the contributors anonymous in the sense that you have no way of knowing the identity of the contributor? Or, anonymous in the sense that the contribution originates from a particular pseudonym?

</comment></comment></comment><comment><USER15> I've got kind of a complicated picture to paint, so please bear with me...

1) Services can be bought with Bitcoin.

2) Github is awesome, but currently it's a totalitarian regime. Anyone with power can accept a Pull Request. There is no other form of government possible.

The thought occurred to me that for some kinds of projects, it might make sense to encode a form of government into the Source Code Repository / Source Code Review / Account system, itself. And possibly to have the entire thing - government, source code, data, and the running project itself - be self- hosting on a cloud server.

Self-hosting is the critical, and very interesting part to me. You pay your membership dues with BitCoin, and the service pays for its own hosting with BitCoin. And perhaps that's it - no one else has the keys to the BitCoin account, no possibility to profit off the service, it just pays for itself as long as it can, and then shuts down.

You could imagine a direct democracy, of everyone who pays their monthly membership fee. Or perhaps you gain voting privileges once you've been a paying member for 3 months in a row. All kinds of parameters could exist, and a single Community could possibly even modify their own laws, through something like a Constitutional law process. Maybe if the community is really successful, the governing body can start paying people with BitCoin to fix bugs, add features, create new art assets, etc.

There could be separate partitions of government. Like, picture an MMO RPG. Member for 3 months can vote on engine. Member for 12 months can vote on the content of the game itself, like where cities go, how much manna a spell costs, etc. Or maybe you get the right to vote, once you've completed an in- game quest!

As the code is modified, the service waits for all of the unit tests to pass before accepting a code change, waits for the government to approve of the changes, and then does something like restart the server at midnight.

And depending on the licensing, it may be possible for someone else to throw some BitCoin at a new server, and fork the whole Community, picking slightly different Constitutional and legal parameters. Over time, people end up with accounts on systems that have content and laws they like.

I've got a lot more thoughts about such a system, and I hope it comes to exist some day.

<comment><USER16> I had the same idea, it's great to know I'm not alone :-) I was imagining an 'enforced' democratic website ie the website runs the live code that any user can submit patches and/or vote on, and no-one has root.

At some point this sort of thing becomes a co-operative business... kind of big for a side project :-/

Anyway I started a python prototype (see my profile), and would love to bounce ideas off you!

</comment></comment><comment><USER17> I have found (small) money to not be a good incentive or motivation for people to work on FOSS. It might be worth trying for small simple tasks but it really is a one timer and not benefiting the continuing work and maintaining on the software on the long run.

</comment><comment><USER18> Hmm. I took a look at the code and was disappointed to see it's using the Coinbase API. Hardly decentralised.

Unfortunately it's hard to replace with direct usage of the P2P network because it relies on sending money to an email address: i.e. a trusted third party has to hold the money until the recipient picks it up. What if they never pick it up? What if they don't actually want bitcoins?

It seems to me like a decentralised solution would be easy to code up, if only we add an additional requirement: someone who wants a payout should put a Bitcoin address into the pull request or commit description. Then BitHub would be able to make payouts directly from its own wallet with no Coinbase dependency, and a committer has to opt-in to receiving the funds.

I might take a look at coding this up soon. BitHub is Java so using bitcoinj and XChange would be very easy.

</comment><comment><USER19> As many others in this discussion, I'm not sure whether this will be net positive or not, but I would try it if I could make the payments per merged pull request.

Additionally, I would like to provide bonuses for each checked-off item of

1\. Does it have appropriate tests?

2\. Is there appropriate documentation?

3\. Has it been peer-reviewed and signed off? (Reviewer shares this bonus.)

These are the above-bare-minimum things I would like to encourage in my open source projects. Not everyone has time to go above and beyond when fixing a bug they encountered, but it's more than appreciated when they do.

In fact, maybe the payments should only be for the bonuses, not the merged PR itself.

</comment><comment><USER20> I wonder how well this would work tied in to the stack exchange model?

<comment><USER21> Now HERE is an interesting idea.

That said, I'm not sure what field to try this on. StackOverflow is damn near perfect, IMO, in its current state. There are endless high-quality answers, without rewards.

</comment></comment><comment><USER22> IMO bug bounty payouts are a more effective use of funds for a project. Paying per commit is like paying per line of code. At least with a bug bounty you (the giver) can specify which particular item interests you. If you want to donate money to the project as a whole, then it seems easier to just communicate with the project owner/maintainer and send them funds directly.

</comment><comment><USER23> In the line of worst case scenario that seems to permeate today's world, GitHub can now become a tool for money laundering. All you need is a few scripts creating puppet users and repos, and automate shill commits and pull requests.

</comment><comment><USER24> I'm going to try this out. I'm a freelancer who wants to contribute front-end dev/UX/UI to OSS crypto projects but don't have the ability to join a project full-time. Plus most of my "free" time where I'd normally contribute to OSS, I'm now writing or maintaining my own projects.

I'm going to dig into WhisperSystems to see if there is anywhere I can contribute.

Hopefully more OSS apps do this.

It'd be nice if more projects open-sourced their marketing landing pages or homepage as well. I'd love to be able to do conversion-optimization and copywriting for OSS projects, instead of just programming.

</comment><comment><USER25> I'm excited about the mix of coding and compensation. As a coder with a strong open source ethic, I feel there are enough secondary benefits to direct compensation to justify the potential loss in 'pure' motivation.

The twist I would like to see, which I feel fixes the fluff commit problem, is to write unit tests associated with a coin bounty. It puts a burden on the test author to write tests that are not easily gamed, but thats good practice anyways.

</comment><comment><USER26> So right now the model is similar to tip4commit, but by running their own service the model can be changed to whatever works best down the line.

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

[http://tip4commit.com/projects/230](http://tip4commit.com/projects/230)

</comment><comment><USER27> The problem about handling donations can be given to an external party like Software Conservancy, the Apache Foundation, or for GNU software, the Free Software Foundation. We use the last one for GNU Octave.

This seems to me like a better solution for collecting donations, which is a solved problem.

</comment><comment><USER28> You could use the m-of-n feature of Bitcoin where a certain number of people from a larger group have to agree to a transaction and manage the funds for the project collectively like that. Whether to set rewards for committers, or just pay for the new build box.

</comment><comment><USER29> I think the idea has potential but would this not encourage users to purposely commit sparsely?

</comment><comment><USER30> You should take a look at Devcoin (devcoin.org): A crypto-currency specialized in rewarding open source projects (hardware, software, music, blog posts ...).

The main differentiator here is that 90% of mined coins go directly in rewards.

</comment><comment><USER31> Moxie are you communicating with the DarkMail guys at all? I'm sure they would appreciate your input.

</comment><comment><USER32> I think this could work as long as you have very detailed contributor and style guides.

</comment><comment><USER33> This is great! I just sent them $100 in BTC! I love what WhisperSystems is doing!

</comment><comment><USER26> I look forward to when StackOverflow integrates BitCoin.

</comment><comment><USER34> I think you would be better off implementing something easier to use like dogecoin. The reddit community seems to be adopting it, and it seems much more reasonable to buy 1000 doge for $1 than .00001 BTC

BTC has a huge problem and the mBTC uBTC just ended up confusing people even more.</comment>


AppEngine 1.5.1 Release - <AUTHOR> http://googleappengine.blogspot.com/2011/06/app-engine-151-release.html

<comment><USER2> Most was expected, but this is pretty cool:

 _Geolocation Header: App Engine will now include a header with every client request that represents a best-effort attempt to identify the country from which the request originated. This header, "X-AppEngine-country," can allow you to customize content based on the origin of the user. We hope this means no more "Select your location" drop downs for users!_

</comment><comment><USER3> I'd like to hear more about the updated future pricing structure besides the FAQ. New features are irrelevant if they become unaffordable =\

</comment><comment><USER4> Kind of underwhelming in my book. Where is SQL support (promised over a year ago in Google I/O 2010) and what about Java-Python feature parity?</comment>


Ask HN: Is a CS degree worth the effort today? - <AUTHOR>

I just read this Quora thread:
http://www.quora.com/Would-you-choose-a-coding-bootcamp-or-a-computer-science-related-degree-Why
How useful is a four-year CS/IT/SE degree if people coming out of three-month coding bootcamps get a better job placement and salary? <comment><USER2> A bootcamp grad can probably do better _junior_ -level work, but they couldn't be the person at the top of that hierarchy without a lot more experience. And the only reason they're better at junior-level work is because it often requires minimal understanding of the underlying workings of the application, let alone the server, OS, or hardware.

The problem is that CS schools haven't done a good job teaching practical web technologies because web technologies are a poor way to study computer science. There's only so much time in a degree program.

The ideal situation would be to get a CS degree and then do a cheaper course on web technologies (that's still led by an instructor). I think there's something called Code Union offering that.

</comment><comment><USER3> I'm sure they can get some sort of job, but the degree will give you a better chance at a long-term career as a developer.

First, in a competitive marketplace, if you are up against a person with similar skills/experience and you have a degree and they don't, you will have a better chance at getting the job.

Second, I don't think a person coming out of the 3-month bootcamp has any sort of real understanding of the fundamentals of development (algorithm design, what the compiler is actually doing, how, why, and when to optimize code).

The great part about learning the fundamentals is that you can move to other languages quickly. I just started with Python 2 months ago (I know c/c++/pascal/perl/PHP) and I'm already writing full apps pretty easily. Since I've already learned many of the fundamentals, I just needed to learn syntax.</comment>


A Fort Knox for Web crypto keys: Inside Symantec's SSL certificate vault - <AUTHOR> http://arstechnica.com/security/2012/11/inside-symantecs-ssl-certificate-vault/

<comment><USER2> I thought it was interesting that the passwords for accessing the HSM were only 12 chars (3 employees * 4 chars). Even then, it's not clear if it is characters or just numbers given the numeric keypad shown.</comment>


Letterpress style multiplayer 2048 - <AUTHOR> http://blog.shyahi.com/post/84595741291/introducing-multiplayer-mode-for-2048

<comment><USER2> Interesting twist. I just played it and loved it! Feels like playing chess!</comment>


Ask HN: Why are Oracle products so bad? - <AUTHOR>

I work at a company where all the enterprise software is Oracle based. Its not browser compatible, it doesn't work on OSx at all, and there are so many problems.<p>Why is this normal and how come there hasn't been a disruptive alternative? <comment><USER2> Your post - it's just so generic that I don't know how anyone other than you could answer it. What does "bad" mean to you? What specific Oracle products are you talking about? How much do you know about the data warehouse design or the OLAP design? What is it that you are doing exactly?

You just are way too general - Oracle probably makes 500 products and is a multi-billion dollar enterprise-focused company. If all Oracle products were "so bad" (as typified by "so many problems"), surely they wouldn't be such a massive company, no?

</comment><comment><USER3> well i kind of love java,netbeans,oracle db,db2 and sql designer by the way.

osx? sorry im not a cool guy, im just a dba</comment>


CyanogenMod can now take screenshots on Android - <AUTHOR> http://review.cyanogenmod.com/#change,6492

<comment><AUTHOR> Long-hold the power button on your device to see the Screenshot menu item. Tap it, and be amazed!

It looks like some people are having issues on specific devices, but it works fine on my Nook Color (Encore).</comment>


Show HN: Chatroulette for Trump supporters/opponents - <AUTHOR> https://www.facebook.com/Trump-Talk-Therapy-1360792197326157/ <comment><USER2> We've heard about the alienation and impotent rage of the American white male, the revolution of "rural" Americans agaubst the "urban" elite, and the backlash of the right wing against American liberalism, feminism and cultural heterogeneity. Trump supporters have made it very clear how uninterested they are in debate, criticism or compromise. Trump's election was a statement of contempt for the rest of the country and its ideals. They can't burn their bridges with American culture and then expect that culture to meet them halfway.

I feel like there's nothing to discuss at this point.

</comment><comment><USER3> Good incentive. I don't think this is gonna work though. If trump supporters will actually want to have a conversation and listen to trump opponents, they wouldn't have supported Trump in the first place. So many blatant lies , they have to know some of these are lies, and they still choose to believe it and ignore all the facts. They voted because of their emotions and frustrations (and biases) . No amount of rational thinking /facts/ truths are going to matter.</comment>


Ask HN: How do you find stuff to do in your city? - <AUTHOR>

Building out a new start up to compete with City Guides. I want to focus it on things to do rather than just venues.
For example: Restaurant X vs. Friday nights at Restaurant X with a Jazz band and ask for Dish Y.
I just got a launch page up at UpOut.com. Just want to ask HN how people find stuff to do. <comment><USER2> Cool landing page (I like how the pictures are localized)

I have a few ways, they are pretty specific to Toronto but I'll mention them anyway so you get the idea.

1) Redflagdeals.com - this is my primary source as it is the largest forum in Canada (with a huge center around Toronto). Basically it is a "deals" forum like slickdeals or fatwallet in the states, but there is a TON of talk about things to do in Toronto, great restaurants, and of course, deals on stuff. For me I browse this often and if I find something I like then I'll check it out. For example, I found out about "O'Noir" here, which was a restaurant where you eat in pitch black, and all the waiters are blind.

2) Local blogs - things like blogto.com show me a lot of the independent type stuff around (festivals, smaller shops, bands, etc.). Torontoist is another one. For example I just learned they are opening a Ping Pong bar in downtown Toronto from here.

3) Deal sites (like groupon, living social, etc). Basically it isn't just about buying the deal (as I only buy maybe 1 per week) but I keep an eye out for the new things to do that they feature - I might find a paintball place and keep it in mind even if I don't buy the deal, or some sort of trade show/exhibition, etc.

For things like a) sports and b) music I'd basically either know that it was coming (I'm a huge sports fan with seasons tickets to baseball and basically never miss a leafs game) so I don't really have to search out that info.

I try to be pretty frugal with what I do so that is certainly a bias - If I'm going to a new city the first thing I do is save the Wikitravel page to my iPad, then I'll check out some of the past groupons there, etc. I'll then check out some of the online coupon places (for example I got coupons for 2-4-1 mini-golf & bowling in Florida, etc). Last resort when I get there I'll check out the rack cards at tourist type places (in Florida I found out about a pirate tour boat, lol).

If I were you I'd be skimming forums as your best bet for crowd sourcing data, there are two different opinions for "things to do" one being a local and one being a tourist, but usually locals don't do enough tourist stuff, and tourists don't do enough local stuff... so there is an interesting middle you could find there (for example, I've never been to the Royal Ontario Museum, or the Bata Shoe Museum after living in Toronto for 5 years - these would be done by 75% of tourists). Of course you could skim foursquare data too but it seems to be done already.

Good luck

<comment><AUTHOR> I'm actually a Toronto local.. Can I send you a beta invite with my personal 100 plus random awesome things to do in Toronto? For example: Friday night drop in Flying Trapeze classes?

Thanks for the feedback

<comment><USER2> Absolutely! - my username @ gmail

<comment><AUTHOR> Thanks.. I'll keep you posted!

<comment><USER2> No problem... P.s. I'd love to help add some things if you'd like, as I'm the "planner" of my group! Make sure you have things a bit north too (Tree Top Trekking, zip lines, old steam train, steam ship cruises, etc - I split my time between the city & Barrie )

<comment><AUTHOR> That's awesome. I'll email you as soon as the site is ready (probably in a week or two).

</comment></comment></comment></comment></comment></comment><comment><USER3> I've been working on a similar but different solution at <http://impromptudo.com>. I'm currently focusing on quantity and breadth, saving quality and depth for later.

Edit: checked out your project, looks very similar to <http://usehipster.com>, which was recently acquired (?) and it hasn't even launched. So, theres confirmation of the idea.

<comment><AUTHOR> I've looked at Hipster and don't think their solution is stellar. It's more of Q&A for location which I think is too far away from a city guide. City guides just need a quick web 2.0 uplift in my opinion.

</comment></comment><comment> T-hawk Incredibly low tech, but printed newspapers. I'm in NYC so there's an abundance. amNY (the free one) and Newsday are pretty consistent with a small section listing concerts and comedy and other performers, usually in the Friday editions.

<comment><AUTHOR> Which NYC newspapers do you typically use? Also, what's the coolest thing you do in NYC?

<comment><USER4> Village Voice is good. They have a listing of different shows on their site. You could probably data mine from there.

</comment></comment></comment><comment><USER5> I hate to say it but I really want a Groupon for Activities (ONLY).

Horseback riding, trap shooting, skiing, fishing, and that kind of thing. A site that gives me something to do on the weekends when I'm in the mood for an activity.

<comment><AUTHOR> This is exactly what I'm trying to do. Please sign up for our beta test at UpOut.com.

We also have simple and clean filters... already have 200+ submissions just from my friends.

We're also planning to put in a bunch of great plug ins.

<comment><USER5> Cool, I will try it. Side note: How much did you pay for UpOut.com? It's pretty good.

<comment><AUTHOR> 40 bucks. namepros

</comment></comment></comment></comment><comment><USER6> I use <http://www.songkick.com> for music, and <http://www.meetup.com> for social stff.

London resident.

</comment><comment><USER7> I started ThisCity.com in Calgary, AB. We have a new version launching next month. If you want lessons from being in the biz and potentially to link up, email me.

Chris

<comment><AUTHOR> We're doing something similar but got it going for most major cities out there. We have a different UI though. Your site reminds me a lot of Toronto.com

</comment></comment><comment><USER8> For music last.fm does a wonderful "gigs in your city" RSS feed.

</comment><comment><USER9> Timeout</comment>


New Relic CEO scolds employees: 'We [.. urgently ..] need to get back on track' - <AUTHOR> https://www.oregonlive.com/silicon-forest/2020/07/new-relic-ceo-scolds-employees-in-internal-memo-we-are-a-company-with-an-urgent-need-to-get-back-on-track.html <comment><USER2> This kind of message to employees doesn't tend to go over well. I saw it at another company and the person in question had to walk back on the remarks.

Business doesn't happen in isolation. Political and societal externalities are a part of it, this fact is right there in the first chapters of my introductory MBA textbooks.

Right now, the amount of general unrest has ticked up across the country, and believe it or not that includes unrest among gainfully employed professionals. Pretending you're not a part of it is tone-deaf.

A good company will address external issues intelligently and use them as an opportunity to inspire and motivate employees, not scold them.

The CEO here is treating their employees like they're being illogical entitled babies: an incredibly misguided response with no perceivable upside.

Not only that, he's telling his employees that they're on a sinking ship!

I tell you what, hire me to be your CEO and I can _not do that_ for half the price!

The other takeaway of this article: I'm actually shocked to find out that New Relic loses money! The product is not cheap!</comment>


Kara Swisher: Shame on Silicon Valley for Climbing the (Trump) Tower in Silence - <AUTHOR> https://www.recode.net/2016/12/12/13917982 <comment><USER2> I'm fine with the article, just in case some of them do go there just to kiss the ring and ask for lower corporate taxes.

But I hope at least some of those CEOs will go there to change Trump's mind about a few things. It's probably better not to let Trump surround himself _only_ by clueless people (as long as the non-clueless people _speak out_ when needed). I could see Elon Musk try to change his mind about renewables and EVs by talking about how they could create many American jobs, for instance. Same goes with Tim Cook on the encryption issue. Or maybe I'm just an optimist.

</comment><comment><USER3> Negotiating with a president is a complex sale, not a simple sale. In the SPIN Selling Fieldbook ([https://www.amazon.com/SPIN-Selling-Fieldbook-Practical- Exer...](https://www.amazon.com/SPIN-Selling-Fieldbook-Practical- Exercises/dp/0070522359)), Neil Rackham makes the case that in complex sales situations it is better to get a continuation than a 'no'. Additionally, the objective is likely a series of incremental wins toward a desirable future rather than an all-in-one victory. I get where Swisher is coming from, and I agree that the CEOs should plan to manage the inevitable spin that will surround the meeting, but it seems like going to the meeting is worth doing.

Side note: when I was using it as a consultant I actually saw a lot of positive results from the SPIN Selling approach. The idea is to demonstrate to your customer you understand their situation, problem, the implication of that problem, and customer needs. Then, map their needs back to your product to show, in your customer's words, how what you're selling satisfies their needs. The framework is proposed in opposition to the classical concept of the "hard sell" or "closer" method often applied at car dealerships.

</comment><comment><USER4> I think "shame" is a really good word for what I'm feeling about my country's president-elect right now. As we slip further and further into the world described by George Orwell, I can only hope that those among us (here) with the power and voice to make a difference, will stand up to the fascist threat that Trump represents and fight for the ideals that are enshrined in our constitution. It is a living document, and right now it feels like I'm watching it die.

</comment><comment><USER5> _When I call these top leaders — of course, it has to be off the record — I get a running dialogue in dulcet tones about needing to cooperate and needing to engage and needing to be seen as willing to work together._

Silicon valley firms know a lot of information about a lot of people. I have extremely limited faith in their willingness to protect anyone's privacy if push comes to shove.

</comment><comment><USER6> Chris Sacca seems very courageous, as does Kara Swisher. Unfortunately, it's probably only a matter of time before HUAC gets them fired for their brave, outspoken, original and iconoclastic political positions...

Wait, what's that you say?

</comment><comment><AUTHOR> And, before anybody starts flagging this as political: the "political detox" experiment is over. See Dan's announcement at [https://news.ycombinator.com/item?id=13131251](https://news.ycombinator.com/item?id=13131251)

<comment><USER7> But remember that most politics is still off-topic, as per the HN guidelines:

 _" Off-Topic: Most stories about politics, or crime, or sports, unless they're evidence of some interesting new phenomenon."_

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


Nobel Prize snub: Why blue LED is worthy while the very first LED was not - <AUTHOR> http://www.westerndailypress.co.uk/Nobel-Prize-snub-Professor-Nick-Holonyak/story-23061154-detail/story.html

<comment><USER2> The Nobel prize has largely become arbitrary in its pursuit of being the most exclusive awards. After knowing about just a few instances like Obama getting the Peace prize as soon as he was elected the President, this year's Physics prize going to only 3 scientists for what actually is the result of many more people working in a group, and now this - I think the award is losing its charm. It has certainly lost respect in my eyes. Its only a matter of time before it becomes an obsolete concept.

Seems ironic that a body that recognizes people for exceptional work in the sciences, it itself is based on highly subjective and debatable decisions.

</comment><comment><USER3> You can argue that the blue led has done more to improve things than the original. Blue was the missing led color for many years, meaning that low cost/power light bulbs and displays were not possible. The original led was used primarily for indicator lights, while the blue led enables a great leap forward in the way we provide lighting and display surfaces.

Also, the problem/solution for blue leds was way more interesting and challenging imho.

<comment><USER4> The article points out some other big uses of original red LEDs: fibre optic networks, and CD/DVDs.

<comment><USER3> That's very true. Those were both huge.

One more small counterpoint... DWM in fiber optic networks was given a huge boost by blue leds. The increase in bandwidth has led to multimedia streaming services that have made conventional optical disks largely outdated for consumer use... even the more recent blu ray formats designed to take advantage of the blue leds are not as popular any more.</comment></comment></comment>