Leaving Wordpress for a Static Blog - <AUTHOR> http://www.otherlab.com/blog/2013/02/14/leaving-wordpress-for-a-static-blog.html

<comment><USER2> _example.com must auto-redirect to www.example.com

Unfortunately, there is no way to host your "root domain" out of an amazon s3 bucket_

This is possible using an alias record:

 _Can I point my zone apex (example.com versus www.example.com) at my website hosted on Amazon S3? Yes. Amazon Route 53 offers a special type of record called an 'Alias' record that lets you map your zone apex (example.com) DNS name to your Amazon S3 website bucket (i.e. example.com.s3-website-us- west-2.amazonaws.com). IP addresses associated with Amazon S3 website endpoints can change at any time due to scaling up, scaling down, or software updates. Route 53 responds to each request for an Alias record with one IP address for the bucket. Route 53 doesn't charge for queries to Alias records that are mapped to an S3 bucket that is configured as a website. These queries are listed as "Intra-AWS-DNS-Queries" on the Amazon Route 53 usage report._

<http://aws.amazon.com/route53/faqs/#S3_Zone_apex>

<comment><AUTHOR> Thanks, byoung2! I will add that edit to the blog. If you could elaborate, I'd love to describe a little clearer how it works practically.

<comment><USER2> Basically, the zone apex (example.com) has to point to an IP address (a DNS A record). The problem with some AWS services (e.g. S3, Elastic Load Balancers, Cloudfront) is that you don't have a static IP address to point to because as scalable services, you are hosted over many servers which can change at any time. If you host your DNS on Amazon Route53, you can take advantage of Alias records, which are exclusive to Amazon. Basically, an alias record lets you point example.com at a resource (S3 bucket, load balancer), and Amazon will periodically look up the current IP address and return it when that record is looked up. These records are served with a relatively short TTL to allow for constantly-changing IP addresses.

</comment></comment></comment><comment><USER3> I find it fascinating that all the hackers start from scratch instead of creating a plugin which takes the templates, tools, & posts they already have on wordpress and figure out how to create a plugin which does more intelligent caching or even creates a static site.

In terms of security there is a lot you can do to tighten up a base wordpress install.</comment>


Whatsapp vs Viber – Who got a better deal? - <AUTHOR> http://appiterate.com/whatsapp-vs-viber-who-got-a-better-deal/?utm_source=HN&utm_medium=Social&utm_campaign=Dis

<comment><USER2> I did a feature comparison to mobile messengers a while back. [https://docs.google.com/spreadsheet/ccc?key=0AtWoXGrBr42pdDl...](https://docs.google.com/spreadsheet/ccc?key=0AtWoXGrBr42pdDlraHd3NzZ5MXRTM3BsTy10TU1wMmc&usp=sharing)

<comment><USER3> Interesting company behind Google Voice

</comment></comment><comment><USER4> I hope that they dont force me to use a fb login in whatsapp now!! That'll really suck.

<comment><USER5> If you think that was their intention with this acquisition, you're mistaken. WhatsApp poses a threat to traditional social networking, and Facebook obviously wants a leg in that race.

</comment></comment><comment><USER6> Buying a messenger was only logical for fb...fb chat was not going to compete with the likes of whatsapp...if you cannot beat them, buy them :D

</comment><comment><USER7> Synergies in Viber - Rakuten deal seems better as there is a minimal overlap of user base especially in terms of geography.

</comment><comment><USER8> Now FB has another layer of data about our phone contacts..

<comment><USER9> The Facebook app can already: -read your SMS messages

-modify/read your contacts

-read/write your call log

-read the contents of your storage

-retrieve running apps (i.e. it knows every app you have installed on your device, given enough time)

There's so much talk about how Google knows its users better than anyone else, but I think there's little doubt that Facebook gets the throne as far as data collection goes. And lets not forget that in addition to all the above data Facebook knows the 99% of your browsing activity and even _when_ you opened a certain website.

There's really nothing more they can take from us, so I highly doubt this acquisition was meant to bolster their data collection capabilites.</comment></comment>


Field Notes: Highlights from Huawei - <AUTHOR> https://a16z.com/2019/05/29/field-notes-highlights-from-huawei/ <comment><USER2> The last paragraph was fascinating...

> My family uses Apple's phones; Apple's ecology is very good. When family > members travel abroad, I would gift them an Apple computer. One can't > narrow-mindedly believe that if you love Huawei then you must only use > Huawei mobile phones.

> At present, public sentiment about Huawei is being spun in one of two ways. > The first spin is that if you are patriotic then you should buy Huawei. The > other spin is that Huawei has hijacked the patriotic sentiment of the > people. [But this is just spin] after all, my own child doesn't love Huawei > [product], my own child loves Apple [product].

<comment><USER3> This is a classic submarine PR hack to "defuse" the trade war, by showing an emphatic side. One can easily get away with such statements that can't be demonstrably proven and hence needs to be thrown away, since it's just noise in the context of the actual discussion (the US's sanctions on Huawei).

<comment><USER4> Which part are you referring to? I think word that the CEO plus family use iPhones was out there for much longer than the huawei ban, so they either were planning ahead or it's actually true.

As for the PR hack I wouldn't go as far as calling it a hack... It just sounds very Chinese from my perspective. They do go full trump sometimes but usually there's this harmony thing going on. Keep in mind that this is the translation of an interview given to Chinese media, it was primarily directed at Chinese citizens.

</comment></comment></comment><comment><USER5> I enjoyed this read. There is pride but there is humility too. We are separated by language difficulty. The 996 movement and this is a reminder to me that we are not all that different. They did not start the trade war, and everyone in my state desired low price goods for decades before it was suddenly wrong to have a trade deficit.

<comment><USER6> They started the trade war before it even began by not allowing key US companies with market access...Pretty sure they blacklisted Google and Facebook well before we blacklisted Huawei.

<comment><USER7> Huawei and Facebook/Google case is not the same.

Huawei was put in the Entity list. That means two things.

1)Huawei can't sell any equipment or phone in the US. It's about market access. It's equal to Google/Facebook were denied to access the Chinese market if they don't obey the censorship policies. Huawei was also denied to access mainstream America market for a long time.

2)Huawei can't buy any components and services from any American companies. Even Google & Facebook are not accessible in China, they still have lots of business there.

So basically, Putting Huawei in the Entity list almost means to kill Huawei because Chips from American companies are important for their supply chain. It's not only about market access.

That's the reason many people in China feel very angry.

<comment><USER8> The basic idea behind your point is "What we (China) did is totally fine in terms of working against your (US) economy but you doing something different against us (China) is NOT okay, irrespective of the magnitude of impact."

Seems pretty silly to me. China's barring of US enterprises from selling in China is dramatically more damaging at scale than US blacklisting Huawei.

<comment><USER7> You misunderstood the comment. I didn't mean it's fine. Most people don't like censorship. I just presented the perspective from the other side.

Regarding your point about the "against US economy" or "against China economy". Maybe you are in a war mindset. If we jump out this "war" mindset, we can see "China's barring of US enterprises from selling in China" is really not about against the "US economy". It's about censorship.

1) There are many US companies which are very successful in China, Qualcomm, Apple, Nike, Starbuck, etc. Actually, I rarely heard any stories about the market access problem for non-internet companies in China.

2) There is a "forced IP transfer/partnership" issue in some sectors, for example, the auto sector. It is very unfair. But the result of it is also very complex. I will address it in a separate post.

3) The market access issue of many internet companies, such as Facebook/Google, is about censorship policies. Google operated in China several years ago, but it withdrew from the market because of the censorship requirements from the government. Apple complies with the requirement, so it works well in China. I didn't mean "Censorship" is a good thing. I just mean as far as I can understand, it's about "censorship", not about "against US economy".

"Magnitude of impact": Could you explain more about this point?

<comment><USER9> > Google operated in China several years ago, but it withdrew from the market > because of the censorship requirements from the government

Google hesitated to enter China because of the censorship requirements (1) but eventually entered anyway, led by a researcher they hired away from Microsoft, Kai-Fu Lee (1, 2). They exited because they caught the Chinese associates stealing source code, and only after their first "war room" effort to nail down exactly what was going on (1, 3).

(1) [https://www.amazon.com/Plex-Google-Thinks-Works- Shapes/dp/14...](https://www.amazon.com/Plex-Google-Thinks-Works- Shapes/dp/1416596585/)

(2) [https://www.cio.com/article/2425034/head-of-google-china- lea...](https://www.cio.com/article/2425034/head-of-google-china-leaving-to- start-new-venture.html)

(3) [https://techcrunch.com/2010/01/12/google-china- attacks/](https://techcrunch.com/2010/01/12/google-china-attacks/)

<comment><USER7> Thanks for bringing these references up. However, I think the major reason is still censorship or too much censorship & political dissent. The aim of stealing source code is probably to hack the account of political dissents as Google pointed out. The action was more about "the political motivation related to dissent" than "against US economy". That's my main point.

[https://www.spiegel.de/international/business/google-co- foun...](https://www.spiegel.de/international/business/google-co-founder-on- pulling-out-of-china-it-was-a-real-step-backward-a-686269.html)

Brin: I don't think it's a question of taking on China. In fact, I am a great admirer of both China and the Chinese government for the progress they have made. It is really opposing censorship and speaking out for the freedom of political dissent, and that's the key issue from our side.

SPIEGEL: Four years ago, you allowed your service to be censored. Why have you changed your mind now?

Brin: The hacking attacks were the straw that broke the camel's back. There were several aspects there: the attack directly on Google, which we believe was an attempt to gain access to Gmail accounts of Chinese human rights activists. But there is also a broader pattern we then discovered of simply the surveillance of human rights activists.

"Second, we have evidence to suggest that a primary goal of the attackers was accessing the Gmail accounts of Chinese human rights activists. "

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> I cannot help but read the CEO's comments in a strategic manner, where more than anything explicitly mentioned, they communicate an immense desire or even need for the company to be able to intensively work with US companies again.

Almost every comment noted makes a point to praise US companies or portray Huawei as a desirable and capable but non-threatening partner.

<comment><USER11> Yes, please read it in a strategic manner. However also consider that a praise can be presented in different ways. Sometimes a company is praised to increase the company's pride. Sometimes it is praised to really show a need for cooperation. Sometimes it is praised in a manner that shows "we could work together but if not it's also fine". And sometimes such a representation is honest and sometimes its fake. So at least three dimensions in every sentence.

</comment></comment><comment><USER12> What made me particularly sick is when asked about over time working problem (996[1]), Ren's answer was: Huawei obeys the law and protect workers, but our workers have a calling, they won't be successful without their calling. Foreign scientists work even harder than Chinese scientists, many foreign scientists don't get married before 40s.

This is the finest propaganda I've seen recently, well matching the "Our great Patriot Farmers" tweet[2]

[1] [https://en.wikipedia.org/wiki/996_working_hour_system](https://en.wikipedia.org/wiki/996_working_hour_system)

[2] [https://twitter.com/realdonaldtrump/status/11282610666544087...](https://twitter.com/realdonaldtrump/status/1128261066654408709)

<comment><USER13> It isn't much of an exaggeration to say his company is under sustained attack by the United States. Control over telecommunications is a plank in the US's strategic dominance; if Huawei was based in Iran a WMD-found-boots-on-ground- needed incident might even be on the cards. There are 300 million people in the world who are notionally legally bound to try and make Huawei's life difficult.

I'm not sure I can begrudge him propaganda. The threats to him personally and professionally are huge.

<comment><USER14> A great first step in encouraging technological openness would be dropping the Chinese Firewall[1,2]. Chinese companies have had a playing field slanted toward them for a while now. We should work toward open innovations in both the U.S. and China.

Don't get me wrong; I disagree with the recent U.S. approach and agree that it's not an exaggeration to call this an attack on Huawei, but we'll have far worse things to worry about than Google removing ad-blocking if we let the Chinese state dictate our online lives.

I don't think protectionism is the answer, but I don't think the Huawei CEO is being completely genuine in his presentation here. It was definitely interesting to hear his perspective though.

[1] [https://en.wikipedia.org/wiki/Great_Firewall](https://en.wikipedia.org/wiki/Great_Firewall) [2] [https://en.wikipedia.org/wiki/Websites_blocked_in_mainland_C...](https://en.wikipedia.org/wiki/Websites_blocked_in_mainland_China)

<comment> dis-sys > A great first step in encouraging technological openness would be dropping > the Chinese Firewall[1,2].

A great first step in encouraging technological openness would be dropping the decades long high tech embargo against China.

<comment><USER15> I don't see how that's related to China's Great Firewall. What decades long embargo are you referring to?

<comment><USER16> Indeed, especially since by all accounts a lot of the firewall is built out of Western tech (e.g. Cisco).

</comment></comment></comment></comment></comment></comment><comment><USER17> > The United States does not have the power to call on all other countries to > close the door to Huawei.

Sure it does. The US has the sovereign right to decide who it wants to do business with, and the right to say "if you do business with Huawei, we won't do business with you", and leave it up to other countries to decide which route they would like to go.

<comment><USER18> Agreed. It's not likely to be handled so directly, but the people who do this negotiation are well able to make the point without saying the words. If chess was a good analog to the wars of old, poker is a more fitting analog to diplomacy today.

</comment></comment><comment><USER19> I would like to hear what they have to say about patent infringements and allegations that Huawei stole Cisco technology and sold it 10x cheaper.

</comment><comment><USER6> "...yet we are still very grateful to the American companies. They have made a lot of contributions to us."

And not always voluntarily :)

e.g. MacBook --> MateBook

<comment><USER19> When I got one of those electric unicycles, I got mine from Inventist (Solowheel), I was shocked to learn how badly the company got ripped off in China. Since they were fabricated there, they copied the thing to a tee and hundeds of companies started making the same thing, some copies bad and dangerous, others improved. To summarize, the original company, Inventist, was attemped a mafia style takeover, I think they were offered a few mil USD which they refused. The gyro mechanism was based on some patented technology from Segway and eventually one of the chinese companies took over Segway.. Real story:( Things coming from China are now cheap but after they eliminate all the competitors they'll name the price. Of course, US is not an angel either, they're the ones to open the pandora's box to cheap chinese labor, moved all their factories there to gain the short term profits by eliminating the cost of their own workers.

<comment><USER20> wait, they bought the company with the pattent? that's exactly what american capitalism is about!

apple bought fingerworks(?) and sat on top of their patents, refusing all license requests, until 20(?) years later they started working on the iphone. How exactly is the chinese abuse of patents any different?

you can't cry for solowheel without also cursing apple for the death of palm pilot and all other portables before the iphone (not to mention the awesome keyboard+touchpad fingerworks was delivering the months apple shut them down)

<comment><USER21> Apple is just doing what makes them money, and the Chinese company that bought Segway is also just doing what makes it money.

The real issue is a patent system that allows someone to refuse to license a patent. That goes against the whole point of patents. You're supposed to be getting the innovative technology _out there_ in exchange for the right to royalties. If technological progress has not been furthered by the publicization of your patent (by other companies building novel devices that they otherwise wouldn't have, using what they _learned_ from your patent), then you don't really have a patent. You have a trade secret that the government is helping you protect for some reason.

Patents should require licensing to keep them alive in about the same way that trademarks require defending to keep them alive.

<comment><USER22> >The real issue is a patent system that allows someone to refuse to license a patent.

One solution (suggested in the book "Radical Markets" \- [http://radicalmarkets.com/](http://radicalmarkets.com/) ) is pretty straightforward: charge a yearly tax of around 7% on the patent equal to whatever the patent owner claims it is worth, with the caveat that they MUST sell the entire patent to whoever is willing to pay the claimed "value" of said patent - this prevents under-pricing AND over-pricing and ensures maximal societal benefit of said government-granted monopoly.

The book goes into a lot more detail, and the authors have good solutions for the more obvious arguments against such a scheme.

</comment></comment></comment></comment></comment><comment><USER23> Seems by and large reasonable but notably doesn't address the elephant in the room: potential their hardware has built-in backdoors for China government access. Should be simple enough to provide at least basic assurances (a la Apple)

<comment><USER5> Backdoors come in red, white, and blue colors too besides just red and yellow. This isn't just whataboutism, as wannacry and the like show. We have no more accountability here or there. Traffic can be encrypted end to end anyway. Paranoia can be counter productive. If 5g became worthless during a military confrontation with china there are many other choices for emergency communication. Even mentioning this has me worried with a loose cannon in the executive.

</comment></comment><comment><USER24> I would have liked to see a comment on the extradition of the CFO to the US.

<comment><USER25> From the full interview [https://mp.weixin.qq.com/s/BkPvcbVU- ogZcWwFkKQqEw](https://mp.weixin.qq.com/s/BkPvcbVU-ogZcWwFkKQqEw)

抓我的家人,就是想影响我的意志,我家人给我的鼓舞就是鼓舞我的意志。女儿写给我的信说,她会长期做好思想准备,她也很乐观,我就放心了,减轻了很大压力。我要超越个人、超越家庭、超越华为来思考这个世界上的问题,否则我就不客观了。

 _Arresting my relatives is intended to affect my determination; the encouragement I receive from my relatives is to encourage my determination. My daughter wrote me a letter, saying that she will mentally prepare for the long term; she 's also very optimistic; I'm relieved; this has reduced the pressure a lot. I want to go beyond myself, beyond my family, beyond Huawei and consider the problems of this world, otherwise I wouldn't be objective anymore._

</comment></comment><comment><USER11> I haven't seen it in other comments so let me add that interpretation as well:

It is not just an expression of a participant in a trade war between his and another country. It is also an expression of a politician who wants to become a father figure for his people.

It is very very risky to even hint at something like this in such times. It is not impossible that we see Xi Jinping taking apart Huawei at some point to beat a possible internal competitor.

Think about the admirable spirit one must have to put ones life on the line. Wow. That's more than Elon Musk or Ma Yun are doing.

And it also means he's either going crazy (unlikely) or that he has a lot of backing from political forces that try to undermine the Xi government from within. Let's hope he's more Cao Cao than Yuan Shu.

</comment><comment><USER26> I would love to read a full translation of these remarks - along with a color commentary regarding the cultural expectations of what a proper Chinese CEO is expected to say vis-a-vis what a proper American CEO is expected to say.

</comment><comment><USER27> I have a feeling the "spare tire" chips are chips they've been ripping off from Qualcomm et al, and now they have an excuse to make them. That would explain why he is framing it that they were just for a contingency, they never planned on using them.

They've done that many times in the past, but they're too big to get away with it so easily now.

</comment><comment><USER28> I dunno how much of this is P/R and how much is humility. If this was coming from a CEO of a Japanese company I would be much more likely to believe him. In the end it was his government's power moves that have started all of this. He's not at fault but his government sure is.

<comment><USER29> What power moves specifically? Curious. I'm not saying the Chinese government isn't at fault because the asymmetry of market access isn't something that we should tolerate. But we did tolerate for a long time. So what I'm curious about is what happened to start this change.

<comment><USER30> The trade war was obviously begun by Trump. There are people who are already trying to rewrite history on this.

</comment></comment></comment><comment><USER7>
              Forced-IP-transfer is a double-edged sword

This article is about Huawei and the trade war is the larger background. I had some entrepreneurship experience both in China and the States. "Forced IP transfer policies" is one of the core issues between the US and China. I'd like to share some thoughts about this issue from the perspectives of some entrepreneur friends in China. AFAICT, the real impact of the "forced IP transfer" is very complex. I didn't see any media report about it, so I share it here.

The perspective from media: "Forced IP transfer policies" is very unfair because it helps Chinese companies to get an unfair advantage. It's bad for foreign companies and good for Chinese economies.

The perspective from many entrepreneurs in China: "Forced IP transfer policies" is very unfair because it helps the foreign companies get an unfair advantage. It's bad for Chinese private companies and economies.

Here is the explanation from the entrepreneurs' perspective:

1) The most "forced IP transfer" happened in the Chinese-foreign partnership companies.

2) However, the partnership is between state-owned companies and foreign companies.

3) Most of the state-owned companies are very inefficient. The system makes people lazy and corruptive.

4) The partnership companies did get some technologies, often the older technologies. However, they also get benefits from the state, very cheap land, subsidies, etc.

5)From the perspective of local entrepreneurs: Benefits from state + Foreign tech and brand makes the already-strong foreign companies even stronger. They get double advantages. It's very hard to compete with them. To local entrepreneurs, the Chinese state-owned companies + Foreign companies partnership model kills many local private companies unfairly.

6) From the technologies side, the state-owned companies get some older technologies, but since the state-owned companies have their own issues like lazy, corruption. They didn't get a tech edge in the competition. The transferred technologies outdated very fast.

One example is the Auto industry. Most auto brands from the US is very successful in China, for example, Buick is not very successful in the US, but the overall sales in China exceeded 10M! Ford is also very successful in China [https://thenewswheel.com/ford-sales-in-china- surpass-1-milli...](https://thenewswheel.com/ford-sales-in-china- surpass-1-million-vehicles-in-november/)

Did the "transferred technologies make them less successful"? It's really hard to say.

There is some "forced IP transfer" in some sectors, but the impact to the overall economies may or may not positive because it makes the local private companies in a very disadvantaged position. It's really a double-edged sword.

</comment><comment><USER31> >…on a Google and Huawei phone operating system:

>Google and Huawei are discussing together how to implement a solution.

Curious what he means by this. Such cooperation may violate U.S. law.

</comment><comment><USER32> I'm annoyed by folks keep talking about Chinese govt. bans Google and Facebook whenever they see fit.

Let's be clear: no, thanks but no! We've got 1 big brother and really not interested 2 more.

<comment><USER33> Comparing the power the Chinese government holds over its people to American advertising companies that try to sell you consumer goods is laughable.

<comment><USER32> OK. how do you escape from the rule Chinese government? simple: go to another country. how could you escape from google/fb? welcome to China!

</comment></comment></comment><comment><USER34> I'm not sure if this spare tire is as potent as he is saying it is. His analog of nuclear weapons are his spare tires(home grown microchips). I'm not sure if it even makes sense given if they had it, they would save costs to use their own. On the other hand, if using their own chip means they can cause more security back doors, then that could be right, but it still doesn't make sense.

</comment><comment><USER35> So far it is a bad PR from America. Imagine some Chinese said :

"Your world is mine, my China is mine.

I can protect my market and none of you can access unless I approve it. Many don't. Google, movie, ... security you know. But thous should not. you should not use security argument.

Or legal ... Try to sue government in court ... we are now in USA court but thou should not.

We have law on paper all Chinese are our spy. You should not.

You should free trade and you should not use national security or tariff like us.

As your song said Imagine there is no country ... I would not buy you should.

..."

Can we just use one yardstick. And not just make China great again.

Btw have time read about hk extradition law.</comment>


Ask HN: How to overcome self criticism with UI design - <AUTHOR>

Hey fellow hackers.
I'm a part of a bootstrapped, 3 person strong startup (1 biz guy, 2 devs) and I'm the one responsible for designing the user interface for the prototype app we are building. I have a gazillion ideas how the interface should look like, but the problem is I'm constantly changing it as I'm never fully satisfied with the outcome. I know that prototype (MVP) should mostly be focused on the core proposition, but somehow I managed to convince myself into thinking that the experience must be absolutely flawless in order for early customers to like it and thus us having a higher chance of success. I'm primarily a PHP/RoR/Js developer but I have a great interest in design - I visit dribbble, smashingmag and co. on a daily basis.
I'm asking this question as I often find myself deciding too long on things like (css) shadow opacity and border color.
Any tips much appreciated! <comment><USER2> First, stop looking for a "better" design. Functional design is a much better goal. It's better to launch an ugly site and make it better over time (or not, see Craig's List) than to never launch the site at all.

As a developer, I found that writing code so that the site is easily skinned so as to accommodate quick re-skinning makes my fickle sense of design easier to overcome. The fact that "I CAN" re-skin it allows me to not focus on the fact that "I should" re-skin it. Using a modular template approach facilitates this... Load the various parts of the page from templates: top (pre-head), head, body top, body content, body footer, and finally page footer.

Second, outsource the design and give that person the power to make the final decision.

Finally, spend time (and money) on sites like ThemeForest.net (no affiliation) and 99Designs.com (no affiliation) to get implementation ideas and templates.</comment>


Advantages of working in the US as a foreign developer - <AUTHOR> http://www.getajob.io/advantages-of-working-in-the-us/ <comment> ju-st While reading the text I thought a pitch for a recruiting agency would follow. Instead there is only a newsletter with unclear value and content.

<comment><AUTHOR> Thanks for the feedback!</comment></comment>


Are Carriers Killing Mobile Innovation? - <AUTHOR> http://gigaom.com/2007/04/25/are-carriers-killing-mobile-innovation/ <comment><USER2> From what I gather "YES!", but I hope Loopt can change that behavior for the better.

</comment><comment><USER3> I've been lamenting about this for a long while. I think the openness of the mobile platform is starting to gain momentum, although it's a trickle right now.</comment>


inPulse (YC W11) smartwatch hackathon on Apr 17 in Mountain View - <AUTHOR> http://blog.getinpulse.com/inpulse-hackathon-april-17-hacker-dojo-in-mou

<comment><AUTHOR> PG will be dropping by near the end to check out your best hacks! We'll be providing watches to hack on, inPulse engineers to answer your questions and burgers.

Please RSVP at <http://hackinPulse.eventbrite.com>

</comment><comment><USER2> This is so cool. You guys are really on a roll since moving to the valley!</comment>


Postmortem: Team Meat's Super Meat Boy - <AUTHOR> http://www.gamasutra.com/view/feature/134717/postmortem_team_meats_super_meat_.php?page=1

<comment><USER2> You can follow their development story in Indie Game: The Movie. Very interesting, especially if you're new to the indie game scene.

<comment><USER3> Only watch if you can stomach Edmund McMillen coming across as a massive douche

<comment><USER4> If there were more in-depth documentaries about programmers, you would probably find the same types of personalities reign supreme...emotional, introverted, weird. If you consider yourself "normal" & "emotionally stable", then you probably aren't a very creative programmer.

</comment></comment></comment><comment><USER5> "Either way, by far the biggest mistake we made during SMB's development was killing ourselves to get into a promotion we would gain basically nothing from."

After suffering through something similar, I will never work for a marketing deadline again. Deadlines are useful, but I have yet to see a marketing deadline live up to the promise.

<comment><USER6> I'd be curious to get the opinion of others on whether or not this was a mistake _given the information they had at the time_.

It's pretty useless to say "our biggest mistake was x because it turned out to be a huge failure". I'm not interested in hearing someone say "my biggest mistake was eating vegetables every day because I ended up choking on a piece of broccoli".

</comment></comment><comment><USER7> _"... Tommy and I went out that day in search of the most ridiculous sweater vests we could find, broke into Sears Photos and used their setup to take what would become our team headshots. I believe we also submitted some totally ridiculous dev bio to Nintendo that was printed in their press release alongside our photo. ..."_

Love this.

The Meatboy team even managed to enrage 'Peta' (ultra right wing Vegans) by gaming their message boards (link below). Enraged Peta put out their own version of Meat Boy, "Tofu Boy" ~ <http://features.peta.org/super-meat-boy- parody/meet.aspx> So meatboy team put out unlockable 'Tofu boy' character ~ [http://multiplayerblog.mtv.com/2010/12/02/super-meat-boy- hon...](http://multiplayerblog.mtv.com/2010/12/02/super-meat-boy-honors-peta- with-unlockable-character/) The playfulness in this game is addictive and you can see this in the creators.

<comment><USER8> Purely a semantic aside but how do you characterize PETA as "ultra right wing" in any meaningful definition of that political term?

</comment></comment><comment><USER9> One-page version: [http://www.gamasutra.com/view/feature/134717/postmortem_team...](http://www.gamasutra.com/view/feature/134717/postmortem_team_meats_super_meat_.php?print=1)

</comment><comment><USER10> Great little game. Excruciatingly difficult but feels like a work of joy.

</comment><comment><USER11> Interesting. I was just watching a documentary on Netflix about them. It was a bit depressing. I really felt for them :/

<comment><USER12> Indie Game: The Movie - <http://www.indiegamethemovie.com/>

It's a great documentary!</comment></comment>


Overview of Intel SGX – Part 1, SGX Internals - <AUTHOR> https://blog.quarkslab.com/overview-of-intel-sgx-part-1-sgx-internals.html <comment><USER2> Anybody know why SGX installs additional service(s) in the system, and how they are used/what they are needed for? There is "Intel SGX AESM" with the description "The system services management agent for Intel(R) Software Guard Extensions enabled applications", but I don't get what exactly it manages and how it can be used to manage that. Where/how does it come into play?

<comment><USER3> Various components of the SGX system (launch approval, remote attestation quote signing, etc) are implemented as Intel provided enclaves. AESM manages those enclaves and provides an untrusted API to communicate with them.

<comment><USER2> Interesting, thanks!

</comment></comment></comment><comment><USER4> what we all know now about extracting information from cache miss and TLB timings sort of makes all this a bit moot now doesn't it

<comment><USER5> The attacker's assumed capability is arbitrary execution locally.

Assuming an attacker is running as a separate user from the secret they want to steal (reasonable assumption, in my opinion) they need a vulnerability in the kernel, or some service running as root. Probably the kernel.

SGX pushes that further - you need a vulnerability in the hardware.

The attack surface of your hardware is < the attack surface of your hardware + kernel, so it seems like a win.

We'll continue to see attacks against hardware, but this is still a technology worth exploring.

</comment></comment><comment><USER6> Nice diagrams - any pointers on what tool was used to make these?

<comment><USER7> Maybe this? [https://mathematica.stackexchange.com/questions/11350/xkcd-s...](https://mathematica.stackexchange.com/questions/11350/xkcd- style-plots)

<comment><USER8> Making those diagrams in Mathematica would be extraordinary painful. It's probably something similar to that (a custom XKCD-like style) but for a dedicated diagramming tool. I don't know of any tool with such a style though, so I'm guessing it's custom.</comment></comment></comment>


A computer science study plan - <AUTHOR> https://github.com/jwasham/coding-interview-university <comment><USER2> I am sorry but this is neither complete nor a plan how to become a software engineer.

This is a list of trivia to get you through a coding interview conducted by a clueless HR department that equates engineering skill with remembering answers to test questions. Nothing more.

None of the stuff in the list will actually teach you _how to apply_ these techniques nor _when to apply them_ (and when to stay away!) - which is much more important to know than to remember how to balance a red black tree or to sort a list.

The algorithms you can always look up - and frankly, how often does an average engineer implement something like that today instead of using a library? However, knowing _when_ to use which technique or algorithm is absolutely essential.

What am I missing completely is foundations of mathematics. There is some on combinatorics (good) and some geometry in the optional parts, but where is numerical mathematics? Linear algebra? Basics of statistics and calculus?

With the "big data"/AI crazes going on you will be dead in the water if you don't know at least the basics. Not to design the algorithms (that will be still way over your head) but to at least have a shot at understanding what you have to implement! Nobody is going to explain you how to multiply matrices or calculate a covariance there.

Stuff like geometry and linear algebra is absolutely essential also for people programming computer games, anything related to virtual/augmented reality or robotics.

Statistics is needed anywhere dealing with data but especially in AI, machine learning and computer vision.

And basics of calculus are pretty much everywhere.

So while the list is pretty useful as a reference, the title is seriously misleading.

<comment><USER3> Completely agree. This is "how to become a programmer with a general knowledge". Far, far away from a Computer Scientist.

I can't see any of the "basics" stuff like calculus, algebra...

BUT, it is truth that most of the enterprises are fine having a programmer rather than a Computer Scientist... Probably most of them can't even tell the difference.

<comment><USER4> Most enterprises would much _rather_ a programmer than a Computer Scientist. They, by and large, want and need implementation of either existing architectures (Programmers) or existing concepts applied to a take on an explored problem domain (Software Engineers). Research into net-new patterns (Computer Science) is often the domain of large corporate R+D departments and a few niche startups, not the bulk of industry.

<comment><USER5> I'd go so far as to say that almost zero jobs need Computer Scientists.

</comment></comment></comment></comment><comment><USER6> I self studied computer science and like the author of the article, working as a software engineer for Amazon. However, despite already working as a software engineer, I decided 6 months ago to return back to university to pursue a CS degree, currently wrapping up two courses — discrete mathematics and computer architecture — offered through University of Northern Iowa via their distance learning program. Although material (e.g. books, online videos) are available (and free), I prefer taking these courses (and receiving the credits) through the university instead of a the self study method due to one reason: feedback from professors. I found it difficult, while self studying, when I was unable to ask someone (who was dedicated) to answering my questions about the textbook or about the lecture or about the homework assignments.

<comment><USER7> Expanding on this: I believe the most important reason to attend university, aside from getting the piece of paper (which could even be argued is secondary to this), is to interact with your professors as much as you can. My biggest regret about my academic career is that I didn't do more of that. There were some devastatingly smart people working in my CS department, and I wish I could have absorbed some more of both their domain knowledge and just their general life wisdom.

<comment><USER8> The purpose of university for a first timer is to build connections to get an internship or job offer. If you come out without a job offer in hand that pays more for your degree, you failed. If like OP you went back because you already had/have a job, then yes, working with professors and other students is a fine thing.

You don't need real computer science theory until you're already a seasoned programmer, at which point you need a refresher anyway. Beginning programmers spend more time setting up environments and breaking down poorly written requirements, than traversing binary search trees by hand.

I wish someone would have explained to me what it's like finding work in CS before I took the degree, how "entry level" positions can often mean 4+ years experience, how Interview questions often have little to do with the job and everything to do with memorization.

Going to school to become a good programmer is wasting money. Going to school because you want to work a field that rewards having a degree, and starting relationships where someone is waiting for you to get your degree and hire you when you finish, is smart.

</comment></comment></comment><comment><USER9> This may help you _get_ a job at BigCo Inc., but to succeed at BigCo Inc. requires strong non-technical skills. Software engineering in big companies is as social as it is technical, and that's a glaring gap in this otherwise impressive list of skills.

<comment><USER10> I don't understand why you're being downvoted as you have a very good point. For those who are very technical and socially less developed, some structured work on social capabilities would be a great asset. That doesn't necessarily have to coursework although a course in marketing could be a good thing; it could be public speaking clubs.

Even if you plan to devote your entire career to honing technical skills, the work around marketing one's self is also worth developing at least a little bit. It'll make it easier to position yourself in a community and to help others understand your ideas.

<comment><USER11> isn't mediated social interaction like trying to learn to cook by going to a restaurant? well, at least you'll know what it _should_ taste like.

<comment><USER12> Agreed. I think "learning to be social" is the opposite of the point of being social, which is only good so long as you're trying to authentically connect with people. Seems like anything else is evil. And so authentically connecting with people shouldn't require training! It should be as natural as being itself. That's just my POV anyways...

The extent of socializing that should be "learned" is recognizing things that may be confusing or upsetting. Nothing more. But by god and by no means should it ever be learning to act cool and by god not learning to lie about yourself. Those are extremely antisocial behaviors.

</comment></comment></comment></comment><comment><USER13> I see a post like this on HN once every few weeks, and as wonderful as it is to have a plethora of organized CS courses of study, I really wish similar things existed for other topics. I'm fascinated by economics, political science, and literature but I cannot find a good place to truly educate myself on these topics. Instead, I'm left jumping from MOOC to MOOC and scouring whatever Wiki entries I can find.

<comment><USER14> You are not alone, and the good thing is Economics, political science, and literature are all highly literary. So read a book!

Have you heard of Keynes, Smith, Marx, Locke, Rousseau, Hobbes, Emerson, Tolstoy, or Conrad? Great! Each of them has no less than three legendary books that you can spend weeks to months to years studying. Computer science is a bit different in that the landscape is fresh and the resources constantly shifting and growing, but the old fields, as always, can be studied safely on ink and paper.

You start with one author, you go through his or her influences, contemporaries, pupils, and you are guaranteed to have a healthy amount of daily reading material.

<comment><USER13> Reading texts is great, but it's only one piece of the puzzle when it comes to becoming educated in these topics. In the classroom, students read, discuss with their peers and professors, read and write essays, and are lectured by very smart people. You can only get so much out of the literature without the right tutelage.

</comment></comment></comment><comment><USER15> This is, IMO, a bit mislabeled: this is not a complete CS study plan to become a SW engineer, but a collection of information about basic algorithms. Probably useful as one of a number such lists, but almost orthogonal to the stated goal.

I think the article's stated goal is background for _getting_ hired as SW engineer at a _large_ company. If this is your goal, I would spend half of allocated time on getting the basics (and you _do_ need to be able to understand algorithms quickly) and the other half on networking -- going to a few meetups or an open conference will likely generate as much value for getting hired as learning yet another method of balancing a particular tree.

Once hired, though, it is critical to expand beyond just writing code. Dropping by sales / user groups / wherever and using end-to-end system, just as one of the end users, is likely to yield larger benefits, career-wise, than writing an extra few functions. Learning a few basics about company's financials and how your product fits can be an eye-opener and help you steer once you are inside. Just my 2c.

</comment><comment><USER16> Memorizing a bunch of algorithms doesn't make you a software engineer. A software engineer should be able to read an algorithm's description, without having ever seen it before, and implement it correctly in code. Too many people equate memorization with aptitude or skill.

It's too bad that most interview processes don't differentiate between these, and this guide perpetuates that problem.

<comment><USER17> Let me reframe this. You need to be able to 1. Clearly describe a problem 2. Notice when that problem can be mapped to one or more known solutions or algorithms 3. Be able to implement a _system_ which takes those core solutions and makes them work together in a robust, efficient, scalable, and useable way.

<comment><USER18> Almost none of which requires one to be able to implement said algorithms from scratch on demand in a 45 minute interview. Yet, here we are where exactly that is the norm in certain circles. Just one more reason why I consider the state of the industry to be closer to farce than reason.

<comment><USER19> Of those who can do iandanforth's 3 steps what's the intersection with the group who can program algorithms from scratch under interview conditions. The latter is supposed to be a proxy for the former, not a test of it, surely?

</comment></comment></comment></comment><comment><USER20> Or, pick a semi-popular github project, step through it with a debugger, try to fix things (even the tinies changes for the better count, e.g. you can remove trailing spaces, it's gonna be accepted).

One path develops "software engineering", the other one develops software engineering. P vs NP is nice. But like have you ever seen a person, whose mind is wrapped about the tools s/he uses just destroying it? Like a debugger or something? Just ripping shit to shreds?

</comment><comment><USER21> I think that's great effort, really!

But you seem very focused only in one kind of workplace... which looks quite like deep into the programming/algorithm part of CS...

If you would like to compare to software engineers as we know then in Europe you would need to have also some knowledge of physics (a general overview), mathematics (including statistics, discrete mathematics, algebra, ...) basics of economy (it is very common to have at least a subject or two) and then a fast overview of some domain specific technical areas such as databases (formal SQL92), artificial intelligence (an overview on the common algorithms and story of AI), operating systems (I remember to have read the code from a small Unix, also made a kernel module), the architecture of a computer (von Neumann) and understand the basics of Hardware programming (including some assembly and an overview how the CPU registers work, and so on...) and compilers.

Also do not forget things like classic software engineering, specification modelling and definition of problems in formal languages. And then comes the actual specialisation (web programming, deeper in databases, graphics programming, ...).

I have the feeling I forgot half subject of every area I mentioned... but as you see an software engineer knows a bit of every area, not to deep in the ones he/she did not specialise, and a bit of the surrounding careers; and very often after complete the basic degree is common to specialise deeper in some of those areas or go deeper in them as part of your professional life.

P.S. and for sure the final project of the career... which not many students take it serious but it could be compared to some side projects/per projects which you see from time to time in HN.

</comment><comment><USER22> This is immensely useful. I'm currently 3 months into what I originally predicted would be at least 2 years learning enough programming skills to be useful (and possibly even employable at some level), having made a decision to leave teaching in the UK (and then being made redundant rather than the 'tapering off' I had planned!). I've got a long, varied history in all sorts of general computer knowledge (having run a linux server at home for years, web programming of horrifically low quality, various non-starts in various programming languages), and am finding that a lot of that is actually useful, but self-studying is hard, and being 46 and having forgotten a lot of the maths I learned at school means I'm spending an hour a day doing that before making any programming/CS/etc progress. I think it's easy to get lost or bogged down in a lot of thing stuff, and having a fresh load of information to cast my eyes over is much appreciated.

<comment><USER23> What kind of work are you looking to find at the end of this journey? And what kind of mathematics are you studying? As a beginner several years ago, this page helped me develop a healthier attitude toward mathematics and programming that got me to just start programming:

> 1 + 1 = 2

> \- The minimum level of math skill needed for an interesting program

[http://ruby.bastardsbook.com/about/](http://ruby.bastardsbook.com/about/)

If mathematics is necessary for what you want, then by all means, continue to study it! However, the link between mathematics and programming, or even computer science and programming, can be more tenuous than it would seem.

<comment><USER24> > However, the link between mathematics and programming, or even computer > science and programming, can be more tenuous than it would seem.

I would even say that computer science is more connected to mathematics than it is to programming. Very little of everyday programming necessitates an understanding of computer science. Whereas pretty much any computer science research requires a deep knowledge of mathmatics.

</comment></comment></comment><comment><USER25> In 2012 I wondered if it was possible to build a 4 year CS degree from what Coursera offered at the time: [http://www.thesimplelogic.com/2012/09/24/you- say-you-want-an...](http://www.thesimplelogic.com/2012/09/24/you-say-you-want- an-education/) (spoiler alert: kinda, but not really). I bet you could easily do so now given the wealth of MOOC offerings.

</comment><comment><USER26> Quite a few comments last year:

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

<comment><USER27> Interesting to note that the repo author changed title from 'Google Interview University' to 'Coding Interview University'.

</comment></comment><comment> git-pull You likely won't be writing many algorithms or data structures from scratch. You'll be implementing them, though!

In practice, you'll be so busy seeing the forest for the trees, tackling the business case at hand, you'll rarely be fussing over textbook definitions.

Often, when I see someone focusing too much on book smarts and interviewing in itself it's a sign they may need to put their reading and memorization into practice more. This is why I'm skeptical of job interviews - these things cater toward those who memorize them (likely fresh out of college), not devs on the field of battle shipping stuff for a few years.

Memorizing arbitrary stuff out of a text book when you have libraries already there and deadlines? Come on. In the rare event you need to write your own thing, you'll ask the manager for time to clear up airspace and study not from the textbook, but other's successful implementations, at a time when it actually matters.

Here's how I'd improve it: find implementations of linked lists, queues, stacks, graphs, and whatever in programming languages, their standard libraries, and community frameworks. Show people the utility, have them conceptualize it internally, rather than memorize it.

Here are some off the top of my head:

Something broad and standardized, templated containers of data structures, like C++'s stdlib and its vector, map, and so on. Last time I checked chromium's source tree, std:: was everywhere: [https://cs.chromium.org/search/?q=std::+package:chromium&sq=...](https://cs.chromium.org/search/?q=std::+package:chromium&sq=package:chromium&type=cs)

Something low-level and cool, like Python's timsort: [https://svn.python.org/projects/python/trunk/Objects/listsor...](https://svn.python.org/projects/python/trunk/Objects/listsort.txt). (Java actually ended up borrowing that: [https://github.com/openjdk- mirror/jdk7u-jdk/blob/master/src/...](https://github.com/openjdk- mirror/jdk7u-jdk/blob/master/src/share/classes/java/util/TimSort.java))

Something high-level, for instance, django-treebeard's approaches toward handling hierarchies in Django. In this package, adjacency lists ([https://en.wikipedia.org/wiki/Adjacency_list](https://en.wikipedia.org/wiki/Adjacency_list)) are carried over not just to relational databases, but an ORM system. ([https://django-treebeard.readthedocs.io](https://django- treebeard.readthedocs.io))

<comment><USER28> > find implementations of the concepts of linked lists, queues, stacks...

I would venture to say that you will likely never implement a 1-dimensional data structure. Those will exist in the standard library, or even in the syntax of the language itself.

What _would_ be helpful practice is to implement more complicated data structures like trees, graphs, associative arrays, etc. for several different languages, and find out which methods are the clearest, the fastest, and the easiest to implement in each given language.

The _other_ thing to focus on is everything used to go from source code in a file to a binary running on a user's system. There are interesting problems that practically no one teaches to "beginners", like foreign function interfaces, package management, signatures, etc. that are just as important to understand as tree traversal algorithms.

</comment></comment><comment><USER29> I like teachyourselfcs.com better for this personally. Give it a look if you're trying to do this type of self-study.

</comment><comment><USER30> "How to pass a basic SDE interview 101"

</comment><comment><USER30> > How to pass a basic SDE interview

</comment><comment><USER12> Please stop making these, they threaten my job security!</comment>


GNU Emacs conversion to Git - <AUTHOR> http://lists.gnu.org/archive/html/emacs-devel/2014-11/msg00548.html <comment><USER2> A little more context here: [https://lists.gnu.org/archive/html/emacs- devel/2014-01/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2014-01/msg00005.html)

</comment><comment><USER3> I'll admit, I had no idea Eric S. Raymond was still actively involved in emacs development.

<comment><USER4> He's not really actively involved, though. He's just been on a crusade lately to eradicate unwanted VCSs still used in older projects, including CVS for NetBSD and bzr for emacs. Honestly I'm glad he's doing it, I'm hoping it might make it more likely for newcomers to contribute to these projects. He has posted quite a few articles about these conversions on his blog [0], if you want to read about it.

[0] [http://esr.ibiblio.org/](http://esr.ibiblio.org/)

<comment> vezzy-fnord Wonder if he's tried to evangelize on the OpenBSD mailing lists yet? The smackdown from Theo would be amusing.

To some extent, it's good he's doing this. To another, very few VCSs other than SCSS can really be called "obsolete", just primitive. Most of the time, people who go on about VCS migrations seem to be just bikeshedding and can't seem to give out specific justifications other than listing features that the upstream project likely doesn't need. It's not trivial either, changing a VCS often means changing the entire way a project is structured, for often uncertain gains.

<comment><USER5> Well, I can pick on OpenBSD's favorite: CVS repository corruption does happen, but CVS has no active integrity checking. You'll only detect it if you go far enough back... or run a conversion program. If you're lucky, you discover while it's covered by backups, but these issues can sleep for years. This caused a migration I was involved with to just become a scrape, as the code at the tip was fine.

(I'd also say that atomic commits are an excellent reason to leave CVS behind, but that can be argued.)

<comment><USER6> been there, done that, shit seriously sucked

you should never use a vcs that has no ability to ask "is this repo in a valid state", or you may try to checkout the point version released to a large customer and be unable to do so. Data corruption can happen, even on raid drives (we're pretty sure it was a bug in the controller, but that doesn't change the effect.)

</comment></comment></comment></comment></comment><comment><USER7> Finally you guys can all start sending patches to emacs. /s

<comment><USER8> Yep, first up. Replaceing elisp with javascript!

<comment><USER9> Why? Scheme would be a better choice.

<comment><USER10> Why not all three? All implemented in Threaded Intercal, just to be maintainable?

</comment></comment></comment></comment><comment><USER11> Apparently the only feature emacs is missing is spellcheck.

<comment><USER12> Flyspell, but good luck getting to run in MS Windows.

<comment><USER13> Here's my .emacs setup for spell checking in Windows [1].

        (setq-default ispell-program-name "c:/Aspell/bin/aspell.exe")

For on-the-fly spell checking in various modes.

        (add-hook 'org-mode-hook (lambda() (flyspell-mode 1)) )
        (add-hook 'text-mode-hook (lambda() (flyspell-mode 1)) )

[1] [http://www.emacswiki.org/emacs/AspellWindows](http://www.emacswiki.org/emacs/AspellWindows)

</comment></comment></comment><comment><USER14> Actually that was yesterday. :) I was confused for a moment, starting to think ESR was due east which is not expected (I'm in Europe).

[http://savannah.gnu.org/git/?group=emacs](http://savannah.gnu.org/git/?group=emacs) looks valid although I didn't try cloning.

</comment><comment><USER15> bzr is so strange. If its connection got stalled (third-world GSM or WiFi) its "stream" would hang. If a process has been killed due to a signal, garbage would remain. And if you run bzr check it will use about half GB of traffic, as if comparing the whole repo byte-by-byte.

git is much saner.

<comment><USER16> And yet, this is the help page for git push:

            Updates remote refs using local refs, while sending objects necessary to complete the given refs.

That's helpful! Thanks Git!

<comment><USER17> And for hg it's:

> Push changesets from the local repository to the specified destination.

:s/changesets/objects :s/local refs/local repository :s/specified destination/remote refs

Is it really that much less easy? Both require that you understand the nomenclature chosen by their respective systems ('objects'/'changesets', 'refs'/'repository').

<comment><USER16> A change set is a set of changes.

An object is totally unspecified.

I know what a repository is when I work with version control. I've been using version control for years and I never was confused about what the repository was.

What the fuck is a ``ref''?

Git's shit.

<comment><USER17> The definition of 'object' is outside of the scope of the documentation for the 'push' command. Similarly with 'ref'.

From "man git":

"The object database contains objects of three main types: blobs, which hold file data; trees, which point to blobs and other trees to build up directory hierarchies; and commits, which each reference a single tree and some number of parent commits.

           The commit, equivalent to what other systems call a "changeset" or "version", represents a
           step in the project's history, and each parent represents an immediately preceding step.
           Commits with more than one parent represent merges of independent lines of development.

           All objects are named by the SHA-1 hash of their contents, normally written as a string of
           40 hex digits. Such names are globally unique. The entire history leading up to a commit can
           be vouched for by signing just that commit. A fourth object type, the tag, is provided for
           this purpose.

           When first created, objects are stored in individual files, but for efficiency may later be
           compressed together into "pack files".

           Named pointers called refs mark interesting points in history. A ref may contain the SHA-1
           name of an object or the name of another ref. Refs with names beginning ref/head/ contain
           the SHA-1 name of the most recent commit (or "head") of a branch under development. SHA-1
           names of tags of interest are stored under ref/tags/. A special ref named HEAD contains the
           name of the currently checked-out branch."

<comment><USER16> You know what I literally never had to do when learning SVN, bazaar, or mercurial? Learn a bunch of bullshit like "refs" or "objects" or "heads" or whatever the fuck.

It is genuinely insulting to assume me to have the time or the patience to read things like this. It's 2014. Interfaces _need_ to be better and I refuse to use an interface that insults my time by attempting to make me learn a load of bullshit.

<comment><USER18> And yet you have time to rant and steam here, which took more time than reading what a "ref", "object", and "head" is.

Interesting priorities.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Awesome, this is going to make it much easier for lazy people (who are used to git/like git more than other options) like me to contribute to emacs.

<comment><USER20> Every maintainers dream, lazy contributors!

<comment><USER21> To be fair, if you want contributors, removing every needless roadblock they may encounter is certainly a worthwhile goal.

Using some archaic VCS which nobody has heard of, and which may or may not be available on your platform of choice, certainly doesn't _help_ herd contributors to your project.

</comment></comment></comment><comment><USER22> The repo "git clone git.sv.gnu.org:/srv/git/emacs.git" is not yet active.

[https://lists.gnu.org/archive/html/emacs- devel/2014-11/msg00...](https://lists.gnu.org/archive/html/emacs- devel/2014-11/msg00604.html)

</comment><comment><USER2> I wonder if launchpad.net still bazaar only? Anyone knows?

<comment><USER23> The front page says it in the very first paragraph: [https://launchpad.net/](https://launchpad.net/)

bazaar is the provider for code hosting.

<comment><USER2> Yes, but what about after you are _inside_ it?

Maybe they do offer other options but aren't really proud of it, at least not enough to put it on the first page.

Anyway, I really think being bazaar-only it's a loss for launchpad. PPA's are great, but most people I know don't want learn bazaar just for it.

<comment><USER24> Bazaar is really simple to use, though. If you know Git or Mercurial, you can learn it in 5 minutes, since the concepts map 1-to-1 and the commands are sensibly named.

</comment></comment></comment></comment><comment><USER25> I'm curious why he doesn't like git.

<comment><USER26> But he does. From last week:

 _But I got to thinking, early this morning, about the fact that I haven't been able to settle on just one VCS. I use git for most things, but there's a use case git doesn't cover._

[http://esr.ibiblio.org/?p=6502](http://esr.ibiblio.org/?p=6502)

<comment><USER27> Kind of weird because you can totally wrap git for this use case as well (not like you need to commit all changes to your working set into one commit, and pretty easy to filter per-file changes).

A fun-seeming exercise anyways, I guess it doesn't matter what tool you're using underneath.

<comment><USER26> I thought his point was that these files don't have _any_ relationship to each other, and that he would move them around on a regular basis. I can certainly see why one wouldn't want such files to share a git repo.</comment></comment></comment></comment>


Distributed coordination with Apache Zookeeper - <AUTHOR> http://www.igvita.com/2010/04/30/distributed-coordination-with-zookeeper/ <comment><USER2> Could someone explain possible use cases?

<comment><USER3> I work on an appliance system that is really a small (<16 node) distributed system. Things like peer discovery, service lookup, leader election, distributed locks, transaction coordinators, pub-sub queues, and a reliable store for small configuration-like data are useful to our system and, I assert, most distributed systems. Zookeeper can provide all of these things.

In my view, Zookeeper's biggest shortcoming is that it doesn't support dynamic membership. That is to say that the Zookeeper nodes themselves are not self- organizing, you have to specify the ip addresses of all Zookeeper cluster members. Issue 107 [1] tracks this deficiency.

[1] <https://issues.apache.org/jira/browse/ZOOKEEPER-107>

<comment><USER4> In reality this tends to not be a very big issue. Typically for online production serving you want 5 ZK servers (in case you take one out for maintenance you could still suffer a failure and the quorum would be maintained). Once you setup the ensemble (cluster) it typically doesn't change much. There are some cases where this is useful, but they are pretty rare. Furthermore, you usually don't want just any process attaching to the ensemble, specifying the host/port explicitly is a security feature of sorts (granted not perfect though).

<comment><USER3> I think you're probably right about ensemble setup overhead not mattering very much if you are creating a cluster in your own datacenter for your own apps. In my case, I need to bootstrap an ensemble in someone else's datacenter without a priori knowledge of ip addresses.

I don't mean to be totally negative. I really respect what the zk team has done and it's a fantastic tool that is often and unfortunately overshadowed by Hadoop. I think a small, reliable, coordination cluster providing atomic distributed primitives is an excellent distributed system architecture. Obviously Google and Yahoo have had success with it. I just recently learned that Ceph takes a similar approach.</comment></comment></comment></comment>


Ask HN: Legitimate speed reading method? - <AUTHOR>

I know there's a lot of snake oil in this area.  Are there any methods you guys are aware of that work well (increase reading speed while maintaining comprehension levels)? <comment><USER2> DavidSJ,

The courses all teach you the same kinds of things. It's not exactly snake oil, but it's not something that's easy.

I took one of these years ago, as a kid, and got little out of it. Why? Because I didn't practice. Here are the main things that I recall from the class: 1) they trained you to read groups of words rather than individual words 2) they trained you to use your peripheral vision to increase the size of those word groups 3) they trained you to stop and recount what you just read, every couple of pages or chapter.

That was about it. It was about practice -- which most people don't want to do. There are no tricks; like anything else, getting better at reading speed + comprehension takes a lot of practice.

However, it definitely does help to be cognizant of the different techniques they teach, so that you can practice yourself. And, just like programming, you need to set aside time when you can actively practice these techniques. And practicing this stuff has generally made the reading itself less enjoyable, in my experience.

</comment><comment><USER3> I read faster than almost anyone I know and the only difference I know is that I don't think aloud the words when I'm reading silently. I'm reading phrases rather than words. I hope you got the idea because I don't know how to convey it. This technique is natural to me and I was surprised initially that a lot of people read silently, the way they read aloud ie word by word.

<comment><USER4> Yes thats the thing. Thinking the words out aloud is was makes us reading slow. We do this because when we firts learn to read, we learn it that way.

</comment></comment><comment><USER5> I think its different for every person. You should find out what your tradeoff level is for comprehension/wpm, and how many phrases you can skip while still understanding the main points of the section.

I think everyone can pick up reading by phrases to a certain extent. Scanning full pages or even paragraphs is probably a innate skill that isn't learnable.

</comment><comment><AUTHOR> Thank you for the information, everyone. I appreciate it.</comment>


How do you build sales for service-type startup? - <AUTHOR> Hi, me and my co-founder run a software dev platform. It's a scalable business model, but the core is a service. The majority of high-end sales folks I've talked to (who sell SaaS for $50M - $100M per year) said we should focus on outbound sales + make our clients talk about us. How would you build sales for that type of business? Should we do some content marketing too or PR? <comment><USER2> +1

<comment><AUTHOR> thanks!</comment></comment>


Is the private benefit from having a child smaller than the social benefit? - <AUTHOR> http://www.economist.com/blogs/freeexchange/2010/01/who_owns_kids

<comment><USER2> _The friction we investigate is related to the ownership of children. If parents have no claim on their children's income, then the private benefit from producing a child may be smaller than the social benefit._

I have just added this analysis on my folder marked _the rubbish heap of economic theories_. Linking parenthood to the potential of a parent having some form of financial benefit later on in life is just hot air. I am wondering if the authors have ever seen small feet walking in their lounges.</comment>


Sam Altman of Loopt is #4 on Inc.com's Top 30 Entrepreneurs Under 30 - <AUTHOR> http://www.inc.com/30under30/2007/

<comment><USER2> I'm really looking forward to living a location-based lifestyle in about five years or so, and at this point, Sam Altman seems to be the primary enabler of such a lifestyle.

But seriously, this list invalidates itself by not even including Mark Zuckerburg, let alone not giving him number one.

<comment><USER3> Agreed. It looks like the author got a few press releases and decided to include whoever came to mind first.

<comment><USER4> Yes, I'd think that actually having released something is prerequisite to being one of the "top entrepreneurs." I'm just saying.

edit: Oh, it's for the "coolest." Ok.

<comment><USER4> Ok, downvote me. It's not as though I don't notice even though my points still says 1.</comment></comment></comment></comment>


An Illustrated Guide to Git on Windows - <AUTHOR> http://nathanj.github.com/gitguide/tour.html This document is designed to show that using git on Windows is not a difficult process. In this guide, I will create a repository, make several commits, create a branch, merge a branch, search the commit history, push to a remote server, and pull from a remote server. The majority of this will be done using GUI tools.<p>Although this guide is targeted for use on Windows, the git gui tool works the same on all platforms. Because of this, git users on other platforms may find useful information here as well. <comment><USER2> This is pretty useful, especially combined with the "Version control for designers" article: <http://hoth.entp.com/output/git_for_designers.html>

</comment><comment><USER3> Nice, I've been pretty interested in git recently but since I use Windows primarily (flame me all you want, but I actually like Windows) it seemed like it wasn't worth the hassle. I will definitely have to try it now. I had thought earlier msys-git was kind of unsupported so my only option was cygwin but I guess that isn't so much of a problem if github seems to be endorsing it.

<comment><USER4> We've had a lot of people tell us that they're using Git on Windows with msysgit. It provides everything you need to be productive with Git and the install procedure is pretty slick. There's always room for improvement and a TortoiseGit [1] is in the works too, though still quite alpha.

[1] <http://code.google.com/p/tortoisegit/>

<comment><USER5> git-svn still doesn't work in msysgit.

<comment><USER3> Ahh, that's a bit of a problem. That was something I was intending on using. But I'll still check it out and hope for msysgit to improve in the future.</comment></comment></comment></comment>


SEOS : The Card Counters of the Internet - <AUTHOR> http://www.johnon.com/399/google-las-vegas.html Google is the casino. Google gives us free stuff, and provides the entertaining environment - the web as Las Vegas. YouTube, Picassa, Google News.. they are the pirate ship, the fountain show, the fake Paris streets of Las Vegas. <comment><USER2> a good metaphor</comment>


#neo900 : #OpenMoko #GTA04 into a #Nokia #n900 case ; fundraiser starting Monday - <AUTHOR> http://www.neo900.org/#

<comment><USER2> Post title needs more hash tags.</comment>


Show HN: Tensorflow Image classifier post for newbies - <AUTHOR> https://medium.com/@teavanist/image-classification-using-tensorflow-on-docker-windows-bd7824b05fee <comment><AUTHOR> Hi guys, I wrote my first blog documenting how I set up an image classifier using Tensorflow. I plan to use this blog to document my ML learning journey. All feedbacks are welcome :-)</comment>


Brandery Prepares for Demo Day 2012 - <AUTHOR> http://nibletz.com/2012/09/brandery-prepares-for-demo-day-2012/

<comment><AUTHOR> I know Impulcity is looking forward to it! Can't wait.

</comment><comment><USER2> Great piece on the Brandery</comment>


NGINX open sources TCP load balancing - <AUTHOR> http://hg.nginx.org/nginx/rev/61d7ae76647d <comment><USER2> Many installations would go from haproxy->nginx to nginx->nginx. Having to support a single product will make many devops happy.

In the same tense, haproxy is adding Lua support[1], which has been available in nginx - using openresty[2] - since 2011, and nginx core is doing the same with Javascript[2].

Interesting times aroung haproxy and nginx.

[1] [http://blog.haproxy.com/2015/03/12/haproxy-1-6-dev1-and- lua/](http://blog.haproxy.com/2015/03/12/haproxy-1-6-dev1-and-lua/)

[2] [http://www.openresty.org](http://www.openresty.org)

[3] [http://www.infoworld.com/article/2838008/javascript/nginx- ha...](http://www.infoworld.com/article/2838008/javascript/nginx-has-big- plans-for-javascript.html)

<comment><USER3> Not sure about that... HAproxy is a proven technology (very reliable and a joy to use at that) in this field while Nginx is a newcomer and needs to establish its credibility first. I personally wouldn't use such technology for load balancer until it is properly battle-tested. Also, I can't see much of an advantage over (proven) HAproxy - am I missing something?

As for supporting a single product, I don't see the point of that. Using Nginx for load balancing will probably be much different than using Nginx as a web server, so the learning curve is similar.

Not that I don't welcome competition, I just don't see a real need in this space.

EDIT: btw, the Lua thing was an April Fool's joke...

EDIT 2: no it wasn't, my mistake. I was surprised by this so I checked the page and jumped a gun when I saw "April 1st" on [http://www.haproxy.org/news.html](http://www.haproxy.org/news.html). Sorry about that...

<comment><USER4> > As for supporting a single product, I don't see the point of that.

It's not about configuration; it's about security. Fewer products in your stack means fewer things to patch. Rather than updating nginx some times and haproxy other times, you just update nginx across all your machines (both web servers and load balancers), and you're done. This also gives you more time with which to vet any given nginx update.

<comment><USER5> > It's not about configuration; it's about security. Fewer products in your > stack means fewer things to patch.

Kind of the reverse of the defense-in-depth principle eh? ;-)

<comment><USER4> Defense-in-depth doesn't work very well for infrastructure software packages: many projects share the same libraries with the same vulnerabilities (e.g. OpenSSL) but still have to be updated with independent package updates.

A shared-library vulnerability means both Nginx and HAProxy get broken in their own ways, which is _worse_ , I think, than just having your whole stack rely on one or the other, and having that one break—it's more similar to having two independent vulnerabilities arise simultaneously.

<comment><USER5> You're only going to do TLS encrypt/decrypt in one place, so in that particular case... something is wrong.

However, the scenario you describe is one where you would likely NOT be doing defense in depth, because you'd be using the same library to handle a vital piece of your security infrastructure.

Regardless, when a shared library is updated for security, you _don 't_ need to apply updates to packages using the shared library. That's kind of the point. The only exception is when the flaw is in the interface to the library.

The win entirely derives from the case of having the two independent vulnerabilities. Since they are broken in their own ways it isn't sufficient to find a way to exploit one system (which would work great for attacking a system with both). You have to find a way to exploit each, and you have to find a way to connect the two so you can get all the way through.

</comment></comment></comment></comment></comment></comment><comment><USER6> The blog post tells more and has some nice diagrams: [http://nginx.com/blog/nginx-plus-r6-released/](http://nginx.com/blog/nginx- plus-r6-released/)

<comment><USER7> Its NGINX+, not the open source version.

<comment><USER8> If you click on the original link, you'll notice it says "Port from Nginx+"

<comment><USER7> When I commented the link didn't come up.

</comment></comment></comment></comment><comment><USER9> I got a 502 when visiting this url, I think it's just irony bmiling at me: [http://i.imgur.com/q3n8PpZ.png](http://i.imgur.com/q3n8PpZ.png)

<comment><USER10> Same here... heh heh heh

<comment><USER11> Not sure what's so ironic about this. That's the Mercurial server that's not responding.

<comment><USER12> Yes, the Mercurial server being mercurial isn't ironic, it's coincidental

<comment><USER13> It would be ironic if the Mercurial server were saturnine though.

</comment></comment></comment></comment></comment><comment><USER14> Does that mean that I can now put NGINX in front of a cluster of TCP (non HTTP) servers and get NGINX to cleverly load balance the incoming requests to the individual nodes ?

<comment><USER15> > load balance the incoming requests to the individual nodes

Correct me if I am wrong but I think this is actually incorrect, because there is no concept of "request" at the tcp level. If I understand correctly it will rather load balance "connections".

</comment></comment><comment><USER16> The NGINX Plus docs on TCP Load Balancing: [http://nginx.com/resources/admin- guide/tcp-load-balancing/](http://nginx.com/resources/admin-guide/tcp-load- balancing/)

Something to read while we wait for the announcement page to come back up :-)

<comment><USER17> Just FYI it's not an announcement page, it's a link to the source code commit (probably explains why the page is down - isn't expected to have high traffic)

</comment></comment><comment><USER5> I didn't see anything about proxy protocol support, which is kind of nice with TCP load balancing... [http://www.haproxy.org/download/1.5/doc/proxy- protocol.txt](http://www.haproxy.org/download/1.5/doc/proxy-protocol.txt)

<comment><USER18> I agree. nginx already supports forwarding from proxy protocol[0] via the http_realip module; time to go full circle.

[0]: [http://nginx.org/en/docs/http/ngx_http_realip_module.html](http://nginx.org/en/docs/http/ngx_http_realip_module.html)

<comment><USER5> I've had problems getting that module to work properly with AWS ELB (though I'd kind of assumed the problem was with ELB), so I'm not sure how solid the support is even for that. It'd be nice to test it against nginx itself as a baseline.

<comment><USER18> We use proxy protocol ELB -> nginx in production at CoreOS for Quay.io, but we use the Tengine 2.1.0 fork of nginx for some other patches.

[http://tengine.taobao.org/](http://tengine.taobao.org/)

</comment></comment></comment></comment><comment><USER19> Can someone explain how this is superior to HAproxy?

<comment><USER20> HAProxy's primary feature is HTTP/HTTPS load balancing. This new feature competes only with HAProxy's TCP load balancing support.

Note that Nginx already has a simple proxy built in that does very basic HTTP load balancing. HAProxy's is vastly superior to Nginx's in that it supports a sophisticated set of filters ("ACLs"), transformations (eg., header rewriting), queue behaviours (eg., queue limits, backup backends, health checks, retries) and proxy-specific request logging.

A big difference is that HAProxy's main balancing algorithm is "fair", in that traffic is distributed evenly among target backends, whereas Nginx's load balancing is purely round-robin (there is a third-party fair balancing module [1], but it's not maintained).

[1] [https://github.com/gnosek/nginx-upstream- fair](https://github.com/gnosek/nginx-upstream-fair)

<comment><USER21> Actually, Nginx has a couple of different load balancing algos that you can pick from -- [http://nginx.org/en/docs/http/load_balancing.html](http://nginx.org/en/docs/http/load_balancing.html)

<comment><USER20> I wasn't aware of that. Thanks.

</comment></comment></comment></comment><comment><USER22> [http://trac.nginx.org/nginx/changeset/61d7ae76647d/nginx](http://trac.nginx.org/nginx/changeset/61d7ae76647d/nginx)

</comment><comment><USER23> That's neat!

HAProxy has been able to do SSL termination OR pass-thru. It's ability to do TCP load balancing allows it to do ssl pass-thru, where SSL connections are "passed through" to other servers (so the web nodes would de-encrypt the SSL connection, rather than the load balancer). This is a good use case for some where they prefer or require data to be encrypted up to the last minute (although it's not the only way to do it).

TCP load balancing is neat for doing things like load balancing MySQL connections, which aren't HTTP (although that's not necessarily recommended according to some things I've read).

I believe, but can't find the sources, that Nginx can be as efficient a load balancer as HAProxy. I know I for one would prefer to use Nginx over HAProxy to keep my stack simpler (same technologies throughout), although HAProxy may have more advanced balancing algorithms and some more power around it's tcp socket "API" for adding/removing nodes dynamically. (I think Nginx Plus can already do some of that).

Would love to hear the opinions of those with more experience/knowledge on the differences between the two!

<comment><USER24> Yes you right, both are good enough and everyone want to simplify his backend schemas...

I want to note big difference between haproxy and nginx, first of all "nginx is webserver" (nginx HTTP server) and then proxy/loadbalancer(may be used) whereas haproxy is pure loadbalancer. Enterprise bare metal and hardware appliances for proxy/loadbalance built on top of haproxy

nginx is wide spread because of usage as good minimalistic web server

</comment></comment><comment><USER25> does this include the dynamic reconfiguration feature?

[http://nginx.com/resources/admin-guide/tcp-load- balancing/#u...](http://nginx.com/resources/admin-guide/tcp-load- balancing/#upstream_conf)

</comment><comment><USER26> This is great. Perfect for when one doesn't want to deal with running a poorly supported 3rd party module in nginx. Prior to this the only other easy option was Haproxy. I'm happy.

</comment><comment><USER27> Anyone know if the nginx TCP load balancing supports the PROXY protocol? Doesn't appear to, which is unfortunate.

<comment><USER28> It doesn't at this stage. That is in the plan, but there are other features we'd like to implement first.

<comment><USER27> Thanks. For reference, the use case is to distribute SSL negotiation without losing access to client IP addresses.

</comment></comment></comment><comment><USER29> Why would somebody need a TCP load balancer in a web server ?

Is there a use-case where the TCP load balancer being with the web-server made a lot of sense ?

Integrating too many features into a single software can be risky as it may compromise simplicity and the UNIX way, 1 tool for 1 job..

<comment><USER30> [http://en.wikipedia.org/wiki/WebSocket](http://en.wikipedia.org/wiki/WebSocket) are a completely legitimate use.

<comment><USER31> WebSocket works over HTTP, not TCP. A properly implemented HTTP stack will have no problem passing WebSocket to the next server. Some non-compliant HTTP stack still experience trouble with it though.

<comment><USER30> Technically incorrect. WebSockets handshake over HTTP and then "work" over TCP. I'm actually curious which HTTP stacks are non compliant and what you mean by that.

As to my original comment, you can probably get by without having full TCP load balancing.

</comment></comment></comment></comment><comment><USER32> [https://www.varnish-cache.org/trac/wiki/LoadBalancing](https://www.varnish- cache.org/trac/wiki/LoadBalancing)

</comment><comment><USER33> Not really sure how they can call this project open source anymore. Every new feature is now tied to there subscription service. You better off with haproxy.

</comment><comment><USER34> Great to see functionality migrating from Plus to FOSS!

</comment><comment><USER24> haproxy is good enough with it's: \- full stats rather os nginx stab_status (full stats only in nginx plus) \- much load balancing mechanism support than os nginx (full support needs nginx plus, e.g: for sticky sessions)

for me, in the first place haproxy and then nginx

I good welcome opensourcing parts of nginx, take that way

</comment><comment><USER35> can this loadbalance redis and memcache?

<comment><USER36> Don't know for NGinx yet, but one can balance with HAProxy, e.g. create 2 backends for read/write respectively.

[http://blog.haproxy.com/2014/01/02/haproxy-advanced-redis- he...](http://blog.haproxy.com/2014/01/02/haproxy-advanced-redis-health- check/)

</comment></comment><comment><USER37> Reading through the code, it's extremely tidy. Very confidence inspiring :)

</comment><comment><USER38> Maybe they'll bring in the health checks for HTTP balancing, next :).

<comment><USER39> It already supports it: [http://nginx.org/en/docs/http/ngx_http_upstream_module.html#...](http://nginx.org/en/docs/http/ngx_http_upstream_module.html#health_check)

Or you're referring to something else?

<comment><USER38> " This directive is available as part of our commercial subscription. "

</comment></comment></comment><comment><USER40> huh, I thought all of NGINX was open source and so I'm confused by the title "NGINX open sources TCP load balancing."

Just a bad title or am I missing something?

<comment><USER41> A bit under two years ago, NGINX announced NGINX+ [1], with an open source "core" and paid-for extras [2]

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

[2]: [http://nginx.com/products/feature- matrix/](http://nginx.com/products/feature-matrix/)

</comment></comment><comment><USER42> Perfect timing, at least for my company.

<comment><USER43> Slightly disappointing though, it looks like it is just TCP and no health check.

</comment></comment><comment><USER44> This is, perhaps, a canonical example of how management's attempt to monetize an open source project will cause sub-optimal results both in code quality and profits.

New features should be developed and tested in an open version, so the feedback, testing, patches and even unexpected new improvements from high skilled enthusiasts would be incorporated much more quickly than any closed team with QA (look at the Linux kernel).

We have seen too many examples of "acquiring" open source projects to monetize on its user base (how I hate that idiotic MBA slang) which then became stagnant - from MySQL to Xen, you name it.

I wonder what mr. Sysoev is writing these days?)

<comment><USER45> Not that I don't want me some more nginx features, but how will this work exactly? Are you suggesting these features, once developed, become closed source? Honestly, I am not sure how nginx could be profitable long term. It is so good, that you don't need paid support or whatever the Plus version offers.

<comment><USER46> Guess it would work more like Fedora -> Redhat Enterprise Linux. You might be right about the profits, I have no idea..

The "open core" model is horrible IMO. It pits the open source version and the commercial version againts each other. What happens when someone would like to contribute features already planned for the commercial version.. ?

<comment><USER44> Redhat has really clever model, btw. Once, in times of RHEL3 and 4 they have tried to maintain zillion patches against vanilla kernel to be "Enterprise Linux", you know, so you could run Oracle cheap (a hot topic in that time). Then they have realized, that it is much smarter to give the patches to the mainstream, so everyone will benefit.

Fedora became a test-bed for a new technologies, to amortize the too rapid changes (systemd and other crap, you know), so they could provide stable and _compatible_ RHEL versions for existing customers.

And Redhat is a service, not the code company.

</comment></comment></comment></comment><comment><USER47> 502, how ironic.</comment>


Apple crippled DTrace on MacOS X - <AUTHOR> http://blogs.sun.com/ahl/entry/mac_os_x_and_the <comment><USER3> Is it possible the reason Apple did this is so that people don't use DTrace to find a way to hack Apple's DRM in iTunes?

I'm sure the RIAA and the MPAA had some concerns about that.

</comment><comment><USER4> This is one of the reasons why when my time to ditch Windows has come, I opted for Linux on a ThinkPad instead of OS X on MacBook Pro.

<comment><USER5> <snark>

Yes, it's true: You will probably never have to worry about whether or not DTrace is compatible with the Linux version of iTunes. That is one problem you will never have.

You may also never have to use DTrace with the Linux versions of 1Password, Adium, Audio Hijack, Automator, Colloquy, GarageBand, Handbrake, Path Finder, Pixelmator, Quicksilver, NetNewsWire, Snapz Pro, Textmate, Transmit, Twitterific, VisualHub, or xScope. To say nothing of Photoshop or Logic Pro. Just think of all the bugs you will never have to find.

Of course, based on a quick Google search for "dtrace Linux", you don't seem to be able to run DTrace on Linux at all. But, if you could, I'm sure it would be perfect!

</snark>

Mind you, I love Linux and I use it all the time. Just not on my desktop.

<comment><USER6> iTunes itself had it's share of unpleasant aspects, like in the beginning when it logged your playlist to Apple by default. I don't really miss it all that much - OK, Rhythmbox does not have Coverflow (yet), but apart from that, it seems to do roughly the same thing.

I don't want to compare Apple apps to Linux apps, just point out that many Apple apps come with a nasty aftertaste. Maybe most apps on your list are clean, maybe not. It's all about trust to begin with, and I don't really trust Apple to do the right thing.

<comment><USER5> _Rhythmbox does not have X (yet), but apart from that, it seems to do_ roughly _the same thing._

An excellent choice of words: "Roughly". You and I are in complete agreement.

I find your answer very illuminating. "I don't really trust Apple to do the right thing," you say, and yet of the 21 apps I listed (including DTrace itself), exactly three are Apple products. Another, Photoshop, is a Adobe product, and DTrace is made by Sun. I believe the remainder are all produced by little shareware shops, composed of one to five people, with a sinister "corporate agenda" that consists mainly of "make enough money so that we can keep eating and writing cool software." Or, like Colloquy, they're open source.

(There are interesting exceptions. NetNewsWire now has an exciting new corporate agenda: they are giving away the software and planning to make money by tracking audience numbers for the content that their subscribers read. In other words, they've chosen to become some combination of Google and the Nielsen folks. Is this scary? Perhaps. I'm not completely in love with this new development. But it's not as scary as Google itself, let alone Gmail.)

I would love to run a Linux desktop. Seriously. And, in a world where the market for Linux-based software was healthy, I could do that without regret. But the Mac OS X world is filled with elegant apps which have been honed, over the course of several years, by dedicated one-to-three person design teams. The result is that I can rip a DVD and put it on an iPod in two steps without thinking (Handbrake), or set up a flawless, bootable, automated system backup in two minutes. (SuperDuper -- I can't believe I left this off the original list. And that's not even counting Time Machine. My god, do you have any _idea_ how many hours I wasted trying to get automated, bootable backups of my Linux box? At first I dared to sample the "rough" SuperDuper alternative, Mondo Backup. Gaaaack. After hours of suffering I fell back on rsync + Knoppix + detailed handwritten notes, the tried and true hard-core-geek solution.)

Unfortunately, these polished apps don't seem to exist for Linux. The market doesn't seem to be there.

Why not? I think the biggest reason is that Linux is an amorphous blob: although Ubuntu has done much to improve the situation, it's still the case that every Linux system is different from every other, often in nontrivial ways, and this creates a support nightmare for the one-person software vendor.

But I think there's another reason: if, for example, Agile Web Solutions were to port 1Password to Linux and start selling it for $39.95, significant portions of the Linux community would react by trying to run it out of town. They would denounce the company's sinister corporate agenda, demand that it release the code for free, and promote a bunch of "rough" free alternatives, many of which were produced in one day by a high school student who has already moved on to something else.

The attitude is _pervasive_. Your response to my snarky post was quite sensible, as these things go, and yet it was completely natural for you to unknowingly group the makers of _Audio Hijack_ \-- a $32 piece of software that, among other things, can _strip the DRM from any piece of audible content_ \-- with companies like Adobe. As Mac software vendors, they're _all_ potentially "unclean". What in the world is unclean about them? Is it all that filthy money?

<comment><USER6> I simply did not know most of the applications you listed, but I assumed that the true Apple feeling comes from software provided by Apple itself.

I don't deny that they do some things right, or at least set interesting trends. I am still amazed at how bad other companies are at copying apple's style (it does not seem that hard, but the clones are always horrible).

Anyway, I can only speak for Ubuntu, and I think they are really making giant steps towards usability. I am very happy with what is available on Ubuntu - <USER2> beats the usability of Windows in many ways, and personally I prefer Windows usability over OS X... One major gripe I have with OS X style is that it requires you to know so many things (like keyboard combinations). Windows and Ubuntu almost always let you find a way with the right mouse button. With OS X I often had to google to find out how to do trivial things (like cut+paste, file renaming, etc).

The latest Mac Book Air is a good example: the gestures on the mousepad might be a nifty feature, but they are something you have to learn somehow. There is nothing about the mousepad that suggests those features to you. Chances are, I personally would never learn them, just as I never learned to write the special letters on my Palm Pilot back in the day. But an OS X super-geek will be able to do wonders with them, perhaps, at least impress some girls at Starbucks.

You could be right that the true secret of Apple is the willingness of users to pay for stuff, hence more pretty shareware for Macs. Interesting!

</comment></comment></comment></comment></comment><comment><USER7> I really want to like Apple, but shit like this bothers me.

One of the commenters on that post said:

      They're more concerned with their image than doing the right thing. That is the essence of evil.

Sounds about right.

</comment><comment><USER8> I am not sure what "spirit of open source", that the blog post refers to means, but what Apple did isn't looking nice from any angle.</comment>


Daryl Bem proved ESP is real. Which means science is broken - <AUTHOR> https://slate.com/health-and-science/2017/06/daryl-bem-proved-esp-is-real-showed-science-is-broken.html <comment><USER2> Science cannot be "broken". The sum of our current understanding can be incorrect, misguided but not broken. The only thing that would "break" science is if we somehow incontrovertibly showed that knowledge cannot be acquired: an oxymoron.

Thankfully the narrative of the article does meander through such thinking, but never acknowledges it.

</comment><comment><USER3> The article is much better than the title.</comment>