Online Live Photo Streaming From Any SD Card Enabled Camera - <AUTHOR> http://www.instructables.com/id/Online-Live-Photo-Streaming-From-Any-SD-Card-Enabl/

<comment><USER2> Hello, I wrote a script called node-eyefi. <https://github.com/komola/node- eyefi> it is an alternative to the windows client and acts as the server. We are currently rewriting it in coffeescript.

After a download is complete it can call a custom script.

Thomas</comment>


Learning java as a self thaught programmer - <AUTHOR> I am a mostly self taught programmer. I've been programming for past 3 years professionally but the problem is that still most of my work is done by googling and trial&error. While I learn a lot I feel kinda guilty being paid for this. Since I work mostly with java I decided to really master it.
What course would be the best to really LEARN java. (java programming patterns, how to properly do try/catch/finally, when to create a class, when to inherit it...) after that I'd like to master java spring boot.<p>So what I am looking for is how to build good foundation knowledge, so I don't feel like a fraud when talking with someone who knows his stuff...
for example I still have problems with java servlets, streams etc.. even though I've been working with them for past 2 years. <comment><USER2> 'Java 2 Exam Cram' is a great book as it directly addresses all the less well known, but frequently argued, parts of Java.

I also recommend looking through the source code of any frameworks you are using in order to build up your knowledge. It's always helpful to see how other people do things and will periodically give you a confidence boost as well.

</comment><comment><USER3> This helps a lot: [https://docs.oracle.com/javase/tutorial/](https://docs.oracle.com/javase/tutorial/)

You should build some cool projects once you have the basics</comment>


OOP vs Procedural Code - <AUTHOR> http://blog.ircmaxell.com/2012/07/oop-vs-procedural-code.html <comment><USER2>
        He [my father] taught me: "See that bird? It's a Spencer's
        warbler." (I knew he didn't know the real name.)
        "Well, in Italian it's Chutto Lapittitda. In
        Portuguese, it is Bom Da Peida. ... You can know the
        name of the bird in all the languages of the world,
        but when you're finished, you'll know nothing
        whatsoever about the world. You'll know about the
        humans in different places, and what they call the
        bird. So let's look at the bird and see what it is
        doing -- that's what counts." I learned very early
        from my father the difference between knowing the
        name of something and knowing something."

—Richard Feynman

<comment><USER3> In video form: <http://www.youtube.com/watch?v=05WS0WN7zMQ>

</comment></comment><comment><USER4> The bit about these kinds of articles that always nags at me is the assumption that different programming paradigms are somehow mutually exclusive. Essays talk as if object-oriented code cannot also be functional, or code isn't procedural if it involves classes, or whatever.

In some cases that might be true - declarative programming and procedural programming, for example, are diametric opposites in many respects. But others can be quite comfortable bedfellows. In particular, object-oriented programming and its older cousin modular programming tend to play quite nicely with other paradigms. Consider CLOS or Objective-C.

And even when they're opposed to each other that really just means you're limited in how you can mix them on a per-line basis. You can still write a multi-paradigm language that lets you support features from different styles.

Consider C#, which supports object-oriented, procedural, functional, and declarative programming (with the last admittedly being somewhat constrained), and where it's standard practice to use elements of each style all within a single short procedure. Sometimes elements of different styles end up depending intimately on each other. For example, to provide optimal support for (declarative) query expressions, one will probably need to implement the (object-oriented) IQueryable interface, and many of the methods in that interface are expected to take (functional) anonymous procedures as arguments and/or are used to build up (functional) monads representing the query that's being declared, which are in turn represented as (object-oriented) instances of classes that implement specific interfaces.

<comment><USER5> > The bit about these kinds of articles that always nags at me is the > assumption that different programming paradigms are somehow mutually > exclusive.

Paradigms are by definition mutually exclusive[1]. I'd argue that neither OOP nor FP nor procedural programming ... are paradigms but merely styles or idioms. Combining idioms is quite usual in our culture.

[1] <http://plato.stanford.edu/entries/thomas-kuhn/#3>

<comment><USER4> I appreciate that you're trying to be pedantic, but taking a word that was used correctly according to the jargon of the subject being discussed, and claiming that it was actually used incorrectly because of this other definition in an completely unrelated field isn't really pedantry. It's more a failure to understand polysemy[1].

1: <http://en.wiktionary.org/wiki/polysemy>

<comment><USER5> "When I use a word," Humpty Dumpty said in a rather a scornful tone, "it means just what I choose it to mean --- neither more nor less."

<comment><USER6> But if you expect other people to understand you, you need to be aware of how they expect the word to be used and either use it that way or clarify at the outset that you're using it differently.

<comment><USER5> 'Paradigm' isn't used ambiguously. See also Wikipedia: <http://en.wikipedia.org/wiki/Paradigm>

<comment><USER4> At the top of that page, you'll see the following text:

> For other uses, see Paradigm (disambiguation).

Click on the blue, and you'll see a list of five bullet points. Click on the blue in the third one.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> No, please. OOP does not have a monopoly on abstraction, encapsulation, modularity, etc. If you are focused on "state transformations and encapsulated abstractions", you're not necessarily writing OOP.

<comment><USER8> > No, please. OOP does not have a monopoly on abstraction, encapsulation, > modularity, etc.

Exactly. One of the best resources on those things that I've read/watched is MIT's SICP (both books and video lectures). And it is about everything else than OOP.

Abstraction, encapsulation and modularity are bigger than any programming paradigm. They are orthogonal to OOP, et al., you think about them separately. Moreover, they transcend the programming itself, and serve as one of the most basic mental tools humans can use for everything in their lives.

<comment><USER9> As I recall in my reading of SICP, one of the first big chapters actually hints towards OOP but has you designing it from the ground up. They never call it OOP, but it is heavily leaning towards it; they just happened to set it up using closures (see relevant humorous quotes below). I am referring to the stuff about setting up a virtual function table that switches to the appropriate method based on the type of the data so that multiple developers can write their own way while honoring agreed interfaces/protocols.

"Objects are a poor man's closures." -- Norman Adams (?)

"Closures are a poor man's objects." -- Christian Queinnec (?)

</comment></comment></comment><comment><USER10> Even without OOP you're carrying state information one way or another. This is a confusing article because his OOP examples are procedural, and his procedural examples carry state in a global object.

</comment><comment><USER11> Procedural has a static state of flow working from the program controling the data and OOP has a lose state of flow working with the data controlling the program. Would that be a easier true definition?

Another way to look at this is if you have say a physical button that the user can toggle on or off and it is lit up by code. Doing this is processed by procedural code then the code will know what state the button is and if any processing limitations will be slow in processing if the button is on or off as could be indicated by slow transition to respond to the light going on or off.

Now using OOP code the code that controls the light being on or off is would in general isolated from the processing of the state of the button and can lead to the the button showing on with the light on yet the processing code still thinking it is off. IE the code has no fixed static processing path and as such can lose state of if the button is on or off. This can lead to the button being off and the underliying code thinking it is on as they desync. Sorry if not the best explanation but is based upon a example I've seen in real life. The example was a phone busy/not busy button and the lovely C++ object oriented code got into a kefufle thinking the butotn was on when it was not after the operator had played track and feild on the button tapping away at it real fast out of bordem. The next result was the call processing system thought the phone was not busy when it was and tried to route a call which it was unable to do and the upshot was the entire phone system crashed.

OOP has it's uses, but it also has it's downsides, like all approaches it is the right tool for the job. Just that error handerling in OOP can get more complex than boring old procedural code which is alot easier to deal with, when it comes to exceptions as the processing state is static.

Another way to look at it is physical gears - procedural code is a fixed gear and OOP is a gear cog that can change in size and whilst you will see the end result you have no idea what size the dynamic OOP cog is.

Realy can be a hard one to explain without examples and it does lack a classic Hello World example.

<comment><USER9> _Procedural has a static state of flow working from the program controling the data and OOP has a lose state of flow working with the data controlling the program. Would that be a easier true definition?_

No. (What is "static" vs "loose"? :)) Procedural programming is a control flow pattern. OOP is a data arrangement pattern. You may be thinking of GUI systems with single-threaded control loops and callbacks, which is another kind of control flow pattern, but it is orthogonal to OOP. People who use OOP can, within the methods or in calls to their objects, use a procedural approach, a functional approach, and/or a callback approach. For different control flows, there are sometimes more appropriate/maintainable data arrangements.

</comment></comment><comment><USER12> I disagree with this somewhat. The biggest gain for large pieces of software from OOP is encapsulation, and in that regard writing loosely-coupled procedural code within classes will provide you will proper encapsulation.

You can't get away from writing procedural code completely, because chances are you're writing a _procedure_ , so even if you're thinking about state transforms rather than a list of actions to take, you're still writing procedurally.

<comment><USER13> _The biggest gain for large pieces of software from OOP is encapsulation,_

But before OO languages became popular, people encapsulated data by using opaque pointers. It can be argued that OO-programming promotes encapsulation, but in practice it is not hard to accidentally leak the internal state of data (especially in languages that only provide boxed data types).

Also, in (some) functional languages, encapsulation is comparably obtained by not exporting the constructors of a data type.

So, I am not convinced that encapsulation is in any way an exclusive or even defining property of OOP.

<comment><USER14> OOP is defined primarily by its ability to abstract and encapsulate data (and state) in objects. See William Cook's paper on "On Understanding Data Abstraction, Revisited." Of course, there are other ways to encapsulate state; e.g., as monads; OOP doesn't promote encapsulation so much as it promotes encapsulation using objects. The second defining aspect of OOP is messaging (goes along with encapsulation); Alan Kay has more to say about that (just check out Message Passign on wiki). The third is probably dynamic dispatch and polymorphism; not all OOP languages have that.

I've dealt with plenty of weird non-procedural OO languages (including my own) with no recognizable procedure construct, but this is a much more controversial position as there are no mainstream non-procedural OOP languages out there (Erlang?). However, procedural programming is mostly orthogonal to OOP, which is what I think the blog post is trying to get across?

<comment><USER13> _OOP is defined primarily by its ability to abstract and encapsulate data (and state) in objects._

I cannot help but thinking this is a tautology: 'Programming with objects is defined by putting data in an objects.' What is an object? How does it defer from other data structures where its members are hidden to the outside world?

I am not arguing that OOP does not exist, just that one aspect that has always been touted as one of its greatest advantages, also exists in most non-OO languages.

 _The second defining aspect of OOP is messaging (goes along with encapsulation); Alan Kay has more to say about that (just check out Message Passign on wiki). The third is probably dynamic dispatch and polymorphism; not all OOP languages have that._

Is message passing without dynamic dispatch and polymorphism really message passing? (In contrast to a function call that has a structure as an implicit argument?)

 _there are other ways to encapsulate state; e.g., as monads_

A data type is a monad if a function is provided that defines how computations of that data type can be combined[1], and that function obeys the monad laws. A monad can be used to combine effectful computations (IO, ST) or threading state through function calls (State). But e.g. the list, Maybe, or Either monads have little to do with state.

[1] Excluding 'return' for brevity ;).

<comment><USER14> Monads can be used to encapsulate state, they are used for other things. You can use objects to encapsulate state, or you can use another style of data abstraction, whatever floats your boat. OOP has no unique capabilities, you just get to design your programs around objects, which is good enough for me. Its all about design.

</comment></comment></comment></comment></comment><comment><USER15> >> The first sentence says that you must use object data structures to write OOP.

Actually I don't think it does. It says that: "objects are data structures consisting of data fields and methods together with their interactions". There is no obligation.

True it would be easier implemented in a language provided data-structure. But if you were crazy enough you could place the data-structure all in global variables and try to tie them up using reflection.

</comment><comment><USER16> Maybe oversimplified, but, these being the 5 programming paradigms listed in Wikipedia:

Aspect-oriented (? not an expert on this)

Imperative/procedural (most work is done by statements)

Functional (most work is done by functions)

Logic (most work is done by declarations)

Object Oriented (most work is done by objects)

<comment><USER17> > Object Oriented (most work is done by objects)

Objects don't do work - methods do. Objects organize state.

Methods are functions with implicit state that may be shared with other methods. These functions may be functional (as in Actors) or imperative.

Objects help organize state.

You can "OOP" in any language; it doesn't actually require any language-level constructs. (Yup, you can do OOP in assembly language, Fortran 66, etc.)

</comment></comment><comment><USER18> Obligatory <http://www.paulgraham.com/reesoo.html> -

OOP is not well defined. State your definition (use the above link as a legend) before arguing about what OOP is and isn't, and there will be much less miscommunication.

<comment><USER4> It's an interesting observation, but I can't help but notice that none of the nine members of that list includes the single essential feature that's shared by all languages that claim to be object-oriented: The presence of a language- level construct (an "object") which bundles data together with operations on that data. The nine in the list are instead just a bunch of optional features that an object-oriented language may or may not have in addition to that one essential feature. Some of them aren't even particularly emblematic of OOP in the first place. The most well-known poster child for #6, Erlang, is a (non- OO) functional language that implements it among processes instead of objects.

In other words, while the essay is correct in observing that OOP can be a frustratingly fragmented paradigm, the claim that it is "not a well-defined concept" is a glaring case of failing to see the forest for the trees.

<comment><USER18> > The presence of a language-level construct (an "object") which bundles data > together with operations on that data.

And yet, many people argue that objects don't even need to have data to be objects ( e.g. [http://stackoverflow.com/questions/6500127/whats-the- overhea...](http://stackoverflow.com/questions/6500127/whats-the-overhead-of- a-data-less-type) ) ... you can google "stateless objects" or "dataless objects" and see that they were common enough at some point to be "considered harmful"....

> The most well-known poster child for #6, Erlang, is a (non-OO) functional > language that implements it among processes instead of objects.

Are processes not objects? I think they very much are.

> In other words, while the essay is correct in observing that OOP can be a > frustratingly fragmented paradigm, the claim that it is "not a well-defined > concept" is a glaring case of failing to see the forest for the trees.

If you have at least 4 incompatible definitions (as given by Rees) then it is, by definition, NOT a well defined concept.</comment></comment></comment>


7 Reasons Why its Better to Be a Woman in Tech - <AUTHOR> http://katherinehague.com/post/6111201245/7-reasons-why-its-better-to-be-a-woman-in-tech

<comment><USER2> Finally, someone speaking some sense on this issue. I don't doubt that harassment happens to women in the tech field...it happens in every field. But, being an engineering student and now working in the tech field it's been eye opening how advantageous it was and is to be a woman in tech in many ways. I don't have any hard feelings about it. I appreciate women trying to make it in a man's industry by being capable and taking advantage of the fact women are mostly absent in the field.

Your points are valid and well articulated. I appreciate something being said about the lack of women that isn't just complaining about it, but instead sees it as opportunity.

</comment><comment><USER3> I think she is being very honest, and she's right on the money.

I think it's fair to point out she appears to be very attractive, and she may possibly be experiencing some of these benefits at a higher level than other women in the industry who may not be as blessed with such beauty.

Don't get me wrong, same happens for men in many cases, ie, a slob in an "All your base" t-shirt is looked at differently than a groomed man in a suit.

I just think this information should be factored into her post.

<comment><USER4> I agree, she's very attractive. It doesn't really seem to affect the core message of her post: women have unfair advantages that they can and will use to kick ass in the startup world.

If men are willing to get all bent out of shape just because a woman is involved, then women should take it and run with it.</comment></comment>


Password Hashing Competition winner and special recognitions - <AUTHOR> https://groups.google.com/forum/#!topic/crypto-competitions/3QNdmwBS98o <comment><USER2> Hmm. I didn't expect this announcement this soon - at least on the public mailing list, the notion of a winner still seemed very far away. Just 18 days ago: [https://groups.google.com/forum/#!searchin/crypto- competitio...](https://groups.google.com/forum/#!searchin/crypto- competitions/phc$20winners/crypto-competitions/E99ZyJATo6E/plkmr4sQQ8QJ)

Anyway, as best as I could tell, the consensus on the public mailing list was that the best case for a singular winner would be an amalgamation of four finalists: Argon2, Lyra2, Catena, and yescrypt. Each of them has some properties that are desirable. I'm curious to what extent Argon2 will be modified - and especially curious if the final spec will have tunable parameters / multiple modes or be a one-size-fits-all deal.

Edit: If you're interested in more information, a decent starting place is this paper: [https://eprint.iacr.org/2014/881.pdf](https://eprint.iacr.org/2014/881.pdf) If you folks want more reading material, I can pull some emails from the mailing list

</comment><comment><USER3> Here is the spec for the winner: [https://password- hashing.net/submissions/specs/Argon-v2.pdf](https://password- hashing.net/submissions/specs/Argon-v2.pdf)

<comment><USER2> To be clear, that isn't the final spec. AFAIK, we don't yet know the extent of changes that may be made to Argon2. The email says that Argon2 will be the "basis" for the final winner, which could have some interesting results.

<comment><USER4> > _Argon2 will be the "basis" for the final winner_

I expect there will be a long review period before the winner is considered suitable for common use. It reminds me of the backlash at NIST for some late changes to the SHA-3 winner, Keccak: [https://en.wikipedia.org/wiki/SHA-3#NIST_announcement_contro...](https://en.wikipedia.org/wiki/SHA-3#NIST_announcement_controversy)

<comment><USER2> I don't expect there to be a similar community reaction. NIST and the PHC panelists (list at [https://password-hashing.net/](https://password- hashing.net/)) are two __very __different bodies.

Argon2's internals will likely be altered (with community input); Keccak's internals were left alone (only parameters were tweaked).

The community _wants_ modifications to Argon2 before its final publication. Essentially, each of the five supreme finalists possess nifty properties. It'd be nice if Argon2 could be modified to possibly have some of these too.

That being said, I do expect you're correct that the winner will not be in mainstream production for a couple years at least.

</comment></comment></comment></comment><comment><USER5> For those like me that weren't aware of this competition here's their website with more info [https://password-hashing.net/](https://password-hashing.net/)

</comment><comment><USER6> Impressive stuff. One of the features of the winner is that you can offload the expensive computation to a client and still maintain the security you would have if it were done on the server. This should hopefully persuade people to use slow hash functions where they otherwise would not due to performance concerns.

<comment><USER7> It also allows client-independent strengthening of the hashes, so you don't have to wait for users to login again to be able to increase the strength of all existing hashes.

<comment><USER8> This is trivial to achieve with any hash function.

<comment><USER9> AFAIK you store the hash along the algorithm/parameters you used to generate it. To update the hash you wait for the user to log in and...

1\. check if the stored hash is identical to the hash you generate on fly using the old algorithm

2\. create a new hash using the new algorithm and substitute both the old hash and the old informations about the algorithm/parameters

What's the trivial way to achieve it without the user logging in?

<comment><USER10> Hash your existing hash with a more powerful algorithm.

<comment><USER8> Exactly, it's hacky, but Scrypt'ing your ancient MD5 databases is better than sitting on your ass and being caught with your pants down when your database gets dumped on pastebin or a Russian forum

</comment></comment></comment></comment></comment></comment><comment><USER11> What tools are typically used to develop these algorithms? The site has [https://password-hashing.net/faq.html#qd](https://password- hashing.net/faq.html#qd) which mentions attempts to formally define the security of a good algorithm though a quick scan of the two papers indicates the definitions are mathematical properties described in English. However, when it comes to implementations is there a generally accepted language/framework in which correctness can be proven? Haskell comes to mind as one such language which its proponents tout as ensuring correctness, though I lack the experience to determine whether this means "your broken algorithm runs 100% correctly" vs. "a broken algorithm will not compile".

<comment><USER2> Typically, cryptographic primitives (like block ciphers, hash functions, KDFs, etc) are written in C. Bugs are caught solely by the use of a sharp mind and careful reading.

There are really two reasons for this: (1) optimization is a really big deal; some impls go so far as to have asm for specific architectures or use architecture-specific features like SSE2 and (2) there really isn't very much code for a cryptographic primitive, typically <=1000 lines. (e.g., see [https://github.com/khovratovich/Argon2/tree/master/Argon2i/r...](https://github.com/khovratovich/Argon2/tree/master/Argon2i/ref)).

Once a simple reference implementation is hand-checked, it can be used to generate comprehensive test vectors for other implementations.

This isn't my area of expertise, but I believe there's some research in applied crypto for implementation verification. I know [https://github.com/GaloisInc/cryptol](https://github.com/GaloisInc/cryptol) is a language that's supposed to help in that regard, but I don't know offhand who all uses that.

<comment><USER12> The other reason for C is that the reference implementation is generally expected to eventually have bindings for every other language - a new standard won't flourish if you find out it's hard access to it in your choice of language.

If you can _also_ write an implementation in something such as Haskell, verifying the input/output between the two implementations is a great way to assure it works as expected.</comment></comment></comment>


Suggest to HN: Build a standalone watch phone supporting tethering - <AUTHOR>

Since many smart, entrepreneurial folks read HN, and in view of PG's take on the current hardware renaissance [1], I humbly propose an idea that may have been unduly overlooked.
I understand and share the excitement over the upcoming Pebble [2] and the welcome attitude toward less satisfying smartwatches in the market. However, the only downside is that the setup is backwards: you essentially never leave your wristwatch at home, but on many occasions you may feel like leaving your phone. It would be great if the SIM card belonged in your phone, and could tether from there as needed. Yes, most of the time you will have your phone/phablet/tablet with you, and probably a WiFi connection, for that matter.
The closest device I have come across is the VEGA (-Z1) watch [3], which is downright ugly, quite pricey ($425), only offers USB tethering with poor support [4], all of this under an old version of Android. (This would arguably be the least significant point.)
I think the greatest usage barrier to this is the idea of using your phone for conversations, while all your shiny phones become tablets (unless you want two lines...).
OK, that's my proposal. What do you people think? Will this be the standard setup within 10 years?
Cheers!

  [1] http://www.paulgraham.com/hw.html
  [2] http://getpebble.com/
  [3] http://www.3gwatches.com/vega.html
  [4] http://www.linuxslate.org/Review_Z1_Android-2.2-Watch.html
 <comment><USER2> Do you mean that you want your sim card to live in your wristwatch, and then your phone/tablet/laptop to access the wider world via your wristwatch using wifi/bluetooth/whatever?

My uninformed opinion is that I'd worry about battery life (both because you've got to run two receivers/transmitters, and because you've got less space to fit it in).

<comment><AUTHOR> First off, thanks for commenting! The (wild guess) idea is that a large sector of the market do most of their phone/tablet browsing at home, at the office, but not when they're away. Then most people may take pictures, videos, etc. (I guess this could hurt geotagging), but I claim that tethering would remain off most of the time.

Come to think about it, with the low-end SIM cards available today a second SIM card would make sense and eliminate the need for tethering altogether.

A good start in my wish list would be greater (and prettier!) competition to VEGA.</comment></comment>


Outsource Things You Don't Care About - <AUTHOR> http://cdixon.org/2012/04/22/outsource-things-you-dont-care-about/

<comment><USER2> His post is right in that he says you outsource things that don't give you a competitive advantage. But this is not necessarily synonymous with things you don't care about.

For example, our company has an email newsletter we sell for which we evaluated multiple email service providers (ESPs) and ultimately agreed Mailchimp was best. This newsletter is a major source of revenue for us so we absolutely care about it, but we know that the value we bring is the content/data in the newsletter and not the delivery and other intricacies ESPs deal with.

Ensuring the team gets paid regularly and we're not running afoul of the IRS and NYS withholding requirements is absolutely critical, but building payroll processing capabilities internally is not something we're spending time on.

<comment><USER3> Using his language, I think he'd say you "don't care about" figuring out the intricacies of e-mail deliverability. It seems like "don't care" was just a poor choice of wording. A better metric would be just to ask what your core competency is, which is the actual content of the newsletter, not the technology involved with running a newsletter.

<comment><USER2> Yup - I commented on Chris' post and he responded saying "I'm starting to regret the title I used on this post (versus the more accurate first sentence)."

</comment></comment></comment><comment><USER4> So if you don't care about it, then why build it? I think that thing you don't care about should not even be built.

I think the author talks more about things that are more like supporting features, than core features.

But let's be honest, if you are in a startup, and you are doing supporting features, then you are doing it wrong.

If you have stuff you feel is not a priority, then re-evaluate the value proposition of those items.

This doesn't mean I am against outsourcing. I am actually for it, and I think using outsourcing is great as long as you find a partner that fits in your team. In my experience outsourcing works specially when testing out ideas, before even building the team. Moving forward your outsourcing team can become your actual team.

</comment><comment><USER5> The question is what should you care about?! The hardest part about building a software, especially a start up, is not what to put into software, but what to leave out. Pick your best thing and then stick w it (care the most about it). This may force you to neglect other aspects but make sure the things you care about are focused on and then outsource the other things you can (or put them on back burner).

</comment><comment><USER6> Maren Kate Donovan (maren here on HN) has a startup addressing exactly this, but for individuals not just businesses. <http://zirtual.com/></comment>


To those that have, shall be given - <AUTHOR> http://www.economist.com/displaystory.cfm?story_id=10311266

<comment><USER2> I think that sometime in the future (<50 years perhaps?), advancements in cosmetic surgery will come to a level of sophistication and low cost where practically everyone in rich countries can look anyway they want. Like second life.

Perhaps by that stage, the cultural stigmas associated with augmenting appearances will have weakened sufficiently so that everyone does it. At which point people will be judged on merit/personality instead of looks. A world where everyone can look the same... Utopia or dystopia?

<comment><USER3> I suspect that in a world where people can have their appearances overhauled, people will display their wealth by getting expensive body-modifications.

<comment><USER4> Like today?

<comment><USER3> Not really. The modifications that people get today, usually of the breasts and face, are intended to enhance the visual indicators of youth and health. I don't think they're meant to signal _wealth_ , especially since the people who get these procedures are often loath to admit it.

But there are exceptions; some people are open about their cosmetic surgeries. Perhaps some of them are (consciously or not) displaying their wealth.

I don't think tattoos and piercings are signals of wealth, usually. Most people in rich countries can afford them. Really elaborate tattoos might be an exception.

</comment></comment></comment></comment><comment><USER5> [http://upload.wikimedia.org/wikipedia/en/f/f8/Internet_dog.j...](http://upload.wikimedia.org/wikipedia/en/f/f8/Internet_dog.jpg)</comment>


Why GIMP is Inadequate - <AUTHOR> http://troy-sobotka.blogspot.com/2011/01/why-gimp-is-inadequate.html <comment><USER2> The 8-bit color limitation issue is well-known and has been for a long time. The solution is GEGL (<http://en.wikipedia.org/wiki/GEGL>), which has been under development for a (very) long time now and is partially implemented in GIMP 2.6, the latest stable version. It _is_ a problem, but it's important to put it into perspective: almost all monitors display 32-bit color (EDIT: or less) anyway, so if you're doing work targeted at a computer screen, it probably doesn't matter anyway. If you need to do work at color depths higher than 8 bits per pixel (that is, if you're doing serious print work) then yes, you need to be aware of these limitations. If you're almost everyone else it's probably not an issue. (I don't mean to imply that it's not a problem at all, but I think it's important to keep it in perspective.)

For the people here asking whether GIMP is good enough for what you're doing: Ars Technica did an excellent review of GIMP 2.6 about a year ago (EDIT: 2 years, but it's still the same major version). It's long, but well-worth reading and will answer your questions. It's written from the perspective of a professional who uses Photoshop, but does an excellent job of remaining balanced. This quote summarizes the review (and also my opinion) pretty nicely, I think:

        I may seem to skew negative since I talk so much about what's missing, but
        it's hard to dwell on what a program does well and not sound like a fawning
        idiot. Most people who sit down to get image editing work done with GIMP
        will not be disappointed. There is a ton of room for advanced work here.

It can be found here: [http://arstechnica.com/open- source/reviews/2009/01/gimp-2-6-...](http://arstechnica.com/open- source/reviews/2009/01/gimp-2-6-review.ars)

While I don't follow it closely enough to really discuss GIMP's current development status, development does seem to have slowed significantly (purely from a user's perspective) in recent years. This is a real shame, since I think that for the most part it's an excellent program and in general I much prefer to work in GIMP over Photoshop. For all of its many flaws, I think it's a fantastic piece of software.

<comment><USER3> > so if you're doing work targeted at a computer screen, it probably doesn't > matter anyway

Actually, it matters regardless of output device. With higher bit depths, less rounding errors accumulate over time as the image is processed, for example when effects are applied, yielding higher overall output quality.

Here is an example, although after many iterations quality loss can be much more dramatic than visible in that picture: [http://www.photoshopessentials.com/essentials/16-bit/page-3....](http://www.photoshopessentials.com/essentials/16-bit/page-3.php)

<comment><USER4> > With higher bit depths, less rounding errors accumulate > over time as the > image is processed,

This could also be solved by another photoshop feature, adjustment layers. Basically instead of applying a filter like levels to an image you make a levels layer that applies the levels affect to everything underneath it. The original data is untouched, and you can tweak the levels at any time.

I'm strictly a hobby user for photos I take, but without support either 16 bit colour or adjustment layers GIMP is not good enough for me. My solution is to use an older student version of photoshop I picked up cheaply; I don't need all features in the latest version.

<comment><USER5> No, that doesn't actually do anything to solve the underlying problem. Stacking five adjustment layers has the same accuracy problems as doing the same five operations sequentially. It may let you tweak them without roundtripping through further loss but the loss is already significant by that point.

<comment><USER6> Technically yes, but not at all in practice. Once you run 3 adjustments you generally want to tweak the first. Without adjustment layers you usually just run a fourth transformation.

<comment><USER5> Ye gods, can't you read until my third sentence between smashing the reply button and "correcting" me?

</comment></comment></comment></comment></comment></comment><comment><USER7> I expected this to be a rant or flame, but in fact he has described wonderfully what needs to be said.

Besides from all this pro features that GIMP lacks, in my opinion its biggest flaw its the UI. Its poor and raw, and makes sense if you are a programmer... Mainly this is what keeps it far from the regular users I know.

Hope It doesnt die, its a very good open source multiplatform editing tool...

<comment><USER8> I, hand on my heart, swear that, as a programmer, I don't think GIMP's UI makes a jot of sense.

A week away from GIMP to mess with Photoshop had me converted after the first couple of days, sadly. Photoshop is both a blessing and a curse for OSS.

(A blessing that it's a nice shiny target. A curse in that the target is half- way to the moon.)

<comment><USER9> There are numerous closer targets to shoot for, which are not photoshop but are still pretty darn nice (Acorn or Pixelmator for instance on OSX).

OSX also has SeaShore, which I believe is built upon GIMP's tech but with a Cocoa frontend. It is fairly nice.

<comment><USER10> I bought Pixelmator years ago and it's great for what it is, but it's not really in the same class as Photoshop (or really even GIMP). The UI is clean and functional, but even as an occasional user I run into missing features.

Seashore looks interesting.

</comment></comment></comment></comment><comment><USER11> This is valuable feedback from an artist who actually bothered to try to use the software. Ultimately, for a highly-paid artist, learning a new interface is itself costly.

<comment><USER11> I don't quite understand the downvotes, anyone care to comment?

I just meant that time is a valuable commodity which artists can rarely afford, unless they have a really good reason to. I applaud this reviewer for having the time.

<comment><USER12> I don't think his main problem is with the interface.

</comment></comment></comment><comment><USER13> "Important progress towards high bit-depth and non-destructive editing in GIMP has been made. Most color operations in GIMP are now ported to the powerful graph based image processing framework GEGL, meaning that the internal processing is being done in 32bit floating point linear light RGBA. By default the legacy 8bit code paths are still used, but a curious user can turn on the use of GEGL for the color operations with Colors / Use GEGL." <http://www.gimp.org/release-notes/gimp-2.6.html>

Clearly this artist was not a curious user.

<comment><USER14> I think you're illustrating the point of the author: such an option should be the default. The user shouldn't have to go looking for it.

</comment></comment><comment><USER15> There are several good alternatives to GIMP depending on what you're doing. GIMP is probably the best for traditional photo editing, but there seems to be more programs oriented toward illustration. In particular, I like Krita.

I don't really know what the deal is with the low development interest in GIMP. I think maybe it's that Photoshop's professional niche generally isn't comprised of big fan of computers in the first place, so they are more like the Office crowd and just want to use what they're used to; they're hostile to any change from the start.

I also think that the extremely long development cycle of GEGL, which was necessary for the most commonly requested features like increased bit depth, CMYK, etc., may have turned developers off.

I'm merely guessing here, though. I definitely agree that GIMP has a lot of potential, and a few dedicated developers could really take it places.

<comment><USER16> _I don't really know what the deal is with the low development interest in GIMP. I think maybe it's that Photoshop's professional niche... ...use what they're used to; they're hostile to any change from the start._

I don't know about the developers and why more people aren't interested in helping out (though I suspect for a lot of people its a mixture of the difficulties of getting established in a large codebase and the beurocracy involved in a large project), but from a user point-of-view I think GIMP has a few problems.

I've used GIMP exclusively for many years (but I'm not a graphic designer, so my use of image editing software was never terribly heavy) and I used photoshop for the first time last summer. My transition to photoshop was a very pleasant one as, IMHO, photoshop has a much simpler and more productive interface (buttons are easy to access, convenient keyboard shortcuts, interface is not too cluttered); it has a larger range of (more advanced, generally) filters and tools; and it seems a lot faster to me too (definitely when applying filters to a large image. This can be, in my experience, quite slow in GIMP, but in photoshop most filters are almost instantaneus for me).

I can only assume that many other people feel the same and I imagine this may make it less desirable for people to work on GIMP, especially if there is (perceived) resistance from the GIMP developer community for GIMP to move in the direction that newcomers feel it should (eg, does GIMP still have that horrible multi-window interface? Most people dislike it (though since I started using a tiling window manager on windows it actually becomes much more usable!)).

Having said all that, from a user point of view, unless you make a reaosnable amount of money with your photo-editing, it is still hard to justify photoshops high price tag. GIMP being free is definitely a big plus point for it for casual use.

<comment><USER17> > _"I don't know about the developers and why more people aren't interested in > helping out"_

This probably doesn't help GIMP any, but I suspect it's because very few people want to hop on such a clearly troubled project. Only two core devs left? A long history of neglect and moving in the wrong direction?

I can bet if, say, Pixelmator went OSS right now, there'd be a sea of devs fighting to add features to it.

Most devs don't want to walk into a major, legacy project just to pick up the pieces, most of us would rather join something that has a solid base where the maintainers have a decent idea of what the product needs.

</comment></comment></comment><comment><USER18> Having only 2 principal developers left which have little time sounds to me like the biggest problem. That's not enough manpower to compete with Photoshop in the long run. One reason for that might be that Gimp already does the stuff most coders need from an image manipulation tool, so maybe there's not enough itches to scratch left to get more talent interested in developing for it.

</comment><comment><USER19> To everyone who is replying to the 8bit issue by mentioning GEGL - Have you actually used it in a professional capacity?

As a (now part-time) professional photographer, I _have_ evaluated GIMP; and as a FOSS advocate I really wanted it to work. The performance issues the article mentions are with reasonable sized images at only 8 bits, but editing a 16bit, 25MP image wasn't just slow, it was unusable. Photoshop however, runs in near real time at these image sizes. Even automating a GEGL filter to run on a series of a few hundred images would take long enough that I couldn't maintain a usable workflow.

</comment><comment><USER20> Surely the underlying problem is that GIMP is and has been underfunded for years. Where as Photoshop costs $100s, GIMP presumably has very little revenue if it can only pay for two developers.

Firefox is able to develop quickly due to the deal with Google, maybe GIMP needs something like that, e.g. a app-store for plugins or a kickstarter funding drive.

</comment><comment><USER21> This article brings my experience with OSS full circle. It was the Gimp and GTK that first drew my attention to OSS in about 1997. At the time it was tempting to believe that OSS was inherently a better development model but after almost fifteen years it's clear that it's been wildly successful in some domains but a washout in others.

</comment><comment><USER22> Another missing feature for me is lack of a CYMK color palette. Vital for sending images to the printers.

<comment><USER23> There's a plugin for that, not perfect but does the job.

<comment><USER24> The fact that you need to download a plugin for something as essential as that is a big drawback.

</comment></comment></comment><comment><USER25> I don't know much about photo editing, but I've used Gimp for a little while along with Inkscape for editing. I use it for simple stuff- drop shadows, minor logo work, etc. Is there a noticeable difference vs. photoshop on that level?

<comment><USER26> Yes, the noticeable difference is Gimp sucks!!

Hats off to the Gimp development team for pulling off so many features and above all having an open-source product out there. But the problem is PhotoShop has set the expectations way too high. And I'm afraid, a non- commercial product will never be able reach that level.

<comment><USER27> Are there any arguments why a non-commercial product (not necessarily Gimp) will never be able to reach "that level"? This looks suspiciously like "open source software is always worse than closed source!!!!!" which has been refuted more than once.

<comment><USER28> I don't think anyone doubts that for things like OS kernels, database engines, web frameworks, browsers, libraries, editors etc. FOSS software easily wins.

But for end-user applications where you pay for the competition and where the typical end-users are _not_ developers, or similar, (e.g. MS Office, PaintShop, most games) then FOSS versions seem rather poor by comparison.

<comment><USER29> Have you ever tried MyPaint?

IMO a good example of a software which does its tasks very well (I'm no (digital) painter, but I've heard about graphic artists seriously thinking about switching to it... if it only had a Mac version...).

</comment></comment></comment></comment></comment><comment><USER30> For anyone serious about image production the cost of the software, like the cost of the camera and lenses is insignificant. For most photographers bit depth is only something they give much thought to when a client dictates (like a stock agency requiring a 16bit tiff, for example). For the vast majority of people just making images, 8 bit depth is perfectly fine. Most sensors in digital cameras are not anywhere near 16 bit anyway, more likely 12 or sometimes 14.

The photoshopessentails links below will obviously illustrate a difference (but not one that is very striking considering the destructive editing applied) - its a classic dynamic range compress/expand to show the benefits of higher quantization levels. Obviously that will degrade an image. Nobody, I suspect, is willing to show a side by side comparison of an image showing ordinary editing with rounding errors that make the slightest different to the image.

Most output is computer screens anyway where there is so much more impacting the image than rounding errors in editing stage. When you print an image that also introduces its own set of transforms, some have the benefit of making much that is visible on the screen (like moderate chroma noise) largely go away.

I dislike GIMP because it lacks the polish and sophistication of Photoshop but good photographs are good photographs, regardless of rounding errors in adjustment layers. When you look back at the last century of images, how many of those photos do you say would be improved had they more resolution, or less banding or whatever technical nonsense metric you want to apply.

</comment><comment><USER31> What shocks me is the lack of competition in this field in the year 2011. Why are we still talking about choosing between GIMP or Photoshop? I know there are other programs out there that some people will claim they prefer over GIMP or PS, but for most of the planet it's GIMP or PS.

Is the lack of competition due to the magnitude of such a programming endeavor or is it something else like patents? Any idea?

<comment><USER32> I've been using Pixelmator for a few months now (GIMP works great in Linux but I've found it's performance in OS X to be rather poor). It's still closed source software like PS (even if it does use open source libraries), but it's fast enough and gets the job done (my needs are really meager).

The reason why GIMP doesn't have more developers is easy: Programmers don't have any itch to scratch at this point and there isn't currently a big market for prosumer image tools (most folks use PS one way or the other, paid or pirated).

If Adobe managed to somehow magically make piracy of their software impossible I think it's likely that you'd see a number of free and non-free products in strong competition with Photoshop Elements.

<comment><USER31> Interesting point about piracy. Without a need, there's no reason to innovate.

</comment></comment></comment><comment><USER33> Gimp is one of the main reasons why I left Linux. After years of Windows I finally gave Linux a chance and immediately fell in love with it. Being a programmer it gave an incredible boost to my productivity and creativity. Having a proper shell, for example, or a real ssh client (not some half baked solution like putty).

As I also work with media (graphics and music), I find the lack of any semi- professional software for producing music (nothing to be compared with Cubase, Ableton Live or even Fruity loops) nor programs to make graphics (Inkscape is not close to Illustrator and then Gimp...).

So I had to constantly keep a virtual machine for those (read: running in a virtual machine the most resource expensive programs) or another partition for dual boot and I ended up having two PCs.

I sold them both and bought a Mac where I can have Photoshop in a window and a terminal with a proper unix machine on the other.

</comment><comment><USER34> It's a shame that GIMP isn't supported by more devs/money. Writing script-fus for GIMP makes it so much more useful for a developer than Photoshop. I've saved myself so much time using python-fu with GIMP to automate opening, manipulating, saving of files.

</comment><comment><USER35> Yes, Gimp isn't competition to Photoshop for professionals. For people who want to do a variety of tasks where professional quality isn't critical, however, it's great. Gimp falls somewhere in between Photoshop Elements, PaintShopPro and Photoshop.

The UI is a huge problem. Whomever thought it was a good idea to make the tool window always on top with no way to minimize it, and no menus, needs to step away from working on UIs.

</comment><comment><USER36> GIMP has no support for the Pantone color system either. Another reason professionals tend to avoid it. Not the GIMP's fault, as Pantone is proprietary. But regardless, it's used heavily in the design industry.

</comment><comment><USER37> I would be curious to see similar posts for Octave and OpenOffice. I am really happy that they exist but "inadequate" would be a fair word to describe both. Comparing of course with Matlab and MS Office .

<comment><USER38> Yes, though you can also compare MS Office to something like TeX, and find that either option is inadequate, depending on where your focus lies.

</comment></comment><comment><USER39> Can you represent each channel as a double? Or will that take up too much memory in the long run?

</comment><comment><USER40> as far as gimps usefulness to profesionals the movie version fork cinepaint, is good enough for making Harry Potter and other movies I question authors knowledge of / authority to speak for artistic professionals.

<comment><USER41> Uhm, Cinepaint is a point in favor of the author's conclusions about GIMP. One of the reasons for Cinepaint is to fix the color depth problem the author wrote about.

</comment></comment><comment><USER42> The problem is that the intersection of fosstards and serious print designers is vanishingly small. If you're doing pro press work, you're going to buy the tool that everybody else uses and that print shops have standardized upon. That tool is Photoshop.

</comment><comment><USER43> The problem that I've always had with GIMP is that it (menus, macros, general UI, etc.) doesn't mimic Photoshop. If you want to go after a well established product why not mimic these things to achieve a higher adoption rate (due to instant familiarity)?

</comment><comment><USER44> It's funny how the writer mentions a handful of technically unimportant flaws with GIMP, blowing them out of proportion, but fails to mention the one big thing where GIMP falls flat on its ass: the clunky, unstructured mess of a UI.

<comment><USER45> That was footnote #1 in the article.</comment></comment>


Deep Learning for Robotics - <AUTHOR> https://www.dropbox.com/s/fdw7q8mx3x4wr0c/2017_12_xx_NIPS-keynote-final.pdf?dl=0 <comment><AUTHOR> Video link:

Pieter Abbeel delivers his keynote: Deep Learning for Robotics, at NIPS 2017

[https://www.facebook.com/nipsfoundation/videos/vb.3757376925...](https://www.facebook.com/nipsfoundation/videos/vb.375737692517476/1554594181298482/?type=3&theater)

<comment><USER2> A very similar talk from Abbeel, without Facebook in the way: [https://www.youtube.com/watch?v=SYqV543LWoY](https://www.youtube.com/watch?v=SYqV543LWoY)

</comment></comment><comment><USER3> Want to try deep learning for your own cheap robot?

[http://donkeycar.com](http://donkeycar.com) is a fun project. Races in various parts of the world at various intervals!

</comment><comment><USER4> I really like the concepts in Probabilistic Robotics by S. Thrun.

It's kind of a more formal approach to robotics, and has some strong ties to ML.

</comment><comment><USER5> Use this link to view the PDF without the Dropbox chrome: [https://www.dropbox.com/s/fdw7q8mx3x4wr0c/2017_12_xx_NIPS- ke...](https://www.dropbox.com/s/fdw7q8mx3x4wr0c/2017_12_xx_NIPS-keynote- final.pdf?raw=1)</comment>


Startup idea: a Wikipedia for small businesses? - <AUTHOR> http://entrepreneur.venturebeat.com/2009/08/28/what's-next-a-wikipedia-for-small-businesses/

<comment><USER2> I think this is a good idea for two reasons:

1\. It's cheaper for businesses to start their own Business-pedia article than to pay for the development and hosting of their own website.

2\. It may stand a chance of keeping a lot of the business spam postings out of the real Wikipedia, making it less work for admins to delete non-notable articles.

</comment><comment><USER3> I would go to the site frequently, provided the ability to compare traits x,y and z of different "shops" within a specified area. This would be easy to do if you can find the right ways to structure the data.

</comment><comment><USER4> Think its already been done to a certain point. <http://www.crunchbase.com>.</comment>


How I made sure all 12 of my kids could pay for college themselves - <AUTHOR> http://qz.com/165716/how-i-made-sure-all-12-of-my-kids-could-pay-for-college-themselves/

<comment><USER2> Parents who raise their children to have character are having a much a bigger positive impact on society than any start up founder or developer.

On the flipside, parents who fail at parenting are also dragging society down quicker than any technology or idea could hope to.</comment>


Ask HN: Do startups ever hire 'established teams' - <AUTHOR> So two of my oldest friends/(former colleges) in tech recently approached me for advice:  They have exited the 9-figure ARR SaaS app they built from scratch and asked me how likely it would be to find a an early-to-mid-stage startup that would consider hiring a senior team of 7 devs (avg. 10 years experience specially in high-scalability, AI and low-level coding) as a package deal (they have been working together for a long time and want to keep doing so).
Is this incredibly unorthodox or if the talent and team are sufficient good are there some companies out there that would consider them all together?  They're open to everything from medium-term contract work to FTE to an acquihire (they've built a new thing already but it's not ready for prime-time so currently just some decent IP and team of coding ninjas with extra bandwidth.
My gut is that unless they seriously go the Acquihire route it's going to be damn hard to find one company to hire a whole team (despite the track record and skillset) at once so maybe it's a waste of time trying to reach out to do so.  Or maybe I'm wrong and would love to hear people's opinions.
Finally, if anyone does have experience putting together the necessary materials to go to 'market' with an acquihire effort I'd love to hear what steps/collateral are needed.
Thanks in Advance! <comment><USER2> > 7 devs (avg. 10 years experience specially in high-scalability, AI and low- > level coding)...

First Action: Define WHO exactly you want to work for as a team. Create a Top 10 List of targets that make sense to the entire group.

Relative to go-to-market materials; consider an Oren Klaff style presentation. > [https://pitchanything.com/](https://pitchanything.com/)

Start with The Big Idea. Naturally, you will also want refreshed, up-to-date CVs for everyone.

In my experience, the real challenge isn't finding potential employers—- it's keeping all those individual team members together. Bon Chance!

</comment><comment><USER3> From time to time I come across some person who is hiring a large number of people. For instance, I know somebody who wanted to hire 20 people for Barclay's bank to develop a web site for their new credit card. Half of those would have been in Delaware, half in Henderson, NV.

He was scratching his head about how to do it, but if someone like that could hire a team instead of an individual they could get their job done quicker.</comment>


Amazon Workers Walked Out over Warehouse Working Conditions - <AUTHOR> https://www.vice.com/en_us/article/pa7qny/60-amazon-workers-walked-out-over-warehouse-working-conditions <comment><USER2> Don't work for Amazon. It's that simple. I doubt they're going to get forklifts to lift every 70lb box - they won't be able to scale their business. Nor would they be able to afford paying you $16.25 an hour which you're already not content with. I'm not defending Amazon, but the demands seem unrealistic. Let us know if WalMart is better.

</comment><comment><USER3> I wonder if the Amazon "FC Ambassadors" (who are paid by the hour to tweet positively about the company[0]) are also tweeting about this.

[0] [https://twitter.com/rulesObeyer/status/1161758672973811712](https://twitter.com/rulesObeyer/status/1161758672973811712)</comment>


New app maker private beta (tweet '#icanapp' for the beta key) - <AUTHOR> http://www.icanapp.com

<comment><USER2> A bit more info on what exactly this "app maker" is/does would be quite helpful. The "about us" and "help" section of the site don't give much useful information. Given some more information, I'd be happy to sign up.

<comment><AUTHOR> it's a website that generates apps for small business and big groups. Apply for a beta key in the registration, and there are floating clouds that follow you explaining how everything works and how to get your app into the app store.</comment></comment>


The Delightful Secret of Successful User Onboarding - <AUTHOR> https://onboardingiq.com/the-delightful-secret-of-successful-user-onboarding-ef3c34243ea7 <comment><USER2> I'm just getting a 404 from Medium here...

<comment><USER3> I think it's this one: [https://www.trychameleon.com/blog/successful-user- onboarding](https://www.trychameleon.com/blog/successful-user-onboarding)

<comment><USER4> This one, unsettlingly, gave me a native authentication dialog. What's that about?

<comment><USER3> sorry, i just Googled it. i don't know</comment></comment></comment></comment>


Loading Images Lazily in HTML - <AUTHOR> https://github.com/rickwierenga/AsyncImg <comment><AUTHOR> This very simple script is a quick-fix until `loading="lazy"` is available on more browsers.</comment>


The young Japanese working themselves to death - <AUTHOR> http://www.bbc.co.uk/news/business-39981997 <comment><USER2> A few thoughts as a foreign worker in a Japanese startup:

* Foreigners get more leeway. I have colleagues that do a strict 40 hours/week.

* The overtime culture isn't strictly enforced. It comes about organically. Your team agrees to deliver a task with a tight deadline. You can go home early, but your colleagues will unquestioningly pick up the slack. Instead of them leaving the office at 10pm, now they stay to midnight. It is easy to feel guilty about leaving at reasonable time.

* There is a lot of praise and admiration for the employees that demonstrate hard work.

* There seems to be an unwritten rule that you stay till your boss goes home. Teams where the boss works a reasonable schedule, also seem to work reasonable hours. If you have a workaholic boss with no personal life then you are in trouble.

* For a lot of young Japanese it appears their colleagues are their only social circle.

* There is a lot of after-work demands on your time. It is common to have work-related dinners and drinks.

<comment><USER3> Foreigners do get more leeway. But that is only because they think you are there just to have a bit of fun for a few years and then leave. If you ever wanted to move into roles with more responsibility then you would be expected to toe the line.

Can definitely attest to everything else you've said. There is also an element of people not wanting to go home often because they have parents living with them (young and old) or their home life isn't all that appealing.

<comment><USER4> > Can definitely attest to everything else you've said. There is also an > element of people not wanting to go home often because they have parents > living with them (young and old) or their home life isn't all that > appealing.

I always wondered why the overtime culture wouldn't slowly fade out as I imagined that top employees would certainly demand to work fair hours resulting in employers having to adjust in order to hire quality staff.

The aspect you mentioned could explain why nobody, including employees who could afford to do so, is really pushing for sane work hours.

On the other hand it's hard to understand that employers and employees alike aren't able to see that the current working conditions are neither healthy nor very productive - there's no way you're anywhere close to your full potential at the end of a 10 or 12 hour shift.

</comment></comment></comment><comment><USER5> This happens in New York as well. What if we could hear from the people suffering from this directly?

We can. Earlier today, a post showed up here about John. It was flagged. I expect my comment to also be moderated, which will reinforce my feelings of being ignored by the world.

[https://github.com/yeukhon/suicide](https://github.com/yeukhon/suicide)

I investigated what's happening to him, and empathise with a lot of his struggles. We're overworked, underpaid, ignored, and rejected by the government.

[https://twitter.com/y3ukhon](https://twitter.com/y3ukhon)

He's got excellent work experience for Mozilla, and a good degree. Working for a tech company in New York. What's bad about that?

\- He's still asking for a second job on weekends just to make ends meet.

May 22: "What part time job would allow me to work on Friday - Sunday with some rest in between? Need one so I can make up some cash."

\- He can't afford anything more than a tiny room:

Apr 13: "if only @LifeOnPurple can release a full size mattress tonight I'd be able to purchase >_< my bedroom can't take a Queen size. #mattress"

\- He cares about the world, but it makes him poor (me too - refusing to work for weapons manufacturers or oil companies has seriously limited my scope of potential jobs)

Apr 5: "I'd be interested in working at places where I can exercise social responsibility and making industry standard salary. Too hard."

\- He's bored at work, probably because managers don't give him enough to do, or don't care enough to simply talk to him. ]

Mar 28: "When I don't seem to do much or making huge progress at work I wonder am I the new fossil at work? At age of 25? Really?"

\- He can't get insurance (me too) because of systematic mistreatment of foreigners by the government (me too):

Mar 5: I write software so I am denied for vision coverage. I am Chinese so I am denied for liver coverage. #preexistingconditions

<comment><USER6> From recent personal discussions, I think part of the solution choosing another place to live. The "hubs" of the world are becoming way too expensive for people who don't purely chase money as an objective (or are born into it.)

<comment><USER5> Where?

I currently live in Taiwan. It costs me 3 months savings to buy a plane ticket to visit family. I can afford to do that once or twice a year. That doesn't matter much though, because I only get 8 days of annual leave anyway.

I'm a British citizen by descent (born in Switzerland to parents resident in France). My future children cannot be British. I cannot become Taiwanese without giving up my previous nationality. I would also have to do military service, and learn how to kill foreigners. There is a conflict of interest here, because I am a foreigner.

I have a Masters of Engineering from Lancaster University, UK. I started Ph.D. at KAIST in Korea, but dropped out when they refused to pay my scholarship.

I wanted to move to Canada for the Express Entry programme, but now they got too many applications from the US. They changed the rules, and now they require me to be a senior manager.

I wanted to move to New Zealand for the Skilled Migrant Category visa. They asked for 2 years work experience. During my 2nd year here, they increased that to 3 years. Now they require 75,000 NZD per year salary (4x my current salary). I don't think any company will pay that.

It is extremely difficult, and getting harder, to take a foreign spouse to the UK.

The US "asked me to leave" (one step short of deportation) when my exchange student visa petition was denied, because I didn't have $25,000 cash in the bank. Thankfully the process was so slow that I finished a whole year at UCSB before they kicked me out. I can't go back any more though.

I also don't think I can afford to get married, because it's just too expensive (300,000 NTD would take me one year to save up).

The politics and finance problems means I don't think I can marry my Taiwanese girlfriend. I believe in chastity, so this probably means that I'll die a virgin.

I've decided that rather than ending my own life, and having no voice, I can at least speak on behalf of those who struggle. The older generation are rich (owning cars and houses, having children). Most people I know who are my age are not able to afford such luxuries. Why should I pay for pensions to support these rich old people? Why should I pay for insurance to extend my life, when I'm not even satisfied with the situation I'm in? I expect that there will be a war soon. I refuse to fight in it, but I hope that here in Taiwan, I'll be on the front lines, and it'll be over for me soon.

<comment><USER7> I'll be blunt. It reads like you love your misery.

You have an easy solution: get some work in the UK. If your girlfriend loves you she'll manage to follow you. If not I guess she's not really marriage material.

<comment><USER5> "not really marriage material" should not be the decision of a government.

She's not super rich, and she works in fashion design. That's not on a skill- shortage list. My salary isn't super high.

I worked in the UK before, as an unpaid missionary. I quit because of serious cultural differences (I wasn't allowed to cook dinner for a female friend - not romantic - in my free time). I studied there in university, and was shocked at how racist people were towards immigrants. They didn't realise that I've always been an immigrant. Just because I look British should force me to live in that country. The British government won't ever let me upgrade my citizenship to let children born overseas become British, no matter how long I live there. That country rejected me, so I'm trying to find another place where I belong.

Many people have problems moving to the UK, some of whom write about it here:

[https://www.facebook.com/groups/139807999382936/](https://www.facebook.com/groups/139807999382936/)

<comment><USER7> I take it you are the kind of people who want others to pat you on the back while you complain but don't care about solutions.

Why do you want to live and adhere to the customs of your current country? Do you really need to get married? If the UK is a problem what would be the problem with forfeiting your UK citizenship to acquire the one of you future wife?

There is a moment when you have to commit to a choice and stop living "le cul entre deux chaises" (the ass between two chairs).

</comment></comment></comment></comment></comment></comment><comment><USER8> All of the government's attempts to address this excessive overwork just seems lackluster.

> Earlier this year the government introduced 'Premium Fridays', encouraging > firms to let their employees out early, at 3pm, on the last Friday each > month. They also want Japanese workers to take more holiday.

That's a single digit number of hours every month. It's meaningless if workers are still doing massive amounts of unpaid overtime.

> Earlier this year the government proposed limiting average overtime to 60 > hours a month though firms would be allowed to up this to 100 hours during > "busy periods" \- well into the karoshi red zone.

And suddenly every period is a "busy period".

> Critics say the government is prioritizing business and economic interests > at the expense of the welfare of workers.

Not even. I'm sure they could actually be more productive if they weren't literally working their employees to death.

Here's an idea. Make companies pay extra compensation if employees work overtime. I guarantee you companies will be literally pushing their employees out the door at 6 PM then.

<comment><USER9> _Make companies pay extra compensation if employees work overtime._

This is the standard practice at many (but not all) Japanese companies with an overtime culture. "Service overtime" (サービス残業) -- uncompensated overtime -- is widely perceived to be abusive, and the abusiveness of this practice is deployed by defenders of the status quo as "We're not abusive; we paid every one of those 80 hours at time and a quarter."

It's priced into the expectations, literally -- my offer letter from my previous employer in Japan had two columns in it, the "formal offer" and the "offer assuming overtime pay[+]", with the number quoted at me being the total salary inclusive of their estimate of overtime. (30 hours of compensated overtime a month.)

(This was... ahem... an optimistic estimate.)

<comment><USER8> So then why do they do it? Why would you pay 1.25x per hour worked when you could hire more employees and have everyone work normal hours. It's one thing to have crunch time. It's another for excessive overtime to be the normal way of doing things.

<comment><USER10> As far as they are concerned, this is normal hours.

</comment></comment></comment></comment><comment><USER11> Personal anecdote. Last month my japanese friend in his late 30's collapsed from a stroke. He is a freelance (!) Web developer I collaborated with and I didn't know that before the accident but he used to work overnight without any sleep. Given his chain-smoking, drinking hectoliters of coffee and a sedentary lifestyle it's hard to miss the causes but still I wonder if just getting sleep could have prevented it to some degree. Now after 3 weeks of induced coma he's slowly regaining consciousness, though how much he will be able to is still unknown.

<comment><USER12> I'm sorry about your friend, I wish for them a good recovery.

</comment></comment><comment><AUTHOR> _" Nearly a quarter of Japanese companies have employees working more than 80 hours overtime a month, often unpaid, a recent survey found. And 12% have employees breaking the 100 hours a month mark."_

This is not uncommon in the US either, in the finance industry, at startups, at much bigger competitive companies, in medicine. I'm actually surprised there isn't more suicide, burnout, and depression from overwork in the US, or maybe the people just aren't as open about it in the US as they are in Japan.

<comment><USER13> Working in Japan for a Japanese company I hope to give some insight.

I find most people in America that worked overtime felt that it was _necessary_ to work because of all the tasks that needed to be completed. In Japan the overtime seems more "required" just to work overtime ( _not always the case of course_ ). I think Americans get a lot more self-satisfaction when they finish their overtime shift (although they don't like it they know it was something that needed to be done).

I think there's a lot of stress and depression in the states from overwork (not as much depression from my group of friends), but not as much as Japan for a few reasons. One guess is that I find people in America more social than Japanese. Most of the "friends" relationships I see in Japan are more-so forced as they are coworkers who just go together and drink. I could be completely wrong here but I feel like they don't share their feelings and talk to reduce stress/depression as much as Americans.

One last thing about overtime is I feel most US companies have bursts of overtime when work needs to get done. Japanese companies often just have "permanent" overtime setting the mentality that they will be doing it forever.

<comment><USER14> What would happen if, as an American, I came into my job in Japan, worked my 40 hours a week, and went home each night at 5?

<comment><USER15> That's probably not a fair question, given that you're an American. There's immediately some difference in expectations.

A better question is what happens if a young college grad in Japan chooses work no _unnecessary_ overtime?

<comment><USER16> Best case scenario: passed over for promotions, cut out of important work discussions, generally ostracized. Worst case scenario: outright abuse.

Just to give you a taste of this: In a previous job in Japan there was a work party on the weekend. I told my boss "I can't got, I have something to do" (A very normal way to refuse something in Japan. The expectation is that no one will ask what your vague reason is). This boss tries to pin me down on exactly why I won't be spending my day off on this event. This leads to 6 months of going over my work with a fine tooth comb, review periods and so on.

<comment><USER13> This sounds very similar to the work places I've seen in Japan, too. Essentially those who don't work as much unpaid, voluntary overtime as others don't get promotions, get shafted on bonuses, and very passive-aggressively "bullied."

I'm surprised your boss tried to pressure you for info. Usually the companies that are more traditional ('non-mandatory' aka _mandatory_ outside activities) will follow cultural norms and just do the punishment without the asking.

</comment></comment></comment></comment></comment></comment><comment><USER17> Obligatory posting of the best piece of writing discussing Japanese workplace culture anywhere on the internet.

[http://www.kalzumeus.com/2014/11/07/doing-business-in- japan/](http://www.kalzumeus.com/2014/11/07/doing-business-in-japan/)

<comment><USER9> Thanks for the praise, though I think that might oversell my blog a bit.

<comment><USER18> Not in the least, that piece has really stuck with me over the years. Thank you for writing it and thanks to OP for sharing it again.

</comment></comment></comment><comment><USER19> I don't understand people working overtime. You sign a contract of typically 40 hours/week. Anything over that timeframe you can reject. Trying to force you or threaten firing you over it is not particularly legal. Showing up in court with a few emails demanding overtime goes a long way I would wager.

Further, I would really like people sticking up more for themselves, putting up with this nonsense normalizes exploitation and makes it worse for _everyone_.

<comment><USER8> No company would be stupid enough to explicitly tell its employees that they must work overtime or be fired. Instead, they create an environment in which you feel social pressure to put in more hours. People choose to work long hours because they get affirmation for it from their managers and colleagues. It's a cultural problem.

<comment><USER19> Until it is given in written form, you can go home after clocked in your agreed worktime. Yes, social pressure can be toxic, still, it is entirely up to you whether you want to participate.

</comment></comment></comment><comment><USER20> > "If you don't quit you have to work 100 hours. If you quit you just can't > live."

Perhaps the root of the problem is the high cost of living, no?

<comment><USER21> Rarely as a Japanese businessman can you quit a job and find another job at either the same or higher pay grade.

The market here revolves around hiring university graduates up to a year before they graduate and then training them from the start in whatever position you want them to do. Very few people change jobs and if you jump from jobs every 3-5 years its seen a negative sign on your CV.

</comment></comment><comment><USER22> So many dark experiences and I heard more. But I contract right now at a Japanese company. 8 hour days, flexible time.. I work remotely from a different city, I come to office once in 2 weeks for two days staying at hotel. Many guys show up at office at 10-11am. Actually annoying since I prefer to work early in the morning.

Also talked to couple other startups that have normal NA hours, their pay was crap though. Also some big web companies have some pretty reasonable hours.

Having said that in lots of other places it is hell.

Last data point I usually work from collaboration space. Heading home around 5-6pm. It is massive traffic jam around that time.. people heading back home. Maybe to drink? Last train is always hilarious experience, but nobody is mean drunk which is nice.

</comment><comment><USER23> To give a perspective, a Japanese corporation, as a part of country-wide effort to address the work pressure problem, had to give bonuses to _make their employees leave early_ [1]. I don't know what drives the Japanese Salarymen but I believe they are insanely committed towards their job. It doesn't seem most of the Japanese salarymen even complain about the overwork.

[1]: [http://www.bbc.com/capital/story/20170413-we-had-to-give- the...](http://www.bbc.com/capital/story/20170413-we-had-to-give-them-bonuses- to-leave-early)

<comment><USER16> It's a bit of a stereotype but: Unhappy home-lives.

If you're going back to an abusive spouse, a crowded house with inlaws and kids, no privacy at all or other problems, I can see why some people might hide at work.

<comment><USER8> Your spouse hates you because you work all the time. You work all the time to avoid your spouse.

</comment></comment></comment><comment><USER24> What is described in the article and comments is the Japan I knew in the 1980s. Starting from the mid 1990s, I've heard a lot about how the changed economy caused business culture to shift significantly toward patterns of the West. Has Japanese business culture really not changed all that much?

</comment><comment><USER25> I read somewhere on HN another article about how time management kills productivity, and conclusion was that the best companies integrate idle time in their schedule. The idea is that time is used for processing interrupts.

</comment><comment><USER26> The story is doubly sad because a) the family often couldn't prevent their children's death, and b) the companies don't want to admit how bad Japanese productivity is and keep resisting the changes.</comment>


C++ Grandmaster Certification Programming Assignment 1 - <AUTHOR> http://www.cppgm.org/pa1.html <comment><USER2> Man up HN, whatever they will accomplish in the end, the content is pretty great so far, no need to bitch and whine. Sad to see most of the derogatory comments here, when someone out there is actually doing a really cool project.

<comment><USER3> Normally I'd agree with you because HN can be unduly harsh to people undertaking ambitious projects. However, in this case the people behind this (CPPGM) are remaining completely anonymous. When you do something as far out as they're doing, you can't expect people to take you seriously if you remain anonymous. They need to put their reputation on the line and give us some reason to trust them that they're not pranksters, recruiters, and/or delusional.

<comment><USER2> There was a previous submission with the initial announcement, I would understand the criticism then, but now they actually shipped something, it's really interesting, and not a single person commented on anything of merit. I remember my struggles when trying to implement a compiler, and let me tell you you can already learn some very useful things by studying the git repo they made available, that would be rather hard to learn otherwise.

</comment></comment></comment><comment><USER3> Previous discussion here: <http://news.ycombinator.com/item?id=5148895> (where this was trashed pretty thoroughly).

A few weeks ago the site said enrollments would close on February 15. On Feb 15 it said they would close "Very soon now." Now they close on March 15. That should indicate how few people are really falling for this.

Edit: hang on - they have a press release claiming they got 10,000 enrollments and enrollment has been extended due to "popular demand": <http://www.cppgm.org/news.html>. This is surreal.

<comment><USER4> I am positive those 10,000 fall into two groups:

1) People who understand this is impossible, and are interested to see what they are actually going to do.

2) People who don't realise this is impossible.

<comment><USER5> Ok, you made me honestly curious. What makes you think writing a tokenizer in C++ is impossible ? I didn't see any deadline, but is it because of time ? They even provide some algorithmic hints on how to do it...

<comment><USER6> The project aims to build not just the tokenizer, but a complete compiler and standard library. None of GCC, Clang, Microsoft or Intel can provide a complete, bug free C++11 implementation. If you hang out in freenode's ##c++, you'll see people finding new corner cases every day. It's reasonable to consider this project impossible for an individual.

</comment></comment></comment></comment><comment><USER7> _Write a C++ application called pptoken that accepts a C++ Source File on standard input, executes phases 1, 2 and 3 of the Phases of Translation (defined below), and describes the resulting sequence of preprocessing-tokens to standard output in the specified format._

In all seriousness, is this a prank?

<comment><USER8> I had the same reaction...seems like an elaborate troll to point out the vast complexity of C++. This particular assignment doesn't seem "that hard", but this is probably the easiest part of writing a C++ compiler/stdlib.

</comment></comment><comment><USER9> Last time i remember this on HN i "enrolled", but no message nor login information were sent to my email.

I felt stupid for a while because i thought this was just a facade to obtain the data for spam/recruiting purposes.

<comment><USER10> Same. I was super excited but then when I saw that no email or anything was sent I felt like a complete fool. I'd still be super excited if this was even halfway legit.

</comment></comment><comment><USER11> Look at <http://www.cppgm.org/news.html>:

 _2013-02-22_ : 10,000 enrolled. Programming Assignment 1 Posted. Enrollments Extended:

They also have a time machine.

</comment><comment><USER12> It looks like the assignment is just to write a tokenizer. That's not THAT bad.

I wrote one years ago, not for C++11 though.

</comment><comment><USER13> There's a nonzero chance that this is real and that they actually have a roadmap for completion.

That said, I'm very surprised they don't have an automated system like the USACO submission system (where you upload code and they compile and run it against input data).

<comment><USER4> There is zero chance anyone will actually complete this in a reasonable time- frame (except for those small number of people who have already done it, and I suspect even they would fail to accomplish it).

<comment><USER6> No compiler vendor (gcc, clang, msvc, intelcc) has produced a bug-free implementation of C++11 so I would contend that no one has already done it.

</comment></comment></comment><comment><USER14> The fact that a language could meaningfully have a "Grandmaster Certification" should be a point of embarrassment, not pride.

<comment><USER7> What are some languages in which it would not be possible to demonstrate a great deal of mastery in?

<comment><USER8> I believe it's a comment about the complexity of the language, not the level of skill achievable using the language. Consider this (many levels left out for brevity):

A first-year CS student could implement a working LISP or assembler as part of their coursework

A motivated individual or small group could implement Ruby or Python in a few years in their free time.

AFAIK no organization has yet implemented C++11

<comment><USER7> Yeah I figured he was taking a cheap shot at C++ which is why I asked him to clarify what he meant.

> AFAIK no organization has yet implemented C++11

Get back to me when Ruby actually has a specification.

Python's reference documentation doesn't suck, but neither is it a formal language standard.

Lisp has an ISO standard, but it's way beyond what a first-year CS student could fully implement.

</comment></comment></comment></comment><comment><USER15> After I spend weeks creating this nonsense compiler what am I going to do with my Grand Master Certification? I've asked around my office and no-one here either recognizes it nor would they hire anyone based on them having it.

Just do a an MSc in computer science instead, if you haven't already.

<comment><USER16> I seriously doubt anyone is deciding between attempting this class and getting an MSc</comment></comment>


Yahoo SkyPhrase SDK: Making Apps Understand Natural Language - <AUTHOR> http://yahoolabs.tumblr.com/post/123387824121/making-apps-understand-natural-language <comment><USER2> It says it's good but it's missing data to help believing it. Also, I wonder, what is the output of such a system? Some kind of AST? Or some kind of database you can query?

<comment><USER3> Exactly. Seems like vaporware to me... It doesn't even say what "it" is. A user interface component for Android/iPhone apps? And is it coupled to some sort of closed source backend API? I signed up to learn more. All they did was record my email.</comment></comment>


Spectro: Adventures in Go - <AUTHOR> http://markcrossfield.co.uk/2015-08-22-spectro-adventures-in-go.html <comment><USER2> > For example, I particularly liked that since map iteration order is not > guaranteed, it is actively randomised at runtime to make that clear

What is there to like about this feature?

1\. It introduces unavoidable noise into performance testing

2\. It makes your functions impure

3\. Your simple script will have different output across successive runs, even with the same input

4\. It removes a reasonable and useful feature that all other languages support, namely, that you can iterate the same map twice in a row in the same order

5\. Working around this usually involves sorting, which in turn requires a lot of boilerplate: [https://gobyexample.com/sorting-by- functions](https://gobyexample.com/sorting-by-functions)

It seems all this does is make life harder. I'd be interested to hear from anyone who thinks this feature has helped them.

<comment><USER3> I like it.

If you're not going to have guaranteed order, then explicitly breaking it to avoid accidental dependency that will break your programs later when the language implementation changes is very much a good thing.

Compare this to python, which has deterministic dictionary order, but it changes across implementations. That's just begging for problems.

I think the whole philosophy of Go is kind of "try to avoid shit breaking in weird and unexpected a mysterious ways", an approach I become more sympathetic to the longer I program.

<comment><USER4> Is there any advantage to randomizing on every iteration over just randomizing a single seed at process startup?

Generating one seed at startup would solve the problem of accidental de facto stabilization of dictionary iteration order while avoiding the issues mentioned in the parent comment.

<comment><USER3> That does seem more reasonable, actually, unless there's some crazy reason you might actually want to vary the order w/in a single process lifetime I'm overlooking...

</comment></comment></comment></comment><comment><USER5> There's an odd, big complaint about numeric casts that culminates in this line of code:

        fmt.Fprintf(os.Stderr, "%"+strconv.FormatInt(int64(paddingWidth), 10)+"s %s\r", "", legend)

Which could be improved greatly, and made a lot more readable with:

        fmt.Fprint(os.Stderr, strings.Repeat(" ", paddingWidth), legend+"\r")

In my experience with Go over the last few years, any time I have this "ugh" moments it pays to take a step back. It's usually a code smell that there's a better way.

<comment><USER6> You can do better -- fmt provides a way to give a dynamic width or precision as an int argument.

      fmt.Fprintf(os.Stderr, "%*s %s\r", paddingWidth, "", legend)

I'd further wonder whether a separate padding calculation is needed at all (too lazy to go read the source on Github at the moment).

<comment><USER5> I started with that, but there's no reason to use the formatting specifiers when the padding string is already blank. With the dynamic width Fprintf still needs to waste time parsing the format string.</comment></comment></comment>


Canadian Traveller Problem - <AUTHOR> https://en.wikipedia.org/wiki/Canadian_traveller_problem <comment><USER2> > traveling a network of cities with snowfall randomly blocking roads

More likely road-works projects fixing the potholes created by frost-heave randomly blocking roads. -_-</comment>


Kindred: Neanderthal Life, Love, Death and Art - <AUTHOR> https://www.spectator.co.uk/article/is-it-possible-that-neanderthals-had-a-spiritual-life- <comment><USER2> You can also listen to a podcast interview with the author here: [https://play.acast.com/s/dansnowshistoryhit/theneanderthals](https://play.acast.com/s/dansnowshistoryhit/theneanderthals)

</comment><comment><USER3> One question I have is, why are we so certain that Neanderthals were less intelligent than their human contemporaries? Is it just the speech issue?

<comment><USER4> Not quite. Neanderthals were less social than us. They had bigger heads and bigger brains, so arguably, they could have been more intelligent than us. The problem for Neanderthals was that they could only trust and bond with a dozen or so others, whereas humans could thrive in societies as large as hundreds. There's some speculation as to why this is the case, but one reason may be that we were able to gossip about one another and remember more individuals, thus our trust network was bigger, and thus we could coordinate large scale hunts / attacks, and this is potentially why we could have overwhelmed Neanderthals despite their bigger size and bigger brains. I got a lot of this from the book Sapiens, as well as others, so I don't know exactly how 'up-to- date' this information is.

<comment><USER5> Good to remember that whales have much larger brains than us but a lot of it is dedicated to running their massive body.

And some birds are extremely intelligent despite having apparently small brains.

<comment><USER4> Yes that's true. Proportionally to their size, humans had bigger brains than Neanderthals

</comment></comment></comment></comment><comment><USER6> [https://archive.is/phwTX](https://archive.is/phwTX)

</comment><comment><USER7> It seems every article on Neanderthals has to be prefaced with a story of how we believed that they were brute club-wielding cave dwellers, but this discovery has changed the way we think about them... Can't journalists find a different way of spinning this story?

<comment><USER8> Unfortunately, anthropological "hierarchalism" driven by race-conscious notions of personhood has made these regular reminders necessary. We still haven't completely shed the unscientific caricatures of neanderthals that were constructed for sociopolitical purposes (and before it was discovered that most of Europe and Asia [and possibly the rest of humanity] is partially descended from them).

</comment></comment><comment><USER9> There's so much that jumps out at me in this article.

It asks - 'Do neanderthals have a spiritual life?'.

Some questions: Do we (in the here and now) have a 'spiritual life'? What does it mean to have a 'spiritual life'? How could we possible know whether Neanderthals had one? How do we even know what Neanderthals were even like? Did they really live for 350,000 years? So much speculation.

The reality is we cannot know anything much beyond our present experience. History cannot really teach us anything. It is a politicised story - his-story - the story written by the victors, whoever they are.

All history is an interpretative act. When we look back at the past, it is all speculation. We are NOT being presented with facts. We find whatever we want to find in ourselves in the present; we use some artefacts (genuine or false ones) as a basis for exploring our current situation.

So, IMO, truth has little to do with it, but it can make for an interesting investigation anyway!

<comment><USER10> Discussions about epistemology becomes very tiresome when shoehorned into everything.

<comment><USER9> "Can't we just assume the standard narrative is correct, and work with that? What harm can it do?"

<comment><USER11> saying we can't know much about neanderthal spiritual life is probably correct, but poster went on to claim nothing can be learned from history which is the sort of obviously nonsense viewpoint people adopt when the lessons of history don't agree with what they want to be true, currently

<comment><USER9> You are right, very little can be learned from history, IMO.

We get a very skewed and biased view of history on anything that matters.

If you want an example, take a look at star forts. These forts are often beautiful. And they are all over the world - UK, US (the statue of Liberty has one for its base), Canada, Japan, Russia. They are least 3-400 years old. I never learnt about these in school. But there they are. Who built them? Why did they build them like that?

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

<comment><USER12> That link has a very reasonable theory about the why "The design of the starfort did away with "dead zones," or areas in which an attacker cannot be brought under fire, by the use of triangular bastions which command all approaches."

<comment><USER9> Yes - but which society created all these similarly designed forts 100s of years ago, across the world? They weren't thrown up by a small group of pilgrims - they were brilliantly engineered and took effort to make.

But I didn't learn anything about these castles at school. And we did do castles in history - it was my favourite thing. So what are we missing or misunderstanding.</comment></comment></comment></comment></comment></comment></comment>