Why C++ Sails When the Vasa Sank [pdf] - <AUTHOR> http://files.meetup.com/1455470/Why%20C%2B%2B%20Sails%20When%20the%20Vasa%20Sank.pdf <comment><USER2> To me, the key line was "Most of the complexity of C++ is hidden from most of the users most of the time."

The complexity is there. Trying to understand the whole language at a language-lawyer level is mind-boggling. Trying to write libraries that make proper use of the goodies is very hard.

But using C++ isn't so bad, as long as you don't try to use every aspect of it. Just use the parts you need to be able to do what you're really trying to do. You don't have to pay for what you don't use. That's good enough for a huge number of programmers in a wide variety of contexts.

There's a lot of haters that can point out a huge number of flaws. But here's the thing: Most of them, I never run into. I don't care if the move syntax is confusing; I don't use it. Maybe I never will. If I have to, _then_ I'll care about how good or bad the syntax is. In the meantime, the parts I actually use let me get my work done better than any alternatives.

<comment><USER3> > The complexity is there. Trying to understand the whole language at a > language-lawyer level is mind-boggling.

It makes me uncomfortable not to have that level of understanding for a language that's so low-level and doesn't have the "Do What I Mean" bent of say Python. I'm "meh" on C++ going forward. I invested a lot of time into my copy of "The C++ Programming Language" (3d Ed.), for C++ 98, but I can't motivate myself to get the new edition and learn in the ins-and-outs of C++ 11. It doesn't seem worth it to me. I'm really hoping Rust catches on. It's a complex language in the same vein as C++, but the bang-for-buck in terms of expressiveness relative to complexity is better, I think.

<comment><USER4> I'm a former C++ programmer (and a current C programmer) and my go-to language is currently Golang; here's why I'd virtually always choose Golang before C++:

* Streamlined language with carefully-chosen syntax and keywords (there aren't 10 different meanings for "static", for instance); entire concepts have been eliminated to no apparent ill effect in building real systems. Fewer cycles allocated to the language, more cycles allocated to problem domain.

* The 95% case for associative and sequential containers is built into the language, with (for me) enormous benefits to programming efficiency.

* A streamlined and carefully orthogonalized standard library optimized for systems programming. Golang has the best-designed standard library I've ever used.

* A ruthlessly pragmatic packaging and modularity system; unlike C++, packaging is not left up to the build system.

* Build-world compilation times measured in 100s of milliseconds rather than 10s of minutes.

If I was writing, say, a generic trie library that I was hoping to get hundreds of different programmers to use, C++ would be a tempting target because of generics. But it turns out, most of the time I build projects like that, I'm really just wanking. Another benefit of Golang is that it's so stripped down and pragmatic that it subtly discourages wanking.

A lot of people would add Golang's concurrency model (share by communicating instead of communicating by sharing) and lightweight threads to this list. I like Golang concurrency too but my sense of it is that among languages designed from the jump for concurrency, this isn't that much of a unique benefit.

<comment><USER5> Is go really suitable for system programming as defined in TFA?

<comment><USER6> Go can link to assembler and C routines so yes, I would think Go could be a good language for mid/top-level stuff.

</comment></comment></comment></comment></comment><comment><USER7> When in Stockholm, go visit the Vasa museum. It's absolutely breathtaking.

Make sure to get a guided tour. You can read all the stuff on the displays and in books, but you probably won't. So you'd lose all those nice stories about how the German ambassador protested the ship, because the figurines on the front symbolized the Roman emperors, with the Swedish king at the very front. Preposterous! The emperor of the Holy Roman Empire of the _German_ Nation is the rightful successor to the Roman emperors, after all!

Pay attention to the fact that the Swedes weren't as stupid as people tend to assume. "Oh, they couldn't even build a ship that's floating!".

Yeah well, it was a design no-one had attempted before (bigger, three masts, two rows of cannons), the math to calculate the behaviour wasn't available, yet. And best of all -- contemporary analysis shows that they almost made it. Had the ship been just a little bit wider (I don't know, something like 20 centimeters or so?), it would have been fine.

Be amazed how the Swedes never just found a scapegoat to punish for the loss of their flagship.

Or just admire the architecture of the museum.

Whenever I'm in Stockholm I go there. It's inevitably a high point of my visits.

<comment><USER8> Several people working on the design of the ship knew it never would sail. But since voicing their criticism about the king's unrealistic spec carried the risk of getting beheaded they kept their mouths mostly shut. The master shipbuilder who was in charge of the project fled back to Holland when Vasa sank. It was a classic case of hoping someone else would get the blame when the shit hits the fan.

</comment></comment><comment><USER9> The way people like to complain about the bloat and arbitrariness of C++, but then still quietly wind up using it, reminds me a lot of the common complaints about the arbitrary pronunciation and other quirks of the English language. There is, of course, the trivial commonality that "everyone understands it and a lot of useful things have already been written in it", but at least part of the reason why languages like Esperanto or even Lojban don't catch on is that while many like to extol the virtues of a (natural or machine) language being simple and unambiguous on paper, in practice, more often than not people arrive at a point where they perceive the very un-Pythonic benefit of being able to express the same thing in more than one way (and, conversely, being able to convey more than what the words/code say at face value).

The natural language example of course being metaphor and allusion, I am thinking of practices such as indenting glVertex calls inside a glBegin/glEnd block, or overloading () on an object to convey the idea that "you should think of this as something like a function" when it is really not on a technical level.

<comment><USER10> > The way people like to complain about the bloat and arbitrariness of C++, > but then still quietly wind up using it

Most such people are probably in the same position that I am in, and this is that they're using C++ primarily because they're involved in projects with a C++ legacy codebase. Language choice really isn't something that's up to individual developers.

But for personal projects, I've pretty much abandoned C++, other than when I need something to bootstrap on platforms that I can't make a whole lot of assumptions on, or when I have to operate close to the metal and C for some reason or another doesn't fit the bill.

The thing is that I don't really have a lot of beef with the language features of C++ (the way they're used in some libraries is a different issue). The features it has are generally there for a reason, and have good rationales. And C++ does pretty well in its chosen domain (system programming). It's not perfect (what programming language is?), but hardly terminally flawed, either.

But C++ simply doesn't meet my needs. It has a very strong bias for optimizing CPU cycles, even at the cost of developer cycles, but I'm far more likely to be short on the latter than the former. Those extra few percent of speed that I might gain (or might not -- some C++ features are not all that efficient, after all) are rarely worth adding even a few hours of development time.

</comment></comment><comment><USER11> I like C++ because I only pay for what I use in the language. Very little overhead or additional baggage to slow or weigh things down, unless, I elect to include the extra luggage.

The recent updates - C++11, C++14 and the drafts for C++17 are also very welcome.

When you need performant, deterministic, portable and testable code, you go for C++.

<comment><USER12> The new Rust language by Mozilla makes similar promises,

* only pay for what you use

* memory safety

* testability

* portability

(They even got a standard testing module.)

EDIT: How do you make lists with Hacker News markup?

<comment><USER13> Conceptually they are similar, though it's always important to note that C++ has several man-centuries worth of compiler work. Rust may become stable and efficient enough to replace some existing C++, but at the moment it's most certainly not as mature as the existing C++ ecosystem.

<comment><USER14> Rust uses LLVM, so it benefits from the same optimizer as clang. The front-end is less mature of course, but also Rust is less complex, so may not need man- centuries of work to be parsed properly ;)

Currently Rust doesn't outperform C++ partly because LLVM is optimized for the C subset (can't take advantage of extra aliasing/immutability information Rust has), but given that Apple is now betting on (quite similar) Swift I expect LLVM to rapidly improve in this area.

<comment><USER15> Also remember most of the work on Rust at the moment is focused on stabilizing the language — performance is only really required to be acceptable for now, provided it is possible to improve.

<comment><USER16> Yes, there are several places where, for example, we generate sub-optimal LLVM IR, but time is better spent getting the interfaces and language spec correct for 1.0 than squeezing out performance.

I should mention that that's different than 'who cares about performance, let's toss this in.' Performance aspects are absolutely taken into account when changing the language. But that's different than the implementation itself.

</comment></comment></comment></comment></comment></comment><comment><USER17> The video:

[http://tech.yandex.ru/events/cpp-party/june- msk/talks/1954/](http://tech.yandex.ru/events/cpp-party/june-msk/talks/1954/)

<comment><USER18> I've never seen footage of Meyers before...He kind of reminds me of the Tall Man from the Phantasm movies.

I guess C++ will do that to you. :)

<comment><USER19> I always thing his prog-rock 70s haircut makes him look like one of Robin Hood's merry men or a medieval archer.

Not that this is a bad thing.

</comment></comment></comment><comment><USER20> I think its "excessive" features make it an appealing language so long as I'm not dealing with not-so-well-written and/or expertly "clever" code.

I find straightforward, well-written C++ more comprehensible than Java and even Python (only due to Python's dynamic typing).

Of course, the definition behind straightforward, well-written C++ is very subjective.

</comment><comment><USER21>
      auto y = std::move(x);

Is this good code? How do you review it? What's the type of y? Usually I would ask for at least one type statement per line. For example this seems ok to me, because the type is on the left.

      auto* x = new Foo();

But this doesn't seem ok:

      auto y = std::move(x);

<comment><USER22> Do you allow this to pass code review (ignoring the bad name 'foo')?

      foo (A*x);

'A * x' creates a temporary with no documented type, but the conceit here is that we don't care. They could be ints, floats, matrices - any data type that implements '*'. By and large that is fine.

Here you are just moving x to y. What is the type of y? the same type as x, which supposedly didn't cause you heartache throughout the rest of the function.

Stroustrup gave an interesting talk this year about how, everytime he introduced a new feature, people complained that it was not clear and asked for very verbose syntax. Instead of foo<T>, we get template<typename T> foo<T>(T, well, you get the idea. Now everyone is familar with templates and loath the verboseness.

Back to auto, it allows for 'generic' programming. Do you object to templated functions?

      template<class T>
      T add (T a, T b)
      {
         return a + b;
      }

That seems really clear to me, as is the auto version:

       auto add (auto a, auto b)
       {
          return a + b;
       }

If that is clear, why is

       auto x = a + b;

unclear? I can certainly come up with counterexamples where it isn't clear, but by and large I love auto, and use it all the time. (counterexample: we care about the type of x because we need to cast to a 16-bit int because it is going to be use to communicate with hardware).

<comment><USER23> Problem arises when we find "y" deep in a function, searches for its definition, and encounters "auto y = std::move(x);". Now we have to know the type of x, and if x is defined similarly, up the chain. Not fun.

foo(A * x) doesn't pose similar problem. On the other hand, if I write

        auto bar = foo(A*x);

Then we can have the same problem (esp. if foo is a templated function).

<comment><USER22> To be honest, I just hover my mouse over 'bar' to get the type, and I name 'bar' something more meaningful than bar. "ball_covariance", "movie_recommendations", or whatever that matrix multiplication is computing for me.

I wrung my hands when I started using 'auto' but none of the worries came to pass.

But yes, if the code is unreadable without a type, add a type. No biggie, and no one is suggesting inflexible application of rules (always use 'auto' if it is possible). The same way when I might call

       foo(boo(x));

and it is not clear, I'll explicitly name the output of boo in a temporary variable:

       auto robot_velocity   = boo(x);
       auto robot_covariance = foo(robot_velocity);

And if that ain't enough, then sure, do this:

       robot::vector<float> robot_velocity         = boo(x);
       robot::matrix<float,float> robot_covariance = foo(robot_velocity);

I have to say, I find the last the most unreadable. I almost never care deeply about the type, and care deeply about the meaning.

Interestingly, no one worries about typedef. typedefs wrapped around intricate collections (map of lists of dictionary of arrays) can effectively obscure what the underlying types are just as much as auto. But again, mouse hover, CTRL+I, or whatever your IDE supplies pretty much makes that a non-issue as well.

edit: the problem you are describing is due to too big a function, not 'auto'.

</comment></comment></comment></comment><comment><USER24> Scott did an amazing talk in Moscow two weeks ago. The slides look the same. Here is the link to the video:

[http://tech.yandex.ru/events/cpp-party/june- msk/talks/1954/](http://tech.yandex.ru/events/cpp-party/june-msk/talks/1954/)

</comment><comment><USER25> I've been using C++ for many years, and, sure, it has a ton of various features, not all of which I use all of the time. But, being comfortable with it, I don't find it any harder to program in than Java or Python. I am not sure if it's fair to say that the learning curve is higher to get to that point. But then again, if you do silly things in Java, won't your code be slow as well?

</comment><comment><USER26> The line that stood out to me was the quote from Stepanov, about C++ being the only language in which it was possible to implement the STL. To most people, that would have been a hint that perhaps the design of the STL was flawed...

I think the STL may have been the worst thing to have happened to C++. It could have been so much nicer if something like Qt (the core part) was adopted instead.

<comment><USER19> Which bit about Qt were you hoping was part of the STL? I think the design goals of the STL was to make it portable, something Qt is not, despite being multi-platform. We mustn't forget that C++ is used on very low level devices.

If Qt is anything like wxWidgets, wxWidgets reuses the STL for its container types, basically providing a thin wrapper over the STL (or it can do with a build switch).

I myself find the STL very useful, so I am genuinely interested in which bits of the STL you wish were more Qt-like? Do you mean the GUI bits of it or something?

<comment><USER26> How do you define portable? If you mean the same code compiling and running out-of-the-box on Windows, Mac and Linux then actually my experience with Qt has been very positive in that regard. Those are the only platforms I develop for right now, so I can't ocmment about portability to e.g. iOS or Android (although I believe Qt ports are available for them).

Qt doesn't reuse the STL container types, it provides its own - which I find much more pleasant to work with than their STL counterparts. The STL puts a lot of effort into providing types of flexibility that are irrelevant or useless to me (e.g. allocators) and doesn't provide lots of simple things that I need every day (e.g. an indexOf method for std::vector, a contains method for std::set, or a toUpper/toLower method for std::string).

<comment><USER19> Ah I see what you mean. I should dig out Qt again really - I haven't used it for years. I have managed to make do with wxWidgets.

Regarding iOS and Android, the attempts at getting C++ on them (particularly Android) are brave but I think for normal apps (not OpenGL or games), developers are probably better using Java. Like you, I too am writing for the Big 3 normal desktop OSes, with sporadic Android development and iOS tinkerings, necessitating learning new languages.

</comment></comment></comment></comment><comment><USER27> Why does the title slide show a ship flying a US flag? He obviously has correct pictures, because they are in the later slides...

<comment><USER28> Because it is a pretty picture and the ship with the US flag represents the sailing part in the title of the presentation.

<comment><USER27> What, like C++ comes from the US?

<comment><USER29> It was created here, although it has long since transcended its origins.

</comment></comment></comment></comment><comment><USER30> there are still things I wish would be possible for c++. I'm not a language expert, but I still wish for those things.

* non templated tuples instead of struct: for example, 2 struct types are the same if the data types they hold is the same. Not sure if it's possible for statically typed language.

* tighter STL container integration with the core language syntax

* some way to do modules

* some new thing to make compiling much faster, so to avoid relying on precompiled headers. go and rust are so much faster for this, C++ is not. I still wonder if there could be some gcc or clang extension for this, it would be really appreciated. C++ is awesone to work with, but language implementations suffers from those little details.

<comment> loup-vaillant ML and Haskell are statically typed, and have tuples as you describe them. For instance, the tuple

      (42, "foo", fun x -> x+3)

has type

      int * string * (int -> int)

in ML. It would probably be a serious extension to C++'s type system, though, and for limited benefit: you're asking for yet another way to do Cartesian product. Structs already do that. What's sorely lacking is sum types:

      type 'a option = Some of 'a
                     | None

      type 'a list = Cons of 'a * 'a list
                   | Empty

\---

Integrating the STL at a syntax level gives a special status to the standard library, preventing users from writing effective replacements or analogies. Also, C++ has precious little orthogonality left, let's not destroy it.

\---

What kind of modules are you talking about? C++ has compilation units, classes, and namespaces. What capability do you want that they don't already provide?

\---

Good luck on the fast compilation front. That one will likely require _removing_ things from the language, or making some major compatibility- breaking changes in the syntax (to make it easier and faster to parse), and possibly a rework of the template system. No. Way.

<comment><USER2> If I understand correctly, Go is the "removing things from the language" approach to fixing the fast compilation issue.

<comment><USER31> Yes. Namely templating.

</comment></comment></comment></comment><comment><USER32> Why can't we simply have C + RAII + generics? That would be a baller language.

<comment><USER33> throw in first-order functions and lambdas as well, replace generics with templates the way they are now, and I'm all for that!

</comment></comment><comment><USER34> I really enjoyed this talk. The Q&A session was great as well, Scott is an entertaining story teller.

</comment><comment><USER35> Why do people insist on linking to slideshare? [http://files.meetup.com/1455470/Why%20C%2B%2B%20Sails%20When...](http://files.meetup.com/1455470/Why%20C%2B%2B%20Sails%20When%20the%20Vasa%20Sank.pdf)

<comment><USER36> Thanks. We changed to that from [http://www.slideshare.net/yandex/why-c-sails- when-the-vasa-s...](http://www.slideshare.net/yandex/why-c-sails-when-the- vasa-sank).</comment></comment>


A Cartoon Guide to Flux - <AUTHOR> https://code-cartoons.com/a-cartoon-guide-to-flux-6157355ab207#.5djvnad79 <comment><USER2> Great work.

However: while I feel this cartoon (and other Flux introductions I've seen) capture well the concepts behind Flux, none of them make up for the amount of boilerplate and just over-the-top abstractness (IMO) that goes into actually implementing vanilla Flux.

To me that is the biggest problem to make it easier for people to adopt it, not understanding the concept.

<comment><USER3> This. Once I got my head around flux, it made sense, and I understood why its a good way of designing the data flow inside a web application, but as someone who likes to hack together projects quickly, setting up a flux architecture required a lot of effort on my side, effort I would rather spend building out functionality.

</comment></comment><comment><USER4> This is a real good introduction, but I wouldn't call it a cartoon.

It's a big text with many drawings.

Everytime I read the title I think "wow super easy panels and stuff" but then I see the wall of text.

</comment><comment><USER5> There is a following guide to Redux and its differences to Flux at the end of the article[0]. Great explanation!

[0] [https://code-cartoons.com/a-cartoon-intro-to- redux-3afb77550...](https://code-cartoons.com/a-cartoon-intro-to- redux-3afb775501a6#.vj6gsyqo5)

<comment><USER6> I love that the cartoon he used in that one included Richard Ayoade's "The IT Crowd" character. I read that cartoon's interactions in his voice in my head. Really livened up the presentation. :-)

<comment><USER7> *she

<comment><USER6> Mea culpa. I would edit my comment but it's apparently too late. My apologies to the author.

</comment></comment></comment></comment><comment><USER8> This is awesome. Thanks a lot for these cartoons. Please keep going, you have found a great niche!

</comment><comment><USER9> This is probably the best introduction to Flux I have read. I think people (in general) respond better to visual representations of complex processes- and this visual story nails it.

<comment><USER10> For me, it's not the pictures that convey the message so much as the words. By telling a story with actors who have goals, run into obstacles and find ways to surmount them, the author is using language in a way that it evolved for. I recall reading a study that showed people generally solve logic puzzles better if they are framed as stories within a social context, rather than as abstract questions.

The pictures help illustrate the text, but while the text could (almost) stand alone, the pictures could not.

</comment></comment><comment><USER11> For those who like visual representations, but a bit more technical: [http://danmaz74.me/2015/07/27/flux-architecture-visual- cheat...](http://danmaz74.me/2015/07/27/flux-architecture-visual-cheatsheet/)

</comment><comment><USER12> Neat cartoon. It helped me understand Flux a little bit better.

In step #4 (Once it's done changing state, the store lets its subscribed view controllers know), why can't the child views just subscribe directly to the stores and remove the view controller as a middle man?

</comment><comment><USER13> As a C++ dev, I am suprised that Facebook got credit for a rather standard model view paradigm.

</comment><comment><USER14> I really like the way the author anthropomorphizes the pieces of the flux architecture here. I am in the middle of writing a saltstack tutorial and wonder if I should do the same.

</comment><comment><USER15> Previous discussion: [https://news.ycombinator.com/item?id=10329782](https://news.ycombinator.com/item?id=10329782)

</comment><comment><USER16> Great! I would love to see more of these :-)</comment>


Finally: Facebook Co-Founder Opens the Curtain on Two-Year Old Asana - <AUTHOR> http://techcrunch.com/2011/02/07/finally-facebook-co-founder-opens-the-curtain-on-two-year-old-asana/ <comment><USER2> A very rambly video. That's cool, that's what the journalists are for. Hopefully the article can boil it down for me.

"I won't belabor the features and screen shots here. Hear the pitch from the founders yourself."

...Oh.

The author could have added a lot more value by actually describing the product and its differentiating characteristics.

(edit: Ohhh! Is it uncharitable to assume she couldn't sit through the video either? Maybe she doesn't know yet.)

Instead, the post waxed philosophical, at great length, about a bunch of things tangential and ultimately irrelevant to what the hell it is they've actually made. It's left as an exercise to the reader to slog through a loose, _one hour video_ to figure out why this matters.

I don't mean to be a grumpy gus, but how do people get paid to do such sloppy, self-indulgent work?

Anyone have a tl;dr on the magic and rainbows delivered by Asana? (Hunch/spoiler: Basecamp plus complexity, splitviews, more AJAX, a non-2004 design)

<comment><USER3> I got tired with the video as well. Basically looks pretty complicated. They're thinking they'll replace what people currently use (notepad etc). I don't think so.

<comment><USER4> well id say you were lucky. The video was down when I got there, and I just couldnt sit through the very generic descriptions the article was rambling about.

</comment></comment></comment><comment><USER5> Some random responses:

\- It's Google Wave, this time by ex-Facebookers!

\- Software that messes with my email sucks.

\- It looks complicated.

\- People use text files and whiteboards because you can wipe it and start over and draw and connect stuff and use colors and...

\- If their plan is to build something sexy and get acquired, they'll probably succeed just because of their Facebook past.

\- If their plan is to build a product and live off it, they'll probably pull it off because most other software sucks so bad and is limited.

\- But, based on the video, they won't fundamentally "solve" the problem they're attacking, their software will just be another context (like text files, stickies, emails, wikies, bug tracking, etc.)

\- Investors always ask at the end of your pitch, "How are you different than X?" and "Why will you succeed where X has failed?". I didn't really see the answer in this video.

\- Their virality plan sounds interesting in the context of Enterprise Software.

Hopefully I'm wrong!

<comment><USER6> What virality plan?

<comment><USER5> About 3/4th into the video the guy says they're planning to attack companies from the bottom-up by designing for, allowing and enabling individual employees to start using it by themselves and then share their stuff. I think even if their software fails, if they can come up with a model for this that works, that would be a big deal and enable other startups. I know I'm already thinking about this.

At least, that's what I got from fast-forwarding, it's an hour long presentation.

<comment><USER7> Yammer is commonly cited as an example of a company which does this. As far as I know, there's no public data on how well this particular tactic has worked for them, but that doesn't stop every hacker/product entrepreneur from citing them in pitches to dodge questions about how they are going to recruit and manage an enterprise sales team.

<comment><USER8> This is exactly how Yammer has acquired a large percentage of their customers. It's their competitive advantage, and the reason their sales force doesn't largely subsume the rest of the company. The reason it has worked for them is that they gained a lot of momentum from winning TechCrunch50, which caused companies everywhere to try the product. That's not to say they've avoided having a sales force; it's crucial to the company's success.

<comment><USER5> I guess Yammer is positioned more of a communications tools (blogging/tweeting/messaging) whereas Asana is more of a productivity tool (issue tracking/todos/projects)?

My point is that trying to spread an app aimed at enterprises using a large- scale bottom-up approach seems to be a relatively unexplored approach. I don't know how Yammer is doing, but I have never seen one of my business partners or co-workers use Yammer and thus be exposed to it (=bottom-up).

</comment></comment></comment></comment></comment></comment><comment><USER9> Without looking at the page/video (And after what everyone else has said, _pleeeeze_ don't tell me I have to?! ;), does this sound anything like that Chandler project[1] they wrote about in _Dreaming in Code_ [2]?

[1] <http://chandlerproject.org/> Looks like they finally made it to a version 1.

[2] <http://www.dreamingincode.com/>

<comment><USER10> Yup, it sounds like a hosted, web-based Chandler, although they seem to be moving faster.

</comment></comment><comment><USER11> wow, if they didn't come from such big companies I doubt anyone would pay the slightest attention, the idea alone makes me want to yawn, then I started watching the video and gave up.

How many times have people come up with these super new way to make people collaborate better, only to find that it doesn't work. The last innovation in this field that made any real impact on team collaboration was in the 70's - email.

<comment><USER12> I think it is fair to say that 37s had some impact on this with basecamp, also. Of course, not of the same order of magnitude as email -- but, email took ~20 years to be widely adopted and accepted.

</comment></comment><comment><USER13> This seems almost exactly the same as Redmine so far, but I wasn't able to get through the hour-long rambly and out-of-sync video. Anyone know the differences?

<comment><USER14> It also seems the same as Action Method. I can't see any difference.

</comment></comment><comment><USER15> One of the things that's kind of interesting to consider w.r.t. Facebook vs. Asana (where Asana is assumed to be some kind of unholy amalgamation of a wiki, exchange server, basecamp, MS project, and ... Things, say):

Facebook is kind of an _anti_-productivity application. Taking the Facebook approach to developing a "live in it" productivity application would be something of a disaster. I've been using using Facebook (fairly lightly, I'll admit) for years and still don't understand its structure. E.g. when I'm told "so and so" has made a comment on my wall or replied to a post or liked something -- I'm not sure where those things are to be found.

In the end, most serious people "live" in their email inbox to some extent or other (modulo some kind of discipline for not checking it too often or whatever) and anything that doesn't wrap around email is essentially a waste of time.

A tool that wrapped around email, [shared] calendar, [shared] to-do-list, [specialized reddit-like forums, and a wiki might have a shot (is this what asana is? I have no clue). This seems like something "easy" for Google or Microsoft to do (since they have pretty compelling email infrastructure) and impossible for anyone who isn't able and willing to do something 80%+ as good as gmail to do.

</comment><comment><USER16> Whatever you want to say about the actual app, Luna, their new framework, looks awesome.[1]

The idea is basically that complex web 2.0 design patterns (ajax/comet/memcache/sql optimization/etc.) require a lot of tedious effort to build and maintain, and wouldn't it be cool if you could simply define models, views, and handler functions, and then have the framework take care of everything else.

I honestly think that Luna has the potential to change web development the way Rails did (i.e. by making it an order of magnitude easier), and could transform web apps themselves the way G-mail did (i.e. by emphasizing things like really-real time updating via comet the way G-mail initially introduced the world to Ajax).

I have no idea how Luna is architected, but the concept really resonates with me: javascript-based, web 2.0-abstractions that prevent repetitive things I do in Rails like having to redefine some of the same functions in ruby code and javascript code, and then having to manually keep them in sync.

It's so cool that I think I'm going to try to hack together my own, humble Luna knock-off built on top of Node.js, jQuery, and MongoDB (which uses a javascript query language and JSON-but-better (BSON) data models).

[1]<http://asana.com/luna/>

<comment><USER17> I kind of thought this was the real point of the app. They have an idea for a great not-Ruby framework and investors said "platform plays are non- starters...build an app".

</comment></comment><comment><USER18> Regardless of the actual demo, this is a very important task and I like how Lacy described their aspirations:

 _There's that almost hubristic mission: To fix how people work together and make the global work place a better, more efficient, less frustrating place._

I like that.

</comment><comment><USER19> I had to stop watching the video because the audio was WAY ahead of the video. He started talking about the product and it still showed him talking about speed and structure.

How did that slip through?

</comment><comment><USER20> Wow, just wow... Not only Asana surprised me as aparently an awesome productivity tool that I hope I might use in my start-up really soon, but the bunch of stupid comments here also surprised me.

The video is long, but you can get a good grasp of the product in the first few minutes. The rest of the video is in-depth discussion on how they started thinking of how to do it, how they think they will reach the companies and also inner workings on how the software work.

<comment><USER13> Can you explain why you would use this over, say, Redmine or Basecamp?

</comment></comment><comment><USER21> Looks like they aren't big fans of MVPs.

<comment><USER22> I think that you're confusing a marketing launch with an MVP. They've had businesses using it for months iirc.

<comment><USER21> I don't agree. Spending a year building a technology for an unproven product is not MVP :)

<comment><USER23> This is a totally legitimate point. But it's not that we're not fans of MVP, we're just also fans of vision-directed products like Facebook and Apple.

We have some people who are more MVP-leaning, and others who are "let's build the vision"-leaning. For example, Eric Reis is one of our board observers. But we all believe we should't fall back on dogma rather than using judgment and balance, and we think having a symphony of perspectives on the issue is valuable to deriving that balance.

We're committed to validating our hypotheses via customer adoption and metrics, but we're also committed to investing sufficiently in our framework, platform, and product that we can realize the whole of our ambition. Practically speaking, the user feedback right now is very consistent, and we know where we need to go. We absolutely need search, for example. Adding tons more users or doing more rigorous validation would slow us down from getting there. As the path ahead of us gets less clear, we will scale up our userbase and invest more in metrics and validation.

</comment></comment></comment></comment><comment><USER24> I thought building of the straw man of "people use Notepad" was slightly inaccurate and unnecessary - the software looks very slick on its own.

Yes Basecamp and nameless other pieces of software might already do this, but you could argue this is Bugzilla with a nice flashy Ajax interface on top of it... technically I suppose it is, but the Ajax interface is really functional. I would say as impressive as Gmail was to us when it came out -- keyboard short cuts, drag and drop, intelligent email parsing, tagging/grouping/slicing/dicing.

This is like some marriage between Basecamp, Find Bugz and a Customer Support app all married together.

</comment><comment><USER25> omg. How can the same mind who writes and deliveres such a rambling, unfocused talk also produce a useful task manager?

Atlassian might want to pay attention to this, but I think 37 signals is safe from any real competition.

</comment><comment><USER26> fyi, TechCrunch is working on the sync issues now...

<comment><USER6> Are they also working on a tl;dw?

P.S. _Justin_ Rosenstein? Co-founder of Asana?

<comment><USER23> Yes, that was JR.

For a tl;dw, try [http://www.businessinsider.com/facebook-cofounder-shows- what...](http://www.businessinsider.com/facebook-cofounder-shows-what-hes- been-up-to-with-asana-2011-2)

</comment></comment></comment><comment><USER27> As far as I could bear with the unsynced video, it looks like they are trying to catch customers who are used to use Google Wave for project management/collaboration..

<comment><USER28> >> "it looks like they are trying to catch customers who are used to use Google Wave"

Both of them?

</comment></comment><comment><USER29> I may have missed it, but from the video it is not clear how Asana targets improving productivity for each specific business role. Through my experience the adoption of such tools highly depends on your role in the business org: e.g. Yammer may be very appealing to a marketing/bizdev guy, but not so much to an engineer. Wonder how this more generic approach can work out to fit the need of everyone.

</comment><comment><USER30> I may have missed this answer but how to they actually plan to survive as a company since they are giving the product away? Will you pay them for support or will they start charging for the solutions to the "longer term" problems they describe which salesforce solves today? I could be stupid or naive but why have otherwise smart people invested $9M into this?

<comment><USER31> Free to use in a freeform manner, but companies will pay to set policies etc.

</comment></comment><comment><USER32> Finally, someone made a collaborative, web-based version of Things (fantastic, but solo-only GTD application for Mac).

I'm excited.

</comment><comment><USER33> Looks cool. I just signed up for the beta - hope to get to kick the tires.

</comment><comment><USER34> If Moskovitz has more more than God, why does he need funding?

<comment><USER35> Maybe he doesn't want to cash out of Facebook till an IPO.

</comment></comment><comment><USER36> The headline makes it sound like he had an illegitimate child!

</comment><comment><USER37> This seems like a cross between:

Facebook (layout/feeds) Twitter (async assign) Intentional Software (multiple representations, same model) Google Wave (live updates, email integration)

</comment><comment><USER38> bASecAmp+zeNdesk+wAve = ASANA</comment>


Artificial scarcity won't prop up Bitcoin - <AUTHOR> http://fortune.com/2017/12/21/artificial-scarcity-bitcoin/?utm_source=fortune.com&utm_medium=email&utm_campaign=term-sheet&utm_content=2017122115pm <comment><USER2> Bitcoin itself has scarcity by design, but since it is an open idea backed by nothing it really doesn't have any scarcity. The tons of new altcoins and forks definitely reflects this. Android's fragmentation probably shows us what crypto's future fragmentation will look like.</comment>


Show HN: Radiotron – Turn a radio personality into your marketer - <AUTHOR> http://radiotron.herokuapp.com

<comment><USER2> I got an spam to upvote this. Totally uncool.

<comment><AUTHOR> Your comment is totally unfair. I've never sent you an email. I didn't spam anybody.

<comment><USER3> I think he's referring to the Google Plus message you sent to everybody from the Hacker News circle that was started ages ago.

<comment><AUTHOR> How do you consider that spam? I posted it on my Google+ account, that was the purpose of the HN circle.

Suddenly I come from another planet. I don't get it. I don't consider my twitter timeline to be spam, for example.

I receive a lot emails from HN related stuff. I think that's fair. If I think it isn't useful for me I just delete it, I don't flag anybody we are here to share things.

<comment><USER3> I'm not saying it's spam; just explaining where the comment probably came from.

<comment><AUTHOR> Got it! Thanks.

</comment></comment></comment></comment></comment></comment><comment><USER4> It seems to be a good idea :)</comment>


Where did colleges go wrong? - <AUTHOR> https://www.psychologytoday.com/blog/nation-wimps/201510/where-did-colleges-go-wrong <comment><USER2> So I dunno if you've read Daniel Gilbert's (only) book - but he does kinda say (to paraphrase) that people get tougher when you bang them around.

The only danger is that some people don't. My school got the reputation of the suicide school of the north east because the nature of the school was so darned tough. Couple that with the unbelievably dull and cold winters and you had a situation where they had to put up fences over the bridges (making it even more depressing). Even the weak anti-suicide program they had was laughable.

This sweeping 'coddling' that schools are doing for their students can be put down to a lazy libertarian psychology or looked at for what it really is: that schools would rather have 16,000 wimps than have the stain of a kid take his own life

</comment><comment><USER3> Great article. I really appreciate how both authors point out that it's not just about college, it's about the pressure put (often via the justice system) on parents, it's about play areas where swings are banned, it's about debates disappearing from elementary school, it's about the frivolous law suits.</comment>


Nova: A color scheme for modern web development - <AUTHOR> http://www.trevordmiller.com/nova/ <comment><USER2> Nice, but too bluish. Should have warmer colors for use at night. I've been using Cake [0] as a compromise at night with a Spacegray Mocha UI [1] using the Base16 Mocha palette [2].

[0]: [http://danielpintilei.cf/Cake/](http://danielpintilei.cf/Cake/)

[1]: [https://atom.io/themes/spacegray-mocha- ui](https://atom.io/themes/spacegray-mocha-ui)

[2]: [http://chriskempson.github.io/base16/#mocha](http://chriskempson.github.io/base16/#mocha)</comment>


NYC 'Consultants' getting $722M from doomed project - <AUTHOR> http://www.nydailynews.com/news/2010/03/26/2010-03-26_city_pours_722m_down_consulting_contracts_black_hole.html <comment><USER2> _The 40 highest-paid people on the project bill taxpayers at least $500,000 a year. These enormous salaries are coming out of a $139 million extension to the CityTime contract that began July 1 and runs to Sept. 30._

...

 _Take, for example, Brian Fallon, a CityTime "project manager." The Science Applications International Corp., which employs Fallon and supplies the consultants, charged $653,554 for his services in 2009._

Whoah. There is a big difference between a consulting company's bill rate and a consultant's take-home pay. I take home nothing resembling my bill rate.

<comment><USER3> Agreed. I would be _very_ happy if my "salary" and my billing rate were the same. Still, based on a 2000 hour year, $500K is a billing rate of $250/hr. That's not unusual for high-end IT consultants, but at that rate the client should be getting what they pay for, or terminating the agreement. The problem with this kind of story is that it's hard to know whether the issues are with the implementer or the client -- are the delays/overruns due to changing requirements, or poor delivery?

<comment><USER2> There's zero question that NYC is getting a firm rogering from SAIC.

But I would be absolutely amazed if the SAIC consultants staffing this project were beneficiaries of anything but a stable, 85th percentile salary.

It seems borderline dangerous to call out the schmucks actually doing the work for what SAIC is charging for them. That's going to be on their "Google resume" forever. The newspaper better be right.

</comment></comment></comment><comment><USER4> Previously: <http://news.ycombinator.com/item?id=1221068>

</comment><comment><USER5> No incentive to performs equal run-away budgets!

I wonder how many corporations can run up bills like that.

I am glad that I am not a taxpayer in New York City or an investor in one of those corporation. Or maybe I should be worried about government officials?

</comment><comment><USER6> "biometric scanners and automatic timeclocks on all personal computers" is what they are building. I work in a strip club that has this.

</comment><comment><USER7> It doesn't add up. 230 consultants, average pay $400,000 each.. that makes "only" $90 million.

<comment><USER2> In one year.</comment></comment>


Stack Overflow Developer Survey 2015: The Results - <AUTHOR> http://blog.stackoverflow.com/2015/04/stack-overflow-developer-survey-2015-the-results/

<comment><USER2> Yea, the stats say that women are about 5% of the work force. When I go to conferences, there are maybe 10% women who attend. When you then take out all the project managers, graphic artists and business analysts, and just count those who are developers, it's probably around 5%. I've been a developer for about 20 years, and I can count on one hand the number of really good female developers I have known. I love what I do, and I don't think my gender plays a role in the slightest. Women are about the same as men when it comes to logic and math skills. So why are so few women entering this field? It's a great career. So ladies, come on in, the water's fine!

</comment><comment><USER3> "Your Stack Overflow rep is a strong indicator of how much money you make"—Joel Spolsky</comment>


Parking (Tickets) in Boston - <AUTHOR> https://www.blurpr.com/blog/?p=89

<comment><USER3> You can pretty much just replace all instances of "Boston" with "Chicago" for that entire article (except the 2 hour grace period thing).

When I lived in Chicago and had a truck (tiny little Chevy S10), I came to know first hand how aggravating the street cleaning schedule was and built up a collection of tickets to prove it. My truck also got broken into despite it being completely empty and having a bench seat clearly showing anyone who walked by it was empty.

I'll also never forget coming home around 7pm on a weekday night and literally driving all over the neighborhood for 2 hours waiting for a spot to open up.

I was so happy when I got rid of that thing.

<comment><USER4> I'm reminded of the joke from Futurama - paraphrased, nobody drives in New York, too many cars!

<comment><USER5> As far as I know, that's originally from Yogi Berra. From wikipedia: "On why he no longer went to Ruggeri's, a St. Louis restaurant: 'Nobody goes there anymore. It's too crowded.'". (<http://en.wikipedia.org/wiki/Yogi_Berra>)

</comment></comment></comment><comment><USER6> One of the biggest tricks here is the fact that every town (which you may drive for 10 minutes and pass through 10 of within a few miles) has completely different parking laws.

Brookline you can't park overnight on the street- period. Boston you can park for free overnight at a metered spot as long as you get in it after 6pm (8pm some spots). Some areas an unmarked spot is open for parking (as long as no sign speaks otherwise), other areas you'll likely get ticketed or towed. In Somerville you can park a motorcycle in any 'permit only' spot and its ok (I called 311 and asked), and Cambridge it will land you a $30 ticket to do the same- god knows about Boston.

Street cleaning is a joke and its really just a way to annoy people and raise revenue (which I understand the city needs, but if everyone uses the services- everyone should pay for them. Now if they money goes to only maintaining the roads, that is more understandable).

I agree some some comments that you don't need a car if you live in Boston. Living in Back Bay for 2 years I had no need of a car, but now that I'm in Somerville it is nice to have one.

The rates are a little bit much for some offenses.

</comment><comment><USER7> In boston, parking tickets are a form of tax.

It's quite normal to see delivery trucks (FedEx, UPS) with 20 tickets on their windshield. It's just a cost of doing business.

And it's not like the violations are rational. The restrictions are designed to seem reasonable, but really just to snag as many people as possible.

For example there is no overnight parking on the street - at all - <USER2> brookline (suburb of boston). And of course the fees are at least 3 times as much as any normal city charges.

I'm so glad I don't live there anymore.

In Pittsburg the law is you can get give someone a parking ticket for street cleaning, unless the street was actually cleaned, AND the car was in the way (so move it before or after and you are OK). Not so in boston - they watch the clock and as soon as the time starts (to the second) they give everyone a ticket. But of course there is no budget for an actual street cleaning truck.</comment>


Help Choose a new name for the HTML5Press WordPress theme - <AUTHOR> http://www.longren.org/html5press-needs-a-new-name/

<comment><AUTHOR> Or offer alternative names in the comments here please.</comment>


The War in Iraq is Over - <AUTHOR> http://www.nytimes.com/2011/12/16/world/middleeast/end-for-us-begins-period-of-uncertainty-for-iraqis.html?_r=1&hp

<comment><AUTHOR> Here's a better article: [http://www.nytimes.com/2011/12/16/world/middleeast/panetta-i...](http://www.nytimes.com/2011/12/16/world/middleeast/panetta- in-baghdad-for-iraq-military-handover-ceremony.html?hp)</comment>


Ask HN: Is 311 Karma Points good? - <AUTHOR> Really. I don't know. I like the content and occasionally comment. Have not tried to increase it. Should I? How? Why? <comment><USER2> Never liked the idea of karma myself - most people _do_ care about it (particularly in HN or reddit where low karma posts are hidden) so they will either not speak their mind or parrot some popular opinion to reap rewards. Combine that with a threading model that puts top posts at the top and you pretty much only see popular/echo chamber posts.

HN is a bit better because sometimes you get the rare, unpopular opinion that is well-researched and explained so it makes it to the top.

IMO the best format for discourse is a traditional imageboard/forum where all posts "weigh" the same. It has negatives (nested quotes, thread derailment that you can't hide) but I prefer it to the HN/reddit model.

</comment><comment><USER3> The only difference for me is that at some point, I got the ability to downvote comments. I'd like to think that gives me a tool to shape discourse, but honestly, submitting topics and making comments is a more effective way to do that in my opinion.

</comment><comment><USER4> Karma is meaningless.

<comment><USER5> I have 1717 think about how many more raises I could have gotten had I spent more time on more productive activities.

</comment></comment><comment><USER6> I bet a lot of people are self-censoring to avoid being downvoted... Unfortunately this is probably leaving out a lot of potentially great "against the grain" comments and ideas... Not to mention the herd mentality, once someone is downvoted is more likely to get downvoted again... Also I had a case of a bully who would go every day and downvote all my postings on purpose...

</comment><comment><USER7> Why are you even thinking about it? Do you want to have the ability to downvote? In that case you should probably have a higher karma. Instead try to participate in useful conversations so that you may learn something from it. Karma just for the sake of it is really meaningless.

</comment><comment><USER8> I wish I could disable participation, or at least disable all indications of its existence (number around your name, downvote indication, etc.)

</comment><comment><USER9> Karma is part of the echo-chamber strategy, a way to enforce public opinion over wider perspectives that might rock the boat. Funny thing is that it actually kind-of works the other way, since any post/comment that gets a lot of down-votes is probably on to something fundamental. You are not a number, don't let them trick you into behaving like one.</comment>


Split Brain Does Not Lead to Split Consciousness - <AUTHOR> http://neurosciencenews.com/split-brain-consciousness-6011/ <comment><USER2> A few years before he died, I heard Kim Peek speak at an event. He was a savant who retained 98% of everything he read. He would memorize phone books simply by reading them once. When he read, his left eye would read the left page while his right eye would read the right page at the same time. He could tell anyone the sports scores listed in the newspaper on the day they were born. He was also severely socially impaired and couldn't carry on a conversation.

His father described his condition as being due to having his left and right hemisphere fused together where as most people's are separate with communication channels between them.

<comment><USER3> My problem with that sort of demonstration of amazing memory powers is that I have no way to check the sports scores on the day I was born as quickly as the person who says they're retrieving them from memory does so.

Even if I could just google them (there might be some online sports results archive or something- it would still not mean much unless I could find an identical copy of the exact listing the mnemonist memorised- like, a archived copy of the same newspaper they read on my birthday.

So, I don't know- is this really a thing that happens even under at least semi-rigorous testing? Or is it more like a parlour trick that's only good for entertainment value?

<comment><USER4> The outcomes of historical, national, sporting events are not subjective. It would be easy to check and verify even if you couldn't do it that second you could still after the fact check and call out anyone pretending. With or without the exact identical text the "memorizer" used.

<comment><USER3> OK, so how can you ever verify with any degree of certainty where and when someone acquired a memory? If I can just look up those details somewhere else, at my convenience, then how can you ever be sure I didn't?

<comment><USER5> By asking for details from a set of arbitrary, random dates, such as people's birthdays. A set of dates the questionee could have no way of knowing. In order for him to know the answer to trivia on multiple arbitrary dates off the cuff would require him to, you know, have memorized the trivia for all the dates -- which kind of proves the point.

<comment><USER3> Unfortunately, just having someone tell you something doesn't prove anything, unless you have a way to check that the fact is true- and for most of Kim Peek's life this was not the case.

For instance- his article on wikipedia mentions that he " _enjoyed approaching strangers and showing them his talent for calendar calculations by telling them on which day of the week they were born and what news items were on the front page of major newspapers_ ".

I assume he did that throughout his adult life, so when he was in his 30s an 40's, in the 1980's and 1990's, how would the person he approached this way check the news that Peek told them were on the front page of X newspaper? They couldn't very well google it on their iPhone back then.

Besides, this is not very clear in his wikipedia entry, but it seems to me like he made a living out of his skills, so you know, it was at least partly entertainment (without trivialising, or in any way shape or form ignoring, the fact that the guy had obvious disabilities).

So I'm saying, when a guy tells you he can recall for you a bunch of facts you dont' really remember yourself and you can't very easily verify, and by the way you're welcome to a donation, you can take what he says with a big pinch of salt.

<comment><USER6> > but it seems to me like he made a living out of his skills

People are downvoting you, maybe for manner in which you're expressing skepticism, but a lot of the issues you bring up are a constant concern in psychology. For example,

1\. Clever hans, a horse that was supposed to answer people's questions, turned out to just be responding to auditory/visual cues (seeing people gasp).

2\. In the book, Mind of a Mnemonist, the author documents a guy who uses a memory technique to remember a lot of information. However, the guy also plays up the idea of his having synesthesia (crossing of perceptual modalities, like "hearing" visual things, etc..). The author is concerned that some of the things the guy says are motivated by his desire to make a living as a performer.

3\. A lot of cases, like Kim Peek, raise the same concerns about the person being made larger than life, for whatever reason. Or the person having learned (whether intentional or not) some very specific skill for remember certain types of information. With practice, a person can learn to memorize phonebooks pretty quickly.

Often it's clear that people are exhibiting exceptional memory, but teasing apart the exceptional bits among media hype, people having a lot of unaccounted study time, and past accounts gets pretty tricky.

<comment><USER3> How can you tell I'm being downvoted? My posts aren't greying-out yet.

I'm a bit surprised at the downvotes. I've said things I thought would get downvoted in the past and in the end it turned out I got more ups than downs. But today, in this thread, they're pouring down like rain and it's very unusual.

So, quite aside from the fact I'm losing my high score (hey, I like a game like the next person) I guess I've said a few things that people strongly disagree with. I wonder if it's what you say- the way I express my skepticism, but I'm not commenting in a different style today than in other days. If anything, I was even a bit more guarded today than usual, because there's the matter of disability and all.

I think what's up is that people know Kim Peek as the Rain Man, from the movie, a guy who had a severe disability but nevertheless had an amazing talent, and they're upset at me for saying that maybe he was faking it after all (edit: faking the talent, not the disability; and I'm not even saying he was faking it, just that, like you say maybe he was made larger than life).

The way I read them, a few of the comments in this thread are basically saying that, cooks and entertainers aside, Kim Peek was the real deal. Well, I don't know the guy. I googled him, I looked him up on wikipedia. There are some claims of extraordinary ability. But, if he only did the same things that entertainers do, then his skills were not that extraordinary, only unusual. The fact that he had a mental disability makes them more unusual, but still not so far outside ordinary human potential that he should really get his head scanned by NASA.

So I dont' think I'm being unreasonable to remain skeptical, and demand evidence. I think what's unreasonable is that most other commenters in this thread are simply demanding that I agree with them, just because they know and everyone they know knows that what they say is the way they say it is. Well- sometimes you just have to stop and think _how_ you know what you know.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> Interestingly this work contradicts not just previous theory, but also previous experimental result. I would be interested to see if they have a critique for why the previous runs of the experiment provided a different experimental result.

<comment><USER8> They discuss a few possibilities. The first is cross-cueing, which they describe as " ... behavioural tricks, such as touching the left hand with the right hand" [1]. However, they also discuss a number of reasons why they think cross-cueing did not play a role. The second (and imho quite interesting) explanation is that the split-brain phenomenon could be transient: their subjects have had between 10 and 20 years to recover since their callosectomy. It may be that the brain learns to use other pathways to communicate inter- hemispherically.

1\. [https://doi.org/10.1093/brain/aww358](https://doi.org/10.1093/brain/aww358)

<comment><USER9> I think your second explanation is probably right. We keep discovering that brains are more adaptable than we previously thought. I wouldn't be surprised if their brains had learned to 'route around' the damage in some way over the years.

</comment></comment></comment><comment><USER10> If you just learned that "Split Brain" was thing, I recommend watching this video by GPGrey, one of the best educational channels on YouTube:

[https://www.youtube.com/watch?v=wfYbgdo8e-8](https://www.youtube.com/watch?v=wfYbgdo8e-8)

<comment><USER11> This is giving me the heebies _and_ the jeebies.

</comment></comment><comment><USER12> This is an interesting experiment, and it may show that "split consciousness" is a mistake, but I don't think "unified consciousness" is the correct conclusion from that. I'd say instead that more likely this is just an edge case where the "consciousness" abstraction breaks down; it's an idea based on people who haven't had their corpus callosum severed, there's not necessarily any reason to expect that it continues to make sense in more general cases. Counting "How many conscious observers are there?" is probably just the wrong question.

<comment><USER13> From TFA: According to Pinto, the results present clear evidence for unity of consciousness in split-brain patients.

I only read it as unified awareness, not consciousness. I recall reading that some split people were asked questions about their aspirations and got different answers depending which side of the brain they asked (you can ask by restricting input to half the visual field, or one ear or whatever, the response can be in writing). Having different goals in life seems more like consciousness than being aware of the location of some stimulus.

</comment></comment><comment><USER14> > virtually eliminates all communication between the cerebral hemispheres, > thereby resulting in a 'split brain'

> their cerebral hemispheres can hardly communicate with each other and do so > at perhaps 1 bit per second

"Virtually all"? "Perhaps 1 bit per second"? Is it definitive that the corpus callosum accounts for exactly 100% of hemisphere communication? I am too skeptical that the brain could be that simple.

> The [previously] established view of split-brain patients implies that > physical connections transmitting massive amounts of information are > indispensable for unified consciousness

> although the two hemispheres are completely insulated from each other, the > brain as a whole is still able to produce only one conscious agent

Seems like a contradiction of the assumption that they are "completely insulated". Overall I'm pretty skeptical of the notion that the two sides have "virtually no" connectivity and are "completely insulated" from each other, because of a mere corpus collosotomy. Does anyone else find this to be strange?

Edit: According to another comment "anterior commissure and posterior commissure" regions can still communicate some signal.

</comment><comment><USER15> Last year I watched Dr. Gazzaniga's 2009 Scotland lecture series on Youtube. I noticed an inconsistency that bothered me enough to email him, but never got a reply.

In his third Edinburgh video lecture[1], he shows two videos featuring patient J.W.

In the second video, the test flashes RED and BANANA to his left and right hemispheres, respectively, and J.W. is asked to draw what he sees. He then proceeds to pick up the red pen with his left hand. But, the hand's controlling hemisphere only saw BANANA. How did it decide to pick up the red pen?

Similarly, in the first video, the words MUSIC (L) and BELL (R) are flashed. He's asked to point to a picture of what he saw and he uses his right hand to point to BELL, but its controlling hemisphere only saw MUSIC.

[1] [https://youtu.be/mJKloz2vwlc?t=1113](https://youtu.be/mJKloz2vwlc?t=1113)

<comment><USER16> Even the earliest teats showed there was still some communication between the two halves,the tactile test from the original paper showed that the subject could not describe an object that only the left hand could feel, but they could point it out.

<comment><USER15> Right, in callosotomy patients there's some level of information exchange via secondary pathways. In particular, one of Gazzaniga's experiments showed transfer of emotions.

</comment></comment></comment><comment><USER17> My knowledge of neurobiology is weak.

Having received a full callosotomy, how are the hemispheres able to communicate even at 1 bit / s?

Secondly, how is that estimate generated?

<comment><USER18> The August, 1967 article in Scientific American on the split brain has an interesting comment about communication between the two parts of the brain: if one side of the brain saw a drawing (by showing the picture to only one eye), the person might not be able to describe it because voice functions were handled on the other side of the brain, but if the drawing was somehow embarrassing the facial flushing (from seeing a sexy picture on one side of the brain) could be detected by the voice side and the subject would be able to vocalize that he or she was seeing a racy picture.

Note that my recollection of this 1967 article on the split brain is a bit sketchy, I read this article in a library (in 1967) and it is unfortunately now available only for purchase on the Scientific American website.

<comment><USER19> yes, this was described in Roger Penrose's The Emperor's New Mind; different pictures shown to the left or right eye and getting different answers

</comment></comment></comment><comment><USER20> How does a brain split operation work exactly? Do they put a barrier between the two halves? Otherwise, I would expect that signals could still propagate: cut two nerves, then push them together, and I can imagine that a signal can still pass through; if not always, then in a percentage of cases.

<comment><USER21> > cut two nerves, then push them together, and I can imagine that a signal can > still pass through

If only....

Getting neurons to regrow or fuse, particularly in the central nervous system, is one of the biggest open challenges in neuroscience. If it were actually that easy, spinal cord injuries would be a thing of the past.

</comment></comment><comment><USER22> Not a neuroscientist here, so this is just layman's rambling thoughts, but I wonder if that much direct communication between the brain hemispheres were actually needed to appear as a single consciousness:

As I understand it, a large part of how the brain develops is "learning" both about the environment and about the intricacies of one's own body.

There is no engineer who calibrates the brain to work with the particular weight distribution of one's arms or the particular optical properties of one's eyes. Instead, the brain "self-calibrates" through a sort of trial-and- error process (and some deep learning magic I imagine).

The two brain hemispheres are still sitting in the same skull for the entirety of one's lifetime - so even if they were not connected at all, they are still subject to the same environmental stimuli and might come to very similar "calibrations". So the appearance of a unified consciousness might come from the two hemispheres "thinking the same way", while also being subjected to the same stimuli.

<comment> alok-g How would you apply the same reasoning to conjoined twins?

</comment></comment><comment><USER23> So let's say there's some technology for creating a clone of you, complete with memories, an exact copy. You undergo the procedure and the clone is staring at flowers while you are looking at your shoes. Two questions:

1\. What do you see when you swap your brain with the clone?

2\. What do you see when you swap _half_ your brain with the clone?

My take is if we assume the brain is the seat of consciousness, the answer to 1 is flowers. But the answer to 2 is actually unknowable without experiencing it yourself.

So, while it is interesting to discover that disconnected hemispheres can somehow learn to operate independently, we should be careful to note the empirical limitations of determining "unified consciousness". We simply don't know what the experience of consciousness is like in split brain patients, anymore than we'd know it in a clone with half your brain transplanted. We only know that they profess to feel no difference -- as undoubtably you and your clone would as well post-transplant.

</comment><comment><USER24> Google cached version, while the site recovers: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://neurosciencenews.com/split- brain-consciousness-6011/)

</comment><comment><USER25> Is it possible there's some wireless communication going on via electric fields that we're not yet aware of?

Quick google search suggests this is a thing: [https://www.sciencedaily.com/releases/2011/02/110202132617.h...](https://www.sciencedaily.com/releases/2011/02/110202132617.htm)

Could it be happening on a large enough scale to allow communication between hemispheres though? I'm not suggesting this would take over for the corpus callosum, but rather that it may be happening for everyone, so the true amount of transfer even after the corpus callosotomy is higher than expected?

<comment><USER26> > The green plasma... is a neurobinder! It allows instantaneous melding of > connected minds over any distance.

</comment></comment><comment><USER27> Does every animal/insect have two brain hemispheres? For example, what about a spider, or an octopus?

<comment><USER28> Spiders have donut shaped brains. Source: owned a tarantula. Some animals jon't have bilaterally symmetric brains on account of having brains, like jelly fish.

<comment><USER29> Owned.. and dissected?

<comment><USER28> Nah, I just became fascinated with them while I had one. Not that I'm above dissection, but when he died, it smelled pretty bad. I wasn't about to keep that thing lying around.

</comment></comment></comment></comment><comment><USER30> I'm not sure that this proves that there's a single consciousness. There may be a second consciousness that is receiving some information about observations from the other hemisphere.

<comment><USER31> I can't prove you don't have two consciousnesses either, or maybe we all do and just don't notice.

<comment><USER32> You can't even prove GP has one!

</comment></comment></comment><comment><USER33> Note though that this is n=2, and I'd assume the two subjects were not sampled even remotely randomly from the set of split-brain patients...

<comment><USER29> Well, no, but with things like this you sort of tend to assume that the basic structure of everyone's brain is pretty much the same, so it only takes n=1 to stuff that you can pretty safely extrapolate to everyone.

It would be a different matter if we expected an array of different brain mechanisms at the information-pathway level. Compare to how we do probably expect variation at, like, reasoning and emotional levels, maybe.

</comment></comment><comment><USER34> A study of consciousness which doesn't include psychedelics is very limited.

Studying consciousness by looking at the brain is like trying to figure out where a car goes by studying the mechanics of the car.

Yes, the car moves because the engine transmits power to the wheels and makes them spin, ..., but that's just 50% of the answer.

The other (true) reason it moves is because the human driver wants to get from A to B.

So just ask the driver !

Of course that would require accommodating the idea that there _is_ a driver - something _outside_ the brain which is part of consciousness, which quickly leads to the study of what exactly is _outside_ and _inside_ and so on.

Lots of answers and even more useful questions can be extracted from the study of psychedelics.

Luckily I've seen that the ice has started to melt and more and more studies are underway, so we're going to see major breakthroughs in the field this century.

</comment><comment><USER35> Next question: is it possible to split consciousness at all?

<comment><USER36> Fabulous question. I believe not. The only mammalian model that makes sense to me requires there to be only ONE point of central executive in the brain. If more than one _could_ arise, you'd have chaos. All coordination of bilateral activity would be impossible, much less the initiation of action or a chain of perceptual focus or cognitive reasoning.

With all animals above worms having bilateral symmetry, the introduction of one side becoming dominant must have ocurred very early in evolution. Thus ALL species with any cortex at all must have circuitry that prevents the bigger parts the nervous system from becoming fully decoupled and 'going' rogue.

</comment></comment><comment><USER37> I thought this was an Jepsen-style article on some distributed systems at first.

<comment><USER38> Who says it isn't? ;)

<comment><USER39> I don't think the IRB would take too kindly to running Jepsen-style tests on human brains.

</comment></comment></comment><comment><USER40> This seems weird. Assuming each hemisphere only receives information from one half of the field of view and only controls one half of the body and both halves are truly separated, than there is no [obvious] way both halves can act in a synchronized manner. At least one of the three assumption has to be false.

<comment><USER41> _and both halves are truly separated_

They aren't, they are just mostly separated</comment></comment>


Programmers: Before you turn 40, get a plan B (2009) - <AUTHOR> https://improvingsoftware.com/2009/05/19/programmers-before-you-turn-40-get-a-plan-b/ <comment><USER2> The real problem is that as an "older" programmer (50) I am probably the best I have been, but I no longer believe in the missions of pretty much any company, I'm not interested in the silly ways the companies try to build their culture with toys and trinkets and blankets and rituals and sparkles and phony constructs designed to create workplace as a funpark. I am diplomatic, so I would of course keep all this a secret - I know how to be a good employee.

I'm very happy to do a great job, and easy to get along with and productive and a team player, but I'd be happy to program in a grey box on a plain chair and table.

The employment deal for me is this:

I program, do a great and professional job

You give me money and/or equity

I do appropriate hours and give me this time I need to leave early for example to pick up the kids

I get you a great result

I set in a chair and table at an office or ideally I work from home (travel is dead time)

But that's not the deal on offer.

For me, the primary satisfaction comes from working hard and getting a result that advances the goals of the business.

And BTW I am _very_ much on the cutting edge technically, but I probably wouldn't get through any recruiting process for god know what reason why.

<comment><USER3> "I do appropriate hours and give me this time I need to leave early for example to pick up the kids"

I think that's the problem. Young, fresh, idealistic programmers straight out of college are willing to give their whole body, life, and soul to a job; if a recruiter was charismatic enough (and if it wasn't for student loans), he or she could practically convince them to pay _the company_ for the _privilege_ of giving them programming to do. They don't know any better.

You, on the other hand, are old and tired enough - and more importantly, _have enough other priorities in your life_ \- that you simply can't be convinced to work 12 hours a day or make your free-time hobby _also_ be coding for your employer.

<comment><USER2> I'm no longer interested in trying argue that experience results in higher productivity - if you have to say that then you're already in a situation where they believe young is better.

That's the point, and that's why I'm actively working to make money in other ways and not be a programmer because I'm not employable. Well perhaps employable now, but at 60?

</comment></comment></comment><comment><USER4> This article seems a bit backward. The low number of people who stay in programming is not entirely the result of people being _forced_ out. A significant number of programmers never meant to stay programmers forever anyway. Even early in my career, long ago, it was easy to spot people whose long term plan was clearly to move into the executive suite, or VC, or HR, or sales/marketing. Saying "I used to be a programmer myself" to them was a way to establish trust/credibility from those other positions, so they were in it just long enough for it not to be a total lie.

Those people already had a plan B. They weren't victims who had to scramble for alternatives, but they still contributed to those statistics. As far as I can tell, the vast majority of people who _want_ to stay programmers are able to do so as long as they keep their skills updated.

<comment><USER5> I hit 40 this year and when I was in college it was full of people going into programming due to the pay. A lot of the people that did it for pay alone did not last long. Programming is very frustrating if it does not click and you enjoy the challenge. Now, granted the best system admins, system engineers and support people I know used to program full time until it was too much. They could carry that knowledge to related IT jobs and be very successful.

</comment></comment><comment><USER6> I'm a little bit past 40 now. I saw the writing on the wall about ten years ago (hey, why is there like 1 programmer older than 50 in my company's engineering team of 500?) and started thinking about optimizing my career for this. I was the lead engineer for a rising product. Based on this thinking I consistently made choices that led to more engineering management rather than individual contribution work.

Don't get me wrong, I'm still deeply technical, but I spend at least 40-50% of my time dealing with human problems, getting them to work together, resolve conflicts etc etc.

Ten years later, the results are:

\- Financially: Check. I'm okay. I can kinda stop working now, if I want to. If I hadn't done that thinking a decade ago, I would not be in this financially secure position.

\- Fun-wise: Meh. It was a lot more fun to build stuff than to get people to build stuff.

To be honest, I'm not sure what's the right path here.

<comment><USER7> There are a lot of us with similar experiences. I also made the switch from programming to (in my case) product/project management while in my late 20s/early 30s. Saw the same writing on the wall. I remember the exact moment when I decided: I looked across a sea of cubicles with developers ranging from 20 to 60 years old and realized we all make about the same and have pretty much the same job titles.

It's a shame. I love programming and am good at it. I do it at home as a hobby because it's awesome. But there is no career path up. My decade+ of experience is not going to earn me much more than the 20 year old bundle of raw energy sitting in the next cube over, besides the word "senior" in my title.

<comment><USER8> There is a life beyond corporate

</comment></comment></comment><comment><USER9> I'm over that hill and I also got on the consulting train a few years back. It's funny because I sometimes get recruiters calling me with good jobs (high salary, unlimited vacation, interesting projects) and I respond with, "Sure, but you'll have to double the pay and give me six months off per year to match what I have right now."

Never looking back.

<comment><USER3> >"interesting projects"

Certain job categories seem to be really unusually exploitable in this way. Where people are working just as hard or harder as in other fields, but instead of compensating this with actual pay or job benefits, it is compensated with having the work be _interesting_ , something the worker can be truly _passionate_ about. People do work for much less than they're really worth because they're deriving some personal value simply from _doing the work itself_.

</comment></comment><comment><USER10> I get that the author is being pragmatic, but that people even have to put up with this level of ageism is ridiculous.

> Considerable accusatory ink has been dedicated to the age discrimination > problem in technology, but I suspect it may be an inevitable consequence of > the rapid pace of change that defines this field.

Interesting that this doesn't apply to medicine, education, mechanical or electrical engineering, all of which change very quickly and have a broad knowledge set, but somehow it applies to computer programming.

<comment><USER5> Programming has a very low barrier to entry compared to those other careers. If you are bright enough and determined then you do not need a formal education to do well in SW development.

</comment></comment><comment><USER11> This is scary. I'm 30, and I can't imagine doing anything else with my life. I have no formal CS education, but coding is huge part of my identity. I would do it even if it meant being poor. Of the developers that I know that are older and went into management, most of them did so because they had children and family and didn't have the same level of free time to keep up with new tech or were just burnt out.

<comment><USER12> Honestly I think programmers like you will be ok. If coding is your primary creative outlet, you're properly motivated to continue getting better and should continue to stay competitive.

I'd spend some time learning technologies you think will be big a few years out. The industry moves on to new best practices pretty slowly (unless javascript) so you're still way ahead of the curve by learning, say, go or functional programming.

</comment></comment><comment><USER13> HA! Joke's on you, programming _was_ my plan B, when I went back to school, when I was already past 30.

Don't you feel like a chump now, as an adult with your mountain of student loan debt, and nothing to show for your efforts but half-finished projects, and job at an Amazon warehouse that pays more than the only professional programming job you ever had?

Sucker.

I wonder if I'm already too old to sell myself as a blood-thrall to Peter Thiel?

Eh, probably.

<comment><USER14> You are not alone. I got my first 'real' job programming in my late 30s. Doing okay, but not like I thought I would be after 4 years.

</comment></comment><comment><USER15> > The unfortunate truth is that unlike other forms of discrimination that are > more arbitrary and capricious, age discrimination can often be a result of > objective and sound business justifications.

The entire ridiculous immoral premise of this article is built on this idea that age discrimination is somehow objective or best for the company. It is not--hiring a new grad for their stupid excitement over the canny cynicism of an old hand is the definition of penny-wise and pound-foolish. Although given the incentive structures to executives, pound-foolishness has never really hurt anyone "important" in the business world.

What should programmers do before they turn 40? Advocate for less ageism, instead of writing blog posts that try to pull the rug out from under aging programmers by positing ageism as a fact of nature.

</comment><comment><USER16> I understand the sentiment but I would also like to offer my own anecdotal "youngin' webdev" experience:

I have worked with a ton of great people who program that are over 40, and having experience isn't just what you are familiar with as far as tech stacks.

Employers are just looking for a value add when hiring - and I believe that devs in their 40s bring that value just the same as devs in their 20s.

<comment><USER17> Problem is that a 40yo dev needs 2x the pay of a 20yo but doesn't bring 2x the value.

Unless you're highly specialized then you run out of options as you become an older programmer. The market size of "specialized programmers" is not even close enough to being the size needed to absorb programmers as they age.

I see things a lot differently now that I did 10 or 15 years ago. I no longer believe that a decade of experience in programming carries much value (as seen by an employer).

The aha moment for me was when I worked with a 26 yo trombone major who took a 3 month coding bootcamp who was showing nearly the same level of programming proficiency as me. And I wasn't a schmuck programmer.

<comment><USER18> > The aha moment for me was when I worked with a 26 yo trombone major who took > a 3 month coding bootcamp who was showing nearly the same level of > programming proficiency as me. And I wasn't a schmuck programmer.

Programming proficiency and programming/development/software knowledge are two different things. He may have _proficiency_, but does he have real world experience of working in a dev team? Handling nasty bugs? Working on legacy code bases? And so on..

People may be able to get up to speed quickly with all the resources at their fingertips these days (which is great), but if you only had a team of those people... Well, I wouldn't bet a business on it.

Full disclosure, we just hired a 40+ dev and could not be happier with the experience he brings to the team. Yes, we could have saved $20K+ and got someone younger in their career, but he's already shown his value in getting up to speed quickly and tackling large tasks/issues right away.

There will always be shops on both sides of the hiring fence (I've seen both), I call them farm teams vs the big leagues.

<comment><USER17> I'm really not trying to be dismissive here...but I think you're pointing out exceptions and not the rule. The vast majority of software jobs don't need 20 years of experience. 5-10 years is plenty.

> Programming proficiency and programming/development/software knowledge are > two different things. He may have _proficiency_, but does he have real world > experience of working in a dev team? Handling nasty bugs? Working on legacy > code bases? And so on..

He had everything needed to do the job.

> I call them farm teams vs the big leagues.

This was at a startup in SF acquired by a giant software firm.

</comment></comment></comment></comment><comment><USER19> I think most companies that are trying to tackle the aging problem in tech don't quite understand the real underlying issue. They reward people who climb management ladder more than engineers who stay in engineering roles. I see my colleagues who made made a switch to management have far more successful career by mid 40's.

The real issue is non-technical folks are valued & rewarded more than engineers. All tech companies follow more or less same org charts. What is really required is to reverse this org pyramid.

</comment><comment><USER20> Ward Cunningham. Linus Torvalds. Kent Beck. Pavel Curtis. The list goes on and on. Plenty of programmers over 40 out there.

I know there are a lot reading/commenting on Hacker News too (and I'm one of them).

What we really lack are concrete numbers. The article is nine years old, citing data from nearly twenty years ago.

<comment><USER21> john carmack (47) of id software, Seetharaman Narayanan of Adobe Photoshop

</comment></comment><comment><USER22> This article is needlessly alarmist. Really, there are three ways you can go as you get up there in seniority:

1\. If you're a good programmer, and you can/want to keep learning new things and jumping onto the latest technologies (ideally because you enjoy them for their own sake), you can be very successful as a senior/lead/whatever dev -- there is not a superabundance of skilled devs with a lot of pragmatic experience who are up on the latest techs. The downside of this approach is that you really do have to keep learning very aggressively; the instant you coast on what you learned five years ago, you're at risk of falling into the next category. (And that sounds obvious to anyone who's 23 -- the stuff you used five years ago is ancient! -- but once you're in your 40s, five years passes suspiciously quickly.)

2\. If you're a mediocre programmer, and you don't want to keep learning new things and want to ride your old technologies, you can often get jobs in big companies/govt maintaining slow-changing legacy apps, and ride that out in comfort until you retire, but this is legit risky, because maybe that system will stay in use until you retire (I know devs who retired in the last few years, still maintaining COBOL apps running on VAX emulators)... but maybe it won't (I also know devs who lost their jobs well before retirement because the AS/400 applications they worked on got replaced by newer stuff, and they couldn't/didn't want to learn the new tech).

3\. If you are good at management, and want to move into that, you can do that. This isn't some last-ditch escape hatch from development, though, it's a whole separate field that requires different skillsets, and not all devs are well-suited for it. Yeah, you have to know some tech to be a good manager of a dev team, but organizational and interpersonal skills are much more important. And also, experience here matters, too -- if you're trying to shift to management late in your career, you're competing against people who have a lot more management experience than you, which is going to make it challenging.

</comment><comment><USER23> > dealing with unrealistic requests will pretty much become your life.

Yeah, so it's the same as being a programmer then?

</comment><comment><USER24> That mindset seems mostly in the bay area, so they can cult the young into their world changing mission while building their next Snapchat.

Senior engineerings/developers accumulate experiences that goes beyond just implementing a feature, they can make better decisions, work better with people, manage stress better, more consistent in their work etc. And those who want to stay technology make the transitions to emerging tech relatively easy.

But if the person is lazy, don't invest in their career growth, then yeah, just like any other job, they'll soon find themselves stagnating.

</comment><comment><USER12> I think I'm in my prime earning years right now at 37. My plan B is a bunch of media plays, basically a land grab for a bespoke social network, and news/blog media engine, and a few other pieces of software I've been working on for a few years I'd like to develop / bring to market.

I have enough saved now to move to a cheaper city and live there for a few years (or break even indefinitely by picking up a small amount of client work). Retirement for me will probably mean happily working on and servicing a couple of income earning pet projects.

</comment><comment><USER25> Anecdotally, it seems that a lot of the 40+ engineers turn into "architects". Not sure if that still counts as a "programmer" by this article's definition.

<comment><USER12> Someone has to program the programmers.

</comment></comment><comment><USER26> Discussed in 2009: [https://news.ycombinator.com/item?id=650437](https://news.ycombinator.com/item?id=650437)

and in 2015: [https://news.ycombinator.com/item?id=9361580](https://news.ycombinator.com/item?id=9361580).

</comment><comment><USER27> The best plan B you can do is to save and invest your money.

</comment><comment><USER28> I plan on buying a coffee shop(tim hortons franchise) from the consulting money and leaving the software gig at 40. I am 30 now.

<comment><USER27> You're probably better off buying a low cost index fund. Do nothing, and let those gains roll in.

<comment><USER6> I've been thinking similar thoughts and landed on:

I need something to motivate to me to get out of bed every day.

Also: becoming a reclusive is bad for your mental/social health.

<comment><USER27> You can do things other than work. You don't have to be a recluse.</comment></comment></comment></comment>


Show HN: Realtime Reddit, with Meteor - <AUTHOR> http://reddit.meteor.com

<comment><USER2> All the comment links go to some entry on living the dream and the thumbnails flicker terribly ~ Chrome on OS X.

<comment><AUTHOR> Fixed. I don't see any flicker on my Chrome OS X, odd.

</comment></comment><comment><USER3> this is cool. Watching the comment counts rise is mesmerizing

</comment><comment><USER4> Well, at least I know that kn0thing has unread messages?

</comment><comment><USER5> Wow! How does it work?</comment>


Scientists develop biological computer to encrypt and decipher images - <AUTHOR> http://www.sciencedaily.com/releases/2012/02/120207202803.htm <comment><USER2> Interesting. There seems to be growing interest in utilizing biological components for creating synthetic systems. MIT has a registry for exactly this purpose: <http://partsregistry.org/Main_Page></comment>


SSE4.2 and the new CRC32 instruction - <AUTHOR> http://byteworm.com/2010/10/13/crc32/

<comment><USER2> VIA has hardware AES encryption, SHA hashing as well as hardware RNG in its CPUs for quite some time now.

<http://www.via.com.tw/en/initiatives/padlock/hardware.jsp>

<comment><USER3> <http://en.wikipedia.org/wiki/AES_instruction_set> it seems Intel also has similar instruction set. Could be useful if you need a lot of encryption (truecrypt partition encryption etc.)

<comment><USER4> I've read varying comments regarding this with respect to the Intel CORE CPU models that have it active. Early on, a review comment or two claimed to observe little effect e.g. with TrueCrypt. More recent comments I've seen have claimed to observe a much greater effect; IIRC TrueCrypt 7, recently released, is the first version to use the AES instructions when available.

P.S. Note, if you are interested in this feature, that not all levels of the CORE product line have it. For example, in the current mobile line, I believe it's present/activated only at the 520M level and above (although my knowledge is some months dated, at this point).

Ah, I see this information is echoed in the Wikipedia reference:

[http://en.wikipedia.org/wiki/AES_instruction_set#CPUs_with_A...](http://en.wikipedia.org/wiki/AES_instruction_set#CPUs_with_AES_instruction_set)

</comment></comment></comment><comment><USER5> also: <http://www.strchr.com/strcmp_and_strlen_using_sse_4.2>

_SSE 4.2 introduces four instructions (PcmpEstrI, PcmpEstrM, PcmpIstrI, and PcmpIstrM) that can be used to speed up text processing code (including strcmp, memcmp, strstr, and strspn functions)._

</comment><comment><USER6> Does anyone know any systems where generating CRC32s is a bottleneck?

<comment><AUTHOR> Perhaps not a bottleneck, but for very high network throughput systems, offloading the TCP checksumming can make more CPU available for other tasks. Often the offload engines built into network cards are either slow or have very poorly written drivers.

<comment><USER6> I forgot about TCPs use of CRC32. Still, I wonder if the time spent in CRC32 is a noticeable fraction of the total time. I guess it must be in some situations, otherwise why would they put it in the chip...

<comment><USER7> That might be caused by the fact, that TCP does not use CRC, but it's own checksum algorithm (faster, less relaible).

<comment><USER8> ...and very often is calculated by network card itself and left blank by OS. (See checksum errors in wireshark.)

</comment></comment></comment></comment></comment><comment><USER9> A sha256 would be handy for block-level deduplication.

</comment><comment><USER10> He probably should have compared one assembler program with another, but CRC computation is so simple that the C program probably generates optimal assembly code.

<comment><USER11> Even though the C program might generate optimal assembly, it doesn't generate optimal assembly for calculating a CRC32 checksum -- that's the whole point of the article: new Intel processors have a single instruction to do this.</comment></comment>