Ask HN: Can someone suggest an open source lightweight alternative to Chrome? - <AUTHOR> I run a 2012-ish Macbook Pro which has 8gb of ram. I noticed today that Chrome takes up at least a couple of those gigs throughout the day. I'm looking for suggestions for alternatives, preferably extremely lightweight (memory efficient) and open-source. Would love to hear what the community is using. <comment><USER4> Memory use isn't real though, especially with OSX and Chrome. It is just eating up what's available as an optimisation, not taking only what it needs.

Also, get Firefox.

<comment><USER5> It is not, but Chrome's resource usage is.

</comment></comment><comment><USER6> I use Firefox but it's a memory hog too. To be fair, websites are the memory hogs imo.

Sadly I don't think you can have the full web experience without sacrificing a couple gigs of ram if you have several tabs open at once.

I know it's not open source but on a Macbook I would expect Safari to be the lightest browser.

If you really want open and still like Chrome, you could try ungoogled chromium here : [https://chromium.woolyss.com/](https://chromium.woolyss.com/)

<comment><USER7> For Firefox I am using an extension called auto tab discard ([https://addons.mozilla.org/en-US/firefox/addon/auto-tab- disc...](https://addons.mozilla.org/en-US/firefox/addon/auto-tab-discard/)). It will suspend tabs from memory that have not been opened for a given time but you can easily open them again by pressing the tab. You can also whitelist some domains to prevent them from being suspended.

Give it a try. There is also the great suspender for Chrome.

<comment><USER6> Contrary to OP, my problem with a browser (or Electron app) consuming a lot of RAM is philosophical not material : I have 16G at home and 32G at work so it's more than enough to accommodate any gluttonous browser.

</comment></comment></comment><comment><USER8> I'd use FF with an ad blocker like uBlock Origin, ads can hog tons of resources. Here are some other tips too [https://support.mozilla.org/en- US/kb/firefox-uses-too-much-m...](https://support.mozilla.org/en- US/kb/firefox-uses-too-much-memory-or-cpu-resources)

<comment><USER9> I'm also using Firefox, but instead of ublock origin I'm using an extension called "Disable JavaScript" combined with the out of the box tracking protection (in strict mode). On my laptop with 4G of RAM, this works fairly well.

For the vast majority of news websites, running without js is a huge improvement to both performance and user experience. It even gets around a lot of paywalls.

I don't think the sites that run slowly would be helped by a "lightweight" browser, since it's not the browser itself that's slowing things down, but the website. The only way to fix this is to remove those features from the website, whether that's by disabling them, or using a browser that doesn't support those features (eg a text-only browser).

<comment><USER10> I discovered this only months ago, but you can configure uBlock Origin to disable javascript, block remote fonts, and/or large media files (check "I am an advanced user" in the settings).

One extension to rule them all!

<comment><USER11> Can Origin whitelist specific fonts? Google's bugtrackers & Android docs are an absolute trainwreck without whatever wonky Webfont they're using.

<comment><USER12> Off the top of my head I know you can reenable specific things such as JavaScript for individual web pages. Probably the same is possible with fonts.

</comment></comment></comment></comment></comment><comment><USER13> Why wouldn't you use Safari on it? When it comes to being optimised for the Mac, that's where it's at. You're on a closed sourced OS, webkit is open.

<comment><USER14> But how would you configure Safari to block ads?

<comment><USER13> You'd install Ad-Guard from Safari Extensions

</comment></comment></comment><comment><USER15> I tried a few lightweight Linux browsers on a 2GB low-clocked Celeron machine a while back ("hacked", older-model Asus Chromebox). Chief candidates were Surf, Qutebrowser, and Midori.

The best on the performance/ui-jank scale was Surf, by a long shot. In fact it was best on both counts. I can't remember which was which but one of the three was noticeably _much_ heavier than the other two, taking a long time to load and sometimes having slow paints, and the other had a lot of weird UI issues that might have been ironed out by running under an all-the-bells-and-whistles DE (KDE or Gnome) which tend to helpfully fix all the UI problems they introduce, but if you're really resource-constrained there's no way you can afford to run either of those (especially Gnome).

Surf's very shortcut-focused in its UI so there's a bit of memorization needed, and you may want to compile it with a few patches for convenience, but its performance and rendering were, in the field of low-resource browsers, outstanding.

[reads post more carefully] Oh you're on Mac and have 8GB of memory? Just use Safari, it makes way, way better use of resources than Chrome or Firefox. Seriously, it's _way_ better, at the cost of having worse extensions, but you're gonna give those up on any other low-resource option anyway. Also stop using the webapp versions of crapware like Gmail if you're going to leave it open all the time—use native mail clients or the "basic HTML" version. Keep your "webapps" in their own windows and close them when not in use, they all eat shitloads of memory for no good reason, no matter the browser.

</comment><comment><USER16> I can recommend the great suspender extension: [https://chrome.google.com/webstore/detail/the-great- suspende...](https://chrome.google.com/webstore/detail/the-great- suspender/klbibkeccnjlkjkiokjodocebajanakg)

after a few minutes inactive tabs gets killed - works for me very well - <USER2> can also exclude sites.

<comment><USER7> I can't recommend this enough. Here is an option for Firefox users: [https://addons.mozilla.org/en-US/firefox/addon/auto-tab- disc...](https://addons.mozilla.org/en-US/firefox/addon/auto-tab-discard/)

</comment></comment><comment><USER17> My dream is that someone will spec out a nice simple subset of modern HTML/CSS, and folks will start making compatible static sites. A few years of that and we could have some nice truly lightweight browsers again. Imagine how fast sites like Wikipedia or YouTube could be if JS wasn't even an option.

<comment><USER5> The problem is that nobody is going to migrate unless a major web player swings a big and likely anticompetitive stick.

<comment><USER17> You don't need to migrate. Keep it compatible with current browsers. Users will reap the benefits of the lightweight sites regardless of what browser they use. It would sort of be like AMP that way. But over time if you get enough major sites with compatible versions it would become useful to have a browser that only speaks the lightweight web, and that's when things could start to snowball. At no point do you need big companies or browser vendors to do anything other than not break current HTML/CSS compatibility.

<comment><USER5> > It would sort of be like AMP that way.

You may have noticed that this was pretty much exactly what I was talking about ;) Usability issues aside, nobody fixed their stuff until Google threatened their SEO.

<comment><USER17> Yeah you got me. AMP really is close on a technical level but my blood boils every time I see a /amp/ url.

<comment><USER18> I've found this extension [https://www.daniel.priv.no/web- extensions/amp2html.html](https://www.daniel.priv.no/web- extensions/amp2html.html) rather useful for dealing with that.

It also means I am less likely to share an AMP link.

</comment></comment></comment></comment></comment></comment><comment><USER19> Firefox? You can also go to "about:memory" and press "Minimize memory usage" to free up memory if you're having issues.

<comment><AUTHOR> Looking for something that I haven't tried already! Also wasn't aware that there was "minimize memory usage" functionality.

</comment></comment><comment><USER20> Not sure if you're running OS X or Linux or something else, but on my 2GB netbook I've had good results using Falkon and Links. The former plays YouTube videos just fine, and the latter is more like using a mainstream browser in reading mode.

[https://www.falkon.org/](https://www.falkon.org/)

[http://links.twibright.com/](http://links.twibright.com/)

<comment><AUTHOR> I'm running OS X. I really wanted to try Falkon though!

</comment></comment><comment><USER21> Gemini ;)

[https://gemini.circumlunar.space/](https://gemini.circumlunar.space/)

I'm only half way joking.

</comment><comment><USER22> Give Netsurf ([http://www.netsurf-browser.org/](http://www.netsurf- browser.org/)) a try. This lightweight browser is a derivative of Presto engine.

</comment><comment><USER23> Brave and Vivaldi are both Chromium based, but perhaps worth a shot.

There's only two other engines left: firefox and webkit. You may want to look into a webkit based browser?

<comment><USER24> ill give Brave a nod as well. Everybody is so offput by its optional ads, they are missing out on the most efficient, fastest, and best "it just works" ad blocker out. It's a pleasure to surf the web again after years of ublock/umatrix and constantly having to tweak the settings for each site I visited.

Edge has become my backup quick test of "is it something in Brave breaking it"

I have Firefox open at all times as well, but find myself using it the least of the three.

<comment><USER25> No other reason for Brave? Some don't want to or care for blocking ads and others don't do it at the browser level. Does Brave have anything at that point?

<comment><USER24> It's hard for any browser to be "lightweight" without blocking javascript and ads. So of the ad blockers, Brave is the lightest weight.

You could turn the ad blocker off, and still get paid to use Brave though, if you like ads.

<comment><USER25> If ads or other things are already taken care of ourside the browser, doesn't that make Brave heavier? It now has redundancy.

</comment></comment></comment></comment></comment><comment><USER26> Safari is the most efficient in terms of memory and battery for macOS. The core of safari - WebKit - is open source. The browser itself is not. Firefox is what I use but it's only marginally better than chrome.

</comment><comment><USER27> I can suggest qutebrowser.

<comment><AUTHOR> I checked it out but not really interested in the keyboard-focused controls. I may try it out when I have more time to learn it.

</comment></comment><comment><USER28> MSFT's edge chromium is not truly open source, but it is the easiest browser to migrate to from Chrome, and it is far less resource intensive.

It also brings some really neat new features, and I find it mind boggling that Google never brought them to chrome.

I have been using it as my primary for a few months now, and I miss nothing.

disclaimer: I am affiliated with MSFT, but don't know anyone in the browser team and readily shit on other MSFT efforts that don't quite work.

</comment><comment><USER29> It's no open source, but it is lightweight and good on battery. I use Safari on MacOS. The shortcomings keep me from expecting too much from my applications.

</comment><comment><USER30> Unfortunately most of the options that come to mind are not available for MacOS.

I know this isn't what you asked, but if I wanted to reinvigorate a 2012 Macbook Pro I would look install something like Lubuntu on it, which focuses on being lightweight, and would run Falkon or Midori.

<comment><AUTHOR> Before this Mac, I used Lubuntu exclusively for years. Who knows...I may end up going back to it soon.

</comment></comment><comment><USER31> [https://chrome.google.com/webstore/detail/auto-tab- discard/j...](https://chrome.google.com/webstore/detail/auto-tab- discard/jhnleheckmknfcgijgkadoemagpecfol?hl=en)

</comment><comment><USER32> As you are on Mac, Safari is your best choice. It is already optimized for it. I recently switched to it as my main browser, and I doubt I will look back.

Sure it is closed-source (although WebKit is open), but you already use Apple's OS.

</comment><comment><USER33> Pale Moon, open-source and very lightweight

[https://www.macupdate.com/app/mac/62312/pale- moon](https://www.macupdate.com/app/mac/62312/pale-moon)

</comment><comment><USER34> Dillo and Netsurf are much smaller than mainstream browsers. But it takes some dedication to use these as ypu have to forgo many web services that aren't compatible.

Another option is to use a remote server to run the browser.

</comment><comment><USER35> You should just use Safari. There is nothing more efficient on the Mac, and it's been kept up to date as far back as High Sierra (just got an update a couple of weeks ago on my oldest mini).

</comment><comment><USER36> I use safari on a similar Mac with no problems.

Also this probably isn't what you want to hear but I also got a headless desktop recently for all my dev related work... that made my Mac a lot faster!!

</comment><comment><USER31> Auto Tab Discard for ff+chrome kills off old tabs without closing them. This frees up the resources allocated for that tab, and the page will reload when you focus on it again.

<comment><USER31> [https://chrome.google.com/webstore/detail/auto-tab- discard/j...](https://chrome.google.com/webstore/detail/auto-tab- discard/jhnleheckmknfcgijgkadoemagpecfol?hl=en)

</comment></comment><comment><USER37> If you want lightweight browsing, use Firefox with NoScript.

</comment><comment><USER38> If you are ok with using older versions of Firefox(2014), they are pretty lightweight and much faster than Chrome or current Firefox.

</comment><comment><USER39> Dillo if you don't need javascript... hehe

</comment><comment><USER40> Also, if you run with tons of tabs open, try "The Great Suspender" chrome extension.

</comment><comment><USER41> Are we really complaining about browsers on a computer with 8gb of RAM?

<comment><USER42> I didn't have any computer with more than 4GB in the house until this year. I had to buy more RAM because of Firefox and Chrome.

</comment></comment><comment><USER43> I use Lynx and surf. surf also has no tabs, so that helps too.

<comment><USER44> +1 for surf. But I use it as part of a broader use of suckless tools, so not sure how it would feel if you are not using dwm & dmenu.

</comment></comment><comment><USER45> I suggest Nyxt browser, very lightweight and extensible

</comment><comment><USER46> Give Brave a try, it is open source and should perform better than chrome on your hardware.

Plus it has great inbuilt ad filtering and privacy features.

</comment><comment><USER47> Firefox. Block ads. It'll do fine.

</comment><comment><USER48> Safari.

</comment><comment><USER49> MacOS? what about Safari?

</comment><comment><USER50> Emacs - <USER3>

</comment><comment><USER51> Falkon.

</comment><comment><USER45> I suggest Nyxt, very lightweight

</comment><comment><USER52> lynx or dillo.

</comment><comment><USER53> getfirefox.com

</comment><comment> dis-sys just install another 8GB of RAM, 2012 mbp allows you to do that, more recent mbp all took that luxury away from users.

</comment><comment><USER54> You can very easily and inexpensively upgrade this laptop to 16GB of RAM. I highly recommend you do this, it makes a world of difference.

If you don't already have an SSD in this device I recommend you swap that out also.

I would like to echo the recommendation for Firefox + uBlock Origin - you will see big improvements in perceived performance.

(typing this on my 2011 MacBook Pro in FF)

<comment><USER55> I agree, though OP is a little ambiguous if this is a 2012 Unibody (which has USB3 and one of the best old machines) or a 2012 Retina which he would be out of luck.

I've upgraded multiple 2011/2012 Unibody MBP for friends and family with 16gb ram and a 512gb ssd for about $150 in the past few years, it makes the machine feel completely new and "snappy".</comment></comment>


Why I'm selling some Twitter shares - <AUTHOR> https://medium.com/@ev/why-im-selling-some-twitter-shares-e5b81386a796 <comment><USER2> Stock sales by executives is normally not a big deal, but 30% is a pretty large number, especially when TWTR is at a pretty depressed price at the moment. Then again, if he needed the cash, the low stock price increases the amount of stock he needed to sell.

<comment><USER3> He could write off the loss for tax purpsoses. But I doubt that would make financial sense unless he thinks twitter is screwed. They could get bought out for a premium share price but who knows.

<comment><USER4> I don't think so. His shares likely have a basis of essentially $0, so he'll pay less taxes on the sale, but only because he's making less money. There's almost never a reason to turn down real income/growth to save a (less than 100%) percentage of that on taxes.

</comment></comment></comment><comment><USER5> _Mr. Williams, Twitter's largest individual shareholder with a 6% stake, cited personal reasons for the selling plan, which kicked off Monday. He said he plans to remain on the company's board and then keep the "vast majority of my assets" tied up in Twitter shares.

"It actually pains me to be selling at this point, but this sale is all about personal context, not company context," Mr. Williams wrote in a post on Medium, the blogging startup he now runs as chief executive._

Interesting, and 30% would seem to support the notion that it isn't a lack of faith in the company, right? It really does sound like he just needed to be liquid.

<comment><USER6> I respect his personal reasons but the stock is public and he is in charge.

I couldn't care if he liquidates 99% of what he has -- what would put me to ease as a shareholder is what is that "personal" reason. Buy a house? New startup? Fight a cancer. Sure, I'm fine... but if that personal reason turns out to be no reason at all, then its a short sign!

<comment><USER7> > _what would put me to ease as a shareholder is what is that "personal" > reason_

That's easy. A "personal reason" is one that's none of anyone's business ;)

</comment></comment></comment><comment><USER8> I'm surprised he waited this long. Twitter's dead and their management doesn't even know it. Yes, it will limp along the same way Yahoo did and eventually they will find a suitor to sell to at a very low, low price.

<comment><USER9> Where is this feeling coming from? There's only fb, twitter & instagram, no? I'm not seeing people using their phones less..

<comment><USER10> Snapchat?

<comment><USER11> Ed, NM just got bit by fake news.

<comment><USER12> Snap is not a part of Facebook, they're independent and looking to go public.

<comment><USER13> Snapchat had its IPO last month [http://www.cnbc.com/2017/03/02/snapchat-snap- open-trading-pr...](http://www.cnbc.com/2017/03/02/snapchat-snap-open-trading- price-stock-ipo-first-day.html)

</comment></comment></comment></comment></comment></comment><comment><USER14> Missed the boat, unfortunately. Selling at the height of the hype cycle eould have been much better.

</comment><comment><USER15> Selling at a record low price for Twitter is probably not the most financially sound logic.

<comment><USER16> Neither is having ~90+% of your net worth in a single, highly volatile equity.

</comment></comment><comment><USER17> Given the title it's amazing that he never actually explains why he's selling.

<comment><USER18> I thought he pretty clearly explained he wanted it to fund other investments and charitable giving?

<comment><USER19> Sounds a little like the usual "I want to spend more time with my family" explanation when someone leaves

<comment><USER18> He's got a VC fund called Obvious (mentioned in the post). If you want to know more details their portfolio is listed here:

[https://obvious.com/portfolio](https://obvious.com/portfolio)

</comment></comment></comment></comment><comment><USER20> I kind of like this simple explanation 'because I like money.'

<comment><USER21> Actually I read it more as "so I can donate to political causes to fight Donald Trump."

</comment></comment><comment><USER22> Evan Williams' post on the sale: [https://medium.com/@ev/why-im-selling-some- twitter-shares-e5...](https://medium.com/@ev/why-im-selling-some-twitter- shares-e5b81386a796)

<comment><USER23> Whether you believe his reasoning or not, I think it's an entirely valid reason to sell. He needed cash, his entire liquidity is in $TWTR. What else is he going to do if he needs personal cash, take a loan?

<comment><USER24> > What else is he going to do if he needs personal cash, take a loan?

If he believed in the stock, why not?

<comment><USER25> You could still run into issues. Imagine twitter stock crashed and you took out a large loan, you're still on the hook for that amount and now you don't have any assets. I would also assume that the ventures that he claims to be going into (charitable donations/VC funding) would require you to have the assets in hand.

</comment></comment></comment></comment><comment><USER26> I'm curious why his profile says

> Medium member since Feb 2017

<comment><USER27> They launched a subscription service which they call memberships last month. If you subscribe your profile gets that style badge.</comment></comment>


Ask HN: How do you read online? - <AUTHOR>

Recently I noticed I have developed what might or might not be a bad habit. When reading through articles online, generally Hacker News, if I find an interesting article headline I'll scan through and look for the following:
* Section headings that break up long text
* Bullet point lists
* Images or diagrams
If an article doesn't have at least 1 of these I will generally click back, unless its a very important article.
I know that by reading this way I am probably missing out on some good articles but with very little time to read these days due to running a startup I find I have increasingly less time to read?
Is the good or bad? How do others read on sites like Hacker News? <comment><USER2> I used to do the same thing, until I read a post on HN about the Kindle's magical ability to change reading habits. With Instapaper, I must say the Kindle has been the greatest purchase I've made in the last couple years. It's the best way to start reading more. All the Kindle-reinforced habits can be obtained regularly, but it's just easier with a gadget to help.

-When you browse HN, only browse for stuff to read at first. Save really interesting and long stuff using Instapaper or bookmarks for later, and skim through stuff that isn't really interesting, but still worth perusing. -Use Google Reader to find new stuff to read every day, and save with Instapaper or bookmarks. Do the same thing as before: peruse random stuff, save really interesting stuff. -Don't read everything. Be selective. There's too much stuff to read out there, and understand that it's a lot better to have a deep understanding of one thing than just absorb headings and pictures. You'll find that you'll learn a lot more, and remember interesting statistics and bits of information that pop up in random areas of life. -Set aside 10-20 minutes to read the best article you found from start to finish. No excuses. After a week, increase this to 25-30 minutes. Keep going until you reach an hour.

I've done this and gotten an hour of solid in-depth reading done every day. The first week or so is the hardest one. I always had difficulty focusing and staying on the reading. I guess it's a way to unlearn the bad mental habits encouraged by computers and social media (keep bouncing from one thing to the next).

<comment><AUTHOR> Thanks, this is a great idea and will help a lot. I guess it still comes down to realising you can't read everything and prioritizing how you spend your time.

Didn't realise Instapaper worked with Kindle. Awesome. I don't think think Google reader works/syncs with Kindle?

<comment><USER2> Google reader doesn't work with the Kindle, but Instapaper works really well with Google Reader -- the bookmarklet allows you save articles straight from Google Reader.</comment></comment></comment>


The Problem of Overcapitalization - <AUTHOR> http://blog.snaptalent.com/?p=8

<comment><USER2> Everything in the article dealing with the problems of overcapitalization from the entrepreneurs end is pure speculation ("lavish salaries, expensive office chairs and generally a hunger killer for execution"). He has no knowledge that those things are true for FatDoor and nothing even anecdotal from other companies.

He does have a point that if they didn't execute well the first time, that doesn't bode well for the next try. However, that's not a problem with capitalization, that would be a problem with the team.

I was on the Odeo team that became Twitter. We were overcapitalized for a podcasting startup and that's exactly why we ended up with a bigger hit. We had the runway to experiment and the knowledge that we hadn't hit on anything big enough, so we kept trying new things.

In that case overcapitalization wasn't a problem in terms of being successful.

<comment><USER3> I have to agree there. Fatdoor raised themselves enough to be able to try something else when Idea A looked to be a dud. And exit strategies don't even come into play yet.

Also, their new idea seems to be a logical extension of (and possibly an improvement on) the old one. If Idea B works they will be fine. If not, they'll be no less or no more bankrupt than if they raised less money earlier.

If some omniscient person told me my idea was going to turn out a dud, I'd want more money rather than less.

</comment></comment><comment><USER4> Ha! At first glance, I thought he was talking about something more like this: [http://bloggoergosum.us/2006/11/20/engineers-dont-get- capita...](http://bloggoergosum.us/2006/11/20/engineers-dont-get- capitalization/)

</comment><comment><USER5> Raise enough money to get a few things wrong, and spend it as if it were your own money (because it is).

</comment><comment><USER6> I SEE NO PROBLEM WITH IT.</comment>


Guide to Programming Clojure For Beginners - <AUTHOR> http://blackstag.com/blog.posting?id=5

<comment><USER2> There's a need for good Clojure tutorials for beginners. I have a whole lot of technical nitpicks with the content, but this is a good start and a good thing for the Clojure community. Great work.

<comment><USER3> I hope that you give the author a list of things to fix, etc. I write a lot and I can tell you that authors really appreciate feedback and corrections.

<comment><USER4> Agreed. ;)

I am no expert by any means, so feedback is always welcome and I am always looking to improve.

<comment><USER5> Do I get an hexidecimal dollar? ;)

</comment></comment></comment></comment><comment><USER6> So, I wanted to start a blog. But then I discovered that all blogging platforms suck, so I decided to write my own. Then I decided that all programming languages suck, so I had to learn a new one to write my blog.

I would say Lisp's world domination plan is coming along swimmingly.

<comment><USER7> C'mon, be gentle - he said a big reason to write a new blogging platform was to learn the new language. That's legit - dunno how many file system browsers I have lurking around my archives for the same reason.

<comment><USER6> Yeah, just kidding. It struck me as funny, because it's exactly the kind of thing hackers do (including me -- and I'm also a big Lisp/Clojure nut).

As far as I can tell, this is more-or-less exactly how TAOCP was written.

</comment></comment></comment><comment><USER8> In Chrome, zooming in on this website makes the layout wider, but the text stays the same size. This is slightly inconvenient.

Thanks for the guide, though! Bookmarked.

<comment><USER4> I hadn't noticed this. Thank you - I'll need to take a look.

<comment><USER9> The culprit seems to be "-webkit-text-size-adjust:none" set for all elements at the top of blog.css.

<comment><USER4> Fixed & Thanks. I put that in for viewing on the iPad, but forgot to target the iPad only. ^_^

</comment></comment></comment></comment><comment><USER10> I don't know if this is the right time to be introducing clojure to beginners yet. The language is still undergoing some basic fundamental changes. If you look at 1.3 there is so much that is different and breaks stuff from 1.2 and before. Right now the main strength of clojure is that the only people using it are the people who are good enough at shipping real software to understand why it's worth the trouble. I would hate for it to become the next fashionable "me too" language like Ruby and get punished by being stuck with supporting too many newbies.

Ruby got stuck at 1.8.6 for so long because it was really difficult to introduce code breaking changes in new versions, due to the number of people who were already using it. It would be better to evangelize clojure after the clojure/core team is closer to finalizing the language design and has shifted focus to performance and growing the ecosystem.

<comment><AUTHOR> Having survived the transitions from pre-1.0 -> 1.0 -> 1.1 -> 1.2 -> 1.3, there's been surprisingly little in the way of breakage, usually just a bit of search and replace.

<comment><USER11> The changes in 1.3 (which honestly should have been called 2.0) have caused a lot of upheval to people using the alpha releases. Even things as basic as ring-devel were broken. But new users should have enough sense to stick with the stable releases. Now that 1.3 has entered beta the number of libraries that remain unpatched are few and far between. It's the folks who are using git master in the middle of the release cycle who are feeling the pain, not the newbies.

</comment></comment></comment><comment><USER12> A possible improvement to the tutorial would be a part of how to work with code stored in files. If I haven't missed anything, the current version seems solely REPL-based.

On the other hand this would into the IDE territory which maybe something that the author intentionally avoided.</comment>


Geobin: RequestBin for geographic data - <AUTHOR> http://geobin.io/

<comment><USER2> Very nice! I was working on a similar concept, though more for streaming location data rather than GeoJSON (drawing mobile device paths, visualizing accuracy, etc).

I haven't gotten around to making an official blog post announcement but it's here on github for anyone who is interested: [https://github.com/hungtruong/pinbin](https://github.com/hungtruong/pinbin)

<comment><USER3> cool hung, that's where geobin came from. A need to visualize geo data that we were posting from a mobile device to a server :)

I took a look and pinbin's data format would work on geobin if it were moved from the url parameters into the POST body, because we look for more than just GeoJSON, but it does have to be valid JSON in the POST body: [https://github.com/esripdx/geobin.io#how-do-we-find- geograph...](https://github.com/esripdx/geobin.io#how-do-we-find-geographic- data)

</comment></comment><comment><USER4> I deal with addresses and geocoding on a regular basis, but I'm still a bit confused. What's the use case for something like this?

<comment><USER5> We've been using it internally as a debugging tool for the Geotrigger Service ([https://developers.arcgis.com/en/features/geotrigger- service...](https://developers.arcgis.com/en/features/geotrigger-service/)), which is a geofencing API & SDK. We can make a mobile device spit out location updates and see them mapped in real time, see what the headers and content of the POST are, and figure out what needs tweaking. We wanted to generalize it as a free service to allow others to do the same and also explore how else it could be used.</comment></comment>


This Is the Modern Manhunt: The FBI, the Hive Mind and the Boston Bombers - <AUTHOR> http://www.wired.com/dangerroom/2013/04/boston-data-manhunt/?cid=7304634

<comment><USER2> This article does little more than pointlessly recycle the tired old trope of the "wisdom of crowds". Yes, the Boston police tried to create some sort of ad-hoc Mechanical Turk. With what results? The relevant video came not from a cellphone camera, but from a good old-fashioned department store surveillance camera. There is no mention of who did the analysis that identified suspects on that video; I suspect it was trained professionals and not the crowds. Meanwhile, we know the Reddit threads have resulted in a few false positives that only luckily didn't create a tragedy. I see no magical improvement in police efficiency with all this.

Oh, and the front page of Reddit is still a worse source of news than the front page of the NYT.

<comment><USER3> >Oh, and the front page of Reddit is still a worse source of news than the front page of the NYT.

I would argue that Reddit is no longer a news site. Go compare the front page of Reddit to the front page of Digg. You'll instantly see the difference. My current hypothesis is that as a community becomes more insular the quality goes down. Though obviously if there is a theme for the discussion board then veering off topic is bad.

<comment><USER4> Reddit became just another aggregator. Flooded with legacy media content and meme photos with a pinch of porn and a junk commenting system. All of the peer generated content is lost in the sea of irrelevance.

<comment><USER5> Subreddits seem strongly resistant to this, but maybe that doesn't help the un-logged-in or new user.

I read r/gundeals, r/til, and r/iama. None of those have crappy external links. There are the obnoxious memes within comments, though.

</comment></comment></comment></comment><comment><USER6> The takeaway for me is if you want to murder folks, make sure you do it in a mundane way so the hive mind does not get involved and your case just shuffles off to an overworked homicide desk</comment>


Ask HN: How Can I Support the Open Source Community - <AUTHOR> Currently I have a 300Mbit/s fiber connection and  a more or less slow server. <comment><USER2> Are you looking to do work or give money?

If the former, I recommend having a look at GitHub's open source guide ([https://opensource.guide/how-to-contribute/](https://opensource.guide/how- to-contribute/)) and then finding a project to start contributing too. The best is something you already use yourself and is in need in help, otherwise, I made a resource that you can use to find a good project to contribute to: [https://www.sourcesort.com](https://www.sourcesort.com).

If you're looking to give money, you could try taking a look at OpenCollective[1] or GitHub's new sponsors tool[2].

if you want to learn more about the problems facing open source, Nadia Eghbal's work is pretty good: [https://nadiaeghbal.com/research/](https://nadiaeghbal.com/research/)

[1] - [https://opencollective.com/](https://opencollective.com/)

[2] - [https://github.com/sponsors](https://github.com/sponsors)</comment>


The age-old strategy of buying cheap shares is faltering - <AUTHOR> https://www.economist.com/graphic-detail/2020/09/19/the-age-old-strategy-of-buying-cheap-shares-is-faltering <comment><USER2> By many measures tech stocks have not been this overvalued since 1999. Similar situation. COVID + staying at home + government stimulus means there's a lot of money sloshing around. Tech companies are relatively unaffected by pandemic so all this money ends up there.

Lots of general public getting in on the market just like 99. Senseless valuations on companies without a dollar of revenue. A historic year for tech stocks right after a historically long bull run, just like 99. Many allegations of fraud since money is so easy to get. Tech stocks make up something crazy like 30% of value in market, again just like 99.

If tech isn't in a bubble, I don't know what's going on. How does virtually every tech company become twice as valuable in 6 months? They don't.

Unlike last time, most of these companies won't crash to zero. But they could easily lose 2/3 of the value as soon as life goes back to normal and everyone sees how much damage corona has done. The relatively fast early recovery has the markets in a state of euphoria.

I moved all my money to "value" stocks last week. These tech valuations defy all logic. Remember when Buffet said to be fearful when others are greedy? Well right now he's investing out in Japan

<comment><USER3> I think the idea behind "value stocks" if I remember the Intelligent Investor correctly was about "book vs. market value" in many aspects. "Buy stocks worth a dollar for pennies".

I think times have changed. When the automotive industry falters, the assets won't be worth anything near "book value".

A very wealthy (now retired) investment banker once told me: "The stock market over-reacts, but is right about the general direction".

Growth potential, margins and inflation drive stock prices.

I don't see how tech could be anything but a winner. If anything, Corona has accelerated the need for digitization and buying patterns change.

Buffet did horribly during the crisis. He admittedly undervalued Tech and invested in Airlines - big regrets.

I do not think a lot of industries will go back to the way things were. Why travel in planes if you can do zoom meetings? Why your own car when you can work from home?

Personally, I would rather be worried about the real estate market and office buildings folding in value...

<comment><USER4> > Personally, I would rather be worried about the real estate market and > office buildings folding in value...

Real estate also has a long-term demographic problem: fewer people means lower demand. We're below replacement rate[1], so as a general class I'd expect real estate to underperform.

My folks sold a house in a upper-middle class neighborhood in one of the best school districts in their state. They owned for 22 years and didn't make inflation on the sale.

[1] [https://en.wikipedia.org/wiki/Demographics_of_the_United_Sta...](https://en.wikipedia.org/wiki/Demographics_of_the_United_States)

<comment><USER3> Thanks for sharing! Yes - but with a BUT: I think it depends where. On average this certainly is very true. But urban areas (I speak for Germany): they will probably not see a decline in population but rather an increase. Less dense areas may die out. Urban areas with strong economies are "hot" and I am not convinced this may change soon. Home-office may make "urban centers" less attractive and overvalued - but "suburbs" will remain very valuable imho. People still want to have good infrastructure and schools, so even with a shift from city-center office work to "suburb-homeoffice" I don't think this will change...

And for clarification: in Germany (over-simplified) expensive locations in city centers run at 10kEUR/sqm, suburbs maybe at 4k-7k EUR/sqm in strong regions? So this may sound "super cheap" to folks in the US with a bit of upside until we reach "US prices".

I am sorry and surprised to hear that they didn't make inflation even on the sale... Crazy.

<comment><USER5> The average price per square meter is roughly the same in Berlin and Washington DC. The real estate market in San Francisco and the bay area is an outlier. Houses in second and third tier cities in the US are actually cheaper than comparable cities in Germany, even before you take all the additional transaction costs in Germany into account.

<comment><USER3> Thanks, this is interesting!

For those who wonder: in some states, there is a 6.5% tax on real estate sales. You sell a house for 1 Mn EUR, the buyer has to pay 65k in taxes... Per transaction. Add the notary and add the real estate agent leaves you at 10% pretty quickly...

And then the government wonders "why aren't people more flexible in moving across the country to fill all these skilled worker gaps"...

It may also be worthwhile to consider: most houses are brick houses with excellent insulation and high quality windows. The "substance" of the houses is usually built to last 50+ years...

</comment></comment></comment></comment></comment></comment><comment><USER6> The terms "growth" and "value" nowadays are silly mechanical definitions that bear little relationship to any intelligent investing strategy. The worlds premier "value" investor Warren Buffett was buying Pepsi and Coke stock 50 years ago, and owns more Apple now than anyone.

Buffett will tell anyone who will listen that value investing is purchasing investments at discount offering a good margin of safety to a reasonable estimate of intrinsic value. Low price to book value or low price to earnings don't remotely comprise the universe of good value investments.

<comment><USER7> I have only recently started reading about investment and the concept of value investing and your comment doesn't seem to encapsulate what I've understood.

There are also things like the company's management and how they run the company. It's about looking for "wonderful companies" at a good price.

I'm not saying which investment strategy is better or worse, just that I believe there is a lot more to Buffet's idea of value investment than you imply.

<comment><USER8> You and GP are both right but simply referring to different definitions of value investing.

GP is using "value" in the traditional Benjamin Graham sense of companies that are quantitatively undervalued based on current financial statements. This is the definition used on Wall Street for "value" ETFs or mutual funds.

You're referring to Warren Buffett's expanded definition of "value" as any company priced below intrinsic value, which can include qualitative judgment of future growth.

You both make the point that Buffett's approach deviates from the traditional Wall Street definition of "value".

</comment></comment></comment><comment><USER9> This is an over simplistic view. Simplify the terms so much and you get garbage in, so obviously garbage out.

The russell 1000 value index is quantitative only and tries hard to define "cheap" stocks by different measures.

Value investing in the real world, especially when talking about Buffet, is heavily reliant on qualitative analysis. How else would Apple, Buffet's biggest holding, will be considered a value investment?

The title therefore is completely wrong. A good title would be: "Russell 1000 value index performed worse then their growth index recently"

<comment><USER10> First, _Berkshire Hathaway_ holds AAPL. Ted or Todd probably initiated the position, not Warren Buffett.

Second, they are up about 300% on the stake. That equates to a P/E of 10x based on ttm earnings on AAPL and their basis. At the time, I think AAPL had a pretty modest valuation, also. The theory is that phones were cyclical and that service income would not offset the loss of income from devices. AAPL was widely discussed as a value investment around that time (as was Facebook).

<comment><USER8> Todd or Ted was the first to buy Apple shares for Berkshire, but Warren Buffett made the decision for the bulk of Berkshire's current stake in Apple. The $35 billion Apple investment (worth more now) [1] is larger than what Todd or Ted manage (about $13 billion each as of last year) [2]. Buffett has also commented publicly on the rationale behind his decision to own Apple.

[1]: [https://www.cnbc.com/2020/07/16/warren-buffett- reaps-40-bill...](https://www.cnbc.com/2020/07/16/warren-buffett- reaps-40-billion-from-giant-apple-stake-since-march-bottom.html)

[2]: [https://www.cnbc.com/2019/02/25/warren-buffett-says- berkshir...](https://www.cnbc.com/2019/02/25/warren-buffett-says-berkshire- stock-managers-weschler-and-combs-have-trailed-the-sp-500.html)

</comment></comment></comment><comment><USER10> This is the kind of headline you look back five years later and realize it marked the market top.

<comment><USER11> Maybe, but don't ever ever try to time the market.

<comment><USER12> Haha why? I'd _much_ rather be wrong and miss out on some gains for a year than loose a bunch like I did in 2008 with this mentality. Pandemic damage is certainly _not_ priced in.

<comment><USER13> Because if there is a bubble it can go on for a decade, you'll eventually lose faith in your strategy and go all in at even worse valuations.

</comment></comment></comment></comment><comment><USER14> Usually when I see an article like this, I start looking at the strategy because it usually means it's about to start working again.

I remember an article saying "buy and hold was dead" in 2009. Marked the exact time to do buy and hold.

<comment><USER15> I'm not using the strategy myself, but if I had to buy and hold anything right now just to test your idea, the market seems full of reasonably intuitive options. I could think of a lot more worrying securities than e.g. AAPL at $106. They've split many times before, and the odds are it'll happen many times again in the future. (This is not investing advice, yada yada)

</comment></comment><comment><USER16> Shouldn't any well known strategy stop working over time as more people use it? There's only a finite amount of alpha.

<comment><USER17> I've heard people say that the higher returns are compensation for the higher risk.

<comment><USER18> Theoretically if the risk is actually higher, there should also be a more substantial downside at some point.

<comment><USER19> But practically, you can socialize the risk by devaluing the currency.

</comment></comment></comment></comment><comment><USER20> "Cheap shares" are only cheap because investors are pricing in less growth compared to other countries with similar revenue. Common mistake new investors make is to invest only in companies with low P/E because they're "underpriced". But the pricing is the market saying they have little faith in their abilities to improve their business.

The obvious explanation is that the market is getting better at assessing growth. Of course there are companies like Tesla, Nikola, Snowflake with insane valuations relative to their actual business (and two of them are solid companies with real products and growth). It might be possible that people are pricing in too much growth. But when yields outside of equities are so low you kind of have to chase growth, which incentivizes investors to pile onto growth opportunities.

</comment><comment><USER21> This is unsurprising, given how disconnected the market has been from the economy. "Growth" stocks have naturally taken the greater share of incoming money.

It won't last. There will be a correction, of one kind or another, more or less violent. That is how the "efficient market" works.

</comment><comment><USER22> This is when you switch to the other age-old strategy: selling ovepriced shares.

<comment><USER23> Yes, that's the easy and obvious answer. The hard question: where do you park that money? People are investing in tech stocks because everything else is so uncertain right now.

<comment><USER24> I paid off my 25 years remaining mortgage after selling some long-held TSLA, because I really didn't know where else to put it, especially with the election uncertainty coming up. I feel a little bit cowardly doing this, but I'm in tech and aapl/amzn/goog is a fair chunk of my portfolio and don't want to put even more of my eggs in one basket.

<comment><USER25> I really recommend rethinking that. TSLA is the future of the market. Hold it forever.

</comment></comment></comment></comment><comment><USER26> Where do the authors of the article get the chart data?

It turns out that index details and data are kind of treasured secrets. I could only find Russel 3000 on Bloomberg and MarketWatch[3][4]. On official FTSE Russell page there are no current values[1]. On Googling "Russel 3000 Growth" I get a chart from Google, but when going to MorningStar, which according Google's disclaimer is their source of data for "INDEXRUSSELL", I could only find Russel 3000[2] and it has bogus quote compared to Bloomberg and MarketWatch.

I'm new to all this and since I've been reading a lot about ETFs latey I was hyped about the transparency. But it seems that if you're not Authorized Participant and the ETF tracks index such as Russell 3000 Growth, you know as much about your portfolio as if you had money in managed mutual fund.

[1] [https://www.ftserussell.com/products/indices/russell-us- styl...](https://www.ftserussell.com/products/indices/russell-us-style)

[2] [https://www.morningstar.com/indexes/ixus/rut/quote](https://www.morningstar.com/indexes/ixus/rut/quote)

[3] [https://www.marketwatch.com/investing/index/rua](https://www.marketwatch.com/investing/index/rua)

[4] [https://www.bloomberg.com/quote/RAY:IND](https://www.bloomberg.com/quote/RAY:IND)

<comment><USER27> ETFs have to publish their fund holdings daily. Go to the issuer website and you'll be able to download it.

In addition you can go to edgar and download the NPORT files monthly.

You're right that index positions are expensive to obtain. But the ETF holdings are a pretty good proxy

</comment></comment><comment><USER28> It's been a long time but I remember one explanation of the value premium was value stocks are more likely to get wiped out in a crisis (no free lunch).

Another was that high commission costs would have eaten up all the gains in actually maintaining a value portfolio. Apparently there's a lot of churn in and out of value.

</comment><comment><USER29> Between the Feds quantitative easing during the Great Recession and now their buying of corporate bonds (sometimes junk), it's difficult to discern the true value of companies. Easy and cheap money can make balance sheet appear pretty good at first glance.

<comment><USER30> The USD losing value relative to peers is helping the market as well. Most companies generate significant revenue overseas but report in USD. As the dollar falls in value they end up with more dollars when converting.

If the dollar continues to weaken then I'd hedge towards the markets continuing an upwards trajectory.

<comment><USER31> Is the dollar weakening? I think right now the Fed is trying to prevent deflation because of the demand for dollars.

But if the dollar weakens, it doesn't weaken with no benefits, America starts selling and exporting more as products and services become cheaper.

<comment><USER32> One common way of measuring the strength of the dollar is to compare it to a "basket of currencies": [https://www.investopedia.com/terms/u/usdx.asp](https://www.investopedia.com/terms/u/usdx.asp)

By this standard, the US dollar is down about 10% from its post-COVID crash high (103 -> 93). But over a longer time scale, it's up about 10% from where it spent most of the 2000's: [https://www.marketwatch.com/investing/index/dxy/charts](https://www.marketwatch.com/investing/index/dxy/charts).

So I think the answer both "yes, the dollar is signicantly weakening" and "the dollar is still slightly stronger than its recent historical norm".

<comment><USER31> Yea great info to share. Thanks for that!

I'm wondering if that describes this scenario: there aren't enough dollars, there is high demand for them, but as they get printed they go into securities.

What do you think?

<comment><USER32> I don't feel I understand well enough to offer much of an opinion, but I think that captures a lot of it. An important addendum might be that a lot of foreign debt is dollar denominated, which means that dollars are often required even to service debt that is not US originated. In my amateur opinion, this is a good primer: [https://www.lynalden.com/global-dollar-short- squeeze/](https://www.lynalden.com/global-dollar-short-squeeze/)

</comment></comment></comment></comment></comment></comment><comment><USER33> "You can gauge just how pricey a stock is by looking at its price-to-book ratio,"

"Since 2010 the Russell 1000 value index, which tracks American stocks with low price-to-book ratios and low expected earnings growth, has risen by just 87%, compared with 171% for the market overall."

This reminds me of what Blow-up artist Niederhoffer told me before his second blow up: Price-Earnings ratios have no meaning for long term stock performance :-)

</comment><comment><USER34> Value stocks have always faltered when growth stocks did well.

If value stocks always worked then they would lose their advantage. The fact that people give up on them is one theory academics have used to explain the persistent long-term edge value stocks have had over growth, for at least the past century.

</comment><comment><USER35> Massive inflation in stocks and real-state. It's ridiculous. They should have started raising interest rates years ago - we had record low levels of unemployment, what was the Fed doing but protecting the top 10%?

And for failing to make the right moves ... we get hit with COVID.

<comment><USER36> Low interest rates are dictated by market forces, not by "them". Too much money, accumulated by older people, chase too few investments, that young people must pay interest for. There are fewer and fewer young people relative to old people, that's the fundamental problem.

<comment><USER35> Interest rates are very effectively controlled by the Fed and if they want to raise them, they can, anytime.

<comment><USER36> The fed rate always closely follows treasury rates, and the latter are set by the markets.

</comment></comment></comment></comment><comment><USER37> Anyone have a non pay walled version?

<comment> david-gpu [https://outline.com/5Rps3M](https://outline.com/5Rps3M)</comment></comment>


Ask HN: What will be the best developer conferences of 2018? - <AUTHOR> I love attending/streaming WWDC, F8 and Google I/O, but what are some other less well known conferences to keep an eye out for? <comment><USER2> In Europe, there are several great conferences regarding open source technologies:

Open Source Summit: [http://events.linuxfoundation.org/events/open-source- summit-...](http://events.linuxfoundation.org/events/open-source-summit- europe)

Euro Python: [https://ep2017.europython.eu/en/](https://ep2017.europython.eu/en/) (2018 site is not yet, and will be probably somewhere else)

Django Con Europe: [https://2018.djangocon.eu/](https://2018.djangocon.eu/)

And many cool local PyCon's, such as PyCon SK 2018: [https://2018.pycon.sk/en/index.html](https://2018.pycon.sk/en/index.html)

Disclaimer: I am part of the PyCon SK organizational team

</comment><comment><USER3> What kind of apps do you build in? Those are big conferences, but if they don't apply to you, they aren't any good. (I just attended AWS Reinvent, and it was probably the best conference I've attended, but wouldn't be valuable if I wasn't working heavily in AWS)

<comment><USER4> I always hear reInvent is terrible because the crowds and things inevitably go wrong at that scale.

<comment><USER3> It was pretty miserable - walking the (Vegas) strip was faster than conference shuttles, it was hard to get into sessions you wanted, etc. Even so, I felt I got more out of it than conferences where none of those issues existed. (I learned a few tricks on how to maximize value next year - mostly boils down to better planning)

</comment></comment></comment><comment><USER5> This year I went to Rails conf in Phoenix and Ruby conf in NOLA. Both were great. Excellent organization and a good variety of topics (I don't develop exclusively with Ruby/Rails).

</comment><comment><USER4> GopherCon in the USA is always great if you have any interest in Go.

</comment><comment><USER6> We will see in 2019.

</comment><comment><USER7> If you're a Java developer, JavaOne is excellent.

</comment><comment><USER8> Definitely Ethereum's DevCon 4</comment>


An Introduction to Programming in Go - <AUTHOR> http://www.golang-book.com <comment><USER2> C was wildly successful because the world needed a language that had some of the mechanisms of high level languages, which allowed low level control and compiled to fast machine code. C hit an in-between niche at the right time and place.

As far as I can see, Go is doing the same. We need a language that has some mechanisms of higher level languages, like CSP style concurrency and GC, but which still allows for low level control of things like memory layout.

I ported a partly done multiplayer game server written in Clojure to Go, and I find that I'm more productive in Go. The tooling and server monitoring is more developed for the JVM platform, but coding in Go is more fun because everything is immediately responsive, and nothing "falls over" like it can with nREPL/bREPL with Clojure/ClojureScript. Always paying that several seconds environment startup delay, or the additional management required to avoid it, does wear on you in the long run.

<comment><USER3> I'm curious, what other reasons did you have to switch from Clojure to Go? I love coding in Clojure, so I wonder what would make someone "like me" switch.

<comment><USER2> When going for parallelism, it's helpful to be able to lay out what goes where in memory to avoid false sharing. This is quite hard to do in Clojure. The JVM has better GC, but Go also allows one to avoid GC.

Also, to write fast code, I don't have to decompile bytecodes or do obscure things to make sure arithmetic is what I meant it to be. Int64 addition is int64 addition.

Some things are definitely more powerful in Clojure. But that isn't where my priorities lie right now.

<comment><USER4> > The JVM has better GC, but Go also allows one to avoid GC.

I don't see that Go allows you to avoid GC any more than Java does, really. You can (and Java programmers do, with regularity) use things like sync.Pool in Java as well.

<comment><USER5> Golang tends to need far fewer allocated objects than Java.

You can allocate arrays (and slices) of struct in golang. Just one allocated object irregardless of how many items there are. In Java, you need array of objects and an instance of each object. Array of 100 objects needs 101 allocations in Java. So one could say golang avoided gc for those 100 objects it didn't need in the first place.

In Java, you're otherwise limited to arrays of elementary types.

<comment><USER4> > So one could say golang avoided gc for those 100 objects it didn't need in > the first place.

That's a reduction of the number of _allocations_ , not of GC. In a generational copying GC like that of Java, the GC runs a minor collection when you've allocated enough bytes in the nursery to fill it up; it doesn't matter whether those bytes came from 1 object or from 101 objects. From reading Go's documentation [1] it's unclear whether its GC collection cycle is triggered based on the number of objects or whether it's triggered based on memory usage, but I assume the latter as that's how most GCs work.

The pressure on the GC during the mark phase is based on the number of total pointers. You may be able to reduce the total number of pointers by packing pointer-free structs together, but I would be surprised if this helps mark performance that much in practice.

The main way to really reduce GC pressure in a fully GC'd system, short of improving the GC itself, is to use pooling. Which both Java and Go programmers do regularly.

[1]: [http://golang.org/pkg/runtime/debug/#SetGCPercent](http://golang.org/pkg/runtime/debug/#SetGCPercent)

<comment><USER5> GC object graph.

Golang case: 1 object, no child nodes. Nothing to do. Code that does not need to run is the fastest.

JVM case: visit array object and its 100 child nodes. JVM's GC still needs to visit all nodes of the graph. What actually takes time in GC is all those L1/L2/TLB misses and extra page faults caused by following the object graph. If all objects happen to be on a different cache line, L1 spills happen after just _512_ references on Intel Sandy Bridge, Ivy Bridge, Haswell, etc. (and sooner in reality). Those extra loads from L2 are not free.

So, _in this case_ Golang needed to visit 1 struct (object). JVM needed to visit 101 objects.

I wasn't talking about object lifetimes at all. I was talking about memory layout and point out in golang you can have the objects sequentially in memory without need for pointer indirection (references).

Thus generational GC doesn't have anything to do with this. Gen GC just something nice to have when a limited call graph generates a lot of temporary objects, i.e. garbage.

<comment><USER4> I mentioned this in the second paragraph. Like I said, I'd be surprised if that helps mark times that much in practice. For minor collections in a generational GC you're typically doing a Cheney scan, so it's very unlikely to matter as you're copying the whole live region of the semispace anyhow. For major collections on tenured objects, in theory it could help, but again I'm skeptical that it will affect mark performance that much, because compaction does an excellent job of mitigating the cache effects. (It's impossible to accurately measure this stuff right now, as the fact that Go's GC is much more immature than the HotSpot GC will skew the numbers.)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> Would I buy the author a beer at a con, yes, so I dropped $3 at amazon for the kindle version. That's about what its worth.

Problems:

1) Is it for noobs or the guy learning his 10th language? Starts with "what is a file, what is a folder, what is a text editor". Then leaps into a very matter of fact "and this is how you do recursion". So a noob is going to be totally lost after the first chapters and an old timer is going to be pretty bored with the "what is a folder" level stuff.

2) Strange text encoding errors on the site. ... Bullet point "Strings are" a-hat (as in a with top hat, not a __hat) lowercase-epsilon c-concat-e "indexed" a-hat epsilon "starting at 0 not 1" ... current firefox if that matters (which it absolutely shouldn't)

Other than that, its a pretty good intro level book, like I wrote I'd "buy the author a beer" level of goodness.

<comment><USER7> I'm also seeing the weird text encoding stuff in OS X Chrome. For example:

      "of information – everything"

<comment><USER8> It's UTF-8 being interpreted as raw bytes: "a-hat" is the 0x80 marker byte. A common fail is forgetting that Microsoft Word auto-corrects straight quotes (which are in ASCII) to curly double quotes (which need Unicode), and serving the resulting text as CP1252 or ASCII or some such.

UTF-8 / GMT / ISO8601 people. It's (should be) law.

</comment></comment></comment><comment><USER9> I've found the learning go[0] book to be an awesome concise introduction to Golang.

[0] - [http://archive.miek.nl/projects/learninggo/index.html](http://archive.miek.nl/projects/learninggo/index.html)

</comment><comment><USER10> Another resource I like is gobyexample: [https://gobyexample.com/](https://gobyexample.com/)

<comment><USER11> I wish all these books did a much better job of positioning the language and explaining when you should choose to use it. That seems crucial information, and hard to find out online. The introduction in Go by Example isn't much use:

"Go is an open source programming language designed for building simple, fast, and reliable software."

So that's opposed to all the languages designed for building complicate, slow, unreliable software... OK, I'll bear that in mind.

There are so many viable languages out there now that any introduction needs to give readers informed advice on when it's worth using, and therefore when it's worth learning.

Is there any online resource that does a good job of this, for a wide variety of languages?

<comment><USER12> For every use-case you'll encounter, there is so many answers.

There is no "when you want to do X, use language Y" guide, because it would be pretty stupid. Every good programming language can be used for nearly all your programming needs.

The only thing you need to keep in mind, is where the target program should run (and the list is very small):

\- should the target program run in a browser? Use Javascript or a language that compiles to it (Coffeescript, Dart, TypeScript, ...)

\- should the target program run on an embedded board (very low memory footprint, very low CPU cycles available)? Use a language with manual memory management: C, C++, Nimrod, Rust, D ...

\- should the target program takes the most performance out of the hardware (games, HPC, performant system library, ...)? Use a language that makes fast executables: C, C++, Nimrod, Rust, D, Go, ...

\- should the target program runs on a web server? On a desktop computer? Any case that doesn't fit the previous three? Use whatever language you want or are familiar with, they all can do it, and there is no "best choice".

<comment><USER5> In the eighties, a lot of devices with very limited memory (from 1kB to 64kB) used garbage collection of sorts (kind of heap compaction). They were called home computers. It worked just fine.

Heck, people are running embedded Java with garbage collection and all with just a few _kilobytes_ of RAM.

Low memory does not mean you need to do manual memory management. Of course, when you add requirements for predictable memory usage, it might be a different matter. Like embedded devices that need to run for extended time periods reliably without issues.

But then again, a lot of Commodore 64 programs written in BASIC managed to do just that without issues. Running for years without hick-ups.

</comment></comment></comment></comment><comment><USER13> Just finished this book this past weekend. I'm not impressed by any of the Go books on the market, but this one is suitable for a brief introduction to get you going.

After reading it and writing some trivial code, the advantages it has don't really help me with any problems I face being a 1 man shop. Just losing a lot of libraries so I'll probably stick to using Python for 99% of the stuff I do.

</comment><comment><USER14> I just read this book last week!

It's an easy read, and it does a good job showing what Go is like. It piqued my interest, and yesterday I started reading 'Programming in Go: Creating Applications for the 21st Century' by Mark Summerfield. Does anybody know how it compares to 'The Go Programming Language Phrasebook' by David Chisnall?

<comment> jon-wood I can't so how it compares, but I'm enjoying Programming in Go at the moment. It has the good sense to assume Go probably isn't your first language, so gets pretty quickly to the point rather than spending endless pages explaining what a conditional is.

</comment></comment><comment><USER15> Getting loads of text encoding oddities everywhere - is that just me?

<comment><USER16> It's not just you, Firefox auto detects the encoding as Western, if you set it to Unicode manually it works.

<comment> Dorian-Marie Someone needs a <meta charset="utf-8">

<comment><USER17> Mostly someone needs to set the useful headers correctly instead of sending pointless garbage.

<comment><USER18> I wish you had said this differently. Not only is it hostile, it doesn't contain enough information.

I run a web site. All my pages contain <meta charset='utf-8'> in the title. What are you suggesting I do differently?

<comment><USER19> HTTP has good support for declaring content encoding. Putting this in HTML probably seems like wasted bytes to protocol purists.

<comment><USER20> One advantage of putting it in a meta tag is that the encoding is preserved even if the document is read from elsewhere (parsed from the local filesystem, etc).

<comment><USER5> Not to mention that not everyone has control over what HTTP headers get sent. It's way easier for a non-technical person to just add it in meta tag. Definitely a lot better option than leaving the matter to browser encoding sniffer!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> This site isn't new, is it? I just finished writing a book on Go and feel like I encountered this site a few times while researching - though not as a complete anthology.

If so, I've found this site helpful but "Introduction" is the proper term, it doesn't go particularly deep into anything.

<comment><USER22> can we get a link to your book?

I'm thinking about digging into Go soon.

<comment><USER21> Well it's a hard copy book and it's in final production now, but I'll be happy to when it's on Amazon in a month or so.

</comment></comment></comment><comment><USER23> Question - anyone have a resource of examples of sites that have been made with Go?

<comment><USER24> Sure!

* Drone (CI platform) - [https://github.com/drone/drone](https://github.com/drone/drone)

* Gogs (GitHub clone) - [https://github.com/gogits/gogs](https://github.com/gogits/gogs)

There are quite a few others, but those are the two most notable that I know of.

<comment><USER25> Is that github language detection going nuts or is drone really 58% C code?!

<comment><USER26> it looks like they copied in the entire sqlite3 library which skewed the language makeup.

[https://github.com/drone/drone/search?l=c](https://github.com/drone/drone/search?l=c)

</comment></comment></comment></comment><comment><USER27> obligatory

[https://github.com/vhf/free-programming- books/blob/master/fr...](https://github.com/vhf/free-programming- books/blob/master/free-programming-books.md)

<comment><USER28> yeap, that's where i found out about it! There are a lot of awesome books around there ... if only i would have the time to read them all!

</comment></comment><comment><USER29> Still useful, but outdated.

</comment><comment><USER30> "An Introduction to Programming using Go" better reflects the purpose and the tone of this book.

</comment><comment><USER31> What sort of tools can I create in Go? Say I'm someone who programmed six years ago and since then has only a cursory exposure to Python, some Scala and Perl. What "real" applications, desktop, server, web or otherwise, should I attempt to build?

I've heard good things about Golang, then I hear things like its lack of generics make it useless for a lot of cases.

<comment><USER32> You can pretty much build whatever you want. The main advantages of Go is that it's Concurrent and it's a compiled language. Performance wise its faster than Python and coding wise its faster than C. Basically its somewhere in between compiled languages and high level languages.

In my experience programming in Go is very nice. It feels like you are coding in a scripted language but compiles.

I don't recommend it for production unless you are one of those master coders. Its still a fairly new language and a lot of time I had trouble finding easy solutions that normally can be found on google / stackoverflow. I also wished the error handling was different. Although Golang community loves the error handling methods (you are suppose to handle the error like this), my code tend to be overflown by it.

<comment><USER33> Rob Pike made an interesting comment at the q&a for Gophercon I believe. Basically saying that error handling isn't anything special and he didn't want to create special syntax for handling error cases. Instead the syntax of the entire language is at your disposal to deal with errors.

It was sort of a quick answer, so not really detailed.

As well, panic/recover is there if you would prefer that, but err seems to work just fine.

<comment><USER34> I got Pike's point on that, and love go overall, but this is really the topic on which I can't agree.

The biggest problem with that is that throwing exceptions has a purpose : it makes errors interrupt program by default.

With errors in go, that's the reverse : errors are ignored by default.

Maybe it's just I'm too new in go, but I feel like I'd rather have my errors taken cautiously by default, with the possibility to ignore them (catch) than having to use variable and put if statement everywhere I care about errors (which pretty much means everywhere, in my current design style).

Am I missing something, here, than can allow to avoid this verbosity ? (as for panic / recover, that's good for functions you implement yourself, but you still have to deal with errors from core / lib functions).

<comment><USER35> > Maybe it's just I'm too new in go, but I feel like I'd rather have my errors > taken cautiously by default, with the possibility to ignore them (catch) > than having to use variable and put if statement everywhere I care about > errors (which pretty much means everywhere, in my current design style).

That's what you should do.

> With errors in go, that's the reverse : errors are ignored by default.

To ignore errors in Go you need to explicitly ignore them because most functions return error.

<comment><USER36> So, most functions return two things - output data and an error. You have to assign both to something, like this:

      data, err := foo()

and go forces you to use variables somehow, or it'll give you a compile time error, so you can't just assign it and never look at it.

There are some functions which only return an error, and yes, for those, you can simply not assign the result to anything. However, in general, you should be suspicious of functions that get called that don't seem to return anything. Can they really never fail?

Note that there _are_ linters which will warn you if you are ignoring errors (google errcheck, I don't have the URL handy).

Yes there's a lot of error checking code in Go, but that's a good thing. It's explicit, and it makes you actually think about the error case. My Go programs are WAY more robust than my programs from other languages.

<comment><USER34> Forcing you to think about your errors is a good point, there's nothing more painful than discovering that an exception is thrown on production.

I still feel it's getting in the way of the "Go allows you to be more productive" stance, though.

Also, it makes it very dangerous for people not rigorous enough that will not take enough care of their errors.

Granted, "it allows bad developers to do bad things" should not be an argument, but I wouldn't be surprised we hear in a few years of big fails that will be imputed to go error handling (with headlines like "Foo.com tragic fail was due to go forgetful position on handling errors").

<comment><USER36> Go is not intended to be a fast and loose "bang it out in an afternoon" language. If you're comfortable with the language, then you can be really productive in it, but that includes error handling. You have to handle errors, that's like 50% of programming.

I really doubt you'll see headlines like that. Why would you not see the same thing for code that doesn't handle exceptions in other languages? They're far more invisible than Go's errors, which are right there in the method signature.

<comment><USER34> > Go is not intended to be a fast and loose "bang it out in an afternoon" > language

I was hoping for nothing that extreme :) But this is something I have to consider. I'm cto, in my company, and the "how much time to build that feature" is something that has a very real importance when we decide what to implement.

Ruby got us into thinking of features as a weekly thing. I can justify to spend most of the week doing in go what I would have done in a day with ruby if it allows to do things we could not do in ruby or allows to scale up (and I've already done so for resource heavy background tasks that could be parallelized, actually). Doing it in C probably would have taken more than a week. That's the extent of what I mean by "productivity" in go.

> You have to handle errors, that's like 50% of programming

Well, that's the problem. That's 50% (probably less actually, but nevermind) of go programming. The hard reality is that I care for only 10% of those errors.

If a file was supposed to be transferred to a third party server and this one is down, certainly, I want to handle error, inform user about the situation and ask her to come back later.

But if something is supposed to work 100% of the time, I don't want to have to spend time writing code that would probably just never be executed just in case an unforeseen circumstance happens. I want an exception (with some exception handling system behind that notifying me about the exception, of course, which would be a one time configuration for the whole kind of those errors) and a generic error message for the user.

That's a productivity thing too.

And indeed, most of my error handling in go are :

        if err != nil { panic( err ) }

<comment><USER36> If something is supposed to work 100% of the time, it won't have an error return value. Otherwise there's a nonzero chance it'll fail. The time you spend writing a simple "network configuration file must exist" is way less than you'd spend trying to read a stack trace when your application crashes with "filenotfound: foo.json".

If Go is 1/5th as productive as Ruby to produce the same feature, either you're very new to go and very experienced with ruby, or you're doing something drastically wrong. Obviously, experience makes a difference, but Go has a very short learning curve, so you should able to get productive relatively quickly.

I honestly don't understand how you can only care about 10% of errors. You have to think about the error case, otherwise your application is going to be a crashy, data lossy mess and no will trust it.

<comment><USER34> > The time you spend writing a simple "network configuration file must exist" > is way less than you'd spend trying to read a stack trace when your > application crashes with "filenotfound: foo.json".

Well, stacktrace and enforcing meaningful message error where they are generated is fine with me, but I see what you mean. Certainly, if we were to think of custom message everywhere a problem may happen, it will be easier to debug. But does it really worth it ?

> If Go is 1/5th as productive as Ruby [...]

All assertions probably apply :) I began to learn and use ruby (even if not professionally at first) before rails was a thing, so I'm quite used to it. On the contrary, I've began to use go only a few weeks ago. It took me a week during a week off (with the slow pace it implies) to learn the language and re-implement that task I thought was a perfect fit. So yeah, that's indeed very productive, and that's what I was attracted by in the first place. I also probably have done horrible mistakes that would have make this time shorter, since I'm still learning the language.

But let not underestimate ruby here, and more importantly : its ecosystem. Certainly, if I had to use only ruby standard library, it wouldn't have been that fast. But with the help of activerecord and activesupport, things suddenly get really fast.

After learning to use database/sql, I've searched for something allowing me to save time, and switched to coocood/qbs. It helped a lot (especially on managing connection pool to postgres, since I was parallilizing queries), but of course it can't compare with something that mature than activerecord.

That's not intrinsic value of the language, but it clearly affects what it means to write a feature using the language in term of time.

> I honestly don't understand how you can only care about 10% of errors

Well, I guess it depends on what kind of software you're writing. If I were to design a public facing server app, certainly, the last thing I would like to happen would be it to panic and quit. In my previous case, I was rewriting a non-destructive data processing background job, called by cron. If it fails, cron will mail me with details and try again later ; that's perfectly fine.

But let not be mistaken on what I mean by "I care about 10% of errors". It does not mean I don't want to know there were errors the rest of the time. It means that I don't want some specially crafted logic handling it to ensure data / runtime state. Having the program interrupted and a report made with error message and stacktrace is ok most of the time (for the rare occasions when it happens). Let take some actual examples.

A table in my database has an hstore field, which represents in application what we would call in go a `map[int] int`. Except that in hstore, all is string, actually. So in my go code, I have :

        key, err := strconv.Atoi( hkey )

I can understand why this function generates error, and that's a good thing, conversion to int may fail. But in my case, I know for sure I have a numeric string. So yeah, certainly, someone may introduce a bug somewhere sometime that will put a non numeric key in the hstore. But the low degree of probability for this makes me ok to deal with a message like "can't convert 'foo' to integer" with a stacktrace showing the line number when it happens (and indeed, once again, this instruction is followed by `if err != nil { panic( err ) }`).

An other example is database query functions. They all return an error, in order to relay database errors and connection to database errors. That is fine, this is information I want. But do I really need to add chunks of logic testing for those after every single query I make ? Again, having a default "raise and die" handling, with a few chunks of logic to ensure data integrity where it's at risk (on writings, for example) would be enough.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER37> Would one be able to pick up go as a first programming language with this?

<comment><USER38> Did you even click the link? A cursory glance of the first chapter leads me to believe it's targeted toward people new to programming.

<comment><USER39> I think he's talking more about the language, rather than the book.

You can have a book on APL or Forth that starts out in the first chapter targeting people new to programming, but that does not mean the language itself is the best choice.

Regarding Golang for novice coders, I would say it is an OK choice for a beginner, probably better than starting with Java, but not a good a choice as Python.

<comment><USER40> I think this chapter is very helpful in answering this question:

[http://www.golang-book.com/2/index.htm](http://www.golang- book.com/2/index.htm)

Go's "Hello World" is not quite as complex as java, but a lot more complex than Python, in terms of number of concepts to explain.

<comment><USER41> Comparing "hello worlds" is a fairly poor way of getting an idea of how much complexity/boilerplate you can expect from a language. It's better to compare something more substantial, like quicksort implementations:

[http://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Pyt...](http://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Python)

[http://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Go](http://rosettacode.org/wiki/Sorting_algorithms/Quicksort#Go)

</comment></comment></comment></comment></comment><comment><USER42> it is awesome that the book is free online, but I find it really tough to read with no syntax highlighting ...

</comment><comment><USER43> I was briefly excited because I thought I would discover the book containing wisdom of how to program a competitive Go AI engine. (Go is an ancient board game.) Oh well.

By the way, is there a suck book?</comment>


Volko Ruhnke's Modern Wargames - <AUTHOR> http://www.shutupandsitdown.com/blog/post/interview-volko-ruhnke/

<comment><USER2> If you are curious about modern boardgaming shutupandsitdown.com has some of the best (by "best" I mean funny and entertaining) videos and blog posts on the subject, IMO. Cool seeing it on HN.

</comment><comment><USER3> >"That's a big hitch with digital games. They are inferior to physical games in showing how and why the player's inputs produced the outputs that they did. I cannot really see the model, nor access it to modify to improve to my understanding of history or the world."

Intuitively, I don't agree with this, but I'm not sure what the actual argument is. My sense is that he was making a statement about his own mentation but couching it as a statement about humanity. Rather strong bias if so.

<comment><USER4> I believe he means that in digital games the model stays hidden most of the time. You only see the inputs and outputs.

In physical games the players have to enact the model themselves by following the rules at every step. Without exact knowledge of the model, the gameplay cannot even start.

<comment><USER5> Yes. With computer games, the actual rules are almost never completely described somewhere. They must be divined by trial and error.

A good example is Hearthstone vs. Magic: The Gathering. Hearthstone has all sorts of non-intuitive edge cases and unwritten rules. M:TG needs to be fully understood by all players, so complex interactions are still resolved with a fairly simple set of rules.

</comment></comment></comment><comment> bjelkeman-again Thanks. That looks very interesting, as a tool to try to understand a complex issue. But it probably is a bit like reading the Economist. You have to be aware of the inherent biases, and even when you do you get influenced by them.

<comment><USER6> "You have to be aware of the inherent biases"

That is part of the victory conditions and gameplay of the COIN series. On one hand, you can't leave the fire in the lake game without understanding the ARVN point of view, at least not if you're even trying to win. On the other hand, you only get one fixed point of view WRT ARVN motivations and goals. Each faction has totally different victory conditions and rules. This is somewhat new in board gaming and I think the reason why has to do with computerized simulation in order to create something close to a balance.

Where "games as a simulation" usually fail is when designers try to balance too hard. Nothing could stop the German in early WWII, thats just how the world works. And that is the appeal of "walk in hitlers shoes" appeal of playing the Germans in WWII games, you get to experience the whole spectrum from utter military superiority to utter failure by the end. It can be quite a roller coaster, which in itself is the dramatic experience of the game. The native american experience vs euros post Columbus as a theme doesn't have quite the roller coaster, so thats why it doesn't work as well as a game theme.

<comment><AUTHOR> This is part of what I found interesting about Ruhnke's approach: he acknowledges his own biases and provides copious designer's notes so the player can judge how they affect the game for themselves.

I've long been of the opinion that every simulation game design is basically an argument -- a statement that "I think this slice of human experience worked this particular way." But usually the argument is only made implicitly; you have to tease it out via gameplay. I like when designers make it explicit instead by telling you up front why they made the decisions they did.</comment></comment></comment>


Bitcoin Crashes Below $400 to Lowest Level Since April - <AUTHOR> http://www.ibtimes.co.uk/bitcoin-price-crashes-below-400-lowest-level-since-april-1466260

<comment><USER2> /yawn ... buys more

<comment><AUTHOR> OP here. I too took this as a buying opportunity. $400 interestingly was a low hit around April as well. There's no rhyme nor reason to my buying other than an intuition about what "low" may mean. For me its a long term hold. If the price fell to $350 I would still hold. In fact if the price fell to $200 I would probably hold unless the whole Bitcoin system was somehow compromised and it was obviously going to $0...

<comment><USER3> That's my biggest problem with bitcoin. If someone figures out how to reverse sha256 they could just mine blocks here and there without attracting too much attention, but in reality the whole thing would be on shaky ground and truly worthless.

<comment><USER4> You should try to reverse sha256. If you can do it ill give you $100.

<comment><USER3> I am trying. There has probably never been a prize this large for solving any math or programming problem.

</comment></comment></comment></comment></comment><comment><USER5> If BTC could stop dropping and let me put my money elsewhere that'd be great!

</comment><comment><USER6> "Buying opportunity" or "loss opportunity"? It was supposed to be over $5,000 apiece already, right?

<comment><USER7> Even if an asset price decreases on the long term, you could still make a hefty profit by buying and selling at exactly the right times.

<comment><USER6> Determining the "right times" is the exact problem.</comment></comment></comment>