Show HN: Netlify – Builds, Deploys and Hosts Your Static Site or App - <AUTHOR> https://www.netlify.com/ <comment><USER2> Netlify is awesome--far and away the best option for static content that I've found, and very developer-focused.

There's a big list of pleasant surprises as you work with their platform:

* You can deploy a folder of static content quickly by just dragging it onto the browser window

* Better, you can set up continuous deployment with github and netlify will run your build command and deploy the result whenever you push to Github

* Even better, Netlify will install any needed dependencies from any Gemfile, package.json, bower.json or requirements.txt in the root of your repository, before running your build. Now you are open to a wide world of static site generators and build tools.

* There's a command line tool and a rich, well-documented API

* Clever: You can add a simple _headers file to define custom headers

* Great for migrations: a _redirects file can power some pretty complex rulesets

* Blew my mind: you can configure proxying so that external API endpoints appear to the browser to be coming from the same domain. This can greatly simplify the headaches around cross-origin resources.

* Bonus: HTTPS is supported

<comment><USER3> Thanks for sharing these points, from a quick look at the site I couldn't figure out differences with GitHub pages.

Do you know how is the CDN working across the planet?

HTTPS & proxying look great! I'm hosting HasGluten.com [1] on GitHub and HTTPS is a big missing. Also, I'm using Google spreadsheet API (instead of a database) and proxying via my domain could be cool.

I was asking about the CDN, as one of the good things of GitHub+Google spreadsheet is (free) geo-distribution.

[1] [http://github.com/hasgluten/hasgluten](http://github.com/hasgluten/hasgluten)

<comment><AUTHOR> Our CDN is global yes. Actually, when you deploy to netlify, we'll fingerprint all your assets (CSS, JS, images) and rewrite the URLs in your HTML so we can serve those straight out of Akamai's CDN with a 1 year max-age.

We run our own CDN for the actual HTML files, currently we have edge nodes in 7 datacenters around the work. This CDN is super optimized to this use case, which means you'll get a 90%+ cache hit rate on your HTML from our cache servers, while still getting instant cache invalidation whenever you push a new deploy.

This is also what allow us to do more complex things like proxying, OAuth1 request signing and pre-render support directly at the CDN level.

We currently beat all the services we run regular benchmarks again in our internal benchmarks for real user performance.

<comment><USER4> Very cool stuff - question - on the website you mention: "Those that need a CMS (major exception we know, but check in with us regularly - we are working on something huge), and those that need constant updating."

Can you give us any hint of what you're thinking about?

<comment><AUTHOR> A bit too early to drop a lot of details in public, but feel free to write me (email@example.com) and I'll be happy to share more details.

We want to solve the issue of having non technical content editors when working with static site generators, without having to rely on an external content-store (ie. content should still just be flat text files in your repository).

Right now the workflow for developers is amazing with modern static site generators. We want to make sure it's great for content-editors as well.

</comment></comment></comment></comment></comment><comment><USER5> I work at a digital agency ([http://carrot.is/](http://carrot.is/), hosted on Netlify), and Netlify has become our go to hosting solution for all our static projects. Their API is killer, but what we've fallen in love with most of all is the webhook support. That means we can use an external CMS like Wordpress or Contentful, load that data into the static site generator of choice (in our case roots: [http://roots.cx/](http://roots.cx/)), and then send a webhook to Netlify to recompile the site every time content changes.

They've also been super responsive to any issues we've had, even proactively contacting us when a build fails with a solution in hand before we even noticed. Everything gets pushed to a CDN so our sites are as fast as they can possibly be. Happy to answer any questions from a customer POV, highly recommend these guys.

<comment><USER4> Very interested in this - and thanks for the detailed write-up on your blog on how to execute the Netlify/Contentful setup. One question: a lot of pages I work on are of the format "one big page" where you've got all the content on one page, with some navigation element to get you up and down the page. Basically the pages are divided into "bands" or "sections".

When I've tried to build these with static site generators (our current favorite is hexo but I'm going to look at roots), I've found that there isn't a good way to separate out content. We end up with the content being stored in .JADE files which are definitely not content editor friendly. I haven't found anyway to deal with this in a markdown file either. So we end up with a nice solution for the developers, but a poor solution for the content editor.

Do you have any approach to this using Contentful? Do you setup sections as individual entries, or is all the content for a page a single entry?

Lastly, how do clients feel about using Contentful? Is there any concern that they might go out of business? This is the common concern I hear with using anything other than Wordpress and would love to hear how you address it.

</comment></comment><comment><USER6> This looks great, and I would like to use it, but the pricing structure is frustrating. I help maintain a couple of static websites for small businesses run by friends. Since these are real businesses, the co-branding of the free tier is not viable, and $100/year is 3-4x more than we're paying for an S3 site. Low volume, I know, but if you are interested in that slice of business, there is likely a niche of people willing to pay for free tier infrastructure + no branding, and in my case also willing to make year-long commitments.

<comment><USER7> That was my thought too. Looks great though, and I intend to load up a site to try it out.

</comment></comment><comment><USER8> Hey there, I loved the service!!

Want to kindly leave my feedback: I tried to upload using Firefox, and found that there are some friction with the uploads..

1\. was unable to upload a single file, called "index.html"; the site asked it to be zipped, or worst to switch browser (that almost made me walk away)

2\. zipped the file, and same error; was thinking _this site is broken_

3\. I created a folder, dragged the file inside, compressed and upload.. and finally it worked!

Now that I know that I need to upload a folder, it seems right .. but it took me a while to figure

just my 2 cents :)

<comment><AUTHOR> Sorry about that, should definitively improve the UI for Firefox based drag'n drop deploys.

Chrome is currently the only browser that supports dragging a whole folder directly into the browser and uploading that way (so that's why we recommend it).

We should make sure to change the copy for Firefox to make it obvious that a zipped folder is what works there...

</comment></comment><comment><USER9> How is this different from GitHub hosted source(Free), compiled by TravisCI (Free), hosted in S3($15/year), secured byand fronted by CloudFlare (Free).

This is my setup (minus CloudFlare for CDN). [http://brooksgarrett.com/blog/jekyll-github- travisci-s3/](http://brooksgarrett.com/blog/jekyll-github-travisci-s3/)

Is the value in simply abstracting away the (fairly technical) setup which would normally be a barrier for non technical businesses?

<comment><AUTHOR> Aside from a lot of technical details and extra features, caching details, performance tweaks etc, etc, the vision is the big difference.

Our big vision is to make static sites a viable mainstream alternative to Wordpress, Drupal, Joomla, etc, etc. Especially for all the people out there building sites professionally, whether they're agencies or lone freelancers.

Static sites are faster, safer, cheaper and simpler and for 90%+ of all the sites out there, they ought to be the default.

But you can't make static sites a mainstream alternative if the recipe for starting a new project is going to at least 4 different services and configure each of them, have plans with each of them, etc, etc. That's just a setup story that's so far behind just picking a Wordpress host and doing a new CPanel install that it's not even funny.

Our big goal is to make starting a new project with a static site generator just as easy as starting a new Wordpress based project. There's still some pieces of that puzzle missing, especially when it comes to collaborating with non-technical content editors, but we'll be presenting solutions to those as well.

Apart from that, typically people building sites or apps professionally have a pretty clear value put on their time, and simply having a one-click option that will setup everything and give you the best build/deploy and CDN performance, is typically easily worth the price whether they're building websites or single page apps.

<comment><USER9> I think that is a compelling narrative. I truly hope this takes off. I know several attorneys and other small shops that would value such a time saving service. The only major barrier is still getting them to design and publish the content. Solving that in the manner previous hosting companies made WordPress a one click install will be a major win.

</comment></comment></comment><comment><USER10> The copy and layout worked to get me to click through and watch the demo (which I rarely do). The UX in the demo looked great. I liked the bitbucket integration as a feature and that it was included at the same level as github.

All of that interested me enough that I clicked through to see the pricing, so great landing page. I'm not sure if I'm the customer, but it did make me wonder, so who knows.

I did notice a typo:

"Your site is then automatically build & deployed."

Should be

"Your site is then automatically built & deployed."

<comment><AUTHOR> Thanks! Fixed the typo now :)

</comment></comment><comment><USER11> This looks great. Definitely going to give this a test run this weekend.

A few questions:

* What are the advantages of having the build on Netlify's end vs. the approach used in Divshot (build locally then deploy)? (I imagine the answer is the same as why you would setup a build server for your compiled codebase - repeatable + reproducible builds, etc. Just wondering if there are other reasons I may not be aware of)

* What is the recommended workflow for setting up a beta environment and then promoting to a prod environment after testing? Would you use git branches for this?

<comment><AUTHOR> Awesome, do let us know any feedback you have once you try it out!

You can do manual deploys (both from CLI and via drag'n drop) with netlify as well, and when you're prototyping or just throwing something online quickly, that's great.

However, once you're working on a production project, it's very nice to know, that at any time what's in the master git branch actually represents the current live version of the site. When doing manual deploys, it's too easy to forget to pull/push before deploying.

Apart from that, automated deploys opens up a bunch of new possibilities. Carrot have a pretty awesome post about using netlify with contentful ([http://carrot.is/coding/static_cms](http://carrot.is/coding/static_cms)), and we're using it to automatically update [https://www.staticgen.com](https://www.staticgen.com) once a day.

For production/staging/dev envs, we recommend using branches yes. You can easily setup different sites to deploy from different branches, and the CLI tool have a -e flag as well, that makes it easy to work with different environments.

</comment></comment><comment><USER12> We have been using the Netlify service for the past few months (when it was just BitBalloon) and I must say it has been excellent. We have a handful of sites on the platform. All of them have preformed great with no issues.

The ability to host a static site with continuous deployment in less than a minute is amazing, along with all of the other great features mentioned. I'm excited to see what they produce for non technical content editing.

When setting up sites the support has been great. Mathias and the team have done a great job at building our trust.

</comment><comment><USER13> Looks quite cool but unfortunately doesn't work for my site right now since I use yuicompressor[0]

[0] [https://github.com/mjackson/yuicompressor](https://github.com/mjackson/yuicompressor)

<comment><AUTHOR> We're planning on open-sourcing the Docker image that runs our build so people can send pull requests for tools we're missing.

If you follow us on Twitter/FB/Newsletter etc, you'll get notified when we're ready for that...

<comment><USER7> How much of the stack will be open source? In the week after FoundationDB ceased to exist, there's still that nagging question of what happens when you guys get acquired. If the UI and deployment piece was open source and could be self-hosted it would make your own free and paid hosting + CDN more attractive by removing this concern, as well as open up revenue streams for supporting on-site enterprise installs.

<comment><USER14> I suppose technically the UI is already available given they give you the html/css/js in your browser (though perhaps not for redistribution, although this is a bit of thorny argument, given how the web in general deals with caching/proxies. I suppose if typekit can both give, and not give you fonts, a company can both give, and not-give you js/html/css).

Would be very nice to see this opened up with their blessing, though. Knowing that a viable self-host alternative exist, makes paying for the service (and supporting future development) a much better (and easier) business decision.

I'd liken this to Dabble DB that just disappeared when Twitter acqua-hired the team. Everyone (that wanted) got their data out, but couldn't keep their work flow -- which is a pretty expensive hit to take.

</comment></comment></comment></comment><comment><USER15> The copy on the "Why static?" page has some typos ("an developer") and off- putting remarks ("Only God gets to mess with time").

</comment><comment><USER16> Neat. I recently saw a similar service: surge.sh -- but netlify seems to be a bit more robust on the feature set. Good luck!

</comment><comment><USER17> I recently thaught about the same thing... I'd integrate a lot of jekyll's architecture (or if you're .Net based Pretzel or Sandra.Snow), use Design blocks ( eg. Startup Framework which includes the online generator in the HTML purchase) and then a hosting which can dynamicly create the static sites.

I think you're done then :)

</comment><comment><USER18> Any idea how Netlify would work with an Angular single page app? I had a site hosted on S3 and ran into SEO problems because I could only configure S3 to do a redirect instead of a rewrite. The redirect caused the googlebot to drop the part of the URL and end up at the default route.

<comment><AUTHOR> Works great with Angular SPAs. Our web UI is actually an Angular SPA hosted on Netlify and using our API.

You can easily setup a rewrite rule to serve your index.html instead of giving 404's so it works with history push state and we also just added support for integrating with services like prerender.io or brombone for SEO.

The last part is not in our docs or UI yet, but just write us and we'll get you setup...

<comment><USER18> Thanks. I have to give your service a test drive later this week.

</comment></comment></comment><comment><USER19> Any example of what the "Netlify callout" for the free hosting looks like?

<comment><AUTHOR> We haven't actually started injecting it into free sites with custom domains yet, and we're still tweaking it.

The goal is a balance between something that visible enough that for profit sites will want to pay for a subscription, but discreet enough and pretty enough that it's not a big deal for hobby projects and personal sites.

</comment></comment><comment><USER20> "Because static sites are safer, faster, cheaper & simpler".

You should really change the slogan! I don't think it reflects what you are offering.

<comment><USER21> I'm trying to think of a better slogan but can't come up with anything. What would you suggest that better reflects what netlify is offering? I'm probably too much of an engineer to cone up with good marketing copy! :)

<comment><USER22> here's a couple off the top of my head...

"Static hosting without the static"

"speedy, secure and simple"

"Home of the KISSSS principal. Keep it speedy, secure, simple and static"

"Save time and money while gaining ironclad security and speeding up your web service"</comment></comment></comment>


Remote working impact: deep dive on Microsoft's results - <AUTHOR> https://www.gitclear.com/blog/remote_working_impact_deep_dive_on_microsoft_results <comment><USER2> Recently, I switched from iOS to Android. And I was missing Apple's Continuity feature. Where I could easily make or receive phone calls on Mac, get access OTPs, messages quickly on my Mac. I noticed I was ending up landing social media or hacker-news :D spending hours every-time I picked up my phone for a call(there're a lot in this work from home situation).

And then after spending a day, going through a lot of spam! I noticed this app on App Store called "Connecton". I'm surprised why was it hard to find it.

Putting out loud, so that I can save someone's time who needs this.</comment>


Inference and Regeneration of Programs that Store and Retrieve Data [pdf] - <AUTHOR> http://people.csail.mit.edu/jiasi/pdf/MIT-CSAIL-TR-2017-006.pdf <comment><USER2> I like a lot the general idea: use the machine to explore the design space.

Here the authors start with a seed program, which exchanges data with a target server; and let the machine explore the core functionality of this server with systematically generated inputs and observed outputs.

The tool finally regenerates new code that wraps the skeleton code with boilerplate code and systematic error checking, leading to a new implementation which is more robust and secure.</comment>


The Super Desk [video] - <AUTHOR> http://devour.com/video/superdesk/

<comment><USER2> Avoid the cubicle by making everything open plan?

I was under the impression that cubicles were bad as they don't cut off distractions enough.</comment>


For Drinking Water in Drought, California Looks Warily to Sea - <AUTHOR> http://www.nytimes.com/2015/04/12/science/drinking-seawater-looks-ever-more-palatable-to-californians.html

<comment><USER2> Use solar power for desalination. It is very easy and, with some engineering work, I expect it could be made economical.

I learned to do this in the boy scouts: dug a hole, piss in the hole, put a cup in the bottom of the hole, cover the hole with a sheet of clear plastic then weight down the center of the plastic with a small stone.

The air inside the hole/plastic container will be quite a lot warmer than the outside air. Eventually water droplets will condense on the underside of the plastic then run down the slope and drip into the cup.

I can think of all kinds of ways to scale this up to industrial capacity.

Much of California is either desert or quite arid, but much of the arid area is right next to the ocean.

<comment><USER3> Direct solar desalination as you suggest has a limit of about 4 sq. meters/liter/day. (Says [http://en.wikipedia.org/wiki/Solar_desalination](http://en.wikipedia.org/wiki/Solar_desalination) ). The L.A. Department of Water and Power delivers some "545,910 acre feet of water to 694,705 accounts" ([http://sustainablecities.usc.edu/research/Chapter%203.%20LAD...](http://sustainablecities.usc.edu/research/Chapter%203.%20LADWP%2012%2019%20p.pdf) ). That's 673 million cubic meters.

To replace that water with desal would require 7E9 sq meters or 7 379 sq. km or 2849 sq. miles, or about 4x the size of the L.A. metro area. Assuming I didn't drop a few powers of 10.

There isn't the space for that in L.A. There's also pumping costs to get sea water up and through the desal system.

Reverse osmosis seems to be the way that everyone is going. Including indirect RO through solar power. Power is a lot easier to move around than water.

<comment><USER2> Thanks for the calculations.

I expect there are ways I can improve upon that though. Note that there are lots of inefficiencies in the method I described, such as the resulting fresh water being hot.

Perhaps with the use of a heat exchanger to recover the waste heat...

<comment><USER3> Yes, a solar still as you describe is highly inefficient. See [http://en.wikipedia.org/wiki/Solar_still](http://en.wikipedia.org/wiki/Solar_still) for a discussion. Among other points:

\- The system is inefficient for how much work is put into it versus the water output

\- it is advised to make a solar still to supplement another water source, such as a reverse-osmosis unit or water purification tablets

\- Similar sea water stills are included in some life raft survival kits, though manual reverse osmosis desalinators have mostly replaced them

This is a well-studied problem. The question isn't if you can improve on the design in the Boy Scout Handbook, but if you can improve upon the current state of the art.

Quoting from [http://www.researchgate.net/profile/Fawzi_Banat/publication/...](http://www.researchgate.net/profile/Fawzi_Banat/publication/222576264_Solar_thermal_desalination_technologies/links/02bfe50efbeb06ad7c000000.pdf) (linked to from the Wikipedia page on 'Solar desalination'):

> In order to evaporate 1 kg of water at a temperature of 30°C about 2.4 × 106 > J is required. Assuming an insolation of 250 W/m2, averaged over 24 h, this > energy could evaporate a maximum of 9 L/m2/day. In practice heat losses will > occur and the average daily yield which might be expected from a solar still > is 4–5 L/m2/day. Today's state-of-the-art single-effect solar stills have an > efficiency of about 30–40% [25].

You mentioned a heat exchanger. That paper goes on to say:

> Multiple-effect basin stills have two or more compartments. The condensing > surface of the lower compartment is the floor of the upper compartment. The > heat given off by the condensing vapor provides energy to vaporize the feed > water above. Multiple-effect solar desalination systems are more productive > than single effect systems due to the reuse of latent heat of condensation. > The increase in efficiency, though, must be balanced against the increase in > capital and operating costs. Efficiency is therefore greater than for a > single- basin still typically being 35% or more but the cost and complexity > are correspondingly higher.

The simulated maximum for a proposed system for this seems to be 25 L/m2/day, which is 8x better than the numbers I used. I don't know if it's been tested.

However, that paper then describes indirect solar desalination were more effective. This includes a real-world desal plant running at 6–13 L/m2/day and a simulated maximum for a proposed system of 25L/m2/day.

Hence, indirect solar seems to be the way to go, and not a direct solar still like you propose. The solar collectors can be placed on cheap land, and brought to the desal plants by the ocean edge.

All of these information is available through a web search. There's little need to handwave.</comment></comment></comment></comment>


Evidence of Covid-19 in the US from influenza-like illness data [pdf] - <AUTHOR> https://github.com/reichlab/ncov/blob/master/analyses/ili-labtest-report.pdf <comment><AUTHOR> Actual title is too long - the full title: _Looking for evidence of a high burden of COVID-19 in the United States from influenza-like illness data._</comment>


Apple Sent Two Men to My House - <AUTHOR> https://blog.vellumatlanta.com/2016/05/17/apple-sent-two-men-to-my-house-no-they-werent-assassins/ <comment><USER2> Context[0], since I didn't see a link in the article. Also, the discussion[1].

[0]: [https://blog.vellumatlanta.com/2016/05/04/apple-stole-my- mus...](https://blog.vellumatlanta.com/2016/05/04/apple-stole-my-music-no- seriously/)

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

<comment><USER3> Thanks. I think perhaps the article should link to some context...

</comment></comment><comment><USER4> This whole saga has been a pretty interested set of events, amusing to watch as a bystander who's been observing Apple for a long time while they go through many changes.

Regardless, reminds me of Eddy Cue driving over to Federighi's house late one night to report a bug[0]:

        When Cue ran into a problem installing a new build of OS X on that iMac,
        in fact, he could tell as a veteran software tester that the bug might
        be hard to reproduce, plus he was scheduled to take a trip the very
        next day. "I called Craig up, said have your guys look at it, I think it
        would be hard to re-create. He said sure, so I put the iMac in my car
        and drove it over," as in, to Federighi's house. Cue went on his
        business trip, Federighi's team fixed the problem, and Cue got his iMac
        back when he returned—kind of like a Genius Bar for the C-suite.

[0]: [http://www.macworld.com/article/3033057/ios/eddy-cue-and- cra...](http://www.macworld.com/article/3033057/ios/eddy-cue-and-craig- federighi-discuss-the-state-of-apple-software-with-john-gruber.html)

</comment><comment><USER5> It's great that this happened. It's annoying that it indicates the best way to get support from Apple is to make a prominent blog post.

<comment><USER6> "Reaching out via social" seems to be the new "can I speak to a supervisor".

True story - a month ago my credit card bill showed a mysterious $100 charge from Amazon. Phone support found the charge but couldn't figure out why it had been made, and eventually asked me to call my bank and dispute it(!!). That sounded like crazy talk, but rather than arguing I just said thanks and tweeted @amazon. Their social people referred me to someone who wound up figuring out how to cancel the charge.

<comment><USER7> My bank (NatWest) kept sending me my bank statements in Braille, even though I had opted out of paper statements completely. Six months of calling them up on the phone or going into branch; each time I was told it was sorted, only for the next month another braille statement to arrive. Complained about it on twitter and within four hours it was fixed.

They don't seem to care unless there's a chance of other people noticing.

<comment><USER8> I don't think it's malice, or at least as cynical as you make it. It might as well be as simple as the social customer service department being younger and thus not having been subject to the iron law of bureaucracy for so long. Their budget possibly comes out of marketing, not customer service, and thus isn't subject to being considered a pure cost centre. Social media is sexy, when someone from that department makes a call, they are more likely to reach someone who think it's fun to dig into an issue that when someone from the phone bank (to the extent they're encouraged or even allowed to) reaches out. Finally, both volume and S/N of social media pings are much better for many firms as long as the people contacting you through those channels tend towards being young and savvy, but that will change quickly as people catch on, and the canned "Oh I'm sorry to hear that, please call our customer service department on ...." responses that we're already starting to see will become much more prevalent.

When thinking about customer service in big companies, it's important to remember that the vast majority of calls legitimately are of the sort that only require a very simple action to be taken, and then to be disconnected as quickly as possible. However frustrating, it's not irrational hatred of customers that makes it difficult to break through that assumption when you do have a more complicated issue.

<comment><USER9> That's like telling someone upset about a cold meal not to blame the waiter because it could be the cook's fault. Who's at fault is not at issue. What's at issue is that the customer can only get problems solved when the company's reputation is at stake, which is a failure of integrity.

</comment></comment></comment></comment></comment><comment><USER10> The other day I played one of my "Jedi Mind Tricks" albums on iTunes (yes this happened in 2016, because reasons) and as each song played it disappeared from the album list. Apparently the songs were being repopulated in another album under "Army of the Pharaohs" because either iTunes (or I?) had decided to rename the artist at some point.

Probably related, possibly dated: you might want your albums from "The Dwarves" and "Dwarves" (don't judge me man) to be listed together because they are the same band and it's not my fault ITMS has it wrong but if you rename one, good old iCloud will happily download a new copy of the one you renamed.

<comment><USER11> The Dwarves. I just. I. Who. Why?

I honestly never thought I would talk to someone who would actually own and listen to their albums. Why would you do that? Are you a masochist? The 'music' is just awful, the shows are (at least they used to be) amazing.

But the 'music' is just so bad. Why do you do that to yourself?

<comment><USER10> > Why would you do that?

Nostalgia?

> Are you a masochist?

I hope not.

> The 'music' is just awful,

Some is sure but on the whole melodic/surf punk is far from the worst genre, I've heard a lot worse and I only listen to certain tracks.

Also I gave explicit instructions not to judge me, man :)

</comment></comment></comment><comment><USER12> About 20 years ago, when MASM was still for sale on the retail shelf, I called Microsoft with a problem when the help files wouldn't install (from floppy). The person on the other end showed me how to extract them manually, then later in the week I had not one, but two calls back on my answering machine following up and hoping everything was going okay with my installation and if I had any issues to please call them back. Those were the days.

<comment><USER13> Aye.

Around the same time a friend of mine sent a physical letter to Microsoft reporting some minor bug with DOS 3.x. Not a couple of months after they replied thanking for the report, confirming the bug and saying that it was now fixed. On an official letterhead with watermark, signed by a real person.

<comment><USER14> You can get that kind of support (but in email over paper) for many smalltime webapps now. Just doesn't scale well for a million customers ;)

</comment></comment></comment><comment><USER15> This was originally from an article titles "Apple stole my music", whereas iTunes deleted music from his computer.

I doubt the old Apple would have gone to so much trouble, good to see the new Apple appearing to be more concerned and open.

<comment><USER16> Probably trying to find a solution for the PR issue

</comment></comment><comment><USER17> A couple years ago, Amazon deleted _Animal Farm_ and _1984_ from customers' devices ;)

<comment><USER18> Yeah but it was intentional while this ITMS issue seems to be because of a bug.

<comment><USER17> No, Apple was deleting stuff intentionally. That's clear from the articles and cited Apple boilerplate. The bug just caused unintended deletion.

My point is that _any_ deletion is dangerous and unwarranted. If for no other reason, because it increases the risk of catastrophic bugs like this one. Sure, people should be backing up their stuff. But in this case, Apple acted like filecrypter malware. Worse, in fact, because there's no recovery key.

<comment><USER18> You don't have to tell me. I don't trust _any_ streaming service. Whatever streaming I have to do I do it from own "cloud".

</comment></comment></comment></comment><comment><USER19> The deletion thing has been known for months. Now Apple does something?

And a special version of itunes? Does nobody over there collect mp3s?

<comment><USER20> Have you ever written software? Do you know what the acronym WFM stands for? Do I cringe every time I shrug sheepishly at the person in charge of customer service? My company's software is used by millions of people and man do they run into some of the most esoteric shit that we cannot produce in the lab. Once I got lucky and my sister's off-brand Android was displaying an edge-case bug we weren't even sure was real. Side-loaded a severely over-logging build and finally found the sucker.

Special iTunes build just means it dumps logs faster than... Never mind. The images that just popped into my mind weren't where I thought that was going as I typed it.

<comment><USER21> Exactly -- the broader the user base, the more likely it is you'll run into people with really bizarre and difficult-to-replicate issues. I've seen our main product grow from nothing to an industry standard, and darned if we aren't still seeing bugs crop up that had gone undetected for years.

<comment><USER19> People have been grumbling on blogs about this for some time -- google trends for "apple music deletes library" spike for about the last year or so. Wasn't it posted on HN?

Given Apple's original, incredulous response to Vellum (see links elsewhere in this thread), its 'known issue' status, the seemingly tepid response up-until- now, and the amount of time they have had to solve this most arrogant of bugs, my money is on the their appearance being some bright-eyed PR fix. I'd bet Apple's management doesn't give a shit about your files when they compete against Apple's pay service.

Edit: and good lord people! Empathize with me long enough to think about how, possibly -- just possibly -- someone might have a different interpretation! This is about tardiness and arrogance, not an insult to engineering. Sheesh

</comment></comment></comment></comment><comment><USER22> I bet the guy turned on iCloud Music Library and hit replace.

</comment><comment><USER23> That's one way to solve edge cases I suppose.

If your assassins tell you to watch Firefly they can finish their work before Season 2. It shows there are good people everywhere.

<comment><USER20> We came within moments of buying a customer a new phone in exchange for shipping us her old phone with a non-reproducible bug. Got lucky and found the issue just prior, so sent her a little something nice for the trouble.

<comment><USER24> Compared to the cost of extra developer time, this seems like a reasonable cost solution.

</comment></comment></comment><comment><USER25> I fail to see how this is interesting

</comment><comment><USER26> I'm confused by this article. The engineers both do not dispute what their rep said on the phone, and also admit that it was not user error. But they have not said that it should not have happened.

Maybe I'm misreading? Has anybody said that this was _not_ meant to happen? They've accepted that it deleted their files, but was it a bug or not?

</comment><comment><USER27> Apple sent two engineers out to look at something that couldn't be repro'd? Super unproductive.

Sounds like solely a PR move. A good one, I think, but a little strange. Basically just "let's listen to some tunes while we score these PR points."

<comment><USER28> If paying customers are losing data and you can't reproduce locally, yeah, it's worth a few plane tickets.</comment></comment>


I Saw Gas for $1.35 Yesterday - <AUTHOR> Midwest. <comment><USER2> 83.9c here. [http://www.torontogasprices.com/](http://www.torontogasprices.com/)

</comment><comment><USER3> $2.05 nearby - lower then it's been. Western NY</comment>


Apple tells moviemakers that villains can't use iPhones, Rian Johnson says - jor-el https://arstechnica.com/tech-policy/2020/02/apple-wont-let-filmmakers-put-iphones-in-villains-hands-rian-johnson-says/ <comment><AUTHOR> By the sounds of things this is only if Apple provide the phone to the filmmakers as part of a promotional consideration. From the perspective of cultivating an image around their brand this makes sense to build this sort of clause into any contract

</comment><comment><USER2> For some reason this now really makes me hope for a James bond-esque movie where the villain specifically uses only Apple products for their nefarious schemes and is defeated by a hero wielding a pinephone and a linux computer or something.

</comment><comment><USER3> Then why give anyone an iPhone?

I find it weird that Hollywood haven't designed a generic laptop and smartphone for movies.

These items really dates a movie.

<comment><USER4> >Then why give anyone an iPhone?

Because apple paid you 1% of entire budget just for product placement.

</comment></comment><comment><USER5> I assume they all use Nokia 5110s, because what villain would risk a destructible phone?

</comment><comment><USER6> haha c'mon boys its apple</comment>


RSA Animate: "The Paradox of Choice" - <AUTHOR> http://www.democraticunderground.com/discuss/duboard.php?az=view_all&address=439x1305878 <comment><AUTHOR> For an explanation of why I didn't submit the direct link to the YouTube video, see here: <http://news.ycombinator.com/item?id=2660975>

For the actual talk, and other references, see here:

[http://www.google.com/search?hl=en&q=%22The+Paradox+of+C...](http://www.google.com/search?hl=en&q=%22The+Paradox+of+Choice%22+RSA)

</comment><comment><USER2> Don't know which one was the original but this is a very similar presentation: <http://www.youtube.com/watch?v=VO6XEQIsCoM></comment>


JSLintMate - JSLint and JSHint in TextMate. - <AUTHOR> http://rondevera.github.com/jslintmate/

<comment><USER2> I use this all the time at work. It's really helpful. It's be nice if the options had a GUI, but it's great.

</comment><comment><USER3> I prefer subtleGradient's Javascript Tools bundle, which also checks with JSLint on save: <https://github.com/subtleGradient/javascript-tools.tmbundle>

<comment><USER4> JSLintMate has two modes: JSLint/JSHint on save (command-S), and full mode (control-L for JSLint, control-shift-L for JSHint). You can use options files in both modes, which means you can share settings no matter how you want to use it.

</comment></comment><comment><USER5> I have a pep8 TextMate bundle that does the same type thing. It's cool to see all of your mistakes on save. pep8 seems a lot stricter than jsLint, both will drive you crazy

</comment><comment><USER6> i built a textmate plugin that runs your js through jsl, based on jsLint, on save: <https://github.com/sxtxixtxcxh/validate-on-save.tmbundle>

JSLintMate looks much nicer

<comment><USER7> Been using the VOS bundle for the past year & it lints much more than just js. Def worth checking out.

</comment></comment><comment><USER8> Will this work in Sublime Text as is?

<comment><USER9> Another option for Sublime: <https://github.com/fbzhong/sublime-jslint>

<comment><USER10> I use SublimeLinter with JSHint: <https://github.com/Kronuz/SublimeLinter>

<comment><USER11> And the easiest way to get setup with SublimeLinter and other packages is to use Sublime Package Control (<http://wbond.net/sublime_packages/package_control>).

Then, to install a package, you hit: 1) ctrl+shift+p 2) type "install" and select the package installation option 3) search for "SublimeLinter" and hit enter to intstall it

You're done! I've even discovered many new packages right through Package Control, such as Clipboard History.</comment></comment></comment></comment>


The Use of Knowledge in Society: F. A. Hayek / Library of Economics and Liberty - <AUTHOR> http://www.econlib.org/Library/Essays/hykKnw1.html "Any approach which in effect starts from the assumption that people's knowledge corresponds with the objective facts of the situation, systematically leaves out what is our main task to explain." <comment><AUTHOR> "Any approach which in effect starts from the assumption that people's knowledge corresponds with the objective facts of the situation systematically leaves out what is our main task to explain."</comment>


Ask HN: Should programming resumes be one page or two pages? - <AUTHOR>

I'm finishing my last year of college (graduating April 2015) and I'm updating my resume and portfolio to get ready for a full-time job search in web software development. Most advice articles I see on the Internet advise graduates to limit their resumes to one page, but this advice generally assumes the applicant is trying to get a non-technical job. Most of my friends who work in technical roles have two-page resumes, and I assume this is because the extra page is needed to accommodate a larger listing of projects, programming languages, etc. Is the assumption correct that recruiters expect two-page resumes from undergraduates for technical roles, or should I still limit myself to one page? <comment><USER2> There might be a couple of issues here. One, how old are your friends? If they've worked in industry for a while, they're going to have a lot more to put on their resumes than you. Coming out of college, even if you've interned at a different tech company every summer, I can't possibly imagine how you'd have enough experience to fill two pages.

If your friends haven't really been in the industry too long, my guess is they are like most tech-minded people and don't know really know how to write a resume, which is a subset of knowing how to communicate effectively. Many tech-minded people make the common mistake of trying to convey too much information, especially highly technical information that the hiring manager really isn't that interested in. Tech people like all the dirty details, but everyone else wants you to just get to the point.

Here's what I think you should do: write a two page resume. Now cut it down to one page. Condense ideas, cut out fluff, and really distill it to its essential elements. This will be a much more impressive document since you've put a lot more thought into saying only what you need to, and not just everything that comes to mind.

<comment><AUTHOR> That's a good point. I think it's a combination of (1) My friends in tech are, on aggregate, about 3-5 years older than me and (2) There's still the (probably misguided) advice floating around of "You should write down every language and framework you know so that your resume shows up in a keyword search!"

Your advice makes a lot of sense, I'll keep to one page. My feeling is that North American HR people generally expect one page resumes.

<comment><USER2> Your reply made me think of another issue. There is no such thing as "your resume". It's not a single document that you write once and send out to everyone. If you are applying for 100 positions, than you should write 100 resumes. Most people write a general resume which has everything on there they've ever done (which is why they need two pages), but a resume targeted to a specific position at a specific company can be much shorter.

<comment><AUTHOR> I will be customizing my resume for each company, but I'm thinking about a general version that I post on my website where I don't know who is going to download it _a priori_.

</comment></comment></comment></comment><comment><USER3> Go for a single page, unless you have some legitimate reason to have multiple pages. Many HR people will simply throw out resumes if they seem too long, and having a resume that seems 'padded' will not get you respect either.

If you have a PhD and a whole page of peer-reviewed published research, you can put that on the second page; otherwise keep to one page and assume that whoever is looking at your resume will google your name if they are interested.</comment>


Stack Overflow: The Hardware – 2016 Edition - Nick-Craver https://nickcraver.com/blog/2016/03/29/stack-overflow-the-hardware-2016-edition/ <comment><AUTHOR> You know someone is a real hardware guy when he calls backup, monitoring and logging non essential. Also a bit confused about the 2960Ss and the choice of Cisco in general. I'd never thought Stack Overflow ran on Network Equipment, what I'd describe as consumer hardware in networking.

<comment> Nick-Craver To clarify a bit: I meant they are non-essential _to serving the sites_. If they all went offline, visitors to Stack Overflow would not be aware.

<comment><AUTHOR> I thought so, but I liked your phrasing.

What I sadly don't get is the hierarchy of your routers and switches by the pictures and the lack of QSFP+ utilization as well as the amount of copper. What's the reason behind the copper sfp transceivers in the ASR-1001[0]?

[0][https://nickcraver.com/blog/content/SO-Hardware-Network- NewY...](https://nickcraver.com/blog/content/SO-Hardware-Network-NewYork- Rack.jpg)

<comment><USER2> The 2960s seem to be in the background for the management side of the network, doing ikvm and the like, therefore don't need 10 gigabits. Also, the copper in the core routers seems to be more a case of the routers still having enough bandwidth for the site, just needing more bandwidth, thus more ports aggregated. 10gig ethernet's a good amount cheaper than 10 gigs of fiber and works just as well for the short run they're doing..

</comment></comment></comment></comment><comment><USER3> This is serious Server HW porn. Thanks for sharing! Would love to know more information about your bandwidth usage, limits, etc. Also, do you have any closer idea as to how much this would cost in "cloud" services in % terms? (I'm doing general research in Bare Metal & Colocation vs Cloud pricing comparison). Thank you!

<comment> Nick-Craver I commented a bit here with the architecture post: [https://www.reddit.com/r/programming/comments/468p2m/stack_o...](https://www.reddit.com/r/programming/comments/468p2m/stack_overflow_the_architecture_2016_edition/d038yln)

But a better answer is: that price keeps changing. We now have a lot of AWS and on-prem experience in house to do a great post. We'll be doing a lot of research and proper comparisons as a huge part of that upcoming post: [https://trello.com/c/4e6TOnA7/87-on-prem-vs-aws-azure-etc- wh...](https://trello.com/c/4e6TOnA7/87-on-prem-vs-aws-azure-etc-why-the- cloud-isn-t-for-us)

</comment></comment><comment><USER4> Awesome pics; it'd be cool to see some people in them too. Thank you for all the work you're doing for Stack Overflow/Exchange, it's an amazing resource!!

</comment><comment><USER5> Quite a leap upward from the original: [https://blog.stackoverflow.com/2008/04/our-dedicated- server/](https://blog.stackoverflow.com/2008/04/our-dedicated-server/)

</comment><comment><USER6> How big is the Stack Overflow database size in disk? I assume you cache them all in RAM thus you need 700+GB of RAM?

<comment> Nick-Craver It's at 1.5TB of data and 200GB of T-Logs these days.

<comment><USER6> It would be cool to see the graph of SQL server RAM size 64GB, 128GB, 256GB, 512GB size vs client access latency.

<comment><USER7> 64GB is interesting one because it is ~6% of the total data size.

</comment></comment></comment></comment><comment><USER8> Do you have any plans to run on .NET Core? If so, how soon after it's out as RTM? Any issues with this?

<comment> Nick-Craver These plans are in flux. At a core level (heh), we nee to have libraries ported first _anyway_. So we're doing that now. Jil, StackExchange.Redis, Dapper, and Sigil are up on NuGet and core compatible today (some as pre- release). Others like Exceptional are just pending some RC2 goodness to release, and I'll be starting on MiniProfiler after that. We'll likely post other internal tools to .Net Core and start heavy testing in the RC2 time- frame.

Will we run Stack Overflow on core? Probably not for a while. I was asked exactly this in a recent On.Net interview at the 24:22 mark; you can listen here for reasoning: [https://youtu.be/DJn8-Psznsw?t=24m22s](https://youtu.be/DJn8-Psznsw?t=24m22s)

</comment></comment><comment><USER9> How are the drives used on their SQL server boxes? They have a massive NVMe drive on raid 0 with 20 sata drives in raid 10? Which drives are used for prod data? Do they run backups on the same box?

<comment> Nick-Craver In the Stack Overflow cluster, the RAID 0 NVMe contains Stack Overflow database and the SATA SSD RAID 10 holds the others (Mobile, Translations, PRIZM, and Sites).

In the Stack Exchange cluster, the RAID 0 NVMe array contains all databases except for a large log database (which I called Careers.BigStuff, because it seemed like a good idea at the time). This larger log database is much more rarely accessed and is on the 10K HDD RAID10.

We run backups on the primary for several reasons, but they are all sent off- box. We have 2 primary on-site backup servers, then those backups go offsite and to tape. Database backups are every 15 minutes with T-Logs and full backups nightly. We also run copy-only backups in the DR data center nightly as an additional backup measure.

</comment></comment><comment><USER10> Would love to see details on energy use / cost. Have you done any profiling there? Is energy cost a big deal? Is that the main reason Providence doesn't refresh continuously?

</comment><comment><USER11> Interestingly, the price of 32GB DDR3 LR-DIMMs has been falling as well. I wonder if this is due to oversupply or something else since 8Gbit DDR3 will never happen on servers.

</comment><comment><USER12> I'd love to hear more about their backups/deployment.

<comment> Nick-Craver That's coming up! Deployment is the next post in queue: [https://trello.com/c/bh4GZ30c/25-deployment](https://trello.com/c/bh4GZ30c/25-deployment)

</comment></comment><comment><USER13> This might be somewhat unrelated; Is there any reason Stack Overflow decided against deploying on something like the Open Compute Project.

<comment><USER14> Very likely because at just 6 racks of commodity (i.e. orderable without a salescritter) hardware, they don't need that density or scale.

<comment><USER15> "Don't fix what ain't broken"

<comment> Nick-Craver This, more than anything.

There's no compelling reason to invest in such a move for our situation. We're very interested in how Open Compute progresses, though.</comment></comment></comment></comment>


Rules of Makefiles - <AUTHOR> http://make.mad-scientist.net/papers/rules-of-makefiles/ <comment><USER2> Rule #3 "Life is simplest if the targets are built in the current working directory." is not clear at best, or wrong.

Pretty much any size-able project will build 'in' the source directory but create the objects somewhere else. That's what the O= parameter is when building the linux kernel for example.

Allows 'make clean' to have a single directory to delete, allows you to keep a build for gcc, clang, arm, ia64, debug, release etc etc without risking them clobbering each others.

Other than that, yes, 'modern' Makefiles that use % patterns, and most especially VPATH are a LOT simpler than the nightmare from years past. Combined with gcc -MMD to automatically create the dependencies file it becomes very simple to maintain a clean Makefile!

Add some pkg-config magic, and you really don't need autotools and stuff -- libtool can still be handy if you want 'portability' but it's pretty easy to add...</comment>


Run, Python, Run - <AUTHOR> http://hbfs.wordpress.com/2011/09/13/run-python-run/ <comment> timmy-turner RunSnakeRun is a nice tool to view the pstats data the python profiler generates. But for me, the squaremap is hard to read and does not really add any value. Also there is no way to 'watch' a pstats file, or combine many files into one. Generally I prefer working with the commandline, even for starting gui applications.

My current setup to profile a python cgi application consists of a set of scripts to mock the cgi runtime, invoke the application with cprofile and accumulate profiling data in a single pstats file. To get a grasp of the hot spots, I'm using the magnificent gprof2dot script (<http://code.google.com/p/jrfonseca/wiki/Gprof2Dot>) to generate a callgraph with profiling data (example: <http://wiki.jrfonseca.googlecode.com/git/gprof2dot.png>). Gprof2dot hides all unimportant (by default less than 1% runtime) calls and colors functions according to the time spend executing them. To view absolute numbers, I wrote a small python script to print the first view entries of a pstats file to the terminal and use that with watch (<http://linux.die.net/man/1/watch>) to keep an eye on absolute runtimes.

Overall this is a nice setup and I'm very impressed by the rich amount tools available for python, though sometimes the APIs are kind of strange to me (for example cProfile, pstats).

<comment><USER3> For profiling web requests for a WSGI app, I like to use the Scotch WSGI recorder [1], so you can set it up to record one request, do the request with your browser, then replay it over and over for profiling. (This would be equivalent to your CGI mocking, probably.)

[1] <http://darcs.idyll.org/~t/projects/scotch/doc/>

</comment></comment><comment><USER4> just to be clear - runsnakerun is a viewer that presents data from the standard python profiler package. you can use the profiler without it - <USER2> <http://docs.python.org/library/profile.html>

also, when you're using a new api, it's worth paying attention to the default arguments for functions. since .pop() has an implicit argument of -1 you shouldn't be surprised that popping from the end of an array is most efficient (this is related to the O(n^2) v O(n) issue mentioned in the article).

</comment><comment><USER5> I've been very happy with yappi: <http://code.google.com/p/yappi/> . The output is a little clunky to work with at first, but it tells you what you need to know.

</comment><comment><USER6> Since the post mentions it, can someone provide a summary of the asymptotic runtime of different python list operations? I have no idea how python lists are implemented.

<comment><USER7> They're implemented like C++ vectors or Java ArrayLists. a[x] is O(1) and so is a.append. del a[x] is O(n) unless x==-1.</comment></comment>


Ask HN: Is there a Hacker News but for general news? - <AUTHOR> Does there exist a ranking system for general news or a place to discuss news online? <comment><USER2> I hate to be flippant, but surely you've heard of Reddit? /r/news is the obvious subreddit, but there are lots of others with different topics and slightly different flavor commenting communities.

EDIT to add: Ironically, there's a subreddit dedicated to talking about alternatives to Reddit:

[https://www.reddit.com/r/RedditAlternatives/](https://www.reddit.com/r/RedditAlternatives/)

and here's a page listing alternative sites in order of Alexa ranking:

[https://www.reddit.com/r/redditalternatives/wiki/alexarankin...](https://www.reddit.com/r/redditalternatives/wiki/alexaranking)

EDIT2: and FWIW, I know that HN started as an escape from Reddit.

<comment><USER2> And PS, if you're less concerned about the content being news and more interesting in a nice community, check out MetaFilter.

[http://www.metafilter.com/](http://www.metafilter.com/)

<comment><USER3> That depends on whether or not your opinions match that of the strong hivemind that Metafilter has going. I ended up deleting my long time MF account because of that. If your comments aren't in like with the group think, expect them to get flagged and removed.

</comment></comment></comment><comment><USER4> It's not quite what you're looking for but I've been working on Tracket [0] for quite some time now.

The best way I can describe it is a mix between google news and the wayback machine. It aggregates top stories from the major news sites and groups the articles and photos together if they're related. It also creates a timeline so you can go back in time to see what the top news stories were for a given day.

[0] [http://tracket.com](http://tracket.com)

<comment><USER2> That sounds like something I've wanted for a long time: a quick way to catch up with daily news when you get hack from a week or two offline. We used to just look at the front pages of newspapers that had piled up, but online news made that hard. (I suppose a few newspaper sites may still have an image of their daily front page available, but often under a canonical URL with no indication how to see older ones. And often no live links to actual articles.)

The other thing I'm looking forward to from AI is summarization across several articles, i.e. tell me what the 3 days' worth of articles about topic X say.

<comment><USER4> That's great to hear. That's almost exactly what I'm trying to do with Tracket. Hope you like it!

</comment></comment></comment><comment><USER5> Personally, I love Fark:

[http://www.fark.com](http://www.fark.com)

Fark is meant to be links to non-news news articles, but has a large number of links to interesting articles and humorous rewritings of headlines.

I've been a Farker for 16 years.

</comment><comment><USER6> As far as I know this is the closest - Go to Reddit News and look at the "new news".

[https://www.reddit.com/r/news/new/](https://www.reddit.com/r/news/new/)</comment>


Facebook – add a PGP key on your profile and encrypt notifications - <AUTHOR> http://thenextweb.com/facebook/2015/06/01/facebook-now-lets-you-put-a-pgp-key-on-your-profile-and-uses-it-to-encrypt-notifications/

<comment><USER2> Im glad to see that Facebook is doing this. They have one of the largest user bases out there, and could do a lot to make encryption "viable" by enhancing awareness.

I will be interested to see if they put out any numbers on this. And I will be more interested to see if they start actively promoting this feature.</comment>


Show HN: Human or AI - <AUTHOR> https://humanorai.net/ <comment><USER2> Looks like these aren't cherry-picked, because some are absolutely terrifying.

[https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull...](https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull/3728.png)

[https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull...](https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull/24481.png)

[https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull...](https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull/17065.png)

[https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull...](https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull/16456.png)

[https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull...](https://s3.eu-central-1.amazonaws.com/bubble-app- pics/aifull/13660.png)

</comment><comment><USER3> At the beginning I made some mistakes because of some very convincing photos. But then my human intelligence kicked in and I improved my recognition rate dramatically. At the end, it approached 100%. Looking at the images, one recognizes immediately why AI fails to produce real fake images: because it doesn't understand a thing.

<comment><USER4> Really? Maybe I am just too bad at this. I cannot actually see most of the differences and get 2/10.

</comment></comment><comment><USER5> Is this going to be the new IQ test?</comment>


New project, Programmer.com, a Freelance marketplace - <AUTHOR>

Greetings HN, I respect the HN community and would love to hear your feedback on my freelance gig site, programmerr.com, launched last month. It's a marketplace for freelancers (programmers, designers, and writers, etc) where buyers and sellers can buy and sell small freelance gigs for $5, $10, $25, and $50.

I've been working on the site to improve the design for a nice look, please take a look at Programmerr (http://www.programmerr.com).
- Gigs for $5, $10, $25, and $50 - Integration with Paypal - Social sharing of gigs to spread the word - Users can suggest a gig to bring attention to a seller - Easy to access Order button - Gigs can be created anywhere in the world - Similar to Fiverr but more focus on popular Freelance categories

Category highlights are: Advertising Business & Accounting Data Entry Graphic Design Internet Marketing Mobile Phone Music & Audio Technology Video Web Development Website Design Writing & Content

Please leave feedback, would love to hear from you. I am always willing to learn from you in order to improve the functionality and the site as a whole   Regards, Graham
http://www.programmerr.com <comment><USER2> Seems very spam-like. If it's really for programmers, cut the other crap out. Your categories basically promote users to post stuff that most HN'ers would probably consider spam. Stop doing that.

<comment><AUTHOR> This is not spam, I am describing what my site is about which includes the categories.</comment></comment>


Tesla Rival Sets Out to Banish 160-Year-Old Lead Tech from Cars - <AUTHOR> https://upvotocracy.com/a/Tech/5e52a036bdbc8100286fbf46 <comment><USER2> Real article at [https://www.bloomberg.com/news/articles/2020-02-23/tesla- riv...](https://www.bloomberg.com/news/articles/2020-02-23/tesla-rival-sets- out-to-banish-160-year-old-lead-tech-from-cars) (Estonian firm Skeleton Technologies Group OU wants to replace lead acid batteries by supercapacitors)

</comment><comment><USER3> Please submit the original URL, not your own site's content-less page about the URL.</comment>


German network authority demands registration of XMPP client software - photon-torpedo https://twitter.com/Xabber_XMPP/status/844865634672435200 <comment> photon-torpedo Additional info: According to a German news article [1], this affects more than 100 developers/companies who provide XMPP client software. In their view, these count as "telecommunication providers". The interesting bit is that they explicitly point out part 7 of the TKG (telecommunications act) which details the telecommunication provider's duties in assisting law enforcement agencies, such as providing interfaces for targeted surveillance.

[1] [https://www.golem.de/news/meldepflicht-bundesnetzagentur- wil...](https://www.golem.de/news/meldepflicht-bundesnetzagentur-will-hundert- jabber-clients-regulieren-1703-126929.html)</comment>


History of Lisp (1979) [pdf] - <AUTHOR> http://jmc.stanford.edu/articles/lisp/lisp.pdf <comment><USER2> BTW, if you want to learn/experiment with Common Lisp on mobile, there's a new horse in town ("new" at least for iOS):

[http://cl-repl.org](http://cl-repl.org)

(Sorry for the shameless plug, wouldn't have mentioned it if it weren't both free and open source).

<comment><USER3> Looks very cool, but where is the source?

<comment><USER2> Voila! (it's under 'examples/REPL'): [https://gitlab.com/eql](https://gitlab.com/eql)

</comment></comment></comment><comment><USER4> Reposting my earlier comment [https://news.ycombinator.com/item?id=10502434](https://news.ycombinator.com/item?id=10502434) :

> Herbert Stoyan's historical work on early Lisp > [http://www.mcjones.org/dustydecks/archives/2010/07/29/185/](http://www.mcjones.org/dustydecks/archives/2010/07/29/185/) > [https://web.archive.org/web/20050617031004/http://www8.infor...](https://web.archive.org/web/20050617031004/http://www8.infor..). > is probably worth reading if one is seriously interested. (I haven't read > much of it myself yet.) McCarthy praised Stoyan's work as better than his > own 1979 HOPL paper ( [http://www- > formal.stanford.edu/jmc/history/lisp/lisp.html](http://www- > formal.stanford.edu/jmc/history/lisp/lisp.html) ): "Stoyan's reading of the > early LISP documents gives a more accurate picture than my own memories > turned out to have given." [http://www- > formal.stanford.edu/jmc/history/](http://www- > formal.stanford.edu/jmc/history/)

> (As a side-note, I'm pretty sure that the broken, Wayback-beating link to > "Lisp references according to Miller" on McCarthy's page is to this > [http://www.ai.sri.com/~delacaze/alu-site/alu/table/Lisp- > Hist...](http://www.ai.sri.com/~delacaze/alu-site/alu/table/Lisp-Hist..). > document by Kent Pitman and Brad Miller (see > [http://www.ai.sri.com/~delacaze/alu- > site/alu/table/history.h...](http://www.ai.sri.com/~delacaze/alu- > site/alu/table/history.h..). ).)

</comment><comment><USER5> I would really like to see an updated history that takes up where this left off. Highlights of the past 40 years: the formation of the Common Lisp specification, the role of Lisps in AI, Symbolics vs Lisp Machines Inc, their eventual demise in the AI winter, continued use in DSLs like Autocad and Emacs, and the small but growing resurgence in interest.

<comment><USER6> Some of it is described here: [https://ai.stanford.edu/~nilsson/QAI/qai.pdf](https://ai.stanford.edu/~nilsson/QAI/qai.pdf) (THE QUEST FOR ARTIFICIAL INTELLIGENCE - A HISTORY OF IDEAS AND ACHIEVEMENTS)

<comment><USER7> This is a really good book - I bought the Print version a few years ago.

</comment></comment></comment><comment><USER8> I remember being exposed to LISP in the late 80's after coming from Pascal and COBOL in my CS101 (C was a 200-level class.) It was such a complete mindf*ck. After learning procedural language patterns, switching to LISP uprooted everything, and in some cases the patterns were already burned in. In hindsight, I think it makes more sense to learn LISP first, and THEN procedural languages since the latter is a subset of LISP. When C++ appeared, my first thought was, "Hey, someone made C kinda act like LISP/CLOS."

</comment><comment><USER9> See also

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

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

Others?</comment>


Picocli v4.1.0 - <AUTHOR> https://github.com/remkop/picocli/releases/tag/v4.1.0 <comment><AUTHOR> this release includes a built-in `generate-completion` subcommand that end users can use to easily install Bash/ZSH completion for your application</comment>


Apple using CBP to seize Rossmanns shipment of original Macbook batteries - <AUTHOR> https://www.youtube.com/watch?v=AVL65qwBGnw <comment><USER2> Apple's repair policies are terrible for the environment, entirely anti- consumer, and violate anything close to resembling the hacker ethic. But I doubt Rossmann's claim that the CBC video was the cause for Apple's action. It was probably his work in Albany on the Right to Repair bill where he was repairing legislators and staff laptops, on site, in the lobby of the building.

</comment><comment><USER3> I'm with Rossmann.

If you look at the wider issue, EVERYTHING in the Apple ecosystem is broken. This isn't just an issue about repair. OSX is buggy. iOS is buggy. iTunes is buggy. Photos is buggy... etc etc.

The hardware used to be solid at least. I have a 12-year-old MacBook that's still running. But, my new machines don't last.

It used to be that Apple would fix stuff, so you didn't really worry about the hardware so much. But now, they'll refuse to fix things in warranty, even.

So we've arrived at a point where Apple's software doesn't work, Apple's hardware doesn't work, and Apple won't acknowledge it-- and it's all at a premium price.

</comment><comment><USER4> Would any of these right to repair bills prevent this? If not it will be quite difficult to repair devices if the parts are not made available.

<comment><USER5> I believe most of the proposed right to repair bills include a provision requiring manufacturers to provide diagnostic tools and replacement parts under "reasonable terms."

</comment></comment><comment><USER6> I find his claim dubitable at best whereas there can be real concerns from Apple's side about _possibly_ counterfeit or ill-gotten merchandise that isn't up to their standards making it into a customer's machine and ending up in a fire or something.

He should really be complaining about Apple not offering service parts from a first party /trusted source.

<comment><USER7> I find parts of his claim dubious... Specifically the Apple + CBP timing conspiracy.

However, the rest seems more than fair - Apple won't even sell the parts to authorized repair shops, nor will they repair the laptops themselves.

He believes the batteries he ordered are genuine Apple parts, and I see no reason to doubt that. Shenzhen has entire buildings filled with both genuine and fake Apple parts.

</comment></comment><comment><USER8> Apple: We refuse to sell you parts

Also Apple: These parts you imported are probably counterfeit because you didn't buy them from us

</comment><comment><USER9> CBP says that because these parts are imported through non-official channels and bear trademarks, they're most likely counterfeit. Louis says they're original.

Having your stuff taken sounds shitty but I'm not sure that's a significant problem here. The batteries were seized, not destroyed. Louis has (albeit deeply inconvenient) recourse available to get them back, but at some point, somebody is going to have to decide that these _are_ genuine, or they'll be destroyed.

This structure is in place because there _are_ floods of fake parts out there pretending to be genuine. That much should be obvious when anybody can have their phone screen replaced for a fully-branded replacement for $20.

And yes, it's the branding here that's the most obvious catch. If these were unlabelled (video comments talk about just crossing the logo out with a Sharpie), it would be a much harder thing for CBP to assume.

But yeah, these parts should all be on general sale, from Apple. And if they don't want to do it, they need to allow _their_ suppliers to supply those parts to market.

</comment><comment><USER10> Just discovered his YouTube channel today. Fantastic.

</comment><comment><USER11> Poor Rossmann getting too much attention lately.

I wouldn't be surprised if Apple tries to finish him off.

<comment><USER12> He's been sued by Apple before, and Apple failed.</comment></comment>


The untapped potential of volunteer computing - <AUTHOR> https://www.inverse.com/article/6592-the-strongest-supercomputer-on-earth-still-needs-your-laptop-to-cure-cancer <comment><USER2> The article doesn't mention what I suspect is the biggest reason for the decline in popularity - improved power management. When these projects were new they really were using computing power that would otherwise have gone to waste. Idle power consumption was very similar to power under load, so it made sense to keep your CPU busy. But now idle power is much less wasteful, and everybody participating in these projects pays for it in higher electricity bills. This is unsurprisingly less popular than helping at no additional cost.

<comment><USER3> Not to mention the move to portable electronics. Having SETI@home running may make only a minor difference in performance on a desktop, but that's precious battery life for a laptop user.

<comment><USER4> I mostly run my laptop on the power grid and many other people, too. So your argument only makes sense for people that run their laptop mostly on battery

The much worse problem is that many laptops have non-decent cooling - so if you really put them under hard workload for a longer time, you will at least hear that by the loud annoying fan or the processor will reduce its clock frequency making the laptop slower.

<comment><USER5> I am not sure if the current boinc clients do this but to gain more users they could

* run only while connected to wall power

* run while battery is 80% charged or higher (don't compete with a 0% charged battery)

* don't spin the fan (meaning throttle back and don't make the user's machine sound like a jet engine)

</comment></comment></comment></comment><comment><USER6> I'm curious about the perceived (or not!) adverse effects of running cpu heavy computations on a MacBook or phone for years? This article doesn't discuss the downsides of running something like BOINC if there are any... But that may be a real issue that shouldn't be ignored...?

<comment><USER7> That's right. A MacBook user would want to know how this daemon would affect the longevity of his or her device. My own guess is that heat cycling is more detrimental than relatively constant (but below thresholds) usage.

</comment></comment><comment><USER8> The article really should mention [http://www.gridcoin.us/](http://www.gridcoin.us/) A Crypto currency awarded for actual BOINC work units.

I was a big fan of Folding@home back in the day, but now that I have the wonderful responsibility of the electricity bill, I've stopped all work. I wonder if Gridcoin could become a suitable offset for those bills in the future?

<comment><USER9> The article does.

<comment><USER8> Wow. I completely missed it.

</comment></comment></comment><comment><USER7> >There may be a time when we think of computer power as money — Bitcoin is pushing us that way — and we give back by donating a few calculations at a time.

Actually, can't we think of a low/competitively priced resource as a donation? Why can't contributors be compensated? Not thoroughly accounting for value contributed to networks is part of the reason for decreasing employment prospects. Users are taking risk (by spending their time creating value) and uploading it without compensation.

<comment><USER4> It would already be a step into the right direction if institutes using BOINC promise to release any research papers they do (not only the ones generated using BOINC) completely (without exception) under some creative commons license. If they already do, they should advertize this fact.

In other words: Volunteering computation time just to make Elsevier/Springer/Wiley rich or volunteering computation time to an institute which also supports projects that make Elsevier/Springer/Wiley rich is something that I'm dubious about.</comment></comment>


The Cost of Indirection - <AUTHOR> https://www.joshmcguigan.com/blog/cost-of-indirection-rust/ <comment><AUTHOR> Hey HN, author here. I got curious about the performance cost of trait objects vs generics in Rust (and more broadly about the cost of dynamic vs static dispatch), so I created this series of benchmarks comparing the performance implications of various types of indirection in Rust.</comment>


Two weeks with Terraform - <AUTHOR> http://charity.wtf/2016/02/23/two-weeks-with-terraform/ <comment><USER2> Quite interesting, thanks for your findings.

FWIW, in the same vein as CloudFormation but for OpenStack, there is OpenStack HEAT which is, IMHO, quite good.

Pure speculation but perhaps the issue at hand is that Terraform is trying to act as a generic infrastructure provisioning tool across many IaaS offerings.</comment>


Ask HN: How do I get better at dinner conversations? - <AUTHOR> Recently, I invited my colleagues over for a farewell dinner and inadvertently put myself in the spot, by being asked a lot of inquisitive get-to-know-me better questions such as 1) Who among us did you feel turned out the most different from what you originally expected? 2) What are the top 5 things you'll miss about leaving this place? (Mountain View, if that helps) 3)What are the top 5 things you learnt over the course of the past year? etc.
I had either one-word responses or some very uninteresting answers and knew I was making the conversation stilted and boring. It was pretty awkward, and there came a point when I just wanted to be put out of the misery, and just be a fly in the wall, listening in on the fun conversation that the group would have, minus me.
So, to all the guys who make smalltalk seem effortless, how do you guys do it? Can this be learned? Should this be learned? <comment><USER2> It's very easy. Ask people about themselves, and follow up with more questions. Ask about things you are genuinely curious about. I've found in 95% of discussions this will do it, and perhaps the other 5% are not worth having.</comment>


Ikea Standing Desk - <AUTHOR> http://www.theverge.com/2014/10/26/7070803/ikea-hopes-its-new-motorized-standing-desk-will-get-you-out-of-your-chair

<comment><USER3> The trick to using a standing desk for long periods is having a padded wood platform to stand on. Standing on concrete or carpet on top of concrete will kill your legs in less than an hour. I have a slightly raised plywood platform with padding on top. I can stand on it all day with no problem.

</comment><comment><USER4> Does anyone here use a standing desk? He have one at our office, but after 30 minutes I get too lazy and want to sit down.

<comment><USER5> Beside my desk I have two cardboard boxes and a loose 1/2 width desk table table-top. Maybe 4 times a week I move everything on the edge of my desk and set up the two boxes and the loose desktop to make a standing desk that just happens to be the perfect height.

I've only got a laptop, a single monitor, lamp, wired keyboard, and wireless mouse, so moving all that from the low desk to top desk - and back - <USER2> takes about one or two minutes. When I do stand, I'll stay like that for usually about three to four hours.

I set up a permanent standing desk at home for about a month (cinder blocks under my desk table legs) and I really liked how easy it was to just walk up to desk and dive into work... or to step back from my desk if I got distracted or just needed to take a couple minutes because I was stuck on something. Not having to "get settled" at my desk, and not having to pull my up out of my chair made a surprisingly big difference to the experience of working.

While the physical benefits of not siting so much are very good, I was most surprised by that feeling described in the paragraph above. The way it changed my relationship to my desk and what happens there was the most remarkable thing about using a standing desk. I very much look forward to getting an electric adjustable standing desk at work.

</comment></comment><comment><USER6> I guess I don't get the need of the standing desk. Can't you just take regular mini breaks and go walk around a bit? It doesn't even need to be outside or for a long length of time. It would be healthier and cheaper than a standing desk.

<comment><USER7> The research is pretty clear. _Any_ amount of time sent standing is better than that amount of time sitting. Your muscles stay in use, your heart works more efficiently, and you burn more calories, than sitting. So no, sitting + walking breaks is not healthier than always standing.

Cost shouldn't be a factor if you really care about treating your body better. It's super easy to ad-hoc your own standing desk for free, or spend some money to get something built for standing. Remember, if you're doing it for 8+hours a day, that's 1/4 of your life. It's worth the money you spend.

<comment><USER6> Interesting. I sit, but I get up a lot and run around with the dog, etc. I wonder if standing really would make a difference in my case. I could imagine if you were working in an office all day, it might be a problem. Though I wonder if standing too much has its own troubles too. Maybe thats why the desks that easily go up/down would be nicer - that way never too much of one thing - standing or sitting.

<comment><USER8> This study[0] shows that it takes about 4 hours of complete inactivity to see a large decrease in LPL (lipoprotein lipase) in the legs. It then takes about 4 hours of low intensity activity to replenish previous levels.

Of course, then the question becomes how much low intensity activity do you need during the day to offset sitting. If you avoid sitting for 4 hours straight, do you avoid most of the bad parts? Is standing alone enough low intensity activity to keep your LPL going or do you need a treadmill desk? Could you go 3 hours sitting, 1 hour walking, repeatedly and still have good LPL levels?

The research is only clear on one thing: don't sit for 4 hours straight. It'll take 4 hours of walking around for your LPL levels to recover.

[0]: [http://www.ncbi.nlm.nih.gov/pubmed/12815182](http://www.ncbi.nlm.nih.gov/pubmed/12815182)

</comment></comment></comment></comment><comment><USER9> I was a bit surprised to see the laptop actually work.

</comment><comment><USER10> That's a lot of money for IKEA.

<comment><USER9> On the other hand, that's not a lot of money for a standing desk.</comment></comment>


Daily Bite of Python: Don't call open() with invalid mode strings - <AUTHOR> https://www.quantifiedcode.com/app/issue_class/985a8e02d1df48808e6c6ef2aef2af2f <comment><USER2> how is this at all insightful?

<comment><AUTHOR> Why would it not be insightful?

<comment><USER2> oh dear.

your comment is disingenuous.

I cannot answer why it would not be. Perhaps the link author or poster wants to generate traffic -- please ask him or her about that.

I can however answer why it is not insightful / of no value. It's not saying anything of any interest about "how to open a file in python" beyond "don't go against the instructions".

<comment><AUTHOR> You can ask me directly. We are compiling this and other insights, because we found these issues hundreds of times in the Python code we analyse. Clearly, not everyone is aware of the problem that goes along with wrong mode strings, but even if you do, you might still make a mistake when changing them during refactorings. So I think it is good to be aware. Especially for Python beginners it is a good thing to know. Sorry, if this bothered you. We maintain also a repo on GitHub where you can share any of your your insights: [https://github.com/quantifiedcode/python-anti- patterns](https://github.com/quantifiedcode/python-anti-patterns)</comment></comment></comment></comment>


Test your coding skills - <AUTHOR> http://xquizzes.com <comment><USER2> Needs a little quality control. Tried the SQL quiz #1 just to play around and there was one question with no correct answer. one with an ambigiously correct answer, and three of the questions had the phrase "-correct answer" after the correct answer.</comment>


Ask HN: What does my future employer wants? - <AUTHOR>

Hello, a bit of an intro: I'm 33 years old from Europe and worked in IT departments for at least 5 years but I was always interested into programming, therefore I decided to take a dive into it and I'm planning to produce palpable results in the months to come.
What I do want to know, however, is what would a company expect from someone like me, who doesn't have a formal CS education (yet?) and less than a year of prior programming experience (with Visual Basic). I certainly have a plan in mind that I already execute around the things I want to learn, beginning with refreshing CS fundamentals and creating web applications using Python/Django and so on but my question is about the less "technical" stuff because I can certainly just open a job board and see what are the technical requirements for a job opening I'm interested.
What I want to know is if would my motivation, determination and ability to learn and display results through a portfolio of homemade projects will be enough to convince an employer to give me an interview and an offer? And if not, is there something I can do about it? <comment><USER2> Generic reply:

When I'm recruiting I ask two questions of a candidate:

* What value do you add to my company?

* What proof do you have that you add that value?

I want to know that you will be of net benefit. To try to satisfy that you need to know what my company needs. Then you need to claim to be able to fill those needs, and finally, you need to back up those claims with evidence.

So you think you want to work for me? I do soft real-time processing of image data, extracting features, compressing the data, transmitting it, displaying it for action by operators. Show me that you can learn about these things - you won't have the explicit domain knowledge, but I want to know that you can acquire the domain knowledge, and then have the skills to do the necessary processing. Have you already read about, understood, and implemented some algorithms? Have you made small improvements to them? Have you chosen the right language for the job? And so on.

I'm unusual, so you need to remap everything I've said into the industry you're interested in.

</comment><comment><USER3> You will have to prove that you can "ship it". I suggest that you start off by picking a domain that you're interested in and building a body of work that demonstrates your ability. Be sure you pick some thing that's neither too wide nor too narrow. For e.g. picking something as broad as "web development" is too difficult - these days that involves everything from knowing semantic HTML to CSS to JavaScript to CSS to Rails.

Picking a practical "project" will help you stay motivated in learning things and you will also have the benefit of "publishing" it as something you "shipped".

Once you start feeling a little confident about the code you write, start putting your projects up on github. Also, start contributing to other projects in github (e.g. libraries you have used in your own project). There are many projects where you can easily begin by fixing small bugs. Then you can slowly learn the code base enough to contribute features.

<comment><AUTHOR> Would things like an eShop, knock-offs like game reviewing websites where a user can register to recommend and post reviews for videogames and a tumblr clone would qualify as practical?

<comment><USER3> Sure, but wouldn't it be better if it's actually used? A tumblr clone is probably too much work for an eventual ghost town. You can pick more focussed projects that solve a small problem really well - in that way, you have a chance that's actually used. For e.g. a chrome extension for something that has always bothered you.

</comment></comment></comment><comment><USER4> Your employer wants results and they want skills.

If you can back up your programming with some other sphere of knowledge science, finance, medicine, finer details of some other profession, etc. You have something additional other programmers don't - a sense of the "big picture" of whatever other skill or industry you know.</comment>


Ask HN: What do you expect from a coders profile site? - <AUTHOR>

There are several sites creating profiles for coders right now. Some are listing your open source projects, others are have a reputation system for them and others creating just fancy profiles where you can add your stuff.
I'm the co-founder of a web site that makes profiles for developers (Site not disclosed to avoid people saying I'm promoting my site).
Our profiles contain verified information. We use Open Source, Stack Overflow and your actual code (thought webhooks in github and bitbucket) to build out our profiles. We don't just list your projects, we get the code and extract some meta data from them.
Our aim is to create your profile based on what you have done and create your identity pulling information from different sources and not filling forms about what you have done.
So, my question is, as a coder what do you expect from a site like this? <comment><USER2> It sounds like you're building a solution without having a problem. You need to decide what the problem is that you're tackling before you can build a solution.

Are you trying to build something that will let people quickly share what they're working on, are you building something that will act as a bio for people giving talks, are you building an alternative for a CV ?

<comment><AUTHOR> I didn't expose the problem nor our point of view because I thought was not the point.

The problem for me, as a developer is, I don't have a place to show off all my stuff (like a developer portfolio). Online CVs are almost the same as were 10 years ago, filling forms about what you have done, so our point is to create an alternative for a CV, something automatically updated, with all the info that you care about and without all the pain off filling forms and repeat the same info again.

<comment><USER2> What are the use cases of your online CVs?

Most companies won't accept online CVs, so you'll need to have a way to convert to doc/pdf. Also CVs need to be very focused so you'll also need to allow users to curate, cut out unnecessary sections.

<comment><AUTHOR> Right now they can be used inside the page. Of course we should do a export to pdf functionality and something to pick the stuff that you want to include.

Thanks for your advice!

</comment></comment></comment></comment><comment><USER3> > We don't just list your projects, we get the code and extract some meta data > from them.

So you're cloning ohloh.com?

> as a coder what do you expect from a site like this?

Nothing really, github has done a nice job without even focusing on it.

<comment><AUTHOR> > So you're cloning ohloh.com?

Not really. We are putting together information from Open Source, like ohloh, but also from private code, linkedin and stackoverflow. We put this information in a resume/profile visual representation. Also, ohloh has been always project centric and we are focused on people.

</comment></comment><comment><USER2> <http://xkcd.com/927/></comment>


Why is it faster to process a sorted array than an unsorted array? (2012) - <AUTHOR> https://stackoverflow.com/questions/11227809/why-is-it-faster-to-process-a-sorted-array-than-an-unsorted-array <comment><USER2> I feel like we are now living in a world in which figuring about the performance of your code is almost impossible. Between hopspot compilers, bytecode, CPU intrinsics, vectorization, caches, pipelining, GC, branch prediction, etc how is one supposed to reason about his code? In whatever language I'm programming, I usually just imagine what the C would look like and make performance decisions from there.

But things are so complicated nowadays that's doesn't even come close to capturing the performance.

Is this the only way we can get good performance? Is there an alternative paradigm of optimization in hardware or software that would make performance tradeoffs more explicit? I don't know, but the current state of things makes me uneasy because I feel I never understand what's truly going on (and I definitely don't).

<comment><USER3> I don't know. In general, it's advisable to write your code first largely ignoring performance considerations, just do the simplest/most readable thing, then profile it and see where it bottlenecks.

So, that's the best general wisdom I know. Don't even bother trying to guess where you'll have performance problems. Profile it.

<comment><USER4> This just defers the optimization process by one step. It's hard to improve something without measuring it first, but either you know where your inner loop is or the profiler tells you. Now you've still got to improve that bottleneck somehow and take into account all those complicating factors.

I've seen very unexpected results doing this. In one case, I put the inner loop in a separate function to enable swapping implementations and make it simpler to time. Surprisingly, the overall program ran faster without any other changes. Just pulling the inner loop into a function of its own sped things up.

My best guess was that the compiler was willing to put more effort into optimization on the smaller function. This contradicts common wisdom about function call overhead, and it also shows another level of complexity in the problem: Some compiler optimizations are exponential in their cost, so they punt if you put too much of your code in one block or function.

Also note that I wasn't able to prove this is what happened. It's just my best guess based on what I was able to see and infer.

</comment></comment></comment><comment><USER5> I had a fun accidental optimization last week: I needed to zero out a memory buffer before calling a GnuTLS function to read in data (for security reasons - we can't be sure that the callee will fill in the full buffer and don't want to leak uninitialized memory back to the client). I wondered what the performance penalty of this would be. In fact it made the code about 5-10% faster. This is on the edge of being a measurable effect - could be random variability in the test - but it certainly surprised me that it was not slower.

The non-encrypted transport case had a similar change but there was no measurable performance difference before and after.

I'd like to know what perf stats are available to show what's going on. (I guess it's an L2 cache effect)

<comment><USER6> The zeroing was somehow priming the cache, maybe it was faster this way because all the zero writes were independent and could easily be run in parallel, whereas normal cache stalls would cause more actual stalling.

<comment><USER7> prolly a simd enhanced zero operation so very quick.

</comment></comment></comment><comment><USER8> Prior discussion: [https://news.ycombinator.com/item?id=15256543](https://news.ycombinator.com/item?id=15256543)

</comment><comment><USER9> I wonder if the microcode changes to mitigate branch prediction vulnerabilities (i.e. Spectre) affect these results in any way.

<comment><USER10> Unlikely. The microcode changes are largely about disabling indirect branch prediction--virtual functions, jump tables, function returns. The branch prediction here is generally driven by simple branch history predictors (i.e., at a fundamental level, the branch predictor boils down to "guess what the last branch did"), which are way too useful to disable even to mitigate Spectre.

</comment></comment><comment><USER11> After running the experiment (openjdk 8, linux) with some variations, I'm convinced it's a JIT optimisation and not a CPU predictive branch feature, eg. increaseing the threshold from 128 to post-16 bit, eg 100000: if (data[c] >= 128)

</comment><comment><USER12> This looks like one of those questions to which the author already knows the answer, and posts the question on an alternate account so they can get all the upvotes for their subsequent detailed explanation for the behavior of their contrived example.

<comment><USER13> You don't have to do that on StackOverflow (and other StackExchange sites). It is explicitly encouraged to answer your own questions, or put in other words: to share your knowledge in a Q&A format.

<comment><USER14> [https://stackoverflow.com/help/self- answer](https://stackoverflow.com/help/self-answer)

If you are in SO for the points, splitting them between two accounts seems lame. Remember that the question also collects points and badges!

I've never checked the user that answers to see if it's the same user that is asking, and it happened to me a couple of times that I tried to upvote my own answer.</comment></comment></comment>


Ask HN: Know of anyone using Amazon Chime? - <AUTHOR> <comment><AUTHOR> OP: There's rumors of Amazon creating a new chat app. Not long ago they created Chime. They also have remote desktop products and similar products through AWS. It all sounds cool, but I was curious if anyone has actually used it for real work/play, or knows someone that does?

</comment><comment><USER2> I use Chime all the time, but then I work for AWS :-)

</comment><comment><USER3> I've had one conversation on Amazon Chime so far. With an Amazon employee.

They had trouble figuring out how to join the call.</comment>