Not a Black Chair - <AUTHOR> https://medium.com/@amelielamont/not-a-black-chair-8a8e7e2b9140 <comment><USER3> It sounds like a very dramatic series of events on all accounts. The Guy, Amélie, Kelly, they were all up to weird and bad behaviour. I would say the way she handled things wasn't anywhere near ideal, but that doesn't justify her improper treatment at all. The chair incident is just bizarre.

I would say what went wrong here is that the others weren't fired as well - not that she shouldn't have been. That sounds shitty, but I think the most egregious inequality here is that the others got to stay employed. No one did anything right.

Unfortunately I think this is just tech for you. I've witnessed so much sexism in this industry, I just don't know what to do anymore (besides ask people to stop it).

<comment><USER4> I appreciate that she didn't sugar-coat her own behavior here; drunkenly slapping a coworker at a company event (or even in one's free time) is enough to get you fired at most businesses.

Still, the major theme here seems to be a complete lack of professionalism from all involved (seriously, who tries to set up two new coworkers?) To me that screams "culture problems" coming from the top, not handful of bad apples. When your department is run like a Greek house, don't be surprised when the employees act like frat boys and sorority girls.

</comment></comment><comment><USER5> _She stared at me for a few seconds and remarked, "Oh. I didn't see you. You blended in. You're so black, you blend into the chair." I didn't believe what I was hearing and I didn't know what to do. I looked at my arm, compared it to the chair in front of her._

 _"Nope, my arm is brown and the chair is black," I quipped awkwardly._

 _She replied, "No. They're the same color."_

 _The room was silent._

Yowzers. So is "Kelly" still working at Squarespace? I'm not sure I could take someone seriously as a co-worker - and certainly not as a manger - <USER2> saying something like that in a meeting.

<comment><USER6> Did you see the chair? Did you see the authors skin tone? Are you aware of the lighting in the room they were in? Perhaps Kelly was distracted because she thought she saw the author at the back of the room, or Kelly has poor colour perception.

Given how subjective and variable human sight is, its perfectly reasonable that Kelly may just not have seen her there.

<comment><USER7> \- The chair was black. We know what various black chairs look like.

\- The author's skin tone: [http://amelielamont.com/about/](http://amelielamont.com/about/)

That woman, wearing a blue shirt, isn't someone that I'd reasonably expect to blend into a black chair, even with a room darkened to make a projector more visible and a half-blind manager.

Keep in mind that the author had also spoken up earlier in the meeting, offering to take on another supervisor's project during his vacation.

<comment><USER8> To me, they key point is that "Kelly" did not apologize. If she had honestly failed to notice the author, she would have been mortified of the faux pas, and would have apologized during the meeting or in person soon afterwards. The lack of remorse, even during the later meeting with HR, makes a deliberate racist snub by far the more likely explanation.

That said, there _are_ circumstances where a person with dark skin tone is hard to see. I once came very close to running over a pedestrian with dark pants, dark jacket, dark hat, and dark skin crossing a poorly-lit suburban street on a dark winter's evening; fortunately for both of us, the roadway was dry.

<comment><USER7> > To me, they key point is that "Kelly" did not apologize.

I'll agree. Mistakes can be made in the moment, but they're worse if they aren't corrected after some reflection.

> That said, there are circumstances where a person with dark skin tone is > hard to see.

My wife is darker than the author seems to be, based on her photo. At night, if she's (my wife) wearing dark clothes and comes out of a dark room unexpectedly...well, we'll say that she has startled me a few times. Several circumstances have to come together at the same time for that to happen that I don't usually associate with sitting in a conference room for a meeting, though. So while the statement's true, it's hard to imagine a work situation that it'd apply to.</comment></comment></comment></comment></comment>


Tail Calls, Optimization, and ES6 - <AUTHOR> http://duartes.org/gustavo/blog/post/tail-calls-optimization-es6/ <comment><USER2> It's important to explain why (or when) TCO is important. You could read a dozen articles like this that explain what a tail call is in simple terms and still not know.

The core demographic that cares about TCO is implementers of languages like Scheme, because if you have TCO:

* Loops can be written as recursive functions. In Scheme, you don't write loops, you write functions that re-invoke themselves at the end. This is efficient with TCO and impractical without (because the stack grows with every iteration).

* You can implement continuations. Imagine if every function took an argument "next", and instead of returning it called "next()". Without TCO, the stack would grow and grow, while with TCO, the old stack frame is torn down when you call "next()".

<comment><USER3> in your second example you just described most async javascript, through it tends to be called "callback"

<comment><USER4> Nope, they're completely different.

In OP's second example, each caller function stays on the stack until its next() returns, thus the stack keeps growing in size.

In async functions, the caller is thrown off the stack once it hands off the callback to the event loop. This is why a callback can't return values or throw exceptions.

<comment><USER3> * shouldn't throw exceptions

<comment><USER5> _can 't_ throw exceptions that the caller can catch. If an exception falls in the forest, and there's no one there to catch it…

</comment></comment></comment></comment></comment><comment> mck- Trampolining is a technique to achieve Tail-call Elimination in ES5 [1]

However, I found this to only work in a linearly recursive algorithm (eg factorial) and not in a bi-directional recursive algorithm (eg tree construction)

I'm thinking TCO in ES6 might solve this problem? Anyone tried?

[1] [http://raganwald.com/2013/03/28/trampolines-in- javascript.ht...](http://raganwald.com/2013/03/28/trampolines-in- javascript.html)

<comment><USER6> Another problem with trampolining in ES5 is that it produces GC pressure; not particularly ideal. TCO in future versions of JavaScript should be a big win, if only in that area.

<comment><USER7> I blogged about the advantages/disadvantages of trampolines in JavaScript a while back. See [http://taylodl.wordpress.com/2013/06/07/functional- javascrip...](http://taylodl.wordpress.com/2013/06/07/functional-javascript- tail-call-optimization-and-trampolines/).

I'm preparing to analyze TCO in ES6. I'll do a write up of my analysis.

</comment></comment></comment><comment><USER8> If you write ruby and want TCO put this at the top of your .rb file:

        RubyVM::InstructionSequence.compile_option = {
          :tailcall_optimization => true,
          :trace_instruction => false
        }

<comment><USER9> Why is it optional? What is the benefit of having it disabled by default if there is a decent implementation?

<comment><USER10> They disabled it for error reporting/debugging reasons. Because you don't need to create a new stack frame, you eliminate that information in the backtrace.

<comment><USER11> I've seen at least one paper that shows a way to fix this... hm.

</comment></comment></comment></comment><comment><USER12> This is absolutely the best news I've had all day. I've been a fierce advocate of proper tail calling since 1999, and I'm incredibly happy to see it gaining traction outside of niche functional languages like Racket. Many, many, many thanks to dherman and jorendorff and all of the others who made this happen.

Now, off to brag about this to my PL class!

</comment><comment><USER13> A tail call is basically goto with arguments. You can use it to build arbitrary extensible state machines.

Like a goto, it's useful but potentially confusing. You shouldn't use it when a more structured loop construct will work.

<comment><USER14> In FP loops are typically frowned upon and then the tail call is presented as an elegant solution, because it can be optimized into a loop but still look like a function call with all the goodies a function call normally gives you, minus the new stack frame.

I'm really not convinced of this, it _looks_ like a function call but it _is_ a loop. If it is a loop under the hood then I'd like to see that loop, in my mind I always see this 'stackoverflow' neon sign hover over every tail call (of course it doesn't but years of debugging stuff have ingrained all kinds of interesting detection habits).

Making it look like a loop would introduce all kinds of syntactical complexity, and suddenly you'd be re-using your local variables. So that's not a solution either. But it feels a bit like a kludge.

<comment><USER15> I'm not so sure that in FP communities recursive call based algorithms are thought of as elegant solution; rather higher abstractions are desirable (e.g. map, filter, fold, etc)

<comment><USER16> How do you implement map without tco or loops?(I'm not saying this is impossible just that I can't think of a way to do it of the top of my head)

<comment><USER17> Basically you want to always use the least powerful tool you can to solve a problem. When applicable, map is better than foldl not because it's more concise, but because it tells the reader that the result is a list of the same length of the input, and the elements of the input are processed independently. Similarly, foldl is better than raw recursion because it tells the reader that every element in the input list is being processed in order, rather than potentially anything happening.

There's nothing wrong with using the more powerful tools when you need them (such as when implementing the more restricted tools). It's just that needing them frequently is a sign that you're doing weird things and should take a second look at your design to make sure there isn't a better way to do things.

</comment></comment></comment></comment></comment><comment><USER18> So ClojureScript will get TCO before Clojure? (JavaScript would get this before Java) Interesting times we live in.

<comment><USER19> Well, Java does have TCO already, just depending on the JVM you're using. J9 supports it, just not HotSpot.

[http://stackmonthly.com/2010/9/tail-call- optimization](http://stackmonthly.com/2010/9/tail-call-optimization)

</comment></comment><comment><USER20> How will the affect the debugging of stack frames in javascript programs that utilize TCO?

<comment><USER21> Scheme implementations have had to deal with this problem for a long time. (Of course, one can argue that languages with ordinary while loops have a similar problem, in that value of previous iterations of the loop get overwritten by later iterations).

You can alleviate it by hanging on to stack frames for a while. Scheme48 heap- allocates stack frames, and then relies on garbage collection to reclaim space from tail-calls, so this happens automatically. And MIT Scheme uses a ring- buffer to keep around the last 10-or-so frames. (Actually it is even nicer than that: it uses ringbuffer-of-ringbuffers to keep 10-or-so frames from each of the last 10-or-so non-tail recursive calls. So when debugging you can pop up the call stack, and then at each level examine the last couple interations of the loops done at that level).

</comment></comment><comment><USER22> ...And then there's Python.

(Although, amusingly enough, you can actually hack TCO into Python via decorator weirdness)

<comment><USER23> Not TCO. Tail recursion can be optimized, though. See this[1] discussion at LtU.

I wish GvR would let TCO through. With TCO, Coffeescript or Clojurescript might become new favorites.

1\. [http://lambda-the-ultimate.org/node/1331](http://lambda-the- ultimate.org/node/1331)</comment></comment>


Peninsula database vendors (startups) try to slay Goliaths - <AUTHOR> http://sanfrancisco.bizjournals.com/sanfrancisco/stories/2009/09/28/story14.html

<comment><AUTHOR> 19 job openings at Aster and 5 at Greenplum, Wow! Good bye recession!</comment>


Ask HN: Is December supposed to be a good sales month? - <AUTHOR>

Our sales and traffic have been slow in December so far (and I can only imagine that they will get worse), but we cannot trace it to any particular factor, other than December is the holiday season, and B2B SaaS products like ours don't get bought when people are thinking about vacations and family time.<p>Anyone has any input on this matter? Or should we be worried? <comment><USER2> At past b2b software and services companies - my experience is a noticeable drop in 'kicking the tires' inbound traffic. For the reasons mentioned, December is not the month people typically start investigating solutions, asking for information, or starting trials. (Many companies hold non-critical hiring until Jan for similar reasons)

Two bright spots to focus on:

1\. Any inquiries right now are 'buyers' (like people that visit a car dealership in the rain). Pay extra attention to inbound inquiries this month, they have a pressing need and may be able to convert to sale quickly.

2\. Good time to close on existing prospects - offer extra end of year incentive to any folks on the cusp of closing, in some cases as mentioned they have budget to spend or lose, in other cases, you just need to make it worth their while to spend time on you this month rather than next. Don't over-sell, just a get the offer out, wish happy holidays, and either close or move on.

</comment><comment><USER3> It can be in B2B. Most people at larger companies have to spend their budgets or risk losing it so you will often see people making any purchases now they project they will need in the next 6 months. Also for small businesses like mine I prepay for my SaaS products and buy any new equipment I need for tax purposes. Make sure that you allow customers to prepay for your product.

</comment><comment><USER4> I don't think people are eager to make business decisions like that in the last few days before Christmas.

Obviously retail should be booming this time of year but for for B2B, people will always say "we'll consider it in the new year"

<comment><USER5> It depends. I know my previous company, I was able to get a $3k license for some software I wouldn't normally get because it was the last week of the calendar year and if the department didn't spend their budget, they would get less next year. I would assume situations like that are fairly common, although it would also mean a lot of sales for B2B would come towards the end of December.</comment></comment>


COBOL Leads Us Back to the Future (2015) - <AUTHOR> http://www.informationweek.com/software/enterprise-applications/cobol-leads-us-back-to-the-future/d/d-id/1320963 <comment><USER2> A discussion I've often had, that old technologies never disappear altogether, there's always an interest, revivals inevitably occur especially among the younger generations to whom the old stuff is new.

Not too long ago I overheard a conversation among a group of college-age artists chattering about the merits of silver-based vs. digital photography. Basically, in their eyes digital was old hat, the familiar way to make images while film photography was intriguing, exotic by comparison.

Of course as a genuine old guy I found their view amusing but refreshing. Having used film, and spending way too many hours in stuffy darkrooms I knew all about the subject. It was fun to talk a bit with a few of the students, but I understood they wouldn't hear it from me. No, they'll have to learn for themselves about the merits and tradeoffs of the old ways vs. the contemporary.

In programming as in all other arts, it's good once in a while to revisit the trails our forbears traversed. We should all travel there as part of an education, it gives us a greater appreciation of what we have now. And sometimes even us old hands will have the urge to revisit the dusty past, though likely choose not to linger there.

Once in a while we should touch ancestral ground, it's a worthy ritual to honor our ancient heritage, lest we forget how far we've come.

<comment> vezzy-fnord Computing actually has a very chaotic evolution compared to other fields. Where most can be seen as linear progressions, computing is heavily prone to stasis and regressions.

Revisiting ancestral ground in programming actually makes you think how little we've come, not how far.

<comment><USER3> Although my self-teaching of programming began in Python it ended up veering through Racket and Smalltalk. I almost regret learning Smalltalk after experiencing what a joy it is to program in. Writing a webapp in Seaside, with all of its great features for live inspection and debugging, and then experiencing Django and Node was an eye opener.

</comment></comment></comment><comment><USER4> >> The next reason is readability. COBOL is known as a "verbose" language, especially when it's compared to a very terse language like C++. From a debugging standpoint, COBOL can be like reading a novel: In fact, I'd almost bet that, with a few variables thrown in, you could get arbitrary chapters from Game of Thrones to compile. Of course, all your favorite functions would die depressing, lonely deaths, but still…

In a way, this verbosity of which he speaks is the antithesis to the current 'Learn to Code' fad. And COBOL is a perfect example of a language that was intended to be so easy and intuitive to read and write, business people could do it (as it was promoted in the early years). COBOL has sections, paragraphs, and sentences, verbs and variables are nouns. Control flow is either via goto or 'perform'ing paragraphs or sections.

Awesome in theory, for simple programs, the idea that anyone can write/read it may even be true. But the devil has always been in the details. Logic in the perform/goto world quickly spirals out of control/comprehension, and for any non trivial COBOL application, there are multitudes of programs, flat files, indexed files, etc.

Not to mention the complexity of batch cobol (if you haven't lived the horror of mainframe JCL, I envy you) and wiring together green screens in the CICS environment are all very involved, the definition of platform specific.

>>The first reason is employability. As noted, there are still plenty of companies running applications built on COBOL. And not all of those applications are archaic: Since 2002, COBOL has had an object-oriented framework.

And most of them have off shored most or all of their development. One prominent local employer of COBOL programmers has a skeleton crew of COBOL developers after once employing thousands. Additionally, I'd have to see some stats that anyone has upgraded to the 2002 standard to believe anyone is actually using object oriented COBOL in production.

Having said all that, COBOL was designed in a time of scarce resources and does make excellent use of system resources. COBOL is close to the metal in a way that C is not; COBOL is more like verbose assembler than C. In COBOL all storage is statically allocated (memory allocation is possible, but not typical), and there is no call stack. This mean COBOL programs never experience stack overflow exceptions, out of memory errors, buffer overflows. Characteristics that make it 'safe' from a security and multi tenancy perspective.

<comment><USER5> I was in college when the object-oriented COBOL standard was released -- my software engineering professor at the time mentioned it in class one day and made the (obvious) joke that it should have been called "ADD 1 TO COBOL."

<comment><USER6> The next step is obviously 'functional COBOL'.

</comment></comment></comment><comment><USER7> It's funny and actually quite important that the title actually says that this is a current article!

</comment><comment><USER8> Oh my, there's even COBOL for iOS! I might have to erect a shrine for the spirit of Grace Hopper after all.

I'm always looking out for an implementation of language X on iOS, and COBOL is not what I expected to materialise there :) Still, it might be fun to play around with — you can never know too much and I'm curious as to how compiler output looks like (though I probably won't see that on iOS).

</comment><comment><USER9> Disappointingly fails to link to [http://www.coboloncogs.org/INDEX.HTM](http://www.coboloncogs.org/INDEX.HTM) which frankly is about as credible as the idea that COBOL might be "just hitting its prime". Nothing in the article or anything it links to offers any support for that.

</comment><comment><USER10> Not that I don't think it sucks but use it myself judiciously when necessary, but where is PHP in IEEE's language popularity index? Is it really not in the top 20, less popular that COBOL and Processing? Or does IEEE just not consider PHP a programming language?

</comment><comment><USER11> What's the daily consulting fee range for COBOL? Would there be a monetary merit to learn it, relative to other "Enterprise Languages" such as Java or C#?

<comment><USER12> Most production COBOL programs run on IBM compatible mainframes so you'd also need to get a handle on developing in MVS aka "z/OS" and how to hack JCL config scripts--the horror! That's difficult to do without getting hands-on experience.

As someone whose first job out of uni almost 20 years ago was in a mainframe environment, I have no desire whatsoever to go back to it and would _strongly_ recommend against working in COBOL if you can make a living using tech that was developed in the last 40 years.

<comment><USER13> Also, nobody calls it the "mainframe". It's the "host environment". It took me a couple of weeks on my current project to work out why my new colleagues were so reluctant to modify the customer re-contact batch process - "oh, that's on the host environment!".

</comment></comment></comment><comment><USER14> 1 of 7 pages am I reading this right?

<comment><USER8> Yep. There is even a page turn button, no doubt programmed in COBOL.

<comment><USER15> Or at least CobolScript. [https://github.com/ajlopez/CobolScript](https://github.com/ajlopez/CobolScript)</comment></comment></comment>


Simpler cloud services try to undercut the established giants - <AUTHOR> http://www.bloomberg.com/news/articles/2015-10-08/cloud-computing-finally-gets-some-startups <comment><USER2> "The startups have managed to underbid the giants in certain markets by keeping expenses relatively low, either by writing their own versions of the software needed to run a cloud or by handcrafting the hardware needed to house one."

It's funny to see a description of _the exact opposite of your own strategy_ put to print.

We[1] are overbidding "the giants" by providing personal support and allowing people to use their own tools and writing nothing that's non-standard or provider-specific.

Yes, we do build and own our own infrastructure (of course) so perhaps that's a commonality. Honestly, we never even referred to what we do as "cloud storage" or "cloud anything" until two years ago...

[1] You know who we are.

</comment><comment><USER3> The reason why most cloud services seem to work is because of economies of scale. Google compute engine will only ever represent a small percentage of their total server utilization, and all they've learned in serving Google.com, and such enables them to serve GCE better.

Backblaze had their backup business that enabled them to figure out storage, and buy a ton of it. DigitalOcean is really a Linode competitor. Not really a EC2 / GCE competitor. I wouldn't call it "cloud."

<comment> ju-st Why do you think so? Why would cloud services work worse without economies of scale?

<comment><USER4> For virtual machines, whether economies of scale are important depends on whether you define cloud based on minimum time units - hourly or minute increments - or in service expectation - the provider doesn't work particularly hard to keep your machine up on a given server but it's automatically brought back up when the underlying hardware has a failure. If you define it based on minimum time of compute, this means having enough spare capacity to handle highly variable demand and the resources to absorb the costs of having the hardware sit idle.

If you own your own datacenter and there are physical machines, you can turn off the power and not pay for it so as long as the initial investment is paid off, it doesn't hurt too much financially. Without your own data center, the cost is fixed regardless of whether the servers are in use or not which is why we (prgmr.com) do not plan to offer hourly pricing any time in the foreseeable future. Someone with a larger user base is also going to be able to negotiate better rates such that idle machines do not hurt as much.

DO is currently "cloud" based on pricing and not necessarily how it globally provides service, as at least some subset of VMs are subject to routine maintenance or downtime. But to bring up a server almost immediately on another machine if one has a hardware failure is a more tractable problem and it is a service we eventually intend to offer. Xen has a feature called remus [http://wiki.xen.org/wiki/Remus](http://wiki.xen.org/wiki/Remus) which effectively does continual live migration which would be pretty cool to implement, though support on Linux is not mainstreamed yet.

<comment> ju-st I see. But I'm not convinced, let me explain why:

\- Until proven otherwise I assume that the demand for VMs in clouds follows the general "internet load curve" (peak demand = 1.5x avg demand; plateau during the day; peak at 19:00). With the normal monthly billing you just see the variable load on the host node, and the server must have spare capacity to handle the peak load. With hourly billing, the peak load will not vary, only the fact that your customers spin down VMs on non-peak times.

So basically my point is that hourly vs monthly billing doesn't change anything demand/load-wise. The only difference is the billing; you basically have to recoup your lost revenue from the non-peak times by generally higher hourly pricing.

\- If you colocate your (few) servers you can also shut them down to save energy. _If_ you have a contract with usage based power bills.

</comment></comment></comment></comment><comment><USER5> I wonder whether this article was initiated by a PR department from either DigitalOcean or Blackhaze, which are the only two providers mentionned. I does talk about a new trend, but it brings little new facts.

<comment><USER6> Hiya - I wrote the article, it wasn't from PR. As far as I know the supplier stuff, revenue numbers, signup numbers, are new.

</comment></comment><comment><USER7> > Four-year-old DigitalOcean now has more host computers in its cloud (almost > 200,000) than any other company but Amazon (which has about twice that), > says researcher Netcraft.

As someone who works on an IaaS offering, I'm really curious how Netcraft is doing this estimation. As a curiosity, I also wonder what they estimate our count of 'host computers' at.

However, it's also a meaningless number, given that VMs are sold in terms of (mostly) cores and RAM. If you're buying an 8 core VM with 16 GB of RAM, do you care if the physical host has 8, 16, 32, or 64 cores? Probably not (and you shouldn't). Those eight cores perform however they perform; you won't know unless you benchmark them, and you won't know what your variance is in prod unless you collect continuous metrics.

<comment><USER8> This is a good 2012 article about estimating AWS size [1]

[1] [https://huanliu.wordpress.com/2012/03/13/amazon-data- center-...](https://huanliu.wordpress.com/2012/03/13/amazon-data-center-size/)

<comment><USER7> The IP probing is an interesting methodology, although it would not work for GCE as VM IPs are entirely virtualized[0]. That said, the methodology's biggest flaws (even with AWS as I see it) are that they don't know the machine-count of individual racks (and this number can vary more than you might expect) and, more importantly, they don't know the sizing on individual hosts.

Putting my original point differently: DigitalOcean may be big or small, but counting physical hosts is a terrible way to estimate its size. Better would be to count available cores and RAM, but of course those are much harder numbers to pin down as cloud providers tend to go to some lengths to abstract away the details of physical hosts.

[0]: Supporting live migration for individual VMs mostly necessitates that the IPs within a virtual network be meaningless w.r.t. the physical host locations -- also GCE advertises a /32 subnet via DHCP and requests the guest route all packets to their 'gateway'. Handling actual routing (to avoid a needless extra hop) is done via the Andromeda SDN.

<comment><USER9> Netcraft have a somewhat vague article on their methodology on their site eg.

>By arranging for a number of IP addresses to send packets to us near simultaneously, low level TCP/IP characteristics can be used to work out, within an error margin, if those packets originate from the same computer, by checking for similarities in a number of TCP/IP protocol header fields. To build up sufficient certainty that IP addresses on the same computer have been identified, many visits to the sites in the Web Server Survey are necessary, which takes place during a period of over a month.

>Informal checking with two of the largest dedicated server companies suggests that the survey counts about 2⁄3 – 3⁄4 of the machines in their datacenters.

[http://www.netcraft.com/internet-data-mining/hosting- provide...](http://www.netcraft.com/internet-data-mining/hosting-provider- server-count/)

<comment><USER10> And because DigitalOcean doesn't have load balancing as a service, people generally just expose their Droplet to the internet as their website. Netcraft's methodology works fine here, likely misses or undercounts Droplets behind nginx/HAproxy and is wildly off for people behind load balancers like Google's Load Balancer Or AWS's ELB.

Disclaimer: I work on Compute Engine, but I also knew plenty of people at DigitalOcean.

</comment></comment></comment></comment></comment><comment><USER11> "Four-year-old DigitalOcean now has more host computers in its cloud (almost 200,000) than any other company but Amazon (which has about twice that), says researcher Netcraft."

I am not seeing how netcraft can distinguish between a VPS and a host computer by the way they crawl the web.</comment>


Underwater Kites Can Harness Ocean Currents to Create Clean Energy - <AUTHOR> http://blogs.smithsonianmag.com/smartnews/2013/11/underwater-kites-can-harness-ocean-currents-to-create-clean-energy/

<comment><USER2> This quote:

      "It has been estimated that the potential power from the
      Florida Current, which flows from the Gulf of Mexico into
      the Atlantic Ocean, is 20 gigawatts—equivalent to about 10
      nuclear power plants," mechanical engineer David Olinger.

The scale of human industry is currently around 16 terawatts, so something on the scale of 20 gigawatts is a drop in the bucket. The solution to all of our energy needs this is not. That said, sure, deploy as many underwater kites as you profitably can without adversely affecting the environment; every little bit of power we generate renewably helps.

<comment><USER3> I'd be really amazed if this doesn't disrupt the environment - im just thinking of all those fish that will get affected - there's probably more effects in terms of how it affects currents and so on (if a large amount of these kites is put in a single area). Already you hear of wind turbines killing birds, affecting winds etc.

<comment><USER4> The UK and Ireland would be so pissed if we killed that current...so pissed...and so, so cold...

</comment></comment></comment><comment><USER5> I wonder what the unintended consequences of taking energy out of such currents would be to ocean wild life.

<comment><USER6> "The SeaGen S system at Strangford Lough was subject to a rigorous 3-year Environmental Monitoring Programme. The studies concluded that installation and operation of the SeaGen system, together with the mitigation put in place, has not had a significant impact on marine life at the site."

You can view the report here: [http://www.marineturbines.com/sites/default/files/SeaGen- Env...](http://www.marineturbines.com/sites/default/files/SeaGen- Environmental-Monitoring-Programme-Final-Report.pdf)

<comment><USER7> Yes, the potential and kinetic energy of the oceans is an amazing source of energy.

I hope a 'rigorous 3 year' testing program is sufficient to justify a large scale deployment of these platforms in different habitats. They do mention that 'a few' of the metrics monitored showed naturally highly variable and lacked the statistical power to confindently rule out undetected changes. Also, I have the impression that they just checked the deployment of one platform?

Did they also publish the data somewhere?

</comment></comment></comment><comment><USER8> There's also 40South Energy in this space: [http://www.40southenergy.com/wave- energy-converters/the-tech...](http://www.40southenergy.com/wave-energy- converters/the-technology/) (its founder was my linear algebra teacher).

</comment><comment><USER9> More, uhm, sophisticated designs are already in deployment:

[http://www.marineturbines.com/](http://www.marineturbines.com/)

<comment><USER10> I kinda like the underwater Enterprise fleet!

</comment></comment><comment><USER11> A physics puzzle: underwater turbines can generate energy from tides that are mostly the effect of the Moon movement. Energy can not be created (energy generated by the turbines needed to be lost somewhere). How the energy lost manifests itself in this system?

<comment><USER12> I do know that orbits gradually decay - maybe that is the 'energy reserve' we would be drawing down.

[http://en.wikipedia.org/wiki/Gravitational_wave#Orbital_deca...](http://en.wikipedia.org/wiki/Gravitational_wave#Orbital_decay_from_gravitational_radiation)</comment></comment>


Show HN: Send a text message, get your friends' location back - <AUTHOR> http://tehula.com

<comment><AUTHOR> Hi fellow HNers, I'm releasing to the public my first iPhone app today. I'm right here to answer any of your questions!

I'm giving out a few promo codes, send me an email at firstname.lastname@example.com, the first 5 will get the app for free.

</comment><comment><USER2> this is interesting. I've been developping something _very_ similar just for the last couple days. there seems to be some kind of a rush in that direction lately, with the widespread implementation of browsers geolocation api.

my version: <http://news.ycombinator.com/item?id=4248056>

</comment><comment><USER3> Looks cool, unfortunately I've no iOS device to test it on.

How does it work? I'm guessing the recipient has to open a link?

<comment><AUTHOR> Yes that's it: we add a unique link to the text message, the recipient then visits the page and share his location, and we then notify the sender.

<comment><USER3> Cool! I love tools like google latitude but unfortunately my friends aren't all geeks who know how to use it. This solves that problem completely, well done!

Hope you release an Android version at some point!

edit: just realised there was a slideshow explaining that on the site, in my defence it's 2am and I'm a little sleepy!

<comment><AUTHOR> There are plans for an Android version in the future, although there are still a few features I want to add to the iOS version before that.

</comment></comment></comment></comment><comment><USER4> is the location accurate? ive seen other apps like this but it was always not accurate. i believe it's because the link opens up a browser, which uses html5 geolocate that doesn't really use GPS but surrounding wifis?

<comment><AUTHOR> The location is pretty accurate. Instead of using getCurrentPosition, we actually use watchPosition + enableHighAccuracy to gather location for a few seconds before pushing it to our server.

</comment></comment><comment><USER5> Why wouldn't I just use Google Latitude? It has 'Ping for location' support too.

<comment><AUTHOR> Because with Google Latitude your friend needs to have the app themselves and there is some setup needed on there part.

<comment><USER5> I guess. On Android, the app is part of Google Maps, all they need to do is click the "join Latitude" button. Not only that, but they can enable real time updates/etc.

I'm not saying this isn't a neat idea though.

</comment></comment></comment><comment><USER6> Here's what you have to sell users on: Is it worth paying 99 cents to install a new app (that fits somewhere in their app list) just to get someone's location? How often when you text someone do you need their location, and is it enough to create the habit of using this?

Keep in mind that many location-based questions don't require geocoding. Like, we've agreed to meet at Joe's Bar and I want to know if they're there or still eating dinner at the restaurant...I don't need to see it on a map.

Moreover, the user receiving this message will have to trust this new site they've never heard about. some users will click through but there will be plenty of users who have been twitter-phished and be inherently distrustful. The sender can put in more effort into the message, i.e. "Hey, this is Jon, I'm using this app to geolocate you so just click through" but by then, you've lost a bit of the convenience factor.

<comment><AUTHOR> Great comments, thanks.

First, about the cost. I chose to charge 99 cents basically to ensure that the services keeps running: I wouldn't want to shut it down just because it becomes too popular. Next, after doing some market research, it turns out that one of the major uses of cell phones is exactly to ask people where they are, which can be inconvenient when the recipient does not really no.

Sure, some cases do not require exact geolocation, but where you are meeting someone in a large/crowded area it is useful. Another feature we will be implementing in a next version is to provide directions to go where your friend is.

Finally, yes I agree that trust is important. But I believe that this issue is not as drastic as you say since the text originates from the sender — his phone number.</comment></comment>


Ask HN: Generate commerical license key for web service - <AUTHOR>

A number of web sites offer software as a service for various APIs. A good example is Google's Custom Search API. The process to use web services typically resembles:
1. Account. User creates an account.
2. Server. User defines the IP address(es) of the server(s) that will make API requests.
3. Key. User receives a public API key for the desired API(s).
4. Guide. User is given documentation that shows how to use the API key to make a request.
5. Test. User can make test requests to verify integration functionality.
6. Billing. User pays to activate the account.
7. Production. User integrates the web service into their applications.
8. Deactivation. System deactivates accounts when expired, exceeds request limit, etc.
That is a lot of work for a small business.
What off-the-shelf, open source projects address this problem?
If there are no such projects, what would you do to architect a viable, low-cost solution (ideally, a percentage of each license)? That is, what software or existing commercial services would you use for a small business (having little to no income) that seeks to license web-based services? <comment><USER2> Off top of head, hope it helps.

Accounts - <https://www.dailycred.com/> Docs - <http://saaspose.com/> Billing - <http://www.stripe.com/>

<comment><AUTHOR> Thank you. I've also looked at:

\- <http://www.agilis-sw.com/ActivationLandingPage.htm>

\- <http://www.mashery.com/product/features/api-packager></comment></comment>


Too poor to retire, too young to die (2016) - <AUTHOR> http://graphics.latimes.com/retirement-nomads/ <comment><USER2> > But there is little money to see the sights. She earns too much to receive > food stamps, and a lot of it goes to groceries. She tries to eat organic > food, with her low blood sugar. That rules out cheap but filling Big Macs — > as well as the food kitchens whose mass-produced meals, she decided, are > unhealthful.

Why do newspapers use as examples people who seem to have done everything wrong? Is it because formerly middle class people are somehow more relatable to the readers of the LA Times than people who never had much of a chance to begin with? What about the poor elderly who never went to business school or were born in an area with few opportunities?

This lady gets almost $17,000 a year in pension and social security, which puts her just outside the bottom 1/5 of the income distribution. She's presumably eligible for Medicare. In a rural town it would be enough for a decent living.

<comment><USER3> > _In a rural town it would be enough for a decent living._

It most certainly would not be. Survivable? Probably. Decent? Absolutely not.

And Medicare recipients still have out of pocket requirements, that's the whole reason Medicare supplement insurance exists. The average out of pocket expense for Medicare recipients in 2014 was over $4,000.

Tell someone making $1,400 a _month_ they need to budget $350 a month for health care.

<comment><USER2> You can buy a 5BR house in Sibley IA (downtown, walkable to the grocery store and general store) for $330/month in mortgage. Add $350 in health care and you've still got $700 per month. Tight, yes, but definitely decent.

<comment><USER4> $700 to cover food, (gas, car insurance - probably a requirement in Iowa to do more than go to the stores), entertainment, a house repair fund, clothing, electricity/gas/water/sewer/garbage... That $700 is going to be stretched pretty damned thin.

And that's assuming that insurance covers everything health related (it probably doesn't).

<comment><USER2> Instead of splitting hairs on hypothetical budgets, let's look at it another way. The median HHI is $43,000 and the median household size is about 2.7. (And remember, that is taxed while her SS and pension likely are not.) $17,000 as an individual living alone with no dependents probably puts her at the bottom of the middle 1/3\. Middle third in Sibley isn't just barely surviving. It's a decent life.

</comment></comment></comment></comment></comment><comment><USER5> Both of my parents are in this situation, and it's only exacerbated by the fact that my mom had to retire due to spinal surgery and my dad has a bad hip injury that he refuses to get surgery for because he fears missing rent. Despite my willingness to help with the rent and bills I can only provide so much as I live in a high COL area as well.

The next 15-20 years are going to be very, very tough for older Americans.

<comment><USER6> _" I can only provide so much as I live in a high COL area as well"_

Why are your parents living in a high cost-of-living area?

Wouldn't it make sense for them to move somewhere they could better afford?

<comment><USER5> They could, absolutely. My mother has always dreamed of buying a house in Florida for instance but that would be impossible with their finances.

Both of my parents are immigrants from a small country, they immigrated to NYC because it's one of the few cities in America where other folks from our country settled. Moving would undoubtedly allow them to ease up on rent and cost of living, but it would also move them away from other family members, long time friends, church community, etc.

As mentioned, both are very sedentary due to injury despite the fact that my dad works a grueling job, if they moved away from the community that has supported them for ~30 years I could only see their quality of life worsening.

</comment></comment></comment><comment><USER7> > That rules out cheap but filling Big Macs

Big Macs are neither cheap nor filling. Fast food is extremely expensive. Anyone who's ever been poor and collected enough to escape poverty understands this. Americans, as parroted by this journalist, don't know what poverty is. How is it that you have 17,000 dollars per year and still struggle to survive? If you're poor and eat fast food and keep your home stocked with disposable utensils: you're hopeless, you're going to be poor forever.

If you're poor you can't eat fast food if you want to stop being poor. You can afford dried lentils. Dried beans. Meat when it's on sale. Apples when they're 79 cents/lb or when you can get them for free. Americans just don't know how to live without getting owned by the man. "Poor" Americans are overwhelmingly people who don't understand home economics and how not to give all their money to rich people. They make one bad decision after the next. It's a cultural problem driven by the absense of local community, support structure and values.

What's happened in the past hundred years is that capitalists have played divide and conquer with cultural systems to make people increasingly alone and isolated from one another, less economically viable and increasingly helpless. Cooking—a thing that every person on earth could do for nearly every meal they consumed–became a thing that's difficult. Cooking: Don't Try This at Home. It's simple: Capitalism doesn't value consumer empowerment. It values consumer servitude. Instead of being raised by grandparents and community members, American children are raised in daycare. Instead of grandparents helping with cooking, working Americans are tasked with preparing food for the family, a task that is impossible. Things you could rely on from family and community are things today you have to get from corporations. We replaced family and community with government and corporations and this is what we got: A culture that says Big Macs are cheap and writes so as a matter of fact in the local newspaper of record.

<comment><USER4> Big macs provide about ~600 calories and 25g of protein for $4. The whole meal is over 1000 calories for $6. It's hard to beat in terms of speed or price. Nutrition? Yeah, pretty low (though it's a good source of iron and Vitamin A).

Sure, I could make a meal with more calories for a little cheaper... but at a high up-front cost in money, and an prep/cook cost in time.

<comment><USER7> Big Macs are shit salty food that doesn't make you full and spikes your glycemic load so you're hungry again in 30 minutes.

The American idea that poor people get to organize their time the same way that non poor people get to organize their time is near the core of the problem. The argument that eating fast food saves you time is deeply troublesome because poor people, while disadvantaged in many ways like having to use public transit or not having transit, generally have the lowest premium on time because their time is worthless.

<comment><USER4> Where else can I spend $6, and have 1000+ calories available to me the next minute?

Assume I don't have prep time, because I'm not at home, or because I'm already late for my second job in an attempt to provide for myself at minimum wages.

A lot of folks don't have the time or energy to stock up for, prepare and cook proper meals, whether rich, poor, or somewhere in between. Call it a tragedy of the modern times.

<comment><USER8> Tuna sandwich -- half can tuna, mayo, relish, bread, cheese, 360 calories for about $1.02. Prices and calories derived from serving sizes on the various product labels, looking up the products on walmart.com. Takes about a minute to mix the ingredients together and make a few sandwiches.

Can also bake a potato in the microwave, throw some butter, sour cream, shredded cheese, and seasoning on them. Baked potatoes (or skillet fried, etc) make fairly cheap meals.

Pasta is something that is cheap and easy to make, for time management purposes, boil it while you are taking a shower in the morning. Throw it (along with some tomato sauce) in a ziplock baggie in the morning, take it with you for lunch.

I realize that time is limited esp. if you are working 80 hour weeks at minimum wage. And then there is the time it takes to stop by walmart to pick up the ingredients. However many people that I know that complain about lack of time also spend quite a bit on either watching TV, or taking smoke breaks, or other things that would be better spent on meal preparation instead of running to McDonalds.

</comment></comment></comment></comment></comment><comment><USER9> Dolores passed away earlier this year: [http://www.latimes.com/local/obituaries/la-na-dolores- westfa...](http://www.latimes.com/local/obituaries/la-na-dolores- westfall-2017-story.html)

</comment><comment><USER10> Five paragraphs in, the root of many of her problems:

"Her savings long gone, and having never done much long-term financial planning"

Six paragraphs in, the root of elderly problems nation-wide:

"Nearly one-third of U.S. heads of households ages 55 and older have no pension or retirement savings and a median annual income of about $19,000"

Is it possible that the lack of long term financial planning, aka saving money, is the crux of many of these tragic situations?

<comment><USER11> A lot of the sources of savings were in houses, which burst in 2008.

<comment><USER12> How much equity was lost due to inflated gains vs down payments/mortgage payments. I'd say much more the former than the latter, If I had to guess.

</comment></comment></comment><comment><USER13> _"...and faced yet another nasty choice between need and want. Should she go to the dentist, or take a guided tour of buildings designed by her favorite architect, Frank Lloyd Wright? Each cost $100. She picked Frank Lloyd Wright. Her teeth could wait."_

Wow, with decisions like that it's no wonder that woman is in a bad position. Honestly, though - am I supposed to feel bad for someone like this? You can bet that if I was barely scraping by I would not be spending $100 on a guided tour of a building, or at a restaurant getting prime rib (something the article mentions she also did). I wouldn't be eating out at all or doing anything that involved any sort of discretionary income because I didn't have any. She doesn't have any but she act like she does. It's not rocket science that the numbers don't add up in the end.

Gee, I wonder...should I go to Peter Luger's for dinner this Friday or pay my gas and electric? Tough call.

<comment><USER14> At the time the article was written, she was in the last few years of her life.

If they're spent doing nothing but hustling to pay bills, and there is no enjoyment to be afforded outside of that, why bother finishing the last few? Being old sucks enough as it is, with all your faculties failing and everybody abandoning you.

She's dead now. She got to enjoy the museum and a steak while she still had a chance. I don't begrudge her that.

<comment><USER15> I'm not sure there is a name for the GP's 'fallacy', but I think there should be. The idea is that one person in the whole history of the world had the worst, most painful, most terrible, most suffered, most miserable life that ever happened anywhere and for all time. All other people are just griping and moaning; they could have had it worse, so shut-up.

Like, how _mean_ is that thought process? We need to be helping each other out, not comparing the size of our scars and the length of our therapy sessions. So what if someone hasn't had it was bad as you or some hypothetical person? Be kind.

<comment><USER8> That is the fallacy of relative priation, I think.

</comment></comment></comment></comment><comment><USER16> Article begins with spending $20 on a prime-rib lunch, then complains about not being able to eat....

<comment><USER3> To be fair, it's for three meals. $7.12 per meal is pretty good for restaurant food.

<comment><USER17> >For restaurant food.

</comment></comment></comment><comment><USER18> This and the "retail apocalypse" piece are quite sobering. There are going to be a lot of homeless elderly in the future.

<comment><USER19> Only if nothing is done by society to fix the problem.

<comment><USER20> Or if, you know, we had social values where it's OK to have your children take care of you.

<comment><USER19> Mind if I expound on this?

My mother died in July at 59 from a brain hemorrhage. I took her in 2 years ago, and I paid ~$1000/month for her prescriptions before the ACA kicked in. After it kicked in, her prescription costs dropped (thankfully, as I was going to Canada to get non-controlled prescriptions) but her provider costs increased.

Only because I'm a tech professional in a top earning tier was I able to do this while supporting my wife and daughter. What is the solution for the rest of Americans?

Side note: After her death, I received ~$48k in medical bills that weren't covered by her health insurance. Bad news for those providers.

<comment><USER21> So your solution was to shaft the hospitals $48k? Sounds like an applicable solution for the rest of America. This is why healthcare costs are so high.

<comment><USER22> Wow, that's a really nasty comment. Debts expunge upon the deaths of the debtor. Why would you expect him to pay those debts?

This isn't "why healthcare costs are so high".

</comment></comment></comment></comment></comment></comment><comment><USER23> Social security is a pretty strange program in no small part because it doesn't know what it wants to be. It tries to be everything to everyone -- a mandatory savings program for the middle class, an anti-poverty program for the elderly, a safety net for widows and orphans, and long term disability insurance. It could use a good healthy dose of the UNIX philosophy of do one thing and do it well.

The woman profiled in this article is 79 years old. She gets $1200/month from social security and a $190/month pension. If we as a society think that $1390/month isn't enough to live on and that 79 years ought not to have to work to survive then we should have some program that gives her more than $1200/month.

Maybe that should be a means tested program, though that comes with side effects, or maybe an elderly UBI. Or perhaps you disagree with one or both of the premises -- like that you think that $1390/month is plenty. That's okay too.

My point is that social security with its strange formulas and conceptual inconsistencies isn't some fact of the universe like that the sun will burn out. It is something that we Americans picked and we Americans can change if we decide to.

<comment><USER24> They are separate programs though. They just all happen to involve the same expertise and are managed together.

(the things you call mandatory savings and anti-poverty aren't separate things, but it is mandatory because the anti-poverty funding is done on an actuarial basis with the broadest possible base; in any case, you receive benefits based on having paid in, not just because you is old)

<comment><USER23> You only partly receive benefits based on having paid in. You can also receive benefits based on a live, dead, or even ex-spouse having paid in. Or a live or dead parent.

Given that some people don't qualify at all it isn't a particularly well designed anti-poverty measure. You can say that it isn't supposed to be until you are blue in the face, but that's certainly how it was and continues to be sold. Given that if you died at age 60 without a wife or children your estate gets nothing, it isn't a particularly well designed mandatory savings program. That is another way it was and continues to be sold. Given that there's no underwriting it isn't a well designed insurance program (annuity).

Like our tax advantaged retirement savings options -- with its grab bag of different programs -- or Medicare with its bizarre A/B/D distinction (not to mention C) no one would actually set out to design a system like social security. People defend it because it is the status quo and they fear the unknown that admitting ought to replaced would open up.

</comment></comment></comment><comment><USER14> > Her monthly income consists of $1,200 in Social Security and a $190 pension, > plus pay from her seasonal jobs. She owes $50,000 on her credit cards. > There's also a $268 monthly loan payment for her aging rig.

The situation for her does suck, but seeing profiles like this makes me want to tear my hair out.

If you're trying to service $50,000 in unsecured debt (likely at a 24.99999% interest rate) with less than $2000 in gross income, just declare bankruptcy. You've lost the game of financial planning; continuing to play it just makes sure you remain a loser for the final few years you spend on this mortal coil.

Clear the slate and start over while you still have time. She has nothing to lose (she won't be able to finance a new car, RV or house in her current circumstances either) and a few hundred dollars a month in disposable income to gain. That's around a 25% increase overnight, just by waking up and doing what every corporate citizen in this country does when its own debts get too onerous.

</comment><comment><USER25> > Her monthly income consists of $1,200 in Social Security and a $190 pension

That is a decent salary if she lived in a cheaper state like Mississippi or Kentucky. I realize there are other factors at play here, but its your choice to retire in a ridiculously expensive state like California.

</comment><comment><USER26> Maybe a new startup with an app could help?

"Post a selfie of feeding the hungry"

"Leftover food spotted on the corner of 5th and Lincoln"

Then sell user data to law enforcement.

</comment><comment><USER27> There's a terribly toxic combination at work here - a demographic bubble, lifespans (but often not _productive_ lifespans) extended by modern medicine, high cost of that modern medicine, declining market value of skills held by the older generation, flat middle-class earnings, near-total elimination of defined benefit programs, and a series of financial shocks eroding the value of stock-market alternatives. The result is akin to an epidemic - millions of older people _physically_ able and likely to live a few more decades, but _financially_ not even capable of making it another year without help. Scary.

The GOP/libertarian answer is likely to be that "too young to die" isn't true. No, they won't come out and say it, but the policies they promote come down to that. "Just die already, it'll be good for the economy (or at least the stock market)." Problem is, they _won 't_ die. They'll end up in hospitals more often, or prisons. If you think nobody has deliberately gone to jail just to ensure three squares and health care, think again. Some will end up in their children's homes, which can be great sometimes but is more often a drain on those children's own prospects. Many will end up on the streets. The rich families who send their kids to Washington or Wall Street won't be affected and thus mostly own't care, but it will be a literal disaster for everyone else.

Like it or not, the only real choice is for us _as a society_ to do more to look after the elderly. Not only is it the humane choice, but when you add up all the costs of the alternative that's even worse. And no, we can't rely on private charity to do the job. There's nowhere near enough organized charity for that, and at the individual level very _very_ few of the people affluent enough to offer help will go anywhere near somebody else's poor grandmother. I'm extremely fortunate that I can afford to pay for my mother to be in a nice assisted living facility, but everything below that is a hellhole and my personal solution doesn't scale to all of society.

</comment><comment><USER28> What caught my eye was the $50k in credit card debt, and not explanation as to why. I have to assume those minimal payments are significant and keep growing. Remove that and she could be in much better shape. Obviously not livin' large but at least there's not the stress of $50k hanging over her head.

My other thought was, if possible, why not have a veg garden? As the legend Ron Finley says "it's like printing money."

Sure it take time and effort but if you consider it to be a permanent PT job (that she rarely has) then it could be a big help.

</comment><comment><USER29> This isn't an intergenerational issue. Old people (65+) have something beyond 95% of the money in this world. Todays seniors, as a group, are the most wealthy ever. The "gray market" for anything from drugs to travel is booming like never before. What is needed then is not wealth transfer between generations, such as income taxes paid by the young. What is needed is transfer from the rich elderly to the poor elderly. It is time to means test many of the benefits. If you are earning 200k+ in passive retirement income, your social security can be partially diverted to help those truly in need.

</comment><comment><USER30> This: _She owes $50,000 on her credit cards._

Go to any bank rate calculator[1] and look at what a $50K debt in credit cards does to you. If you learn only one thing from this cautionary tale it should be how expensive credit card money can be.

Without that debt she would not be in great shape but she would be a lot better off.

[1] [http://www.bankrate.com/calculators/credit-cards/credit- card...](http://www.bankrate.com/calculators/credit-cards/credit-card-minimum- payment.aspx)

</comment><comment><USER31> This article title sounds like a riff on the Jethro Tull song.

[0]: [https://www.youtube.com/watch?v=H8uUh1xsL14](https://www.youtube.com/watch?v=H8uUh1xsL14)

</comment><comment><USER32> Leave USA...$1000 a month goes a long way in a lot of countries, in USA you'll starve. [https://www.kiplinger.com/article/retirement/T037-C000-S002-...](https://www.kiplinger.com/article/retirement/T037-C000-S002-how- to-retire-abroad.html)

<comment><USER33> Now I get why a lot of Americans come to Mexico to retire, sure we have a lot of problems over here, but with that amount you will be able to live in a good and beautiful town, maybe next to a beach or in a traditional town like San Miguel de Allende [1] (a lot of old Americans go to retire there), maybe you won't live like a king, but you won't have housing or food problems at all. [1] [http://cdn- image.travelandleisure.com/sites/default/files/st...](http://cdn- image.travelandleisure.com/sites/default/files/styles/1600x1000/public/1499880720/night- city-view-san-miguel-de-allende-ALLENDE0717.jpg)

</comment></comment><comment><USER34> I wonder if these kinds of stories will prompt real political will for things like single payer healthcare or a real social safety net.

<comment><USER13> A "real" social safety net? Is that a joke? As though we already don't have tons of social programs? Sure, the US might not be as insanely generous as some European nations, but the US has medicare, medicaid, food stamps (SNAP), social security, welfare (SSI), disability, housing assistance, CHIP, WIC, ACA subsidies, section 8 housing assistance, home energy assistance, and probably even more I can't think of or don't even know about. The US spends more than $2.3 trillion every year on those programs combined, which comes out to around $7,000 for each and every person in the US (around 330M). That's an absolutely mind blowing number.

<comment><USER35> Social Security: Last year, 24 percent of the budget, or $916 billion, paid for Social Security, which provided monthly retirement benefits averaging $1,360 to 41 million retired workers in December 2016. Social Security also provided benefits to 3 million spouses and children of retired workers, 6 million surviving children and spouses of deceased workers, and 10.6 million disabled workers and their eligible dependents in December 2016.

Medicare, Medicaid, CHIP, and marketplace subsidies: Four health insurance programs — Medicare, Medicaid, the Children's Health Insurance Program (CHIP), and Affordable Care Act (ACA) marketplace subsidies — together accounted for 26 percent of the budget in 2016, or $1 trillion. Nearly three-fifths of this amount, or $594 billion, went to Medicare, which provides health coverage to around 57 million people who are over age 65 or have disabilities. The rest of this category funds Medicaid, CHIP, and ACA subsidy and exchange costs. In a typical month, Medicaid and CHIP provide health care or long-term care to about 74 million low-income children, parents, elderly people, and people with disabilities. (Both Medicaid and CHIP require matching payments from the states.) In 2016, 9 million of the 11 million people enrolled in health insurance exchanges received ACA subsidies, at an estimated cost of about $31 billion.

<comment><USER35> ~$1272/mo per person on social security( around 60 m people)

~868 / mo per person for medicare(57 m)

(both of these they paid all their life into)

~$668 /mo Medicaid and CHIP provide health care or long-term care to about 74 million low-income children, parents, elderly people, and people with disabilities.

</comment></comment></comment></comment><comment><USER36> >Her savings long gone, and having never done much long-term financial planning

And so again we are expected to pay for the mistakes of others. What incentive is there to save if you know you have a social net to save you anyway?

Yes, I understand, it is a terrifying way to live, I wouldn't wish it on anyone, but if we deincentivize personal responsibility, what stops this from becoming a larger problem? How can this be sustainable?

Edit: please do not mistake my attempt at objectivity for callousness. One must divorce personal feelings of pity and empathy for individuals when discussing matters which affect hundreds of millions of people. There comes a point where there are more people requiring assistance than we are capable of supporting, and part of the solution is to discourage recklessness.

<comment><USER37> There are many nations with a similar level of development and wealth as the United States. How prevalent is this problem in Canada? In Europe?

You propose "personal responsibility" as the solution to this, but does Canada or Europe depend more on "personal responsibility" or less than the US?

<comment><USER38> Ayn Rand, arguably a strong proponent of "personal responsibility", required welfare at the end of her life. She made some justifications for how she could live off of welfare but still did it.

When times are personally good it's easy to make arguments about what people should do, but when you're in a situation with no support things feel a lot different.

<comment><USER36> > but when you're in a situation with no support things feel a lot different.

The fact that things feel different in hard times does not change whether objectively they are right or wrong.

</comment></comment></comment></comment><comment><USER39> Move to California, stop buying prime rib dinners, and stop complaining.</comment>


Clone Wars: Rise of the Fast Follower Startups - <AUTHOR> http://www.betabeat.com/2011/09/02/clone-wars-rise-of-the-fast-follower-startups/

<comment><USER2> "The reasons for both have to do with the country's overloaded, backed-up patent system. A startup's design and branding can be protected with a copyright or trademark, which takes six months to a year to process. A new technology or method, like Groupon's "tipping point," would need to be protected with a patent in order for Groupon to take its clones to court. But a patent application usually takes two or three or three years to be examined—an eternity for a web 2.0 startup—and it's never certain whether it will be granted, said Elliot Furman, a patent lawyer who has a masters degree in engineering from Stanford and specializes in software and web start-ups. And even if a company owns a patent, legal action is difficult, time-consuming and expensive. Pursuing a case is often not worth it to a young startup, especially those in the earlier stage who are working with limited funds."

I don't think that the fact that Groupon can't patent their buisness model quickly enough to ward off competition is the problem with "the country's overloaded, backed-up patent system"

</comment><comment><AUTHOR> The intro is pretty funny. But then this raises the question about how to use copyright to defend design. And how much design can be defended?</comment>


Voice Boost 2: Remaster your podcasts - <AUTHOR> https://marco.org/2020/01/31/voiceboost2 <comment><USER2> Bummer, does not run on Android.

This is something I am really interested in.

Should you want to expand... :D</comment>


MIT researchers predict 'global economic collapse' by 2030 - <AUTHOR> http://news.yahoo.com/blogs/sideshow/next-great-depression-mit-researchers-predict-global-economic-190352944.html

<comment><USER2> Ray Kurzweil:

"At what point do humans cease proliferating? How many humans can Earth reasonably accommodate?

We can actually accommodate a greatly expanded biological population. We have 10,000 times more sunlight than we need to meet 100 percent of our energy needs. The total amount of solar energy produced each year is doubling every two years and has been for thirty years and is only about seven doublings from meeting all of our energy needs. There is a similar analysis with water and food and production of housing. The vast majority of land is not used today for human habitation. But ultimately – about a century from now – we will be more concerned with resources for our non-biological brains and bodies than our biological ones."

Won't someone _please_ think of the robot bodies!?!

</comment><comment><USER3> This is based on a report from the 1970s, and it assumes continued population growth. We've been watching our population growth decline for years, and now we're seeing human energy usage begin to decline as well from economies of energy efficiency.</comment>


Benchmarking hash table implementations: C++, Java, LuaJIT - <AUTHOR> http://lonewolfer.wordpress.com/2014/03/13/benchmarking-hash-table-implementations-in-different-languages/ <comment><AUTHOR> Mike Pall (LuaJIT author, maintainer) makes the point that the case presented isn't close to real applications: [http://www.freelists.org/post/luajit/LuaJIT- benchmark,6](http://www.freelists.org/post/luajit/LuaJIT-benchmark,6) And first and foremost, according to Pall, "it's just measuring the overhead of branch mispredictions and cache misses for an atypical use case of hash tables."

<comment><USER2> If I could rerun this afternoon, what test case should I use? _What is_ a good hash test? Mike says

 _[Typical hash table accesses use a) string keys with b) a high temporal correlation and c) they usually have a high hit-rate or a high miss-rate, but it 's rarely 50/50.]_

Surely there is a simple, simple routine that does all this. I want to see this benchmark done right. If it's so simple, why hasn't anyone written it down? The author updated:

 _If have some extra time I 'll test some variables later on I will test different hit rates and key types. If you have a reference to a source where statistics around hash table use cases is investigated I'll use that as a basis._

</comment></comment><comment><USER3> When microbenchmarking Java it is a good idea to use a framework to make sure you get an accurate result despite the compiler trying to eliminate your code. In their case it looks like they are getting real numbers since Java and C are the same order of magnitude, but blog posts like this are where people learn benchmark hygiene.

I recommend JMH which I believe is what was developed @ Oracle to handle this task.

I used it to microbenchmark various Java maps for small map sizes and showed some of the results. [https://groups.google.com/forum/#!topic/mechanical- sympathy/...](https://groups.google.com/forum/#!topic/mechanical- sympathy/dxbTH30_ok0)

I also found the discussion of various map implementation tradeoffs and caveats useful. That Google group is a great resource.

One thing you have to keep in mind when benchmarking maps is locality and cache affinity and how things will work outside the benchmark when things don't fit in cache or have been evicted by your application.

In my case map lookups showed up in profiles relating to various lookup tables that define logic and policy. There can be a surprising number spread out as well as some hit hard in tight loops.

</comment><comment><USER4> The biggest issue with this benchmark is the unrealistic data model and the access pattern.

From my admittedly limited knowledge a better benchmark would involve:

\- String keys because who uses int keys? It would be important to create a new set of query keys for retrieving values that would contain a mix of newly created strings as well as older ones to account for any hashcode memoization. \- Non-primitive values. This would address the boxing overhead someone mentioned and would be much closer to real life usage. \- Many more runs. Since there are performance implications of data access patterns due to spatial locality using a larger number of runs this would help even those out.

Another question is, why? The ultimate choice of Java vs C++ won't depend on how fast the standard hash tables are.

</comment><comment><USER5> A really nice comparison of just C/C++ hash libraries is [http://attractivechaos.wordpress.com/2008/08/28/comparison-o...](http://attractivechaos.wordpress.com/2008/08/28/comparison- of-hash-table-libraries/)

Good discussion too. khash.h uses macros for C templating, but is quite fast.

</comment><comment><USER6> The Java benchmark probably shows mostly boxing overhead, which probably isn't the bottleneck in most real applications. It is, therefore, more interesting to test with strings.

As another comment suggests, large maps are likely to be accessed concurrently, and so a comparison of concurrent hash maps would also be interesting.

<comment><USER7> he's also looking up the key twice (containsKey() and then get()), against once in C++

<comment><USER8> that's because in java you can't distinguish between no object found, and null with the default hashmap implementation. in this "benchmark" it would probably not matter though.

> A return value of null does not necessarily indicate that the map contains > no mapping for the key; it's also possible that the map explicitly maps the > key to null. The containsKey operation may be used to distinguish these two > cases.

[http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.h...](http://docs.oracle.com/javase/6/docs/api/java/util/HashMap.html#get\(java.lang.Object\))

<comment><USER9> Assuming you care about the distinction between null and no such key (for many applications you can avoid storing null, IMO), you can actually perform the containsKey() _after_ the get() for only keys which get() returns null. I think that see all of the perf overhead of a single lookup if most values are non-null.

</comment></comment></comment></comment><comment><USER8> i feel like there's something missing here. shouldn't there also be a graph on how much memory usage there is in the 3 implementations?

<comment><USER10> That and probably at least 5-6 other popular languages to make it worthwhile...

<comment><USER11> Plus you're just testing the standard library implementations. If the hash lookup was the major focus for your program, you would be using a specialized hash map implementation.

eg, [http://trove.starlight-systems.com/](http://trove.starlight-systems.com/) or [http://acs.lbl.gov/software/colt/](http://acs.lbl.gov/software/colt/) in the case of the Java version.

EDIT: Here is the kind of performance differences you get between hash implementations to demonstrate why you wouldn't just use the standard implementations if it's a performance critical part: [http://b010.blogspot.com/2009/05/speed-comparison- of-1-javas...](http://b010.blogspot.com/2009/05/speed-comparison-of-1-javas- built-in.html)

Shows Colt int map running 3.5x faster and with 65% of the ram usage as the standard hashmap.

<comment><USER12> > Plus you're just testing the standard library implementations. If the hash > lookup was the major focus for your program, you would be using a > specialized hash map implementation.

If there's a better general-purpose hash table, the standard library hash should be using it.

(Special-purpose, sure, use a custom data structure.)

<comment><USER11> In the case of Java, there is a lot of inefficiency in the standard hash table in the form of Entry<T, K> objects for making it a bit nicer to use. There is also a lot of extra state stored for some of the extra features offered. Everything has a cost. If you just need a straight Int->Int or Int->Object map, there are a lot of ways to make it far more efficient.

The standard library doesn't contain these, because in 99% of apps, the actual performance of the hash table is a very minor part and a small bit of overhead for added convenience is worth it. However in a program where the hashmap is the key point, you'd obviously choose to optimize it to fit your goals.

</comment></comment></comment></comment></comment><comment><USER13> khash is in part 2: [http://lonewolfer.wordpress.com/2014/03/17/benchmarking- hash...](http://lonewolfer.wordpress.com/2014/03/17/benchmarking-hash-table- implementations-part-2/)

<comment><USER14> Now you are never going to satisfy everyone with your choice of the contenders :) If you allow C libraries it would interesting to see where Judy falls in that spectrum, it has quite a reputation for being fast, although the code itself is quite impenetrable.

<comment><USER13> Very true, that I will not. I might test Judy though I suspect it won't be fast enough to qualify.

</comment></comment></comment><comment><USER15> I'm curious what the takeaway from this is. Specifically, I'm curious how well these results translate to the use of a hash table.

If your application is even 80% giant hash table lookup, I would presume it is doing so in a fairly highly multithreaded environment. Caching systems, maybe?

Otherwise, I would think the times where this benchmark matters are few and far between. If you find you are looking up a ton of items in a hash table in such a way that that shows up in a profile, you are probably best off moving to a sorted list and just iterating through the items as you need. Right?

</comment><comment><USER16> Weird how the higher order (imo wrong) interpolation on the graphs immediately gives the whole article a suspicious flair.

</comment><comment><USER17> Since the two non-C implementations use a JIT, it would be interesting to see results of an FDO build of the C program.</comment>


1000 commits on, neovim project still going strong - <AUTHOR> https://github.com/neovim/neovim/commits/master

<comment><USER2> Calling anyone versed in C in Visual Studio 2013 (C99-ish) to help with [https://github.com/neovim/neovim/issues/696](https://github.com/neovim/neovim/issues/696). I started the issue, but have no idea what I'm doing.</comment>


Golive – tiny fileserver with livereload for fun - <AUTHOR> https://github.com/GeorgeMac/golive

<comment><USER2> Does it support IPv6?</comment>


Buy a Better Keyboard Already - <AUTHOR> http://aaronlasseigne.com/2016/03/03/buy-a-better-keyboard-already/ <comment><USER2> I agree with buying a good keyboard that meets the needs of all day use. Xah Lee's keyboard guides are what _I_ found most informative. [http://xahlee.info/kbd/keyboarding.html](http://xahlee.info/kbd/keyboarding.html)</comment>


Microsoft Research: Making the Shortest Path Even Quicker - <AUTHOR> http://research.microsoft.com/en-us/news/features/shortestpath-070709.aspx

<comment><USER2>
      ERROR
      The requested URL could not be retrieved

      The following error was encountered while trying to
      retrieve the URL:

        http://research.microsoft.com/en-us/news/features/shortestpath-070709.aspx

        Read Error

      The system returned: (104) Connection reset by peer

      An error condition occurred while reading data from the
      network. Please retry your request.

      Your cache administrator is webmaster.

      Generated Mon, 02 Nov 2009 11:05:34 GMT by
      www-cache.elements (squid/3.0.STABLE10)</comment>


Ask HN: What is * Instant? - <AUTHOR>

Hello!
    I just moved to a boarding school in vermont and have slow (usually doesn't work) internet access about once a week.
    What are these new "instant" things? Google Instant? YouTube Instant? ect? <comment><USER2> It's like the normal version, except very fast!

In the case of Google Instant, results start to show up as soon as you start typing. So if you wanted to find a page about "Vermont," you would see:

v... [results about "v for vendetta," let's say]

ver... [veryfine juice beverages]

vermo... [vermontster ice cream]

vermont... [normal vermont ads].

Kind of like that!

<comment><USER3> What I don't understand is, sure, attempted auto-complete on what I'm typing could be interesting, but why does it keep AJAX pulling results when I'm not done yet?

If Google really wanted to help, they'd try to offer additional terms that could help me refine my results (based on, say, my recent search history and search histories of others based on similar terms).

Yes, I'm aware thats a difficult problem to solve, but Google seems to be one of few companies uniquely qualified to tackle such problems.

<comment><USER2> Well, it does that, too. It has auto-complete with suggestions.</comment></comment></comment>


Carl Kasell Has Died - <AUTHOR> https://www.npr.org/2018/04/17/528656453/npr-newscaster-carl-kasell-dies-at-84-after-a-lifelong-career-on-air <comment><USER2> I suspected his health had declined when WWDTM changed to having the voice of anyone currently on the show as a prize, but as good as Bill Kurtis is sometimes I miss Carl Kassell's voice.

<comment><USER3> Reminds me of how Car Talk quietly stopped recording new episodes once Tom Magliozzi's Alzheimer's became a problem.

Dang, I miss Tom and Ray.

<comment><USER4> Me too. I spent so many wonderful hours listening to that show on the road. It's funny how radio/audio sticks with you.

</comment></comment></comment><comment><USER5> I see that they fixed the URL. Original URL ended with "npr-newscaster-carl- kasell-dies-at-XX-after-a-lifelong-career-on-air", I assume because NPR of course knew of his condition and had an obituary prepared and ready-to-go in a celebrity file; they updated the headline but forgot to update the URL.

... Oddly, that makes me smile. I had the privilege and pleasure of volunteering with public broadcasters in my hometown as a kid; it was an amazing bunch of people. Talented, smart, and always finding ways to do more with less and skin-of-their-teeth their way into quality productions (live and pre-taped) with a dozen SNAFUs the public almost never saw. I like to imagine Carl would have smiled to see that error sneak through in his sendoff story.

<comment><USER6> Yes, almost certainly they had his obituary prepared years ago. I was an intern at NPR HQ and was once tasked with updating prepared obits with additional news.

Later, as a production assistant, I wrote an obit for Billy Graham. This was in 2008. No idea if this ended up being the one that would eventually air 10 years later.

</comment></comment><comment><USER7> He had Alzheimer's. I heard on a podcast that 10,000 Americans are retiring a day.

[https://www.cnbc.com/2017/10/03/health-care- dilemma-10000-bo...](https://www.cnbc.com/2017/10/03/health-care- dilemma-10000-boomers-retiring-each-day.html)

Underfunding research into Alzheimer's is going to be a costly mistake as the baby boomers retire.

<comment><USER8> [https://www.alz.org/documents_custom/historic- funding-2017.p...](https://www.alz.org/documents_custom/historic- funding-2017.pdf)

I couldn't believe the numbers when I read them. I fully expected that we were doing more. Breast cancer is over funded, and Viagra is about $70/pill but this debilitating disease is forgotten about until individuals are themselves forgetting.

Thanks for bringing this to my attention.

<comment><USER9> it is not for want of trying. Eli Lily bet the farm and lost, and they aren't alone.

At this point, we're beginning to think previously unthinkable thoughts like "what if the hypothesis the last 20 years of research was based on (beta amyloid plaques)is just totally wrong".

we've made drugs that reduce plaques. they don't ameliorate the disease.

<comment><USER10> I just read this yesterday:

[https://www.upi.com/Health_News/2018/04/11/Researchers- find-...](https://www.upi.com/Health_News/2018/04/11/Researchers-find-genetic- cause-for-Alzheimers-possible-method-to-reverse-it/4661523454194/)

I know we all see at least half a dozen of these a year, but nobody can say in advance how they'll turn out (unless it's just obviously badly designed research). This line of inquiry certainly seems to have some promise.

<comment><USER9> Always worth looking into. To my knowledge, previous studies have produced things like "these 600 genes are regulated in a particular way in patients who were diagnosed with Alzheimers", which is much less persuasive of an argument; the contribution power per gene is quite low in that case.

If you can conclusively say "these n<5 genes are exactly the things that make people 50% more likely to develop a disease", you're cooking with gas.

</comment></comment></comment></comment></comment><comment><USER11> Carl Kasell was a low-key American national treasure. RIP

</comment><comment><USER12> Bummer. I loved his read of the news segments during Morning Edition. So much so that I asked he record the voicemail message doing a similarly styled opening.

<comment><USER13> Do you still have it?

</comment></comment><comment><USER14> Carl was great to listen to. Instantly recognizable.

</comment><comment><USER15> :(

</comment><comment><USER16> I wonder why the title has been edited _away_ from the actual title _" NPR Newscaster Carl Kasell Dies At 84, After A Lifelong Career On-Air"_? Normally titles get edited _to_ the original on HN and not everyone is going to know who he was (I didn't) :-)

<comment><USER17> I would ask dang. It seems somewhat like the style here is now to title the post "Firstname Lastname Has Died" to be as neutral as possible, but I could be wrong.

<comment><USER18> I've noticed that. It seems rather blunt and unfeeling to me.</comment></comment></comment>


Some examples of the serendipity effect on innovation - <AUTHOR> http://en.wikipedia.org/wiki/Serendipity

<comment><USER2> In one of the high schools I went to, there were 3 classes they wouldn't devote a full term to, so we rotated through them - art, shop and home education. They called it serendipity, which I thought was kind of appropriate, mashing up disciplines is a big part of it.

<comment><AUTHOR> Nice to hear about a school with such an enlightened view.</comment></comment>