Former Apple Employee Charged with Theft of Autonomous Car Project Trade Secrets - <AUTHOR> https://www.macrumors.com/2018/07/10/apple-employee-steals-trade-secrets/ <comment><USER4> So the guy stole data and hardware. Instead of leaving immediately for China before it's discovered, he went back to Apple and told them that he's leaving. And not just leaving, but leaving to work for a competitor in the self-driving car industry. If he wanted to raise any more suspicion, he'd need to show up to the exit interview in a ski mask, carrying a crowbar.

And after that, he _still_ stayed in the US for over two months (April 28 - July 7). This simply defies belief.

I don't even mention the fact that he admitted to the Apple security team that he stole stuff. Presumably without any lawyer since no lawyer would let him admit to anything. Why would he even meet with a security team, if he's not under arrest? Even if he thought he can't get caught, surely he knew something was wrong when the security team called him for an interview?

Maybe he thought it's impossible to prove what he did? But the guy is intelligent, he was hired to an important project at Apple. He must know that corporations have security cameras and also can check corporate device usage.

So I'm down to my final two guesses. Either the guy thought he didn't do anything wrong (really? taking confidential documents and hardware??). Or the article heavily distorts the facts.

Anyone has better explanations?

Edit: just saw the official FBI court filing at the end of the article. The article did not distort anything. I have no words.

<comment><USER5> It could be that it simply never occured to him that he would get caught. When you work somewhere for years you don't think "This security cameras on the entrance could technically be used to track my activity". As the article says, the repositories that he accessed are restricted to THOUSANDS of people. So really the guy was probably right - if he hadn't been a dumbass and said that he was going to work for a chinese competitor then his boss likely wouldn't have thought to ask questions, no one would've noticed.

<comment><USER6> I don't understand how you can blame him and call someone a "dumbass" for being honest.

It looks like the dumbasses are Apple project managers, or Apple lawyers, or Apple security admins or whoever write Apple's policies

<comment><USER7> Are you a dumbass if you are honest? No. Are you a dumbass if you steal and then honestly tell that you did it? Yes. Now don't get me wrong, all criminals are bad. But you have to admit that there is a difference between smart criminals and dumb ones. This person was a dumb criminal. Likely due to him not even contemplating that what he was doing was criminal, in-line with shoplifters who will tell you: "No it's ok to eat the fruit inside the store, as long as it's gone before you get to the counter you don't have to pay"

<comment><USER6> Following your argument, Apple could be a very smart criminal organization that doesn't get caught.

Should we investigate further on Apple to make sure?

Edit : by the way, that guy could have been blackmailed. Someone may have said "If you don't do it, we will harm your family". We shouldn't be judging someone without investigating all the elements, especially when an individual takes the risk of facing a gigantic organization. It should rings bells to everyone.

</comment></comment></comment></comment></comment><comment><USER8> There's information in the complaint that claims Apple has 5000 people working on its autonomous car project:

[https://www.cnbc.com/2018/07/10/ex-apple-employee-charged- wi...](https://www.cnbc.com/2018/07/10/ex-apple-employee-charged-with- stealing-autonomous-car-trade-secrets.html)

<comment><USER9> "5,000 employees are working on it or know about it"

<comment><USER8> They posted a correction.

"Correction: A previous version of the story mistakenly said that 5,000 Apple employees are working on autonomous driving technology. The complaint says 5,000 people are "disclosed on the project," which includes employees working on it or familiar with it."

</comment></comment></comment><comment><USER10> "[In their investigation] Apple found that just prior to Zhang's departure, his network activity had "increased exponentially" compared to the prior two years he had worked at Apple. He accessed content that included prototypes and prototype requirements. .."

Seems like an oversight to find this out post-investigation vs. flagged up front?

EG - seems like a basic usage algorithm could flag this stuff especially across a small <5000 person universe w/cost-benefit vs. theft of tens-of- billions in IP.

Any corporate IT security officers care to comment on this?

<comment><USER11> This is known as insider threat detection / User Behavior Analytics (UBA). It could also be considered part of Data Loss Prevention (DLP). Insider threats are probably the hardest things to reliably detect on a large corporate network (compared to all of the other types of information threats), especially at a company where most of the employees are very active users of technology. The field is still in its infancy, with lots of cool-looking "AI- driven / ML-powered / buzzword-optimized" products from startups which typically end up generating an absurd amount of anomaly detections per day, usually with a 99.9% false positive rate. Of course I'm generalizing and I imagine some companies have implemented a fairly effective UBA program, but I think they're rare.

It's just trying to find a needle in an extremely large haystack. When you're dealing with technology departments, normal behavior can easily be a modest amount of network traffic for a few days followed by a huge burst of downloads and uploads from/to internal services and databases and cloud storage and any number of things. Suspicious website browsing could be innocuous research and curiosity. That personal USB drive plugged in is probably some developer with a deadline who never got around to requesting a corporate drive and can't wait a few days for it to be approved and needs to physically transfer files ASAP.

It's just not an easy problem. There are probably hundreds of other instances of an Apple employee not looking at any prototype data for months and suddenly poring over tons of it. Maybe they're preparing for a presentation or a new project. Adding lots of red tape and restrictions and wasting time investigating employees who've done nothing wrong (or perhaps who violated policy but with no real bad intent or serious negligence) and telling people they can't do certain things which make their job more efficient takes a huge toll on everyone. It's a necessary evil, but trade-offs always have to be considered. Apple wants their autonomous car program developed as quickly as possible, and the more they restrict access and require lengthy approval processes, the slower things will get done.

And fundamentally, unless you're in a weird situation, probably ~0.1% of your employees are insider threats, and probably ~0.01% are significant insider threats which could actually affect your business. The odds are stacked against you.

Occasionally you'll run across a smoking gun that's easy to detect with basic logic like "email sent to webmail account with no subject and over 6 attachments", but if you're dealing with a smart insider threat - <USER2> one working on behalf of a superpower government's intelligence apparatus - you're not going to find something so blatant. I have sometimes run across things like that, but it's usually something gray like a developer emailing themselves some code so they can continue to work on it at home. The worst thing I've ever found was a salesperson emailing themselves proprietary leads/contact lists shortly before their resignation date. A spy is never going to get caught from such low-hanging fruit detections.

You have to start with the basics: strict policy guidelines, least privilege principle, log _everything_ , a good team of people to investigate anomalies and write up employees who are violating policy, and then finally you can shell out a lot of resources on automated detection and baseline and tune for a long time until you have a manageable number of dashboards and reports and alerts that the team can respond to. Apple will presumably restrict access more carefully after this incident, and implement some new statistical anomaly detection, but insider threats will always be hard to detect.

Dabbling in UBA also made me realize some of the issues faced by agencies like NSA. I'm sure they have strong policies against unauthorized data access (like looking up information about romantic partners), fully intend to enforce them, and have lots of manual and automated detections, but in reality the amount of data and number of daily data accesses is probably way too high to consistently catch bad actors. I think that's one of many strong practical arguments to not let them have have easy access to such a big trove of sensitive data, even if you make the assumption they're behaving completely ethically and responsibly.

<comment><USER12> Yes, from my very limited to exposure to this (not in SV, but in healthcare), these are two key points:

 _absurd amount of anomaly detections per day, usually with a 99.9% false positive rate_

 _Adding lots of red tape and restrictions and wasting time investigating employees who 've done nothing wrong_

What I've seen/heard about is that you end up with some EVP pissed off that IT/SEC is bothering their people – rightly or wrongly, it'll inevitably get used an excuse for why something is late. So the EVP (virtually) marches into the office of the IT/SEC director and issues an edict that everyone in <this super special department> are too important to be bothered and any access restrictions or investigations affecting <the department> must get prior approval from the EVP's office. That's of course a huge pain in the ass, which results in that department effectively being exempt, i.e., a perfect place for an internal spy.

The IT/SEC director, often several rungs down from the angry EVP, usually has the authority to stand up to the EVP, technically, but that is a risky move, can easily start a turf war.

So, for these programs to be effective, they must get buy-in from the absolute highest levels with no exemptions, which is not easy in the highly political world of huge organizations.

<comment><USER13> And here I always thought it's EVPs that come up with those ridiculous security measures, not IT/SEC guys, and that's the lower-level managers that have to fight to actually get something done. At one of my previous jobs, it was our direct boss that fought tooth and nail to shield our programming teams from the consequences of the whole corporation deciding to level up some more in ISO standards...

Don't get me wrong. I understand the need for security measures in a company. But there must be some middle ground - some way of securing data and networks without incurring a 1000% penalty on productivity for all your programming teams.

<comment><USER12> Yeah, I've been in environments where they completely locked down internet access, and we had to "fight tooth and nail" to get an exemption for a handful of sites like StackOverflow. I agree it can be a huge productivity problem.

Again, my experience is very limited compared to many, but the best mix I've seen is programmers had basically wide open internet access BUT everything was still logged. And they must have had some type of automated review. A coworker was planning her wedding, and while sitting on conference calls, browsed around a bunch of wedding sites. She got an email from IT asking about that. (It wasn't a big deal, just embarrassing.) Also, certain categories of data could not be copied to a local computer; they had to be manipulated on a server. Technically you could transfer data from the server (again logged), but it was a firing offense if you were found with sensitive data from on your laptop.

</comment></comment></comment></comment></comment><comment><USER14> Good. This was a flagrant and deliberate violation. To argue Apple is overstepping here is to suggest Apple employees are exempt from the law.

</comment><comment><USER15> The comments from Apple indicate that what they're really concerned about is disclosure to the media, not someone copying their self-driving technology, such as it is. Apple put 5000 people on this project and failed. What they don't need is an insider writing an "Apple's Biggest Failure" book. I wonder if we'll ever see a technical post-mortem on this.

<comment><USER16> >Apple put 5000 people on this project and failed.

not sure. These are still driving around their Sunnyvale campus:

[https://www.macrumors.com/2017/08/25/apple-new-autonomous- dr...](https://www.macrumors.com/2017/08/25/apple-new-autonomous-driving- suvs/)

Btw, one of the best sensor suites around (except for Google who seems to have reached kind of optimization stage where they started to remove the "extra" sensors). And Apple has highest number of self-driving permits in CA if i remember correctly. Though i don't see them in "disengagement reports" ([https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/disen...](https://www.dmv.ca.gov/portal/dmv/detail/vr/autonomous/disengagement_report_2017) \- interesting reading, Google's average human driver reaction time was 0.91s)

<comment><USER17> I wonder about the assumption in that MacRumors article that it's a self- driving car, given this article about Apple building their own Maps data set: [https://techcrunch.com/2018/06/29/apple-is-rebuilding- maps-f...](https://techcrunch.com/2018/06/29/apple-is-rebuilding-maps-from- the-ground-up/)

Given that the MacRumors article says that the Lexus was parked, it might be a human-driven car for gathering maps data?

<comment><USER16> the quick way to tell between self-driving and mapping car sensor suites - density of the point cloud it collects, ie. type/number of sensors with the self-driving is unnecessary dense for mapping and their directionality - <USER3> self-driving is more forward looking as well as immediate vicinity of the car while the mapping is sideways and doesn't care about the immediate vicinity. I'd speculate that Apple, historically being weaker when it comes to [higher level] software, seems to have issues with building of dynamic scene perception from the big can Velodyne stream and are trying to solve it "hardware way" by structuring the perception data in more time/space consistent way inside limited sectors/planes.

</comment></comment></comment></comment><comment><USER18> These recent incidents make me wonder how many people got away with a little bit better op-sec.

</comment><comment><USER19> "he told his supervisor at Apple he was leaving the company and moving to China to work for XMotors"

Doesn't sound like a heavy-duty spy ... else would never have admitted that. Probly a naif.

<comment><USER20> The fact he just plaining admitted to the FBI he did it seems like he was doing for selfish reasons and had no idea the kind of consequences he could run into.

<comment><USER19> Yep. Or Maybe the PRC offered him a deal he couldn't refuse.

</comment></comment></comment><comment><USER21> >Zhang was interviewed by the FBI in late June, where he admitted to stealing the information, and he was later arrested attempting to leave to China on July 7.

I guess he assumed he was going to get away with it but why wouldn't you just skedaddle ASAP when you moved the data and / or hardware?

Granted he seems more like a flunky for someone rather than a super criminal as he talked to the FBI...and admitted it.

<comment><USER22> He might not have realized what he did was illegal.

He might have thought that lying (or evading) the FBI is worse than the risk of being convicted for stealing secrets. (It usually is.)

<comment><USER21> The first I would have trouble believing...

The second I could understand.

<comment><USER23> There's a common misconception among many engineers that they own the code that they write when employed by many traditional valley firms. A thorough reading of the employment contract would usually resolve this, but how many engineers do you know who don't port some of their code between firms?

There's also a separate cultural clash between many Eastern cultures and many Western cultures surrounding property and ownership rights around intangible assets. I'm not well versed enough to adequately enumerate them with the appropriate level of detail.

I'll bet a dollar, though, that depending on this engineer's upbringing, one of these two applies and explains the "no big deal" mentality.

</comment></comment></comment></comment><comment><USER24> there needs to be a verb for this. i suggest "levandowski" ex: "Former Apple employee levandowskies his way into a chinese startup"

levandowski -verb, reffering to the stealing of tradesecrets from self-driving car project with the intention of bringing said secrets to a competitor, especially if one is caught.

</comment><comment><USER25> So where was Zhang headded with this stash? I think I can be sure those people would just get a lawsuit instead of criminal charges.

</comment><comment><USER26> My friend told me one of her coworkers left for a Chinese competitor without returning corporate laptop. There seems to be a pattern here.

<comment><USER27> Comically, what you're doing is called the Chinese robber fallacy: [https://rationalconspiracy.com/2015/03/08/the-chinese- robber...](https://rationalconspiracy.com/2015/03/08/the-chinese-robber- fallacy/)

Also just an absurdly small sample of "one news story" and "something I heard secondhand."

</comment></comment><comment><USER28> Can China not innovate at all? Why are they so keen on stealing IP? Their other homegrown products such as WeChat and Xiaomi seem pretty competitive and very catered to the local market. This is just giving such a bad name to the country and supporting Trump's broad claims that China thrives on IP theft.

<comment><USER29> Anthony Levandowski did exactly the same thing last year. Nobody concluded that white Americans can't innovate.

<comment><USER30> He wasn't headed back to some country of origin though. I take your point it's not really the same.

<comment><USER29> Right, he headed from Mountain View to San Francisco. Nobody complained about how keen San Franciscans are to steal everyone's IP.

<comment><USER31> At the time, people actually did deride the culture of people gaining knowledge then quitting to form their own startups, often with the goal of getting bought by their old company.

Note: I don't think this means that chinese people have no capacity to innovate I just figured you were a bit wrong suggesting noone made that argument when they definately did

<comment><USER29> Show me the comment where someone said America can't innovate after Levandowski was caught.

</comment></comment></comment></comment></comment></comment><comment><USER32> Didn't most of the people involved with this project, leave and went to work for Tesla, Lyft, Uber, Waymo and NIO anyway? In that case, one can imagine the bleeding of IP that went away will all this exodus of knowledge.

</comment><comment><USER6> I want to work for a world with free flow of information, where individuals should not be responsible alone for the mistakes of a multi-billions organization. If any company can do it better than Apple somewhere in the world, then let them build on what Apple developed. The culture of open source should spread at all levels of research & engineering, in all fields.

Cost of information transmission and movements of people will continue to decrease.

We should respect individuals rights about privacy, but disregard organization level's attempt at secrecy, and aim for transparent organizations all around the world. Such big organization should not be able to attack individuals without anyone questioning the processes going on inside of it.

<comment><USER33> I dont want my country's IP obtained by totalitarian governments with awful human rights track records.

<comment><USER6> Then work harder and faster than the people of that "totalitarian" country.

I don't want to rise a child who will waste his/her time with artificial problems created by fake country's level competition. We don't live in the 70s anymore.

Stop putting countries and governments before common-sense and people happiness. A copy-paste of 1Go file is so easy to do, it's ridiculous. IPs and patents were not created for the happiness of the majority.

Maybe that engineer is simply passionated about knowledge and building autonomous cars, and he would like to make it happen wherever he goes. Why stop him? If Apple really wanted to protect that IP, then just publish a patent about it?

Instead of using the existing organizational systems, aka Patents (patents are already bad enough), they attack an _individual_.

<comment><USER34> > Then work harder and faster than the people of that "totalitarian" country.

I really hope it's some very well hidden sarcasm.

> I don't want to rise a child who will waste his/her time with artificial > problems created by fake country's level competition. We don't live in the > 70s anymore.

Playing citizen of Earth is fun and well until you find yourself or your family in said totalitarian country.

<comment><USER6> > I really hope it's some very well hidden sarcasm

It is.

> Playing citizen of Earth is fun and well until you find yourself or your > family in said totalitarian country

No one will ever become a citizen of earth if no one tries. You can learn from playing.

I prefer to work with an engineer who worked for both Apple and a Chinese company than a fanatic nationalist engineer from any of the 2 sides, regardless of government type.

Did you ever worked for a Chinese company? That engineer worked for both, he works towards a borderless world.

Edit : oh, and he is transparent about it. That engineer has more integrity than Apple.

Edit 2 : if I were able to give an anonymous dollar to that engineer in order to help him, I would do it.

<comment><USER35> Uh, he didn't release the IP publicly. He was going to take it and give it to another company that presumably is not transparent in the slightest. Doesn't sound like striving for World Peace (c) to me.

<comment><USER6> Public knowledge is of course the best, but if you can't have that, at least two actors with the same knowledge is better than only one monopolizing it.

<comment><USER35> I strongly believe the intent was not to move towards a free and open world, based on the evidence provided. It was to move wealth from one company to another, or worse, from one country to another.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER36> Apple has 5,000 people working on a me too project that will likely never go anywhere while they are unable to ship announced products like AirPower and Mac Pro. Oh and they admitted to a known flaw in the keyboard of their current line of laptops that goes back _years_. This is frustrating.

</comment><comment><USER16> >Shortly before Zhang's theft was discovered, Apple sent out a lengthy cautionary memo to employees warning them against leaking data to the media. In the letter, Apple said that in 2017, it caught 29 leakers, with 12 of those individuals being arrested and charged.

being an Apple employee seems to come with statistically high risk of being arrested and charged :) And autonomous car projects across the industry remind the Klondike.

<comment><USER37> Compared to over 120k employees? Most employees aren't leaking major secrets, much less leaking on a scale like this.

<comment><USER16> No, compared to Google, FB etc. 12/120K per year is a rate like that of being killed by a non-autonomous car or shot by a non-autonomous gun.

<comment><USER38> It isn't random though. A better statistic to compare to would be suicide rate. They do it to themselves.</comment></comment></comment></comment>


SQLite Turns 20 - <AUTHOR> https://sqlite.org/forum/forumpost/9a7ec8edd5 <comment><USER2> [https://news.ycombinator.com/item?id=23358700](https://news.ycombinator.com/item?id=23358700)

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

</comment><comment><USER3> Arguably the world's most deployed database considering browsers and iOS apps usage.

<comment><USER4> Sqlite is everywhere: Android, iOS (not only apps but operating system itself), airplanes, etc. I wonder if anything in space uses it.

<comment><USER5> The ISS has ~20 Windows laptops on it. Pretty sure there will be some SQLite around.

</comment></comment></comment><comment><USER6> I absolutely adore this database.</comment>


New ERNIE language representation tops BERT in Chinese NLP tasks - <AUTHOR> https://medium.com/syncedreview/baidus-ernie-tops-google-s-bert-in-chinese-nlp-tasks-d6a42b49223d <comment><AUTHOR> Source code: [https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE](https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE)

It seems that the primary difference here is that ERNIE generates a different set of data for the masked LM task that BERT trains on. Rather than masking words arbitrarily it does some preprocessing with some tagging tool to identify segments that can be masked (my Chinese is rusty so this may not be totally accurate).

I believe the intuition here is that BERT somewhat expects words to be relatively distinct units of meaning since it masks words individually, but this assumption doesn't hold for Chinese where "words" (characters) are more frequently grouped together to form meaning. I feel this could be applied to English to a lesser extent though, curious if anyone has tried doing a similar thing.</comment>


How did Launch Conference compare to TechCrunch50 (TechCrunch Disrupt)? - <AUTHOR> http://www.quora.com/Objectively-how-did-Launch-Conference-compare-to-TechCrunch50-TechCrunch-Disrupt?srid=OQY

<comment><USER2> I completely disagree with Robert Scoble. If anyone has ever attended a TC50 or TC Disrupt event AND Launch, it's like a day and night comparison. While I don't have exact numbers, TC events were by far much MUCH more crowded both in the demo pit area as well as those pitching on stage. I swear it was like a ghost town at Launch in comparison.

The quality of startups sucks and I'm not sure I can agree there were a lot of press there BUT to be fair, this is not an area I can really comment on since I wasn't paying attention to this are much (regarding press).

Most of the people in the demo area didn't really have anyone else to talk to except other startups that were there. It was dead. And while I have nothing against Launch personally, I'd probably never attend again if this is how it'd always end up. BUT to be fair to Jason and Launch, it is their first "Launch" event so I'm hoping this will vastly improve.

</comment><comment><AUTHOR> Obviously, far far far away from a YC investor day... Wondering how you get to perfect relevance ration for a demo pit (quality of startups, quality of investors, quality of press, ...).</comment>


Writing Open Source Software? Make Sure You Know Your Copyright Rights - <AUTHOR> http://blog.smartbear.com/software-quality/bid/275129/writing-open-source-software-make-sure-you-know-your-copyright-rights

<comment><USER2> Parts of the article are very misleading. There are ambiguous statements, outright errors and general incoherence.

"...shun copyright licensing altogether. When they do that, they put all their collaborators at risk and themselves face potential liability claims"

You're exposed to claims if you _use someone else's code_ without permission. But if you simply fail to specify a licence for your own code you do not incur any risk.

"Since that convention [Berne] was put into place, all software development involve copying and derivatives, Phipps said; all programming without a license potentially infringes on copyright"

Complete rubbish. Because there is a Berne Convention, you have to copy code instead of writing something new??? Of course not.

Independent creation is a complete defense against any copyright claim (tho not against patent claims). Again, copying others' work without permission may infringe, but one's rights in one's own code do not depend on specifying any particular licence (as long as you don't sign away rights to someone else).

"That's why [if you want to start a new project] you need to apply for an open source license" (brackets in original, paraphrasing Phipps of OSI again)

More nonsense. As soon as you write some code, you own the copyright, and if you don't specify otherwise you retain all rights provided by statute. If you want it to be an open-source or "Free" (in the Stallman sense) project, you do need to specify a licence that allows others to contribute without risk of you suing them - but you don't have to "apply for" a licence. The latter phrase implies asking someone to grant you something, there is no such requirement. You're free to apply any licence of your choice to your own code, an existing one or make up a new one.

The part on "work for hire" is not as bad but still ambiguous on some points. Generally your employer can't claim rights in anything you do outside of your day job unless it is using code or ideas from the day job, or unless you signed away your rights in a contract. Using the employer's time or facilities would put your rights at risk.

I haven't read the rest but it is poorly written. There are better sources of info out there.

<comment><USER3> Disclaimer: IANAL

> You're exposed to claims if you _use someone else's code_

The article doesn't say that the author of the software is at risk if he/she shuns licensing. It say that _their collaborators_ are at risk. Which is true. Because as you point out, "as soon as you write some code, you own the copyright."

If you were to write some code and _not_ place it under a legitimate open source license - "shun copyright licensing altogether" as the article states - then you have placed collaborators at risk. If I were to modify that code, redistribute it, etc, then I've taken on liability and you could sue me for infringing your copyright.

</comment></comment><comment><USER4> Relevant: [http://www.codinghorror.com/blog/2007/04/pick-a-license- any-...](http://www.codinghorror.com/blog/2007/04/pick-a-license-any- license.html)

<comment><USER5> Amusing but the description of the GPL is a bit off

"The archetypal bearded, sandal-clad free software license. Your code can never be used in any proprietary program, ever! Take that, capitalism!"

GPL absolutely can be used in closed source, it just can't be distributed as closed source (see the much rumoured, heavily customised Google-internal-linux as an example). The AGPL is more like the statement above.

<comment><USER6> Sadly, the definition of "distribution" is so vague that many lawyers won't allow you to "distribute" your code to a box you don't own outright, in an effort to reduce their liability.

I've been in a few companies where this was a problem, since we were working in part for the government, which required us to run our code in nodes which were owned by a separate contractor. The lawyers interpreted that as distribution, and we had to replace the GPL'd portions of code we were using.

<comment><USER5> That doesn't seem all that unreasonable to me, you have really distributed to someone else at that point if they own the box, so at the least the GPL kicks in for them.

</comment></comment></comment></comment><comment><USER7> So if I accept pull requests without asking people to sign a CLA, what kind of ramifications could this have for my project in the future?

Also, if the license says "Copyright <author> et al." (as many license headers do), does the copyright actually belong to the contributors as well as the author? How is this determined?

<comment><USER5> (IANAL)

Git isn't my primary source control solution -- edit: corrected in view of useful information below --

If you accept pull requests and pull data into your repo from other folks without a asking them to assign copyright or sign a very open CLA then that means the copyright is now joint.

The ramifications of this tend to be that you cannot re-license the code without their permission, unless the original license says you can.

Example - your project is GPL, you accept submissions from a bunch of other people. You decide you want to release a closed-source binary-only commercially-supported extra-special version with plugins and hotsauce. You can't unless you get permission from everyone that's contributed to the project, because the rights you have to their submissions are governed by the GPL. With copyright assignment, you as the now sole copyright holder could do this.

Ramifications will vary by license and by what you want to do.

<comment><USER8> You have the right idea about pull but you're mixing up pull and pull request. Pull is a git verb that means to get code from another location. A pull request is asking someone else to get my changes.

So for an example, if you found a bug in some open source software you used you could make a change in the code that fixed it and then file a pull request with the original author of the software. This asks them to incorporate your changes.

<comment><USER5> Thanks, wasn't sure on that point! I assumed a pull request was someone asking you/your server if they could pull data from it, not requesting you/your server pull data from elsewhere.

Now I know.

</comment></comment></comment></comment><comment><USER9> Some projects are easier and safer to work with than others. The PostgreSQL project doesn't require assignment, and the license is BSD (without advertising clause, of course) so there isn't much to argue about.

But in any case, you do need to know whether you have copyright ownership of the code or a suitable license before you use it in a contribution.

</comment><comment><USER10> With an awareness of the ideology the source, this is helpful: <http://www.gnu.org/licenses/license-recommendations.html></comment>


Perl turns 30 and its community continues to thrive - <AUTHOR> https://opensource.com/article/17/10/perl-turns-30 <comment><USER2> I have some "invoicing" web apps (I suppose they'd be called "SaaS" now) I wrote in perl starting back in 2001-2002 that are still running. The users love them, they're fast, reliable, and stable.

I have always admired Larry Wall and learned a lot from reading his stuff but I never really did get along too well with the "perl community". I was a member of a few of their mailing list and they all seemed to love telling people who joined and asked a question that they were lazy and dumb and "RTFM" was used there more than anyplace I've seen on the web. They worked hard at chasing away anyone who tried to answer those newbie questions. I finally left them after years of seeing the trolls harass newbies without any rebuttal except mine.

I still use perl for setting up users and emailing and database chores but CPAN has a lot of old modules now that haven't been maintained in years and going through those can be a pain sometimes.

And I still like and use CGI.pm. The perl community loves to crap on it but it's still the easiest way there is to parse form data with Perl and a lot of times that's mainly what I need to do.

<comment><USER3> > I still use perl for setting up users and emailing and database chores but > CPAN has a lot of old modules now that haven't been maintained in years and > going through those can be a pain sometimes.

Distinguishing between modules that are recent and used, recent and unused, old and used, and old an unused is one of the biggest problems on CPAN. Thankfully, metacpan helps with this quite a bit. It allows people to favorite modules, so you can be fairly sure any modules with a few likes will at the very least be useful and working, even if they haven't been updated in a couple years (since people are using it, it just means it's very stable). It's also _much_ easier to search.

It also has lists of modules recently updated and recently submitted.[1]

Finally, if you aren't familiar with the Task::Kensho[2] meta distribution, you should take a look. It's a curated list of good modules for a specific set of common areas of need, such as Config file parsing, Webdev, Async programming, etc.

1: [https://metacpan.org/recent](https://metacpan.org/recent)

2: [https://metacpan.org/pod/Task::Kensho](https://metacpan.org/pod/Task::Kensho)</comment></comment>


Show HN: Find jobs in creating podcasts, newsletters, videos, communities etc. - <AUTHOR> https://workwithcreators.com/
Hey everyone, I created this website to consolidate opportunities to work with independent creators. A friend was recently looking for roles as a video producer and found it hard to discover open roles, which are currently mostly found via DMs on the different content platforms or on twitter.
This is an attempt to surface these kinds of opportunities. Let me know what you think! <comment><USER2> Most offerings I opened seemed to be tweets with little context, and one was over a thousand words of requiring qualifications and asking applicants to do specific work beforehand.

None of them mentioned compensation. They ask ask ask and throw around generic empty promises, but skirt around (or don't mention) what they give. A visitor to your website as no way to know which are scams, which are underpaid, and which are worth their time. The tagline on your website doesn't help:

> Discover opportunities to work with content creators looking for someone to > help them produce their best work

Maybe I've seen too many stories of "influencers" asking people to "work for exposure", but that sentence (and the offerings in general) sounded like them, like the labourer should be thankful for the opportunity to work for the job poster.

In sum, it felt like you're only serving one side of the equation.

<comment><AUTHOR> That's an interest perspective, didn't really look at it from this angle - thanks! Main problem I was trying to solve with it was discoverability of opportunities, since they're buried on twitter, twitch chat logs etc. And I sourced many of the posted opportunities myself manually. But thank you, I'm wondering how I could approach tackling the challenge you've highlighted.

<comment><USER2> You could send a small message enquiring about compensation and update the posts as you get that information. If someone replies with "it depends", you can mention your website and ask if they can at least give a range (they should get more replies that way) or just put "to be determined".</comment></comment></comment>


Benjamin Button Reviews the New MacBook Pro (2016) - <AUTHOR> https://blog.pinboard.in/2016/10/benjamin_button_reviews_the_new_macbook_pro/ <comment><USER2> I so dearly wish that someone high-ranking at Apple reads this and takes it to their heart. And acts upon it.

<comment><USER3> They won't, they're too 'courageous'.

</comment></comment><comment><USER4> -There exist adapters that are quite stylish that provide thunderbolt, charging (admittedly no magsafe), sd, hdmi, etc all in one piece. They are pretty pricy though.

-Personally, I quite like the feel of the new MBP keyboard, even compared to the 2015 MBP. If you want longer travel distance, get a mechanical keyboard and plop it on top of your laptop. I'm also convinced I can type faster with chiclet style keyboards (I tend to bottom out the keys).

-The trackpad, while large, is actually quite intelligent about detecting accidental presses, and in my memory has never activated unintentionally. I've noticed on my Thinkpad (tiny, tiny trackpad) that accidental trackpad activation is hugely annoying (not sure if Windows deals with it but my Linux drivers definitely don't).

-The touchbar has been absolutely worthless and an annoyance at best. I remap escape to caps lock so I never have to deal with the touchbar.

-I suppose this is an older review, but the current MBPs do have a physical off button (which doubles as a fingerprint sensor).

-The latest 6 core 15 inch is beautiful and fast. I don't think twice about dropping it into my backpack because it's so light, and it's a joy to use day to day. As an iOS developer it's a godsend. I do wish the Mac Pro had a refresh, the iMac Pro seems to be a strong option though.

<comment><USER5> > There exist adapters that are quite stylish that provide thunderbolt, > charging (admittedly no magsafe), sd, hdmi, etc all in one piece. They are > pretty pricy though.

I'm at the point where I'm going to have to upgrade my MBP pretty soon, and the _second_ I do, I'm buying a set of these. [https://www.snapnator.com/shop](https://www.snapnator.com/shop)

(Unless, of course, Apple does the "unthinkable" and brings back MagSafe... a guy can dream, right?)

</comment></comment><comment><USER6> Looks like he's writing about my current mid-2014 MBP. When I have to change I might be going to Linux on a Dell, Lenovo or HP.

</comment><comment><USER7> Sad that this is basically a weird alternate reality of a consumer-friendly Apple. I think once my 2015 MBP dies some time in the future, I'll be swapping so the Dell Ubuntu laptop. I can't stomach spending money on that consumer- hostile abomination that they now call the MacBook Pro.

<comment><USER8> I dream of this, and I actually think Ubuntu is up to the job nowadays, but I'm hip-deep in Mac-only software. In particular, switching off OmniFocus would be a nightmare to me, so I guess Apple owes OmniGroup a thank you and Christmas card.

I'm with you, though, holding on to my 2015 MBP for dear life. I have newer MBPs at work, and the keyboard and touch bar (or lack of Escape, more accurately) are significant impairments for me whenever I'm not at desk.

The new MBA actually looks like a better choice to me for most development than the current MBPs. That's saying something.

</comment></comment><comment><USER9> This article is both funny and tragical.

Is there something you don't like in an Apple product? Be sure to write 5000 words praising all the good things Apple did since the beginning of time and explain all the possible reasons why they possibly have taken this decision that could look like a mistake, and only then you can emit your critique. That's what smart informed people do to show they are smart and informed. So if you have a more consequent critique, use irony to respect the form people are used to.

I wish tech were less religious and more capitalistic. Apple has the product you wish for the price you want to pay at the time you need it? If yes, fine, go for it. If not, find out if there is something else that matches your need.

<comment><USER10> "Your ideas are intriguing to me and I wish to subscribe to your newsletter" \-- Homer Simpson

When the Company in question knows they'll get press regardless, you end up with a gaggle of folks praying for scraps of coveted "scoops" that only come with access.

Stray too far from the narrative, and your access, and most likely part of your livelihood, will be cut off.

This mentality is bad in Tech media, but exponentially worse in Gaming.</comment></comment>


New Lower-Cost, AMD-Powered M5a and R5a EC2 Instances - <AUTHOR> https://aws.amazon.com/blogs/aws/new-lower-cost-amd-powered-ec2-instances/ <comment><USER2> Just a friendly reminder that AWS pricing is still insanely high compared to dedicated bare metal servers. On AWS you'd pay around $1500/mo for 24 cores ("m5a.12xlarge")[1] while e.g. Hetzner offers a 24 core AMD bare metal server for $190/mo[2].

Also consider that on AWS you pay for traffic on top of that; prices for which is even more insane. 100TB, while free with Hetzner, would cost you somewhere around $9000 on AWS.

[1] [https://aws.amazon.com/ec2/pricing/on- demand/](https://aws.amazon.com/ec2/pricing/on-demand/)

[2] [https://www.hetzner.de/dedicated-rootserver/matrix- ax](https://www.hetzner.de/dedicated-rootserver/matrix-ax)

<comment><USER3> EC2 on-demand/hourly to Hetzner monthly pricing is not really an apples-to- apples comparison. EC2 reserve pricing is more similar and about 1/2 or less of on-demand fees. Hetzner is still cheaper, and if all you need is a low cost dedicated server w/local disks and bandwidth, this is a great choice - but AWS provides an entire ecosystem of services including configurable EBS and S3 storage, as well as more diverse and scalable purchase/provisioning options.

<comment><USER4> Having a large ecosystem of services should be a reason AWS is cheaper since on average you'll spend money on those integrations -- not a reason to pay a premium.

<comment><USER5> Increased complexity leads to increased overhead costs. A bare metal instance is going to be cheaper to maintain than a full-service instance that interfaces with a robust ecosystem (even if that instance doesn't use any of it).

<comment><USER6> Doesn't this discount the considerable economy-of-scale advantage that Amazon should have?

<comment><USER7> Not when Amazon's scaling benefits are used to mostly benefit themselves.

<comment><USER6> Well that's a different point. Complexity, economies of scale, and high-prices charged by an incumbent market-leader, are three different matters.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The pricing seems to be around 10% cheaper than the equivalent Intel based servers (m5a.4xlarge $0.688 per Hour vs m5.4xlarge $0.768 per Hour, similar for other instance sizes). I was expecting AMD servers to be somewhat cheaper, but given that the server CPU is only one of many components I guess the savings can't be that much more. Would be interesting to see how the actual performance per $ is different.

Exciting to have AMD on AWS though. Still far more expensive than rolling your own hardware or getting bare metal servers.

</comment><comment><USER9> > custom AMD EPYC processors

I wonder, how much effort does that entail? Is this some TDP and firmware tweaks, or is it actually different silicon? If the later, that sounds like a reasonably big bet that there will be a lot of AMD chips sold to AWS.

<comment><USER10> I've heard on the grapevine that nearly all of the large customers ask for (and receive) custom silicon features. The complete set of these special features technically exist on all these chips as they share the same mask, but the different private SKUs have their special features fused/lasered off or hidden behind an MSR knock like all other binning.

EDIT: These features tend to be stuff like first class connections to in house security chips and the like. It's more about integration with their systems than any cool feature or isntruction that only "special" customers are cool enough to get.

<comment><USER11> Wired did an article about how Intel does this [https://www.wired.com/2013/05/facebook-and- intel/](https://www.wired.com/2013/05/facebook-and-intel/)

</comment></comment></comment><comment><USER12> "AMD Next Horizon Live Blog" ( about ZEN2 ) : [https://www.anandtech.com/show/13547/amd-next-horizon- live-b...](https://www.anandtech.com/show/13547/amd-next-horizon-live-blog- starts-9am-pt-5pm-utc)

<comment><USER13> Sounds like they are doing 7nm chips with TSMC, if true they'll surely overtake Intel in terms of performance? Wish I'd have bought AMD now...

<comment><USER14> They are still down $10 - $12 from where they were last month (aka 30%). I bought a lot at ~$2, but just bought more.

</comment></comment></comment><comment><USER15> Offtopic, but does anyone have the stock data / second of AMD on minute 13 till minute 17.

I only see the press-release at minute 15:00 everywhere * and in minute 15 the stock also rose 6-7%. I'm curious on "how fast" the algorithms work and/or if early press releases are possible to a private club :)

* One minor exception, this one is published on minute 14, but is propably another issue on the website itselve ( [https://www.marketwatch.com/press-release/aws-introduces-new...](https://www.marketwatch.com/press-release/aws-introduces-new-amazon-ec2-instances-featuring-amd-epyc-processors-2018-11-06) )

<comment><USER16> Algorithms will usually use real-time data. For that, you're really comparing microseconds (or even nanoseconds).

You can't get that data for free though.

<comment><USER15> I don't want microseconds, i want to see seconds and how the markets perform in general.

I can't compete in microseconds (ever), i can in seconds :p

</comment></comment></comment><comment><USER17> Very strange that none of these processors are rated with ECUs in the pricing table. Is AWS still working on bench marking these or is this an extension of whatever agreement AWS/AMD has reached?

</comment><comment><USER18> Now,

Step 0: Amazon adds AMD server which are cheaper then equivalent intel ones.

Step 1: People prefer these _cheaper_ instance.

Step 2: Amazon AI notices the demand for AMD, goes back to Step 0.

Repeat.

<comment><USER19> How the mighty have fallen, if simple counting is sold as AI...

(Nothing against you, obviously, it's just a weird trend that's being going around because AI is the current buzzword.)

<comment><USER20> "AI" is the name we give to algorithms we don't understand.

However, in this case, if basic accounting is an algorithm we don't understand, then we've lost our way.

</comment></comment></comment><comment><USER21> Happy to see something like the old Opteron days. Competition is good.

</comment><comment><USER22> Any idea how the compute of a m5a.large would compare to a c5.large? They are almost identical in price, but the m5a instances have double the memory.

</comment><comment><USER23> I can't seem to find a way to launch these instances through the AWS console. Does anyone else see them yet?

<comment><USER24> Only in selected regions at the moment. I can see the m5a and r5a instances available in the console from the Ireland and Virginia regions.

</comment></comment><comment><USER25> So there's Memory Optimized, General Purpose... but there's no Compute Optimized? What gives?

<comment><USER26> DO has compute optimized droplets. I tried running aircrack, and I got really good performance (10k/sec on 16vCPU, vs 13k/sec on EC2 32 core dedicated).

Unfortunately, EC2 was still 8x cheaper because of spot pricing. 2 hours cost me $4 on DO but .50 on EC2 spot instances.

Interestingly, a DO sales guy emailed me, more than once, because I used a compute droplet for 2 hours. They must be hard up for leads! Strange, he didn't get back to me when I told him what I was using it for.

</comment></comment><comment><USER27> How are they managing 96 vCPUs? Is this a new custom quad socket board or is it based on HT?

<comment><USER28> Whatever AMD's version of that is called, yes — AWS has historically always been 1 vCPU = 1 hardware thread, so pretty much half a HT-enabled core.

<comment><USER29> Simultaneous Multi Threading (SMT) is the generic term for Hyper Threading

</comment></comment></comment><comment><USER30> In standard AWS fashion, there doesn't seem to be any pricing table anywhere.

<comment><USER31> I cannot recomend [http://ec2instances.info](http://ec2instances.info) enough - it is so much easier to filter and sort instance info.

Yet, new instances are not there yet.

<comment><USER32> Submit a PR? [https://github.com/powdahound/ec2instances.info/](https://github.com/powdahound/ec2instances.info/)</comment></comment></comment>


Time Sink App - <AUTHOR> http://mitchjohnson.net/post/1456920004

<comment><USER2> where is the download link? :)

<comment><USER3> It's a spam blog, the buy link is an affiliate link or you can get it here:

<http://manytricks.com/timesink/></comment></comment>


Historians say removal not the only way to deal with racist relics - <AUTHOR> http://www.cbc.ca/news/politics/monuments-racism-historical-tensions-1.4248173 <comment><USER2> Sure. Then the question is, how much context is needed?

A large statue of a racist traitor, on a pedestal in the middle of a traffic circle, isn't really contextualized with a small plaque that few read saying "Fought to preserve slavery."

I'm hard pressed to think of what is the proper contexualization in that case. Rename the street "Traitor Way" and put a sign over its head saying "Slaveholder"?

Except that wouldn't be enough. Most of the statues need something about "erected as a 'fuck you' to blacks during the Jim Crow era, and as a way to promote the false 'Lost Cause' narrative", because the statue isn't really about the person. Plus it would need description of what those terms mean, since it's about context.

So now you've got, what, a few signs-worth of text, which few read?

While there's a great honking statue that no one can ignore?

Nor is this new. Consider "Rhodes Must Fall". What's the appropriate context to counter-balance a large statue of Rhodes, the Anglo-Saxon supremacist imperialist, visible to effectively all of the students in campus, including African students whose ancestors directly suffered the negative effects of Rhodes's actions? As RMFO wrote at [https://www.facebook.com/permalink.php?story_fbid=1688976428...](https://www.facebook.com/permalink.php?story_fbid=1688976428039724&id=1599672910303410) :

"We have always rejected the idea that 'contextualising' the statue is the best solution to this debate. First, we do not think that context reveals that Rhodes was a man of his time; he was criticised extensively in his time for his retrograde views and damaging actions. Secondly, it is not possible to contextualise the statue meaningfully, given the gravity of Rhodes' actions."

"Cecil Rhodes, amongst other things, exploited natural resources belonging to Southern Africans, as the founder of what is now De Beers; coordinated military massacres, such as the Jameson Reid; was the head of state of the Cape Colony when legislation was passed that paved the way for apartheid; and made numerous outrightly racist statements. We do not accept that this can be captured in a contextual plaque. The better approach is to ensure students are educated about Rhodes through a curriculum that engages with imperialism, and to ensure that the statue of Rhodes is relocated to a museum, where real lesson-learning can occur."

Lastly, adding "context" is also the least responsive thing that an organization can do. A city, or state, or university, can drag its heels, put up the smallest possible plaque, and call it done, which requires yet another protest to get better context to fix. Repeat a few times.</comment>


Lack of sleep 'linked to early death' - <AUTHOR> http://news.bbc.co.uk/2/hi/health/8660373.stm

<comment><USER2> This is a duplicate: <http://news.ycombinator.com/item?id=1320722>

</comment><comment><AUTHOR> Uh oh. Also, I wonder how this applies to polyphasic sleep.</comment>


Why Rust's ownership/borrowing is hard - <AUTHOR> http://softwaremaniacs.org/blog/2016/02/12/ownership-borrowing-hard/en/ <comment><USER2> "Rust's ownership/borrowing system is hard because it creates a _whole new class_ of side effects."

I'd submit it doesn't create them... it _reveals_ them. They've always been there. Almost every other language fails to shine the light on them, but that doesn't mean they aren't there. All GC'ed languages still have issues of ownership, especially if threaded, and all non-GC'ed languages have all the issues Rust has... it's just that the language doesn't help you.

<comment><USER3> Don't be so quick to say that Rust is doing the "right thing" here. An early example in the article shows one of the big Rust gotchas: you want to borrow a reference to a part of a structure, but if you encapsulate that in a function which takes a reference to the enclosing structure, the entire enclosing structure is borrowed. This isn't a _revealed_ side effect, this is an _invented_ side effect that is an artifact of the type system.

<comment><USER4> I thought that was one of the most fascinating parts - Rust's borrow-checker enforces the Law of Demeter and Principle of Least Privilege as a side-effect.

Code that takes a full structure when it only needs to operate on a part of the structure _is_ badly designed. It's not conveying the full information about the data that it actually needs, which means that unexpected dependencies can crop up, implicit in the body of the function, as the code is modified later on. This is behind a lot of long-term maintenance messes; I remember a few multi-year projects at Google to break up "data whales" where a single class had become a dumping ground for all the information needed within a request.

Thing is, we all do it, because taking a reference to a general object and then pulling out the specific parts you need means that you don't have to change the function signature if the specific parts you need change. This saves _a lot_ of work when you're iterating quickly and discovering new requirements. You're trading ease of modification now for difficulty of comprehension later, which is usually the economically wise choice for you but means that the people who come after you will have a mess to untangle.

This makes me think that Rust will be a very poor language for exploratory programming, but a very good one for programming-in-the-large, where you're building a massive system for requirements that are largely known.

<comment><USER5> >Code that takes a full structure when it only needs to operate on a part of the structure is badly designed.

No, it is not; this is done all the time with methods and it improves encapsulation - you may not want your clients to be able to decompose your data structures. Do you really mark every member of your data structures as pub??

Sorry but this is a poor ad-hoc defense of an actual annoyance in the borrow- checker.

<comment><USER6> If you're trying to achieve proper encapsulation, you just have a module that implements some sort of functionality, and shouldn't need to borrow anything from it. The real question is why you're pulling data instead of pushing messages.

<comment><USER7> This is incorrect. "Sending a message" involves borrowing the data so that the method can run. `foo.bar()` borrows `foo`.

<comment><USER6> Sorry, I wasn't clear. You are, of course, correct: you're only ever in a position to call a method if you hold a reference to the struct you're calling on.

My meaning was that you should favour a usage pattern that looks like you either move/copy things into the called method, or lend a reference to something you own (which is, presumably, not going to be held on to for very long), and then you're either given ownership of whatever return value you get, or get a reference whose lifetime depends on the arguments you passed in (but not the object itself). All of this ends up being quite clean, and you don't end up tying yourself into a borrowing knot.

You do end up in a weird place when your methods return references to fields of the owning object. When that happens, you're restricted in what you can do with the owning object until the reference goes out of scope. Rust mutexes are implemented precisely like that, which highlights what sort of behaviour you're getting from this usage pattern.

The former provides better encapsulation and more closely resembles the message-passing approach to OOP, whereas the latter pattern is not only not very ergonomic, it's quite indicative of poor encapsulation (because you're, by necessity, asking for internal state).

<comment><USER7> Here is the issue: `self.foo.bar(self.baz())` is an error if `foo.bar()` mutates foo, even if `baz()` doesn't touch `foo` and even if `baz()` doesn't return a reference. This is because borrowck doesn't properly understand that baz will be evaluated before bar, and can't distinguish which elements of a struct are accessed by that struct's methods. Both of these are problems that can be solved, and neither of them is actually promoting good practice in my opinion.

All it does is force you to use unnecessary temporaries, like `let baz = self.baz(); self.foo.bar(baz)`

<comment><USER8> Yeah, this is basically a borrowck "bug" which will probably be fixed post- MIR.

Note that there are cases where such code is invalid even with the temporary, and they can be related to Demeter. Ish. Also to API contracts; the guarantee should be embedded in the signature (so changing the internals shouldn't cause its usage to stop compiling), which is unweildy to do.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Coming from a mainly C++ background, I find that the Rust language makes best practices in languages with manual memory management (and to some degree also in garbage collected environments) explicit. This is a great property of the language and it definitely changed the my C++ programming. You can see it as automatization of the more boring aspects of code reviews.

<comment><USER8> I am from a more mixed background, but I have had my fair share of C++ before I learned Rust.

Now when I code C++ my Rust knowledge is a double edged sword. On one hand, I have a much better idea on how to manage my data in C++. I had this discipline before learning Rust, but I didn't have explicit rules to it; it was just a ... nebulous bunch of idea about how data works. Now it's explicit. On the other hand, I am absolutely terrified when writing C++ code (something I would do with ease in the past). Well, not exactly, but it's hard to accept somewhat-unsafe code (which is probably safe at a macro level -- i.e. safe when looked at in the context of its use) and while I can see that something is safe, I can also see how it could _become_ unsafe. And I fret about it. Rust trains you to fret about it (more than you would in C++, that is), and simultaneously Rust handles it for you so you don't have to fret about it :) C++ doesn't handle it, but you still fret about it sicne Rust taught you to.

I guess it's a "Living is easy with eyes closed" thing :P

</comment></comment><comment><USER10> There were also some interesting comments yesterday when this was posted to the Rust subreddit:

[https://www.reddit.com/r/rust/comments/45gcmh/why_rusts_owne...](https://www.reddit.com/r/rust/comments/45gcmh/why_rusts_ownershipborrowing_is_hard/)

<comment><USER11> There was one good point, which was also my conclusion:

"Given all that, I wonder if it makes sense to prefer plain old functions most of the time. Is that right, or am I overlooking something?"

The response was yes. Avoid impl methods which take a mutable self.

<comment><USER12> I wouldn't characterize it this way. There was a whole thread on just this question: [https://www.reddit.com/r/rust/comments/45j6ua/why_dont_we_pr...](https://www.reddit.com/r/rust/comments/45j6ua/why_dont_we_prefer_plain_functions_over_impl/)

</comment></comment></comment><comment><USER13> Try a temporary variable for state, then use the consume in a scoped let block.

</comment><comment><USER14> Why is move the default? In many code bases the number of immutable references outweighs that of pointers.

<comment><USER15> In early rust, you actually did need to explicitly write `move` to move a value. However, this was extremely annoying as you move values _a lot_ so moving was changed to be the default, which is far more tolerable.

EDIT: There still is a `move` keyword, but it is used to indicate that closures should take ownership of their environment vs. just borrow values from it, not to move individual values.

</comment></comment><comment><USER16> >Nothing in the experience of most programmers would prepare them to point suddenly stopping working after being passed to is_origin()!

I'm not even a Rust programmer and only read three paragraphs about the borrow checker and I instantly saw that point is moved.

</comment><comment><USER17> Should I learn Rust in 2016? What are you guys building with it and why Rust in particular?

<comment><USER10> I've found it very fruitful. I had previously spent a couple of months hacking away at a project in C++ which needed lots of fine-grained parallelism and custom data structures (metagenomics analysis tool). When we decided to shift our approach and that we wouldn't be saving any code, I started out trying Rust and fell in love. Many of the issues I faced in trying to quickly put together an application in C++ were just non-issues as a result of Rust's type system.

<comment><USER18> One of our customers is using C# for sequencing and it is quite fast for his datasets.

Of course, using Rust is even cooler.

<comment><USER10> Yes it is :). Also, I've had mixed results with managed languages and loading 1.5 TB text indices into RAM (not even to say anything about how much of NCBI's nt database will fit into 1.5TB when using different runtimes), so using manual memory management seems like the smart move here. Also, C++ had many libraries we could lean on for manipulating very large genomics datasets, and Rust is starting to grow a little ecosystem as well. I'm not familiar with a comparable availability of open source tools in C#, although I don't have any experience in it so maybe that lack of exposure isn't reflective of the state of things.

<comment><USER18> What I can disclose is that they mostly use R, Java and C#.

C++ is used by research algorithms used in HPC context or by the device drivers for the readers.

In this case the data sets are around 1GB, but I don't know what they are actually loading into memory.</comment></comment></comment></comment></comment>


The Liberty City - <AUTHOR> https://www.npr.org/templates/transcript/transcript.php?storyId=771371881 <comment><USER2> I'm on the board of directors for the Free State Project ([https://fsp.org](https://fsp.org)) mentioned in the article, which aims to concentrate those who support liberty in one place (NH) for greater effectiveness.

If anyone has questions about the Free State Project, you can ask them here or email me personally at firstname.lastname@example.com. I'm always happy to assist fellow hackers that are interested in the FSP.

<comment><USER3> How close are you to actually having any effect on the politics of NH? To having a controlling effect?

<comment><USER2> There are 15 reps in the state house and a much larger number in local positions. There are some well developed machines to help people get elected. Perhaps most importantly, I think NH is relatively established as the Schelling point for concentration.

</comment></comment></comment><comment><USER4> This isn't very unique, it's called a suburb. It's just a little more extreme and poorly governed.

A common suburbia pattern is to build a shopping hub in a county or other subdivision on an interstate adjacent to a bigger community and exploit the increased revenues. The community starts keeping costs down by leeching on state and county level resources for police, allowing undesirable business etc.

There are variants in different states because of how land in allocated. For example, New York doesn't have unincorporated land, you're always in a town or city.

<comment><AUTHOR> Suburban areas that become incorporated cities aren't unique. But AFAIK, Von Ormy is unique for its aversion to taxes. Here's another story about it from 2017: [https://www.texasobserver.org/the-rise-and-fall-of-the- frees...](https://www.texasobserver.org/the-rise-and-fall-of-the-freest- little-city-in-texas/)

</comment></comment><comment><USER5> It sounds like their preferred method of financing city government (being a speed trap on I-35) goes back at least 50 years - here's an interesting article from 1974 about Selma, TX, which is on the other side of San Antonio, but also on I-35.

[https://www.texasmonthly.com/articles/the-perfect-speed- trap...](https://www.texasmonthly.com/articles/the-perfect-speed-trap/)

<comment><USER6> Relying on speed traps seems a terrible way of financing a city. I can't imagine this being stable. If people start speeding less (which should be the purpose of speed traps) what are they going to do?

<comment><USER7> Yes, everyone hates speed trap towns (rightfully IMO.)

The schadenfreude of small government failing to produce a thriving city with that particular cherry on top is why this is on the front page.

If this city had connected to the sewer, got a Walmart and become a normal and forgettable suburb other than its tax rate nobody would be interested in its story but because the insistence on low taxes and small government created what many here would consider bad results it is of interest.

<comment><USER8> Yes, and it deserves to be pointed out, no?

</comment></comment></comment></comment><comment><USER9> The link is a transcript of this NPR Planet Money podcast: [https://www.npr.org/2019/10/18/771371881/episode-945-the- lib...](https://www.npr.org/2019/10/18/771371881/episode-945-the-liberty-city)

TL;DR: A rural city was afraid of being taken over by San Antonio, they decided to become a city to defend against this. They wanted to keep city taxes low, and the plan was to attract big chains, to monetize the traffic on the Interstate via sales taxes. None of the chains would build because there was no sewer system. Residents generally feel the "liberty city" experiment is failing them, but the guy behind it feels it is succeeding because they have very low taxes. Now, however, they are starting to make money off speeding tickets.

(from memory, listened to it yesterday or the day before)

I highly recommend Planet Money, it's one of my favorite podcasts.

<comment><USER10> They want to increase the revenue from speeding tickets from 60 kUSD to 250 kUSD. That sounds promising, wasn't there a town in North Florida that got slapped with a consent decree because it relied on traffic fines as well for revenue and went completely overboard with speed traps?

Farming motorists for revenue really does wonders for the perception of law enforcement.

<comment><USER11> Here's a recent dive into the problem: [https://www.governing.com/topics/finance/gov-addicted-to- fin...](https://www.governing.com/topics/finance/gov-addicted-to-fines.html)

</comment></comment></comment><comment><USER12> I hope they eventually look into cooperatives for sewer/water/energy. They're a great way to manage larger projects on a consensual basis.

<comment><USER9> This is an interesting case because it is the city that benefits from having the sewer (through sales tax revenue of attracting big stores), and the individuals who'd be served by the cooperative already have septic systems. I guess the individuals would indirectly benefit via the improved city services.

<comment><USER12> I would seek to bring in several new stores as the initial members, and borrow against the agreed-upon future revenues. No city borrowing, efficient infrastructure development, and if the project fails somehow the city has no obligation to act.</comment></comment></comment>


Memcomputing NP-complete problems in polynomial time using polynomial resources - <AUTHOR> http://advances.sciencemag.org/content/1/6/e1500031.full

<comment><USER2> Previous discussion from another source: [https://news.ycombinator.com/item?id=8652475](https://news.ycombinator.com/item?id=8652475) (87 points, 237 days ago, 64 comments)

I'll copy a part of the first comment:

> _The idea that having variables which can take on an infinite range of real- > valued values fascinates some people. But you can 't, not really. Resolution > is limited by noise. Noise is inescapable, since electrons are discrete. > Infinite resolution is impossible in a granular universe. Real numbers are a > convenient fiction which cannot be realized in hardware. ("God created the > integers; all else is the work of man." \- Kronecker)_</comment>


Ask HN: How to create a DSL to represent clothing? - <AUTHOR> I've been thinking about this for a long time. People usually give the advice of "scratch your own itch" to generate ideas: well, when it comes to selecting what to wear I'm not only color blind but also, how to put it, somewhat fashion-challenged. Current solution is to have my wife select stuff and give me the look-over in the morning. I know, pathetic.
In search of a better approach, I thought of creating a list of all clothing items I have with attributes (type:t-shirt, color:green, etc.). I'd like to create a DSL that I can (1) use to describe my whole outfit and (2) "compile" the selected outfit for "errors", e.g. red short doesn't go with brown sweater.
To get me started, what's the best approach to building such a thing? <comment><USER2> Perhaps you could start out building your data model using an existing language? That'd give you the chance to experiment with the semantics, and figure out what you need to express in your DSL in a fairly rigorous way.

Once you've nailed that, you could start playing with syntaxes that could be compiled to that data model. Some sort of declarations and then expressions for "outfits", maybe?

Have you considered using Prolog? I'm no expert, but that was my first thought for tackling this kind of problem.</comment>


Bessemer Snags a "Designer In Residence" From Mint.com - <AUTHOR> http://www.techcrunch.com/2009/12/01/bessemer-jason-putorti-designer/ <comment><USER2> Based on the TC description, there's a fundamental difference between what he'll be doing and what an EIR does. An EIR primarily helps with deal sourcing and evaluation. An EIR becomes a quasi-VC.

But it sounds like Bessemer is going to be a glorified service provider for portfolio companies. What's next, and Accountant In Residence?

<comment><USER3> Or, perhaps he plays the Steve Jobs role--that ultimate arbiter of taste that doesn't let anyone release anything that doesn't meet his sky-high standards.

That'd be interesting.</comment></comment>


Sex redefined: the idea of two sexes is simplistic - <AUTHOR> http://www.nature.com/news/sex-redefined-1.16943 <comment><USER2> "Some researchers now say that as many as 1 person in 100 has some form of [atypical sex]."

If the "simplistic" male/female binary explains >99% of observations, there does not seem to be a strong case for describing biological sex as a "spectrum"...

I am 10,000% behind tolerance and acceptance for people of all genders and sexes and orientations, and it's very useful to understand how much biological complexity and variation is possible. But... any honest interpretation of the data would suggest that "the idea of two sexes" is an highly accurate approximation for Homo sapiens.

<comment><USER3> 1% of the world's 7 billion people[1] is 70 million people. That's a little less than the population of Congo, a little more than the population of France. [2]

I'll admit that what you're willing to call a "highly accurate approximation" is pretty arbitrary. There are some systems where I would call an approximation with a 1% margin of error a highly accurate approximation. But it's a pointless argument to make when your 1% margin of error includes 70 million people. I think we can all agree that issues which affect 70 million people are not negligible.

[1] [http://www.worldometers.info/world- population/](http://www.worldometers.info/world-population/) [2] [https://en.wikipedia.org/wiki/List_of_countries_and_dependen...](https://en.wikipedia.org/wiki/List_of_countries_and_dependencies_by_population)

<comment><USER4> > _But it 's a pointless argument to make when your 1% margin of error > includes 70 million people._

You say that like it's some huge number. 70 million or not, it's still 1%. Numbers get their significance relatively, not in themselves.

<comment><USER3> > You say that like it's some huge number. 70 million or not, it's still 1%. > Numbers get their significance relatively, not in themselves.

Relative to what? I can't believe I'm having this conversation.

70 million people is more than the number of people killed in both world wars. 70 million people is more than the population of the UK or Canada. Are you claiming that the world wars caused negligible deaths, or that the populations of the UK or Canada are negligible?

You can't just say 1% is a negligible amount without context. Whether 1% is a negligible margin of error is entirely dependent on context. 1% blood alcohol will probably kill you, 1% error on your taxes, if intentional, is enough to put you in jail, 1% error in floating point arithmetic is the difference between a missile that hits its target and a missile that lands in a civilian residence. But numbers get their significance relatively, right?

70 million people _is_ a lot of people.

<comment><USER5> I can't believe you're having this conversation either. You're correct, obviously; you've thrown out tons of trivially correct examples to make it clear to everyone just how right you are, none of which have anything to do with this. You are of course aware that 1% _out of a population_ has nothing to do with the concept of a 1% error on your taxes or 1% blood alcohol. Alcohol does not affect you 1% of the time if you have a 1% BAC.

Everyone here knows that if you make the population arbitrarily large, the 1% sample becomes large too. But can you really argue that being able to represent 99% with a binary spectrum isn't a pretty good approximation? What percentage would be good enough for you? Or are you going to say "99.9% isn't good enough because 7 million is a lot of people. that's more than died in X'?

<comment><USER3> > I can't believe you're having this conversation either. You're correct, > obviously; you've thrown out tons of trivially correct examples to make it > clear to everyone just how right you are, none of which have anything to do > with this. You are of course aware that 1% out of a population has nothing > to do with the concept of a 1% error on your taxes or 1% blood alcohol. > Alcohol does not affect you 1% of the time if you have a 1% BAC.

So you agree then that whether 1% is negligible is based on context?

> Everyone here knows that if you make the population arbitrarily large, the > 1% sample becomes large too. But can you really argue that being able to > represent 99% with a binary spectrum isn't a pretty good approximation? What > percentage would be good enough for you? Or are you going to say "99.9% > isn't good enough because 7 million is a lot of people. that's more than > died in X'?

Yes. In case you didn't notice, 7 million people is a lot of people.

<comment><USER4> > _So you agree then that whether 1% is negligible is based on context?_

Yeah, or as I put it: "Numbers get their significance relatively, not in themselves".

Whereas you repeatedly stated how 70 million people is a huge number in itself.

E.g. If I told you there are 70 million people that have blue eyes, is that "a huge number?" No, it's actually a small number. One would expect blue-eyed people to be in the 100s of millions or billions.

<comment><USER3> > Whereas you repeatedly stated how 70 million people is a huge number in > itself.

I haven't claimed that at all. I've said over and over that context indicates whether it's important.

> Whereas you repeatedly stated how 70 million people is a huge number in > itself.

No, I've said 70 million people is a lot in terms of medical and social policy. It would be very possible, for example, for 1% of people to account for 10% of medical expenses--an amount you would probably care about at tax time. I think that's a number that matters to almost anyone's political goals.

In contrast, you've been repeatedly stating how 1% is not a large number. Based on what?

> E.g. If I told you there are 70 million people that have blue eyes, is that > "a huge number?" No, it's actually a small number. One would expect blue- > eyed people to be in the 100s of millions or billions.

Science doesn't give a shit about your expectations. "Expectations" are entirely irrelevant to whether a number is big or little. A number is big or little depending on what effects it causes and what effects you're trying to achieve.

You're accusing me of arguing that 70 million is inherently a large number, but you're arguing that 70 million is inherently a small number, completely arbitrarily. I'm not even saying 70 million people is a big or small number inherently, I'm saying that 70 million people is a huge number when the properties of that group have medical and social implications. 70 million blue-eyed people isn't a small _or_ large number, it's an irrelevant number, because whether or not someone's eyes are blue has almost no implication that I care about. If you understand why it's not a big or small number, but an irrelevant number, you'll understand my point.

<comment><USER4> > _Science doesn 't give a shit about your expectations._

Language.

Also, I didn't say it's about "MY" expectations. It's about what the expected distribution is, which is the whole context that makes something big or small.

 _" Expectations" are entirely irrelevant to whether a number is big or little._

Actually, it's all about that. Bringing 10,000 times 6 by throwing dice 20,000 times is too big, because the expected outcome is about 1/6 throws to be 6.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> There is a spectrum of how many legs a human is born with. Some people are born with two, some with none, some one, some with three. Some people are born with between one and two legs that enable them to walk upright on the side of a slope. The idea of two legs is simplistic. Biologists now think there is a wider spectrum than that. What I am getting at is, there is science and then there is the social context for a scientific fact. Some may be more useful than others in various contexts, but the pure scientific fact may not be useful at all, or actually confound your ability to understand things.

<comment><USER7> > the pure scientific fact may not be useful at all, or actually confound your > ability to understand things.

That's true in the abstract (undeniably, some scientific fact is confounding -- I don't need to know about about quantum uncertainty to cook dinner) but I don't think it applies well to this issue.

This report may confound some people's understanding of sexuality, but to people who don't fit that conventional understanding, and to their loved ones, it does the opposite. Imagine a lifetime of being reminded that you don't belong -- every bathroom sign, do you attend the girls school or the boys, every form you fill out, every locker room experience, every medical procedure, etc etc. Addressing that seems much more important and fair than reducing the confusion that new ideas can bring.

This is the nature of change and progress: Humans naturally are very egocentric, and can be wholly unaware of others' experiences and perspectives. When the reality of those experiences is thrust upon us, we often object -- everything seems fine to us, after all, and our old theories explain our experiences.

Think of the responses to racial and gender discrimination, where many in the majority insist that it doesn't exist. After all, they haven't experienced it.

</comment></comment><comment><USER8> This is a fascinating article, and stands on its own merits. Go read it.

The point I'd like to make though is that sometimes we use science to justify intolerance, and time and again the science has caught up with what people have reported as their own life experience.

<comment><USER9> > The point I'd like to make though is that sometimes we use science to > justify intolerance

What? How can discovering the natural laws of the universe be a justification for intolerance?

<comment><USER10> [http://en.wikipedia.org/wiki/Scientific_racism](http://en.wikipedia.org/wiki/Scientific_racism)

<comment><USER9> I see that there is a history. But science, by its nature, is descriptive, not prescriptive. It describes how the world is, not how it ought to be.

Pretend for a second that science discovered convincing/rigorous evidence that white people were less intelligent genetically than other races. That isn't justification for intolerance against white people. We get to choose our values as a society, independently of the reality of the world around us. Science is a poor justification for intolerance, no matter what arguments people may attempt to make.

<comment><USER11> People have used what they believe to be true from either actual scientific evidence or a particularly bizarre/inept interpretation of scientific evidence to justify their actions. Science is descriptive, but people turn it into a prescription for how to do or deal with X. Whatever X may be. People read the scientific report saying that a glass of red wine has some heart health benefits and they start drinking (or justifying the drinking they already did). That's at least a benign (assuming they don't go overboard on the drinking) example. At points in history, and those points are described in the linked article, people believed numerous things about the various "races". They based this on scientific or pseudo-scientific findings of the time, that often fit their pre-conceived notions. They used this to justify their prescribed solutions. Whether it was slavery, subjugation or genocide.

It is a poor justification for intolerance, and that's part of what the original poster was pointing out. But just because it's a poor justification doesn't mean it hasn't been done. People (as a collective) are not inherently rational or logical. They're easily led by the nose by charismatic speakers and those skilled in rhetoric. They want to believe they're special or that someone else is to blame and when someone presents something that helps them believe that they lap it up. It's happened throughout history, and it'll continue through the future. The best we can hope for is that our understanding of the universe and nature casts light on more things so those that would abuse it have fewer shadows to hide in.

<comment><USER9> > The best we can hope for is that our understanding of the universe and > nature casts light on more things so those that would abuse it have fewer > shadows to hide in.

I suppose. But the question still stands: what if there was rigorous evidence that one race was genetically more intelligent than another? We need to have an understanding that such data would in no way be justification for oppression or mistreatment. We get to choose our own values. That needs to be the message, IMO.

</comment></comment></comment></comment></comment></comment><comment><USER12> The observation that a characteristic exists on a spectrum, and the observation that the vast majority of individuals fall on one of two extremes of that spectrum, are not mutually exclusive.

For the overwhelming majority of organisms, including _Homo sapiens_ , all proposed indicators of sex (anatomy, hormones, cells, chromosomes) give the same answer. Reading the final two paragraphs of the paper, it's obvious that attempts to muddy this naturally clear water are being made for political, not scientific reasons.

<comment><USER13> Bingo. This is just another way to divide people and create pointless discussion about a non-issue so we can praise the "tolerant" and chastise those who see it for the agitprop it is.

FTFA: > So if the law requires that a person is [sic] male or female, should that sex be assigned by anatomy, hormones, cells or chromosomes, and what should be done if they clash?

Easy, have laws not discriminate by gender. Isn't that the point? No need to discuss biology on and on to help some agenda.

</comment></comment><comment><USER14> Biologists now think that the idea of two sexes is simplistic? This was high school biology more than a decade ago.

Reality is never as neat as our models of it are. The question is what we do about it. This reads to me like a call to arms for handling the exceptional cases better. I could get behind that.

There's no need to throw out the male/female binary for most situations, though. Exceptions can be handled as exceptions, as long as you know they exist.

 _" [...] all models are wrong; the practical question is how wrong do they have to be to not be useful."_ ~ George E. P. Box

</comment><comment><USER15> The similar magnitudes of intra- and inter-sex differences are the best argument against sexism.

This seems more true for behaviour than it does for physiology, but findings like those in the article make it harder to draw even that distinction.

</comment><comment><USER16> Some of the unusual situations mentioned are birth defects. About 3% of babies have birth defects.[1]

[1] [http://www.cdc.gov/ncbddd/birthdefects/features/birthdefects...](http://www.cdc.gov/ncbddd/birthdefects/features/birthdefects- keyfindings.html)

<comment><USER17> So if you count out birth defects and dimorphisms that have no weight on "gender" you have an insignificant amount of variance.

Sounds to me like someone is reaching to make science match the way they feel about gender.

</comment></comment><comment><USER18> Ok, a practical question: for those of us required to get a value for "sex" into a database, what possible values would be appropriate to have?

// and yes, we have to ask as their a whole lot of laws and scholarships that reporting requires the number

<comment><USER19> IIRC, one database used by a large public-sector healthcare entity that I encountered used male, female, other, and unknown.

Of course, if you have external requirements to capture sex/gender, they probably also dictate the valid options. If you have multiple different external requirements, the options may be different for each and the correct value for the same individual may be different for different purposes. One value may not be sufficient.

</comment></comment><comment><USER20> If this is the case, then the headline and byline are clickbait oversimplifications in their own right.

If there are people in this world who wish to reject the concept of gender association with our biological reproductive systems, is there a need to provide additional classification, rules of governance, services, etc. other than "Denies classification"?

Otherwise, are we not chasing a long tail of specific situations in which everything can be deemed intolerant?

</comment><comment><USER21> Even when I was a child (35 years ago) it was already common knowledge that hermaphrodites exist. So this is really not shocking news. It's interesting that they have new biological insights, but I'd say it's biologically interesting, not socially. Although it certainly seems wrong to operate babies to fix them on a gender - but I doubt there was ever a scientific rationale behind it.

<comment><USER22> Children born with ambiguous genitalia were often operated on to form one gender or the other. While this wasn't for a biological reason, the rationale was justified by social science. There are issues that arise from children not identifying with 99% of the population, and physicians and parents sought to avoid that. It turns out that it might be at least as problematic to choose "incorrectly" for your child.

</comment></comment><comment><USER23> One of the predicted outcomes of the Singularity is the removal of sex as a characteristic. Note that race would be removed as well. A posthuman (of whatever form) would be free of both sex and race.

<comment><USER24> Oh boy, I will maybe get flagkilled, but you are wrong: race, sex, clothing, and just about anything easily observable is used by humans to precondition the Bayesian probability of the outcome of any social interaction. I see no reason to expect that AI will be any different in this matter, perhaps only more efficient.

<comment><USER25> Your username intrigues me (in the context of a discussion about sex determination). Are you by any chance a monotreme?

<comment><USER24> I'm a cyborg platypus, nice catch. Just two chromosomes is not enough to express all the variations of an algorithmic gender. And by the way, we also sometimes have Z's (but that's considered a racial thing, so no asking).

</comment></comment></comment></comment><comment><USER26> Redefining sex because of chimaerism? What is this, Nature Gender Studies?

</comment><comment><USER27> The 'two-sexes approximation' is boolean, not binary. Boolean involves two possible values; binary involves an infinite number of possible values, represented in base-2.[1][2]

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

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

note: this is a re-post of a comment made on a child of the OP.

<comment><USER28> You are contradicted by the very Wikipedia article you posted: "Binary means composed of two pieces or two parts" You look it up in any dictionary and a similar definition will be given, which in the context of the article is a completely correct usage. Binary as a word predates computer science by quite a bit ...</comment></comment>


Ask HN: How does a beginner navigate the JavaScript MVC jungle? - <AUTHOR>

HN, I am an average programmer. When I have time outside my day-to-day occupation, I develop webapps on the side. I usually develop in some combination of JavaScript, jQuery, PHP, and SQL.
I want to move over to some dedicated JavaScript solution (using the MVC architecture pattern). I've been meaning to do so for a while, and over that time I have read a number of introductions to the various frameworks, i.e., Backbone, Angular, Meteor. And have a passing acquaintance with a few.
But now that I want to develop a new product, I don't where to start with this fragmented JavaScript jungle. Do you have advice on:
(1) The best MVC for beginners;
(2) The best place to start with databases;
(3) Essential reading;
(4) General information/advice. <comment><USER2> I am also trying to navigate the same jungle for a new project. Here's what I could find in the last few days. I am not an experienced programmer likewise, so take this with a grain of salt.

1) I would argue this is a close call between Angular and Ember, and I personally picked Angular, mostly for philosophical reasons. I am sure Ember is just as good, it just doesn't work as well for me. [1]

2) SQLite is good for personal projects, as far as I know. It's a little too accepting of faults in your code, but when you want to get up and running as soon and painlessly as possible, it does the job. Otherwise use Postgres.

3) Angular has a list of good video tutorials at [2], though other than this and the official site, I have yet to find any good documentation. Which might either be my lack of Google-fu or a genuine need.

4) If you understand what MVC is and if you have coded with Javascript before, it should be easy to pick up. Pay attention to file structure, the scope, best practices, as especially with Javascript being a permissive language it's very easy to get away with low quality code that'll hurt you badly later. Have test coverage.

[1] <http://blog.wekeroad.com/2013/03/06/ember-confuses-me>

[2] <http://egghead.io>

</comment><comment><USER3> "Journey Through The JavaScript MVC Jungle"

[http://coding.smashingmagazine.com/2012/07/27/journey- throug...](http://coding.smashingmagazine.com/2012/07/27/journey-through-the- javascript-mvc-jungle/)

An open source Backbone book:

<https://github.com/addyosmani/backbone-fundamentals>

And a free lesson in Backbone from Code School after signing up for Coderbits... (usually $30)

<https://coderwall.com/p/dwqwvw>

Addy Osmani also has a great site that does the same todo list app in many different MV*'s:

<https://github.com/addyosmani/todomvc>

That should be a good start!

</comment><comment><USER4> I've been reading "JavaScript Web Applications" by Alex MacCaw and it provides a great introduction to MVC and a number of popular client-side frameworks. It also contains a ton of best practice advice for general JavaScript development. Definitely worth checking out.

<http://shop.oreilly.com/product/0636920018421.do>

</comment><comment><USER5> FWIW, I've seen several recommendations for "Essential ActionScript 2.0" by Colin Moock, which has a chapter on MVC. ActionScript is of course a useless language nowadays, but the explanation looks pretty useful so far (I haven't finished going through it).

</comment><comment><USER6> angular is amazing. way less code needed.</comment>


Surface Pro X and Windows 10 on ARM reviews review: a developer perspective - <AUTHOR> https://gus33000.me/2019/11/12/surface-pro-x-windows-10-on-arm-reviews-review-a-developer-perspective/ <comment><USER2> Something that confuses me about the corporate culture at Microsoft where stuff like this happens all the time. Let's imagine that an entire team of people worked tirelessly to design, engineer a $1.5-2k device, and manufacture something that most likely took a couple of years. Now how on earth did they release this thing and not have an earnest plan to also ship their own first party ARM64 binaries with it?

I cannot think of any other company where this is remotely acceptable. I'm not even comparing them to Apple that sets the gold standard for all the various organizations working together.

Can you imagine if Google released their Pixel 4 but instead shipped the 32-bit Android OS with it because the 64-bit version required some extra drivers?

<comment><USER3> > Now how on earth did they release this thing and not have an earnest plan to > also ship their own first party ARM64 binaries with it?

Didn't they? Is the OS itself actually running through the translation layer? It also appears that they built Edge for it.

But for apps, there's a real chicken-and-egg problem that happens with every weird architecture or embedded devkit: third parties can't really work on it until you have hardware. So of course at launch there's going to be no third- party support unless you delay for months waiting for your partners to catch up.

 _If_ they're serious that ARM64 is going to be a first-class Windows platform in the future, and that they've given up on the RT nonsense, then there has to be a first ARM64 device to bootstrap the process.

<comment><USER4> The built Edge for it, but somehow didn't release even a public beta version for Pro X users. It's kind of nutty.

</comment></comment></comment><comment><USER5> I've spent a few evenings trying to get openjdk compiled, but have given up. Everything runs fine, but when non native apps do anything intensive things get slow.

Honestly it is okay if you do most of your work through WSL as arm64 is supported there.

</comment><comment><USER6> Having previously owned a Windows RT device, I think I will wait a while.

I don't even understand why this move is needed. You are just trading performance and compatibility against, at best, 20-30% better battery life.</comment>