Moonlight on Android - <AUTHOR> http://jeffreystedfast.blogspot.com/2011/04/moonlight-on-android.html

<comment><USER2> For those of you (like me) who didn't know about Moonlight, it's an opensource implementation of Silverlight <http://www.mono-project.com/Moonlight>

</comment><comment><USER3> I wonder whether this would allow Netflix to more easily bring their streaming video service to Android...

<comment><USER4> Probably not. Moonlight doesn't have the DRM necessary (and won't - MS has no intention of releasing it on Linux) and Netflix doesn't use Silverlight/MS DRM on phones anyway (AFAIK).

From what I understand, on the iPhone/iPad Netflix uses the DRM built into the device. Since Android phones are built by several different manufacturers there is no uniformity in hardware DRM (and some phones don't have any at all). I imagine that it's easier to get content providers to agree to use hardware DRM than software DRM which further complicates the issue.

<comment><AUTHOR> Well, if that's the case (Netflix taking advantage of the DRM built into the phones), then there's no reason Moonlight for Android can't take advantage of that, too.

Also, Microsoft _has_ licensed their DRM for Linux on embedded devices in the past.

<comment><USER4> Yes, but since Netflix doesn't use Silverlight for the iPhone/iPad it's not like it's going to make a difference one way or another.

MS has licensed their DRM, but they will not license it for use with Moonlight. From my understanding, the licensing they have done has generally for hardware (the NXP chip in the Roku box, for example).

</comment></comment></comment></comment><comment><USER5> I fail to see the point to this, Silverlight was deprecated by Microsoft in favor of HTML5, end of story.

<comment><AUTHOR> Microsoft announced Silverlight 5 beta at Mix11, so not as dead as you'd like to think it seems.

Silverlight is still also very heavily used for intranet apps (which is where <http://www.telerik.com/> makes their money on Silverlight controls)

<comment><USER6> Do you work for Telerik? Fan of their stuff.

<comment><AUTHOR> Nope, I work for Novell on Moonlight. The Telerik guys do seem like pretty cool guys, though. I've emailed back and forth with one or two of them to try and debug Telerik controls running on Moonlight.</comment></comment></comment></comment>


Kaspersky Lab: Apple is '10 years behind Microsoft' on security - <AUTHOR> http://www.tuaw.com/2012/04/26/kaspersky-lab-apple-is-10-years-behind-microsoft-on-security/ <comment><USER2> I would be worried about Kaspersky's CEO if this wasn't just off-the-cuff hyperbole. Was he around in the tech industry 10 years ago? Because if he was, he would realize just how ridiculous it is to compare anything from today with the state of Microsoft software in 2002.

For starters, people were still running Windows '95 (or worse). A fresh install of Windows would be infected just by connecting it to the internet - and within 15 minutes depending on where you were. All web browsers had multiple vulnerabilities, and by far the worst was Internet Explorer.

Everyone ran everything as root/administrator.

Yes, today is just like Microsoft from 2002.

<comment><USER3> As I used Win in 2002 I was wondering why you consider IE the worst browser at that time. Is there a reason for that? What were the better alternatives?

At that time, I found IE to be superior, actually.

Also, do you have more information on the infected-within-15min claim? I'd like to know more about it...

<comment><USER4> Phoenix/firefox hit 0.2 in fall 2002 and was already faster and more usable for me than IE

</comment></comment></comment><comment><USER5> Microsoft has real security problems- rampant viruses and trojans, and a major business on that platform is selling after market security products (probably why Microsoft has never closed these holes.)

Apple killed the virus problem of the late 1980s dead, with only the most robust viruses surviving in the early 1990s, but none since. Apple has had an automatic updating program for at least 15 years, long before Microsoft, including monthly (if needed) security updates patching holes as they are found.

Microsoft makes a lot of money from the security holes its own products, many of which were put there deliberately as "marketing features" that later turned out to be security vulnerabilities that apparently Microsoft finds it unprofitable to close.

I've seen the source code for both Windows and OS X. Windows is very poorly engineered in general, with a great deal of cruft (leading to inadvertent security holes) while OS X is generally well engineered, benefits from being open source and pulling from open source BSD and from being fostered by a company that does not make any money from shipping security holes.

However, Apple's superior quality for the past 2 decades has resulted in a great deal of growth in profits and prominence for Apple, and this means that you can always get a lot of attention by claiming Apple has security holes. In fact, people have been making these claims for the past 15 years, in articles like this.

And yet there aren't massive botnets of Macs (the one trojan that got any traction has been eliminated) while there are millions upon millions of infected windows boxes out there to this day.

The idea that Microsoft is ahead of Apple on security is a joke to anyone who knows their history or knows their engineering.

Ok, You got me. This is obviously a troll, and I responded.... and of course the people commenting here seem to have no real knowledge of the matter, but anyone not bashing Apple is getting down voted.

This is the kind of crap that makes "Hacker" news suck.

<comment><USER6> > Microsoft makes a lot of money from the security holes its own products, > many of which were put there deliberately as "marketing features" that later > turned out to be security vulnerabilities that apparently Microsoft finds it > unprofitable to close.

[citation needed], please. I'm not being snarky - in fact, if you have a citation, I'd love to be able to use this in my discussions with others.

</comment></comment><comment><USER7> Read as "Apple is 10 years behind Microsoft in our revenue growth chart."

</comment><comment><USER8> As has been discussed here, FileVault decryption passwords are stored in plain text in RAM that is easily found by a scanner attached to the firewire port. Fixing this is not difficult, it's simply a matter of NOT storing encryption passwords in plaintext in RAM, but in a register instead. This is just one of countless numbers of critical vulnerabilities in the system that are known and completely ignored as "works per spec" when reported. This is definitely by design, for many government agencies use automated hacking devices that take advantage of these vulnerabilities to gain access to machines, such as when passing through customs, or when stopped by police. The vulnerabilities are desired and doing what they are supposed to - providing a false sense of security.

<comment><USER9> Secure virtual memory has been an option since pre leopard. In lion it's enabled by default and they removed the menu option to disable it.

<comment><USER3> As you said, secure VIRTUAL memory refers to swapped memory. Meaning it is encrypted when it is written to disk. Seeing as the password is probably in near constant use, it will never be written to disk and therefore stays UNENCRYPTED in ram...

</comment></comment></comment><comment><USER10> As someone who works in the IT security industry, I absolutely agree with this statement. I could give dozen of examples showing Apple does not prioritize security as much as, say, Microsoft.

For example, when an open source software project bundled with Mac OS X releases a security update (LDAP, Apache, Java, etc), it sometimes take Apple months to merely test it and ship it out.

OS X was also very late, compared to Windows, in implementing in-depth defense mechanisms such as address space layout randomization, stack protection, etc.

And last August, it was discovered that LDAP auth on OS X blindly accepted any password! Apple's code review and testing processes must be very immature to let such a glaring vulnerability ship to customers <http://forums.macrumors.com/showthread.php?t=1197379>

But I think Apple is slowly and finally understanding the importance of security in their software ecosystem...

<comment><USER11> What you wrote contradicts itself.

You criticise Apple for taking too long to test and ship out security updates. And then criticise Apple for not testing enough.

Which is it ?

<comment><USER12> These things aren't mutually exclusive. Apple takes to long to put out security updates for the same reason they are not testing enough. They don't dedicate a lot of resources to doing so.

</comment></comment></comment><comment><USER13> To put it bluntly, Apple is 10 years behind Microsoft on security because up until now they could afford to be. We had a few trojans and such but for the most part, security updates weren't critical because people just weren't messing with the system. The important part of all of these outbreaks of flashback means that Apple realizes that it's time to get going on security.

Apple doesn't ship the patches that Oracle or other third parties ship as quickly because this is how they work. They want to make sure that everything results in the best experience for the user.

"But wait!" you'll cry. "Getting a virus because of a slow update isn't the best experience!" Well neither is shipping a patch that causes more issues than it fixes.

Hopefully, the outcry of the users that they are getting viruses will up Apple's security efforts. In the next version they've already signaled that they think security is important because they're shipping Gatekeeper. I'd also like to point out that many, not all, but many of the bugs that are being used as exploits are in third party software (probably with the exception of Safari which has some serious issues).

<comment><USER5> The Mac had viruses in the late 1980s. I know they existed as early as 1987, and as late as 1989, from first hand experience.

Do you think that the Mac was a major force in the 1980s, but has been safe in obscurity since then?

Apple has been serious about security for 22 years, at least, and measurably better than Microsoft for 18 years.

It is absolutely absurd to ignore that history and pretend that nobody was interested in messing with the mac, when they were interested in messing with it in the 1980s.

But what else can you do when you are an apologist for microsoft? Admit that they make billions from their security holes?

<comment><USER14> Do you think that the horse carriage was a major force in the 1800s, but has been safe in obscurity since then?

It is absolutely absurd to ignore that history and pretend that nobody was interested in messing with the horse carriage, when they were interested in messing with it in the 1800s.

</comment></comment></comment><comment><USER15> Some people seem to wonder how Apple could be 10 years behind.

How about this, lets look at application programming language. Apple uses objC, Microsfot increasingly uses C#. What does this one metric get us?

I believe it was Paul Graham himself who 10 years ago mentioned that to scale a company you should have your top developers just develop the tools the rest use. This was also around the time Microsoft was at the height of the buffer over flow bugs.

Slowly they transitioned much of their code to the memory managed language of C# that their best developers made.

Their entire development process, developer allocation and development language changed in part in order to meet security needs.

Mean while Apple still develops everything in un memmory managed objC.

That's just one example of how long Microsoft has been transitioning the entire company to new more security focused practices.

The point is, to be really good at security, you have to be really focused on it, at all levels, in an all encompassing way. Microsoft has been transitioning to that for a long time and it's paid off. Apple hasn't even started. And that kind of massive corporate change in companies this big doesn't happen over night. And look how much public shaming it took to kick it off for Microsoft. I think we can look forward to a new golden age of Mac insecurity over the next few years before the process even kicks off.

And this is probably how Kaspersky Lab came to say that Apple is 10 years behind Microsoft on security.

<comment><USER13> To be fair, Mac OS X is transitioning to Automatic Reference Counting in the next version 10.8 and iOS has had ARC and Garbage Collection for a version or two now. Apple does exactly what Paul Graham said in a different way. Their top developers make the tools that everyone else uses. Just because they haven't transitioned to a different memory management scheme doesn't mean they aren't doing it.

We also might want to take a statement on the security of a platform by a company that makes their money securing people's computers with a grain of salt or two

<comment><USER16> This is nitpicking but OS X 10.7 already ships with full ARC (and it works on 10.6 too in a somewhat limited manner). However, garbage collection was never enabled on iOS.</comment></comment></comment>


Can we really trust the cloud? - <AUTHOR> http://venturebeat.com/2011/01/31/cloud-trust-egypt-canada-internet/ <comment><AUTHOR> I'm a little puzzled by peoples' fears about "the cloud." Frankly, I'd far rather store my data in a distributed system, accessible by all my devices, rather than storing everything in a single losable/stealable/breakable device like a laptop. It's the whole "don't put all your eggs in one basket" maxim, really.

Also, I do believe this article makes a critical error citing the failure of cloud services when events like Egypt's internet shut-down rendered Dropbox and like services useless: as far as I can tell, Dropbox stores a unique instance of every file both in the cloud and off-cloud alike. I.e., I can still access my Dropbox files even when without an internet connection.

Similarly, should my laptop be stolen or lost, I can easily wipe the instanced data on the laptop by accessing my Dropxbox account via dropbox.com from any other device.

Besides, if the fear of cloud storage is that data may be compromised, wasn't it even more of a risk back in the day to carry papers and documents in briefcases? Or to transmit important documents by train? Frankly, I think cloud solutions are far _less_ risky than their offline counterparts.

So... am I missing something?

<comment><USER2> People fear of losing control of their data, as simple as that. On your own computer you will fear only of a hardware failure or a nasty virus.

On the cloud ... well you are at the mercy of a provider, of a Government or of any organization that can stop you access your own data.

(Personally I use Dropbox for storing some software projects.)

<comment><AUTHOR> I agree with you that many people have this fear. But it's a logically inconsistent fear:

(1) As I mentioned, inability to access the cloud with Dropbox and like services -- or government/organizational intervention thereof -- does _not_ impede your access to your data: all synced devices have separate, local instances of the data that are as up-to-date as the last time such device was online.

(2) In any event, how is storing data "in the cloud" any different to storing email? It's all "up there" too. I don't see the distinction. My email is "online" and my cloud-stored data is online. What's the difference? And one could argue that email is -- at times, at least -- even more sensitive than actual data.

(3) To fear "only ... a hardware failure or a nasty virus" is shortsighted: failure to maintain multiple instances of data, both on- and off-line alike, is far more risky indeed.</comment></comment></comment>


The Wargame That Revealed a Nazi U-Boat Tactic - <AUTHOR> https://time.com/5772665/uboat-wargames/ <comment><USER2> A very interesting story, I love the whole idea of researching strategies</comment>


Ask HN: How are you setting up your Java applications? - <AUTHOR>

While traditionally a C and Python guy - I've had to use Java a lot over the past few years and have come to like it for various reasons and am thinking of starting a new project/product/service with Java.
I do have a question how people in the rapid development segment (read: startups) architect your application?
Of course I will have a web interface, but I also feel that the web interface is just one interface, and as a whole its not a web application.  I see a few options:
- Give into the web app frameworks and develop as war for deployment into a container (or turn it into an executable war)
- Embed Jetty or Tomcat and treat it as a module of my application.  I feel this gives me more control over the web server component.
- Take on more overhead.. Develop one project which is the business logic.  Then do a separate application that communicates to the back-end somehow.. ZeroMQ, or perhaps REST - but then I'm dealing with a web tier again.  But maybe my web tier on my back end service can be simpler in this case.
Thanks for any thoughts. <comment><USER2> Architecture and MVP I setup for a startup:

\- database: PostgreSQL

\- API server: JEE6 app (EJB, JPA, JAX-RS, Jackson, Jasypt)

\- Web server: JEE6 app (JSF, Primefaces, PrettyFaces, Jackson, commons-http)

All packaged with maven, and deployed on two glassfish instances on a dedicated server, but it could have been deployed on the cloud with Jelastic.

Better that embedded Jetty/Tomcat, you'd better use a more classical approach to remain compatible with the hostings providers. Also targeting a full JEE6 server is not insane anymore (light for some values of light, fast, well documented)

Please, make an API server, even basic, from the start and keep the web front- end as much stateless as possible.

Shameless plug: I'm a freelance, I rock in JEE6 and I'm a Ror padawan.

<comment><USER3> +1 on Postgres. But JEE ? I'd prefer Tomcat anytime over JEE (even if they became "simpler") in the past.

Apache, Tomcat, mod-jk, JSON/REST and loads of freedom...

<comment><USER2> I was like you a long time ago ;) I hated JEE until I used JEE5 in a project with really good programming peers. Once you understand and adapt to the JEE vision and do not fight it, life is more beutifull.

If a lightweight is needed, Nginx+Jetty or Resin is imho better that Tomcat ... until you need to coexist with an app that's Tomcat friendly.

<comment><USER3> I appreciate your excitement. But what I've seen over the years will keep me resistent for the rest of my life ;)

</comment></comment></comment></comment><comment><USER4> The most important thing is that you separate the different layers of the app so that you can refactor later. Using Spring is a good way to keep that separation.

The frontend layer needs to be agnostic of how the middle layer is implemented, and the middle layer agnostic of the backend.

JSON and REST are universal, so if everything communicates using that, you are in good shape if you ever partner with other companies or get acquired.

</comment><comment><USER5> nginx->jetty->java->postgres with json+rest is a solid start

</comment><comment><USER6> It really depends on what you want to do, and/or what the scope of the project is. If it's a self-hosted blog, I would personally think that a WAR would be hugely overkill (ignoring that Java might be overkill altogether anyway). If it's for a project that you intend to sell to Enterprises though, a drop-in WAR is a huge benefit.

If you're planning to build the front-end with a lot of JS or Backbone-style interaction, you'll want an API anyway, so you might go with the last method of developing REST endpoints and just accessing them via JSON and Backbone. (This is the approach I'm taking on my most recently project, though Python is the backend, not Java).

Without knowing the scope of the project, whether there are customers, what kind of customers they are, etc., it's a little hard to make an informed decision, however one thing I didn't see was Play[1]. The last Java project I had was done in Play and I found it pretty easy to get up to speed on, and it's designed to act as a web framework. If you're looking for something new to learn, or an easy way to transition from systems development to web work, Play might be a fun transition for you.

[1] - <http://www.playframework.org/>

<comment><AUTHOR> I developed some test APIs and played with WebSocckets in play. One thing I didn't like, is like a WAR, it wants to be first level piece of software. However, I think this is an attitude I carry from embedding web services into projects years ago.. And I need to give in and develop things as web apps.

Scope is a service.. User interface for reporting and graphing, and an API for punting messages around (not instant messages or anything like that). And a database. And servers in the backend will need to talk to other peer servers in another data center.

Thanks for your input.</comment></comment>


Mick Jagger on Music Profits - barry-cotter http://sometimesright.com/2010/05/sir-mick-on-music-profits/

<comment><AUTHOR> <http://en.wikipedia.org/wiki/Bittersweet_symphony>

And yet, he/The Rolling Stones felt no qualms about taking every penny of revenue from that song, despite it only using a small sample of an orchestral cover of one of their songs. Somehow, I can't respect much of anything he says about music revenue after knowing that.

<comment><USER2> I fail to see a connection. He stated that musicians making money from recording albums is an aberration in the history or recorded music. It could be argued that the situation with the Verve backs up that point.

I'd also not equate his personal opinions with the actions taken by Allen Klein.

</comment></comment><comment><USER3> For most of human history, waterborne diseases were our number #1 killer. Still are in many parts of the world. Then we got indoor plumbing.

The point is, I don't want to go back. The fact that something has existed for only a short period of time on a cosmic scale does not mean that it cannot or should not exist forever.

I like music, and as such would like to see artists remain profitable, even after the demise of the CD.

<comment><USER4> I'll counter your poor analogy with my own poor analogy: for most of human history, we existed without the use of oil or its byproducts. Then we got plastics. I don't want to back to a world without plastics.

Or we could review the argument on its own merits. For a short period of time, circumstances prevailed in which a small number of artists (skills ranging from acceptable through excellent) were able to make an outsize profit from their work. This looks like its coming to an end.

The era of multi-dozen million dollar making artists like Michael Jackson, U2 and Madonna is giving way to an era where artists make a good, but not GDP comparable income, like Amanda Palmer and OK Go.

<comment><USER3> It wasn't an argument that Mick Jagger made though, so there's nothing to review based on merits. It was a simple statement of fact. Any argument is by implication (ie. that because it was not always this way, it should not be that way).

There was no discussion of how much artists should make at all, and any implication of such is suffering from the logical fallacy that because things have always been a certain way, that is the way they should be in the future.

<comment><USER4> Sorry, I left out the part where you discussed how much artists should make:

 _"I like music, and as such would like to see artists remain profitable, even after the demise of the CD."_

Separate from that, the logical fallacy to which you refer is true, but equally applies to the business model that has existed for the past 50 years on which the record labels have relied.

To wit: just because it's been the case in our lifetime, doesn't mean it can't or shouldn't change. And no, musicians will not go hungry because of it as you imply, although lawyers might have to find a new line of work.

</comment></comment></comment></comment><comment><USER5> The old story goes

 _Muddy Waters, who, according to one apocryphal tale, was busy painting the walls of the recording studio when a very young Mick Jagger popped by for a visit._

([http://www.guardian.co.uk/music/2007/jun/21/popandrock.vinyl...](http://www.guardian.co.uk/music/2007/jun/21/popandrock.vinylword))

...I read this a while ago and it screamed BS, but the truth is, anybody who was working with skinflints like Ahmet Ertegun was going to be underpaid. If you go back in time, you'll find people like Scott Joplin who got relatively good royalties. It depends on the deal-making. Led Zeppelin was 1/2 professional (not kids) and got a professional manager (Peter Grant) who made sure everyone got paid. The stones lived far beyond the typical pop band's longevity, and so matured enough to swing deals properly.

</comment><comment><USER6> I recall that some people did make a lot of money on record sales. It just depended on your deal. The Beach Boys owned the copyrights to their songs and that probably contributed to their financial success. They seemed to be very wealthy and didn't have a huge succession of number one hits but a few number ones and a lot of successful singles and records.

Most people in that business make no money though from what I've seen. I have to believe that some of the more successful artists and bands that I listen to do alright (e.g. Belle & Sebastian, Arcade Fire, Brian Eno, Neko Case, etc.). Maybe I assume that because I can't imagine them working a job.

<comment><USER7> Maybe he's exaggerating when he says "no-one got paid". The point is though, then and now, that only a very small number of artists really make money from record sales. The smaller artists have always had to support themselves with gigging and touring.

Artists have been kicking up a fuss because maybe they see piracy as a barrier to their big cash in. the reality is, i would suggest, that they wouldn't be cashing in anyway.

<comment><USER8> Even the megastars tour & concert. Isn't it because musicians are performers / entertainers? Making albums only is probably not enough (emotional) reward.

<comment><USER9> Yes, people like appreciation and a crowd of thousands screaming/moving/kissing side by side with your creation is a very rewarding experience. Plus, the sex :)

PS: I only played at small, local bars... so for me it's more like my mom, 5 friends, and some free beers.

</comment></comment></comment></comment><comment><USER10> I think a musician that travels the world working what would be equivalent to full time hours anyone else would work they should make a good wage and then a little bit extra.

I think things are a little flawed if musicians expect to be able to put out an album once in a while and become rich on that. I don't think music should be always free but maybe the price expected is a little bit over the top.</comment>


Life tips from my long gone father - <AUTHOR> https://medium.com/life-tips/when-i-m-gone-f1611ceb759f

<comment><USER2> Amazing story. To think that son get lessons from dad who's younger than him... This could be a great book. Thanks for this link.</comment>


Panthers on the Prowl in London - <AUTHOR> https://quadrant.org.au/magazine/2019/01-02/panthers-on-the-prowl-in-london/ <comment><USER2> This brought _Portrait of a Lady_ to mind. Although Gilbert Osmond is an American ex-pat, Lord Warburton isn't. While the parallel isn't exact, the era James describes is.</comment>


SOCA has taken control of this domain name. - <AUTHOR> http://rnbxclusive.com/

<comment><USER2> That word again:

"The majority of music files that were available via this site were _stolen_ from the artists."

I only hope that SOCA can track down the files and return them to the artists.

</comment><comment><USER3> Did we just get trapped by clicking the above link? There have been cases were people just idly clicking on a link have been deemed to be guilty even if it was just as a result of curiosity. See: <http://news.cnet.com/8301-13578_3-9899151-38.html>

Shouldn't there be warnings before people post links like that which may have unintended consequences for the link clickers?

<comment><USER4> Oh come on. Grow a pair of balls - if you've just been 'trapped' by a link then have the guts to go to court and fight for something. Don't be such a bloody wimp.

<comment><USER3> Perhaps - but the point is that the link is sitting there without any warning at all about the fact that the site is threatening anyone that clicks on it. At the very least there should be a [WARNING]. Who's to say that someone won't post a honeypot link of the style mentioned in the above article I just cited? If you didn't read that, you should. Entrapment on the internet is real.

<comment><USER4> If such a link is suspected then we should spread it far and wide, rendering it effectively useless.

</comment></comment></comment></comment><comment><AUTHOR> [http://torrentfreak.com/uk-seize-popular-music-blog- arrest-o...](http://torrentfreak.com/uk-seize-popular-music-blog-arrest- operators-and-threaten-readers-120214/)

</comment><comment><USER5> Why the concern for "young" artists? I guess once you hit a certain age, your value as a propaganda pawn diminishes?

</comment><comment><USER6> What's SOCA's policy on Data Protection? Since they're admitting they've taken my details don't they have to comply with UK law in that area? I came to it via the link on the BBC <http://www.bbc.co.uk/news/technology-17039722>

</comment><comment><USER7> That was the most guilt-trip-laden copy I have ever read.

</comment><comment><USER8> At least it was SOCA, not CHAOS or SPECTRE. Then we'd be in real trouble.

Bond: "Do you expect me to talk?" Goldfinger: "No, Mr. Bond. I expect you to die."

</comment><comment><USER9> That's a pretty aggressive message they posted. If you have downloaded, you face maximum penalty of 10 years imprisonment and an "unlimited" fine. Unlimited? Is this how they're raising money for anti-piracy programs now? And SOCA has the capability of monitoring and investigating me? I'm not even in the UK, and I never visited the site before. This is shameless fear-mongering.

<comment><USER10> Yeah, no kidding. I read the message with my IP and OS/browser and the message "we're coming to get you, Barbara!" and just rolled my eyes. Visiting a domain is not illegal, let alone "serious organized crime".

<comment><USER3> Not so sure about that. Check here: <http://news.cnet.com/8301-13578_3-9899151-38.html>

<comment><USER10> I don't think this is the same. In the FBI case, the link was very obviously going to something labeled as illegal. The case would have to show intent, which the FBI was able to prove. In this case, all you'd have to do to defend yourself against legal repercussions is show this HN article. The CNet article doesn't give any indication that these people clicked the FBI's links expecting to get anything OTHER than illegal materials.</comment></comment></comment></comment>


Ask HN: Help with username - <AUTHOR> I"m trying to make a standard username for all social media. I wear many hats, and my name is fairly common. I could do something like IAmMyName, but that annoys me for some reason. I have been using a weird, nonsensical name I find funny. But I'm thinking it might confuse or turn off people.
I know the most important thing is to be consistent, and I admit I change my name quite often because I can't find one that feels right. I could go with my middle initial between my first and last name like FirstMLast, but I don't use my middle initial. So, won't that add some confusion?
This seems so trivial yet also seems like an important decision. What are your thoughts? <comment><USER2> You're overthinking usernames.

But if IAmMyName is an option, how about TheRealMyName, DefinitelyMyName or MyNamesEvilTwin?

<comment><USER3> What about DistinctMyName? JobMyName? KindMyName? CruelMyName? Simply choose an adjective, perhaps a location, something to distinct you from the other homonyms.

<comment><AUTHOR> ok thanks</comment></comment></comment>


A400M Airbus Flier crashed because of software issues - <AUTHOR> http://translate.google.com/translate?hl=en&sl=de&u=http://www.spiegel.de/politik/ausland/airbus-a400m-militaermaschine-stuerzte-wegen-software-problemen-ab-a-1034421.html <comment><USER2> Software contractor for Airbus and Rolls-royce here.

All safety critical software (every piece of code ran on-board is safety critical the least) in aerospace needs to pass the DO-178 standard [1].

That is far more serious than standard unit tests you are used to in node.js applications. Generally speaking, to develop a piece of code under that standard it takes 20% of time to write the code, and 80% to testing, and enormous amount of documentation (that is optimistic estimation, usually worse).

Quoting speaker from DO-178 training course I attended:

       People often ask us. "How do we know the standard works?"
       We give this answer: "We do not know. But there have been zero crashes due to software issues since introduction"

If this crash confirms the cause to be a software bug, that is something much bigger than an airplane crash - a huge punch to the whole federal aviation administration.

[1] - [http://en.wikipedia.org/wiki/DO-178B](http://en.wikipedia.org/wiki/DO-178B)

<comment><USER3> Which programming language is commonly used there? Ada, C, C++, JOVIAL, Asm?

<comment><USER4> With that kind of coding-to-testing-and-documentation ratio, does it even matter?

<comment><USER5> Yes, definitely.

For a quick example, there are many languages where you _cannot_ accidentally run off the end/start of an array, barring a compiler error.

With a language like C / C++, it's _possible_. Not _probable_ , given that sort of testing. But _possible_ nonetheless.

Some languages are also easier to test than others, partially because of this, partially because of other issues. For instance, in some languages you can guarantee at the language level (again, barring compiler errors) that something won't be modified. (Like const, but actually working.)

</comment></comment></comment></comment><comment><USER6> Here's Airbus's statement on the Alert they sent to operators:

 _Airbus Defence and Space has today (Tuesday 19 May) sent an Alert Operator Transmission (AOT) to all operators of the A400M informing them about specific checks to be performed on the fleet._

 _To avoid potential risks in any future flights, Airbus Defence and Space has informed the operators about necessary actions to take. In addition, these results have immediately been shared with the official investigation team._

 _The AOT requires Operators to perform one-time specific checks of the Electronic Control Units (ECU) on each of the aircraft 's engines before next flight and introduces additional detailed checks to be carried out in the event of any subsequent engine or ECU replacement._

 _This AOT results from Airbus Defence and Space 's internal analysis and is issued as part of the Continued Airworthiness activities, independently from the on-going Official investigation._

They're asking for a one-time check to be performed on the ECU. If it's just a software bug, normally a one-time check wouldn't reveal whether or not that bug could trigger. So, obviously they've found something they're concerned about, but it seems to me to be a bit early to say as Spiegel Online do that software caused the crash.

In any event, one of the flight recorders was only just sent off to the manufacturer: [http://economictimes.indiatimes.com/news/international/world...](http://economictimes.indiatimes.com/news/international/world- news/a400m-black-box-sent-to-us-to-seek-crash-clues- sources/articleshow/47331926.cms)

<comment><USER7> Or it seems like the problem may have been a known (or suspected) issue with an old firmware, and the check is to make sure the firmware is above a certain version (which would also explain why the check would be necessary on any replacement ECUs).

<comment><USER6> The A400M that crashed was on its first test flight, so unless they've done something very odd with versioning, it's unlikely that all its ECUs had older firmware than planes that already shipped. Besides, with aircraft, all changes are logged with a ton of paperwork, so they shouldn't need to check the aircraft to know what firmware they're running.

<comment><USER8> It doesn't seem so unlikely to me. Supply chains are long and parts are bought in bulk. I think it's likely that the parts for the ECUs, including boards with chips containing the older firmware, are warehoused where the ECUs are assembled. The ECUs are probably then bought in bulk and warehoused where the planes are assembled. The paperwork for the plane probably includes the ECU serial numbers, but it probably doesn't include serial numbers for all of the components installed on all of the boards inside the ECU, especially if they didn't have the foresight to think that those numbers would matter. Afterall, it seems there's a way to get the firmware version by querying the ECU.

<comment><USER9> I think you underestimate the tracking done in commercial airplane manufacture. I believe the source of every rivet is well-known. And how many planes do they make? Many parts are likely manufactured as needed, one at a time.

<comment><USER8> I'm sure the tracking is a lot more detailed than, say, consumer products, but it's probably not as detailed as it is for space hardware. There's a cost to that tracking, and the commercial airplane industry needs to be cost- competitive. So I'm assuming they track well enough to meet their own and government-imposed safety standards, but perhaps not well enough to be able to look up the chip firmware for each circuit board on every in-service airplane in a database.

As far as JIT manufacturing, that's certainly the case for bigger parts and systems, but it sounds like the ECTs are replaceable so they probably have backup replacements stocked near most major airports. (Assuming it's a part that can be replaced during routine pre-flight maintenance.) And the components that go into the ECTs are almost certainly produced in large batches rather than continuously.

</comment></comment></comment></comment></comment></comment><comment><USER10> Watching too many air-crash investigation episodes had lead me to believe 0% of media reported "facts" surrounding plane crashes.

I will wait for the official accident investigation report.

<comment><USER11> This is a very sound decision.

The media is infamous for not getting facts straight. They much rather write an opinion based on suspicion.

Well, no, thank you. Give me facts, get them straight, then _I_ will make up my opinion.

<comment><USER12> Related: the Gell-Mann Amnesia effect.

<comment><USER11> The Gell-Mann Amnesia effect seems to be a specific version of something more general: cognitive dissonance. The fact that the media is not to trust is not forgotten, it is simply not evaluated and acted upon. It sits there in your brain until you sceptically reflect on what you think to know and how you act. Some people do that to some degree, most less so.

We have had a long time to recognize that our brains don't work well. It is time to accept the facts.

</comment></comment></comment></comment><comment><USER13> I worked on software for the C-130J military cargo plane. It was before my time, but an earlier model aircraft crashed during a test flight. The crash occurred shortly after take off, and the entire crew was lost.

There is a critical time period during a take off when the aircraft is at maximum risk. If an engine fails before rotation (i.e. before the wheels leave the ground) an alert crew can stand on the brakes and use thrust reversers. The aircraft may get dinged up, but there is a reasonable chance the crew (and passengers) will survive.

If there is an engine failure after rotation but before the aircraft has gained sufficient altitude, unless there's a big, flat field next to the runway a crash is almost inevitable.

When an aircraft turns, it will lose altitude unless the crew compensates by adding power. An aircraft without power and sufficient altitude cannot make the turns necessary to go all the way around to land on the runway they just left.

<comment><USER14> Your post is substantially correct, with a clarification on rotation speed(Vr) vs takeoff decision speed (V1).

There are three relevant speeds for large aircraft. (I'm going to generalize very slightly to keep this short and readable.)

V1, Vr, V2.

V1 is the takeoff decision speed. An engine failure recognized before reaching V1 is handled by aborting the takeoff. An engine failure recognized after reaching V1 is handled by continuing the takeoff. At the V1 callout, the pilot flying removes their hands from the top of the throttles (as a physical reminder that aborting/rejecting the takeoff(RTO) is not happening for a simple engine failure).

Vr is the rotation speed, where the nose wheel is lifted from the ground.

V2 is the speed at which the airplane will climb safely with one engine INOP.

In most cases, V1 is the lowest speed, meaning there are cases (between V1 and Vr) where an engine out with the nosewheel on the ground results in continued acceleration, then rotation, and flight.

It's a checkride bust to RTO above V1 for a simple engine failure.

<comment><USER13> Thank you for clarifying my post. I am not a pilot. I am a software engineer (retired). I worked briefly on the C-130J mission computer operating system, then on the maintenance software the ground crews used to maintain the aircraft.

I did not know that there was a situation when a flight crew would continue a take off after an engine failure but before rotation.

</comment></comment></comment><comment><USER15> I am not surprised at all. There are a lot of contractors involved in the development of the software for the A400M, and they are basically competing for price and employing undergraduates making below €18K/year, which they replace every few months due to burnouts and bad working conditions. Projects get continuously delayed, and key people barely stay more than a couple of years.

<comment><USER16> Have you been involved with the engineering of aircraft control systems, or are you just speculating?

<comment><USER17> I can confirm similar situations for other EU IT projects. Currently, I am a contractor working on the IT side for the Galileo Satellite System. Although the IT consulting company that I work for pays significantly better then the 18K mentioned (25K-30K range) the quality of the work that is delivered is terrible. The mentioned salary is for graduate engineers.

The attrition rate is terrible and its impossible to keep people who have knowledge of the program on board.

I would guess that 30-50% of our team are inexperienced java software engineers with less then 5 years of working experience. Around 100 people work on our project but there are probably 3-5 people who still have a clear picture of how everything is working / supposed to work.

<comment><USER18> Uh, there's a massive difference between contracting on satellite systems and contracting on civil aviation systems.

<comment><USER19> In America such things are more often done by DoD contractors and they are paid well and space systems are more tightly controlled than civil aviation.

</comment></comment></comment></comment></comment><comment><USER20> I have done a quick and rough translation of the German article into English. Hopefully this is better than the Google Translate version: [https://gist.github.com/alexcoplan/0018e3320f99a612c737](https://gist.github.com/alexcoplan/0018e3320f99a612c737)

<comment><USER21> Much more readable than the Glenglish version -thank you.

I still don't understand "The crash is the worst accident since the development of the A400M", though. To me that implies there was a pretty devastating accident during the development.

<comment><USER22> This is not a translation error. This sentence has the same puzzling meaning in the German version.

I think it's sloppy journalist writing for the worst accident that happened with the development of the A400M.

</comment></comment></comment><comment><USER22> There are not many details about why exactly the three engines stopped working and it's not yet officially announced. This article has been written with "information Spiegel Online received".

Two translated quotes: "The investigation yield a clear result: Shortly after the lift-off of the test machine, the computers send conflicting commands to the three engines which then powered off."

"Soon after the crash, experts of the German Air Force suspected a software issue with the fuel supply unit because such a fatal drop of power so soon after the start could hardly be explained differently."

So, not much information why the computers sent conflicting commands and also why the engines power down in such a situation.

<comment><USER23> > So, not much information why the computers sent conflicting commands and > also why the engines power down in such a situation.

I think shutting down the engines is probably the safest option when this sort of thing happens. You could argue they should stay in the present setting, but what would happen if one engine were at 0% and another 100%?

Most aircraft are pretty good at gliding even without power, and I'd assume a deadstick landing is part of the pilots training. In 2001, TS236 flew unpowered for 19 minutes before making an emergency landing (on a runway) with only minor injuries:

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

<comment><USER24> >what would happen if one engine were at 0% and another 100%

Planes are designed to fly fine in that situation - it's what you get if one engine breaks down. Now landing the thing with one engine stuck on 100% would be interesting. I guess you could kill the engine somehow - turn off the fuel or pull the fuses.

<comment><USER25> Planes with four engines are certainly not designed to fly with 3 of 4 engines out...

<comment><USER26> Indeed, planes are not designed to be flown in that configuration normally, but they are certainly _capable_ of single-engine flight in emergency situations (where the alternative would be "flying like a ton of bricks"). Exhibit A: [http://en.wikipedia.org/wiki/British_Airways_Flight_9](http://en.wikipedia.org/wiki/British_Airways_Flight_9)

<comment><USER25> No, actually "capable of flying" means capable of performing all flight maneuvers required for safe flight and landing, including takeoff, go-around and approach/landing. BA Flight 9 failed all four engines, normally not survivable - but managed to restart all four engines by windmilling. So they recovered in time for landing.

<comment><USER27> Just curious, where did you find that definition of "capable of flying"? Because under that definition a glider ( unless it is a motorize glider ) is not "capable of flying".

</comment></comment></comment></comment></comment></comment></comment><comment><USER28> Dear Engup, I have read your thread that is unfortunately deleted. I am the author of the Spiegel-Story on A400M [http://www.spiegel.de/politik/ausland/airbus-a400m-militaerm...](http://www.spiegel.de/politik/ausland/airbus-a400m-militaermaschine- stuerzte-wegen-software-problemen-ab-a-1034421.html) I would like to get into touch with you. email@example.com Best Gerald

</comment><comment><USER29> I wonder if this is the time to argue that it may be worth open sourcing the controlling software for hackers to start criticising and contributing pull requests to. I'm willing to bet that the competence of the collective community far outweighs that of those specially trained to write the software at present.

What is there to lose by opening up the software to criticism other than better aviation safety? We know that obfuscating / hiding source code does not make applications / platforms safer or less at risk to malicious behaviour so I'd like to challenge the manufacturers to do so.

<comment><USER30> While I agree with your statement that open sourcing code can help with improving it's quality, how exactly do you envision (paraphrasing) "hackers contributing pull requests" to code that controls engines on an airplane? Here you have an extremely specialized codebase which can perhaps be understood by a tiny group of professionals and it can actually be tested by an absolutely vanishingly small group of individuals under special circumstances. I don't think "hackers" could even begin to make useful critique of this kind of software, let alone contribute pull requests to it.

<comment><USER11> You sound exactly like my current boss, who says that Linux is just a hobby project that you can put no trust in.

I mean, who would fix problems if it's just a hobby? And if it's open, it must be a hobby. Surely, that can't possibly work!

<comment><USER30> Did you actually read my post? If yes, can you seriously not see the difference between writing/testing an OS and writing/testing the software that controls jet engines?

Open sourcing something like Linux works very well _precisely_ because it has a very large audience and is (relatively) approachable by hobbyists too.

On the other hand, aerospace engineering and software is narrowly specialized with a (relatively) small group of experts and code used in commercial/military aircraft is anything but approachable to hobbyists.

Then there is the fact that unit testing this kind of code requires engineering knowledge of the specific hardware involved (e.g. not just any jet engine, but one very specific model). Finally, let us not even mention the huge pink elephant in the room, namely that the absolute and vast majority of "hackers" does not have access to jet engines used in commercial (or military) airplanes and even fewer have the ability to conduct test flights.

</comment></comment></comment></comment><comment><USER31> Aircraft manufacturers and operators go through great amounts of effort to avoid single points of failure. E.g. on a twin they overhaul the two engines at different times.

But this is different. I wonder if they need to rethink their approach to software? Four engines, running the same software --> single point of failure.

</comment><comment> sean-duffy Wow, this comes as a shock! Last year I saw the A400M appear at the Royal International Air Tattoo and was very impressed, as were many others. Hopefully they'll find the problem and this won't be too much of a blot on the development of this aircraft.

</comment><comment><USER24> From another report:

"Problems in developing the engines, and particularly in certifying the engine control software, contributed to three years of delays and a new cash injection by governments in 2010."

Seems like they had some issues. Surprising it's that difficult.

[http://www.reuters.com/article/2015/05/19/airbus-a400m-idUSL...](http://www.reuters.com/article/2015/05/19/airbus-a400m-idUSL5N0YA28V20150519)

</comment><comment><USER32> I wonder if this is what lead to Airbus making a pretty vague statement compared to Boeing about its software on this other recent related news:

[http://www.bloomberg.com/news/articles/2015-05-18/hacker- cla...](http://www.bloomberg.com/news/articles/2015-05-18/hacker-claims-of- plane-takeover-aren-t-credible-official-says)

</comment><comment><USER33> So basically the software bug happened, because there are quality problems in the manufacturing street? wtf!?!?

<comment><USER11> The original speaks of quality problems in the manufacturing plant. This is very general and could include problems in the design phase up to the flashing of the module after assembly of the plane.

<comment><USER34> I think the OP was reacting to the use of the term "quality problem" to describe a catastrophic failure leading to loss of human life. At least, that was my response when reading that quote.

</comment></comment></comment><comment><USER35> Anyone know how much effort Google is putting into improving Translate? It feels like it hasn't gotten much better over the years even with these first- tier language pairs.

<comment><USER36> Effort has little to do with it. If you don't have an angle of attack, you can't solve the problem. Humans have years of experience to put a text into context and interpret it.

<comment><USER35> That would be a bad excuse for not improving even if GT matched the state of the art. But it's doesn't for many/most languages.</comment></comment></comment>


Steve Jobs on How the iPhone Does and Doesn't Use Location Information - <AUTHOR> http://mobilized.allthingsd.com/20110427/exclusive-apple-ceo-steve-jobs-on-how-the-iphone-does-and-doesnt-use-location-information/

<comment><AUTHOR> _"We haven't been tracking anyone," Jobs said in a telephone interview with Mobilized on Wednesday. "The files they found on these phones, as we explained, it turned out were basically files we have built through anonymous, crowdsourced information that we collect from the tens of millions of iPhones out there."_</comment>


Show HN: GetMetrics – Metrics and Notifications for Stripe - <AUTHOR> https://getmetrics.io

<comment><USER2> Looks like [https://baremetrics.io](https://baremetrics.io) and [http://hookfeed.com](http://hookfeed.com) combined. What are the main differences?

</comment><comment><USER3> This looks like baremetrics and bestunning.net combined. Sort of nice to have those two things integrated for what looks to be about half the price. Not sure it'll last though after baremetrics secured an investment from stripe itself. I also found out about baremetrics after emailing stripe (they recommended it). Hard to compete with that without some compelling differentiation.

<comment><AUTHOR> Thanks for your feedback. I have some ideas in mind to create the differentiation you mentioned. But it was time to launch this thing and learn more from real users before building everything I'm thinking of.

</comment></comment><comment><USER4> Congratulations for launching, but maybe you can rise the prices a little bit. You are providing a lot of value for business owners. BTW you had "gurantee" in the pricing section.

Shameless plug: I launched today a similar product for Paymill, [http://rhinometrics.io](http://rhinometrics.io)

<comment><AUTHOR> Thank you, and congratulations for launching Rhinometrics. Regarding prices - you're the second person pointing that out, maybe I should really think about it :-) (+ I'll fix the typo - thanks)

<comment><USER5> Do you have an idea of who your dominant customer segment will be? That'll help you determine a more pinpoint entry point for pricing. Pricing is definitely tricky to work on though.

I recommend doing some split testing of the pricing for your plan and seeing which dollar amounts convert across all your versions.

</comment></comment></comment><comment><USER6> Your competitor (Josh Pigford, creator of baremetrics.io) created post about why unlimited plans are bad. I think, that it will be nice to read for you. [https://baremetrics.io/blog/never-offer- unlimited](https://baremetrics.io/blog/never-offer-unlimited)

<comment><AUTHOR> Thanks for your comment. The post (and the discussion below) is very interesting. I will think about it after/while adding more features.

</comment></comment><comment><USER7> Congrats for launching. Baremetrics just received funding, but I'm sure Stripe doesn't mind competition in this area - it just makes ppl use Stripe more. Looking forward to further developments.

</comment><comment><USER8> This is really cool looking. I'll have to get it a shot. I was just thinking today that I could use something like this.

<comment><AUTHOR> Great! Contact me if you have any questions.</comment></comment>


Making the Most of the JavaScript Language (2016) - <AUTHOR> http://thenorthcode.net/2016/01/15/making-the-most-of-the-javascript-language/ <comment><USER2> As someone who works with this every day, I'd say this is pretty solid advice.

The "use a more functional approach" and "take advantage of ES6" are by far the biggest for me. ES6 added so much good stuff, I wouldn't consider it optional. It's better than incremental upgrades, feels almost like a different language to me.

Every language has its quirks, and while I'll keep on hating Javascript's, I'll never lose sight of the fact that if you're holding out for the perfect language, you're not going to be doing much coding.

<comment><USER3> What do you like about ES6? It just looks like syntactic sugar to me, but I'm always interested in re-evaluating.

Writing [1,2,3].map(function(x) { return x+10 }) really doesn't bother me. I don't see what the benefit is of an arrow function. Are there other things that you like?

As the OP mentions, the inheritance stuff is just likely to cause architecture headaches. I like JavaScript's concurrency model (single threaded with callbacks) so I don't see any benefit to the async stuff.

It just seems like people added a ton of complexity to give up a few keystrokes. Transpiling and shimming and adding more control structures make your application more complicated, so there is a real cost. And keystrokes are not generally a big problem when I'm programming. I'm not in a race.

<comment><USER4> The big deal of an arrow function, brevity aside, is that it inherits the value of 'this' from the scope that creates it. Regular functions do not, so to use them as first-class functions you often have to bind before passing, pass around thisObjs for rebinding, do a 'that = this' type trick, etc.

Same goes for 'arguments', though that comes up less. Basically, they're much more representative of a simple lambda than a classical function.

<comment><USER3> What's wrong with explicitly binding the scope? I really like that in JavaScript you have to be explicit about that kind of thing.

<comment><USER4> I actually find it much more clear for this to be set at the place you see the function defined in code--assuming you know what this is in the wrapping scope, you know exactly what it will be in this scope. Technically a bind is more explicit but in practice the bind tends not to happen where the function is defined so you have to go fishing around the code path for it.

And honestly, the sugar often speaks to readability as well. Compare myArray.every(function (x) { return x; }); with myArray.every(x => x).

<comment><USER3> The first is more readable. It uses more common tokens, and is therefore more easily recognizable. You're confusing brevity for readability.

I don't understand your scope preference. These seem the same to me:

      family.findEldestFirst(person => this.isRoyal() && person.name == "Kate")

vs

      family.findEldestFirst(isPrincess.bind(family))

      function isPrincess(person) {
        return this.isRoyal() && person.name == "Kate"
      }

11 tokens vs 16, same order of magnitude. Second one has an explicit return, which is good for readability. Shorter lines, to which is better for readability. Also relies on fewer control structures, which is good for readability. No need to understand the =>/-> distinction, which is very subtle and beginners won't know about it. To me I'd rather just learn functions and closures and be done with it.

... And frankly I think using "this" that way in either case is not a win. I'd rather make family its own argument to isPrincess:

      family.findEldestFirst(isPrincess.bind(null, family))

      function isPrincess(family, person) {
        return family.isRoyal() && person.name == "Kate"
      }

Mm. Dat explicitness. Anyway... I think I'm not understanding you. How is this forcing your hand in terms of where you bind the scope?

Franky, my sense is that the people who like ES6 and promises are people who are just allergic to writing named functions. Named functions make callback hell go away, and they solve all the problems these arrow functions do. Somehow people think it's bad form to define lots of functions. But defining functions is my job. :) It doesn't bother me.

My sense is it's just Rubyists who miss Ruby and think "more Rubyish" is better. I sympathize because my path was BASIC -> PHP -> C# -> Ruby -> JavaScript. But I think it is a mistake to try to bring your old idioms to a new language.

... and if I wanted to reduce character count above all else, I'd just go use PERL.

</comment></comment></comment></comment></comment></comment><comment><USER5> What I can't recommend enough (and hinted at in the article) is for someone to use a transpiler like Babel (and core-js, babel-preset-env, and etc). There's no reason not to use many of the new features and new functions of ES2015+, and you can do that right now even if you're targeting old browsers with transpilation and a bit of automatic shimming.

<comment><USER6> How does debugging in the browser console work when you use that approach?

<comment><USER7> Normally you have mapping files which tell your browser which bits correlate to the outputted "compiled" code.

Thus in your browser you see the code you write, you put in breakpoints as desired, and everything generally works.

I don't have much depth as to how it all works behind the scenes though, I'd love to know more.

<comment><USER8> The feature is called "source maps". Here's an MDN article about it [https://developer.mozilla.org/en- US/docs/Tools/Debugger/How_...](https://developer.mozilla.org/en- US/docs/Tools/Debugger/How_to/Use_a_source_map)

</comment></comment></comment></comment><comment><USER9> JS has some seriously rough edges, but I love it because I adhere to a lot of what the article preaches. I never end up with any gotchas because I use the "right" parts of the language.

</comment><comment><USER10> Classical inheritance is useful in JS sometimes, but I agree with the sentiment of "don't use it unless you have a reason to".

<comment><USER11> Ya, that part I don't agree with. Especially since he also says to use ES6 features, which includes the new class syntax, making it a lot more straightforward to use classes + inheritance (even if it's still prototypical under the hood).

<comment><USER12> I suppose it could be considered more 'general' programming advice, not specific to JS. At least here on HN there seems to be a consensus that classical inheritance more than 1 layer deep is a bad idea (correct me if I'm wrong though, dear HN readers and writers!).

Personally I'm a huge functional programming weenie for no reason I can coherently defend, so I prefer to avoid ES6 classes. But quite often they end up being the most reasonable solution to my problem, and having syntax for it is great. I just avoid them by default.

</comment></comment></comment><comment><USER13> While I use `const` for a lot of my variables that I don't want to change it feels super-super wrong.

<comment><USER14> What feels wrong about it?

<comment> aaron-lebo It's an incredibly verbose way to do what you'd prefer to be the default.

val or con would have been better.

<comment><USER15> Going way back to ancient Lisps `let` has been the const declaration in a lot of programming languages. It's too bad ES2015 decided to use `let` for `var`/`val`, because `let` should have been const.

That said, I've come to terms with const, even if I find I accidentally use let sometimes from time spent in Lisp and F#.

<comment><USER16> _let_ is not a "const declaration" in most major dialects of Lisp, current and historic. In Scheme, Common Lisp, ISLisp, Emacs Lisp and others, it introduces mutable bindings.

<comment><USER15> Apologies, my Common Lisp is getting rusty.

</comment></comment></comment></comment></comment></comment><comment><USER17> I disagree on "avoiding classical inheritance", though I didn't drink the functional programming kool-aid so what do I know. That aside, I like the article, JS is my second favorite language and I'v never gotten the hate for it. I'm glad it's improving so much.

</comment><comment><USER18> > Closures are a great way to maintain private variables in JavaScript but > also seem to be a source of great misunderstanding.

Very true on both counts, but unfortunately the article perpetuates some of this misunderstanding.

> Where it gets interesting is when you return a function from an outer > function...

Abbreviated example from the article:

      var outer = function () {
        var a = 1;
        return function inner() {
          return a;
        };
      };

...and that's the only example. No mention of where closures are actually most useful, and not a peep that you _don 't need_ a function that returns a function to get one. Any function call can get you a closure.

I deal with this frequently on Stack Overflow. Someone asks a question where a closure is a great solution, and then someone answers with a complicated example involving a function that returns a function.

It seems to come up a lot in Google Maps API code:

      var places = [
        { name:"Test", lat:10, lng:10 },
        ...
      ];

      function initMap()
        var map = new google.maps.Map(...);
        for( var i = 0;  i < places.length;  ++i ) {
          var marker = new google.maps.Marker(...);
          // This is the complicated part:
          marker.addListener( 'click', (function( marker ) {
            return function() {
              // This works because of the closure:
              infowindow.open( map, marker );
            }
          })( marker ) );
        }
      }

It doesn't have to be done that way! You'll get a closure that works just as well if you simply _call a function_ in the loop:

      function initMap()
        var map = new google.maps.Map(...);
        for( var i = 0;  i < places.length;  ++i ) {
          addMarker( places[i] );
        }

        function addMarker( place ) {
          var marker = new google.maps.Marker(...);
          marker.addListener( 'click', function() {
            // We have a closure here too:
            infowindow.open( map, marker );
          });
        }
      }

There are other ways to do this in modern JavaScript (such as using let inside the loop). I'm using old-school JavaScript here just to show that it could be done this simply even in the oldest browsers.

Of course, the same thing can be done with forEach():

      function initMap()
        var map = new google.maps.Map(...);
        places.forEach( addMarker );

        function addMarker( place ) {
          var marker = new google.maps.Marker(...);
          marker.addListener( 'click', function() {
            // We have a closure here too:
            infowindow.open( map, marker );
          });
        }
      }

Or with the forEach callback inline:

      function initMap()
        var map = new google.maps.Map(...);
        places.forEach( function( place ) {
          var marker = new google.maps.Marker(...);
          marker.addListener( 'click', function() {
            // We have a closure here too:
            infowindow.open( map, marker );
          });
        });
      }

The point in each of these cases is that you don't need a function that _returns_ a function to get a closure, but people who answer SO questions perpetuate this myth day after day.

</comment><comment><USER19> Closures are so nice. Working without them makes everything so much more difficult and inelegant.</comment>


A tiny version of Linux for education - <AUTHOR> http://thetechblock.com/interview-with-mike-levin/

<comment><USER2> I know this might sound like a "get off my lawn, kid" comment. Reading through what Mr. Levin answers here, he makes a lot of good points that I have thought a lot about lately. We have a lot of "neat learning to code" sorts of kids environments (Scratch comes to mind). It's like we have decided that new programmers can't learn to program if we don't give them some graphical environment that requires a minimal amount of actual code and copious amounts of sprites and game tidbits. But a lot of us were taught to program (or just hacked away until we learned) on systems with half the functionality of Levinux. I meet a lot of new "professional" developers who wish they had learned on systems like Mr. Levin describes instead of "newer" IDEs where you drag and drop bits of things and they "just work". When asked why they didn't try, they always seem to say something about not knowing where to start. There is nothing wrong with newer IDEs and drag and drop development, but this is a great way to push all of that aside and learn the "muscle memory" of development that Levin describes so that developers can become "spontaneous natural coding problem solvers".

Oh, and get off my lawn!

</comment><comment><USER3> Hi, Mike Levin here. Sorry, can't help following my Referrers (HitTail habits die hard). The "knowing where to start" problem is exactly what I'm trying to address with Levinux. Something I didn't get into in the interview was how I actually started out on the Amiga computer, and had the carpet pulled out from under me, and then moved to Active Server Pages in Windows, and again had the carpet pulled out from under me. The short stack is a fool me twice, shame on me reaction to the state of dev-tech. If not your main dev platform, then at least a safety net.</comment>


Coronavirus pandemic may lead to 75,000 "deaths of despair" - <AUTHOR> https://www.cbsnews.com/news/coronavirus-deaths-suicides-drugs-alcohol-pandemic-75000/ <comment><USER2> Now add in deaths due to the following reasons, and you'll start to get the real picture of what we've done.

People who are avoiding treatment for heart attacks, strokes, and other critical conditions:

[https://www.washingtonpost.com/health/patients-with-heart- at...](https://www.washingtonpost.com/health/patients-with-heart-attacks- strokes-and-even-appendicitis-vanish-from- hospitals/2020/04/19/9ca3ef24-7eb4-11ea-9040-68981f488eed_story.html)

[https://www.bmj.com/content/369/bmj.m1931](https://www.bmj.com/content/369/bmj.m1931)

People who are not scheduling cancer screenings, heart bypass surgery, and other elective procedures:

[https://agoodwar.com/the-ban-on-elective-procedures-is- killi...](https://agoodwar.com/the-ban-on-elective-procedures-is-killing-more- people-than-covid-19)

People who will get tuberculosis:

[http://www.stoptb.org/assets/documents/news/Modeling%20Repor...](http://www.stoptb.org/assets/documents/news/Modeling%20Report_1%20May%202020_FINAL.pdf)

People who will starve:

[https://www.france24.com/en/20200422-un-says-food- shortages-...](https://www.france24.com/en/20200422-un-says-food-shortages- due-to-covid-19-pandemic-could-lead-to-humanitarian-catastrophe)

<comment><AUTHOR> And just the increased insecurity, job loss, and upheaval, will probably have bad effects for years to come.

I feel we know enough about the virus now and how it spreads that many things can re-open, and governments/courts should affrim the rights of businesses to require masks and enforce limiting the number of people in the store, etc. They could also make sure masks--proper surgical masks (for people at low risk) and N-95 ventilators (for people at high risk) are available.

<comment><USER3> I don't see any reason for courts to affirm either of those things since limiting occupancy and requiring masks are clearly within the rights of private companies and always have been.

Perhaps courts might need to affirm them for use on public property and public lands like parks.

<comment><AUTHOR> That's what you and I believe, of course. But some people don't and that's what courts are for.</comment></comment></comment></comment>


The Age of Code - <AUTHOR> http://boundary.com/blog/2014/09/16/age-of-code/

<comment><USER2> Interesting article by the guy who clearly have been there...</comment>


PyCharm 4.5 released - <AUTHOR> http://blog.jetbrains.com/pycharm/2015/05/meet-pycharm-4-5-all-python-tools-in-one-place

<comment><USER2> I used to keep up to date on my IntelliJ, Rubymine, and PyCharm licenses. Rubymine and PyCharm are lighter weight.

It is mostly to save money, but now I only keep IntelliJ up to date and install the relevant Ruby and Python plugins. I also stopped using the separate free Android version of IntelliJ and have the Android plugins installed also.

I did go through my IntelliJ settings and removed all the plugins that I don't use - something I recommend.

<comment><USER3> Does an up to date IntelliJ offer the same full set of functionality as PyCharm? As in, is PyCharm just IntelliJ minus some stuff, or does it have features IntelliJ doesn't have?

<comment><USER2> I think that it does.</comment></comment></comment>


US Army Field Manual 3-0: Operations (2008) - <AUTHOR> http://www.army.mil/fm3-0/FM3-0.pdf Among people who have been in leadership positions, I think many will agree reading a diverse set of perspectives is valuable, and a surprising number of leadership lessons translate between technical domains. <comment><AUTHOR> Humbly submitted to founders. Among people who have been in leadership positions or find themselves in a leadership position for the first time, I think many will agree reading a diverse set of perspectives is valuable, and a surprising number of leadership lessons translate between technical domains. This strives to contribute to the body of learning represented by Sun Tzu's Art of War and Marcus Aurelius's Meditations (also excellent reads).</comment>


Tynt.com raises $8 Million for Copy and Paste Sharing Analytics - <AUTHOR> http://www.techvibes.com/blog/tynt-raises-8-million-for-copy-and-pasting

<comment><USER2> _Through its unique patent-pending method of anonymously detecting copy and paste behavior on any website_

Really?

</comment><comment><USER3> Well that's 50% of my hosts file entries pointing to 127.0.0.1 that have raised a bunch of money.

</comment><comment><USER4> wth? My guess is the $8million is going towards sales team and business dev hires.

$8million?? really?? :S

</comment><comment><USER5> Wow.. quite the win!</comment>


We're looking for coding mentors for our on-demand mentorship startup - <AUTHOR> https://www.rookieup.com/ <comment><AUTHOR> Hey all - I recently launched a mentorship marketplace and we're expanding into coding categories. Currently looking for programmers interested in being some of our launch mentors in these new categories (front-end, back-end, data science, full-stack, etc.). Mentors set their own availabilities and pricing.</comment>


With 1M pre-orders in China, the Nokia X could be a hit after all - <AUTHOR> http://gigaom.com/2014/03/14/with-1m-pre-orders-in-china-the-nokia-x-could-be-a-hit-after-all/?utm_source=General+Users&utm_campaign=08ad44ffb4-c%3Amob%2Capl+d%3A03-15&utm_medium=email&utm_term=0_1dd83065c6-08ad44ffb4-99064657 <comment><USER2> 1 Million Pre-order is a big number as of now, But it would be interesting to see Global Number. Nokia X is a great device of 4-inch screen size, just 512 MB RAM will be an issue as the system will be slow if we install more number of Apps. It's Interesting to see how Microsoft is going to a clear winner in this game, As this Nokia X device uses Microsoft services.</comment>


Ask HN: Apple 30% tax a sign of desperation? - <AUTHOR>

People seem to be thinking that Amazon asking for 30% of subscription revenue is a sign of strength.
What if it's really a sign of weakness? They don't see their earnings increasing enough through sales of their hardware to justify their sky-high valuation.
So they have to adopt Walmart tactics and squeeze the others in the ecosystem.
Thoughts? <comment><USER2> If anything it's a sign of overconfidence. They almost all their money through hardware, and the App store/iTunes store is a very small part of their revenue.

</comment><comment><USER3> In it's first year of sales, the iPad would already be a Fortune 500 company.

Apple has _no_ problem making money off their hardware.

</comment><comment><USER4> When you say "Amazon", I take it you mean "Apple"? Unless that's a development I've missed.

<comment><USER5> It is a freudian slip, since Amazon takes %30-%80 of the money. Apple's flat %30 is cheap compared to the Amazon Android Store, and Apple lets you set the prices (whereas Amazon controls the pricing, so they could sell your app for %90 off to promote their store.)</comment></comment>


What Apple Isn't Doing - <AUTHOR> https://seekingalpha.com/article/4223567-apple <comment><USER2> This article has it backwards. Apple is already doing _more_ than it should.

Apple's competitive advantage, historically, is its reputation for making reliable, high quality products with innovations that make them easy to use.

The phone and computer markets are saturated. The strategy of selling higher priced devices isn't a bad idea. The big problem, if Apple wants to avoid a repeat of the 1990s, is that those devices _need to merit the higher price_. I don't believe they're headed in the right direction on that front.

The more products Apple makes, the less focus each product will get. Apple should _simplify_ its lineup again, and make sure what devices it makes are back up to the quality that they had a decade ago.</comment>