Ask HN: Is the a list of free Software Services? - <AUTHOR> <comment><USER2> did you mean something like this?

[https://github.com/ripienaar/free-for-dev](https://github.com/ripienaar/free- for-dev)

<comment><AUTHOR> is there one for startups?

<comment><USER2> Well, the one I posted above includes a lot of tools which can be used for free by startups, so I think that qualifies :) Other than that, I could not find one in a quick search...

</comment></comment></comment><comment><AUTHOR> with or without apis.</comment>


Internet Pioneers Slam $750,000 Settlement for the 'Man Who Invented Email' - <AUTHOR> http://gizmodo.com/internet-pioneers-slam-750-000-settlement-for-the-man-1788503950 <comment><USER2> This is disturbing on a First Amendment level: you can't insult someone when he makes a claim that puts him in the public spotlight, and when such a claim is highly disputable with facts?

On a tech level, this is just shameful. Neither Thiel or Ayyadurai will say if Thiel paid for this lawsuit, that it's just a coincidence that he hired the same lawyer at around the same time when Thiel hired him for the Hogan case. After Tomlinson died, Ayyadurai immediately went on the offensive and blogged, "Correction: The Inventor of Email is Still Alive"

[http://fortune.com/2016/03/07/who-really-invented- email/](http://fortune.com/2016/03/07/who-really-invented-email/)

Edit: a more in depth story here from 2012 when the debate first broke out; MIT apparently highly disagreed with Ayyadurai's version of history and cut off ties with him [http://www.bostonmagazine.com/2012/05/shiva-ayyaduri- email-u...](http://www.bostonmagazine.com/2012/05/shiva-ayyaduri-email-us- postal-service/)

<comment><USER3> This is not disturbing on a First Amendment level. What is disturbing is the misconception that the First Amendment applies to anyone other than the government.

It does seem like a questionable result on its face, but not for 1st amendment reasons.

<comment><USER2> i get what you're saying in the sense that people often erroneously cry "First Amendment" when being censored by a private entity. But the legislating of libel is most definitely a First Amendment issue. That's is why the Supreme Court makes rulings on the standard of defamation, particularly in regard to public figures:

[https://en.wikipedia.org/wiki/New_York_Times_Co._v._Sullivan](https://en.wikipedia.org/wiki/New_York_Times_Co._v._Sullivan)

The Sullivan case does not only apply to the critique of government officials. Jerry Falwell tried to sue Hustler for depicting him as an incestuous drunk; the Supreme Court ruled against him, 8-0.

[https://en.wikipedia.org/wiki/Hustler_Magazine_v._Falwell](https://en.wikipedia.org/wiki/Hustler_Magazine_v._Falwell)

<comment><USER3> This is an out of court settlement, not a trial result. Had it gone to trial, truth is an absolute defense to libel, so there's still no first amendment concern.

<comment><USER4> The courts are part of the government. And settling only has meaning due to the laws that govern free speech.

PS: It's not may make no law, except the kind that let's politicians sue people.

<comment><USER3> This is one private party suing another private party. All the court did is accept a settlement offer (which probably took place even before the trial itself started, so there wasn't even any actual finding of fact).

<comment><USER4> Which only happened because of how the court would have likely responded. If a judge would have thrown out the case in 5 minutes then there would have been no settlement.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> > he named it "email"; he obtained the first U.S. copyright to that invention, > and the world's modern system of electronic mail was born.

Wow! This struck me at first as an embarrassing error from a journalist or publicist. "copyright ... invention." But it's from Ayyadurai's attorney, so it's likely deviously clever instead of bumblingly stupid. Read the words and parse them out: "the first US Copyright to that invention." Well, ok, sure you can call copyrights inventions. Legally they often refer to them as such. But unlike patents, copyrights need not be novel. The attorney calling it "the first ... invention" is likely worded so as to intentionally confuse people who don't distinguish between copyrights, patents, trademarks and the like.

Let's say everyone on my block comes up with a design for "autonomous meshes of robot lawnmowers." If we each develop prototypes in series after having seen the others' works, perhaps they are not derived works and the designs deserve their own copyrights. But wouldn't it be silly for each of us to independently claim the title "inventor of autonomous mesh-robot-lawnmowers"? Often when ordinary people use that term they would assume it to be based on novelty and thus should be a mutually exclusive title per invention.

</comment><comment><USER6> Interesting that Gizmodo was a gawker property and this is them essentially re-publishing the claims, immediately after setting a defamation lawsuit.

<comment><USER7> This one appears to have been written more carefully.

</comment></comment><comment><USER8> I love how carefully this article reports on statements made in other publications without making any statements itself. Some lawyer made a good amount of money reading drafts of this thing, to make sure they can't be sued!

<comment><USER9> " _Univision, which purchased most of Gawker Media's assets (including this site) out of bankruptcy in September, deleted two Gizmodo posts concerning Ayyadurai..._ "

The new owners want the whole mess behind them.

</comment></comment><comment><USER10> More coverage here:

[https://www.techdirt.com/articles/20161103/11502935958/heres...](https://www.techdirt.com/articles/20161103/11502935958/heres- truth-shiva-ayyadurai-didnt-invent-email.shtml)

</comment><comment><USER11> Does anybody know, does Peter Thiel get any of the "credit" for helping this to happen, i.e. since it's the same attorney, was it part of his same funding effort? If so, it would be somewhat hilarious--"Thiel supports claim that email was invented in 1982"\--but more seriously points up more clearly that big money supporting lawsuits for revenge is not always as "civic minded" as the clear privacy issues of the Bollea case.

</comment><comment><USER12> IMO even the article title perpetuates the problem -- quotation marks notwithstanding -- because it still pushes the phrase out there.

Why not "Man who claims he invented email"?

</comment><comment><USER13> Anything to hurt Nick Denton and shutdown Gawker is awesome no matter how absurd the case.

</comment><comment><USER14> I dunno, I think the settlment is right. I'm sure someone before Tomlinson invented a way to talk to someone else over electronic communication. Like, you know, the telegram? From what I can tell, Ayyadurai actually invented "email". Makes perfect sense to me.

Look at all the techies downvoting, because Tomlinson is such a genius for thinking that someone might want to use internet to communicate with each other. The reality is we call it email. That's something to brag about.

<comment><USER15> He didn't invent email.

He built something and named it "EMAIL" after email already existed.

Then he marketed himself as the inventor of email and married Fran Drescher.</comment></comment>


Hong Kong remains the world's top tourist destination - <AUTHOR> https://www.bloomberg.com/news/articles/2019-12-03/these-are-the-world-s-most-popular-city-destinations-in-2019 <comment><USER2> Simple explanation: mainland tourists.</comment>


Does programming language influence acquisition opportunity? - <AUTHOR> http://bmull.com/does-choice-of-programming-influence-acquisit

<comment><USER2> Interesting comment by Mark Suster. That leaves PHP, Java, and Python, perhaps. Did Suster ever expand on his comment?

I would think this depends on the acquiring company and their disposition to the language you're using - and the capabilities you've built.

Back during the rumored YHOO & MSFT acquisition, there was some concern over how a LAMP shop (YHOO) could integrate with an ASP.NET shop (MSFT). I don't know how much of an influence that had in the acquisition negotiations, but I wouldn't be surprised if it was at least a bullet point on the list of "Cons."</comment>


Ask HN: What steps can I take to earn $250K+? - <AUTHOR> If I were to work backwards from the goal of making a salary at $250K+, what would they be?
Given context, I'm an MS in computer science, about a decade of experience in software development (both in R&D and production systems, embedded to cloud). Currently, I'm $100K/yr shy of my goal.
In the end, my goal is to have a strong enough salary to raise a family in financial security, and be in a position such that my spouse works because she wants to, not has to. Look forward to the discussion!
(Note, Location is high-COL big-metro east coast city) <comment><USER4> Step 1: Move to Seattle and find a job there. Purchasing power there is 38% higher than NYC. We'll say that your salary stays at 150k, but you'll realistically feel like you have 38% more. (Source: [https://www.numbeo.com/cost-of- living/compare_cities.jsp?cou...](https://www.numbeo.com/cost-of- living/compare_cities.jsp?country1=United+States&city1=New+York%2C+NY&country2=United+States&city2=Seattle%2C+WA))

Step 2: Buy a house in Tacoma. Don't buy in Seattle; the market there is in a bubble. Tacoma is an up-and-coming suburb. Cost will be ~300k for a livable house, or 400k if you want a nicer one. (Example: [https://www.zillow.com/homes/for_sale/Tacoma- WA/49299981_zpi...](https://www.zillow.com/homes/for_sale/Tacoma- WA/49299981_zpid/27362_rid/3-_beds/50000-400000_price/199-1596_mp/globalrelevanceex_sort/47.291136,-122.46696,47.259748,-122.522407_rect/13_zm/0_mmm/)).

You'll have an hour commute but that's not too bad if you're used to east coast commutes and traffic. If you buy a house close to one of the train stations, you can take the commuter train to downtown Seattle so you won't have to drive.

Step 3: Save as much as you can for kids' college/retirement/whatever.

Sounds pretty livable to me.

<comment><USER5> $400K for a 1700 sqft house with no yard and a one hour commute sounds terrible.

<comment><USER4> A $400k house and a 1 hour commute is better than 1.2 million house and 30 min commute (comparing living in Tacoma to living in Seattle).

</comment></comment></comment><comment><USER6> Start by looking around you and look at who is making 250k+. You'll see that they have control of a lot of resources relative to those that don't. They also have more responsibility than those that don't. Also, some bring in more cash to the company than those who don't. If they get paid 250k then they bring in at least that much in profits, directly or indirectly. So look for those jobs and aim for them. You'll need to plan your strategy to get from now to the job you want. Get the education you need or the experience you need. If it's experience you need then look for it in your company or move to another that will give you the experience.

Always look for a job that will bring you one step closer to your goal. Start to move up the ladder. Are you a programmer? Then look for a higher level programmer job. Do you want to be a CTO? Then start managing teams. Remember experience is more important than pay. If it's a move up then low pay for that position is ok for a time. As you gain experience you can get a higher paying job somewhere else.

Network, you need to make sure you're comfortable and friendly with management. If they know your skills and you then they are more likely to move you up or even recommend you for a new position. Also, look for friends that are already doing the job you want. Join organizations where you are likely to make the right contacts.

Be ready to move, having a broad area to search for a job makes it easier to get both pay and experience. Also, the higher the pay then the lower the number of jobs that pay the higher wage.

You can also go the consulting route. 250k regular job with benefits is about $250/hr as an independent consultant but it's harder to continuously get companies that will pay that. Also, technology shifts and it's harder to always be the expert that companies want to hire at that range.

<comment><USER7> > Start by looking around you and look at who is making 250k+

Is this common knowledge where you work?

</comment></comment><comment><USER8> Any of these companies will get you to $250k+ annual compensation in 0 - <USER2> years, depending on your current experience.

Tech:

\- Google

\- Facebook

\- Salesforce

\- Bloomberg

Finance:

\- Renaissance Technologies

\- DE Shaw

\- Citadel

\- Two Sigma

Since you're already on the East Coast, if you're presently located in - <USER3> can easily relocate to - the NYC metro area, getting hired at one of these companies is probably the most straightforward path to that goal. Entrepreneurship and consulting can also get you there, but that's a less straightforward path. These aren't the only companies either, mind you, these are just the ones I'm personally familiar with.

Particularly towards the financial side of things, it wouldn't be outlandish to earn significantly more than that in first year compensation if you're placed on the right team. Considering you already have a decade of experience and a graduate degree in computer science, if you do well on the interview I'd estimate you'd reach your goal somewhere between immediately and 1.5 years in.

<comment><USER9> But how do you get to the point where you're even attractive to these companies? Without being from a target school or having an insane number of years of experience?

Also the finance companies, you mean a job in the front right? Programming tools or whatever?

</comment></comment><comment><USER10> I have no idea about the east coast labor market, but in Bay Area $250k is what an I4-I5 gets payed at medium/large RSU granting companies.

As a software developer at I4+ you have to

\- Be able to independently complete start-to-finish large features in reasonable time

\- Drive resolution of complex problems (fix any bugs with your code and medium bugs elsewhere)

\- Deliver high-quality work (low bug rate, low failure rate, high flexibility, great coding style, automation, documentation)

\- Introduce improvement ideas and get them implemented (gets harder the more people get involved)

\- Own a functional area end-to-end

\- Have product-wide technical and functional knowledge (know everything that your department is working on from both developer and customer perspectives)

\- Mentor junior engineers

\- Excel at communication

\- Participate in recruiting

If you can demonstrate the above, you should have no problems getting hired at $250k+ in Bay Area.

Getting to above $500k is another story. Took me 20 years.

<comment><USER11> RSU is "restricted stock unit"?

so basically you get equity worth 250k. But what is the actual take home pay amount?

<comment><USER10> For individual contributors, equity and bonus range from 50% to 100% of base.

For leadership, equity and bonus are from 100% to 300%.

For senior leadership you might as well have your base at $1 if you are into those kinds of stunts.

</comment></comment></comment><comment><USER12> My experience:

20+ years in specialized field.

All of that at large well-known tech companies in high COL areas.

Took about 15 years to break though $200k total comp.

Doubled to $400+k by moving to a company with large RSU grants relative to base pay, and got that by negotiating hard.

My refresh grants have been declining because my performance has been good rather than outstanding, but with moderate stock price growth I don't see a problem continuing to report $400k total comp in my current position.

I'm considering moving to one of two other large tech companies where I have been told I should easily be able to increase that to $500k, and probably $600k+ if I am seen as successful.

At $200k in the Bay Area I felt like buying property was out of the question, but at $400k it was very doable with enough spare cash to feel like I can enjoy the area.

Having said that, a lot of the delta between those two points goes to taxes.

</comment><comment><USER13> To restate your goal: It is to be able to easily afford to raise a family. The 250K is all relative.

If you still think you need $250, search for the Highest COL area, (like switzerland etc) and get a job there.

If you desire to raise a family, then I would recommend

1) find a low Cost Of Living area and try to find a job there. You will take a paycut, but try to make it loss less than the COL delta.

2) when comparing COL be sure to plug in what you really spend money on. Back 25 years ago I was going to move from Orlando to Raleigh, but the company offer said the COL delta was enough of a raise (10%). Researching the data used, it was true, if I smoked 2 packs and drank a quart of whiskey each and every day. Otherwise the cost of living was equal.

3) Re examine what you think you need to raise a family and what you really need. If you do, you will find you can live on a lot less.

<soap box time> Over the years people talk about this person or that person being rich. And how they need to pay more in. Odds are if you are reading this, you are rich. If your choice each day is: what do I want to eat, followed by where can I find that food - then you are rich. If your plan is to eat something at home, or maybe buy at the store and then fix it at home - then you are middle class. If you are not sure if you can afford to eat, and not because you are too lazy to get the food - then you are poor. <end soap box>

</comment><comment><USER14> If you're already making $150k, get a remote job for $100k. Remote can be a bit more competitive to land, but there are some low paying companies out there who's hiring is comparatively loose.

Ideally, your main job is low effort giving you time during your day for some moonlighting. Or get two remote jobs. Yes, I'm proposing working too jobs concurrently. Some people find this objectionable, but for salary positions I don't. IF neither job keeps you busy, why not?

Edit; Low performing teams in low performing organizations rarely require 4 hours of effort per day. If you do get 4 hours of good effort in these places, you're still a super star. One could easily do 40 hours a week and excel at both. Check your assumptions.

Bottom line is if you're capable in this profession, you're leaving money on the table.

<comment><USER8> The creativity coming out in this thread in order to sidestep the _spirit_ of OP's question is remarkable. First we had comments talking about reframing the problem as one of cost of living, now the top comment is recommending working two jobs concurrently as a remote employee...what the hell.

OP clearly meant $250k at a single company. It would be nice if we didn't respond to that request by trying to interpret it as some sort of shitty X-Y problem like StackExchange. OP is (probably) an adult. Let's give them the benefit of the doubt that they don't need a weird lecture about how they're leaving money on the table and should abuse remote employement in response.

On a more practical note, there are two problems with your recommendation. First and foremost, many (most?) companies have an employment agreement forbidding freelancing or full time work with another company. Intellectual property gets very tricky if an employee is working for a company with a substantially similar product or market. If you're found out, you'd likely be fired.

Second, you're asking us to check our assumptions but _your_ assumptions are frankly ridiculous. "Low performing teams in low performing organizations rarely require 4 hours of effort per day"?! How are you quantifying this? It's not just about net hours, it's also about _contiguous_ time. What if you have consistently conflicting meetings? Your plan is to be someone sufficiently capable to excel at two jobs simultaneously with 40 hours or fewer per week, but this is a more sane option than reaching $250k at one company? Really?

<comment><AUTHOR> Thank you!

The question was simply what steps should one take (in tech) to become valuable enough to earn a highly-substantial premium in earnings -- to cross the next threshold so to speak -- using approx $250K as a benchmark.

Responses about changing lifestyle, location, or ponderings on the meaning of wealth in our modern age are simply not responses to the question posed.

</comment></comment></comment><comment><USER15> > Location is high-COL big-metro east coast city

Well, since half the comments here are referring to California, I'll go ahead and make my off-topic location suggestion too.

Live in Austin or Kansas City or Las Vegas or Boulder or Salt Lake City.

I live in Salt Lake and you can easily buy a brand new 4k sq ft house with a < 30 min commute for less than $600k. There are tons of software jobs, it's family friendly, and it's an hour to world-class skiing or three hours to some of the most beautiful national parks.

I'm 28, have three kids and a house and an RV camper, my wife has never worked anything more than fun hobby jobs, we vacation to NY/LA as much as we want, and in general we live rather comfortably.

It's nice to tell yourself you earn $250k. But does 30% more pay make up for a 300% more expensive mortgage?

</comment><comment><USER16> This is side stepping the answer you're looking for: can you change locations with your current salary? The net effect could be living as if you had $250k.

Otherwise, the best way I think reaching beyond the $150k/year salary as a SWE besides becoming a senior Engineer at Google etc. is creating your own startup and keeping the head count small, e.g. like many of the people on Indie Hackers. Of course, I haven't done this yet myself, but that's what I've come to when thinking about this.

Other options I haven't explored as much could be investments of some kind (crypto? traditional stock market? real estate?)

</comment><comment><USER17> Where are you located? $250k in San Francisco for example with 10 years of experience is very doable. How? RSU's. Look for big and hot tech companies and that's it. If you're talking about $250k as a base salary, then I'd say forget about it unless you move into management. Even then, it would take you years to get there. If your wife starts working then your total monthly income will definitely make it easy for you to raise a family in the Bay Area. Again, I'm totally guessing, you could be located in Nebraska or Canada I don't know..

Long story short - RSU's in big companies.

<comment><USER18> Does RSU mean restricted stock unit?

<comment><USER17> My bad, I forgot to specify... Yes, Restricted Stock Units. A new grant usually vests over 4 years. It starts with your one year anniversary when 25% of your grant vest. Then after it's every 6 months you get 12.5%. Every year they may give you another round of RSU's (on a new 4 year vesting plan)

</comment></comment></comment><comment><USER19> if you want financial security and health care and many other things that make up the quality of life I suggest to relocate in Europe. The dalary will be lower but what you will get what you are asking for.

</comment><comment><USER20> answer your question for those of us trying to make $150k, thanks.

<comment><AUTHOR> 1\. Find a company or startup that desperately needs someone with your skillset ASAP

2\. Negotiate hard

3\. Have a good reputation

<comment><USER18> Thanks for the three points :)

</comment></comment></comment><comment> King-Aaron $100,000 per year and you don't feel that this currently gives you financial security.

Can we please step back for a moment and reflect on that.

<comment><USER21> I make more than that, live in a high COL area in CA, have a family of four, live relatively modestly, and still live paycheck to paycheck.

<comment> King-Aaron Yeah, my point being that considering the sum of money we're making, it really shouldn't have to be a case of living paycheck to paycheck. The general costs of living are getting out of control.

</comment></comment></comment><comment><USER22> I was in your situation a couple years ago and I doubled my salary. Identify an essential but unmet need in your organization. Satisfy it. This makes you essential, but also demonstrates you can manage yourself, execute and provide strategic value. Renegotiate compensation. Rinse and repeat.

<comment><USER23> Can you give an example. It sounds bit general and non-actionable. Example will help understand how as a SWE you can find unmet need within organization?

</comment></comment><comment><USER24> Seconding consulting. I'm in marketing but I went from 100k - $400k a year with the same hours.

<comment><USER23> Please tell your story. How did you 4x your income? Didn't know people in marketing make this much.

<comment><USER24> Most marketing people don't. Basically, I have a lot of experience growing and managing high spend ad accounts at this point. Once you have that experience and skill, you're in much higher demand. I have a lot of references saying I'm good, so I can negotiate hourly + % of ad spend. Pareto's law is in full effect in online marketing, so 10 hours a week with a client can get them very similar results to if I worked for them full time.

For example, one of my clients I grew from $0 Facebook spend to 6 figures Facebook spend. They're happy because it's profitable (printing money for them), I'm happy since I get 15% of ad spend. It doesn't take that many clients like that before you're making $30k+ a month.

</comment></comment></comment><comment><USER25> Just to clarify, you're in the Bay Area or somewhere else?

<comment><AUTHOR> High COL east-coast city

</comment></comment><comment><USER26> Move to San Francisco, get a job with a well paying company.

Move to NYC. Become a quant that can code.

Start your own business.

Move into VP/CTO role.

</comment><comment><USER27> Any ideas on where to go if I want to reverse engineer software?

</comment><comment><USER28> Become a consultant.</comment>


OS Kernel in under 45 lines of Javascript - <AUTHOR> https://github.com/torvalds/linux

<comment><USER2> Is this some kind of rick-roll?

<comment><USER3> But it's true. Only lib he used is the Linux kernel.

</comment></comment><comment><USER4> what does it have to do with java-script?

<comment><AUTHOR> The project was completed using fewer than 45 lines of it, as suggested in the title.

<comment><USER5> [http://www.sas.upenn.edu/~haroldfs/dravling/grice.html](http://www.sas.upenn.edu/~haroldfs/dravling/grice.html)

<comment><AUTHOR> [http://tvtropes.org/pmwiki/pmwiki.php/Main/MathematiciansAns...](http://tvtropes.org/pmwiki/pmwiki.php/Main/MathematiciansAnswer)

<comment><USER5> [http://www-01.sil.org/linguistics/GlossaryOfLinguisticTerms/...](http://www-01.sil.org/linguistics/GlossaryOfLinguisticTerms/WhatIsAQuantityImplicature.htm)

<comment><AUTHOR> [http://www.buzzfeed.com/ludwigwittgenstein/fantastic-ways- to...](http://www.buzzfeed.com/ludwigwittgenstein/fantastic-ways-to- distinguish-between-sense-and-nonsense)

<comment><USER5> Yes, the Ordinary Language School extended Wittgenstein's early work.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> ?

</comment><comment><USER6> why such joking thread could be push up?</comment>


Radiolab co-host to depart podcast after 15 years - <AUTHOR> https://arstechnica.com/gaming/2019/12/radiolab-co-host-to-depart-podcast-after-15-years/ <comment><USER2> Radiolab started going downhill many years ago[0]. Perhaps Krulwich just realized it's not going to get any better.

[https://trends.google.com/trends/explore?date=all&q=radiolab](https://trends.google.com/trends/explore?date=all&q=radiolab)

<comment><USER3> Robert lost alot of credibility with me after the yellow rain incident. [https://current.org/2012/10/search-for-truth-results-in- radi...](https://current.org/2012/10/search-for-truth-results-in-radiolab- apology/)

Jad's defense of the story was also meh.</comment></comment>


Williams College Students Claim 'Free Speech Harms,' Fight Chicago Principles - <AUTHOR> https://reason.com/2019/04/25/williams-college-free-speech-harms/ <comment><USER2> ...and then they wonder why elite college graduates happily go on to create scuzzy outfits like FB, Uber, etc. etc.

Also, UChicago is pretty much the only university in the country actually deserving that title.</comment>


Show HN: Keycat – A self-hosted end-to-end encrypted password manager - <AUTHOR> https://key.cat/ <comment><USER2> Sidenote: Catalonia top level domains (.cat) require the web to be served in Catalonian as well. That's _probably_ why you see the link in the top-right to see it in català (or maybe it's done from a person/group from Catalonia).

The TLD has an interesting history: [https://en.wikipedia.org/wiki/.cat](https://en.wikipedia.org/wiki/.cat)

Edit: the name of the main contributor is a typical catalonian name, so maybe the requirement is not the main reason for the dual language.

</comment><comment><USER3> How is this better than Bitwarden?

<comment><USER4> I think self-hosting, or using a regular account with BitWarden is the way to go. I just don't think E2E encryption is strong, unless implemented carefully?

<comment><USER5> I think self-hosting is risky.

I trust bitwarden to fix, deploy, remedy, and investigate security fixes better than I can do :)

<comment><USER4> I agree. That's why I use normal account. I have had clients need a self hosted solution. I think Bitwarden is good. I haven't checked the website for their security audit. I'll check now

</comment></comment></comment></comment><comment><USER6> Is this maintained? It seems like none of the repos have had a commit in 6 months.

<comment><USER7> If the code is stable, why does it require maintenance at all? I dont think the amount of commits in last 6 months should even be a metric. Issues would be a better place to look for maintenance.

<comment><USER8> There are multiple issues from over 5 months ago that have no response

[https://github.com/keydotcat/keycatd/issues](https://github.com/keydotcat/keycatd/issues)

<comment><USER9> And allegedly, security issues too, including possible SQL injection.

[https://github.com/keydotcat/keycatd/issues/2](https://github.com/keydotcat/keycatd/issues/2)

<comment><USER10> Ouch

</comment></comment></comment></comment></comment><comment><USER11> Can I suggest a link on the landing page to your keycatd releases? It was quite confusing at first.

</comment><comment><USER12> Once I created the similar solution for my own needs, and now I'm successfully using it for around 4 years:

[https://github.com/xonixx/gae-pass-manager](https://github.com/xonixx/gae- pass-manager)

Obviously it's much less powerful compared to LastPass and similar services but works for me well, allowing to securely access my passwords from any location and device.

<comment><USER13> Do you have browser extension/ mobile app? How do you use it conveniently?

<comment><USER12> I don't have any of this :(

</comment></comment></comment><comment><USER14> Why not self host git with pass.

<comment><USER15> I've been playing with the idea of storing json blobs in gnu pass and using it as a queryable object with xdotool and xclip to manipulate output.

I like pass but lacks functionality that other managers have

<comment><USER14> Curious what you miss? I recently started self hosting a Gitlab instance and switched from Lastpass to pass. Wouldn't of done it without the `passforios` foss app. Maybe I wasn't using Lastpass to its full potential (only used the CLI)?

Of course now I have to make sure to git push/pull on all my devices. That's annoying (but at least it drafts its own commits).

<comment><USER15> I'm pretty sure you can auto push with pass.

I miss browser auto fills, But I don't like the idea of plugins in the browser like last pass etc, I do use inbuilt autofill because I trust that more, but that won't generate my initial passwords and there's situations where I have multiple accounts (legitimately, testing in prod where passwords matter).

MacOS seems to have really nice host integration but that's coming from an outsider who's never really touched one.

I also end up in situations where 'xdotool type' is the path of least resistance. VMs with no paste buffer, Citrix sessions, etc. so integrating xdotool type would be nice.

I also really like the idea of spawning an authenticated browser session from the shell.

</comment></comment></comment></comment><comment><USER16> Any obvious advantages over, say, Keybase + Pass?

</comment><comment><USER17> (You should add a comment to the thread giving the backstory of how you came to work on this, and explaining what's different about it. That tends to seed discussion in a good direction. Good luck!)

<comment><USER18> Absolutely. I come here for the story, not the product.

</comment></comment><comment><USER19> I was expecting a command line tool for concatenating and printing keys</comment>


Why Basecamp CEO Jason Fried Believes 40 Hours Is Plenty - <AUTHOR> http://www.hrisdead.com/blog/2016/4/5/basecamp-ceo-jason-fried-40-hours <comment><USER2> We encourage developers to work 20 hours a week. Our experience is any engineer worth their salt is as productive in 20 hours as they were in 40 --- if anything, they're more productive. We also have an unlimited vacation policy, but we enforce a minimum of two weeks a year, which has really helped ensure people actually use their vacation time.

<comment><USER3> > if anything, they're more productive

I cannot count the times that I've spent the whole Friday on some problem just to have the solution occur to me out of nowhere at some moment during the weekend.

<comment><USER2> The most productive engineering I ever do is while I'm washing the dishes.

</comment></comment></comment><comment><USER4> Jason Fried is a master at managerial science. Hopefully some day we will look back on him as a pioneer in treating employees well, and we'll wonder why we were decades behind him on employee satisfaction and retention.

</comment><comment><USER5> Why not 35 or 30 hours or even 25 hours? That last hour or two or three at work are near worthless for me and just about everyone I know. Having parents leaving between 2-4 means they'll be able to pick up their kids directly from school or limit "latch key" alone time. Non-parents will certainly enjoy less time at work and more sunlight and time for physical activities while its still light out.

Seems to me, the dominating narrative, driven by some questionable characters, is longer school hours to match business hours. No, we should be lowering business hours to match existing school hours. We can't compete via hard nose puritanical work ethic turned up to 11. The puritans were, frankly, miserable creatures and 'hard work' environments universally create miserable people who ultimately aren't any more competitive than the less working competitors. Its time to consider the emotional experience of being human and as we have more and more automation options, to consider eliminating a few work hours per week and perhaps eventually replace work as we know it.

There's a fight for the future that's particularly ugly. The "to compete with China/India/whoever, we must become them" vs the "we can do better with less human labor and with more automation." If the former camp wins, it'll be horrific for our quality of life and will not produce the gains these people expect. If the latter wins, we will all have better lives and we'll change our society to handle high levels of unemployment and under-employment.

<comment><USER6> Actually they have "Summer hours".

"4-day Summer Work Weeks: May 1 through August 31, we work a Monday-Thursday 8-hour day work week, aka "summer hours", for a total of 32-hour weeks. Brand new employees may have to complete a training program per their team lead to be eligible. Note: The customer support team staggers their days off so we always have 24/7 coverage."

[https://m.signalvnoise.com/employee-benefits-at- basecamp-d2d...](https://m.signalvnoise.com/employee-benefits-at- basecamp-d2d46fd06c58#.c7gk399kl)

</comment></comment><comment><USER7> At Voxy we have a 40 hour policy for our engineers, it's been in place for about 15 months. Before that it wasn't unusual for engineers to work 12 to 14 hour days. It's increased our engineer satisfaction tremendously, productivity is actually up 40% with fewer hours and we haven't had a single engineer leave in over a year. Would do again 10/10.

</comment><comment><USER8> I've been contracting for about a year now and, personally, I'd say even 30 hours is plenty. It may be anecdotal, but I am far more productive in 30 hours than I ever was in 40+ at any of my salaried jobs.

In large part I attribute this to my environment which, now that I'm working from home, is almost completely free of distractions. I get started at about 8 AM and wrap things up by 2 or 3 on most days - which is right when my kids get home. I clock out for anything more than a bathroom break which means my clients are getting a far more potent work-hour out of me then they get from their employees.

The reality is that the 40 work day is an anachronism; and it can't die soon enough. Start evaluating your employees by whether they're actually giving you the value you're paying them for and not by how much time they clock in your building working, looking at Facebook, or goofing off in the breakroom.

</comment><comment><USER9> I wonder if they have any employees in the southern hemisphere, and if so, are the summer hours flipped for them, or do they just get winter hours instead?</comment>


Another PayPal horror story: Gameolith, the linux game shop. - <AUTHOR> http://www.reddit.com/r/gaming/comments/lpyor/hello_reddit_we_run_this_linux_game_download/

<comment><USER2> How is this a horror story? Consumer chargebacks/reversals killed your float, and PayPal took action to prevent further losses on their part. They aren't in the business of lending you credit.

Even though this behavior sucks for small merchants, it's not uncommon.

<comment><AUTHOR> I am one of the customers that got reversed, not the merchant who posted on reddit.

I didn't issue a charge-back and got no option or say on the matter - it was reversed and i got an email from paypal after the fact without any question asked if I'd like to reverse it or not.

It was simply "your transaction has been reversed."

<comment><USER2> Thanks for the clarification, that wasn't clear from the original post.</comment></comment></comment>


The 'Unreality' of Russian Internet Censorship – Is There an Escape? - <AUTHOR> https://email@example.com/the-unreality-of-russian-internet-censorship-is-there-an-escape-bbe6978391f3 <comment><USER2> A very interesting read, thanks for posting this here. I'm not that well educated on Russian politics, so maybe the community here can help me find an answer. Is the threat to disconnect Russia from the global internet real at any point? Is it even technically possible? I know Putin likes to throw threats around but ever since they annexed Crimea I don't think he makes idle threats anymore.</comment>


Markets Make Us Less Moral : D-brief - <AUTHOR> http://blogs.discovermagazine.com/d-brief/?p=1229&utm_source=feedly&utm_medium=feed&utm_campaign=Feed%3A+DiscoverMag+(Discover+Magazine)#.UZPEWUAW1tI <comment><USER2> This looks like an extremely low-quality experiment for proving the hypothesis in the headline.

(Here is the blog post's link

[http://www.sciencemag.org/content/340/6133/707.abstract?sid=...](http://www.sciencemag.org/content/340/6133/707.abstract?sid=cbe70d32-06a2-4c24-86ca-a46a52f0262a)

to the article abstract.)</comment>


Mozilla asks Google engineer to not use .bro extension due to "gender problem" - <AUTHOR> https://bugzilla.mozilla.org/show_bug.cgi?id=366559#c146 <comment><USER2> Discussed here [https://news.ycombinator.com/item?id=10369053](https://news.ycombinator.com/item?id=10369053) (includes links to other discussions)

<comment><AUTHOR> The title of that post does not reflect the true nature of the discussion.</comment></comment>


Griping about Go - <AUTHOR> https://https.www.google.com.tedunangst.com/flak/post/griping-about-go <comment><USER2> The whimsical nature of interfaces is definitely different coming from other languages. An `io.Flusher` might be nice, but it's not really necessary. You can just write:

        type Interface interface {
            io.Writer
            Flush() error
        }

        func someFunction(w Interface) error {
            w.Write(nil)
            w.Flush()
            panic("etc...")
        }

Or even drop the type name:

        func someFunction(w interface {
            io.Writer
            Flush() error
        }) error {
            w.Write(nil)
            w.Flush()
            panic("etc...")
        }

But maybe that looks too weird.

<comment><USER3> This is something I'm still struggling to grok. The interface idioms feel so different to my Java instincts, like loose fitting clothes after years of skinny jeans.

<comment><USER4> Basically, the interfaces get defined where they're _used_ , not where they're implemented.

</comment></comment></comment><comment><USER5> What's worse, defer's function-scoped nature means that the only way to compile it is to dynamically push closures onto a stack _at runtime_ and then pop them off one-by-one before returning. The compiler may be able to optimize this in specific cases, but in the general case the semantics are extremely dynamic for no real benefit. Designing defer in this way is an especially strange decision for a language that in many ways is architected to make life easy for the compiler writer.

<comment><USER6> I don't understand what you're saying but defer cost a few ns so it's very fast and usually not a performance problem. ( ie: don't use it in hot path )

<comment><USER7> I haven't tested this since then, but this wasn't the case in 2014[1]. I haven't noticed these issues since then, but back then it cost hundreds of microseconds -- 8 orders of magnitude more than "a few ns".

EDIT: I just re-did the relevant tests on Go 1.11.5. It's significantly better than in 2014 but it still costs between ~20us and ~50us ("only" 4 orders of magnitude more than "a few ns").

       goos: linux
       goarch: amd64
       BenchmarkPut-8             50000             27502 ns/op
       BenchmarkPutDefer-8        30000             46774 ns/op
       BenchmarkGet-8             50000             29812 ns/op
       BenchmarkGetDefer-8        20000             89701 ns/op
       PASS

[1]: [https://lk4d4.darth.io/posts/defer/](https://lk4d4.darth.io/posts/defer/)

<comment><USER8> It actually did get significantly better in Go 1.8, in early 2017. See [https://golang.org/doc/go1.8](https://golang.org/doc/go1.8) ("The overhead of deferred function calls has been reduced by about half.").

However, I think this change was mostly just an optimization for common cases with few arguments or no closures (e.g. "defer f.Close()").

<comment><USER7> I just re-did the benchmarks with Go 1.11.5, it is much better but it's still 4 orders of magnitude more than "a few nanoseconds".

</comment></comment></comment></comment></comment><comment><USER9> The article is on a suspect domain:

      https://https.www.google.com.tedunangst.com/flak/post/griping-about-go

Is there any legit reason to have https.www.google.com in there?

<comment><USER10> I think that's what we call "a joke".

<comment><USER11> FYI, you appear to have been shadowbanned for a while.

<comment><USER12> How come we can see his posts if he's been shadow banned?

<comment><USER11> For the comment in this thread, I used the "vouch" link to reinstate it (requires a certain amount of karma AFAIK), so it's no longer "dead", i.e. hidden. But most of the rest of their comments in the last two weeks are still dead. Anyone can opt in to seeing such posts by turning on "showdead" in their profile options.

</comment></comment></comment></comment></comment><comment><USER13> Automatic closeout remains a hard problem. "Defer" has the same problem as RAII - what if the closeout fails? Python's "with" clause, and how it interacts with exceptions, is one of the few constructs that can handle multiple closeout faults correctly.

Trying to get rid of exceptions seems to force workarounds that are worse than exceptions. C++ and Java exceptions were botched and gave the concept a bad name. Go's "panic" and "recover" are an exception system, but not a good one. Python comes closer to getting it right.

Key concepts for successful exceptions:

\- A predefined exception hierarchy. Catch something in the tree, and you get everything below it. Python added this in the 2.x era, and it made exceptions usable. (Then they messed it up in the 3.x era, putting too much stuff under "OSerror".) This solves the problem of "Have I caught everything"?

\- The case where a closeout event raises an exception has to work. This is hard. Attempts to get it right resulted in such horrors as "re-animation" in Microsoft Managed C++. It needs something like the Rust borrow checker model to make sure that object lifetimes are properly enforced on all error paths.

<comment><USER14> Hm. I actually love how Java does exceptions. I think a little better conventions around when to use checked vs unchecked might help but generally I'd rather checked exceptions be the norm than wholely absent.

What do you think is missing? My only ask would be syntax to capture an exception Future/Expression style for smaller use cases.

<comment><USER15> I think this is what you're asking for with your last sentence, but I'm not sure so I'll say it anyway:

My main gripe with Java's checked exceptions is that there's no way to bubble up a checked exception from inside a functional interface, because the function signatures differ. For example, if you want to close a bunch of files, you can't do `files.forEach(file -> file.close())` if the call to close throws IOException — you need to use an iterator (which is longer) or catch and re-throw it as a RuntimeException (which is _much_ longer). Libraries like JOOL can help here, but not completely.

It also doesn't help that certain methods are declared as throwing exceptions that aren't actually thrown, such as `ByteArrayOutputStream#close()`.

I used to argue in favour of checked exceptions, but once I switched to Kotlin, I realised that I didn't actually miss them at all. However, my other favourite language (Rust) uses something a lot closer to checked than unchecked, so maybe I'm just writing different kinds of code on the JVM to let me get away with having this opinion!

</comment></comment></comment><comment><USER16> I think go has some serious other problems.

Like the billion dollar mistake. Why is this repeated in any new language? It is just plain awful and stupid. This is easily my biggest gripe with the language (apart from missing generics).

Go combines that greatly with the bonkers error handling:

      if err != nil {...}

Half of all go code ever written consists of the line above.

Now combine that with defer (or go routines) returning errors...

</comment><comment><USER17> Here's one of my favorite gotchas in Go: why does this error?

[https://play.golang.org/p/6LTbtuocu5-](https://play.golang.org/p/6LTbtuocu5-)

<comment><USER18> It errors because the type of `err` is `error`, not *formatError. That's why you are supposed to return the error interface, instead of a concrete type.

The value ends up being a non-nil interface value that holds nil.

To avoid encountering this issue, return `error`, not something else.

[https://play.golang.org/p/jZ5Fa24bbUz](https://play.golang.org/p/jZ5Fa24bbUz)

<comment><USER17> > To avoid encountering this issue, return `error`, not something else.

But best practice is to return concrete types.

Also, `err` is just an example in this minimal snippet. It can happen with _any_ variable.

Here's a similar snippet: [https://play.golang.org/p/WKPey_PL_ht](https://play.golang.org/p/WKPey_PL_ht) \-- Looks impossible to crash. :P

Spoiler: it's a boxed null, not a null.

<comment><USER19> > But best practice is to return concrete types.

You're taking this as an absolute when you shouldn't be. There's plenty of places in the standard library that don't follow this "rule".

</comment></comment></comment></comment><comment><USER20> I heard it's better now but when I was trying to do grpc I couldn't get this to build:

[https://github.com/improbable-eng/grpc- web/tree/master/go/gr...](https://github.com/improbable-eng/grpc- web/tree/master/go/grpcwebproxy)

Basically there was dependency that changed, and it caused it to not build. The maintainer was just pointing fingers at google. I had no idea what to do, but it just scared the crap out of me.

</comment><comment><USER21> Blog seems to have collapsed under HN weight (link is bad too).

Archive of archive of page: [https://app.pagedash.com/p/d5c8c4bf-d88a-470b-a7f3-adb986ccb...](https://app.pagedash.com/p/d5c8c4bf-d88a-470b-a7f3-adb986ccb1fe/4tbHK69h6Z0EaM51gvUm)

</comment><comment><USER22> Is there a reason that go's defer is only function-scoped?

<comment><USER23> All variables in Go are function-scoped. They are just being consistent with the overall design in this case.

<comment><USER2> Variables are lexically scoped by blocks: [https://golang.org/ref/spec#Blocks](https://golang.org/ref/spec#Blocks)

</comment></comment></comment><comment><USER24> > as opposed to passing large byte slices or strings around. In theory, this > should be more efficient

Why would passing a "large" slice be inefficient?? Maybe on x86 due to a lack of registers, but on 64-bit?

</comment><comment><USER25> > Usually this can be resolved by creating a new function and calling that > from the loop. But frequently not. [etc.]

For me this is the appeal of the language; I really prefer things confined and manually scoped rather than having things globally scoped which would cause a lot of debate just around that. You often have to think about what you want to expose and where, but that's a good thing in my opinion.

<comment><USER26>
        for _, f := range fs {
          func() {
            defer f.Close()
          }()
        }

</comment></comment><comment><USER27> > I mostly like go, but after working with it a bit more I realize there are a > few jibs of which the cut I do not like.

What is this supposed to parse to?

<comment><USER28> I believe the author meant "a few jibs the cut of which I do not like".

<comment><USER27> > [https://www.merriam-webster.com/dictionary/jib](https://www.merriam- > webster.com/dictionary/jib)

Looking up jib on a dictionary, none of the definitions sound like they make sense in this context at all.

Oh well.

<comment><USER29> [https://www.urbandictionary.com/define.php?term=I%20like%20t...](https://www.urbandictionary.com/define.php?term=I%20like%20the%20cut%20of%20your%20Jib)

</comment></comment></comment></comment><comment><USER30> Defer also encourages the unsafe behavior of not checking error results. You can't propagate errors from it. About the best you can do is wrap whatever function you were deferring in another function, and then panic if there is an error.

<comment><USER31> You can actually propagate errors from it. It's not pretty but it works:

        func Pants() (rerr error) {
            defer func() {
                if err := doStuff(); err != nil && rerr == nil {
                    rerr = err
                }
            }()
            // ...
            return nil
        }

I use this function all the time with `io.Closer` implementations:

        func DeferClose(err *error, closer io.Closer) {
            cerr := closer.Close()
            if *err == nil && cerr != nil {
                *err = cerr
            }
        }

        func Pants() (rerr error) {
            f, _ := os.Open(...)
            defer errtools.DeferClose(&rerr, f)
            // ...
            return nil
        }

</comment></comment><comment><USER32> what kind of domain is this ?

[https://https.www.google.com.tedunangst.com/flak/post/gripin...](https://https.www.google.com.tedunangst.com/flak/post/griping- about-go)

</comment><comment><USER33> #notasuspectURL

<comment><AUTHOR> What do you mean? I'm a tech-savvy person, so I checked that the lock was green before I submitted my financial credentials.

</comment></comment><comment><USER34> I avoid using defer

<comment><USER18> The other commenter wasn't very kind towards you, but I'd definitely encourage you to use defer to get correct semantics around releasing resources. It's the best tool that the language gives you for that.

<comment><USER34> Sorry, but for me its not a great method of releasing resources.

I tend to (for example) open a connection in one function, do something with it in another function, close it in another. I'm not writing traditional go programs, i wrap things in an api.

<comment><USER35> The higher level procedure which uses these three functions could use _defer_ to ensure that the closing function is called.

<comment><USER34> I would have to re-arrange my call stack so that the read or write functions would be inside the open statement, then it would close it at the end anyway so its kind of pointless for my uses.

I try and totally avoid panics and never throw them unless its at some initial parser stage. But this is made me rethink the structure of how some of my tags operate in my interpreter / transpiler.</comment></comment></comment></comment></comment>


James Hong: A question to ponder: should big companies even try to innovate internally? - <AUTHOR> http://james.hotornot.com/2007/03/question-to-ponder-should-big-companies.html <comment><USER2> I recommend reading the comments to that blog post. They make very valid points and make the post much more interesting. There is a place for innovation in big companies, just most of them are bad at nurturing it (excluding Google).

</comment><comment><USER3> i tend to agree with the premise that their key skill is now to spot the right start-up. making a large company run well is tough too - customer service, billing, shareholders etc are all tough problems. i think a large company is at its heart a billing engine, an optimisation engine for a particular niche of the market - and that's OK. Their big problem is figuring out when they're niche is going the way of the dodo, or when they aren't as good at their niche as they thought they were. different companies doing their niche best, it's an optimisation of roles.</comment>


Justice Dept. unveils fix for Apple e-book price fixing - <AUTHOR> http://www.usatoday.com/story/tech/2013/08/02/apple-price-fixing-remedy/2612041/

<comment><USER2> Forcing Apple to change it's contracts is one thing, but forcing it to make it easier for the existing monopolist to sell their products clearly demonstrates that the justice department has been corrupted by Amazon in this case.

Will they require Amazon to allow Apple to provide their own store for the e-ink Kindles too?</comment>


One of the World's Oldest and Largest Organisms Is Dying - <AUTHOR> https://www.livescience.com/63852-failing-aspen-clone-utah.html <comment><USER2> I wonder if increasing the number of available deer tags in the area would be enough to solve the problem.</comment>


Show HN: Open Source Multi Service Mesh Orch (lstio, AppMesh, Consul & Linkerd) - <AUTHOR> https://medium.com/solo-io/https-medium-com-solo-io-supergloo-ff2aae1fb96f <comment><USER2> Glad to see this as an open source project so the community can contribute. Working in the DevOps space for a few years I consistently see the challenge organizations of all sizes have in different architectures being used, systems, tools and methodology. Going all in for companies in any of these areas is tough and sometimes paralyzing. So to see a solution that allows companies to transition/migrate on their own time and pace while continuing to deliver value quickly to their end users, without the overwhelming cost (business and opportunity) is a great option we now all have.

</comment><comment><USER3> This is going to be really important with all service mesh around.

</comment><comment><USER4> Cool project, I can imagine how many people would find this immensely useful

</comment><comment><USER5> supergloo is a great first step for understanding any of the current service mesh solutions. try it out if you're weighing your service mesh options right now, or even if you're already settled on a single solution.

</comment><comment><USER6> being able to try out multiple different solutions is especially useful considering how fast the service mesh ecosystem seems to be growing

</comment><comment><USER7> Interesting

<comment><USER7> ⌘</comment></comment>


Ask HN: College name vs. education - <AUTHOR>

I'm going to be applying to colleges soon (for computer science), and I've met people who insist that the name (Harvard, Yale, etc.) is more important than the quality of education (UC Berkley, Carnegie Mellon).<p>In your experience, which one is weighed more heavily? <comment><USER2> Name matters far more than quality of education, which is hard (or currently impossible) to measure, and usually gleaned through your interviews. In fact, name is a proxy for the quality of education. This is true not just at companies, but in graduate programs. I've seen people in evaluating positions openly discriminate on the basis of school.

Also, you give Harvard and Yale as examples of the "good name" schools and UC Berkeley and CMU as examples of "quality education" schools, but it's not that simple. In my experience, schools with smaller programs tend to offer far better educational experiences than schools with very large programs. In this sense, Harvard is more likely to give you a better undergraduate education that UC Berkeley, where huge class sizes make for a very different classroom experience, and you will find it more difficult to get to know your professors than at a smaller school. If I were choosing, I would look for a school that had a good name, modest CS class sizes, high quality peers, and where undergraduates had many opportunities to work closely with faculty. The class size and faculty interaction is where schools like UC Berkeley lose out.

<comment><USER2> Also I agree with other commenters who point out that in CS, several schools outside the Ivy league are considered good names: MIT, Stanford, CMU, UC Berkeley, Caltech, UIUC, in that order. With the Ivy leagues I'd rank it somewhat like this:

\- MIT

\- Harvard, Princeton, Stanford

\- CMU

\- UC Berkeley, Yale, Caltech

\- UIUC, rest of Ivy leagues

<comment><USER3> Out of curiosity: where does Georgia Tech fall on your list?

<comment><USER2> Oh, I forgot about that. Probably at least by UIUC if not a little higher actually.

</comment></comment></comment></comment><comment><USER4> The top schools for computer science are: MIT, Stanford, U.C. Berkeley and Carnegie Mellon. In the programming world, these schools both have the biggest "names" and provide their students with a top-notch education. (But Berkeley is pretty big, so you might get a slightly better education elsewhere.)

Several state schools also have fantastic computer science programs. These are: University of Washington, UT Austin, University of Illinois Urbana- Champaign, and Georgia Tech. Glancing at the U.S. News CS rankings, it looks like Wisconsin, UCLA, Michigan, UCSD, and Maryland are also up there.

Some of the Ivy League schools also have very good computer science departments: Harvard, Princeton, Columbia, Penn, Brown, Cornell. Don't go to Yale for CS. Not sure about Dartmouth.

Caltech is also obviously really good.

If you want to do programming post-graduation, you'd be fine going to any of the schools I listed above. Google, Facebook, etc. recruit from all of them, and I'm sure they'd look good on a resume for a startup. If you go to a school not listed above, you'd probably have a little bit more difficulty getting an interview (though this would get to be less of a problem with time, after you have actual work experience).

If you want to go to graduate school for computer science, make sure you go somewhere where there are lots of good researchers so that you can get involved with research as an undergrad (any of the schools above would do).

Here's where it gets tricky. All of the schools I listed above have prestige in the CS world. However, in the general business world (i.e. not tech companies), and in finance, it's Ivy League schools that have prestige. So, if you want to go into traditional finance or management consulting, you'd be better off going to Yale than Carnegie Mellon. This is what people are talking about when they say that the "name" matters.

TLDR; if you're sure you want to do programming, go to a top CS school (public or private). If you think you might want to do finance or consulting instead, go to an Ivy.

(Source: I'm a CS student at Princeton.)

<comment><USER4> Another thing to think about: At MIT or CMU, almost all of your friends would also be STEM majors. At an Ivy or Stanford, your social circle would include people with a broader range of personalities.

Also: admissions at Ivies and Stanford work very differently from admissions at MIT, CMU, and Berkeley. The latter set of schools are more meritocratic -- you get in if you have high grades, high test scores, etc. (Although it takes a lot more than high grades and test scores to get into MIT.) The Ivies care a lot about extracurriculars, athletics, and essays. So, if you're, like, a world champion debater, that would go far at Harvard, but not so much at MIT.

<comment><USER5> In terms of CMU, I'd say your first point is short-sighted. Because of the relatively large Design/Art, Architecture, and Business programs, the generic freshman orientation/prereqs, a surprisingly inclusive Greek presence, and the small social scene there's plenty of opportunity for mixing with different people.

In fact, I'd go so far in saying that meeting people outside of your typified social circle isn't institution dependent, rather an individual preference (so I wouldn't be surprised if your generalization isn't applicable to MIT either).

</comment></comment></comment><comment><USER6> Big companies recruit where they know they will find talent (especially for internships). Unfortunately this means name matters more than content. Regional firms also like to hire from the biggest-name school in their vicinity.

That said, CMU, Cal and a handful of other schools with noted CS programs are bigger names in the west coast tech world than most of the Ivy League.

Source: Six years working at different jobs with people from the same seven schools.

<comment><AUTHOR> Ah, I see. which "seven schools" specifically?

<comment><USER6> Stanford, MIT, CMU, UIUC, UC Berkely

UCLA, USC, and UC San Diego all make the list, but those are to some extent peculiar to my experiences in California. The last few are probably a different grab bag depending where in the country you want to end up.

I can't speak properly to how things are done abroad, but my understanding from other fields is that name recognition matters even more.

</comment></comment></comment><comment><USER7> Sure, you want to study computer science today, but who knows after three years. If you do get into HYP, just go to HYP, instead of UCBerkely, CMU, MIT.

Undergrad from HYP can open doors in fields you may like: IB, PE, HF, Consulting, etc, in the case you lose interest in being a programmer. You can become a programmer even after an HYP education.

</comment><comment><USER8> My standard advice:

Decide where you want to live. Manhattan, NY is very.different from Manhattan, KS...so to speak. People who are well suited for one are not for the other.

Second piece of advice that's becoming one of my standards;

Decide if you will be happier as a big fish in a little pond or a little fish in a big pond. Being below average at MIT is way above average on an absolute scale but for some people it will be utterly miserable to the point they won't thrive.

The big name schools May open doors when you graduate, but in the long run its about what you can do.

Good luck.

</comment><comment><USER9> Nobody seems to care that I attended Caltech.

I actually graduated from UC Santa Cruz; in my actual experience, the classes at UCSC did me quite a lot more good in my career than the ones I took at Caltech. However my degree was in Physics, but the classes that really made a difference to me were psychology, social psychology and anthropology.

In the work world, you see, it helps a great deal to understand other people.

</comment><comment><USER10> The awful truth is that names matter a lot, even if you want to go into academia, and even for the undergrad school you go to.

<comment><USER2> I'd say _especially_ if you want to go into academia.

Source: I've witnessed graduate admissions committees at a top school at work.

</comment></comment><comment><USER11> I'm quickly regretting my decision to be where I am.

<comment><USER12> Why do you regret NCSU? Undergrad or Grad?

Make the most of your opportunities. Plenty of people I know from NCSU went to grad school at top institutions or to work at Google, MSFT, etc

<comment><USER11> Undergrad.

Its a great school for ECE, but I'm not convinced anymore that its as good for CS. We have a lot of very smart people but..I don't see a lot of innovation coming from here. This might be the case at most CS schools in general, but its disheartening when I read about the opportunities and developments at MIT/Stanford/CMU on a daily basis.</comment></comment></comment>


WebP - A new image format for the Web (by Google) - <AUTHOR> https://developers.google.com/speed/webp/ <comment><USER2> We could make the web a lot faster and/or do some really cool stuff if we had a lossy image format with an alpha channel. It'd be nice this got picked up by all browser vendors. Sadly, I fear that they'll be squabbling over it, just like they are with VP8/Ogg/h.264.

I really believe that the companies involved in web standards are holding progress back at this point. At the same time, even if they all agreed to put this in tomorrow, we'd still be stuck supporting IE6-9 which will never have it. Being a web developer sucks sometimes.

<comment><USER3> We had such a format. It was called JNG. It's a JPG/PNG bastard which allows you to combine PNG or JPG color channels with a PNG or JPG alpha channel. Typically, it's around 20% of the size of a PNG32 image.

Unfortunately, Mozilla killed the format back in 2003, because the MNG (JNG is a subset) library added about 100kb to the installer. Yes, that was the primary reason. Their suggested alternative was to use Flash instead.

<https://bugzilla.mozilla.org/show_bug.cgi?id=195280>

(Note: The sizes of the libraries are the uncompressed sizes. The uncompressed size is completely irrelevant.)

<comment><USER4> After reading this bugzilla thread, I searched and came across this interview with Stuart Parmenter, the Mozilla dev who essentially removed support:

\</comment></comment></comment><comment></comment><comment></comment><comment>--

Parmenter: ...One of the probably biggest sort of conflicts was when-so I actually sort of own the MNG library I guess, and all the de-coders and everything. So we had this module owner system, so I guess I'm the module owner of that. And at some point, we had checked in this de-coder for the MNG format which is a multiple network-or I don't know what it stands for.

But it's basically animated PNGs. So animated GIFs were all the rage with, you know, I don't know, 1998 websites or something. And they-but GIF is basically is indexed formats and it only supports 656 colors and it only works with one bit alpha transparency. So either the pixel is there, it's not. Versus PNG, which has full-it has eight bit alpha support. So you can have 256 levels of alpha so you can-things can be translucent. As well as true color support. So you can see as many colors as you want. So basically, you try to do that.

 _But then something went wrong and they decided that it also needed to do all these things that, like, Flash can do. So it needed to sort of be a movie format and then it-it kind of went-something went wrong at some point. GIFs are very simple, animated GIFs are easy and they-it was basically a very big and complex thing._ (emphasis added)

And then after having it in our product for, like, two or three years, we did some searchers and there were, like, fifty of these images on the web. So we decided-you know, we said, this is silly, this is like, four hundred kilobytes, you know, which was, like, three times bigger than all the other de-coders and the image library combined.

So we said, you know, this is-we don't need this anymore. So I removed it and we had a huge uproar. People were, like, "We can't believe you removed this, you know." It's, like-it was one of the, I think, probably one of the few cases where we've really gone in and said, "We're going to remove a feature that we had before." People apparently don't like that.

So I removed that. We had a lot of uproar and people said, "You know, why did you do this?" We said, "You know, we have this set of reasons. It's too big, it's too slow, it's-nobody's really actively maintaining it." What had happened is, the guy who was sort of working on it also said, "We should remove this." But then sort of the maintainer of sort of one of the MNG libraries and stuff that we were using said, "No, No, this is-you know, we'll get this fixed."

And it kind of got ugly for a while. But effectively what ended up happening was, we sort of have a system that's called a "drivers" which sort of-I guess they're in charge of the product releases and stuff or were. And sort of-it got raised up to there and in the end they sort of said, because I sort of said a thing. I said, "You know if you guys can get it under this size and you can do all these things, we'll take it, whatever."

But they never really did. And so they complained and complained and complained and they're still complaining to this day and this was, like, three years ago. So, you know, but in the end, driver said, "You know, figure out how to meet these requirements. Get an active maintainer, do these things." And nobody really has. They've made some effort but it's not really where we wanted to see it go.

 _I don't think they were really interested in meeting some of the requirements. I think they said, "You know, this is-." They were kind of just trying to chop random bits out and sort of mess with the functionality as opposed to sort of really reducing the size._ (emphasis added)

So we got rid of it. A lot of people were mad and, you know, it just sort of- in that case, it just sort of-we just decided that was the right thing to do. But I think in other situations, you know, I think a lot of times it's sort of just very small. Like, I mean, that's kind of a big argument. But you get into a lot of much smaller ones about just kind of minor things or design things, architectural things.

\</comment><comment></comment><comment></comment><comment>--

Attempting to even read this was infuriating (thanks to the verbatim transcription of none-too-eloquent speech), but it galls how some of the devs seemed anti-progress at the time. Cut off a new format with low adoption but a promising featureset, because Flash, a non-open plugin, could be used to achieve similar functionality? Would they have opposed CSS3 transforms and animation at the time, too?

The paragraphs I italicized shows how this guy thought the featureset was basically pointless - as far as I can tell from his fragmented speech, anyway - and that the size was a big deal. What I get from this is that he thought it wasn't a useful format, and so size was used as a justification to remove it.

Many salient counter-arguments were raised in that thread but essentially rejected out of hand without any engagement. Mozilla might not be a democracy, but it would have behooved them to listen to users/contributors/stakeholders more in this case.

<comment><USER3> Oh boy, that "interview" was horrible. I now got a headache and want to punch something.

</comment></comment><comment><USER5> WebP is 2 years old by this point in time. Is there anything new that I missed?

<comment><USER6> Exactly, is and will stay irrelevant for web developers until it gets adopted by more browsers. Google displays PNG still today on Google.com for Chrome users.

<comment><USER7> Yeah, I feel the slight advantages it brings to the table are easily overwhelmed by the fact that I have to carry two sets of images, and use browser detection to switch between them. Even if Firefox and IE picked it up, their older versions are still not going to support the format. This makes it not very useful for at least 4-5 years.

<comment><USER8> You can also use a service like <http://torbit.com> to create copies of all your images and serve up the right version to each browser that visits.

</comment></comment></comment></comment><comment><USER9> "New"

Blog announcement: [http://blog.chromium.org/2010/09/webp-new-image-format- for-w...](http://blog.chromium.org/2010/09/webp-new-image-format-for-web.html)

Earlier discussion: <http://news.ycombinator.com/item?id=2569881>

</comment><comment><USER10> Even if it's significantly better, do the means justify the ends? On massive sites with millions of images, like flickr or facebook, converting all their jpegs into webps to save on bandwidth and speed would mean that they would have to duplicate every single jpeg image (keep the jpegs for older browsers) with a webp copy to serve to newer browsers that support webp. But by doing that you're nearly doubling the HD space of the entire service. More HDs, more servers, more electricity, more personnel. So whatever money was saved on bandwidth (which is getting cheaper all the time) is negated by the architecture required to pull off the transition.

I feel like this is one of those: "good inventions that are better than the competition but have no demand from the market."

<comment><USER2> I think that for some interactive content, we could do definitely utilize WeP's lossy alpha channel format. The one thing that pops up in my mind are filmstrip animations, where you make a animation using JS and a single image that has all your frames. This allows you to control its playback with JS and gives you better image quality than GIF. Right now we can use JPEG compression for this, but this means we have to bake the page background into the frames or use a huge PNG.

With enough browser support an animation like this could just fallback to a single PNG for older browsers and newer browsers would be better experiences.

</comment></comment><comment><USER11> I assumed this was posted because they just redid the lossless support, but it's just a general link and the conversation has been therefore unfocused. The PDF describing the new lossless mode is here:

[http://git.chromium.org/gitweb/?p=webm/libwebp.git;a=blob_pl...](http://git.chromium.org/gitweb/?p=webm/libwebp.git;a=blob_plain;f=doc/webp- lossless-format-spec.pdf;hb=experimental)

It seems quite neat to me, particularly the way they encode the compression info as images though maybe it's just standard lossless image techniques, I'm no expert.

As for the format generally, I think better lossy compression than JPEG, better lossless with alpha compression than PNG, better animation than GIF, and a lossy with alpha mode and hardware encode/decode support is a reasonably powerful combination. Support from Chrome and Android means it's probably got niche uses already (on or off the web), support from Mozilla (which I'd like to see, since generally multiple vendors working together on something makes me happier, and seems to produce better end products, than one going it alone) could make it a standard practice for those trying to squeeze extra performance out of their web sites, which in turn disadvantages browsers that don't have it.

In the longer term there's probably going to be a shift sooner or later and webp is well placed by getting in early. Even if something better comes along later (and there does seem some kind of limit to the possible improvements), it'll have widespread installation on its side like png/jpeg/gif/etc. have today.

</comment><comment><USER12> Facebook should support this in their native mobie apps. I'm sure they have to creat multiple copies already to support both mobile and web. So there is no extra cost and since they control mobile viewing it's easier for them than anyone else to adopt this new format.

</comment><comment><USER13> No one needs smaller images anymore. With today's bandwidths getting higher, image sizes are irrelevant.

One-time 25% decrease in image size, years in development and more years to widespread adoption, not worth it.

<comment><USER2> Yes yes yes we do! Bandwidth may be increasing, but as displays get better we are going to be serving up ever increasing assets. Sites are already serving up 2x'd versions of images for iOS devices that have higher resolution screens. These higher res images essentially quadruple your file size. On top of that these devices are mobile, which lag behind broadband/ethernet connections AND many of which have data limit caps.

<comment><USER14> Sizes of "Retina" PNGs can be halved just by using better PNG compressors, here's real-world example:

<http://imageoptim.com/tweetbot.html>

It's annoying that _we have the tools_. We don't need new format for this, just use what we have already!

<comment><USER2> But you won't get the file size of a lossy WebP image with an alpha channel.

</comment></comment></comment></comment><comment><USER15> required reading: <http://x264dev.multimedia.cx/archives/541> \- don't know how relevant it is now, but still a good read.

<comment><USER16> That article is about the old encoder, though, and it's almost two years old. It ends with an update from a year ago in which he mentions that the new (at the time) encoder in libwebp should beat jpeg.

</comment></comment><comment><USER17> there is a webp file in my video directory on my android. timestamp is 02:30 Saturday night. I do not have the slightest idea where it came from or what I did then. a shame because I have never ever encountered one elsewhere.

</comment><comment><USER18> So I downloaded libwebp-0.1.3-windows-x86.zip, there is cwebp.exe inside.

I can't figure out how to compress PNGs losslessly into WebP.

These are the options it gives:

        Usage:
         cwebp [-preset <...>] [options] in_file [-o out_file]

        If input size (-s) for an image is not specified, it is assumed to be a PNG or JPEG file.
        Windows builds can take as input any of the files handled by WIC
        options:
          -h / -help  ............ short help
          -H / -longhelp  ........ long help
          -q <float> ............. quality factor (0:small..100:big)
          -preset <string> ....... Preset setting, one of:
                                    default, photo, picture,
                                    drawing, icon, text
             -preset must come first, as it overwrites other parameters.
          -m <int> ............... compression method (0=fast, 6=slowest)
          -segments <int> ........ number of segments to use (1..4)
          -size <int> ............ Target size (in bytes)
          -psnr <float> .......... Target PSNR (in dB. typically: 42)

          -s <int> <int> ......... Input size (width x height) for YUV
          -sns <int> ............. Spatial Noise Shaping (0:off, 100:max)
          -f <int> ............... filter strength (0=off..100)
          -sharpness <int> ....... filter sharpness (0:most .. 7:least sharp)
          -strong ................ use strong filter instead of simple.
          -partition_limit <int> . limit quality to fit the 512k limit on
                                   the first partition (0=no degradation ... 100=full)
          -pass <int> ............ analysis pass number (1..10)
          -crop <x> <y> <w> <h> .. crop picture with the given rectangle
          -resize <w> <h> ........ resize picture (after any cropping)
          -map <int> ............. print map of extra info.
          -d <file.pgm> .......... dump the compressed output (PGM file).

          -short ................. condense printed message
          -quiet ................. don't print anything.
          -version ............... print version number and exit.
          -noasm ................. disable all assembly optimizations.
          -v ..................... verbose, e.g. print encoding/decoding times

        Experimental Options:
          -af .................... auto-adjust filter strength.
          -pre <int> ............. pre-processing filter

<comment><USER19> Did you try -q 100? That might be an idiom for lossless.

<comment><USER18> I did, and it produced a huge .webp file, 6.7 times larger than the original PNG.

<comment><USER20> rtfm? Check the examples at the bottom: <https://developers.google.com/speed/webp/docs/cwebp>

<comment><USER18> Did you read that link yourself?

The word "lossless" isn't even on that page. I tried setting the highest quality, but that just produces huge files.</comment></comment></comment></comment></comment>


Procedural Island Generation - <AUTHOR> http://shanee.io/blog/2015/09/25/procedural-island-generation/ <comment><USER2> Great post!

A few months ago, my partner and I finished a 6 month long project over the course of our final year of Game Programming. We developed an island survival game made for Oculus Rift and Razer Hydra. I did the island and environment generation including animal AI for finding the player while avoiding any of the 40 000 trees that may be in the way.

I used most of the techniques in the post except for the moisture map. I actually ended up generating rivers by accident (which turned out great) just by rearranging the order of masks that I applied to the height map. I used around 4 masks I believe to get the island to be the way I wanted. Unity took care of the rendering, I just applied my height map to the terrain.

I'm planning on writing a post soon about my experiences, but here's a video of the final version for now: [https://www.youtube.com/watch?v=CTYT3fU- Cek](https://www.youtube.com/watch?v=CTYT3fU-Cek)

<comment><AUTHOR> Hey snake_case, glad you like my post!

Can you share the height map you created with the rivers? Currently for river generation I am basically picking a coordinate at random around the centre and go downwards until it gets to a sea or a lake.

I should probably edit the post and mention this but didn't want to make it too long.

Love the fact your project is for the Rift and Hydra. I've set up a VR station with the Hydra at the office, maybe I can give it a go next week :)

<comment><USER2> I'll dig through my project to see if I have any screenshots of my height maps left. I believe I do somewhere.

I'd be happy to send you a build! I'll contact you on twitter.

</comment></comment></comment><comment><USER3> I see a distinct problem with the terrain model. It seems to build the physical shape then apply a waterline to define the islands. That makes the above-water island a simple extension of the below-ground terrain. Earth, and I think is safe to assume any planet with water, is more complex.

Before getting to vegetation and biomes, why not some modeling of increased weathering above sealevel? Unless every island is tropical and volcanic, those mountains should be flatten out significantly in comparison to the terrain below sealevel. The deep valleys should fill with gravel.

<comment><USER4> Unless the game is letting you explore underwater, why bother? And even then that still seems excessive.

</comment></comment><comment><USER5> Another great guide for procedural terrain generation:

[http://www-cs-students.stanford.edu/~amitp/game-programming/...](http://www- cs-students.stanford.edu/~amitp/game-programming/polygon-map-generation/)</comment>


Will any crap we put into graphene increase its electrocatalytic effect? - <AUTHOR> https://pubs.acs.org/doi/10.1021/acsnano.9b00184# <comment><USER2> I thought it was an odd choice of titles for the paper until I read "however, instead of using expensive and toxic chemicals such as ammonia, fluorine, chlorine, boranes, etc., we took a page from the pre-Haber–Bosch era and sought natural materials for the fertilization of graphene and used guano as a dopant".

They're literally doping graphene with crap to see if it increases the Electrocatalytic Effect. Hilarious! A great way to point out that the plethora of graphene doping papers is not well justified.

<comment><USER3> I think what they've shown is that there's a lot of value in doing this basic research. Even their literally crappy additive created "much better electrocatalytic properties" than nondoped graphene. The plethora of research papers, with a large amount of information non-collated and hard to search through, seems to be the problem.

It's clear that there's a lot of problem space to search through. Many teams have created "Positive" results, but because each is it's own research paper, it is challenging to determine which result is the "best", and which results are deserving of further study. What I would take from this is that there's a need for a "standard" experiment in this space, and for many formulations and differences to be mapped, graphed, and compared. One paper encompassing a few hundred formulations, chosen in advance to explore the problem space and find directions, would be more useful. Follow-up papers would employ a search- pattern, increasing and decreasing the concentrations of dopants and hill climbing until optimal points are found or property-curves can be established.

<comment><USER4> No, they illustrate that what is needed is a proper theory to guide investigations, and that meanwhile some experimentalists mostly behave as if they found a "free paper" button and are abusing the hell out of it.

If you can put anything into graphene and get better electrocatalytic properties, then it doesn't make sense to publish any individual result about doping with "x" since that's just a subset of "anything". But if you do get a paper to put on the CV for a few weeks work, why would the fact that you are just doing redundant confirmation stop you?

</comment></comment></comment><comment><USER5> This article is powerful.

 _" one can envision an era in which guano-doped graphene is used instead of platinum in fuel cells and electrolyzers, with huge societal impact not only in clean energy production and a cleaner environment but also on rural economies as guano once again becomes a valuable and highly sought-after product."_

I need say no more.

<comment><USER6> Charles Mann's _1493_ says that when people originally realized just how useful guano was for agricultural fertilizer, they started getting unfree labor to mine it on a massive scale (commonly from islands in the ocean). The paper's reference to Haber-Bosch is because we now instead get most of our fertilizer from atmospheric nitrogen through industrial chemistry. If the demand for guano ever picks up again for some reason, I hope that the "forcing people to work in the mines" part doesn't come back with it.

</comment></comment><comment><USER7> Academia has became an routine extension of school.

In school, you learn to fill in the blanks. In today's academia, you find the weakest and most useless subject, but the easiest to 'improve' on, and then manually fill in the blanks.

Of course there are exceptionally bright people in both places, but what used to happen was that academia consisted of much more of them proportionately. Now most everyone can put crap into graphene and observe the increase of electrocatalytic effect.

<comment><USER8> And that is basic research. It may be dry, boring, and tedious but somebody has to do the legwork. Throwing machine learning at it won't change things much either. Applied ML has a last mile problem - eventually you still need somebody to supervise the wet lab experiments/machines and all not so glorious bits that would never be featured in Nature or Science.

<comment><USER7> I agree. My point being getting a larger sample size of things have diminishing returns, while being simple enough for most of the people to do it. With the end result of sizable expansion of the academia system without a corresponding increase in new advances. In fact, most of the things that are not theoretical in nature is already being spearheaded by the industry, likely for exactly that reason.

<comment><USER8> Given enough time the industry would accumulate institutional knowledge that creates a massive moat. The knowledge and experience is siloed up. Better have boring academia where everyone benefits than to continue feeding corporate titans.

</comment></comment></comment></comment><comment><USER9> > not so fantastic anymore and that we need to add something to it (i.e., a > dopant) to make it great again.

Stopped reading here.

<comment><USER4> Your genuine loss dear user.</comment></comment>


Is It Too Late to Start a Successful Startup? (Are You Too Old?) - <AUTHOR> http://www.williamha.com/is-it-too-late-to-start-a-successful-startup/

<comment><USER2> I suspect, this paragraph from "You and your research"[0] applies as much to knowledge as to most other endeavours:

> Now for the matter of drive. You observe that most great scientists have > tremendous drive. I worked for ten years with John Tukey at Bell Labs. He > had tremendous drive. One day about three or four years after I joined, I > discovered that John Tukey was slightly younger than I was. John was a > genius and I clearly was not. Well I went storming into Bode's office and > said, ``How can anybody my age know as much as John Tukey does?'' He leaned > back in his chair, put his hands behind his head, grinned slightly, and > said, ``You would be surprised Hamming, how much you would know if you > worked as hard as he did that many years.'' I simply slunk out of the > office!

> What Bode was saying was this: ``Knowledge and productivity are like > compound interest.'' Given two people of approximately the same ability and > one person who works ten percent more than the other, the latter will more > than twice outproduce the former. The more you know, the more you learn; the > more you learn, the more you can do; the more you can do, the more the > opportunity - it is very much like compound interest. I don't want to give > you a rate, but it is a very high rate. Given two people with exactly the > same ability, the one person who manages day in and day out to get in one > more hour of thinking will be tremendously more productive over a lifetime. > I took Bode's remark to heart; I spent a good deal more of my time for some > years trying to work a bit harder and I found, in fact, I could get more > work done. I don't like to say it in front of my wife, but I did sort of > neglect her sometimes; I needed to study. You have to neglect things if you > intend to get what you want done. There's no question about this.

[0] [http://www.cs.virginia.edu/~robins/YouAndYourResearch.html](http://www.cs.virginia.edu/~robins/YouAndYourResearch.html)

<comment><USER3> Richard Feynman's second wife divorced him for among other reasons he was "always doing his calculus".</comment></comment>


The Rise and Fall of Netscape Browsers (1998) - <AUTHOR> http://www-inst.eecs.berkeley.edu/~eecsba1/sp98/reports/eecsba1c/pj1/ <comment><USER2> One of the points that gets overlook in Netscape's downfall is the company's decision to rewrite their browser. The company decided that their code base was too deficult to maintain so they went on a year+ quest to make a better engine. The result was a slower browser that was no better than it's previous version and could not complete with Microsoft's version. It was slower and had less features.

It was not the main reason for it's failure but the rewrite sucked resources that could have been used to compete.

In contrast Microsoft bought a browser and continue to improve it.

Ultimately the problem for Netscape was that it could not find a way to make a profit but the rewrite did not help.</comment>


Olivia MFSK - <AUTHOR> https://en.wikipedia.org/wiki/Olivia_MFSK <comment><AUTHOR> Excerpts: "Olivia MFSK is an amateur radioteletype protocol, using multiple frequency-shift keying (MFSK) and designed to work in difficult (low signal- to-noise ratio plus multipath propagation) conditions on shortwave bands. The signal can be accurately received even if the surrounding noise is 10 dB stronger." [...] "The tests proved that the protocol works well and can allow regular _intercontinental radio contacts with as little as one watt RF power_. Since 2005 Olivia has become a standard for digital data transfer under white noise, fading and multipath, flutter (polar path) and auroral conditions."

My thoughts:

A good candidate for Star Trek's Communicator and/or communication with distant points in space (future spaceships?) too? Unknown by me at this point in time, but certainly interesting...</comment>


Zuckerberg Quits Google+ Over Privacy Concerns - <AUTHOR> http://tech.slashdot.org/story/11/07/13/1317252/Zuckerberg-Quits-Google-Over-Privacy-Concerns

<comment><USER2> Linkbait, Zuckerberg has only opted to hide certain stats on his profile and he now no longer shows up in this top followed lists. It has been noted that Google execs have similarly done so.

</comment><comment><USER3> He's still there: <https://plus.google.com/104560124403688998123/posts>

<comment><USER4> Case in point, I think.</comment></comment>