The Twitter Platform is Dead, Long Live the Twitter Social Network - <AUTHOR> http://interactionandflow.com/blog/2013/3/7/the-twitter-platform-is-dead-long-live-the-twitter-social-network

<comment><USER2> While the geeks were integral to Twitter's early success, they are mostly irrelevant now as Twitter grows as a social network. The huge majority of Twitter's current users have never coded for it and aren't even aware that 3rd party apps exist. They simply create or (mostly) consume content.

Twitter may have needed the geeks and developers and folks who cared about an open network creating something new in the beginning, but they don't need them to become profitable now. It's similar to the way that power users and content creators used to be integral to Apple since they were some of the larger customers and influencers, but now that Apple is mainstream with the success of the iPhone and iPad for regular consumers, the content creators and power users make up tiny and still shrinking part of Apple's business.

The odd bit is that the hobbyists and geeks think they are still important to Twitter and that by banding together and raising a fuss or leaving they will impact it. Much the way content creators and power users still think they could with Apple. They won't. They're such a small minority now, that they don't matter anywhere near as much as they think they do.

</comment><comment><USER3> " the implicit contract it entered with its early users is null and void."

Does an API without a binding contractual agreement really imply future applicability? It's always a big risk to lean on another company's API for your product / business.

</comment><comment><USER4> My impression of twitter remains unchanged. It is one of idle disinterest. Once I was subscribed to a user that posted race results I cared about. Since then, I haven't seen anything on twitter that I care about, not that I've spent much effort looking.

</comment><comment><USER5> Fine article... 18 months too late to be relevant. Pretty sure this is a dead horse being beaten.

<comment><AUTHOR> I rather be late than early and wrong. But yeah the first signs of it first appeared in 2011 and now the trend is apparent.

<comment><USER6> Here's a bit I wrote in 2010 about Twitter's tightening controls [https://garrickvanburen.com/archive/twitter-poured-cement- in...](https://garrickvanburen.com/archive/twitter-poured-cement-in-a-bucket- of-rocks/)

<comment><AUTHOR> You are from the future. Great prediction. Here is a piece i should have written that looks at the trend across apps [http://thenextweb.com/dd/2013/03/12/apis-are-dead-long- live-...](http://thenextweb.com/dd/2013/03/12/apis-are-dead-long-live-apis/)</comment></comment></comment></comment>


Type Punning Functions in C - <AUTHOR> http://www.evanmiller.org/type-punning-functions-in-c.html <comment><USER2> Sir, while the gentlemen and ladies of this fine organization are infinitely pleased with your research into the black magic of the nether regions and the treatise you have presented from aforesaid research, we would ask you please be even more strident in your warnings about practicing this subject. It seems a number of neophytes have disappeared under odd circumstances in the weeks since you presented your work, and the interruption to the experiments they were assisting with has become quite burdensome. Additionally, we expect training and recruitment costs to be quite a bit higher than normal next year, and as you well know our coffers are not unlimited.

<comment><USER3> > black magic of the nether regions

Or plain abstraction violation. "Black magic" gives it an undeserved good reputation: "I must aspire to be clever enough to understand and actively make use of this."

<comment><USER2> Maybe. Given it relies on the calling convention of the OS you're on, the CPU architecture you're on, and knowledge of assembly, it could very well be _both_.

<comment><USER4> It also relies on implementation-specific behavior in the compiler, since the latter is not actually required to follow established the convention for argument passing, so long as it can prove that the only place the function is called from is the same translation unit.

In fact, so far as I can tell by looking at the first example, the compiler can circumvent this whole thing by noting that:

1\. DoubleToTheInt is only ever called in the same unit, so it can be inlined - no need to generate the function.

2\. Pointer to DoubleToTheInt is created, but is then immediately cast to an incompatible function type, which is undefined behavior - and so it can be substituted with any random value, say, whatever happens to be in EAX at that moment (any U.B. is substitutable for any other U.B.!), and the compiler can still avoid generating the actual function.

</comment></comment></comment></comment><comment><USER5> Here's an example I'm rather proud of. It involves setting getpid(2) as a signal handler(2) via JNA.

[https://github.com/facebook/buck/commit/48f1e201a966b9e2adab...](https://github.com/facebook/buck/commit/48f1e201a966b9e2adabdde4a7425d0f3989208f)

<comment><USER6> Why is setting the signal handler for SIGHUP to getpid preferable to masking the signal?

<comment><USER7> > But when we exec a child, the kernel resets any signal not set to `SIG_IGN` > to `SIG_DFL`, so all our children, atomically, get their `SIGCHLD` handlers > set to `SIG_DFL` at the moment of creation. Consequently, when either our > process or the kernel sends `SIGHUP` to our process group, all our children > die.

<comment><USER6> SIG_IGN is not the same as the signal mask.

The result is the same though; I forgot that signal mask is not reset on exec. Damn POSIX signals!

</comment></comment></comment></comment><comment><USER8> If your C compiler doesn't complain bitterly to you about an incompatible pointer type on that assignment, get a better C compiler. If your C compiler does complain bitterly about it, heed those warnings or expect no sympathy.

If you write this in production code, and don't get sent home that day in tears, your company's code review process has failed.

<comment><USER9> > If your C compiler doesn't complain bitterly to you about an incompatible > pointer type on that assignment, get a better C compiler.

The example code uses C style casts, which is C-speak for "fuck off compiler I know what I'm doing." I'd like to see what warnings your compiler produces. VS2015 /W4 /ANALYZE produces nothing, and neither do clang nor GCC from the looks of it.

That people C cast without knowing what they're doing is rather unfortunate tragedy. That this is a common enough problem, that the Win32 API is littered with backwards compatability hacks where someone C-casted away ABI differences turns it into a statistic.

> If you write this in production code, and don't get sent home that day in > tears, your company's code review process has failed.

Assuming we're talking "well meaning newbie" instead of "sanity hating self- flagellating freak and/or undefined behavior worshiping cultist", I prefer to carefully explain that they've invoked undefined behavior, that undefined behavior leads to crunching to find optimizer induced heisenbugs in the weeks before we ship, and to impress upon them that this is why we never cast away even "trivial" and "minor" function pointer differences. And then, when they ask what the _correct_ thing to do is, point out the API docs and header both have this little "WINAPI" annotation they can use. Hey! No more casts! _Easier_ than the casts too. Win/win.

However, if we _are_ talking about the "sanity hating self-flagellating freak and/or undefined behavior worshiping cultist", I can only recommend nuking the site from orbit. It's the only way to be sure. If their home isn't part of the radioactive crater, you didn't use large enough nukes, and your company's code review process has failed.

<comment><USER5> I'd hate to work at a company with a blanket prohibition on dirty tricks like this. On rare occasions, there are good reasons to use hacks, and I'd hope my coworkers would at least be open to an attempt at justification. Sometimes silly newbie mistakes actually end up being the right thing to do in rare, specialized circumstances and in experienced hands.

<comment><USER10> I can't ever imagine a scenario where a hack _like_ _that_ is acceptable.

If you need something like that, just drop down to assembly. It's more portable (in the sense that you're coding to an interface), infinitely more clear about what you're doing and and how you're doing it, much less likely to break, and when it does break is likely to break loudly.

Even if you've never done a lick of assembly programming (I haven't done much) it'd still be infinitely preferable, even if you had to support a dozen architectures with two dozen different function proxies.

"Hack" is a very broad term. By some definitions a significant chunk of extant code qualifies as a hack. But whatever the definition, a hack still implies some quantum of legitimacy. There's nothing legitimate in using function type punning as a way to reorder or control argument values. Not unless this was 1969, where there was precisely one C compiler, used by precisely one guy, and where such code was expected to be thrown out in short order, never to infect code that executed in other than identical circumstances.

<comment><USER11> The reordering thing is bunk anyway, because if you just define the reordering function:

      double IntPowerOfDouble(int power, double base)
      {
          return DoubleToTheInt(base, power);
      }

...then gcc with -O1 will optimise IntPowerOfDouble to a plain "call DoubleToTheInt", and with -O2 will completely inline DoubleToTheInt into it.

</comment></comment></comment></comment></comment><comment><USER12> This is undefined behavior, so you're claim that this is 'in C' is blatantly false. In general, you cannot assume the underlying architecture will pass its arguments in any particular location.

<comment><USER2> It's specifically presented as _not_ part of C.

 _I cheated a little bit above — I assumed you 're running code on a 64-bit x86 PC. If you're on another architecture, the trick above might not work. In spite of C's reputation for having an infinite number of dark corners, the int-double-argument-order behavior is certainly not a part of the C standard. It's a result of how functions are called on today's x86 machines, and can be used for some neat programming tricks._

<comment><USER13> But it is part of the C standard: It's explicitly undefined behavior.

There are varieties of type punning that are legal C, so I agree it's confusing to present this UB implementation artifact as "Type Punning ... in C".

Still a neat magic trick, and an interesting explanation of how it works.

<comment><USER2> In that respect, every possible situation that could happen is part of the standard, as it separates everything into defined and undefined. Cosmic rays twiddling bits in memory is part of the standard by UB under that view. While technically correct, it's useless in practice when taken to this extreme.

<comment><USER14> twoodfin is correct in saying that it is explicitly undefined behavior: "If a converted pointer is used to call a function whose type is not compatible with the pointed-to type, the behavior is undefined." See [http://stackoverflow.com/questions/188839/function- pointer-c...](http://stackoverflow.com/questions/188839/function-pointer-cast- to-different-signature)

Your response would make sense if twoodfin claimed it was _implicitly_ undefined behavior. But that's not the case. The standard clearly addresses this case.

<comment><USER15> Except that the C standard explicitly makes no distinction between explicit and implicit undefined behavior.

        If a "shall" or "shall not" requirement that appears outside
        of a constraint or runtime constraint is violated, the behavior
        is undefined. Undefined behavior is otherwise indicated in this
        International Standard by the words "undefined behavior" or by
        the omission of any explicit definition of behavior. There is
        no difference in emphasis among these three; they all describe
        "behavior that is undefined".

N1570 section 4 paragraph 2.

</comment></comment></comment></comment></comment></comment><comment> david-given Incidentally, the codebase I'm looking at right now contains gems like this:

        /*VARARGS2*/
        int margin_printf (fp, a, b, c, d, e, f, g)
        FILE *fp;
        char *a;
        long b, c, d, e, f, g;
        {
            ind_printf (0, fp, a, b, c, d, e, f, g);
        } /* margin_printf */

Called (from a different source file) like this:

        margin_printf (outfile, length ? "/* %s */\n" : "\n", storage);

Okay, so that's K&R C, and it's not actually compiled any more (because I've been slowly taking this stuff out and replacing it with things that actually work), but still --- the horror, the horror...

<comment><USER11> That kind of hackery was necessary because K&R C didn't give you any sanctioned way to write your own printf-like functions. ANSI C introduced <stdarg.h>.

<comment> david-given Sure. Also, K&R C tended to target platforms with really simple ABIs, where parameters were always passed on the stack and everything was a machine word; so you could get away with this kind of thing.

K&R C actually has a minimalist elegance to it that later versions of C lost. Not that I'm claiming that it's _better_ , of course. But K&R C had a distinct philosophy to it that was definitely its own.

</comment></comment></comment><comment><USER16> _... we saw how register allocation and calling conventions — supposedly the exclusive concern of assembly-spinning compiler writers — occasionally pop their heads up in C ..._

I don't know about "occasionally". At least on Windows, calling conventions used to be a constant headache. The C language default was cdecl, but the Win32 API default (most of the time) was stdcall. Then there was a variant (fastcall?) that tried to make use of registers.

Maybe it's all fixed now... But this being Win32, I rather expect they've managed to accumulate a few more "interesting" gotchas and edge cases as the platform expanded with 64-bit, WinRT, Universal Windows Platform and whatever.

<comment><USER5> Fortunately, in the amd64 Windows world, there's only one calling convention. (Edit: as cremno points out, there's now a new vectorcall convention. Dammit.) The 64-bit Windows ABI is a big improvement over the old 32-bit one. Other improvements are use of unwind tables for SEH and the requirement that all code be unwindable.

<comment><USER17> > the requirement that all code be unwindable.

i would not call that an improvement in all cases... the extra code produced by enabling exceptions, even for the latest compilers, produces enough bloat and slow down for basically everyone seriously concerned with real-time performance to turn them off.

small simple functions are forced to have prologue/epilogue, use a frame pointer and to preserve the return address on the stack. doesn't sound like much, but if your function does anything simple (float f() { return 1; } bool g(float a, float b) { return a < b; } etc...) you spend all the time paying for exceptions instead of the intended functionality.

<comment><USER5> You're confusing unwinding mechanisms. The whole point of using unwind tables is to _avoid_ the need to preserve frame pointers. There zero cost in pure C code and minimal cost in C++ code just for preserving the ability to unwind. You absolutely do not need to have extra prologue and epilogue code or to burn a register for a frame pointer.

<comment><USER17> from what i understood it only gets rid of those requirements in some cases....

there is a table i remember in some doc about this, the only reason i listed from memory was the lack of being able to find it quickly on google

.. its a shame i can't find it. perhaps my memory is imply faulty.

</comment></comment></comment></comment></comment><comment><USER17> its a shame this only glosses over the subject, and starts with a highly misleading example and then continues with plenty more misleading information.

unix/windows are not interchangeable with compilers targetting those platforms. the article doesn't make the distinction or highlight why it matters - the OS has nothing to do with calling conventions in this context, they are just very conveniently the same in this case.

this example doesn't work with vs2010 out of the box because it targets win32 by default... for example. its the compilers, and only the compilers, which are deciding this. the standard calling convention for the platform is incidental, and it being identical to the default for the compiler is a wise design choice for compilers targetting x64, rather than a necessity - something which is much clearer in the old world of windows and x86 (32-bit) where cdecl was the default out of the box, and stdcall was what windows api calls expected.

<comment><USER18> Doesn't the compiler at least need to use the platform-standard argument convention when calling OS functions?

<comment><USER19> Yes. Every Windows API is prefixed with WINAPI, which is a macro for the calling convention.

<comment><USER4> The macro expands to nothing on Win64, though, because it has one standard calling convention.

(At the ABI boundary, anyway. There's also __vectorcall now. And, of course, the compiler can use whatever it wants for functions that are not exposed at the boundary - even arbitrary register assignments based on where the function is actually called, to minimize the amount of work needed to save registers etc.)

</comment></comment></comment></comment><comment><USER20> I freaking hate you, OP. I really freaking hate you right now. This is an abomination in the sight of God.</comment>


GitHub's Architecture, before and after migration - <AUTHOR> http://www.anchor.com.au/blog/2009/09/github-designing-success/

<comment><USER2> Their migration seems to have gone quite smoothly. And the whole site feels much faster to me.

Congratulations for that.

And thanks for sharing this information about your architecture, this was a very interesting read.

</comment><comment><USER3> Are we to believe that Rackspace plus outsourced system administration is still cheaper than Engine Yard? Impressive.

<comment><USER4> Engine Yard hosting was free. I don't think it was about cutting costs necessarily, but rather it was for improving the performance of the site and opening opportunities for scaling rapidly in the future.

<comment><USER5> EY told them if they wanted to continue to start paying and they said it was a different by a huge amount.

<comment><USER5> Yes, but you can't say if they stayed at EY it would be free.

<comment><USER6> It would also have been free to run Github off of an old server out of their garage. Just not very functional.

</comment></comment></comment></comment></comment><comment><USER7> I've used Anchor for web hosting (for myself & for clients) and I thoroughly recommend them. Not only is their service great they have technically competent staff. The norm in IT these days seems to be that you have to persevere/fight your way through x layers of support before you get someone who understands tech, at Anchor everytime the person who first spoke to me was able to understand and resolve the issue.

</comment><comment><USER8> I've setup similar solutions in the past. Nowadays I don't agree with having an entire stack basically sitting idle. I prefer to get those resource involved intelligently. Looking forward to more details and possible reasons for choosing the technology (DRDB, LB software, etc )

<comment><USER9> We run 12GB of memcache on each slave file server. Hardly idle!

<comment><USER8> I was looking at [http://www.anchor.com.au/blog/wp- content/uploads/2009/09/Git...](http://www.anchor.com.au/blog/wp- content/uploads/2009/09/GitHubStorage_Small.png) which shows file server B as a failover, traffic coming into the active LB. Does the active LB then have a pool which includes other file server B services ?

</comment></comment></comment><comment><USER10> Only 1TB+ of storage for 15+ physical servers?</comment>


The Case for Redesigning Single-Use-Plastic - <AUTHOR> https://email@example.com/a-case-for-redesigning-single-use-plastic-79aa888cb411 <comment><USER2> This is a tangent from the article, but related. The 2020 oil price crash means that virgin plastic (unrecycled) is much cheaper to produce and buy relative to recycled plastic compared to before the oil price crash.

Article for more: [https://www.bloomberg.com/news/articles/2020-05-06/oil- crash...](https://www.bloomberg.com/news/articles/2020-05-06/oil-crash-means- single-use-plastic-is-back-as-recycling-struggles) / [https://archive.is/8vTIH](https://archive.is/8vTIH)

</comment><comment><USER2> [https://archive.is/6oOed](https://archive.is/6oOed)</comment>


The Story of Metal Gear Solid's English Translation - <AUTHOR> https://www.polygon.com/2019/7/18/20696081/metal-gear-solid-translation-japanese-english-jeremy-blaustein <comment><USER2> I love Japanese entertainment. I'm not a native speaker of either, but I often use English subtitles with Japanese audio, because my English is better than my Japanese. As a result of having both languages in front of me at the same time, I often notice when translators take liberties and sometimes even rewrite entire personalities of characters, and it has always annoyed me a lot.

This article was great for helping me understand the motivations for localizing stories and characters (instead of simply translating them). I certainly don't blame the author (and other translators) for trying to provide the American audience with what they think is the best possible experience. But for anybody who isn't American, the localization might be entirely wasted - there's a good chance that they're just as familiar with Japanese culture and history as they are with American culture and history.

What's worse, in cases where the localization is wildly different from the original, the audience probably doesn't have any way of knowing it. It would be fair to tell the audience when the localization is inspired by or based on the original, instead of a direct translation of it. Otherwise, consumers can be misled to thinking they like or dislike a certain writer, while in reality their opinion is based entirely on a translator.

Slightly related: in Final Fantasy XIV, a character in the main story was COMPLETELY changed for the English version of the game. Playing in Japanese, I grew quite fond of the character, so when the character eventually died in the story, it had an actual impact for me. A friend of mine plays the same game exclusively in English, and when I discussed the death with him, he told me that this character was completely forgettable for him and he didn't even really remember the circumstances of the death. I'm fairly certain that the lack of impact for him was entirely because of the localization.

<comment><USER3> I wonder if there's any source of information where I can get specific examples of this issue. It would be quite curious to see side by side comparisons on how stories differ, and see if there's any general trend.

<comment><USER4> It's not a "source of information" but a "specific example": the robotech RPG manuals (or at least some of them 90's editions, not the main one but the companions) had an appendix where they delved into the differencies between the US and Japanese translations. Looks like not just technical terms, but some plot lines diverted fairly from the original

<comment><USER5> Wouldn't that have to be the case as Robotech is a US combination of 2 unrelated Japanese cartoons?

</comment></comment></comment></comment><comment><USER6> I have had very similar experiences to the author when doing a magazine translation job from Japanese to English. Very regularly the editor would take issue with me writing an English translation that sounded natural but didn't use a word with the exact same meaning and part of speech as the original.

Having worked in translation for a little while, bad and awkward translations really do stand out a mile. "How nostalgic!" is such a common way to translate "懐かしい" but I've never heard anyone say that in English.

The distance between the languages will always leave the translator with a sizable challenge. It's a real shame to hear the Kojima was not on board with this style of translation.

<comment><USER7> I did a fair amount of scanlation back in the day (very obscure manga). One of the things I liked about scanlation was being able write hacked up English on the assumption that the reader knew enough about Japanese culture/language to make the leap from awkward English to Japanese concept. But, if I was writing for a larger audience I think it would be incredibly difficult to write idiomatic English and still capture the Japanese sense of the sentence. I'm in awe when I see people who are successful. I'm convinced you have to be an incredibly good writer of English to be able to pull it off (which I am not ;-) ).

I admit do having a wave of nostalgia now :-) Few things brought me as much pleasure as scanlation...

<comment><USER8>
        One of the things I liked about scanlation was being
        able write hacked up English on the assumption that
        the reader knew enough about Japanese culture/language
        to make the leap from awkward English to Japanese concept.

First of all, thank you to you and the other scanslators of the world. You made a lot of things possible for your readers!

Translating manga must be so tough. At least in anime, if you're watching English subtitles, you can _hear the characters speaking in Japanese_ which helps to retain some of the original meaning. I don't speak Japanese, but I can recognize at least certain things like honorifics that convey a lot of meaning... that adds a lot of meaning to the subtitles I'm reading.

But with manga, there's no such luxury... you did a really challenging job.

</comment></comment></comment><comment><USER9> Highly recommend checking out this hour long interview with Jeremy Blaustein, the author of the linked article, who worked on the Silent Hill franchise among other things.

[https://www.youtube.com/watch?v=2DB5GFiTRig](https://www.youtube.com/watch?v=2DB5GFiTRig)

He gives a lot of background on how the industry was at the time, not that much earlier than the MGS release. It boils down to basically being a wild west of sorts from what I remember.

Similarly, I can also recommend the rest of TheGrateDebate's YouTube channel. It's a group of Silent Hill fans talking about Silent Hill things with high production qualities. I don't even think you have to be much of a SH fan to enjoy their works.

On a side note, I was reading Jeremy's twitter feed a few weeks ago and I believe he was likely tapped to write this in response to an MGS story he shared: [https://twitter.com/JeremyBlaustein/status/11431327794014699...](https://twitter.com/JeremyBlaustein/status/1143132779401469952)

</comment><comment><USER10> There are many parts of this game that are burned into my memory. It was such a deeply voice-acted game with so much emotional content. The gameplay was fun to repeat because there were different ways to approach each challenge. Reading up on the lexicon of the US military explains the use of the word "pineapples" to describe hand grenades when Snake is speaking over comm on the first level. This article gives context to many of the lines that have stuck with me.

There is a chapter of Metal Gear Solid 4 that takes place in a modern remake of the first level and one of the later levels of the original. There is even a playable version of the original that comes up in a dream sequence. The dedication that the crew has had for their work from the original and on is remarkable.

</comment><comment><USER11> Great article. I don't agree with the choices made by the translator (I think any attempt to "satisfy the marketplace" will always corrupt a translation), but I admire the enormous effort spent researching for his translation.

Here is another article on translation posted a few days ago to HN that I think contrasts this one nicely:

Stephen Snyder, "The Murakami Effect" @ LitHub ([https://lithub.com/the- murakami-effect/](https://lithub.com/the-murakami-effect/))

HN Discussion ([https://news.ycombinator.com/item?id=20389112](https://news.ycombinator.com/item?id=20389112))

<comment><USER12> > any attempt to "satisfy the marketplace" will always corrupt a translation

I don't know how you're getting this from the article - everything he says about his efforts boils down to trying to change language that sounds flat and lifeless in translation into something that lives and breathes, and I think he's absolutely right to have made that attempt. (even if he misses the mark sometimes, like with the castlevania "what is a man?" bit...)

Living in JP I wind up seeing a lot of movies and TV with one language in the audio and the other in subtitles, and personally, "faithful" translations drive me bonkers with how flat and boring and explanatory they sound.

My pet theory is that it ultimately stems from the source languages being so linguistically different. I once read a book where the translator said in his notes (about Voltaire) "But mostly I've just tried to stay out of his way, for I find that he speaks very good English already", and I've often thought how hard it is to imagine a JP>EN translator feeling the same way.

<comment><USER13> I think a less accurate translation can sometimes result in a better product, but the translator needs to be very good to pull it off. The most notable example I can think of is Vagrant Story, which was widely praised for its localization.

Example from The GIA's review[0]:

"Lines as bland in the original Japanese as

"It is because you acknowledge things like freedom of belief. There can be only one God. This sort of incident occurs because you let heretics like them out of your control. That, and our parliament is impotent..."

become:

"All because of this religious freedom! Too much freedom, too many gods. Let those cultist cur-dogs run loose, and they will bite you. Gods! While our Parliament cowers...""

But if a bad writer tries this then you get Working Designs' localization style, where they "improved" the originals with unfunny 4th-wall-breaking jokes and references.

[0] [https://web.archive.org/web/20010608201912/http://www.thegia...](https://web.archive.org/web/20010608201912/http://www.thegia.com/psx/vgst/vgst.html)

<comment><USER11> Another controversial translation is the English localization of the "Ghost Stories" anime [1], which the authors were desperate to sell to Western audiences despite flopping in Japan. The show is full of hard-to-translate cultural references, so the translators quite drastically changed the tone of the show.

I would say Ghost Stories is a successful example of "satisfying the market" via something like an "official parody" of the original work, but it definitely doesn't remain faithful to the original. I'm glad it exists, and it has creative value, but it definitely fails as a "translation".

[1]: [https://dubbing.fandom.com/wiki/Ghost_Stories](https://dubbing.fandom.com/wiki/Ghost_Stories) (not sure

<comment><USER14> The result is genuinely hilarious. I'm sure I wouldn't have enjoyed a _faithful_ translation nearly as much.

</comment></comment></comment></comment></comment><comment><USER15> Kojima seems to have two distinct sides. One is pure genius, the other is not so great. The former made Policenauts, Snatcher, Metal Gear 2, MGS, MGS3, Peace Walker. The latter fired Jeremy Blaustein, David Hayter, came up with vampires and flying whales for no good reason, wrote endless unnecessary cut- scenes for MGS4 that take themselves too seriously, came up with the script for MGS5.

<comment><USER16> I'm convinced that no one really knows what the hell happened at the end of MGS2. The story flew so far off the rails that I stopped playing the games in the series after that.

<comment><USER15> I was the same. Only nearly a decade later did I give MGS3 a go, and was not disappointed - it was more like MGS1 than MGS2 and is one of the best in the series.

MGS4 follows right in MGS2 footsteps and I would say better skipped. Peace Walker is surprisingly good, although parts of it towards the end get tedious. MGS5 goes back to weirdness, although a particular sniper's story line has some merit to it.

<comment><USER16> I actually think that Ghost Babel (the Japanese name) on the Game Boy Color is a really underrated game. It's worth checking out if you have avoided it because of it being a portable game. It has a fairly elaborate story, a delayed intro scene, and actually pretty decent graphics for the GBC.

</comment></comment></comment></comment><comment><USER17> I love Jeremy, I've followed him for a while on Twitter. He comes across as self-confident and prideful of his work, which is great and perfect for a _good_ translator (which he certainly is). Shame Kojima didn't agree at the time, I imagine he's a very proud person as well.

<comment><USER18> I left a comment the first time this was posted, but to reiterate, the MGS translations were excellent (and arguably better than later installments, though MGS3 was pretty high quality too).

Jeremy played a huge part in launching an incredibly successful series. I hope he doesn't feel too put out by Kojima's reaction.

<comment><USER17> I watched through most of the interesting MGS3 codec scenes in Japanese (after playing it in English years ago). It had an absurdly great script in both languages (perhaps better Japanese VAs). I'm a bit biased towards it though because it's one of the best games ever made IMO.

MGS was certainly memorable, moreso than MGS2 or MGS4 (lmao) for me.

</comment></comment></comment><comment><USER19> Even though MGS was my favorite game I never really like MGS5. Any suspension of disbelief was ruined with awkward lines like, "You're a legend in the eyes of those who live on the battlefield."

<comment><USER15> The dialogue in MGS5 was absolutely horrible:

1\. Because of the change of voice actors, I literally could not tell who was speaking at any given time. Everyone sounded the same.

2\. None of it was believable, funny, interesting or relevant. Peace Walker had a very similar concept in terms of storytelling (through tapes) and gameplay (base management), but was infinitely better. I just really did not care about any of the tapes in MGS5. In PW the tapes were funny and interesting and you actually learned something.</comment></comment>


A Sysadmin's technical examination of SOPA and Protect IP - <AUTHOR> http://blog.reddit.com/2012/01/technical-examination-of-sopa-and.html <comment><USER2> This is another on of those submissions calling out for full domain names on the right. This isn't a post on reddit, it's the official reddit blog at blog.reddit.com, written by one of their sysadmins, alienth.</comment>


[Bloomberg TV]: Fired Engineer James Damore: I Feel Google Betrayed Me - <AUTHOR> https://www.youtube.com/watch?v=s4WoeOkj2Ng <comment><USER2> It feels like gotcha journalism. The peterson interview is much much better.</comment>


Tesla Model 3 First Drive Review - <AUTHOR> http://www.motortrend.com/cars/tesla/model-3/2018/exclusive-tesla-model-3-first-drive-review/ <comment><USER3> I really hope the German government does something to make it more desirable for employees to want the Model 3 or similar cars as company cars.

Just to explain the involved costs: There's two ways the government taxes company cars for employees, either you get to write a driving log, that then marks each route as either private or business and then you get the privately driven part taxed as income OR you just get 1% of the new car value taxed as income each month and don't have to provide a driving log. The company pays for leasing, gas and maintenance.

That's where electric cars savings on fuel and maintenance don't affect business customers, they don't care mostly because the company pays for the gas anyway and is used to do that so it will stay that way quite a while.

I just hope they give a tax break on the 1% rule, so it's just 0,5 or something similar that makes these cars more desirable compared to a similar priced gas guzzler.

<comment><USER4> Yes, but the Tesla looks cool so even business owners can see that.

<comment><USER5> The issue is that many European companies provide cars to their employees as a benefit. The employees then have to pay tax on their personal use of the car, at a rate proportional to the price. It's not the business owners who will care - it's the employees who have to pay the tax.

</comment></comment></comment><comment><USER6> Is there a HUD or do I have to move my eyes to the centre console to check my speed? Seems like bad ergonomics to me... and whereas the road ahead is perhaps still in my peripheral vision when I check my speedo, its less so if I am glancing at the centre console (which maybe has a bunch of other distracting things on it as well?)

<comment><USER7> Center console indicators are quite common. One advantage is that, the indicators are never blocked when you are in a turn. With your traditional instrument cluster placement, the steering wheel blocks the indicators.

Cars with instruments in the center dashboard:

Mini Cooper: [http://images.hgmsites.net/lrg/2010-mini-cooper- hardtop-2-do...](http://images.hgmsites.net/lrg/2010-mini-cooper- hardtop-2-door-coupe-s-dashboard_100304478_l.jpg)

Toyota Yaris: [https://cars.usnews.com/static/images/Auto/izmo/306771/2009_...](https://cars.usnews.com/static/images/Auto/izmo/306771/2009_toyota_yaris_dashboard.jpg)

Saturn ION: [http://consumerguide.com/wp- content/uploads/2014/07/05130061...](http://consumerguide.com/wp- content/uploads/2014/07/05130061990005.jpg)

Citroen C4 Picasso: [https://s-media-cache- ak0.pinimg.com/736x/fe/d6/5a/fed65a4f2...](https://s-media-cache- ak0.pinimg.com/736x/fe/d6/5a/fed65a4f2364be22592dc89c495a4587--citroen-c- picasso-family-cars.jpg)

etc...

<comment><USER8> Mini Cooper: There is a speedometer directly behind steering wheel, in a smaller secondary instrument panel, as shown in the picture.

Toyota Yaris: Not shown in that picture is the Head Up Display projected onto the windscreen, even closer to the driver's line of sight. I drove a Yaris for a few days a while back, and the HUD is good - not distracting there's and no need to turn your head, which would be dangerous.

Citroen C4: Another HUD [http://www.citroen.co.uk/about- citroen/technology/head-up-di...](http://www.citroen.co.uk/about- citroen/technology/head-up-display)

Saturn ION: Seems to be the only valid example. I don't know myself, can't remember ever being in a Saturn ION. Wikipedia tells me that GM does not make them anymore.

it still seems to me that for reasons of safety , you want _some_ instrumentation to be very close to the driver's default line of sight. Not necessarily all of it, but a few key indicators such as speed.

<comment><USER9> I drive a Yaris myself (the center display looks different than the one pictured, but the concept is the same). It doesn't have a HUD and I actually love the center display. As stated before, it is never blocked. In a turn, when a normal instrument panel is behind the steering wheel, I can still monitor the speedometer and shift gears according to the speed. Also, I totally have the road in vision when looking at the speedometer.

</comment></comment></comment></comment><comment><USER10> Nice, but $59,500 as shown. Not $35,000. The real-world price has crept up. The base model has a small battery.

The Tesla Model S starts at $68,000. So the real-world price is down only 13% from the Model S.

<comment><USER11> The "small battery" still has more range than any other electric car out there, except the Bolt, which has a very small lead, but does not seem to be made in large numbers. And it matches the promised range (>215 miles). So it is great value for everyone, who does not need the 300 mile range. So you do get a sporty (0-60 <6s) 5 seated electrical sedan for 35k, which is great.

<comment><USER12> In what world is a sub 6s 0-60 sporty? The WRX gets 4.6, and I'd consider that the edge of sporty (also cheaper than the 3).

<comment><USER13> The WRX is 0-60 in 5.5s. You might be thinking of the STI which is 0-60 in 4.7s (STI starts at $37k, too).

But 0-60 is not what defines sportiness, it's the total package including handling and driver engagement & feel.

Case in point: The Miata is one of the all time great sports cars, and it does not accelerate quickly.

<comment><USER14> I'm going to definitely agree with that.

The 2005 onward NC model Mazda MX-5 Miata: _A test by Car and Driver magazine revealed a 0-60 mph (97 km /h) time of 6.5 s for the 2.0 L (120 cu in) U.S.-spec NC_[1]

I suspect the average MX-5 owner is quite happy with the characteristics their vehicle. Hell, I consider my long wheel base turbo diesel VW T5 Transporter quite _sport_ to drive. For a (very basic) camper van.

1\. [https://en.m.wikipedia.org/wiki/Mazda_MX-5](https://en.m.wikipedia.org/wiki/Mazda_MX-5)

</comment></comment></comment></comment></comment><comment><USER15> If everything goes right, Model 3 can change the business model of cars. Shift to value add + functionality upgrade based pricing versus a sales and service oriented model.

<comment><USER16> Also they own the repair market. You can't get your tesla serviced at a normal shop as the software, parts, and diagnostics are proprietary, so they could actually sell the car at a loss and make the big bucks on repairs.

I don't want this. But its a viable business model.

<comment><USER17> We will have to see how long that lasts

Right now there are not enough of them on the road nationwide to justify a secondary shops wanting to service them, however if they meet their goals with the Tesla 3 there will be

This will result in law suits against Tesla if they do not provide a way for 3rd parties to make parts and service the vehicles as there are multiple federal laws the prevent this type of locking down

Car manufacturers have tried this in the past, it always fails to work out of them.

</comment></comment></comment><comment><USER18> I'm certain if I ever own a Tesla, it'll be a long way into the future.

I'm glad they keep pushing forward though, it's causing the infrastructure to advance to a point where I'm almost ready to go fully EV.

Where I am, a low-mileage (20-30k) 3-5 year old Nissan Leaf is the equivalent of around $12k with no road tax to pay. And it gets around 150mpg equivalent due to electricity prices.

Exciting times!

<comment><USER19> The Nissan Leaf is a terrible EV. The 3-5 year old models you mention have very low range (~60 miles). That's why they're so cheap. People that own them are constantly mindful of their charge % and are always on the lookout for charging stations if they're deviating from their normal commutes. I've seen many of them run out of juice on the leftmost lanes during commute hours too, causing even more congestion for miles. If you were looking at new cars, you can get a 2017 Chevy Bolt with 200+ mile range for not much more than a new Leaf.

<comment><USER20> I drove a Leaf daily for two years. Wonderful vehicle. Know the limits, drive sensibly.

<comment><USER18> Genuinely interested in following this up - may I ask why you don't drive it anymore?

(I hear circumstantially about a lot of people going back to combustion cars but never why. Is it a range thing?)

<comment><USER20> Admittedly, Georgia made it practically free to lease for two years. Lease ended, gave it back. Buying one outright was a viable option, but buying wife a nice newish SUV (while I kept the old SUV) won out; she had dibs on the next vehicle and wanted something big.

</comment></comment></comment></comment></comment><comment><USER21> There's also a review up at the verge as well. He seemed to like the interior for its elegant simplicity. And mentioned that having the speed on the LCD was likely better for him than having in the usual place. The new prius is similar in that regard.

</comment><comment><USER22> For a while, I thought Tesla lacked taste. This new interior proves me wrong. It is simply stunning. This strikes me as the obvious future of automotive design.

</comment><comment><USER23> I'm _sure_ it's a great car in person, but from a casual observer's perspective, the dash looks like they upcycled the trim from a 70s car/station wagon/boat by sticking a shitty Android tablet onto it. It reminds me of something they'd whip up on Mythbusters to remotely drive off a cliff, under tight budget constraints.

<comment><USER24> The motor trend reviewer described it as Scandinavian minimalistic, which is more associated with the 60s and midcentury modern style.

</comment></comment><comment><USER25> The Tesla Model 3 has the most minimalistic interior I've ever seen

[http://www.businessinsider.com/tesla-model-3-minimalistic- in...](http://www.businessinsider.com/tesla-model-3-minimalistic- interior-2017-7)

<comment><USER11> Which is, as long as it doesn't cut important functionality away, for me very preferable to an interior style littered with screens and buttons and knobs. I think the Model 3 is even an improvement to the S there, you have a more minimalistic looking interior even, but they added important usability with proper door handles and pockets and the center console.

<comment><USER26> I got a 2017 Subaru Impreza with a touch screen interface. Terrible idea on a car. I'm constantly accidentally grazing the touch screen and changing things that I'm not sure of cause I'm watching the road. Too many buttons is awful, but a touchscreen is even worse. You need some kind of physical feeling when you're not looking at the screen and your brain isn't being tricked by the screen.

<comment><USER25> Personally I think the touchscreen option was because of lower cost and more options when updating the car software.

</comment></comment></comment></comment><comment><USER27> While I appreciate almost everything Tesla does, and I may be in minority with this opinion here, but damn are their cards ugly / generic looking. Especially so with the interior. I like spartan features, or lack of, but it's just - ugly.

</comment><comment><USER28> For all of Elon's attempts to "unsell" the Model 3, this review says it's fantastic enough to sell itself.

<comment><USER29> > Elon's attempts to "unsell" the Model 3

Yes, he tried a lot to unsell it earlier but he was trying to sell it while giving access to today's live stream :-)

</comment></comment><comment><USER30> Rear wheel drive? For those of us in snowy places....

<comment><USER31> Agreed. Especially really torquie rear wheel drives, where the slightest bit too much pressure on the gas will send your rear end zooming around.

I'm to the point where I only ever want to drive AWD vehicles in the winter. A safe and predictable commute is worth the slight markup.

<comment><USER32> Safety comes from all-wheel braking, not all-wheel acceleration. As long as you have traction/stability control, AWD is not really any safer unless you're on a winter rallye track (=want to accelerate into corners).

See eg. this study: [http://indexsmart.mirasmart.com/25esv/PDFfiles/25ESV-000260....](http://indexsmart.mirasmart.com/25esv/PDFfiles/25ESV-000260.pdf)

<comment><USER31> That paper acknowledges that AWD does provide more traction than 2WD, it just says that drivers can become overconfident as a result of that extra traction.

Their data also shows that for cars, across all types of cars, AWD cars are in fewer overall (though more severe; the focus of the paper) accidents than 2wd cars.

Given my own experience, even considering this paper, I still want an AWD.

<comment><USER32> If we're talking about safety, then the injury risk is kind of important.

The paper did not do any research on traction or driver overconfidence so remarks about these are just casual commentary, but for the record, the mention of AWD traction is not particularly relevant to avoiding traffic accidents:

"While these important results imply that AWD shall not be considered as a safety feature, it should be kept in mind that AWD does have benefits in terms of improved traction compared to 2WD cars, for instance on icy uphills, snowdrifts and, depending on the vehicle, in off-road driving"

<comment><USER31> "AWD technologies should be further developed so that slippery road conditions are not disguised by the _improved traction provided by AWD_."

AWD provides more traction, and thus more control than 2WD. I have no desire to give that up because some people take more control to mean "I can go faster." You're welcome to come to a different conclusion.

</comment></comment></comment></comment></comment></comment><comment><USER33> What sort of maintenance are performed on these cars??

Seems like there is nothing to be maintained, given the all steel, aluminum, glass stuff everywhere.

Does it have any oil changes required, like in brakes or transmission?

<comment><USER34> i can't speak for the Model 3, but i own a Bolt, here's the service schedule for that:

* every 7,500mi: rotate tires

* every 22,500mi: change cabin air filter

* every 5 years: replace brake fluid

* every 150,000mi: replace battery cooling fluid

that's it. crazy!

<comment><USER35> > * every 7,500mi: rotate tires

What's that?

<comment><USER33> You change the position of the tires. The front ones are removed and fixed at the rear and the rear ones are removed and fixed at the front.

Allows for uniform wear and tear for the tires.

Some even interchange the left and right tires.

<comment><USER36> Left <-> right interchange doesn't really happen anymore since radial tires have become standard on most vehicles.

Radial tires are unidirectional, so if you go left -> right your tires will be rotating backwards, and then they won't be able to channel water out from the treads.

</comment></comment></comment></comment></comment><comment><USER37> This is impressive,

> associate road test editor Erick Ayapana had penciled me into a 2.0-liter > Alfa Romeo Giulia to get here, and it feels like a wet sponge by comparison.

</comment><comment><USER38> I'm curious about the risk of the center detached tablet becoming a loose, dangerous projectile in the event of a crash. I haven't seen anything so far on how they've attached it to ensure that's not a problem in hard collisions.

<comment><USER39> I think "tablet" is a misnomer here (though understandable) - calling it a touchscreen would be better. Anyway, seems it's sturdily attached: [http://st.motortrend.com/uploads/sites/5/2017/07/Tesla- Model...](http://st.motortrend.com/uploads/sites/5/2017/07/Tesla- Model-3-front-interior-seats.jpg)

</comment></comment><comment><USER40> No comments on the interiors? It looks more befitting in a prototype than a $36,000+ car.

<comment><USER41> Never really understood the "luxury" interiors with huge number of details, materials, mixes of leathers, wood, different kinda of metal, etc.

The interior that stood out to me was porsche 911 from around 1970. Not distracting, simple, robust, and lasts 30 years (when I saw it).

A larger display for excellent situational awareness (map, gps, dozen or so cameras, ultrasonic, and radar). What were you hoping for? A few dozen chrome knobs sprinkled around?

There's already two knobs on the right and left of the steering wheel, hopefully you can customize them for whatever you use the most. They didn't mention speech recognition. But if my phone can manage to be woken up and nav to wherever I need to go, seems like it shouldn't be too far behind for tesla. Two knobs, big screen, and voice prompts sounds good to me.

<comment><USER42> Touch screens are terrible to use while driving, especially for frequent operations (volume, change stations, climate control, hazard lights, wipers, etc). The current trend is to push more into these touch interfaces, but most car manufactures have still left some of the more important ones as physical buttons.

For tesla the matter is not ergonomics, but simply cost.

<comment><USER43> Wipers are automatic, volume, stations and fan speed are on the steering wheel (aling with voice control at other setting. at least on my Model S)

<comment><USER31> I love automatic wipers. They turn on in the _wierdest_ situations. Particularly when you've been on a road trip and your windshield is covered with a nice smattering of bug guts.

<comment><USER43> They are pretty good on the Tesla, and i believe have even gotten better, with over the air software updates :).

</comment></comment></comment></comment></comment></comment><comment><USER18> At this price I'm actually kind of interested in what the lease prices would be.

I realize the waiting list is going to be really long of course, but the lease prices (assuming no opportunistic markup at the leasing company) should come in at a price point that actually makes this pretty cheap when fuel is taken into account.

Hopefully Tesla have the good sense to embrace this wholeheartedly, as I suspect that's where the critical mass could come from (and due to the short timeframes on car leases, extremely rapidly).

</comment><comment><USER44> I love the Model S but this one is a bit too minimalistic for me

</comment><comment><USER22> Today, Tesla's design ability is about on par with Apple's circa 2000. But Tesla has much higher slope. Watch out.

</comment><comment><USER45> > _Tesla's trying to change the vocabulary we're using to describe it, from > "kilowatt-hours" to "range."_

I understand why they did it -- Tesla's cars tend to be the most efficient EVs around, often by significant margins compared to competitors. But for someone who was hoping battery size competition would be the new megapixel race, this is quite disappointing to hear.

I suppose "range" could be used in the same way, but range is less "hard factual", as they can twist it however they want, unless they actually use the EPA and WLTP cycles.

<comment><USER46> > Tesla's cars tend to be the most efficient EVs around, often by significant > margins compared to competitors.

Well, yes and no. Teslas have very low Cd, so are aerodynamically efficient for their size, but they use AC induction motors which are less efficient then the PM DC motors in most other EVs. Compared to the Bolt or the Hyundai Ioniq the Teslas are less efficient at lower speeds.

<comment><USER47> Now I'm curious, what is the advantage of AC induction motors?

<comment><USER48> It's a good question: [https://electronics.stackexchange.com/questions/58236/why- do...](https://electronics.stackexchange.com/questions/58236/why-does-a-tesla- car-use-an-ac-motor-instead-of-a-dc-one)

</comment></comment></comment></comment><comment><USER49> Nice but still not what I need. I need a long range electric car whose interior I won't be afraid to damage from time to time. I need something that moves me, my family and my stuff (skis, bikes, windsurf + sails, mountaineering gears, etc..) to where I need to be, not something for showing- off and asserting status.

The large screen in the middle of the car is a non complete non-starter - <USER2> of the stuff I carry in my car are going to poke nice holes in it: what a joke.

Tesla (or anyone else), please build a cheap, high-impact plastic, no-large- screen interior car with front and rear seats I can fold for lots of room and I'll buy them for the rest of my life.

What I want is a long-range electric 4x4 Renault Kangoo that is not a utility vehicle. I'm sure it can be built.

<comment><USER50> > ...my stuff (skis, bikes, windsurf + sails, mountaineering gears, etc..) to > where I need to be, not something for showing-off and asserting status.

Not everyone shows off with fancy cars. Some people like to talk about their rugged athleticism and outdoor adventures.

<comment><USER49> I'm not exactly implying that buying a car to show off and assert status is reprehensible. Have I touched a nerve?

Anyways - I'm just saying that I hope EV manufacturer move up (or down) the immaculate luxurious interiors trip sooner rather than later so that some of us can buy and start using EVs without having to constantly worry about ruining a design project we're probably not worthy of.

<comment><USER51> He's a fanboy and trying to make fun of your stated use-case as if you were the one showing off.

<comment><USER49> Ah - well, Tesla found a way to make EV sexy and I'm sure they have very ambitious goals. I'm just hoping that what's next steps down a bit from the luxurious (at least to me) interior and focuses on cargo space that can be used without bringing in tears ;-)</comment></comment></comment></comment></comment>


Show HN: My Weekend Project – Automatically determine date format string - <AUTHOR> https://date-format.xyz/ <comment><USER2> Interesting that there is another tool[1] on Show HN right now that does this but for strftime instead of moment.js, I guess I need to build one for Golang's weird time formatting.

1\. [http://strftime.guru/](http://strftime.guru/)

<comment><USER3> There's _Fucking Go Date Format_ [1], which is close enough. Btw, as a Go developer myself, I still can't remember Go's format.

[1]: [http://fuckinggodateformat.com/](http://fuckinggodateformat.com/)

</comment></comment><comment><USER4> I made a similar tool that could take almost arbitrery text strings like "mar 27, '09" or "07/08/97" and generate a list of all valid interpretations. Eg. "07/08/97" would generate [{d: 7, m: 8, y: 97}, {d: 8, m: 7, y: 97}], but not any where 97 is a day or month, since that wouldn't be a valid date.

</comment><comment><USER5> I don't know how it is supposed to work: [https://screenshots.firefox.com/43Qs5xpvJ3Jm1oHi/date- format...](https://screenshots.firefox.com/43Qs5xpvJ3Jm1oHi/date-format.xyz)

Why are there two different fields? I imagined only one would do the job.

<comment><AUTHOR> It's to remove ambiguity (not all), i.e. you select a date and then specify how you want it to look. For example, the date 12/05/2017 can be interpreted as either DD/MM/YYYY or MM/DD/YYYY but if you select a date first and then describe your desired format we can exclude one of the possibilities.

<comment><USER6> Perhaps consider removing the choice? For example, have only one input (the desired format) and above it some text saying "How would you format '28/03/2018 21:37'?".

This removes the confusion of two inputs, and provided you select an unambiguous baseline date (day & hour > 12) it should be more clear.

</comment></comment></comment><comment><AUTHOR> Need to clean up the code and then I will upload it to Github :) Also let me know if there are any formats that don't work for you.

</comment><comment><USER7> just a suggestion but can we get a bit more than one page with a couple of fields ? It's okay to get straight to the point and being minimalistic but a few infos about the author and whether there is a github repo for the code... those things would help

<comment><USER8> I'm genuinely curious, why would that help? Would that change the way you viewed the tool?</comment></comment>


Caffeine enhances activity of common antidepressants in forced swim test in mice - <AUTHOR> https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4715838/ <comment><USER2> They don't appear to have run a control with caffeine alone. Caffeine is a well-established athletic performance-enhancing drug in its own right. Isn't this a serious flaw with the swim-test portion of this study?

<comment><USER3> Figure 1 shows that 5,10,20,50 mg/kg caffeine has an effect on the forced-swim test, but not as strong as imipramine. Table 1 shows that the same doses of caffeine don't make the mice more active in their cage, which might help address your concern.

<comment><USER4> "Table 1 shows that the same doses of caffeine don't make the mice more active in their cage"

As a former rat owner, and a former locked-up felon, if a rat (or human) is in a cage, it tends to know and act like it's in one. Caffeine isn't going to make you suddenly more energetic in your cage unless you've got some other underlying issues, so that part of the study is instantly suspect.

<comment><USER5> You're probably right, but that's an anecdote, not scientific evidence.

<comment><USER4> I had thousands of other data points in the GP cell right there with me. Plenty of scientific basis for my conclusion, as I had a good 50 weeks to observe.

</comment></comment></comment></comment></comment><comment><USER6> I was under the impression that this is a pretty known effect. I used to take anti-depressants along with CNS stimulants and this definitely was something that my psychiatrist and my other doctors mentioned to me and considered when choosing an appropriate dosage.

<comment><USER7> They have spent a lot of money to research the fact that people are less productive when hungover. I guess even known things are targets for scarce research dollars.

<comment><USER8> It's also important to figure out the magnitude of the effect.

</comment></comment></comment><comment><USER9> I hope one day the mice will finally thank us for all the hard work we've done in improving their quality of life.

<comment><USER10> They're doing the tests on us.

<comment><USER11> Well, if you look at the results...

X cures cancer _in mice_

Y increases lifespan _in mice_

Z improves disease resistance _in mice_

W reverses cognitive decline _in mice_

The signs are all there.

<comment><USER3> I sometimes joke that the NIMH[0] is actually the National Institute for Mouse Health.

[0] Yes, like the rats! It's a real institute (National Institute for Mental Health).

<comment><USER11> Mrs Frisby has no idea what you're talking about. :D

Jenner, however, is an engineer like the rest of us.

</comment></comment></comment></comment></comment><comment><USER12> Full title gives a bit more context: "Caffeine enhances the antidepressant- like activity of common antidepressant drugs in the forced swim test in mice."

</comment><comment><USER13> My perfect day is 8 hours of caffeine, an hour at the gym, 4 hours of alcohol, SSRI for a nightcap. YMMV

<comment><USER2> I hope you're exaggerating - that kind of cocktail is going to kill your sleep quality and, in the long-term, quite possibly fry your brain.

Thumbs up on the exercise though.

<comment><USER13> I usually let these types of comments enable interesting discussion, but given the response and the worry that it validates someone else's lifestyle, I must say that it was tongue-in-cheek. My perfect day does not imply my everyday. Please don't drink alcohol for 4 hours every dear reader!

<comment><USER2> I am glad to hear that you were indeed joking!

</comment></comment></comment></comment><comment><USER14> TIL "forced swim test", right up there with "rapid unscheduled disassembly".

</comment><comment> dan-robertson The methodology here is typical for testing antidepressants with animals but many people find it somewhat horrifying:

First the mice are made to be depressed by exposing them to constant sounds of birds screeching and other predators. Next some are given the intervention. The level of depression is then measured by putting the mice in a container of deep water from which there is no escape, and timing how long until the mouse gives up swimming. The mice are not left to drown but are fished out and killed in a presumably more-humane way (chronically depressed mice are not otherwise useful).

A second ethical issue with studies with mice is that occasionally the unfortunate phd student tasked with dispatching the mice will not have been taught any way to do so and will have to try to come up with something on the spot. This can be quite traumatic for both parties.

<comment><USER15> > A second ethical issue with studies with mice is that often the unfortunate > phd student tasked with dispatching the mice will not have been taught any > way to do so and will have to try to come up with something on the spot. > This can be quite traumatic for both parties.

uhhhhhh are you sure about that?? This strikes me as a flagrant violation of policy. Animal studies are heavily regulated.

In my experience, (and mind you I've only ever worked adjacent to animal labs, not directly in them) there is always a canister of CO2 and a euthanization chamber on standby in experiments where there is a risk of injuring the mice.

<comment><USER16> While this is standard, it shouldn't be.

Mammals sense CO2 buildup, not oxygen depletion. By smothering with CO2, the mice spend their last moments desperate to breathe and unable to.

If they were to use nitrogen instead, the mice, having no way to know they've been deprived of oxygen, would just pass out and die.

<comment><USER15> There's a good chance I have that wrong and they use nitrogen. Like I said, I don't work in animal labs, just adjacent to them.

<comment><USER17> I knew someone who worked with lab rats; her job was to kill them and she had to use CO2.

</comment></comment></comment></comment></comment><comment><USER18> We have so little understanding of basically anything about the brain or mental health issues, it's the next big frontier in medicine.

</comment><comment><USER19> Studies have shown that caffeine in moderation encourages learning.</comment>


Greylock Sends Entrepreneurs a Message with New $1 Billion Fund - <AUTHOR> http://techcrunch.com/2011/03/01/big-appetite-greylock-sends-entrepreneurs-a-message-with-new-1-billion-fund/

<comment><USER2> we see the "information revolution/productivity gain" which was anticipated before y2k materializing today (at least to some extend). but seing an arms race in the finance industry is seldom a good thing. so my guess is that sooner or later it will be a bubble. but it will take a little longer to develop. the fundamentals are actually there, thus the numbers are not made up. on the other side these high prices could just be the inflation created trough the financial crisis.

its still a good thing that the US drives investments into technology. in the end, most of these will survive and act as an enabler for even more high tech industries.</comment>


Is WebAssembly the New Adobe Flash? - <AUTHOR> As we all know, every Wasm program is considered closed source software just like Adobe Flash apps and for some reasons I'm getting a little spooky because compared to JavaScript everything looks transparent, even with obfuscated scripts I personally can still understand how everything works and can easily detect malware inside every codebase. Now WebAssembly is like Flash and I think everything will get scarier because you can't see what's under the hood and many companies and hackers will try to exploit things just like Flash apps and even the most paranoid developer somehow will not detect a hidden malware. Is it just me or dark ages are coming on how we build web applications?<p>Edit: I forgot to mention that 3 of the 4 companies involved are closed source lovers. Don't get me wrong, last time I checked Android and Chrome were partially open source and you don't have actually full control of everything. <comment><USER2> The problem with flash/Java was not that much that the apps were closed source, but that the interpreter was closed source and buggy.

In particular from an attacker standpoint the attack surface of wasm is the same (actually smaller) as that of Javascript.

From the point of view of obfuscated code that wasm is worse than javascript, but I am not so sure that it is so much worse than C compiled to asm.js (that had to simulate arbitrary pointers anyway)

All in all for now the main malware using wasm are crypto mining bots.

As an update: The problem with closed source on the web is in great part that SaaS providers can circumvent GPL (which is the reason the AGPL was created) not particularly the fact Javascript can be obfuscated

<comment><AUTHOR> Yeah but from a hacker's perspective, isn't Wasm easier to plant a malware inside a binary file compared to JavaScript? I remember back in the days, flash was scary because of that and some malware was embedded inside the swf because analysing was painful.

<comment><USER2> That is a sandbox issue; obfuscating Javascript can get to really advanced levels.

If I remember correctly Google's reCaptcha work by interpreting encrypted instructions on an also encrypted interpreters that is Just-In-Time-Decrypted. Also it is entirely possible (and easy) to fully write an interpreter for wasm in Javascript. From an explot perspective literally the only thing that wasm provides is performance (hence the crypto bots).

The reason for vulnerabilities in Flash and Java was that the plugins were running in a different non-sandboxed (or badly sandboxed) process. The inability to inspect the Flash/Java binary was only relevant because of the many many bugs and exploits available in the runtime.

The reason being that both Flash and Java (and every other plugin) provided functionality completely absent in browsers (one example was the ability to open system-level network connections), this functionality was not sandboxed enough.

From a security perspective it was almost close to running `make install` instead of `ls` on a random project from github.

The reason people are confident in wasm security model is because it is almost implemented as a Javascript function that just manipulates ArrayBuffers.

There are currently proposals on the way to actually increas the reach of wasm code and allow a deeper level of interaction with the host environment, but (with the exception of threads) they all only offer functionality already exposed to Javascript

<comment><USER2> But to actually answer your question, yes, wasm is easier to obfuscate than javascript

</comment></comment></comment></comment><comment><USER3> I share your worried about WebAssembly, which is why I won't use it.</comment>


Microsoft will host data in Germany to hide it from US spies - <AUTHOR> https://www.theverge.com/2015/11/11/9711378/microsoft-german-data-centers-surveillance <comment><USER2> Anyone else have a problem with the way this is worded? Isn't this just a case of Microsoft having to do this to operate within Germany?

<comment><USER3> and the other problem is the BND has cooperated with the NSA; even German internet exchange points are tapped (see DE-CIX).</comment></comment>


Ask HN: How you scrape web? - <AUTHOR> Scripts, tools, guides, or tutorials <comment><USER2> 238 comments in a recent discussion "Ask HN: What are best tools for web scraping?" [https://news.ycombinator.com/item?id=16309997](https://news.ycombinator.com/item?id=16309997)</comment>


The Churn - <AUTHOR> http://blog.cleancoder.com/uncle-bob/2016/07/27/TheChurn.html <comment><USER2> I really hope people do not misunderstand this article.

Until I reminded myself to assume good faith about the author (which is usually worth it with this author), I felt myself assuming he was disparaging all things new as being shiny and therefore unprofessional.

I don't believe that is the point of this article, and I worry the caricature is a little so over the top that people will interpret it as such a little too easily.

I think the point is this: don't confuse movement with progress. New is not _necessarily_ better. The world of software tools is like any other marketplace of ideas: you will have a curve of early adopters onto the stragglers. It is not worth assuming that a tool is worth upending the world over just because the early adopters are jumping up and down about how it will. Most things won't. But some things will.

The point isn't novelty. It is value. Novelty has value, particularly social and sentimental value, but often it is fleeting. Other forms of value aren't. It is worth considering the new thing in all perspectives of value.

<comment><USER3> Appreciate you framing it in a thoughtful light.

</comment></comment><comment><USER4> The last line of this piece is:

> And become a goddam profession.

Hurray? What do we gain by becoming a profession? I guess we get 9 to 5 work, conferences, meetings and boredom. Sounds like we're a profession already, but I guess not. Honestly, I'm not sure I'm a big fan of professions.

Shiny things, those are what children like, and I guess children aren't professional so we should get rid of shiny things.

And since we're getting rid of childlike things, let's get rid of:

\- The joy of discovery

\- The feeling of creating something from nothing

\- The empowerment of solving our problems in new ways

\- The utter joy of entering a new community of amazing people

I guess we lose all that, because it's time to be a goddamn profession.

<comment><USER5> I guess it's more about adjusting your reward system to be driven by helping others, rather than self gratification. I agree, your points can be what makes the work enjoyable on a personal level; but most people will working for others, so it makes sense to deliver the best solution for _them_.

So, although it's fun to reinvent wheels - partly to build up your skills and knowledge, and satisfy one's curiosity - the best solution for your customer/client/manager/business might be to use something off the shelf.

</comment></comment><comment><USER6> I'm kind of disappointed by Uncle Bob. I really liked his books, but designating Java as the end state if all progress would really take all the joy out of the job I love.

Apart from that, logarithm functions do not converge ftw.</comment>


Microsoft Surface & Internet Explorer Presentation Epic Fail [video] - <AUTHOR> http://www.robgonda.com/2012/06/21/microsoft-surface-presentation-epic-fail/ <comment><USER2> This guy should get an extra bonus for not just having to deal with this level of buggy software, but for handling it so damn well! He hardly even skips a beat.

</comment><comment><USER3> That's kind of funny.

Still can't beat the original! <http://www.youtube.com/watch?v=UjZQGRATlwA></comment>


The lies Brits tell themselves about how they left behind a better India - <AUTHOR> https://qz.com/1053297/independence-day-what-good-did-the-british-do-for-india-during-the-raj/ <comment><USER2> > Following which, in a world where nearly two-thirds of Britons believe that > the empire was "something to be proud of"

59% of 1741 Brits questioned in a [poll] [pdf].

[poll]: [https://yougov.co.uk/news/2014/07/26/britain-proud-its- empir...](https://yougov.co.uk/news/2014/07/26/britain-proud-its-empire/)

[pdf]: [http://cdn.yougov.com/cumulus_uploads/document/6quatmbimd/In...](http://cdn.yougov.com/cumulus_uploads/document/6quatmbimd/Internal_Results_140725_Commonwealth_Empire-W.pdf)</comment>


I wonder if this will work - Roger Ebert on website monetization. - <AUTHOR> http://blogs.suntimes.com/ebert/2010/03/i_wonder_if_this_will_work.html <comment><USER2> _Through March, we'll have a special introductory rate of $4.99 for a year's membership. After April 1, the price will shoot up to $5._

The humor value of this sentence sells itself.

<comment><USER3> I once paid Slashdot $5 just so I could have access to all of _my_ old comments. In retrospect, taking my own content hostage is one of the few effective ways to get money out of me.

<comment><USER4> I would pay to download all of my saved links from Hacker News so that I could dump them in a searchable database.

There are so many times I remember seeing something relevant on HN (and sometimes <http://searchyc.com> doesn't work 'You broke the server').

I haven't examined the Arc source code to see if saved links ages old links out of the db automatically.

</comment></comment></comment><comment><USER5> Took me a minute to realize he meant paywall when he said firewall. But yeah, I'm not sure I see a paywall working for him.

If I were him, my first attempt to monetize would be a Netflix affiliate program.

<comment><USER6> I see that he is including Amazon affiliate ads on the review pages; I assume that must not be working very well for him, which surprises me a bit, as I rent movies all the time through Amazon (it's one of a very small handful of places I actually shell out money for entertainment on the web). You'd think the most famous movie reviewer of all time would have pretty good results with movie referrals...

I wonder whether part of that might not be the placement and format of the ads? At least for movies with online rentals and purchases available, I'd think that a plain old hypertext "Watch [insert movie name] online at Amazon" link right at the end of the review with his affiliate code embedded would probably perform pretty well, as opposed to a clearly separated block style ad up near the top that only links to the DVD purchase page.

He could at least have both...I can't for the life of me understand why you _wouldn't_ have an ad right at the end of the review, where people are most likely to be moving on to another page rather than sticking around and reading more...

<comment><USER7> You rent movies all the time through Amazon, but do you do it from Ebert's page? No, you go straight there and do your thing.

This is why CPA ads and affiliate links are a bad deal for content sites. You come there to read stuff, not buy stuff. When you want to buy something, you search for it directly.

<comment><USER6> You're right, I never rent from Ebert's page, but that's mainly because I don't read Ebert's page. If I did, and I saw a review of something that looked like I liked it, I'd be fairly likely to click a link to the Amazon rental page if it was visible in the right place, because it would save me a few clicks and searches. Of course, that's irrelevant, because he _doesn't_ have links to the rentals on his page, he has links to the DVDs, and they're not even in view anymore once you've read to the bottom his review. So it's almost exactly as much effort to go through his affiliate link as it would be to search for the movie myself.

If I had to guess, placement alone cuts his revenue from that source by at least a factor of 2 or 3, possibly even a factor of 10 or more.

And Ebert's site is not a content site, it's a review site (a highly respected one, at that). Review sites usually do very well at driving sales compared to other types of sites. That's the main reason there _are_ review sites for all sorts of products on the web. You most certainly do not go to Ebert's site just to read articles on their own merits, you go to find out which movies are worth watching. If he thinks a movie is worth watching, I'd imagine that makes a lot of people watch that movie fairly soon after reading his review, so if that's not converting into sales he's probably got some part of his affiliate strategy wrong in a very bad way.

</comment></comment></comment></comment><comment><USER8> Affiliate programms for Netflix and Amazon, highly targeted to the actual movies, add local Coupon Ad Systems from cinemas (I know they don't existyet), now double the traffic with some SEO optimization (nothing bad, just better cross linking on the site), get higher conversion rates to regular users by integrating email supscriptions at the end of every article... target the email newsletter by city.... ad local cinema advertisement by a small self service ad system ...

I think it's quite possible to make substantial amounts of money with Roger Eberts site.

<comment><USER9> Someone needs to set up an affiliate type program for local businesses.

<comment><USER10> I love to discuss about how to setup affiliate type program for local business. One of the problem is payment tracking. I am trying to come up a solution. Love to talk about it...

<comment><USER11> I've thought about this a lot as well, its a tougher problem to crack than meets the eye. I started working on something like this that I ended up scrapping to solve the payment tracking part first. That is also a really tough problem :)

</comment></comment></comment></comment><comment><USER12> An idea on content micro-payments that just came into my head:

Let's say that you are a user that wants to contribute $10/mo for all the good blogs and content that you consumer online. You go to paymentstartup.com which puts a cookie in your browser. All content providers that wants money from paymentstartup.com users will add a tracker to their website that will report to paymentstartup.com whenever somebody has visited their blog ir whatever. Then, by the end of the month, you might have visited 50 blogs so paymentstartup.com splits your contribution among these sites using some smart algorithm.

What do you think?

<comment><USER13> I believe that's what <http://www.kachingle.com/> is trying to do.

<comment><USER11> I think that's the idea behind <http://www.flattr.com> as well

</comment></comment></comment><comment><USER14> Everytime I hear the term "micropayments" I think of the penny arcade comic: <http://www.penny-arcade.com/comic/2001/6/22/>

</comment><comment><USER15> An allergist I know told me that the New England Journal of Medicine once offered a lifetime subscription for $500. For context, the annual price right now $159. Among medical journals, that's _cheap_. $500 for a lifetime subscription would be unfathomable. Only problem was that in the mid 1980s, medical residents just didn't have $500 to cough up (well, about 75% of their parents might have, but that's another story).

</comment><comment><USER16> His talk about micropayments makes me wonder why it hasn't come further than it has in all the years since it was first talked about. He mentions Google Checkout as a possible provider. But I would guess Paypal and Amazon's payment solutions have a bigger foothold. Anyone know of any widely used "micropayment" solutions?

<comment><USER17> The failings of µpayments are both social and technical. The transaction costs still eat up a micropayment on the technical side, and the gap between "free" and "costs something" in psychology ruins the social side.

Flattr is the most interesting approach to this "problem" yet.

<comment><USER18> I think the psychological problem isn't as big as it's made out to be. Every time you turn on the lights or plug in your mobile phone charger, you're making a micropayment to your power supplier. Yet you use electrical appliances every day without giving it a second thought. Why? Because you know, more or less, what your typical usage ends up costing you and you mentally accept that expense in advance.

<comment><USER19> The bigger problem, I think, is not being able to control costs. I'd rather pay $12/month for Github than $0.02 per commit, for fear that I'd have a really productive month and end up with a bill for $200.

</comment></comment></comment></comment><comment><USER20> Did anyone watch that first Youtube video with the guy talking in a bookstore? I highly recommend it for entertainment value, but it's hard to tell what the guy's point is w.r.t. micropayments. Payments are totally orthogonal to where the thing you are or are not paying for is stored. Also, the "local caches" he refers to are copies.</comment>


Show HN: multimethod.js - a Clojure-inspired multimethod library for JavaScript - <AUTHOR> http://krisjordan.com/multimethod-js

<comment><USER2> Neat! I made something (I think) similar a while back, also inspired by Clojure. Mine's more of a proof-of-concept, as I have zero Clojure experience outside some very casual reading.

<https://github.com/brian-c/patterned-function>

</comment><comment><USER3> I like this very much. It's like a lightweight dispatcher/router/alternative to tons of switches/if & elses. And also that the source is very short and readable.

</comment><comment><USER4> Nice stuff, I liked the approach.

But what is the benchmark for this kind of structure against regular JS workflow? I guess it will be slower, but how much ?

<comment><AUTHOR> Good question.

Performance will depend on a number of factors, such as how complex your dispatch function is, how complex your dispatched values and match values are (deep equality becomes more expensive as the compared objects grow in complexity), and how many methods are registered. In general, it is much more expensive than native switch statements or prototype chain lookups.

If performance is of utmost importance and you can substitute a switch statement or prototype hierarchy for a multimethod, you should. Multimethods are a useful pattern for achieving things that either aren't possible in switch (add/remove cases dynamically, deep equality case matching) or are not naturally/painlessly expressed with a prototype hierarchy.

<comment><USER5> It doesn't have to be any slower than highly optimized switch statements if you're willing to compile to JavaScript. All you need analysis / compilation support. I've been working on this for a while now for Clojure / ClojureScript.

</comment></comment></comment><comment><USER6> in coffeescript:

        fib = (n) -> switch n
          when 0 then 0
          when 1 then 1
          else fib(n-1) + fib(n-2)

        alert fib 20

<comment><AUTHOR> While fib is a good example of concisely illustrating the control flow of a multimethod, it is a bad example of where it makes sense to use a multimethod. What is interesting about a multimethod is you can change your dispatch logic and bind new cases well after your multimethod function is constructed. In situations like fib where you know every case you need to handle up front you should certainly use 'switch'.

To illustrate this flexibility in the context of fib, multimethod.js, and CoffeeScript:

       > fib = multimethod()
               .when(0, 0)
               .when(1, 1)
               .default (n) -> fib(n)
       > fib 20
       6765

       > fib.dispatch (n) -> n.numberVal or n
       > fib 20
       6765

       > fib { numberVal: 20 }
       6765

       > fib.when 2, 1
       > fib.when 3, 2
       > fib 20
       6765 (now "optimized" with fewer recursive calls than before)

<comment><USER6> Could you comment on a good use-case for this? A time when it would actually be better to construct a switch block dynamically vs all at once.

<comment><AUTHOR> Great question, probably worthy of its own post. Rather than trying to think of times you want to construct switch statements dynamically, try to think of times you'd like to specialize how a generic function call will respond to arguments it may not even know about.

In object-oriented programming, you can define a base class "Animal" with a method "makeNoise" and subclasses with a method "makeNoise" with that will return "bark" if you call a Dog's makeNoise or "meow" if you call a Cat's. When you first defined the Animal's "makeNoise" method you didn't need to know how anything about the subclasses that would eventually implement it. Your algorithms could depend on "makeNoise" returning the noise specific to the animal in question.

Multimethods are a functional approach to polymorphism without a class/prototype hierarchy. The second example in the post shows how you might implement a multimethod that calculates the area of shapes. Perhaps a separate module introduces new kinds of shapes (like new kinds of subclasses in OO). These shapes can register their area implementations with the 'area' multimethod. Other algorithms that use the 'area' multimethod will now be able to operate on these new kinds of shapes. Multimethods provide a means to polymorphism while keeping data and functionality decomposed.

Like swannodette says more beautifully and concisely, though, it's an even more generic/flexible dispatch than thinking in terms of OO polymorphism.</comment></comment></comment></comment>


Five resources to use (together) when learning to read and write Chinese - <AUTHOR> http://whizzlearning.com/2013/10/01/five-resources-try-learning-chinese/ Are there any other resources I am missing? It feels like a combination of them is important.<p>We are building an app that will be another tool in that toolbox soon. <comment><USER2> I'm surprised by the lack of mention of Remember the Hanzi and Anki. They were both originally developed for Japanese (the original book Remember the Kanji), but it seems like they would be just as useful. Chinese characters always seemed a little easier to me since most only have one pronunciation. A RtH deck plus a vocab deck for pronunciation seems like a fairly straight forward way to tackle all the characters within a year.

<comment><AUTHOR> You are correct that both of those are additional resources. I didn't mention Anki since I am on the fence about regular people using it.

For example, I think the fact that the person has to take two thoughtful actions per flashcard review: 1) answer the flashcard and 2) grade themselves.

Also, the way that things can get backlogged and the particular SR algorithm seems cumbersome.

Anyways, these aren't issues that other people haven't brought up already. I just feel like it more of a 'hardcore' tool rather than a beginner tool.

I have tried to read Remember the Hanzi a bit, but it feels like I am reading a dictionary. Maybe it is closer to the Chineasy method but with less story?

 __ __*

We are trying to address some of these issues with what we are working on at [http://whizzlearning.com](http://whizzlearning.com). It is very much focused on how to get beginners started. We plan on going live in the app store soon. Sign up for our announcement on the home page.

<comment><USER2> I agree the biggest barrier to entry with Anki is initially setting it up for the beginner user but once you get over that really big hurdle its extremely useful and my results in college were very real when I finally started using it. The main thing with Anki is that it has to be used with the material you're studying and is pretty bad if you try to use it as your own.

RtK/RtH is similar in that way that if you simply try to read it without atleast making paper flash cards you won't get any use out of it.

It seems your app is actually pretty similar in that it breaks down the characters into simpler parts and then builds on those parts.

<comment><AUTHOR> Agreed, there seem to be good decks for Anki that follow different books or courses (Skritter does this too).

With regards to Whizz Learning, we definitely looked at Anki, Skritter, SuperMemo, etc. to see how they help people remember things. I felt like the the management of their own deck (or copying a bad one) can turn someone off from the beginning. We tried to make it simpler in how we grow the deck.

The system itself does try to break characters down into simpler components or symbols. It came from a neurolinguist that created the system to help stroke victims to relearn Chinese. There is some interesting science behind it that we are going to post about soon.

We just submitted to the Apple store for our first version. I would love to get your thoughts on it when we are approved.

Any other thoughts you have on Anki or other learning products are very interesting to us.

</comment></comment></comment></comment><comment><USER3> I haven't seen or used any of the mentioned tools, but I have found [http://nciku.com](http://nciku.com) to be useful on many occasions.</comment>