Optimizely Open-Sources Guiders.js, a Library to Help You Guide New Users - <AUTHOR> http://blog.optimizely.com/introducing-guidersjs-an-open-source-guider-e

<comment><USER2> Does anyone know of a good online catalog where libraries like this are curated? Or are folks just bookmarking these as they find them?

<comment><USER3> openjsan.org, JQuery plugins catalog, and that's all AFAIK.

(Yes, CPAN is still unique after so many years)

<comment><USER4> <http://ruby-toolbox.com/> for ruby stuff

<comment><USER3> Oh, not again.

1) It should be _one_ (and only one) location when you can find _every_ module/plugin/library written in %language%

Hmm, should I continue?

<comment><USER4> ?

Yes, obviously what you describe you would nice. But in the meantime, a few scattered sources are better than nothing.

This is what I get for trying to be helpful...

</comment></comment></comment></comment></comment><comment><USER5> This is really great. We live in interesting times. It really gets easier to make cool stuff every day with all those tools.

</comment><comment><USER6> Does any know what other sites apart from Optimizely that use Guiders.js or have a similar interactive tour? I have been developing something very similar for my app and am very interested in seeing examples of how to best structure the walk-through.

</comment><comment><USER7> OK, enough is enough. Now I have no choice but to scrap prototype in favour of jQuery.

</comment><comment><USER8> I built a similar library on top of YUI called Feature Cue while I was at Yahoo! Sadly it was never open sourced, got rewritten, over-engineered and (as far as I know) faded into obscurity.

I'm glad the Optimizely guys have released their version, because based on our user testing novice users really respond well to this kind of interactive product tour.

</comment><comment><USER9> This sounds like a great idea, but I (as a webapp user) would probably say "No thanks" to the guide to take a first look at a website before trying to go through a bunch of dialog boxes.

I wonder what % of users will go through a guide like this.

<comment><USER10> I believe you missed the point, this is to help users start interacting with the app, it's not on the homepage. So as someone visiting the site you would see if you like its idea or not and then, if you do, you would for instance try a demo. That's where this kicks in, it helps you with your first actions.

It might make sense for some apps to use this directly on the homepage but that would probably be the exception to the rule.

<comment><USER9> You're right - I made the exception the rule. Thanks for the clarification.

</comment></comment></comment><comment><USER11> Pretty cool, Would be good to make the jQuery dependency more prominent. Was looking to create my own form of this but will use this instead. Does it require jQuery UI library?

<comment><AUTHOR> Great point, we can add a note to the README in GitHub.

To answer your question, this library does NOT require the jQuery UI library.

</comment></comment><comment><USER12> If anyone is interested, we'd love to get some help with the Guiders.js -- please email firstname.lastname@example.com - would love to try this out!

</comment><comment><USER13> I just started using blockui for an attempt as a crude sort of Guider. Looking into this now, thanks.

</comment><comment><USER14> I love the idea of using this for new features. Consider me sold.

</comment><comment><USER15> Looks awesome, what version of jQuery is required?

<comment><AUTHOR> It should work great with jQuery 1.5.1 and later. We've heard reports that it doesn't work well with jQuery 1.4.x but that is probably a bug we can fix since it doesn't rely on any new jQuery features as far as I know.

<comment><USER16> That's correct.

I just tried loading it with jQuery 1.4.1 and got the error: "$.type is not a function". So I replaced the $.type use with something else.

If using jQuery 1.4.x is important to you, you can download it again. I just pushed the fix to GitHub.</comment></comment></comment>


Show HN: Invoiced, a self-hosted invoicing app with API - <AUTHOR> https://invoiced.io

<comment><USER2> Install Instructions: "purcahsing". "Alternatively, you can the documentation online".

Also, the install step says "Install SiteCloner".

Dashboard z-indexes are all messed up (tooltips behind main divs).

Currency symbols are completely messed up, € is displaying as '€'.

Also why do I have to edit a php file to change the currency when there's an "Application Settings" page?

This doesn't seem very professional.

<comment><AUTHOR> Apologies for the typos; we'll take care of these shortly.

Regarding issues on the dashboard; we're not aware of any issues. Would you mind sending an email to firstname.lastname@example.com so we can figure out what the issue is and hopefully take care of them asap?

The only currency set through the config file is the default one; we placed this in the config file as, typically, you would set this once. Defaults per invoice and client can easily be set through the UI.

<comment><USER2> Screenshots of dashboard issues: [http://imgur.com/yzaoduu,89pEqZw](http://imgur.com/yzaoduu,89pEqZw)

Screenshot of install screen showing template was 'borrowed' from elsewhere: [http://imgur.com/bxRXPyM](http://imgur.com/bxRXPyM)

Also, the currency icon issues in the database? Appears to be an encoding issue.

Could you at least put in the README that there's a config file that should maybe be looked at before install?

<comment><AUTHOR> Thanks for the screenshots; the popup issue seemed to appear on Safari/Chrome, and has been taken care off now.

We also corrected the wording on the install page (SiteCloner is another one of our products, nothing shady going on here :)) and fixed the typos in the install instructions.

Thanks again for pointing out these issues :) Ping us at firstname.lastname@example.com if you'd like us to you the updated version right away.

</comment></comment></comment></comment><comment><USER3> creating an invoice, why is it I have to manually calculate the rate, if I give you the hourly rate and the number of hours? And why does the popup message say 'please make sure the last field contains a number'? Why can't it say "hey, you didn't enter a total"? The 'internal invoice number' on the settings page seems to max out at 2 digits. On the demo account, it's a 3 digit number, but you can't see the third digit because it's overlain by the huge up/down arrows.

Where are the discounts? Where are the terms on the invoice? Say I want to have a 2/10 net 30. That's a 2% discount if paid within 10 days, 30 days before overdue - I don't see any way to define my terms.

Has anyone there even studied accounting?

<comment><USER4> I'm curious, do you know of any existing invoicing software that handles discounts that way? I'm sure it exists, but I've never seen discounts that are tied to the date paid...

<comment><USER3> Two are quickbooks and freshbooks. You really should study accounting if you've never seen discounts tied to the date paid. Cash flow is important to every business, and a lot of businesses do give discounts for quick payment.

[http://www.freshbooks.com/blog/the-best-invoice-payment- term...](http://www.freshbooks.com/blog/the-best-invoice-payment-terms-to- help-you-get-paid-faster-and-more-often/)

[https://www.americanexpress.com/us/small- business/openforum/...](https://www.americanexpress.com/us/small- business/openforum/articles/6-invoice-tricks-to-get-you-paid-faster/)

Being able to define your payment terms is important.

<comment><USER4> Agree completely. I just asking about the software end. I've used freshbooks a lot and I've never seen that option. Just checked again, and it doesn't appear to be there. There are discounts, but it's a discount that is applied immediately, at the time of invoicing, rather than being applied IF certain conditions are met.

I'll check out quickbooks.

</comment></comment></comment></comment><comment><USER5> Feedback: The dark text on a dark background is hard to read [http://i.imgur.com/jiQa20D.png](http://i.imgur.com/jiQa20D.png)

</comment><comment><USER6> Might want to compress this a tad: [https://invoiced.io/images/bg.jpg](https://invoiced.io/images/bg.jpg)

;)

<comment><AUTHOR> Tnx for pointing that out, fixed :)

</comment></comment><comment><USER7> Slight (ironic?) spelling error: Please note, that at the moment, no other language besides Enlgish are bundled with the application.

Looks good otherwise!

<comment><AUTHOR> Tnx; taken care off

</comment></comment><comment><USER8> Have you taken this offline? Can't get to it at all right now.

<comment><AUTHOR> No, it should be online. Just tried and it loads ok for me... Are you getting an error or anything?

<comment><USER8> "Too many redirects" in safari.

works now in ff, but I'd started the 'demo' in safari 60 mins ago. now I can't get back to the main page in safari.

<comment><AUTHOR> Should be working OK in Safari now as well</comment></comment></comment></comment>


Here is a download key for a game that I had developed - <AUTHOR> http://istanaangin.itch.io/a-simple-platformer-episode-1-3/download/z7r5BO11512Y686Ftl0wHoj6Ik412q7OJI2fGKUR <comment><AUTHOR> It's a platforming game but I also included elements from other game genres as well

I was inspired by games like Deadly Premonition and Steamboat Chronicles. By that I mean I want it to have a janky feel and "this looks bad, but I like it somehow" kind of feeling

I also try to touch on mental health issues when developing the game.

The visual and design is bare, This is in a way a purposeful response to the overblown productions of today(also to cut cost).

It's a bit off beat, that's what I wanted it to feel like.

If you see something in the game or like it, please buy it and share it.

Thanks

@IstanaAngin</comment>


Know your Internal and Public ip adress with Command line tool - <AUTHOR> https://github.com/PaulRosset/EasyIP <comment><AUTHOR> You can gain a lot of time by typing in your command line to know your public or internal ip. There is few features in more like localize your public adress. Enjoy :)</comment>


Future apps won't be designed for smartphone or tablet - <AUTHOR> http://blog.estimote.com/post/137340094650/the-future-of-apps-for-the-physical-world <comment><AUTHOR> Hi Hacker News, this is Jakub, founder of Estimote (YC S13). To kick-off 2016 we have shared our vision for the future of contextual mobile computing, beacons, proximity and beyond.

Hope you will enjoy it since this post is also a little celebration for us and a nice start of New Year! : )</comment>


Capitalism vs. Democracy   - <AUTHOR> http://mobile.nytimes.com/2014/01/29/opinion/capitalism-vs-democracy.html

<comment><USER2> Can tell he came from France... You can't have a democracy without capitalism, if you remove capitalism you instead have to put in place a committee, if someone in the committee eventually makes a grab for power (at some point this will happen), then you have a dictatorship...

It's happened tons of times throughout history, no matter what people want power. If a society values money the most (as in a capitalist society) one will strive to make money and in turn products. If the society values position, then one will strive to gain status, and so on with military, strength, etc.

The point being, regardless of work, it's fairly clear though a remedial understanding of history (Rome, Russia, North Korea, Greece), capitalism doesn't destroy a society nor does it create a gap. The gap is always there, it simply changes form. If for example the average worker has a home, food, water, essentially a stable life they will still complain because they want MORE.

This will always happen, I know very few people who don't want more. I suspect that this is the root of it, the root of all statements such as "Capitalism vs. Democracy.."

It's pathetic, it's as if these authors sole goal is to destroy democracy and instantiate communism.. We've seen that in the past and it doesn't close the gap between rich and poor it makes it worse. For when you remove the hope that work can make you rich, you put in place instead a status (or military, strength, etc.) based market, where the "wealthiest" in the society are those with that instead of currency. Unfortunately, that change in efforts towards status, or what have you, forces greater despair. As time goes on the society eventually will lose all hope and collapse...

/end rand

[http://en.wikipedia.org/wiki/Chicago_school_of_economics](http://en.wikipedia.org/wiki/Chicago_school_of_economics) [http://en.wikipedia.org/wiki/Austrian_School](http://en.wikipedia.org/wiki/Austrian_School)

<comment><USER3> If you are going to make bullshit claims at least don't back them up with provably false accusations about wealth gaps being worse in non-capitalist countries.

The wealth gap in Russia increased at astonishing levels after the fall of the USSR.

What those who want to make your point do is say that this doesn't matter since the "pie" is larger under the capitalist system, so the gap doesn't matter as much.

Still not true, but at least not as easily shown to be false as your "clear remedial understanding of history".

<comment><USER2> My point had nothing to do with wealth gaps...

My point was that people want power any way they can get it, with a capitalist system it's much more about hard work than who you know, your name, your status essentially. Other systems simply trade one out for the other, as in, e.g. mostly who you know and less about how hard you work.

I am not arguing about wealth, I am arguing about hope, happiness, and fairness. If I work harder and receive more there is a form of symmetry work = money = food, shelter, happiness. On the other hand if work doesn't mean I receive more or I receive very little for my increased work, it changes the equation. The latter system supports not working that hard because that benefits you more than working hard.

Now, discussing directly the wealth gap, wealth is a sign of how hard you work, how intelligent you are, and in corrupt systems how many people you know. Thankfully, in a capitalist system since work translates into wealth you can often MINIMIZE the corruption, or at the very least its better than a system where a committee/laws redistributes wealth. My point there being, a fair distribution of wealth should be based off market pressures because it is more likely to be a fair distribution, sure that means some people lose, but those people are the ones who don't want to work, don't have the intelligence to make money and don't have friends to support them. In that case, they are free to join a church or local community center, which are also supported in capitalist nations.

All that being said, I don't actually feel that my claims are "bullshit," perhaps I misrepresented them, but there is evidence to support my argument... That would be the two schools of economics at the bottom of my original post.

<comment><USER4> "I am not arguing about wealth, I am arguing about hope, happiness, and fairness. If I work harder and receive more there is a form of symmetry work = money = food, shelter, happiness."

However, this hypothetical loop you outline is clearly neglecting the hidden scaffolding of privilege and agency.

While it might seem perfectly logical as a theoretical standpoint, it also hides a tremendous complexity of "value", something typical in hypercapitalist perspectives.

When reducto ad absurdum appropriates "value" to equivalency with "monetary wealth", we might as well yield to Burger King slogans that allow us to experience "value" through a kid's meal.

Value of culture is obviously subjective. To use your example, I value a culture that can see the value of the populace. To feed a person without privilege or agency, and expect nothing in return, is not something that fits into your Utopian feedback loop.

One can only wonder how many other cultural values may not fit into the same loop.

"That which is not good for the bee-hive cannot be good for the bees."

</comment></comment></comment></comment><comment><USER5> Every time I read something about economists arguing I remember the old joke

"The definition of "waste": a busload of economists plunging over a precipice with three of the seats unoccupied."

</comment><comment><USER6> _...defies left and right orthodoxy by arguing that worsening inequality is an inevitable outcome of free market capitalism._

Let's fix that:

 _...defies left and right orthodoxy by arguing that worsening inequality is an inevitable outcome of UNRESTRAINED free market capitalism._

The greed that is pure free market capitalism needs some bounds, else the inequality gets out of whack like it is right now.

</comment><comment><USER7> If this[1] is what "increasing inequality" looks like, I welcome it.

[1] [http://annualletter.gatesfoundation.org/~/media/Annual%20Let...](http://annualletter.gatesfoundation.org/~/media/Annual%20Letter%202014/Myth%201/Myth1Info1_Curves_Final_EN_0122.jpg)

<comment><USER8> That particular graph has several issues. The first of which is the lack of scale. It's set up so the tail ends nicely around $100 dollars a day when in reality it should extend over 2 orders magnitude to the right. When talking about inequality, if you can say "most of humanity" exists in this hump orders of magnitude away from a select few that represents a problem.

</comment></comment><comment><USER3> "[D]efies left and right orthodoxy by arguing that worsening inequality is an inevitable outcome of free market capitalism."

Huh? How does that defy left orthodoxy? Edsall might want to pick up some Leftist works... Maybe something from that little known author Karl Marx.

<comment><USER9> You probably won't find any references to "free market capitalism" in Marx, since the "free market" marketing label was only added by supporters of capitalism to distract from the socialist critique in which the system organized and managed to serve the interest of capitalist called "capitalism" was named.

Treating "free market capitalism" as if it is a meaningful term defies left orthodoxy, arguing that it is something other than ideal defies right orthodoxy.</comment></comment>


Rate my web application: Perq - <AUTHOR> http://www.perqworks.com

<comment><USER2> With regards to pricing: I think you may want to simplify that. In particular, from the perspective of an organization with 20 employees, there is no difference between an HR expenditure of $20 per month and $100 per month. $80 is rounding error on a single employee's overtime pay. (Seriously. Compare the cost of your system to, e.g., payroll systems.) However, you have _four_ plans which attempt to make distinctions between non-distinct things.

Assuming you're in the right range on current pricing, I'd be thinking more along the lines of:

Free for 3

$20 for 10

$100 for 100

CALL for more

Now you only have to administer three options, and if you convert anybody with 20 employees you win much bigger.

Note the CALL option. There is an awful lot to be said for the CALL option in enterprise sales. Realistically speaking, price is not going to be what prevents your solution from being adopted at large corporations. However, and this might be a bit of a shocker for you, they might not deal with variable pricing that well. (It is easier to get my boss to sign off on 2 * $X,000 per year than to sign off on twelve payments which will average out to $X,000 per year. Think of how much extra work that makes for him in working the company bureaucracy. First he has to attach a projection. Then he has to document how he made the projection. Then he'll remember "Oh, shucks, if this ever materially changes I'm going to have to update the projection, but updating projections doesn't bring in my projects or get me my next promotion.")

Incidentally: you list a bunch of features, not benefits, on the front page. Nobody, not even HR drones, wakes up in the morning and says "You know what I want to do today? Create office holiday schedules!" Let me hum a few bars: decrease costs, increase compliance with company policies, reduce workplace conflicts stemming from miscommunication about leave.

<comment><USER3> I don't understand how you can say $80 is a rounding error, and then suggest pricing tiers that that have an $80 gap. My brain started clanging with cognitive dissonance!

Also, I think advising him to have a "Call for more" option is bad advice. Don't introduce that kind of friction at the 101st users - that's not right. Maybe, just MAYBE, he wants to say call for 1000+, but even in this case, I think it will be better to be transparent about pricing.

<comment><USER2> Sorry for the clanging. As I indicated, I think that the correct anchor for this pricing is "HR expenditures" (like payroll) not "cheap web services anybody in the organization can start using on their own initiative as long as they have a credit card". (Why do I think that? Because I think you need HR buy-in to sell any plan costing more than $20 / month, so you might as well charge them through the nose to let them know you're serious.) However, I was focusing on the need for simplification in that point, so I picked price points that they demonstrated they'd be more or less comfortable with charging for my example.

I would be interested in hearing your reasons why the CALL option is "not right". Here are my reasons why it is:

As it stands currently, they will not sell any plans whatsoever to companies with 100+ users. Not a single one. The reason is that when you get to 100+ users you have just won yourself a ticket aboard the USS Enterprise Sales. There are now a few hundred obstacles standing in front of the sale where there weren't when you were selling to a man who routinely invites all his employees over for dinner. If you haven't done Enterprise Sales before, you _don't know what these obstacles are yet_. So, let the prospective customers who you're going to crash and burn trying to sell to tell you what their objections are.

For example, hypothetically suppose one of my day job's customers was looking for a solution to this, and you took my advice and had them call you. Here's the first question they're going to ask: "What is your policy for compliance with the Personal Information Protection Act?" And the answer presumably sounds like "Umm... let me Google that." Now, let's be honest: you're going to totally crash and burn with that sales call. But you've learned something useful: a) there is a Personal Information Protection Act and b) somebody who was interested enough in my software to pick up the phone/send an email/etc asked about it first, which means that presumably my answer was important in making a buying decision. So, presumably, if you got it into your head "I really want to sell to Japanese universities" you'd a) research the law b) implement the technical and legal measures you'd need to comply with it and c) prominently say so on your website. Then, the next time someone called you and (having totally failed to read your site in a manner typical of all customers everywhere) asked about the Personal Information Protection Act, you'd have an answer ready to go, so you could get totally humbled by their _second_ question this time.

Repeat a few dozen times and you might actually succeed in making Enterprise Sales.

(Edit: I had misremembered the English name of the law I cited.)

</comment></comment></comment><comment><USER4> This is cool. Sounds like you hit on an annoyance that HR managers/administrators have probably be struggling with for a long time. Especially for the companies large enough to have a headache, but not large enough to create a custom software solution.

Care to share some info on how this was created? Some of the technologies behind it, how long it took you, any insight would be cool. Would also love to hear how the launch went - e.g. a nice blog post with some interesting follow- up statistics on all sorts of HN related metrics would be nice to see.

I like how easy it is for me to know immediately what it is and what problem it solves.

Me, personally, I find the green on white copy - right below the main centerpiece of the main page - a bit hard on the eyes. Maybe that green could be a SHADE darker - so there is more contrast?

Just being nit-picky here, I feel like some of the copy is a bit wordy and some of the word choices are a bit awkward. E.g. 'Personable Time Off'....what on earth is that? After looking through the site, I get what you are going for, but I am not sure if that is the best way to say it.

The interface definitely looks nice though, and for the most part the copy is relatively easy to read.

I am also struggling to decide whether or not there is too much information on the main page. At first, I was like 'Whoa!' this is a lot, but I realized that you are just saying the same thing many different ways without me knowing you are saying it many different ways until I understand everything - if that makes sense. So I guess in a way it's good, because before even moving from the first page I understood what the app is about, but I would have preferred if the same could be explained without so many words.

Just my $0.02.

</comment><comment><USER5> This is beautiful. And the main site is built on top of Wordpress? Impressive.

A couple tips:

* Make the writing on your blog (and your other pages) more colloquial. And enable comments on your blog. Feedback is incredibly valuable to a newly formed company.

Example on the main page: "For over seven years, Matter has developed 'better experiences' in products and services. Perq comes from our own fruitless search..."

should be: "Perq was inspired by our own need..."

* Not so much text on the main page. As another commenter said, I don't want to see a list of every feature that you provide. _If_ I'm interested in your product after the first page _then_ I'll want to see a detailed feature list.

* Take the pop-up that comes up when you click "View Details" on the Tour page, and embed it into the page. Put it front and center and let all of the other text fall below it. It's very close to a demo and it speaks much louder than pure text.

* On the homepage, everything below the masthead feels superfluous because it's so bright and small.

</comment><comment><USER6> Argh! Tiny white text on saturated green. Tiny light green text on white. Tiny grey text on grey stripes. Also way too much text.

Also be careful with serif fonts. Sure, they are trendy but usually they are harder to read on monitors.

Shouldn't "3 for Free!" rather be "Free for 3!"?

</comment><comment><USER7> It looks very nice, but the only thing I'd say is that I'd hate to have to distribute YET ANOTHER username/password to everyone on staff, even for a small firm. It would be cool if there was something that could just use email or if it could integrate with LDAP, etc.

</comment><comment><USER8> Put a huge button on your home page that lets users straight into the actual application _without_ _any_ signup. There are so many sites that require sign up (I know yours is only 3/4 fields), it becomes off-putting, no matter how minimal.

Just make it so unbelievably easy for people to start playing with your app by just letting them use the thing immediately. Then, you can do all sorts of conversion stuff to turn visitors into users with an free/paid account etc.

Also, there are both 'Signup' and 'Join Account' buttons on the homepage. The only way I could understand what 'Join Account' meant was to hover over it. Why not just have one signup button, then as part of that process determine if the user wants to join an existing account. This way the user only has one choice and no ambiguity.

It's looking really great. Nice work.

</comment><comment><USER9> For large companies, you're competing with peoplesoft. Peoplesofts UI is shit, in my opinion, but then I'm only the guy trying to book his holiday with it, rather than the HR people who bought it. What it offers them is an integrated solution. I assume it plugs into payroll etc. It also does expenses, yearly appraisal, yadda yadda. I don't know how you're going to compete with that.

</comment><comment><USER10> I like it a lot. I am looking at a solutions that would help us to track time off (not time tracking itself). Perq has very attractive pricing (10x cheaper than other solutions, I am looking at tracking time off for 50+ employees). Design is very nice and smooth. Good work!

</comment><comment><USER11> About the light green type: darken the green text until the average color of the block (type + white background) matches the current color of the text

</comment><comment><USER12> I found 'Signup' and 'Create Account' confusing. You may want to work on the text to avoid confusion.

</comment><comment><USER13> nice design and clear product selling point especially in usability area.

</comment><comment><USER14> Consider that middle-aged managers are probably not eagle-eyed - light green text on white is not ideal, as already pointed out.

A very few may have a fond thought to give to a former holder of that name: <http://en.wikipedia.org/wiki/PERQ>

P.S.: the 'Works with' part is more important than the out-of-the-way corner where it is tucked ...

</comment><comment><USER15> nice</comment>


Show HN: Omg-Curry – JavaScript currying library - <AUTHOR> https://github.com/Debdut/omg-curry <comment><USER2> I had mixed results in the past when I tried to use currying in Javascript. The stack traces were cluttered by references to the currying function and it also masked bugs if you forgot to pass an argument. Without currying, if you pass less arguments than the function expects then you usually get an error right away complaining that the argument is undefined. However, if the function is curried then it silently succeeds. You only notice the problem later, when you try to use the return value and realize that it is actually a function. To make things worse, when this happens the stack trace points to the place that is trying to use the return value instead of pointing to the function call that is the actual source of the problem.

My final impression was that currying works better a language like Haskell that has a strong type system. In a dynamic language it is more problematic.

<comment><USER3> How about Typescript then?

<comment><USER2> When I did that it was before Typescript existed. If anyone has tried currying with Typescript I'd love to hear how it went.

</comment></comment></comment><comment><USER4> JavaScript actually has a pretty ergonomic way of doing currying natively:

      const add = (a) => (b) => a + b;

      [1, 2, 3, 4].map(add(2));  // [3, 4, 5, 6]

<comment><USER5> I like this too (and use a version myself) however this form only supports one argument at a time. E.g. add(1,2) is going to return the curry of add(1), which is not what you want. The OP's function doesn't have that problem.

Something I would really like, although this would require some language-level changes, I think, is the ability to curry arguments in any order, maybe using placeholders. So you could say add(_, 2) and get back a function of one argument, such that if you call it with 1, for example, you invoke add(1, 2).

<comment><USER4> What it ends up being for normal usage is something like this:

      add(1)(2)

Which is admittedly a little bit clunky, though from a quick read I don't think the library helps with this.

You might be interested in the "pipeline operator" proposal. In addition to pairing nicely with curried functions, it offers a certain amount of re- ordering.

<comment><USER5> Yeah I think your quick read is off:

      add4(1)(3)(5)(10)
      add4(1)(3,5)(10)
      add4(1,3,5,10)
      // 19

</comment></comment></comment></comment><comment><USER6> Sorry I'm not that familiar with this. What would be a good use-case for currying?

The example doesn't feel that exciting...

        add4(1)(3)(5)(10)
        add4(1)(3,5)(10)
        add4(1,3,5,10)
        // 19

<comment><USER7> It's nice for any type of list iteration. I'll share my "match" function (for use when filtering) when I'm at my computer tomorrow.

<comment><USER7> It's tomorrow somewhere…

        /**
         * These functions are intended to be used with array iteration methods
         * </comment></comment></comment><comment></comment><comment></comment><comment>-
         * // Example data:
         * let e1 = { a: 1, b:  2, c: "C" };
         * let e2 = { a: 2, b: 12, c: "D" };
         * let myArray = [ e1, e2 ];
         *
         * // Basic usage, matching a constant
         * myArray.filter(match({a: 1})); // [ e1 ]
         * myArray.filter(match({a: 3})); // [ ]
         *
         * // Matching multiple properties
         * myArray.filter(match({ a: 1, c: "C" }));    // [ e1 ]
         * myArray.filter(match({ a: 1, c: "D" }));    // [ ]
         * myArray.filter(matchAny({ a: 1, c: "D" })); // [ e1, e2 ]
         *
         * // If a function is provided, return the result of the function
         * // called with the corresponding property as its argument.
         * let belowTen = n => n < 10;
         * myArray.filter(match({ a: belowTen, b: belowTen })); // [ e1 ]
         * myArray.filter(matchAny({ a: belowTen, b: belowTen })); // [ e1, e2 ]
         *
         */
        export const match = o1 => o2 => Object.entries(o1).every(
          ([k, v]) => typeof v === "function" ? v(o2[k]) : o2[k] === v
        );
        export const matchAny = o1 => o2 => Object.entries(o1).some(
          ([k, v]) => typeof v === "function" ? v(o2[k]) : o2[k] === v
        );

</comment><comment><USER8> > WTF is Curry?

> A Curry takes arguments one by one unlike functions which takes all > arguments at once.

Took the words right out of my brain.

</comment><comment><USER9> The old "drop a link" routine isn't beloved here at HN, but this xkcd is just so good:

[https://xkcd.com/2210/](https://xkcd.com/2210/)

</comment><comment><USER10> funny how most react devs were using currying directly when they were calling redux lib.

still think it(redux) was a misplaced usage of currying.</comment>


Last Week Tonight with John Oliver: Government Surveillance [ft. Edward Snowden] - <AUTHOR> https://www.youtube.com/watch?v=XEVlyP4_11M <comment><USER2> Communication: this is where john oliver is amazing. Rather than talk about all the complexities of the secret NSA programs. He simplified the entire scandal into "NSA can see your dick pics. Stop them now".

This episode is a big lesson in communication for startups.

<comment><USER3> The number of people that praise John Oliver for dumbing down the issue amazes me.

Dumbing down complex social and political issues is a communication strategy that will always see populists and extremists as winners.

This is how we got here in the first place. The words "War on Terror" are the ultimate dumbing down of international politics.

This is so easy to counter ("NSA can prevent another 9/11", "Government can trace pedophiles" etcetera) by the other side it's laughable. This is just playing into their hands.

<comment><USER4> > Dumbing down complex social and political issues is a communication strategy > that will always see populists and extremists as winners.

And this is how you get ordinary people to begin to understand why this is an issue and why they should be concerned. Sure, you could let them drink from the firehose, but the decisions they reach would be even more uniformed or as it is now, ignored.

You give simplified information and let the curious among the previously uninformed do their own research to reach some version of The Truth.

Is it a perfect solution? Not even close. But that's not the world we live in or are surrounded by.

John Oliver is not wrong when he says "We don't fundamentally understand it." Maybe you do. Maybe someone else does. I know firsthand that I vaguely understand parts of it.

The problem that Snowden revealed is going to take years, maybe decades, to fully digest and society is going to be everchanging during that time. Prepare to be eternally frustrated if you ever thought there was going to be quick and decisive action on our problems with internal spying.

("Internal spying" doesn't even begin to cover what he revealed. It is the simplest term I can come up with at the moment. That, in and of itself, reveals the hidden depths of this issue. What the hell do you even call it.)

<comment><USER3> The way to get "ordinary people" (and I think we're using a very low value of "ordinary" here) to understand anything is education.

Education is the primary battlefield. Fuck, education is the _only_ relevant battlefield. And yes, it's a long drawn out battle which is fought over generations, not via soundbites on a comedy show.

The other side understands this, so they have put decades worth of effort into undermining the education of ordinary people.

We used to understand this, as education for the people used to be a primary goal of progressive politics. (And yes, this is about progressive versus conservative, it always has been, no matter how warped these things have become.)

What Oliver does is entertainment, nothing more. It doesn't change anything, not in the long run. And while we're rejoicing in the fact the Oliver scored a very, very minor victory, the other side is already working on the next step in keeping the people as uninformed and uneducated as possible.

(Also, the only reason shows like that of Oliver are such a big deal these days because they've pretty much managed to kill off any form of critical mainstream journalism that could inform and educate the people. The "success" of John Oliver is a symptom of our defeat.)

<comment><USER5> Who is the 'other side' and 'they'?

Edit: completely agree with your bigger point but wanted to know who you had in mind as the other side

<comment><USER6> I hope that there is no other side. At least none that is premeditating actions like "keeping ordinary people stupid".

</comment></comment></comment></comment></comment></comment><comment><USER7> I have to say, I was fairly suprised of the way the interview was conducted. It was somewhat refreshing to see not the same questions being asked all over and over again. I think Mr. Oliver & his team picked very well what the average Joe does care about. Very well done!

<comment><USER8> I really wish the idea pushed that bulk collection allows the military intelligence orgs to blackmail every single member of the executive and judicial branch: every federal judge's extramarital affair, every congressperson' drug habit or undisclosed political ties, every bribe- none of the counter forces of checks and balances apply anymore.

It's not about _your_ dick pics. It's about the district court's inbox's underage titty pics.

The only people who can stop it are also subject to its destructive impact.

<comment><USER9> It isn't even about that. It is that the completely clean guy who is standing for integrity who gets told 'either you do as we say or we will convince the world you are a child molester, and trust us, we can plant all the evidence we want where ever we need to'.

<comment><USER10> Which has nothing to do with surveillance.

If you're going to flat out lie and make stuff up then you quite literally do not need to do any surveillance.

John Kerry's war record being tarnished was done openly, publicly, and without any involvement of the NSA (which would have been useless to the cause anyway).

</comment></comment></comment></comment><comment><USER11> Oh God the part at 7:55 where people describe Edward Snowden as selling information, "that shouldn't have been revealed," I had to stop watching for a second.

Poor guy. It's one thing for people to disapprove of what he did for the right reasons. But for people to think of him as a traitor for the wrong ones, that's another entirely.

That was hard to watch.

EDIT: Oh no he's showing it to him.. John's facial expression at 23.08 says it all. I almost can't watch this.

<comment><USER12> But look at the smile when he sees them caring about dick pics!

<comment><USER13> I loved how quickly he caught on to Oliver's point. I imagine a follow-on effect of the interview may be a renewed appraisal of how he presents his arguments on Snowden's part. Not dick-pics per se, but connecting better with why the average person should care.

</comment></comment></comment><comment><USER14> I find it very interesting that Snowden explicitly confirmed that when the NSA says they only capture "foreign" data, they are considering the endpoints of the wires that transport any given packet, not the humans that generate/receive that packets.

The NSA has a lot of people focused on "metadata" of the endpoints only, and not the entire path the data actually follows that is generally _not_ something the leaves of the network can control. Snowden mentioned moving data to different locations (probably remote mirrors/backups) as one of the places data is captured. The NSA can probably capture any data they want by simply poisoning a few BGP[1] routes so the data they want is routed internationally.

[1] pick your favorite method of rerouting traffic; BGP is just one obvious example

<comment><USER15> I don't think anyone is surprised at this point that they interpret their mission as broadly as they can possibly justify. The NSA are singlehandedly tearing down the stereotypes of lazy government workers.

</comment></comment><comment><USER16> I transcribed the important part of the interview and put it up here with links to relevant info about each of the Patriot Act sections and NSA programs mentioned: [http://cantheyseemydick.com](http://cantheyseemydick.com)

<comment><USER17> Awesome! I'm sharing this in my social circles.

One thing though: could you make it more clear those paragraphs are Snowden's words?

</comment></comment><comment><USER18> John Oliver shows why we can't rely on surveys to show whether people support mass surveillance or not. Most don't even seem to know who Snowden is, let alone understand what the government _is actually doing_. At best most of their minds are made up by what they see on TV (where the networks hardly did Snowden and his revelations any justice).

Also, relevant:

[https://www.emptywheel.net/2015/04/04/section-215s-multiple-...](https://www.emptywheel.net/2015/04/04/section-215s-multiple- programs-and-where-they-might-hide-after-june-1/)

It's _very likely_ that even if the government "backs down" on some surveillance programs from the Patriot Act, they will try to replicate them in other bills, such as CISA or other future ones. They've done that before, too. So we need to be very vigilant about it.

</comment><comment><USER19> If you are outside of the USA: [https://vid.me/search?q=last%20week%20tonight%20government](https://vid.me/search?q=last%20week%20tonight%20government)

<comment><USER20> Also, if you are outside of the USA, you're pretty much fucked as the NSA sees everything you do, including the dicks and vaginas of all 7 billion non-US citizens. And there is also no chance of that ever changing, since no foreign surveillance program hasn't even entered any debate.

So from here, the non-united states to you, dear US reader: here's 7 billion people pointing their fingers at you, you peeping toms, you creeps.

</comment></comment><comment><USER21> I think this is most interesting not so much as a Snowden interview or John Oliver clip, but a highlighting of the delta between the mainstream and people who have a particular interest in this topic. It's easy to forget just how big that delta is.

<comment><USER22> I think it is pretty much down to what sort of media is reaching these population. The perfect example is the one John Oliver is giving earlier on in the show where a serious interview is being cut off by a live news report on Bieber's misconduct in public.

</comment></comment><comment><USER23> I feel like John Oliver is the first journalist who gave a somewhat balanced view of Snowden. That being said I don't really read the news all that much.

<comment><USER24> Agreed. And sadly I do believe more Americans (or people in general) would know who Snowden is if his revelations were conveyed in terms of dick pics.

<comment><USER25> Unfortunately, the majority of the population is uninformed through their own doing. It's much easier to tune out boring technical debates when your beliefs are being challenged.

The majority of the people in the Time Square interviews believed that the information was "not supposed to be leaked", or it was in some way the morally wrong thing to do, without knowing any further information.

While the morality of Snowden's leaks is a flexible topic, it just goes to show that the American people do not actively care about this topic.

I did love the rephrasing in terms of nudes which Oliver and his team did, but it's one step too short of actually producing meaningful change. This type of conversation, again, can be tuned out, it lacks the conviction required to affect more people.

Nonetheless, it was hilarious, I just wanted more from it.

<comment><USER10> The idea that people are uninformed is a toxic attitude to this whole issue. Threads like these are full of 'sheeple' statements. Counter points or arguments are aggressively down voted and anyone who doesn't share the exact point of view of a poster is tacitley insulted as being uninformed.

A conversation requires both parties to be willing to listen, and it also requires some perception that ideas and concepts are actually up for debate.

That's not going to happen so long as people who claim to think this is important refuse to try and understand any of the broader dynamics of it.

<comment><USER26> The people in the Times Square interviews (from the linked video) are literally uninformed. It's not an attitude to say so.

Much of the segment is spent illustrating that people do care about the dynamics of the issue, but that they don't understand the details.

<comment><USER27> They're clearly more misinformed than uninformed. They were making accusations and holding a low opinion of Snowden, not abstaining completely.

This idea that it's not even worth fighting back is extremely toxic.

<comment><USER22> That is funny, in a way, because that is exactly the behaviour described by Susan Cain in a society that over estimate the value of bold assertion from extrovert character trait. So those misinformed are making statement on their own mental the assumption that conceding their ignorance will make them look weak. At least that is my reading.

</comment></comment></comment></comment></comment></comment></comment><comment><USER28> I'm not sure why Snowden feels vindicated due to the story not going in and out of the news cycle quickly. The average person does not care, something evident from the complete lack of constant mass protests nationwide (to give an example). On the flip side, Oliver is correct, we can't have the necessary conversations if no one really understands what happened, and the scope of it.

<comment><USER29> > average person does not care, something evident from the complete lack of > constant mass protests

That's a pretty high bar for "care".

<comment><USER28> Touché, though I would say it is the most effective way to show disagreement.

</comment></comment></comment><comment><USER30> I am a huge fan of John Oliver. I would love to see him deal with EU issues as well, but I know that's not possible since his audience is US based.

<comment><USER31> Are you familiar with his podcast The Bugle? It's a (mostly) weekly, 30-minute satirical news podcast that he does with another English comedian, Andy Zaltzman. They cover European issues in most episodes.

[http://soundcloud.com/the-bugle](http://soundcloud.com/the-bugle)

Archive of older episodes: [http://gamesplusone.com/thebugle](http://gamesplusone.com/thebugle)

<comment><USER30> Nope! Thanks!!! You gave something other than tech and philosophy to listen while running! Thanks!

</comment></comment></comment><comment><USER32> What the disinterest comes down to is "show, don't tell". Snowden told everyone that the government is spying on them. Oliver is trying to make that more tangible by telling everyone "You know they've seen your dick, right?" The interesting thing here is that Snowden could've affected _real_ change if he actually leaked a section of the corpus of data the NSA had collected.

Last year's celebrity nude scandal was characterized as "sexual abuse" against the people whose photos got published. What kind of impact would've been made if an equivalent dump of "normal" people occurred? People hate revenge porn sites and anything that seems to indicate that nudes may be published without the consent of the depicted persons.

It's a very interesting question to ask: would the indiscriminate embarrassment and exposure caused by a leak of say, one day's worth of the NSA's collected data, be worth the awareness that leak would cause, and the changes it may or may not provoke? Would that not be the most fair way to judge whether the NSA's collection of that data is really warranted? Snowden says he's all about letting the people judge for themselves, but as Oliver notes, he made a series of disclosures that require a significant technical background to fully grasp (perhaps part of his partnership with Greenwald et al was based around the hope that they could further personalize the story). Wouldn't his purpose have ultimately been better served by taking and publishing a raw chunk of the sampled data?

</comment><comment><USER33> For those in the United Kingdom (where this video is blocked) you can see the interview part here: [https://www.youtube.com/watch?v=ykfGWcmUbbk](https://www.youtube.com/watch?v=ykfGWcmUbbk)

<comment><USER34> his videos are only blocked until they air on HBO in the US, so in a day or so they should be available in the UK

</comment></comment><comment><USER35> Snowden interview starts at 15:55 - [https://youtu.be/XEVlyP4_11M?t=15m55s](https://youtu.be/XEVlyP4_11M?t=15m55s)

</comment><comment><USER36> With this section 215 and myriad others like PRISM, Upstream - my question is why? Surely the overheads for looking at every single thing are so costly it borders on inefficient? I understand the 'deputising' of Facebook, Google ect. But why do governments want all this data? Is it as Snowden puts, '[to have] a gun over our head.'? That idea makes sense to me, if someone falls out of line the people in power have sensitive information on them and can steer the wayward back to the core ideology?

<comment><USER25> The government wants this data in order to maintain control over a population of millions of people whose democracy prohibits the authoritarian spying and oppression which can be found in Russia or China.

It allows the United States government to exploit weaknesses in individuals or the entire population when they have so much information.

The only question which is critical to consider is why a person should care if you they "nothing to hide". Glenn Greenwald, the journalist who was first contacted by Snowden, gave a TED Talk on the topic [http://www.ted.com/talks/glenn_greenwald_why_privacy_matters...](http://www.ted.com/talks/glenn_greenwald_why_privacy_matters?language=en)

It answers your question better than I just did.

<comment><USER26> I don't think there is a conspiracy of control. I think the people involved in creating these programs are true believers who think they are making the world a better place.

The idea that it is being done to maintain control creates a nexus of evil, a boogeyman that is responsible for it all. The idea I propose, that the only thing behind it is basic human nature, is much scarier.

<comment><USER37> I think you are both wrong, and right.

The people in charge of these programs believe in the United States Government, not the nation, not the people not the constitution, but the government

They believe that Anyone that disagrees with the government at any level is the enemy and they must protect their government from that enemy even if those people are the citizens of that very nation they are suppose to serve.

</comment></comment></comment></comment><comment><USER38> Watching this video feels like attending a funeral together with a clown.

</comment><comment><USER39> This interview was very cringeworthy. Snowden kept getting cut off and the entire thing was just totally disrespectful.

<comment><USER40> That was the point, they didn't want to idolize Snowden and even made some pretty hard accusations about him being responsible for inadvertent repercussions

That made the rest of the interview more believable and trustworthy. Fair, balanced and humorous

I agree that it's a fine line between simplifying a topic for "the general masses" and dumbing it down to something out of the movie Idiocracy. However, I think that Oliver has done a fair job of making it easier to relate to topics people otherwise wouldn't.

(He could use a touch less cursing to add some gravitas where needed, but that's a matter of personal taste I guess)

<comment><USER39> Here is Snowden... having dedicated and risked his life to help his fellow citizen, to have Oliver claim that Americans "don't give a shit" and that he is incompetent for passing on information to journalists that will publish un- redacted material. So Oliver is trying to be funny whilst fundamentally insulting his work and the freedom he has given up.

<comment><USER41> No, Oliver was not trying to be funny. Oliver was pointing out the truth as he observed it, and at the closing part of his interview offers a solution.

So yes, there was some very harsh criticism during the interview and it was difficult the watch, but it made the interview that much stronger and the solution offered that much more appealing.

It proves that Oliver is not your average 'funny-man' and dares to make part of his show uncomfortable just to establish a solid foundation of his interpretation and proposed solution.

<comment><USER39> Well he was actually trying to be funny. He is a comedian. This interview is for a "satire" show.

</comment></comment></comment></comment></comment><comment><USER42> I think John Oliver's producers are heroic.

</comment><comment><USER43> anyone having problems with the video not available in their country should consider using [https://proxtube.com/](https://proxtube.com/) browser extension (especially in Germany you can't live without, due to GEMA)

</comment><comment><USER44> Video not available for Australia.

<comment><USER45> try downloading it with youtube-dl, or use tor :)

<comment><USER46> samm-mbp ~/Desktop % youtube-dl [https://www.youtube.com/watch\?v\=XEVlyP4_11M](https://www.youtube.com/watch\\?v\\=XEVlyP4_11M) [youtube] XEVlyP4_11M: Downloading webpage [youtube] XEVlyP4_11M: Downloading video info webpage ERROR: XEVlyP4_11M: YouTube said: The uploader has not made this video available in your country.

</comment></comment></comment><comment><USER47> Absolutely amazing,

Edward Snowden thought he was smart and by giving the 200,000K copies of important documents to so called "intelligent journalist". Doesn't solve anything...it kind of allows the NSA to plead for more money for security. Which we don't want!

</comment><comment><USER48> Question for the Americans on this forum: What has the media coverage of Snowden actually been _like_ in the US, then?

From the comments all over the web (not particularly HN), as well as John Oliver's "we didn't cherry-pick these" remark about those street "interviews", I got the idea that the Netherlands, the EU, or the rest of the world has seen a wholly different news-coverage of Edward Snowden than the USA.

For instance, this comment on Imgur really puzzled me: _" Watched the whole interview after seeing the last image of it that was uploaded today. Dude seems nice. A little naive, but nice"_. That sounds as if the person who wrote this truly hadn't seen Snowden speak and/or explain his motives before today??

This guy's face has been all over the news for the past _two years_ , and there have been numerous, in-depth interviews with Snowden, and live video appearances, that were in fact full of great soundbites suited perfectly for news coverage. And IMO, assuming one is remotely interested in a serious answer, some were in fact easier to understand than the few words Snowden got in between with John Oliver. Mainly because he got to finish his sentences and they asked sane questions (by which I don't mean the "Can they see our dicks?" question, that one may be crass, but it _is_ actually an effective summary, in some sense).

Somehow it seems like this appearance on a comedy show, talking about dick pics, is _actually_ the first time for a great many people to hear Snowden explain himself and the issues at hand (that have been at hand for the past two years).

I am very on the fence about this. Taken at face value, this interview was absolutely totally cringeworthy and awful. This guy gave up his life to bring the truth to light, he is a hero[0], I'm fairly sure that John Oliver sees and agrees with this, yet he shows him a pair of rubber testicles with stars-n- stripes pattern.

On the OTHER hand, maybe the question "But can they see our dicks?" really is the last question that can make Americans actually care about this subject matter, in which case John Oliver did a great thing, if it actually works, that is wonderful. And I cringe for your country.

Another nice mindtwister to think about: That folder, purportedly containing a "dickpic" of John Oliver. Two possibilities, which one is worse: Edward Snowden, man of Truth, exiled for life, in Russia, having to play along with a semi-scripted silly comedy sketch (you can see his discomfort) pretending there is a picture of John Oliver's penis in that folder. OR the alternative: John Oliver actually handing Edward "f-cking" Snowden a folder with an actual photograph of his naked penis.

(I'd probably have more respect for the latter, also fits better with these ridiculously Strange Times we live in. But I guess Snowden's facial expression would have been somewhat different)

[0] About the "traitor" part. A certain number of (corrupt) people in the USA might "honestly" feel betrayed by him, in an informed manner. But what he did is so much bigger than that, the rest of the world knows him as a hero.

</comment><comment><USER49> Just curious: If you had been at time square would you have avoided his cameras?

</comment><comment><USER50> This is one of the best things I have ever seen.

</comment><comment><USER51> It was hilarious to watch.

</comment><comment><USER52> This was excellent. Thank you for sharing.

</comment><comment><USER45> Stop looking at my dick nsa.

</comment><comment><USER53> John is brilliant.. but i wasnt very impressed with snowden, his mannerisms dont feel genuine.

<comment><USER37> You were not impressed by Snowden because frankly I believe Snowden was not prepared for John Oliver's style of sarcastic comedic interviewing.

John is correct on the fact that the average person does not take this seriously or is completely ignorant on the subject. Edward Snowden believes the topic of mass surveillance is a very serious one, as he should. John is acting like the normal person namely an immature moron that does not take this topic seriously at all...

Both are brilliant and John's commentary is a sad wakeup call to the intelligence of the average person in this country.

The fact that "Dick Pics" is the best way to get the public to understand the massive problem that is mass surveillance is both true and very very sad.</comment></comment>


Ask HN: Is there still demand for Smalltalk programmers? - <AUTHOR>

<comment><USER2> It depends on how you define demand.

This site is updated reasonably regularly: [http://smalltalkjobs.wordpress.com/](http://smalltalkjobs.wordpress.com/)</comment>


So you got rejected? Good - <AUTHOR>

1. Now you know you KNOW you're on your own! 2. Next time you apply you will know that accelarator is not THE CHANCE to get to where you wonna be. Its just a SHORTCUT that you can take, or NOT.
Lately I have that feeling that people tend to approach accelerators like they approach Santa:
"Dear Santa,  I have been a flibustier all my life, and I have a bright idea, and I am really really smart. So please help me get my dreams come true..." Does not work.
If you THINK your idea is something that has to be done.
Just go for it. Make it your mission and do whatever it takes to accomplish it. Once I met those guys from UK in Siberia riding their bikes. I asked em WTF? Well, they told me, they are on a mission to go around the globe on bikes.. Why? They had no clue, I had no idea, but they have done it. (Find em "tough miles") Thats what a start up is, it may be even tougher.
(thats actually SCARY. Coz you will NOT have support from your friends, family, spouse and any reasonable person (they'll think you're nuts)).
IF you do it anyway, sometime you'll KNOW it works (coz you have clients and revenue and the growth). Then YOU decide if you want to take the SHORTCUT or not.
Hope that helps. Listen to Iron Maiden - The Trooper. There is always a chance.
Sincerely, Mike
PS: I will just go on painting Cathedrals to get the funding. Incorporte in HK. And launch our mob.app  for the guys like us in July 2015:) <comment><USER2> I'm not even applying for VC.

It's hard sometimes, when I hear about some guy getting millions of dollars for some idea that I once thought of, but the reason I don't pursue VC is that my actual experience with it leads me to be skeptical that it actually works.

Sometimes the VCs want to exercise control over the day to day operations of the company, then they demand the company do really stupid things that leads to it going out of business.

I'm not so sure it's such a good thing for a company to be publicly traded. Your "investors" at the IPO might not have any longer-term interest in the success of your company then the next millisecond, this because the reason we really DO need to Occupy Wall Street is the popularity of Sub-Millisecond Precision High Speed Trading.

I worked for an electronic medical records startup in 1996. We were one of the very first. Our product was not meant to go online IN ANY WAY. While we were a client-server shop, the server was intended to be in the same hospital as all the clients.

Even so, one of our VCs popped by the office one day to ask what our "Internet Strategy" was.

This had the eventual result that "KnowMed Systems" changed its name to "iKnowMed".

\-- Misha

<comment><USER3> VC's are big picture people. Asking about an internet strategy was a good move- they largely predicted the EMR record systems in place today. Doesn't mean you have to change your immediate focus, they just wanted to make sure you were thinking about it.</comment></comment>


A tmux crash course (2016) - <AUTHOR> https://robots.thoughtbot.com/a-tmux-crash-course <comment><USER2> Zoom is the best command, after using tmux for years, just discovered it. Ctrl-b z brings a pane into full screen and back. I use a 4x4 grid and zoom in and out.

</comment><comment><USER3> I'm just curious- as I haven't really been able to get into tmux. Why use it as opposed to iTerm's built-in tabs and panes? Or like what are the selling points outside of just tabs and panes?

... I mostly just want to be sold on it :)

<comment><USER4> My initial attraction to screen / tmux was when I spent most of my time logged into remote servers. The ability to start a long-running script at the office, detach from screen, then re-attach at home to check on it later was indispensable.

<comment><USER5> Can you do this with traditional commands? Disown detatches from the terminal (if I remember correctly), is there an equivalent to re-atach it later?

<comment><USER6> With tmux you can have multiple terminal panes going in a session, disconnect, and then reconnect.

</comment></comment></comment></comment><comment><USER7> I often use screen within tmux as it's easier with ctrl A and ctrl B than double of those.

<comment><USER8> You can configure your local tmux to have a key press send the prefix command to a remote tmux with a single keypress.

For example, to bind C-a to control the remote session:

       bind-key -n C-a send-prefix

<comment><USER7> Binding isn't an option as only defaults are available on target machines (can't save .screenrc file). There can be thousands of target machines so binding doesn't scale.

<comment><USER8> I'm sorry I wasn't clear. This would be a binding in your local tmux configuration that sends the prefix command to whatever is in your current pane, allowing you to have a key act as a 'remote prefix' button.

I agree that bindings still don't scale incredibly well depending on the number of host machines you need to ssh from. I think your screen workaround is a pretty neat solution.</comment></comment></comment></comment>


CDC Coronavirus website only updates on weekdays at noon - <AUTHOR> https://www.cdc.gov/coronavirus/2019-ncov/cases-in-us.html <comment><USER2> So?

<comment><AUTHOR> Show me another website that is this incompetent when lives are on the line

<comment><USER3> In what way is this incompetent? They can only update when the data is confirmed. Once daily seems reasonable to me.

<comment><AUTHOR> How about updating it when the data comes in? How about calling all hospitals? How about setting up a website for doctors to log in to? It is life-or-death data, isn't it?

<comment><USER3> I work in the healthcare industry. Our hospitals have a line with the CDC, and are getting updated with live data. A public-facing website isn't the primary way of disseminating this data.

<comment><AUTHOR> It's not just for hospitals. Regular people practice social distancing with up to date infection data. See South Korea's data transparency. Exponential growth means 10x change from one day to the next, making live reporting crucial for saving lives.</comment></comment></comment></comment></comment></comment>


China is building a GitHub alternative called Gitee - <AUTHOR> https://techcrunch.com/2020/08/21/china-is-building-its-github-alternative-gitee/ <comment><USER2> When there's [https://gitea.io](https://gitea.io) as a GitHub inspired repo manager?</comment>


Show HN: Is My App Live? - <AUTHOR> https://www.ismyapp.live/ <comment><AUTHOR> After much encouragement from others submitting awesome projects, I wanted to put something together that 1. Solved a problem I have pretty frequently with app development and 2. Forced me to learn some new tools outside of my everyday work with iOS/Swift and Node.js. The original use came about after we added a native "A new version is available" prompt in our iOS/Android apps. We control when the prompt shows up from our backend but we had issues where some people on the east coast could update and others elsewhere could not. Turns out the App Store is actually pretty slow at propagating changes so the only way to really know when something is "live" is to check from across the globe.

So yeah, this took about 3 days of work, with the large majority spent spinning up DigitalOcean instances and coming up with a way to reliably deploy the same code base to all of them. I ended up starting with the base Dokku app and a couple bash scripts that setup the initial dependencies of the droplet, another for LetsEncrypt certificates, and finally one that actually deploys from a git repo. The front end is built with Webpack and Vue.js and everything else is running Node.js. Total cost of the deployment with minimum resources is $94 / month. Thats 8 DO droplets (1GB RAM) and two Heroku Hobby apps. If this site actually picks up traction I would probably need to upgrade to the 1x production app on Heroku. I think the 1GB DO droplets should last a while under reasonable load. Any feedback / questions are very appreciated!

You can test WhatsApp's latest release: 310633997 / 2.17.3

</comment><comment><USER2> Hm... when checking the App Store for an old version of Google Photos (962194608 / 2.6.0), it says it isn't live. Is this intentional behavior or a limit of the iTunes API?

<comment><AUTHOR> Nope that's just bad copy/UI on my part. Technically that version is not live, 2.9.0 is live, and you can't download 2.6.0 so I'm saying "not live". But in reality the UI should be clear that it's an old version.</comment></comment>


Microsoft's internal subdomains - <AUTHOR> http://andrisatteka.blogspot.com/2014/10/microsofts-internal-subdomains.html

<comment><USER2> If you look at the full list, it seems like it's just autocompleting words in the dictionary. Here's some examples:

        if.corp.microsoft.com
        my.corp.microsoft.com
        one.corp.microsoft.com
        year.corp.microsoft.com
        baby.corp.microsoft.com
        pain.corp.microsoft.com
        crisis.corp.microsoft.com
        improvement.corp.microsoft.com
        devil.corp.microsoft.com
        animal.redmond.corp.microsoft.com

I don't any of these some of those are actual subdomains...

<comment><USER3> I can second that. I work at Microsoft and those subdomains don't exist at all as far as I can see from the internal network.

</comment></comment><comment><USER4> Looks more like they're looking for known pieces of domains rather than really parsing the domain as a whole.

<comment><USER5> Indeed. The article's suggestion does not really make any sense.</comment></comment>


Weather in an SSID - <AUTHOR> https://blog.benhaney.com/2018/11/02/weather-ssid <comment><AUTHOR> A coworker of mine had this clever idea after being inspired by [https://www.revk.uk/2018/10/unicode- dicks.html](https://www.revk.uk/2018/10/unicode-dicks.html). Enjoy!</comment>


Isomorphic JavaScript - <AUTHOR> http://isomorphic.net/ <comment><USER2> Sigh. I think I'm losing this fight. [https://news.ycombinator.com/item?id=6714666](https://news.ycombinator.com/item?id=6714666)

<comment><USER3> My reply to the same nitpick (but other guy, you're not alone!): [https://news.ycombinator.com/item?id=8238504](https://news.ycombinator.com/item?id=8238504)

<comment><USER2> I'll respond to you here.

> Just notice how function means something completely different in programming > and math

Try telling Haskell that ;)

> The first thing I think when reading "isomorphic" is "same shape"

There are _actual, mathematical_ isomorphisms extant in Computer Science with applications to programming. The Curry-Howard correspondence gives rise to logic languages (Coq, Agda, Idris), where the programs _are_ proofs.

<comment><USER3> > Try telling Haskell that ;)

That's funny because Haskell has monads, which was firstly a philosophical term but has three different meanings in math and another one in music theory (which is just math too).

You can argue Haskell's monads _are_ monads (in the category theory sense), but I'd argue in Haskell they mean "a way to express types of sequential computation" (they're _one specific case_ of monads).

You know what these have in common? They all allude to "mono", which is an actual word in Greek. Just like iso and morph.

</comment></comment></comment></comment><comment><USER4> No mention of react.js. IMHO it is a perfectly good tool for generating views both client and server side. More details: [http://bensmithett.github.io/going-isomorphic-with- react](http://bensmithett.github.io/going-isomorphic-with-react)

</comment><comment><USER5> Kind of based on an assumption that using JavaScript at all is a good thing. For me the idea is to avoid using it where possible. Can we stop the web monopolisation/locking/despotism and drop specific languages from titles and ideas? How about "Isomorphic Applications that give developers freedom and a choice of language"?

<comment><USER6> Every language sucks. Every language is hated by at least one person (unless it is entirely irrelevant and people who would hate it just ignore it). There is no perfect language and there never will be.

If anything, JS is a better "lowest common denominator" than similar languages because a) every browser already supports it (ask Microsoft (VBScript) or Google (Dart) about the success of replacing JS in the browser) and b) it is a compilation target for various other languages (including Haxe, Dart, Java, Scala, OCaml, Haskell, Go, ClojureScript, LiveScript, Elm, various flavours of Ruby and Python, as well as JVM and LLVM based cross-compilers) -- and thanks to amd.js the generated code can be insanely optimized compared to hand- written JS.

I'm not going to regurgitate the tired "JS is the new Assembly" meme, but with the web still being the shared platform for all (smart) mobile and desktop devices and JS being the only language consistently supported by and easiest to deploy on all of them (via the browser), it certainly has earned its place.

With replacing JS in the browser (i.e. on most devices that have a browser) having failed numerous times (even more if you include plugins like Java, Shockwave, Flash, Gears and Silverlight), it makes sense to try to use JS on the server instead of continuing to try to make the browser use server-side languages.

But regardless of the language, calling for the use of one language (in one flavour) for both the client and the server is _by definition_ a step towards monopolisation. Unless you have a shared compilation target (like asm.js?) you can't have "freedom and a choice of language" when developing isomorphic code.

<comment><USER7> > Every language sucks. Every language [bla]

Oh, another instance of "all languages are equal".

No they are not. Some are better, some are worse.

People who don't want to use JavaScript, try to avoid one of the worst languages out there.

That's all.

<comment><USER6> I'm not saying all languages are equal. In fact, I have a pretty strong opinion when it comes to PHP (and the majority of core developers involved in it until Facebook decided to intervene).

I thought JS was ridiculous crap when I first encountered it in the nineties. Then again, I still thought XHTML 2.0 was a brilliant idea well into the noughties. It took me a journey through PHP, Java, ActionScript (both 2 and 3) and Python (with a short visit to CoffeeScript) to rediscover it and fully appreciate what modern JavaScript has become and what beauty lies therein.

I would love to hear a more detailed explanation of why you think JavaScript is unsalvageably bad, but so far all I hear are baseless assertions.

<comment><USER5> Such beauty: [http://wtfjs.com](http://wtfjs.com)

<comment><USER6> Oh, come on now. Most of these are edge cases of passing in invalid data into functions that try to make sense of it, using discouraged functionality (e.g. not using strict-mode or using obscure parts of the language that are only supported for backwards-compatibility) and the rest shows just a complete lack of understanding of the language.

One of the "WTFs" is `"true" == true` being false. Double-equals comparison being discouraged aside, the only language in which I would expect that to be true is PHP. Another is about `getElementById` -- that's not even about the language, it's about the DOM (which has WTFs of its own right and still would have them if you used a different language in the browser).

If you want a good laugh about JS, I recommend Destroy All Software's infamous WAT talk (which also contains some Ruby).

</comment></comment></comment></comment></comment></comment><comment><USER8> Considering that code which runs client-side is untrusted ,your users could easily change it, how does one deal with security in "isomorphic JavaScript"? Is it just the rendering running on both sides with all business logic remaining on the server?

If so, the main advantage would be that you could combine the responsiveness and speed of a client-side app with the ability to serve static HTML for clients without JavaScript like some search engine bots, right?

<comment><USER9> Right, with isomorphic JavaScript your server isn't trusted either. A good paradigm for this is to have a completely separate API server, which is secure, while the "frontend code" (which might run on either the server or client) isn't trusted.

Also, the benefit of isomorphic JavaScript isn't chiefly for SEO (there are other solutions to that problem, such as PhantomJS), it's in being able to have fast initial pageloads even for rich JS apps.

<comment><USER10> But isn't it a little fake?

e.g. form validation: In the examples i see, the client did not have any validation code, it sends the raw data to the server, which validates and respond to to the client. So the client did not use the same code.

<comment><USER9> > But isn't it a little fake?

What example are you looking at? I think you maybe don't understand how isomorphic apps work...

Take form validation: 1) Your "frontend" code (which runs on both/either client & server) does a quick sanity check, purely for responsiveness. 2) Your API server does actual validation of code.

Of course, your API server isn't running the same code as the client—you can't have the client talking directly to your database, for example. Rather, the idea is that the "frontend" can be rendered on the server & client.

</comment></comment></comment></comment><comment><USER11> React can run both on client and server as well! Would like to see it in the list.

<comment><USER6> To be fair, it works on the server by simply not executing the parts that are meant to be executed after the components have been rendered (which is why you're supposed to do AJAX requests, event listeners and other things in `componentDidMount`).

Not saying that doesn't work, in fact it works very well. It just means your server-side React code can't be async.

<comment><USER6> After watching more about Flux and React: I may have been wrong.

Flux seems to get away with React components being entirely synchronous by offloading all the async parts into the interaction between dispatchers, actions and stores. As the only thing React forces you to keep synchronous is the component code leading up to the rendering, I guess you could just wait for the stores to be ready and loaded before rendering the components.

The more you know.

</comment></comment></comment><comment><USER12> Isomorphic Javascript: for when you've decided that the 1993 Netscape engineers managed to produce the perfect language for programming computers.

<comment><USER6> Ad hominem: for when you can't be bothered to come with an argument for why an idea is flawed.

FWIW, the "1993 Netscape engineers" were mostly Brendan Eich, and JS today has not only improved a lot since 1993 (see ES 6 and 7 -- btw, some popular languages don't even _have_ a spec), but is amongst the most widely deployed languages in the world, with the entire weight of Mozilla, Google and Microsoft behind it.

By your logic C is just a language developed by one guy at a 1970s telephone company.

</comment></comment><comment><USER13> \-- jesus that is horrible

++ jesus that site is horrible

"Isomorphic JavaScript apps are JavaScript applications that can run both client-side and server-side."

like bash, wget (edit: yes I know these arn't javascript, missing the point by roughly 462 miles), etc? hmm, maybe I'm missing something here, oh look, a [learn more]([http://isomorphic.net/javascript](http://isomorphic.net/javascript)) link, which says...

"Isomorphic JavaScript. JavaScript applications that can run both client-side and server-side." and a little meaningless venn diagram

...

so I need to go down to "Why isoblah", follow the link to a random article about the latest tech craze

"At the end of the day, we really want a hybrid of the new and old approaches: we want to serve fully-formed HTML from the server for performance and SEO, but we want the speed and flexibility of client-side application logic."

oh, so, "HTML pre-rendering"? or, "like twitter for the past # months"?

\- - -

making a website to introduce people to a new concept, doesn't work if its aimed at people who are already knowledgeable about said concept.

not like this matters, this website seems more... "lets drop a copy of bootstrap and knock something together quickly and we might be able to capitalize on this craze", judging by the lack of any actual content (no blog, no jobs listing, links for both, the blog of the copyright holder has a blog consisting of "hello world", and who's portfolio consists of 20 broken websites, all of which look exactly the same)

<comment><USER9> Actually, it's your comment that's horrible.

> like bash, wget, etc

What? In what world is bash a JavaScript application that can run both client- side and server-side?

The tagline is direct and obvious. What part of running both client-side and server-side don't you understand?

And yes, it does look like a bit of an MVP, but that's no reason to rip into their efforts.

<comment><USER13> hint: I was referring to the client/server part with those examples

if it must be in JS to satisfy the entire sentence, vtop, any node.js application, etc

> The tagline is direct and obvious. What part of running both client-side and > server-side don't you understand?

going by the examples I gave, the fact that it doesn't clear up any ambiguity one might have over that tag line

my first reading, it seemed like it was talking about any program, written in JS, that could be run on either server or client, which is obviously meaningless. so I decided to look further, something the site itself didn't clear up

it doesn't mention implementation approaches, effects it would have, (well, it mentions the effects (all 2 of them), giving no actual reason for any of it)

what it could of said, "The same application runs on both server and client, along-side one another. By sending pre-rendered HTML, it greatly speeds up initial page load and allows for more accessibility"

like, that takes no effort, and that no-effort wasn't made in the creation of this site

at this point I'm literally re-typing my previous comment so there isn't much point in continuing.

\- - -

I have zero problem with the approach itself, sending HTML is great, per- rendering is great. I have a problem with the site. its only as good as a list of libraries, nothing more

<comment><USER9> > if it must be in JS to satisfy the entire sentence, vtop, any node.js > application, etc

What? "Any node.js application" most definitely _won 't_ successfully run client-side. Similarly, "bash" most definitely won't run client-side. Additionally, most client-side frameworks don't effortlessly work in a DOMless environment.

> that could be run on either server or client, which is obviously meaningless

How is that meaningless? That's literally the _entirety_ of what's important about isomorphic apps: the same codebase can be run client-side and server- side.

<comment><USER13> I'm not typing for personal gratification, I've explained this

> Similarly, "bash" most definitely won't run client-side

what is a terminal, what is linux, what is windows even. you know "client- side" can refer to multiple things, yes? browser, computer, etc

> that could be run on either server or client, which is obviously meaningless

I've mentioned this in relation to my examples given, 3 times now, stop intentionally making this difficult

I can run program A on my computer, I can run program A on a server. this has no value to mention, as such it is a meaningless personal comprehension of the tagline.

if you want me to explain that a 4th time, I'll be glad to

\- - -

you must realize the world exists in /and out/ of the browser, javascript exists outside of the browser and server, Atom comes to mind

<comment><USER9> So, I'm pretty sure you're just being intentionally stupid.

In the context of JavaScript, it should be fairly obvious that the "client" is a web browser.

<comment><USER13> the fact that you couldn't understand me 3 times in a row, should easily prove the fact that misunderstandings / poor explanations can be given

and it wasn't fairly obvious, I work software, not web-dev. using a browser as an application host is something I know of, but I do not spend any time thinking about.

as I said, atom jumps to mind

that being said, I knew that my interpretation was wrong (I actually had to explain that my initial view was wrong, 4 times, to you, my god) so I looked for more information

which is the meat of my complaint, it doesn't provide information

\- - -

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

\- - -

all you have been doing is telling me that my interpretation, which I considered incorrect, is incorrect. I don't know what you are trying to achieve with that

[https://news.ycombinator.com/item?id=8415363](https://news.ycombinator.com/item?id=8415363) "hmm, maybe I'm missing something here"

[https://news.ycombinator.com/item?id=8415420](https://news.ycombinator.com/item?id=8415420) me saying my interpretation was meaningless, and also very specific use of the word "either"

[https://news.ycombinator.com/item?id=8415472](https://news.ycombinator.com/item?id=8415472) me saying my interpretation was meaningless again

and then you finally tell me my interpretation was wrong. I think I know its wrong.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> But will isomorphism die now that Google is capable of indexing the content rendered by JavaScript apps on the browser?

<comment><USER15> Google's ability to indexing content is only part of the story. Google cant link to your content if its not deep link friendly and will rank it poorly if you content loads slowly. Both of which SPA are often bad at delivering.

I demoed how big the performance difference can be at Manning's recent powered by JavaScript conference [https://speakerdeck.com/markuskobler/react-the- importance-of...](https://speakerdeck.com/markuskobler/react-the-importance- of-isomorphic-spa)

</comment></comment><comment><USER16> nice - I was tracking this in the context of my book on Backbone [http://pipefishbook.com/references](http://pipefishbook.com/references) , but isomorphic JavaScript has potential to address programmable devices via the web too, e.g. what if your lamp would speak JavaScript?

<comment><USER8> Why should it? There's not too much a lamp can do besides being switched on and off and maybe changing the brightness and/or color. I guess a REST interface, it not a simpler protocol, would be more than sufficient to control it. Why bother with the power you need to run a JS VM?

<comment><USER16> true, a RESTful API would be enough for state changes. but javascript would help working with events (e.g. for prototyping interactions). this goes a bit in the direction of building robots, e.g where Cylonjs is a nice example [http://cylonjs.com/documentation/guides/what_is_cylon/](http://cylonjs.com/documentation/guides/what_is_cylon/)

</comment></comment></comment><comment><USER17> We should stop saying "isomorphic" because the explanation relies on two orthogonal concepts that ensure that "isomorphic" will only ever be applied to Javascript. That seems possibly self-serving if not only misleading.

The diagram after "learn more" is not one but two concepts. A common backend API for clients and servers is one wholly independent concept. People can do this with any collection of languages and libraries written for clients on all kinds of platforms. It has nothing to do with using the same code on the client and server.

The other concept in the diagram, using client code both in the web application server and on the client because they both use the same run-time is also not particular to javascript, but is anyone holding their breath for Java applets stuffed into mobile Safari? We could do it, but it requires standardization that JS even doesn't ever seem to achieve in practice (where's asm.js on Windows?).

Now, we live in a world with LLVM and nearly every language has some Javascript compiler. Let's write the application server code in Haskell beyond a narrow interface that expects to work with JSON and other abstractions that will "just work" with local storage -or- with a file pulled out of /data/data/my.package.org/files/ (Android). I can't call my Haskell-based implementation of these ideas "isomorphic" because the client and server code is not really in the same language as it has been "transpiled" to javascript for web clients. It's heterogeneous in some senses that the "isomorphic" solution is not.

However, the difference between these two implementations boils down only to which pieces get stubbed and wrapped up in simpler API's. If you go with Haskell and "transpile" to javascript, then the web client has a Javascript stub while mobile clients will have Java and Objective C stubs to talk to respective platforms through narrow API's. The reverse for Javascript everywhere requires web-views for native mobile clients but "just works" on browsers, like our Haskell "transpiled" solution does. There's probably no difference in amount of work to get hello world working in these solutions on all platforms. I can screw with Phonegap just as much as I can screw with LLVM for Android.

Now, does it make sense to say "isomorphic Haskell?" Nobody knows what that means. They will look up "isomorphic" and find it totally outside the lexicon of CS, just like "hyrbid API." While it _feels_ cool to say, "Oh, gee it's a new concept then," the concepts aren't new. Java was supposed to be a run- anywhere program. Separating API servers from application servers and clients has been around likewise for a long time. Think about the history of any legacy system where many clients start hitting a legacy database. There's your fancy "hybrid" API server, but resulting from accretion of ugly years and not cool enough for hipster coding.

In the end, what I'm trying to say is that none of this stuff is particularly new and we should stop wrapping it up in pretentious sounding labels. I don't like to see "isomorphic" because it sounds like Quorra is going to crash through my computer screen on a light cycle and breath strong AI into my microwave's controller board. People who are looking for the appropriate direction may be roped in and then think they are awesome and that everyone else is jealous. This has all the makings of an annoying cult in the long run ^__^;

Let's look in the lexicon of old computer stuff for a COTS label, such as "shared" or "common" to indicate that two non-identical things use the same thing. There is no need to say "hybrid" API. It's a common API server used by clients and application servers. If you understand the concept, the words are interchangeable. Now, for the idea of portable code, well, how about that. Portable is portable.

Our non-pretentious, hypothetical engineer conversation using regular engineering words:

 _" Where does the mobile client get it's data from?" "The same server" "The application server?" "No, both the application server and clients use one backend server. It's a common backend architecture" "So it cuts out a round- trip time for the web client cold loads?" "Yeah, and I'm sure you can see where it saves us time authenticating clients and so on" "How do you make sure all the clients treat the data the same?" "There's some common code in all the clients for unpacking the models from the backend and initializing controllers. The views of course are really client-specific, but we just run a stub in between each view and the portable sections of the client." "But what about web?" "Because the controller and model code are really only dealing with mostly raw data, they're very portable and we just transpile them with Haste." "That all sounds a lot like this 'isomorphic' thing I've been hearing about, but I thought it sounded really pretentious and deliberately esoteric, so I've been avoiding it."_

<comment><USER18> I agree that the term Isomorphic isn't necessarily the best, but I do think it makes sense to have some sort of label that people recognize for the same code that runs in multiple places. Enough people have a sense of what 'Isomorphic JavaScript' means now that the term is likely here to stay until you or someone else starts marketing a different term.

Getting past the terminology, you make a good point about how non-JavaScript languages could technically be seen in the same "isomorphic" light. In my mind, the more valuable thing the higher level concept of writing code once that can be effectively and efficiently used at any layer of your stack.

The reason why I like to do this with JavaScript is that I can do it more effectively and efficiently than what I have seen in other languages.

</comment></comment><comment><USER19> A) code reuse === isomorphic javascript

B) [http://tron.wikia.com/wiki/ISO](http://tron.wikia.com/wiki/ISO) === isomorphic javascript

C) trivial pursuit of a buzz word === isomorphic javascript

D) All of the above.

</comment><comment><USER20> Am I the only one who excitedly clicked on the link thinking it was some sort of library that parsed JavaScript in an isomorphic data structure that could be symbolically evaluated?

</comment><comment><USER18> It is unfortunately that this site doesn't do Isomorphic JavaScript justice because it is actually a very powerful concept and is being more widely adopted than indicated.

First, as far as adoption, some of the other comments mention React, but Ember is also moving toward Isomorphic JS (see [http://tomdale.net/](http://tomdale.net/)). I have been working on something similar for AngularJS.

As far as the benefits or why you would care, there are a few things to keep in mind:

1\. Some commenters mention why bother since Google now indexes content rendered by client side JavaScript. My answer to this in short is that there is a big difference between a search engine indexing content and a search engine ranking a site highly. For at least the near future we have no idea how much search engines actually are able to capture and it would be difficult for search engines to rank client side web apps and server side websites evenly (i.e. due to the massive history and trust with server side rendered websites). This may change over time, but it does not change overnight.

2\. SEO is a benefit of Isomorphic JavaScript, but it is not IMHO the primary benefit. The primary benefit comes from being able to create ultra DRY code with one technology, one overarching framework and one way of thinking. There is a lot of power in using the same code in one file at all layers of your stack. To me, Isomorphic JavaScript not only includes the browser client code and the web server code, but also the API, mobile, batch and all other potential containers. There is so much potential power there when you get rid of all the context switching that usually goes on through your stack.

I think a valid criticism of Isomorphic JavaScript is that in order to implement it the right way it needs to be customized to your environment (which takes time) and ends up creating certain levels of abstraction that can seem like "magic" to newbies. Most of the frameworks that try to implement Isomorphic JavaScript today either aren't complete (i.e. you can't use it for every layer of the stack or you can't adapt it to your environment) and/or it is too complex and confusing for many devs to grok.</comment>


Show HN: New D3.js Tutorial: SVG Text Element - <AUTHOR> http://www.dashingd3js.com/svg-text-element

<comment><AUTHOR> Just added a new section to my D3.js tutorial website. This one covers the SVG Text Element (<text>) and how it can be used with D3.js.</comment>


Android 7.0 Nougat released - <AUTHOR> https://www.android.com/versions/nougat-7-0/ <comment><USER2> > Privacy & Security

> Direct boot: When restarting your device, Direct Boot helps it start up > faster, and ensures that important communications still run. So before you > even put in your password, you'll still get that important text message and > hear your alarm clock ring.

Safety - We added a leprechaun with an axe and hopped him up on some uppers. He sure is fun to watch.

</comment><comment><USER3> This came way earlier than expected. Also interesting they didn't launch the new Nexus lineup at the same time, but are promoting LG V20. Tho that is a good sign, since it indicates the rumours about major OEM's releasing N updates as soon as it's out might be true.

<comment><USER4> It's possible that the new Nexus devices will have exclusive features and Google doesn't want people to be confused.

<comment><USER3> It will - Nexus Launcher will be Nexus only, Allo and Duo preinstalled, new Google Now.</comment></comment></comment>


Life-Changing Lessons I Learned from Paul Graham - <AUTHOR> https://medium.com/swlh/10-life-changing-lessons-i-learned-from-paul-graham-30e7b867437a <comment><AUTHOR> I think pg's best and most valuable bit of advice was "Do things that don't scale".

If I had to ask someone to read one essay by him - this would be the one.

Also - 35 million people read his stuff every month? Impressive!</comment>