Show HN: I Design with Code - <AUTHOR> http://codepen.io/chrisgannon/pen/VjWWZO <comment><USER2> I was curious as to how this was done, so I took a look at the external JS that CodePen was configured to load. He's using GreenSock[1], which looks like a really cool tool for building rich interactions and animations with SVG+JS in the browser.

1: [https://greensock.com/](https://greensock.com/)

<comment><USER3> It is.

But it's never got much love outside of Advertising/Marketing circles (was originally a animation toolkit for Flash, now JS) because it was closed source and pay-to-use.

It (probably) is the best animation library out there.

<comment><USER4> So it's now open-source? If so, cool.

> was originally a animation toolkit for Flash, now JS

I wonder how difficult that transition was.

<comment><USER3> > open-source

Take a look at his licensing page. [1] Certainly isn't Open Source in the traditional sense and the terms are pretty convoluted; again IMO the reason for it not gaining mainstream developer adoption.

I remember paying a yearly fee ($100?) for their "Club Greensock" membership so I could develop and supply code for clients and be in good standing. Of course the costs involved trying to replicate this toolkit and keep within deadlines made the fee seem very reasonable at the time.

> transition

There was definitely a transition, some Devs might argue it wasn't that painful; but certainly having a JS version of this particular codebase helped immensely, and also proved that we could still do all the "sizzle" we were able to do in Flash now with JS.

The posted example is testament to that IMO. Very smooth :)

[1] [https://greensock.com/licensing/](https://greensock.com/licensing/)

</comment></comment></comment></comment><comment><USER5> Neat, but a bit ironic since the visualisation is "using a GUI" to design stuff.

<comment><AUTHOR> The GUI animation is completely coded which is the 'punchline', so to speak.

</comment></comment><comment><USER6> I would like to see less code and more of everything else. This is funny though :-)

<comment><USER7> I'm genuinely surprised the kind of reaction this comment is getting. There wouldn't be a design if it wasn't for actual programming.

The vector graphics you see are mathematical models which are 'coded' in a script or a programming language and animated with the help of... again... programming.

I understand the concept of less code and more stuff, but the fact that people are saying programming is not for designing is just simply absurd. The tools on top of which you design convert everything into code.

I'm in no way saying people should stop using these tools or design should only be done through code. But knowing how to visualize things in your mind and materializing that concept through code/programming is beautiful and (in my personal) opinion makes you a better designer.

<comment><AUTHOR> I'm fairly shocked too. I appreciate that lots of people don't understand this way of creating stuff but to suggest that programming and design are two separate entities is to deny an exciting approach to design in general.

</comment></comment></comment><comment><USER8> The visualization is much less interesting in Firefox.

<comment><USER9> Looks the same here...

</comment></comment><comment><USER10> I dont see how this is even slightly novel, or interesting. I say this because there's endless examples of cool svg and css driven animation and interactive art that is 'coded'.

<comment><USER11> It's a Show HN..

</comment></comment><comment><USER12> I see a blank screen on phone.

</comment><comment><USER13> Neat, thank you for sharing :)

</comment><comment><USER14> Awesome!</comment>


All Google Services Are Down in Particular Countries - <AUTHOR> https://twitter.com/edzemk/status/1207604268796129281 <comment><AUTHOR> Detailed report for each location which is not reachable from: [https://outage.report/google/amp](https://outage.report/google/amp)

Another report link: [https://netblocks.org/reports/youtube-gmail-and-google- servi...](https://netblocks.org/reports/youtube-gmail-and-google-services- down-in-multiple-countries-xyMk4GAZ)

Connection issue appears in 20+ countries mostly in Middle East and Eastern Europe incl. Netherlands, UK, Ireland, France and Germany.

There's no any official announcement from Google and probably not the only one who is beginning to think about having another main mail account. Are there any precautions for effecting less on issues like this for another future occurrence?</comment>


Unforgivable medical errors - <AUTHOR> http://scienceblogs.com/insolence/2010/01/unforgivable_medical_errors.php

<comment><USER2> The NY Times article in question is [http://www.nytimes.com/2010/01/24/health/24radiation.html?pa...](http://www.nytimes.com/2010/01/24/health/24radiation.html?pagewanted=all) (one page).

I happen to _cough_ know people that work with the same software suite described in the article. They encounter errors daily that are unexplainable by IT and by the company itself. Scary stuff.

<comment><USER3> Agreed. The NY Times Article is just plain scary.

</comment></comment><comment><AUTHOR> The comments to the submitted article include a detailed discussion of design issues for software used in medical treatment. From those comments are links to many classic articles on software design.</comment>


Government looks to increase web surveillance - <AUTHOR> http://www.ctv.ca/servlet/ArticleNews/story/CTVNews/20090618/tories_internet_090618/20090618?hub=TopStories

<comment><AUTHOR> Reading about this made me feel physically ill. I'm going on a trip to China next month. It seems I'm already there.

<comment><USER2> I realize this comment is in the nature of a quip, but I've been saying for some time that China (and similar) is/was the prototype.</comment></comment>


New Zealands Three Strikes Law was Pushed, Bought and Paid for by the US - <AUTHOR> http://www.zeropaid.com/news/93326/new-zealands-three-strikes-law-was-pushed-bought-and-paid-for-by-the-us-wikileaks/

<comment><AUTHOR> Some quotes from the article:

      [...] What's most hilarious about this is the fact that the embassy is citing the DMCA as a ten year
      success. Bruce Lehman, the architect of the DMCA, acknowledged as far back as 2007 that the
      DMCA was failure where blame solely rests on the shoulders of the RIAA for failing to adapt
      to a modern marketplace. It's very unnerving the idea that not only was the US basically
      lobbying New Zealand to implement very bad laws, but also citing unrelated examples and
      casting failed policy as success stories. It defies logic. [...]

      [...] The good news is, the citizens of New Zealand were not alone with receiving this kind of
      attitude from their own government. Just look at the attitude given to Canadians when they
      discovered that they didn't like what they saw in the copyright laws being pushed by American
      interests.[...]

      [...] Overall, I think it is infuriating the way the US has conducted themselves on copyright
      on the international stage. In New Zealand, they are even pushing the country to implement
      laws even the US wouldn't dare pass themselves because of it's over-restrictiveness. I think
      Americans would be equally offended if, say, Chinese diplomats went to the US and dictated
      what laws should be passed on, say, internet laws for instance. If the US government wants
      to know why there is so much resentment directed to the US, maybe they should look at how the
      US is dictating law-making in other countries as one example why people in other countries
      are so fed up with American influence in the first place. With revelations like this, you'd
      think that governments all over the world exist only to pander to US interests at the expense
      of their local populations. I think, for many people in countries outside of the US, it
      should be shocking how little governments utilize their sovereign rights to control what goes
      on in their own countries.

</comment><comment><USER2> This is completely shameful for the USA government, and indicates a total failure on the legislative branch's part. The citizens of the USA need to vote more carefully. The USA also needs some kind of effective campaign reform, to prevent the elected officials from ending up beholden to major campaign contributors.</comment>


Which subjects in (theorethical) computer science matter the most in practice? - <AUTHOR> http://programmers.stackexchange.com/questions/47167/which-subjects-in-theorethical-computer-science-matter-the-most-in-practice

<comment><USER2> Which practice?</comment>


Whatsapp now for free in iOS  - <AUTHOR> https://itunes.apple.com/us/app/whatsapp-messenger/id310633997?mt=8

<comment><USER2> May fit with earlier reports that they plan to create a monthly subscription where the first year after the initial install is free, and after that you have to pay $n per month.

<comment><AUTHOR> Still their FAQ lists its $ 0.99 after one year [http://www.whatsapp.com/faq/en/general/23014681](http://www.whatsapp.com/faq/en/general/23014681)</comment></comment>


Drchrono raises $12M Series A takes on older EHR's like athenahealth - <AUTHOR> https://techcrunch.com/2017/04/06/drchrono-raises-12-million-in-series-a-to-take-on-older-ehr-platforms-like-athena-health/ <comment><USER2> Was surprised to find this article was published today by TechCrunch. Even more surprised that it makes no mention of the Series B-H funding that drchrono has had to chase every year since its founding.</comment>


List of review articles on ML and AI that are on arXiv - <AUTHOR> https://freenode-machinelearning.github.io/Resources/ArticlesReview.html#papers <comment><USER2> This is at once an awesome and overwhelming list. Major kudos to whoever took the time to put it together. I wonder if there's a way to tag these or group these into categories so that they'd be easier to bite into.

<comment><USER3> it's auto-generated - it says so at the top. i don't see the point of this at all since you could reproduce by simply searching "survey" or "introduction". at minimum a cite count would've been helpful to distinguish well written ones from poorly written ones

<comment><USER4> It'd be easy to split them by year or subject, as that's provided by the arXiv.

<comment><AUTHOR> Just how is the subject provided by arXiv? By subject, do you mean the categorization such as stat.ML, cs.AI, etc.?

<comment><USER3> yea sure why not? like just a tiny bit more curation would've made this actually useful. as it stands now it's just an unordered list.

<comment><AUTHOR> It's currently ordered by date, with most recent on top. It's not unordered.

</comment></comment></comment></comment></comment></comment><comment><USER5> I written a service recently which predict articles future citation from arXiv, IEEE as rank which would save time from avoiding reading all the articles. It's still a work in progress, especially the keyword filtering part. link: [https://www.notify.institute/](https://www.notify.institute/)

<comment><USER6> As Panoramix queried, could you introduce more details to your project? From your website, I only got that you are analyzing paper based on the author info and the citation history of his previous works and filtering papers by some tech like topic modeling. Though the project is still in progress, will you share info about what you have done and what you are about to do?

<comment><USER5> My model is based on these papers [1,2,3]. I found that adding the paper meta info such as table count, page count improves my model performance ( R^2 score of future citation of 2 years later ). For now, I am working on better filtering method using word embedding, such that a keyword "CNN" would also include papers about convolutional neural network.

1\. Xiao, Shuai et al. "On Modeling and Predicting Individual Paper Citation Count over Time." IJCAI (2016).

2\. Dong, Yuxiao et al. "Can Scientific Impact Be Predicted?" IEEE Transactions on Big Data 2 (2016): 18-30.

3\. Yan, Rui et al. "Citation count prediction: learning to estimate future citations for literature." CIKM (2011).

</comment></comment></comment><comment><USER7> Someone needs to work on the deep learning problem of automatically curating these things and surfacing the important ones.

I suspect it's harder than the self driving car problem.</comment>


Show HN: POS – A basic API to consult Part of Speech of a word - <AUTHOR> https://victorribeiro.com/pos <comment><AUTHOR> A long time ago I was working on a sentence generator. I end up studying sentence's composition and part of speech. As I was having trouble to find a free API that would let me consult the POS of a given word, I end up hacking this one together. When you make a post to the only end point (up to 10 messages) it will return the POS of that word PLUS a suggested word with the same POS.

let me know if you find this useful.

p.s.: I'll will keep this up until my server can handle the requests. I don't believe many people would use this, but if they do, I'll have to figure something else.

</comment><comment><AUTHOR> If you want to try it out:

curl -X POST -F "msg=today" [https://victorribeiro.com/pos/word.php](https://victorribeiro.com/pos/word.php)

curl -X POST -H "Content-Type: application/json" -d '{"msg":"day"}' [https://victorribeiro.com/pos/word.php](https://victorribeiro.com/pos/word.php)

fetch('[https://victorribeiro.com/pos/word.php'](https://victorribeiro.com/pos/word.php'), { method: "POST", headers: {"Content-Type": "application/json"}, body: JSON.stringify({msg: "today"}) }). then( r => r.json() ). then( data => console.log(data) ). catch( e => console.error(e) )</comment>


Study: Too Much Technology Has Destroyed Our Ability To Sleep - <AUTHOR> http://techcrunch.com/2011/03/07/study-too-much-technology-has-destroyed-our-ability-to-sleep/

<comment><USER2> Here's the click through link: [http://www.crunchgear.com/2011/03/07/study- too-much-technolo...](http://www.crunchgear.com/2011/03/07/study-too-much- technology-has-destroyed-our-ability-to-sleep/)</comment>


RhodeCode Goes Open Source - <AUTHOR> https://rhodecode.com/blog/113/rhodecode-goes-open-source-unified-security-for-git-svn-mercurial <comment><USER2> I can't read a lot easily on my phone, but two observations:

A) they don't name the license they're using and I don't recognise it. They claim it's open source but the wordage I saw references lots of "personal use" "no reverse engineering" "no redistributing without explicit permission".

B) their faq and comparison pages are inconsistent - faq says ldap/oauth is in both editions, comparison page says those features are enterprise only.

<comment><USER3> The license is AGPLv3,

you can find its full text here along with the source code: [https://code.rhodecode.com/rhodecode-enterprise- ce/files/946...](https://code.rhodecode.com/rhodecode-enterprise- ce/files/94668ab40cfac92d886c4d66af9743df0f4531d0/LICENSE.txt)

<comment><USER2> So yet again the FAQ has conflicting information: [https://rhodecode.com/faq#communitylicense](https://rhodecode.com/faq#communitylicense)

Being AGPL means my interest in this is now extinguished anyway, but the information on the site doesn't inspire confidence either.

<comment><USER4> Mind sharing why AGPL is not a good fit for you ?

<comment><USER2> I think this is a decent summary. [http://stu.mp/2010/02/why-i-hate-the- agpl.html](http://stu.mp/2010/02/why-i-hate-the-agpl.html)

<comment><USER3> This is interesting, especially this part:

> you must also publicly release any code that connects to an AGPL piece of > software over a network. I fear the day that an HTTP server is built using > AGPL. Think about it.

I don't think this is true, which part of the AGPL license implies that? It is my understanding that AGPL means that even if you don't redistribute the software with that license - you still need to put the sources online. Nothing about interaction of 3rd part software.

After all database servers are released under AGPL - like mongoDB among the popular ones.

</comment></comment></comment></comment></comment></comment><comment><USER5> RhodeCode was already Open Source once and it then went "closed source"[1]. That event resulted in creating a truly Open Source fork called Kallithea[2] (GPLv3) held under Software Freedom Conservancy[3] umbrela.

I wonder if they tried to cooperate with SFC, as it seems they have choosen an Open Source license incompatible with Kallithea (AGPL vs GPL3)? Would those two projects try to work together?

There is not much choice if you need Mercurial self-hosting unfortunatelly, so this move is much appreciated.

[1] [http://ebb.org/bkuhn/blog/2014/07/15/why- kallithea.html](http://ebb.org/bkuhn/blog/2014/07/15/why-kallithea.html) [2] [https://kallithea-scm.org/](https://kallithea-scm.org/) [3] [https://sfconservancy.org/](https://sfconservancy.org/)

<comment><USER4> Hi Adam,

We're in constant contact with SFC, we also talked to Bradley about OpenSource RhodeCode.

We picked AGPL since this is what we believed would be the best option for us. RhodeCode 4.X is totally different project now, and as for Kallithea, we will see how this works out. We're of course open to cooperate with other projects.</comment></comment>


Could AI Be Immortal? - <AUTHOR> http://m.nautil.us/issue/86/energy/could-an-ai-be-immortal <comment><USER2> I think this depends on whether the "spirit" of an AI representation is independent of the hardware it runs on. The human brain for examples is not independent of it's hardware. Our state of mind is represented by billions of neurons connected with each other. Thus, if our body is destroyed, we die. We could create a clone, but it would be another instance of ourself. However, if a body (e.g. a robot skeleton) is just a hull of a consciousness, then we can't apply the definition of immortality as stated in the article. Because although each instance of the consciousness would have a limited lifespan, the consciousness itself becomes immortal. The best example for this is the AI Lobsang, a reincarnated Tibetan motorcycle repairman, in the Long Earth novel series written by Terry Pratchett and Stephen Baxter.

</comment><comment><USER3> If we have an AI with the full degree of interconnective complexity of a human, and we want a real-time streaming backup(or 100 of them in many places for protection via diversity) - are we making a population of AI's that will instantly diverge from the original AI so they will initiate a new different AI, or are we making a high density media copy, each of which can be used to restore into memory as the original AI to start to 'live' as we power up? The copy might be 10 years separated in time from the deathof the original AI - unless it is not dead at all, and we now have 'n' of them, each with the same streaming backup. All running at 10 to ?? Ghz? Things will get crowded indeed...

</comment><comment><USER4> Backup tapes for a artificial general intelligence with "That is not dead which can eternal lie, / And with strange aeons even death may die." printed on them</comment>


Understanding V8 - <AUTHOR> http://s3.mrale.ph/nodecamp.eu

<comment><USER2> For those like me, who initially assumed that this didn't work in their browser for some stupid reason, turns out you need to press the space bar or page up/down.

<comment><USER3> You can also click the sides (left or right) of the page. Not very intuitive interface, got me too :)

<comment><USER4> I don't understand why anyone would deliberately make a website with such simple navigation completely hidden.

<comment><USER5> I am very sorry about unintuitive interface, but these are slides for the talk I gave on nodecamp.eu, not a website.

I'll add a note on the first slide as soon as I get home.

<comment><USER4> Ah, I see.

When using the same website both for the actual presentation and for disseminating the slides afterwards, it might make sense to have some kind of navigation visible by default. You could then have a "presentation mode" shortcut key that hides the nav element when you're showing the slides on the big screen. This way, the same site would serve both audiences.

</comment></comment></comment></comment></comment><comment><USER6>
        In hot code
        Avoid const

I wonder why?

<comment><USER5> Because: 1) const is not supported by an optimized compiler and any function that declares or references const variable will not be optimized; 2) const is slower than var because it has a more complicated semantics;

</comment></comment><comment><USER7> It looks like a fantastic presentation. There were a lot of things I didn't understand from just the slides though.

<comment><USER5> Just ask if you are interested in something.

<comment><USER7> I was reluctant to ask because all of these are potentially questions that I could answer myself with sufficient effort.

What's the relevance of the "GC cost" slide to the two code-change slides that follow it? Does manually converting tail-recursion have a significant impact on the number of long-lived objects?

Are you using cons-strings somewhere? (I was thinking of something like Erlang IO lists. But maybe you just mean the for (...) { x.push(s); } return x.join('') trick?)

Why is "indexing" relevant in "don't mix indexing and concatenation"? It looks to me like the problem is building up a big string by repeated concatenation, no? Not indexing.

What's ~ToNumber? Is that a destructor? Or is it just the conversion applied by Number()?

What did you use the typed arrays for?

Where do you get HiddenClass from? It's not in the global namespace of my copy of node.js by default.

Did you have an example where you were able to convert a polymorphic call site to monomorphic? Also, does V8 use PICs at all, or does it just have a monomorphic inline cache like in Deutsch & Schiffman?

What's the connection between dictionary mode and the code on the dictionary- mode slide?

What causes the arguments object to materialize?

On "Two types of variables", it appears that retaining g will result in v3 not being garbage collected, potentially resulting in retaining an arbitrarily large amount of garbage. Does that really happen?

<comment><USER5> 1\. V8 does not perform tail call elimination (AFAIK none of the major JS VMs perform it) because certain legacy JS language features (namely func.arguments and similar) are not TCE-friendly (see for more details <http://code.google.com/p/v8/issues/detail?id=457>). So manually performing TCE indeed reduces number of (relatively) long lived objects: tails of the string created with substr.

2\. I am not sure about this question. V8 uses cons-strings internally: so it is important to understand that c = a + b does not result (at least not immediately) in an allocation of a new sequential string and copying characters from a and b to it. That means that concatenating many strings does not cost much (especially if they are large) at the moment of concatenation. Actual concatenation happens later, when you start indexing into this string: V8 will flatten it (convert from cons-string form into sequential form).

3\. See 2. If you intermix indexing and concatenation you basically force s to oscillate between cons and sequential forms: cons-string is created, then flattened on indexing, and result is concatenated with the string forming a cons-string which gets flattened... Resulting performance is bad because cons- strings actually become pure overhead (you waste more on their creation than you benefit from them) in this cycle of concatenation and flattening.

4\. '*' as a prefix means optimized function and '~' as a prefix means non- optimized function.

5\. Everything starting from 'Understanding Numbers' slide is a collection of facts unrelated to the first part of the talk about profiling. To get the idea of how typed arrays affect performance you can read my blog post: [http://blog.mrale.ph/post/5436474765/dangers-of-cross- langua...](http://blog.mrale.ph/post/5436474765/dangers-of-cross-language- benchmark-games)

6\. HiddenClass slides try to illustrate the idea of inline caching (<http://en.wikipedia.org/wiki/Inline_caching>) without using assembly. It's pseudo-code. HiddenClass is a structure that describes layout of an object. Slides #42-#50 illustrate how VM builds hidden classes hierarchy while executing the code. Slides #51-#52 try to illustrate how you can utilize hidden classes when you compile code. There are couple presentations that discuss hidden classes at the lower and more detailed level: for example Mads Ager's talk at Google IO 2009: <http://youtu.be/FrufJFBSoQY>

7\. No, there were no example (it's impossible to fit that much into a single 40m talk). In V8 ICs have a special megamorphic state in addition to monomorphic state. Megamorphic stubs are not specialized for types IC had seen (unlike monomorphic stubs), instead they rely on a cache of monomorphic stubs (indexed by hidden class of the receiver).

8\. Those are functions that force object from fast-mode to dictionary-mode.

9\. In non optimized code it is materialized when used in the code. In optimized it is never materialized (but as the slide says: if you "misuse" arguments in a function it will not be optimized).

10\. I have not seen any real world code that suffers from this problem. But people ask about scopes and closed-variables quite often that is why it is included.

<comment><USER7> > V8 uses cons-strings internally

Ohhh. I had no idea. That makes the next point a lot more understandable.

> '~' as a prefix means non-optimized function.

Where does ToNumber come from? It sounds like the kind of thing that ought to get optimized!

> Those are functions that force object from fast-mode to dictionary-mode

You mean, if you use delete, getters, setters, seal, or freeze, then the object will use dictionary-mode thereafter under he covers?

> if you "misuse" arguments in a function it will not be optimized).

What constitutes "misuse"? Anything other than .length, [i], and applying a function to it, I guess (e.g. passing it to some other function such as Array.prototype.slice)?

> I have not seen any real world code that suffers from this problem.

So it exists theoretically? The benefit of being implemented this way would be that creating closures is a lot faster and they use less space.

<comment><USER5> > Where does ToNumber come from? It sounds like the kind of thing that ought > to get optimized!

ToNumber comes from Number(l). I can't see how it can be optimized (l is a string so parsing is unavoidable).

> You mean, if you use delete, getters, setters, seal, or freeze, then the > object will use dictionary-mode thereafter under he covers?

Yes.

> What constitutes "misuse"?

Your understanding of misuse is correct.

> So it exists theoretically?

Yes.

<comment><USER7> Thank you very much!

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> Awesome! Is there a video of the presentation somewhere, or a transcript? I've love to hear/see the talk.

<comment><USER5> Unfortunately the talk was not recorded. There is no transcript either.

<comment><USER9> Will there be a transcript available in the future?

<comment><USER5> Probably not. Everything is there in the deck.

If people will have a lot of questions about slides (there is nothing novel there though) I can do a follow up post.

<comment><USER10> I'd be glad if you could do that.

Might be a lot to ask, depending on the time needed to write a couple of lines - but I guess right now it's most helpful for the people that are already educated on v8 performance.

It's just that you could easily educate a broader audience ( _cough_ \- like the author here) with a short write up. Some things are 'obvious' (GC pressure), some (everything about 'In hot code', some of the trace parameters) things are opaque and ~meaningless~.

<comment><USER7> "In hot code" means "in code that comprises a substantial part of your execution". Presumably if you run try-catch or eval in non-hot code, it still runs slow, but not slow enough to make your whole program slow.

I wondered too if they had more to say about the usefulness of some of the trace parameters. I am pretty sure they refer to what the _profiler_ traces (and logs), but I don't know whether they got any usefulness out of them.

<comment><USER10> Sorry, my bad. I should have explained it better.

What I meant was: The whole 'in hot code' part of the slides didn't make sense to me, because it's something like a list of (unexplained) statements. I know what 'hot code' refers to, I just don't particularly like to accept things as facts without a minimum of explanation. Probably the author is dead on and I'm sure he knows a lot more about the technology than I do, but 'don't use X, use Y' or 'avoid Z' is something that should be qualified.

Probably the talk did that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> One of the best presentations of nodecamp.eu</comment>


Thousands of cancer diagnoses tied to a poor diet, study finds - <AUTHOR> https://lite.cnn.io/en/article/h_cbfc44931e2b13dedf63c1dcaee7e131 <comment><USER2> Diagnoses, or cases?

If eating badly makes it easier to detect cancer earlier, it's win-win!

If eating badly is causing cancers, as I suspect they mean, it would be better to say so.

<comment><AUTHOR> First line in the article: _Your diet may have more impact on your cancer risk than you might think..._</comment></comment>


Schneier says he was 'probably wrong' on masked passwords - <AUTHOR> http://www.theregister.co.uk/2009/07/07/security_guru_password_retraction/

<comment><USER2> I don't really know what the fuss is about since the simplest solution is the most obvious one. Masking should be optional, it should be enabled by default and controlled by the checkbox next to the entry field.

<comment><USER3> Ick. Since you don't see what all the fuss is about, you're going to put another doodad between your user and conversion. Ask an online business that does any sort of volume at all: this is bad.

Web forms are where the usability rubber hits the road online. When adding an item to your form you should always be of the mind set that this extra step (optional or not) _will_ lose you conversions, but you have to have it because of _X_. This forces you to justify placing item _X_ , which in this case is the unmask password option. Is having an option to unmask the password field going to gain you more conversions than not? I have no data, just anecdotes and experience, but those all tell me no.

Putting a check box next to the entry field is putting GUI decisions on your user because you can't figure it out, and it will lose you conversions.

EDIT: Re-reading this it sounds like personal attack on the OC. It's not. I'm using the universal you.

<comment><USER4> There is no 'universal you' - but there is 'one', which exists for exactly that purpose...

</comment></comment></comment><comment><USER5> Why is this still an issue?

The problem of displaying passwords has been solved by Unix years ago: do not show any visual feedback whatsoever. Security over convenience.

The problem of storing and subsequent input of random secure passwords has also been solved by Schneier and others via pwsafe and variants thereof. No worries about mistyping at all.

For special cases like Blackberry-type gadgets, what is needed is simply a port of pwsafe.

</comment><comment><USER6> I wonder how this affects Schneier Facts: <http://www.schneierfacts.com>

<comment><USER7> "Most people use passwords. Some people use passphrases. Bruce Schneier uses an epic passpoem, detailing the life and works of seven mythical Norse heroes."

Given this fact, it's not too hard to see why he would have come out against masking . . .

</comment></comment><comment><AUTHOR> (this is a followup to <http://news.ycombinator.com/item?id=676480>)

</comment><comment><USER8> _Don't_ make it optional. Security over convenience.

I blogged about this here: <http://is.gd/1wVja>

</comment><comment><USER9> On our signup form for our time tracking service, the password fields are clear text, with a checkbox available to hide it that says "I'm being watched!"

Because... the credit card numbers are also clear text.

People on HN, for example, will have a freakout about the password but never the credit card number. It's extremely unusual to shield a credit card number on entry, because of mistakes.

We chose to treat passwords the same way.

<comment><USER10> I think it's much harder to memorize a 16 digit number rather than a (usually) mnemonic password.

</comment></comment><comment> onreact-com Just make password masking a choice. For many people working mostly at home the only person "shoulder surfing" will be a family member. Masking passwords is really an annoyance. I don't want to know how many hours get wasted on retyping passwords over the years. Also people tend to save passwords to overcome the typing annoyance thus making them less secure.

</comment><comment><USER11> Well, has anybody thought that both decisions are right?

I mean, sometimes you _really_ are alone, with nobody shoulder surfing, and password masking is damned annoying. So, why not a check-box to turn masking off? And for the paranoid/security conscious, we can default mask on.

Think: "Middle Path".

<comment><USER12> So, every time I type my password I should check that nobody is behind me? Look to the right, look to the left, look behind, type one key. Look to the right, look to the left, look behind, type one key. Look to the right, look to the left, look behind, type one key.

"Mask-on by default" means no regular user will ever uncheck. I think you greatly overstimate people's security knowledge, not to mention UI.

<comment><USER11> Then perhaps you need to re-read what I said.

By default, the masking would be enabled. All you see are " __ __*".

If however, you have some nasty password and you are in a safe location, you can do_action and turn off stars to "12345".

<comment><USER12> No regular user would ever turn the masking off. They simply don't click on these additional options. Heck, they don't even understand why it's there. Can you explain what's the checkbox's purpose? Why and when should it be turned off?

As a security expert, you should provide what's more secure, even if that means recognizing the users are too dumb to follow your rules.

<comment><USER13> You're basing your opinion on no data, I presume? I'd bet that some users absolutely would turn off the masking, if you made it easy/clear enough.

<comment><USER14> Really? If they're attentive enough to turn off masking, why wouldn't they just enter their password into notepad and then copy/paste?

<comment><USER2> Because it's less convenient.</comment></comment></comment></comment></comment></comment></comment>


BitPay introduces Bitcore - <AUTHOR> http://bitcore.io/ <comment><USER2> Quick note to anyone looking to build bitcoin-based apps - although something like this is probably useful for some applications, you don't actually need a complicated bitcoin client library to interface with the blockchain.

The bitcoin daemon, bitcoind, handles the protocol for you and can run as a headless server. It has a simple JSON-RPC protocol that you can use to create wallets, send and receive transactions, etc. You could write your own client for it in any language quite easily, and for most languages, there's an OS implementation already.

[https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls...](https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list)

In fact, I'd argue that running a cluster of bitcoind servers is probably a better approach, due to separation of concerns. Also, I'd guess that the C++-based and widely used bitcoind is probably faster and more stable than this node-based implementation. Not to knock this project - it's just going to difficult to compete.

<comment><USER3> IMO, bitcoind is a terrible idea. The huge deal-breaking problem with bitcoind is that it provides no way to query for transactions associated with a specific address unless you import that address into the client and give it the private key. This severely restricts your freedom to do your own wallet management, and compromuses security if you want to have many Bitcoin nodes on many semi-secure servers for redundancy.

I personally recommend either SX (see [http://github.com/vbuterin/node- sx](http://github.com/vbuterin/node-sx) for an HTTP pass through server, and I have one running at [http://multisig.info:3001](http://multisig.info:3001)) or if you are okay with centralization then plain old blockchain.info.

<comment><USER4> > The huge deal-breaking problem with bitcoind is that it provides no way to > query for transactions associated with a specific address unless you import > that address into the client and give it the private key.

The reason bitcoind doesn't provide the feature you're after is because it's _not actually possible_ to tie an address to a comprehensive set of transactions.

Addresses are hashes of public keys... public keys which may or may not have been used in isolation, or in one of several common conventions, to make a transaction. Only a particular implementation programmed to parse a predetermined set of transaction script types can actually determine what subset of transaction outputs are spendable, and what consistutes your wallets balance. The protocol itself has no concept of wallets or balances

<comment><USER5> That's not a problem in practice; if you give someone an address and they use it to pay with any conforming client, the resulting transaction will conform to one predictable, easily parsed format. Yes, there are numerous other transaction types possible with the same underlying public key, but they _are represented by different addresses in all cases_.

</comment></comment></comment></comment><comment><USER6> This is great. It looks like there is already functionality to connect to peers and send and receive transactions. Is there any functionality to store and query the blockchain as well?

</comment><comment><AUTHOR> They also have a blockchain explorer using Bitcore with AngularJS: [http://insight.bitcore.io/](http://insight.bitcore.io/)

<comment><USER7> The Readme says insight requires a running bitcoind to communicate to over RPC, does bitcore require the same? or is bitcore like a reimplementation of bitcoind?

<comment><USER8> Bitcore does not require bitcoind, only Insight.

</comment></comment></comment><comment><USER9> Shameless plug: [https://github.com/cryptocoinjs](https://github.com/cryptocoinjs) (Bitcoin JavaScript fork of the original BitcoinJS) Right now, we're focused on Bitcoin, but we're moving fast and will be expanding support for altcoins. Also, if you're interested in the intricacies of addresses and Bitcoin, I'd encourage to read a very detailed article that I wrote on Bitcoin Addresses and JavaScript: [http://procbits.com/2013/08/27/generating-a-bitcoin- address-...](http://procbits.com/2013/08/27/generating-a-bitcoin-address-with- javascript) Doesn't use CryptoCoinJS yet as the article was written before I started CryptoCoinJS.

<comment><USER10> Please support Dogecoin.

<comment><USER11> Seconding this post, because votes are mostly anonymous and you can't see I upvoted his/her comment.

<comment><USER12> What do you mean votes are "mostly" anonymous?

<comment><USER13> Among other things, pg and anyone with physical access to the HN server should have the capability to determine which users voted on a given comment, since the server needs to store that so it knows to not let you vote twice.

<comment><USER14> It's intentional that you can't.

</comment></comment></comment></comment></comment></comment><comment><USER4> > Bitcore is a complete, native interface to the Bitcoin network

Javascript: the new native.

<comment><USER15> If there was a list of a use cases for typed, "safer" languages, crypto- currency would be near the top of the list.

I can't think of any technical, risk-related, or financial justification for implementing a core piece of crypto-currency infrastructure in Javascript, on Node.

It seems fairly clear that while Bitcoin itself may be a very well designed crypto protocol, the people doing the implementation are woefully underqualified.

<comment> aaron-lebo I think part of the reason you might see some bugs in the Bitcoin code is because it is C++ code managing low level things like memory and threading.

You don't get static typing with nodejs, but you can probably simplify the implementation somewhat by not dealing with low level details and therefore actually get some safety. But aside form that justification there is also the fact that a lot of people won't touch C++ and a code base like this allows a lot more developers to read and understand the protocol.

I guess the ideal implementation would be a modern statically typed language like Rust, Go, or Haskell.

<comment><USER16> C++ is not for scared kids.. C++ is the katana of programming languages: powerful, but you must know how to use it to avoid cut yourself.. and i think the bitcoin core in c++ is being implemented in other softwares as well.. and im pretty sure that this is happening BECAUSE it was created in C++ (only C could also be a fit here)

So kudos to Satoshi whoever he is for this..

</comment></comment></comment></comment><comment><USER8> Eric from BitPay here! Happy to answer any questions.

<comment><USER17> What's the plan for supporting altcoins, or is there one?

<comment><USER8> BitPay is focused on Bitcoin, but Bitcore itself is agnostic as to which blockchain is utilized. We'll gladly review pull requests increasing the utility of this as a tool for cryptofinance in general.

<comment><USER18> Would like to see Dogecoin compatibility

</comment></comment></comment></comment><comment><USER19> Sorry I don't understand what is this... is it a bitcoin client for node?

</comment><comment><USER20> I find it strange to use try/catch to validate an address. I'd expect the validate function to return true/false.

Is there more doc ? This could be interesting.

<comment><USER21> It looks like the intended use is to simply call validate and ignore the result, allowing you to assume from then on it is a valid address.

In theory they should provide a "TryValidate" or similar but it doesn't look like they do at the moment.

</comment></comment><comment><USER22> Does it do anything more than validate addresses?

<comment><AUTHOR> Yes, but examples and documentation are lacking.

<comment><USER8> Documentation incoming.

</comment></comment></comment><comment><USER23> Would this be something to use if I want to build a Bitcoin casino?

</comment><comment><USER24> Where are the docs at?

</comment><comment><USER25> Any plans for support on other cryptocurrencies?

<comment><USER26> DOGE please!

</comment></comment><comment><USER27> Am I paranoid thinking it crazy to use an untyped, interpreted language for financial apps?

<comment><USER28> I'm torn between "The record for bug-free C or Java code are not exactly inspiring" and "Wait wait wait in a system with Bitcoin and Javascript you think _Javascript_ is the probable source of problems?"

<comment><USER27> My question implicitly defined the scope of the conversation to be programming languages. I like how you broke out of that, and pointed out that Bitcoin might have bigger problems that need to be tackled first. Every time I try to think about how to solve Bitcoin's problems, I return to the traditional banking paradigm: you _pay_ someone else to take the risks of managing the money, and they will thus reimburse you if something bad happens.

</comment></comment></comment><comment><USER29> prediction: 5 min later, announces that Bitcore has a security exploit. All coins stolen from all projects that uses it.

<comment><USER30> "Security Please use at your own risk."

So you predicted what their documentation says on the homepage?</comment></comment>


Ask HN: What are some examples of great GUI tool docs? - <AUTHOR> I write the Chrome DevTools docs. If you can think of a GUI tool that has great docs, please comment with a link and your description of why the docs are great. Thanks. <comment><USER2> HyperCard comes right to mind, although it's been at least 20 years since I saw the documentation. [http://hypercard.org/](http://hypercard.org/) has screenshots of one of the on-screen documentation files (click HyperTalk Reference), itself a HyperCard stack.

Here's the original manual (PDF from Apple): [http://download.info.apple.com/Apple_Support_Area/Manuals/so...](http://download.info.apple.com/Apple_Support_Area/Manuals/software/0340617AHYPERCARDI.PDF)

What I can't find is the "Hypercard Tour" referenced there.

</comment><comment><USER3> For Mac, Dash is great: [https://kapeli.com/dash](https://kapeli.com/dash)

It even integrates with Alfred so you can search directly from there with one keyboard shortcut.

</comment><comment><USER4> qt.io is the best</comment>


Mandrill warns attack may have exposed some data about email - <AUTHOR> http://www.cso.com.au/article/570788/mandrill-warns-attack-may-exposed-some-data-about-email/

<comment><USER2> Better link: [https://news.ycombinator.com/item?id=9226421](https://news.ycombinator.com/item?id=9226421)</comment>


Health Benefits of Tea? What the Evidence Says - <AUTHOR> http://www.nytimes.com/2015/10/06/upshot/what-the-evidence-tells-us-about-tea.html?hpw&rref=upshot&action=click&pgtype=Homepage&module=well-region&region=bottom-well&WT.nav=bottom-well <comment><USER2> This is nice. I like tea,hot or cold, and i am one of these folks who don't drink coffee at all.Don't get me wrong.Clearly,there are benefits to drink coffee.Just not for me.</comment>


Ask HN: Are There Any Tech-Based Family Businesses? - <AUTHOR> The art of software engineering is becoming an old practice, spanning generations back into the 60's. Many people also consider software engineering as a craft, similar to wood-working in many ways, where it takes years to master and should involve apprenticeships from experienced engineers.
Something very common in other craft industries is the father-son/family business. I curious if anyone has heard or seen any tech-based family-business?
"Johnson & Sons - Web Development" <comment><USER2> My dad and I are business partners. We own & operate 3 retail stores and have taken our internal tools to market as a (profitable and growing) SaaS. The software side of our business will soon eclipse the retail side.

My dad and I both have tech backgrounds, with mine definitely influenced by his.

Now, my 16 year old son is starting to work for us some as a programmer as well.

So yeah, family tech businesses exist.</comment>


Show HN: our mouse drawn startup intro cartoon - stamplin - <AUTHOR> http://www.youtube.com/watch?v=touYjqcG2jA

<comment><USER2> Sorry to say this but... worst intro ever.

The cartoon is horrible. Two testicles being injected electricity? What's that?

It doesn't convey any message either. I still don't know what you do.

<comment><AUTHOR> I can understand. The experiment was to see if a self made cartoon (with obviously no drawing talent) would get any traction. Our aim is obviously not to compete with any kind of whiteboarding animation or professional work but it see if that would worth spending long hours on something which would have at most a noobish anime style. That isn't testicles but a brain :) Did you read the subtitle or that was still not obvious with them?

Anyway, thanks for your feedback

<comment><USER2> Which text?

<comment><AUTHOR> English subtitles are supposed to be displayed. They are for me, but maybe only for me.

<comment><USER2> Huh, subtitles are disabled by default for me and probably for many others (is it on by default for anyone?). It's a bad idea to add external subtitles if you're not actually subtitling! They should probably be embedded in the video.

I still don't get what you do. I know what you promise but not how it works. You should probably focus in setting up a website first and then promoting it.

IMHO the video is totally not worth it: the impression I got is that you're lazy, don't care about design and are tacky at the least.

Remember: you sell when you catch my eye, not my rational mind!

Also: not being concrete about what you do sounds fishy. Everyone promises profit! But how are you actually going to deliver?</comment></comment></comment></comment></comment>


How to Fly the B-25 Mitchell Bomber (1944) [video] - <AUTHOR> https://www.youtube.com/watch?v=-YQmkjpP6q8 <comment><USER2> These vids are what i would miss if YT was torpedoed. i make it a point to horde them all when i find them.

</comment><comment><USER3> This video makes us appreciate how important computers today. Literally, every part of the engine was manually controlled by the users with their judgment, and most likely under some pressure too.

<comment><USER4> One take away is these aircraft reached the point where you couldn't 'just fly' them, too complex. Everything becomes about training, procedures, organization, and culture.

<comment><USER3> Technically B-25 is a war machine, not just to fly, but it is to destroy. It is the product of army with almost unlimited resources and manpower, at the end it is not about the UX or usability. They probably didn't even consider it for a second.

<comment><USER2> three main considerations for any mission: seek opportunity, gain advantage, achieve objective.</comment></comment></comment></comment>


Hackers Came, but the French Were Prepared - <AUTHOR> https://www.nytimes.com/2017/05/09/world/europe/hackers-came-but-the-french-were-prepared.html?hp&action=click&pgtype=Homepage&clickSource=story-heading&module=second-column-region&region=top-news&WT.nav=top-news <comment><USER2> "Look, we're watching the Russians. We're seeing them penetrate some of your infrastructure. Here's what we've seen. What can we do to try to assist?"

"In mid-March, researchers with Trend Micro, the cybersecurity giant based in Tokyo, watched the same Russian intelligence unit behind some of the Democratic National Committee hacks start building the tools to hack Mr. Macron's campaign."

How does US Govt and security firms monitor such hacks? What are they looking for and how do they do it?

</comment><comment><USER3> If they could provide a single shred of evidence for Russian hacking, other than Russian sounding usernames, that would be great. Correct me if I'm wrong, but didn't the CIA leaks prove that governments have the ability to easily spoof the origin of the hack?

<comment><USER4> Yes they did. wikileaks has it all. supposedly more on the way.

<comment><USER5> This is not true. I am 100% certain you cannot produce proof of this.

<comment><USER3> I think there isn't concrete proof, but at this point I am more inclined to believe Wikileaks than the US agency on this matter.

<comment><USER5> I am confused by your statement, because again, this is completely made up.

Their analysis for that information was code, which anyone can read and see the function, it is not really something you interpret to mean one thing or another. In this case, the code they referenced was gibberish written in a few other languages used for testing ("lorem ipsum" style text).

</comment></comment></comment></comment></comment><comment><USER6> Could the "rushed" approach of the Russians have to do with the characteristics of the French election? That up untill the first round it was not clear who would go up against Le Pen.</comment>


Hammerspace: Persistent, Concurrent, Off-heap Storage - <AUTHOR> http://nerds.airbnb.com/hammerspace-persistent-concurrent-off-heap-storage/ <comment><USER2> Talk about an inaccurate title! The improvement is a combination of off-heap storage and sharing storage amongst processes. I'm surprised they didn't look at Redis for this problem.

These tricks have been used for a while in the JVM world. Here's a JVM equivalent of Hammerspace: [http://www.mapdb.org/](http://www.mapdb.org/) And here's some slides concerning off-heap optimisations in Cassandra: [http://www.slideshare.net/jbellis/dealing-with-jvm- limitatio...](http://www.slideshare.net/jbellis/dealing-with-jvm-limitations- in-apache-cassandra-fosdem-2012)

On the JVM GC time is usually only an issue when the heap gets over 2GB or so. MRI's GC is not in the same league as the JVM's, but even so, 80MB should be easily handled. As such I'm guessing the memory consumption of multiple processes is causing the main issue, which would be solved if Ruby had real threads. JRuby has real threads, and many other language runtimes do as well. It seems like a lot of engineering effort is going into working around the deficiencies of MRI, a problem that can be easily solved by switching to something better.

<comment><USER3> We did benchmark local memcache, but accessing the strings over the network (even locally) was much much slower than sparkey. Redis would likely have been similar to memcache.

The savings came not just from avoiding redundant GC over the same 80MB, but also from not going through the churn involved with loading that data over the network on process startup.

We have a large codebase that's written against MRI, so it's non-trivial to just switch to something else.

<comment><USER4> Maybe just add a shared-memory front-end to memcache?

</comment></comment></comment><comment><USER5> I wonder if they would need this if they used a single ruby process with many threads (instead of many ruby processes).

Their problems are mainly a result of needing to access 80 megabytes of slowly changing translation data. Since they run many ruby processes and have memory growth issues, this translation data was taking a while to load.

If they had a single stable ruby process running on each box, possibly they wouldn't have had these issues.

<comment><USER6> Yeah, all the time I had a little devil on my shoulder shouting "my jvm laughs at your mri". Thats said, I like the approach to use what the OS offers - essentially atomic file system constructs and the cache. When you control your platform, things can go faster by cutting away those abstraction layers.

</comment></comment><comment><USER7> These guys never heard of shared memory, apparently?

Does Ruby not provide a facility to use shared memory? I guess you don't get it by default in a GC'd language because the GC thinks it owns the world.

<comment><USER4> Durable shared memory -- like, a (loocal) database?! I'm kind of amazed at the degree of wheel-reinventing going on here.

<comment><USER8> You don't even need a database. Just a file that you memmap. You can even use fixed length strings in the file to make it really fast.

Basically just take your hash structure and write it to disk.

<comment><USER9> djb's cdb is an excellent use case for this, as updates are infrequent and stale data is tolerable. It is an extremely fast constant database that when hot will sit snugly in page cache.

<comment><USER10> Even if your data doesn't all fit in page cache with cdb, the 8 bytes per entry (hashcode & offset) of overhead in the main hashtable absolutely will, so even if you're too big for memory, you get single-seek-per-lookup.

The only problem with it is the 32bit offsets mean a 4GB max. Not too hard to fork it for 64bit offsets, though.

<comment><USER3> We ended up using sparkey as the first backend for hammerspace, but hammerspace was written to support multiple backends. We benchmarked both cdb and sparkey, and their performance was very similar for our use case. At under 100mb of data, we weren't concerned about the 4G limitation or about the data not fitting in cache. I don't think sparkey has the 4G limitation, and someone has already forked cdb to support 64 bit offsets: [https://github.com/pcarrier/cdb64](https://github.com/pcarrier/cdb64)

</comment></comment></comment></comment></comment></comment><comment><USER11> Man there is a lot of negative snark at the top of this thread.

I'm not sure if this system is a good idea or not but I wish some commenters would spend more time comparing their proposed solutions (shared mem, local db, memmap...) to Hammerspace rather than contentless dismissal.

<comment><USER3> Comparison to shared memory or mmap'd files -- by using files we let the filesystem manage the cache, so we don't have to be concerned with the data growing and causing memory pressure. We also don't have to worry about how to store the data in a format friendly to fast retrieval, since this is provided by sparkey.

Comparison to local dbs like cdb, sparkey, mapdb, gettext files etc. -- hammerspace is a gem that uses sparkey under the hood, so these solutions are more or less one and the same. The difference is that hammerspace exposes a ruby hash-like API to make integration with existing applications easier. It also provides concurrent writer support, which many local dbs don't do.

Whether it's a good idea or not is for you to judge -- we've open sourced the gem in hopes that it will be useful to someone, just as sparkey and gnista were useful to us.

<comment><USER11> Sounds reasonable to me, especially the memory pressure thing.

It seems like some of the criticism in this thread comes from people who haven't bothered to understand what you've done and summarily dismiss it as stupid. That attitude has been bothering me lately on HN or maybe its programmers in general.

Anyway, thanks for the interesting contribution.

</comment></comment></comment><comment><USER12> Original HN thread topic ("How Airbnb Improved Response Time by 17% By Moving Objects From Memory To Disk") is misleading compared to actual article contents, but speaking to the topic subject rather than the article, I do find it pretty common for many developers to blanket assume that memory-based caching is always the way to go, because, well, memory is fast and disks are slow.

This sort of thinking ignores the fact that filesystems already have their own (often very well-tuned) caching systems and in some cases (eg. sendfile(2) in Linux) the kernel can do zero-copy writes from files to the network that (along with decent fs caching) will easily outperform app-level memory- caching. Of course, this only applies for data that will remain relatively static, but often your best option is to mostly get out of the way and let the OS do the heavy lifting unless you've measured actual loads and are sure your solution is better.

</comment><comment><USER13> Armchair quarterbacking:

* Dedicate ruby processes to a particular subset of locales

* Parallelize your memcache queries

* Break up locale files into MRU/LRU strings to reduce size

* Denormalize locales (in memory, cache, whatever) into single values for most common pages. (use with MRU/LRU above)

As an aside, still don't understand how process->kernelspace driver->platter is faster than process->kernelspace socket->process->RAM? Especially for random access patterns. I suspect a memcache misconfiguration?

<comment><USER3> Good points!

We did initially try dedicating ruby processes to particular locales -- when we saw a big improvement we knew we were on the right track. Doing so permanently would be more difficult. To "follow the sun" we would need to shift capacity to Europe and Asia during some hours and back to the US in others.

Parallelizing memcache queries is difficult because we don't know ahead of time what translations will be required to render a page.

We /are/ only working with the most recently used strings. Strings not accessed in the last 4 days are not loaded.

I'm not sure what "denormalize locales" means exactly.

Sparkey is fast because the files end up in the filesystem cache and most of the work is done in C. Going through the dalli gem to grab the translations out of memcache causes a lot of temporary ruby objects to be created.

<comment><USER14> How I read "denormalize locales" as:

1\. Have a database of rows which are say: translation_id, locale_id, translation_text

2\. That is really a 2-D array, translation[translation_id][locale_id] = translation_text

3\. Reshuffle to translation[locale_id][translation_id] = translation_text (note the swapping of the indexes)

4\. Generate a map of page_url => [arary of tranlation IDs]. You can do this because the number of translation_ids of a given page doesn't change any faster than the translation_ids themselves.

5\. Create an in-memory object of all the specific translation_ids for a specific page in a specific locale

For an implementation of 5 I think it'd be preferable to have one giant string that contains all the translation text in it and then a list/array of indices that you use to decide where in that one big string you pull your substring from. That might well be more memory efficient than many individual substrings (this is what they did to make HBase about 5x faster) and it'll definitely give you some cache locality goodness.

</comment></comment></comment><comment><USER15> You can dynamically load/unload shared libraries so the data is only shared once between all processes. A win is you can also optimize the memory layout of the translation tables (can be in C), for which a hash is probably not optimal. This can all be automated in the build process using the database as a source. During software upgrades processes must be aware enough to know when to reload. And since all shared memory schemes use virtual memory you still have potential latency issues because of paging. Not sure if a .so can be pinned. Another win is it is read only so you don't have to worry about corruption.

<comment><USER3> Our community of translators update translations all the time. Updates are immediately reflected so that our translators have instant feedback, and we'd like our users to see the updated translations sooner than every time we deploy too. So that rules out a purely build-time solution for us.

<comment><USER15> I guess build time is a bit of a misnomer. Any time changes occur, perhaps they aggregated for an hour, the files are rebuilt and redistributed. Since the API doesn't change it doesn't require changes in the process code, just the shared lib. But I understand, it was just a thought that fit the given criteria.

</comment></comment></comment><comment><USER16> Sounds like they re-invented .mo files from gettext.

[https://www.gnu.org/software/gettext/manual/html_node/MO- Fil...](https://www.gnu.org/software/gettext/manual/html_node/MO-Files.html)

</comment><comment><USER17> The article does not address why this outsourced heap is better than other outsourced heaps.

</comment><comment><USER18> I don't get it.

Did they actually benchmark all possible options like shared memory or Sqlite or mysql memory engine (periodically backed)?

They say memcache (or redis) would have been slower because of network latency even over localhost. But did they benchmark.

</comment><comment><USER19> Pretty graphs! Drawn using?

<comment><USER20> Kibana [1] if the image file name is accurate.

[1] [http://www.elasticsearch.org/overview/kibana/](http://www.elasticsearch.org/overview/kibana/)

<comment><USER19> Doh. Thanks!

</comment></comment></comment><comment><USER21> Awesome work!</comment>


"To come up with something truly original, you have to ignore common sense." - <AUTHOR> http://vooza.com/videos/radimparency/ <comment><USER2> When I come to HN I ofter scan through the top page and middle click on seemingly interesting links. That means that after 5 secs I have around 10 tabs open. If you post something which has some auto-playing stuff it will be disturbing for me because I have to search through all of the tabs and switch it off. Please refrain from this in the future. It also mixes up with the music one might listening to and ends up in a grating cacophony.

<comment><USER3> "My computer doesn't work the way I want, world please change your behaviour for me".

[http://thenextweb.com/google/2013/02/25/google-chrome-may- so...](http://thenextweb.com/google/2013/02/25/google-chrome-may-soon-get- audio-indicators-to-show-you-noisy-tabs-keep-them-open-when-memory-runs-out/)

</comment></comment><comment><USER4> It's a parody, of course -- but that quote isn't necessarily bad. Tomas Jefferson is attributed with a similar one: "If you want something you've never had, you must be willing to do something you've never done."

A lot of the innovative companies we know did things that defied common sense. (And of course, there's a lot of companies we'll never hear of _because_ they ignored common sense.) So, it's a case-by-case thing.

<comment><USER5> There is no record of Thomas Jefferson ever saying that.

[http://www.monticello.org/site/research-and- collections/if-y...](http://www.monticello.org/site/research-and- collections/if-you-want-something-you-have-never-had-quotation)

Improperly attributed quotations are a bit of pet peeve of mine. I don't want to beat anybody up if they just read it on the web somewhere. But the problem is, anybody even slightly familiar with Jefferson would know he would never say anything like that.

<comment><USER4> Agreed; which is why I made sure to say it was _attributed_ to him (not that he actually said it).

<comment><USER5> Sorry. I was being pedantic.

</comment></comment></comment></comment><comment><USER6> Hilarious. This video reminds me of the CollegeHumor parody of startups - [http://www.collegehumor.com/video/6507690/hardly-working- sta...](http://www.collegehumor.com/video/6507690/hardly-working-start-up- guys)

I love all the bland, platitudinal aphorisms and vague "x for y" explanations. It feels like a lot of startups do this without realizing.

They covered the basic buzzword list:

* "disrupt"

* "change the way you interact/think/work"

* "like x for y"

* "pivot"

* "what if you could..."

etc...etc...etc...

<comment><USER7> Er, I may or may know somebody who has done some work under a name inspired by one of their company names. It's one of those things that seemed a hell of a lot funnier at the time, until you're trying to pitch work with a straight face.

</comment></comment><comment><USER8> I'll be honest -- when I read the title and the domain I was worried someone submitted a Vooza video out of earnestness.

These videos are hilarious but also useful. Whenever you try out a new pitch (and "pitch" in this sense isn't necessarily related to VC/startupland -- think of it as an answer to "how do you spend your time?") consider these clips.

</comment><comment><USER9> approaching Poe's Law [http://en.wikipedia.org/wiki/Poe%27s_law](http://en.wikipedia.org/wiki/Poe%27s_law)

</comment><comment><USER10> It has been at least a year since I've seen that video, and I still have to smile when they explain "StumbleMonkey"

</comment><comment><USER11> This should be a channel on YouTube if its not already. Great job!

<comment><USER12> A Youtube video would allow downloading and watching it offline or in a secure manner.

They should at least tell what 3rd party JS domains are required to watch the video. Allowing vooza + wistia still shows a black window instead of a video.

The other 3rd party domains, are evil facebook, google analytics, twitter and optimizely, and do not sound as if they are required for watching the video.

It looks as an other example of JS done wrong.

And yes - i've tried it in my only browser where I allow flash.</comment></comment>


Why Should You Learn How to Code? - <AUTHOR> http://blog.onemonthrails.com/why-should-you-learn-how-to-code/

<comment><USER2> I was interested in his conclusion at the end, but unfortunately it was incorrectly worded. It should have read: "Society is quickly dividing into 10 groups: 01: Those that know how to code - they can manipulate the very structure of the world around them. 10: Those that don't. Their lives are being designed and directed by those that do." That could be interpreted as the people with power program. Barack Obama writes DEC-PDP-11 assembly. Angela Merkel is a master LISP hacker. Vlad the Putin digs FORTRAN(66). David Cameron is very fond of javascript. Mark Zuckerberg, wait up, what in hell's name does he code in?</comment>


Is there a Linux equivalent to "The Design and Implementation of FreeBSD"? - <AUTHOR>

When people ask me how to understand the deep internals of Unix I always recommend this book.
http://www.amazon.com/dp/0201702452/tomontime-20
Even if they use Linux instead of *BSD, this book is the best way to learn OS internals and... well... 90% of it applies to Linux.
Many years later, has anyone written a Linux equivalent? <comment><USER2> Linux wasn't designed, it evolved ;-)

I have a book on Linux which includes the v0.x? source code and a commentary. It's at my other office, so I can't grok the title nor author. It's styled like the classic John Lions books for Unix which of course was the inspiration for Linux.

<comment><USER3> Are you thinking about the Linux Core Kernel Commentary? [http://www.amazon.com/Linux-Core-Kernel-Commentary- Knowledge...](http://www.amazon.com/Linux-Core-Kernel-Commentary- Knowledge/dp/1576104699)

I keep telling myself I'm going to read it, but never get around to it. At this point, the John Lions book is probably just as relevant and probably much more educational.

</comment></comment><comment><USER4> Linux Kernel Development by Robert Love is an exceptional book.

[http://www.amazon.com/Linux-Kernel-Development-3rd- Edition/d...](http://www.amazon.com/Linux-Kernel-Development-3rd- Edition/dp/0672329468/ref=pd_sim_b_2)

</comment><comment><USER5> The Linux Programming Interface, perhaps? It's an encylopediaesque book by Michael Kerrisk.

</comment><comment><USER6> You could use the "Understanding the Linux kernel" book by Bovet and Cesari.

</comment><comment><USER7> I would say Archlinux. [https://wiki.archlinux.org/index.php/Arch_Compared_to_Other_...](https://wiki.archlinux.org/index.php/Arch_Compared_to_Other_Distributions)

</comment><comment><USER8> Gentoo is very similar.</comment>


Show HN: Payout.Team – Invoices for Freelancers Who Work on Ad Hoc Teams - <AUTHOR> https://payout.team/ <comment><AUTHOR> Hi HN - we're building Payout.Team for freelancers, consultants, and contractors who work on projects together.

Here's how it works: a users sends an invoice to their client, when the client pays, the funds are automatically routed to the members of the team / subcontractors. Payout.Team takes care of all the on-boarding and tax paper work for the subcontractors, including internationally.

</comment><comment><USER2> Very cool!</comment>


Hydroponic Edible Gardens for Urban Windows - <AUTHOR> http://www.windowfarms.org/

<comment><USER2> I appreciate the intent but I do find it a little annoying that I had to register, agree to a vague TOS and then verify my email address to look at the guides. The guides themselves were ok, but I'm sure similar information can be found elsewhere on the Internet without having to hand out my email address.

<comment><USER3> Yeah, I signed up and couldn't find the damn pdf's. But found them with a quick google search and it doesn't require an account -- [http://www.windowfarms.org/howto/3plantairliftHOWTO_3_4_10.p...](http://www.windowfarms.org/howto/3plantairliftHOWTO_3_4_10.pdf)

</comment></comment><comment><USER4> We've been doing a lot of container gardening lately, and have been thinking about making a system like this.

The 'air lift' water delivery system looks particularly inteesting, but kind of Rube Goldberg-ish. I'd be very interested to hear experiences from anyone who has actually built one. How well does it work?</comment>


Ask HN: please review my technology. - <AUTHOR>

Thinking about the latest video streaming news, I thought about a feasible way to reduce the costs related to video distribution.
I wanted to use p2p to reduce bandwith while retaining a simple user experience, staying in the browser. The only feasible solution I saw was to use a Java applet, Although it wasn't maybe the best option from the user experience perspective, I have to admit the latest JVM update has reasonable startup time and I also saw some users that didn't even realize that it was java (that's good).
If you want to see the result, you can take a look at a few samples here: http://www.bitlet.org/video
Please note that data is downloaded via bittorrent, if you have it blocked by a firewall, you won't be able to see anything :°(
I'd really like to know what you think about the product, what you would change, any feedback, idea, or critic.
Thank you <comment><USER2> Out of curiosity, why did you use Java rather than Flash/Flex? Do you know that Flash 10 has some p2p distribution technology built in?

More info at: [http://whydoeseverythingsuck.com/2008/05/flash-10-p2p-and- cd...](http://whydoeseverythingsuck.com/2008/05/flash-10-p2p-and-cdns-deeper- analysis.html)

</comment><comment><USER3> Some thoughts:

1) Being forced to click "Trust" just to watch a video is pretty bad, and would turn away many of your users.

2) Having an alert box "Are you sure you want to leave this page?" is also pretty bad, and unnecessary.

Overall, I can see the value that this technology gives to you (less bandwidth). But what value do you give to the consumer? Why would I want to endure the various hassles of this site, and give up some my scarce upstream bandwidth, when I could just go to Youtube or Vimeo instead?

<comment><AUTHOR> Thank you for sharing your thoughts.

1) You're right: It's bad, but in order to open connections to different clients it needs a signed applet. I also considered a custom plugin but I thought forcing a user to install it could be ever worse. Do you have any better idea?

2) True, will remove it.

I think reducing publisher's costs could lead to benefits even for consumers, I'm thinking about hd videos.

<comment><USER4> Dont forget many ISP's HATE torrenting and P2P. I ran a small ISP in our village a year or so back before BT got of their bums and 90% of the BW was used by 5% of the users - through torrenting. It _really_ hammers a network.

If you employed this technology & it took off I suspect you would be faced with very angry ISP's who may well ban access from their networks.

Plus of course it eats right into the users BW - they theoretically will upload more than they download and with limited BW allowances people could easily start gettign traffic shaped without even knowing why!

That said it's a neat solution to the BW problem.. something of a catch 22.

<comment><USER5> Bittorrent doesn't eat bandwidth, stupid users who can't configure their torrent clients properly eat bandwidth.

<comment><USER4> nah, it really does :) think how much outbound data there is, it really fouls up the local part of the network.

<comment><USER5> Amount of outbound data? If you're sharing a video, the outgoing stream should be equal to the incoming stream (you're downloading from one place and uploading somewhere else simultaneously). On average, peers must upload exactly as much as they download.

<comment><USER6> Technically it is zero sum, but bittorrent prioritizes peering based on how fast your internet connection is. So somebody on dial-up internet probably isn't going to upload to anyone, while someone who has high speed internet is going to upload to many people. So somebody with high speed internet access might upload twice as much data as they downloaded.

And while I don't think ISPs really care about you maxing out a phone line, they will notice you maxing out a broadband line. And bittorent will do that.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> Youtube still burns millions in traffic costs every day, so I think your technology really makes sense. But I would rather try to perfect it and then sell it to one of the big video sites, than try to start a new video site on my own.

</comment><comment><USER8> Takes a very long time to download and there is no progress bar that tells me how far along it is. The lack of a progress bar makes it bad. I have no idea if this will take 2 days or it will be done in a minute. Pushing play also locked up my browser.

And why use Theora? Most clips are MPEG-4, reencoding to theora will cause quality loss, so your video player will always be associated with poor quality.

You have a very good idea, but there are a few major flaws.

What applet are you using? Did you program it yourself?

<comment><AUTHOR> I know that lack of a progress bar is a problem, but please note that it's a prototype I built in my spare time.

I used theora because I wanted a free video codec.

The bittorrent client is coded by myself with help and support from a friend, the video codec is jheora from fluendo, it also uses jogg and jorbis from jcraft.

</comment></comment><comment><USER9> <http://www.bitlet.org/video>

</comment><comment><USER10> It might be worth considering why the BBC tried, and then abandoned this approach with their iPlayer application. More details from the link below, but the bottom line is that consumers didn't like having their bandwidth allowance used up and CPU loaded by having to act as servers...

[http://www.bbc.co.uk/blogs/bbcinternet/2008/12/introducing_i...](http://www.bbc.co.uk/blogs/bbcinternet/2008/12/introducing_iplayer_deskto.html)

</comment><comment><USER11> I think this is an interesting technology. There are some naysayers here, but I think there are some cases that users will accept signing statements and the like for this.

A public site like youtube or even Hulu wouldn't be able to make it a default client with those issues given how well Flash works, but I can see some other sites living with those prompts, especially if they offered low-res Flash and hires Bitlet.

Especially in a private account situation like Netflix, users would be more likely to accept those kind of prompts to see the videos they want in higher quality.

I'm impressed with how well it worked for me, though it's difficult to tell how much of the viewing was improved through peer-to-peer.

Good work, I think you could build something around this with the right contacts and impressive test results to show the real benefits.

</comment><comment><USER12> > Thinking about the latest video streaming news, I thought about a feasible > way to reduce the costs related to video distribution.

(1) Do you think that this idea is new?

(2) If it is not new (and it isn't), why did previous efforts seemingly fail? Is your effort going to have those problems?

WRT Flash 10, it's tied to Adobe servers, at least for now. On the other hand, it's likely to be installed on a large fraction of the web.

I'm somewhat surprised that Silverlight doesn't (yet?) have P2P support that is server agnostic. (This would give developers/sites a reason to use silverlight instead of flash.)

I keep expecting a "not-IE" browser to include a P2P javascript extension.

If either happens, I expect that the other will happen in short order.

</comment><comment><USER11> Have you looked at also making the Java applet support bittorrent for just file downloads itself? If no one is doing that already, a really slick looking web interface for file downloads might get more corporations interested in using BitTorrent for their own file distribution.

<comment><AUTHOR> I did it: <http://www.bitlet.org>

<comment><USER11> You need to get out and start showing this to people. You may even want to start talking to some of the CDN companies to see if they want to license this. Some of them already have other approaches for P2P bandwidth sharing, but it would be another bag of tricks with a decent user experience that companies would consider for large files.

Even if the CDN people don't like this, half the torrent sites out there would be better served if they had a tool like yours for quick downloads of the torrent.

I'd really focus on selling the improved user experience side, though. Ideally the end user doesn't even know that a .torrent is involved in the download. It's just another background/confusing aspect that users don't need to see.

I think companies will need a way to configure a fallback option for when BT isn't working for the user, but I think that's all just features that could eventually be worked into the mix pretty well.

</comment></comment></comment><comment><USER13> Why use bit torrent? It shuts down and reopens connections after each chunk meaning there is a good bit of overhead that could be avoided. Second using bit torrent doesn't play well with some home routers for the same reason.

<comment><USER14> BitTorrent will usually always work for downloads no matter what. It's the seeding that doesn't work too well with home routers that doesn't have the correct port forwarding or Upnp setup.

It's a hybrid between BT and S3. The S3 will keep feeding the data down if there are peers or not, but if there are peers already watching, then it will utilize them as well.

I don't think this will work well for YouTube where there are millions of small videos, but for large Video distribution like NetFlix and Hulu, would be perfect.

<comment><USER13>
      >BitTorrent will usually always work for downloads no matter what.

Not quite, some fairly popular home routers have issues where they don't have enough ram and crash rather than loose NAT data. Which really isn't a problem until you run a (stupidly) high connection protocol like bit torrent.

So yeah it works if they reboot their router and restart the download but that isn't what you want to do in a youtube like app.

</comment></comment></comment><comment><USER15> I think the idea is sound.

However, my experiences with Java have been so consistently horrible that I won't bother to try it as is. If you make a native application that I can install, and make sure the download is a few megabytes at most, I will try it. It sounds like a good idea.

</comment><comment><USER16> see <http://www.octoshape.com> \- CNN used it to stream the Obama inauguration.</comment>


Gene therapy for rare retinal disorder to cost $425,000 per eye - <AUTHOR> http://edition.cnn.com/2018/01/03/health/luxturna-price-blindness-drug-bn/index.html <comment><USER2> Is this value pricing? Or is it tied to the drug's production cost? Or is it an attempt to recover research costs? Is it driven by the fact that condition is rare? Before one can evaluate their pricing decision, there needs to be lot more information about the basis.

<comment><AUTHOR> That is true but assuming is about greed, I wonder if cutting the price by 1/8 could increase the sales more than 8x around the world.</comment></comment>


Hacker news and intelligence wars - <AUTHOR> https://medium.com/@shammahagwor/hacker-news-and-intelligence-wars-178e06bdd77a#.3qr088mr1 <comment><USER2> Its good to opinionated about technology. Just don't take it personally when someone disagrees with you.

<comment><AUTHOR> You might be right but sometimes it is not needed</comment></comment>


Wolfram Alpha Demo by Stephen Wolfram [screencast] - <AUTHOR> http://www.wolframalpha.com/screencast/introducingwolframalpha.html

<comment><USER2> This video is insane. If Alpha can do the stuff in this video, it's a revolutionary upgrade to human thought.

I don't think I'm exaggerating. Making this available to the world for free will probably make as much of a difference to human thought and progress as Google has, if not more.

<comment><USER3> My worry is that this stuff was cherry-picked. Also, like Google (at least at first), this is going to be most useful to the people who think like the creators. I remember when Google appeared, some people (me, f'r instance) were able to get great results nearly every time, and other people seemed not to get the results they were looking for even after repeated attempts to refine the search. This effect lessened after a while, but Wolfram Alpha appears to have it in spades. I mean, "What is the GDP of France / Italy" _clearly_ means to display a comparison of the GDPs of France and Italy, not to do some division producing a result that doesn't seem to have any relevance to anything... :)

<comment><USER4> I agree. I don't see how it could work so nicely for everything. Though it seems that he picked a specific category (Mathematica) which helps quite a lot on what to do with the query.

Take the example with the first names: "Andrew", then "Andrew John" (or whatever it was) which compares the two names over the years. What happens if I type "Elton John" now?

The screencast was impressive but I'd like to try it by myself (which should be soon apparently) to realize how powerful it can be.

<comment><USER5> That everpresent "Mathematica" blurb on the screens doesn't represent any kind of site category, I don't think; the whole site is driven by Mathematica behind the scenes. The Mathematica link often visible looks like it goes to some sort of representation of that behind-the-scenes stuff, but that's just a guess.

<comment><USER4> Oh ok, thanks for the info. Since I saw a big list of categories at the end of the screencast and remembered that "Mathematica" was there all along, I figured there was something to it. I just have a hard time believing that that kind of results can be achieved without more information than the keywords.

</comment></comment></comment></comment></comment><comment><USER6> Repeat post: <http://news.ycombinator.com/item?id=607532>

</comment><comment><AUTHOR> This ain't no search engine. It's something else altogether.

<comment><USER7> Yes, it is a computational knowledge engine. :)

Which I think is a pretty good label, actually. It is taking all the kind of information found in the big reference books in your library (atlases, dictionaries, science reference, etc.) and making it searchable through queries and inferences and calculations.

I agree that the people comparing it to Google are off the mark. This demo does not compare it to Google in any way. I like at the end they show a page with the kinds of things Alpha knows about. It would be very frustrating trying to guess what it knows or not by typing in random queries.

</comment></comment><comment><USER8> To my fellow beta-testers (I'm sure some of you are here): have any of you found an _actual productive use_ for Alpha? Scratch that, has anyone here used it "in anger", even once? I've been trying, so far, to no avail. (I have a copy of Mathematica, so use cases which intersect with that app's existing features are not of interest to me.)

<comment><USER9> I'm not a beta user, but offhand I would use it in my daily research to compare nations and economies, fact check articles on the economy, weather, etc. To contextualize, compare and analyze random factoids I come across daily but don't really understand.

Does it not actually work well for that?

</comment></comment><comment><USER10> This is incredible if it's built on New Kind of Science (game of life, etc - see Hackers by Steven Levy), but if it's just entered by hand, then it's merely useful.

One thing I can forgive is that you have to learn what you can do, you can't just sit down and use it. You need to read the manual.

I also totally dug his English accent, except for the term 'math' which show's he's mostly American. ;-)

</comment><comment><USER11> This is incredible. What I'd really like to see is something like this hooked up to a top quality voice recognition system and voice synthesis. So when I'm driving, or walking down the street, or working at my whiteboard, or whatever, I can answer those dumb little questions that always pop into my head.

</comment><comment> brown9-2 Is it a bad sign for Wolfram if the screencast shows me "Loading Controls: NaN%" in Chrome?

<comment><USER12> I think it's a joke.</comment></comment>


Firesheep - <AUTHOR> http://codebutler.com/firesheep/ <comment><USER2> We should be thankful for Firesheep.

It was brilliantly simple, spread fast, and forced the major players to adopt HTTPS rather quickly.

</comment><comment><USER3> This is from 2010.

Facebook uses HTTPS for everything now, right?

<comment><USER4> Correct, but at the time of this release many websites (including GMail and Facebook I believe) did not and were vulnerable to Firesheep. The title of this post should be updated to reflect the 2010 posting.

</comment></comment><comment><USER5> Are we just here for the memories?

</comment><comment><USER4> For the first time I've noticed the "past" option under the title (between flag and web).

</comment><comment><USER6> Astonishing to think about the lack of encryption in big services like Facebook 5 years ago.</comment>


Garbage Language Why do corporations speak the way they do? - <AUTHOR> https://www.vulture.com/2020/02/spread-of-corporate-speak.html <comment><USER2> What a synergistic synchronicity. Looks like we are going to have to table this discussion.

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

</comment><comment><USER3> It is apparent that much garbage-speaks driven by the need to appear more powerful, the tasks at hand more important and complex, than they really are. And the obfuscation papers over any moral or ethical ambiguity over how what we're doing affects other people or the world we live in. Which sadly means there's always going to be a certain amount of it, and complaining about specific instances like 'space' or 'architected' is probably futile.

</comment><comment><USER4> With many of us coming off of a fresh new low after seeing basic addition being mangled in the public caucus showcases, the laymans version of geekspeak (ex. parallel-pathing) at least shows creative expressions.

Though, would it be considered lingo instead of language?

</comment><comment><USER5> [https://youtu.be/GyV_UG60dD4](https://youtu.be/GyV_UG60dD4)

<comment><USER6> Amazing. Slightly related, Internet Historian's video on an Agile Conference.

[https://youtu.be/ROaj3bCpZEM](https://youtu.be/ROaj3bCpZEM)</comment></comment>


Ask HN: Can someone calculate the current value of the dollar compared to YTD - <AUTHOR> I'm curious on how all the trillions in stimulus affected the dollar, in tangible numbers <comment><USER2> There was a dip in March, but it's been stable-ish since then, fluctuating +/\- 1-2 percent. Here's a chart of the dollar versus an average of several foreign currencies:

[https://tradingeconomics.com/united- states/currency](https://tradingeconomics.com/united-states/currency) \-- [https://en.wikipedia.org/wiki/U.S._Dollar_Index](https://en.wikipedia.org/wiki/U.S._Dollar_Index)

<comment><AUTHOR> thank you for the links. I learned a lot !. But there's gotta be a better constant than other currencies, following this logic as long as other countries pump a proportional amount to the US, there will be no apparent inflation

<comment><USER2> Inflation has been about 2% all year. Because demand has dropped, most prices have not gone up. [https://inflationdata.com/articles/charts/annual- inflation-c...](https://inflationdata.com/articles/charts/annual-inflation- chart/)</comment></comment></comment>


Founders Talk 66: Failing to build a billion-dollar company - <AUTHOR> https://changelog.com/founderstalk/66 <comment><USER2> A medium article by the founder of Gumroad on the same topic [1]. Well written & articulated, IMO.

"It took years for me to realize my pursuit of growth was misguided from the start"

[1] [https://medium.com/s/story/reflecting-on-my-failure-to- build...](https://medium.com/s/story/reflecting-on-my-failure-to-build-a- billion-dollar-company-b0c31d7db0e7)</comment>


Benjamin Franklin's Daily Schedule - <AUTHOR> http://log.scifihifi.com/post/161617118/benjamin-franklins-daily-schedule-via-nick <comment><USER3> Almost immediately after this schedule in his Autobiography is a lament that he could not keep to it.

<comment><USER4> His autobiography, incidentally, is one of the finest I've read. Even those with no interest in history will find it enjoyable.

</comment></comment><comment><USER5> According to a Dianne Rehm interview with a noted Ben Franklin biographer; many Franklinisms have been invented left and right by American book publishers searching for "American" role models for kids in the newly born nation. They couldn't reach back to the continent which they have just severed ties with for cultural lore, so they had to invent it as they went, at least for the first two or so generations.

Franklin himself made no attempt to refute the grand achievements attributed to him in his day (e.g. "I will neither confirm nor deny that I have superhuman powers and can kick ass in major ways".)

<comment><USER6> You write that like it's a bad thing....

</comment></comment><comment><USER7> The most interesting parts are the questions:

What good shall I do this day? and

What good have I done today?

<comment><USER8> I have tried doing "what have I done today and what shall I do tomorrow" in that order, right before I go to sleep. It works amazing whenever I do it. I just need to do it everyday.

<comment><USER9> What do you think about adding "good" to those questions? Was that a linguistical/cultural thing back then to mean 'meaningful' in reference to himself, or did it mean 'good' as in The Public Good?

<comment><USER8> Given, we are talking about Ben Franklin, I would be more inclined towards The Public Good rather than "meaningful" in reference to himself. And that is the reason I avoid good in my questions because my questions relate to "meaningful" to myself. :)

</comment></comment></comment></comment><comment><USER10> Shift everything in that forward by about 8 hours and you get my daily schedule.

<comment><USER11> Where I live, there isn't much diversion available from 2 AM to 6 AM.

</comment></comment><comment><USER12> I like this, but I have this bad habit of taking what's worked for successful people and having it not work for me. I've tried every imaginable scheduling technique until I realized that they just don't make much difference for me.

What does? The project itself. If I fall in love with the task at hand, I want to work on it so badly, I don't need a schedule. If I'm not in love with the task at hand, schedules don't work.

As a child, when I got a new baseball glove, I slept with it the first few nights. Now I do the same thing with hard copies of clean compiles. That's love.

</comment><comment><USER13> Interesting. That's not much different than my typical day, although he started and finished about 1.5 hours earlier than I do. The key bits, though, are probably the notes about using his time for introspection and reflection. I tend to use those corresponding time periods of my day for reading email/rss or watching TV/movies - decidedly less wisdom-building activities.

<comment><USER14> Isn't this basically the same as most corporate wage slaves - <USER2> ones with kids?

The major difference seems to be that there was no TV in Ben Franklin's day. But other than substituting "TV" for "idle diversion", this could be the daily schedule of any of about 100 million Americans...

</comment></comment><comment><USER15> Two hour lunch? What a slacker.

<comment><USER16> Food is important. And he was probably eating with people [http://www.amazon.com/Never-Eat-Alone-Secrets- Relationship/d...](http://www.amazon.com/Never-Eat-Alone-Secrets- Relationship/dp/0385512058)

In Defence of Food (Michael Pollan) suggests that the cultural labouring over lunch didn't just emerge because it's enjoyable it may actually improve nutrition too.

</comment></comment><comment><USER17> I like how he "puts things back in their place" at the end of the day. It's a very important task, but it doesn't require intelligence, courage or insight. So leave it until the tired hours of the day, so you can devote your fresh hours to the difficult tasks.

</comment><comment><USER18> The first half of his autobiography is a good read on how to make yorself a more acomplished person. Later on, though, he becomes too boastful.

<comment><USER19> If BENJAMIN FRANKLIN isn't entitled to boast, I don't know who is.

(Note: I've read his autobiography a couple times and don't think any of it was inappropriately boastful.)

<comment><USER20> Thomas Jefferson is allowed to boast, but Franklin didn't build his own house.

<comment><USER6> Jefferson's inventions are mostly one-offs, such as his house. Franklin's inventions scaled.

</comment></comment></comment></comment><comment><USER21> For other interesting persons' daily routines look here,

<http://dailyroutines.typepad.com>

The Benjamin Franklin post is here [http://dailyroutines.typepad.com/daily_routines/2007/07/benj...](http://dailyroutines.typepad.com/daily_routines/2007/07/benjamin- frankl.html) and contains the same schedule.

</comment><comment><USER22> I wish I had the will power to rise at 5. But I don't sleep till way past 1.

// I would also love to know where this was taken from and what is written on the opposite side of the page, its letters just barely visible.

</comment><comment><USER23> What is "Powerful Goodness"?

<comment><USER24> a cheeky name for "god"... basically he wanted to pray, but felt silly saying 'God' so he came up with something he thought sounded more rational

<comment><USER22> fascinating. Now (political) leaders seem to push the fact that god is tied to their schedule.

</comment></comment></comment><comment><USER25> Only four hours of sleep?

<comment><USER26> it's seven...from ten pm to five am

<comment><USER10> Less than 7, since he probably leaves an arbitrary amount of time for reflection and answering "What good have I done today?" while he lies in bed.

<comment><USER27> I think that would fall under "examination of the day"

<comment><USER10> The left side I think purposely doesn't have defined borders to refer to a general area. So I would actually assume that the contemplation would intermix with examination of day and sleep. It's also between 9, and 10 o' clock.

Plus, he can't possibly fall asleep at 10 o' clock sharp.</comment></comment></comment></comment></comment>