Is Science Just a Matter of Faith? - <AUTHOR> http://partialobjects.com/2011/04/is-science-just-a-matter-of-faith/

<comment><USER2> This is a better essay than the title suggested it would be. Although it makes an interesting point, it seems somehow incomplete to me. There's an important distinction between beliefs that can be falsified and those that can't. Science, generally, should consist mostly of the former, and even though I may "believe" a certain set of scientific experts based on their authority, I also try to hold those beliefs lightly/provisionally, and open to falsification or modification in light of new evidence.</comment>


1Password on Linux - <AUTHOR> http://www.lucianofiandesio.com/1password-in-linux <comment><USER2> I use keepassx ([https://www.keepassx.org/](https://www.keepassx.org/)). Works well and I am able to sync it with ownCloud I have on a VPS.

Also, I only use my machines to log on to services, can't bring myself to trust anyone else's machine.

For android use, I have Keepass2Droid ([https://keepass2android.codeplex.com/](https://keepass2android.codeplex.com/))

<comment><USER3> The issue with keepassx is sync conflicts.

If you modify a password on machine A and a different on on machine B, resolving the conflict requires manually exporting both to XML, manual merging, etc. It's a real pain.

<comment><USER4> Keepass 2.x handles merges for you just fine. The mono version of Keepass 2.x is ugly and a little clunky compared to KeepassX or the windows version of 2.x, but it's good enough.

</comment></comment></comment><comment><USER5> Lastpass ([http://lastpass.com/](http://lastpass.com/)) has been my holy grail of vital cross-platform apps for many years now, as I've switched from Linux to Mac and back and forth and always with the Windows. Sure, it's a browser plugin, but it works just as well with Chrome and Safari (and probably Firefox and, <gulp>, IE). Their touch-unlockable iOS app is just icing on the cake. I'm not getting a dime for this endorsement. It's just been a real lifesaver, for such an important application category (at one time, as a sysadmin, I had 650 passwords in the vault), and I never have to worry about what platform I'm running at the moment.

<comment><USER6> It's too bad that LastPass feels like a highschool project by a dude and a couple of friends.

Zero consistency between the browser plugin, the vault, the app, and the mobile app. Even within the vault there's little consistency between different panes.

I'd like to believe that they know what they're doing crypto-wise, but damn that UX feels mickey-mousey. Even something as simple as using up/down over the autocomplete list misbehaves.... ;(

... and don't get me started on Basic Auth support on Chrome OSX

<comment><USER7> Basic auth is a browser limitation. If you visit a site through the LastPass menu, it'll do the basic auth dance.

</comment></comment></comment><comment><USER8> I use Revelation ([http://revelation.olasagasti.info/](http://revelation.olasagasti.info/)). It is available on Ubuntu.

Nothing too fancy but works very well. Have been using it for many years now.

</comment><comment><USER9> I'm using pass on OS X and Linux (synced via Dropbox). It's an open source terminal based password manager and uses GPG under the hood. I don't have a mobile client, but the amount of times I've needed a password on mobile when I don't have my laptop around are far and few between.

The documentation was a bit lacking when I started, so I wrote an article with instructions:

[http://www.stackednotion.com/blog/2012/09/10/setting-up- pass...](http://www.stackednotion.com/blog/2012/09/10/setting-up-pass-on- os-x/)

<comment><USER10> Most password managers on Android are bad news bears anyhow: [http://arstechnica.com/security/2014/11/using-a-password- man...](http://arstechnica.com/security/2014/11/using-a-password-manager-on- android-it-may-be-wide-open-to-sniffing-attacks/)

<comment><USER11> I think that argument would affect many desktop password managers as well. Also, LastPass in particular supports a Firefox extension that works with Firefox mobile.

</comment></comment></comment><comment><USER12> This also exists for lastpass [https://github.com/lastpass/lastpass- cli](https://github.com/lastpass/lastpass-cli) . Very solid cli application.

<comment><USER13> This. The ability to use lastpass and pull passwords out for use in scripts, offlineimap, is really lovely.

The lastpass cli utility also supports their two factor options. So you get scriptability, ubiquity, and two factor. Killer.

</comment></comment><comment><USER14> OpenPassword's Blimey library supports read and write for the Agile Keychain format, written in Python. The GUI is still an early prototype.

[https://github.com/openpassword/blimey](https://github.com/openpassword/blimey)

</comment><comment><USER15> I'm surprised nobody mentioned [https://www.passwordmaker.org/](https://www.passwordmaker.org/). It takes a different approach, but works surprisingly well.

</comment><comment><USER16> You could run 1Password for Windows under WINE on Linux.

<comment><USER17> Does that actually work well with 1Password? In my (years-ago) experience with WINE it was hit or miss whether a given app would reliably work in it.

<comment><USER18> It worked fine for me for when I had to use Ubuntu heavily (2013-2015). Sure I didn't get the browser auto-fill, but at least I could access my database.

1Password, by far, is my favorite password manager.

</comment></comment></comment><comment><USER19> Just discovered a new password manager yesterday that I didn't have time to review (try, trust ...) : [http://enpass.io/](http://enpass.io/) It seems to be available for every platform possible. Even if I'm perfectly happy with keepassx, I'll problably give it a try for its prettier interface.

Has someone already used this one ?

<comment><USER20> I tried it on Linux and I was not impressed at all.

</comment></comment><comment><USER21> I use pwgen/grep/echo to manipulate a plaintext file on a ... encrypted filesystem. Good enough?

<comment><USER22> Sounds good enough to me, there is also Pass [1] if you want something that is just slightly more heavy weight.

[1]: [http://www.passwordstore.org/](http://www.passwordstore.org/)

<comment><USER21> Very good tool. I will take a look. (I have used my script for years, it's worth switching to a better thing.)

</comment></comment></comment><comment><USER23> I also made a Chrome extension for 1Password on Linux a while back: [https://github.com/robbiev/multipass- chrome](https://github.com/robbiev/multipass-chrome)

The native component is written in Go.

</comment><comment><USER24> Something I like with 1Password is the UX, browsers plugins works really good and with the same UI as the application. After a try, It's painful to migrate from 1Password to lastpass...

<comment><USER25> I moved from 1Password to LastPass for a few reasons not related to UX:

1\. Platform support: 1Password only supports Windows and OS X. I use more than those, and want to maintain the ability to jump between platforms at will. 2\. Pay twice for OS X and Windows. Seems extortionate. 3\. Browser support: I want to be able to try out browsers. At the time I made this decision, 1Password actually reduced the number of browsers they support.

</comment></comment><comment><USER26> No Dashlane love? [https://www.dashlane.com/](https://www.dashlane.com/)

Been using their premium service for about 2 years now, couldn't live without it.

</comment><comment><USER27> I actually run the windows latest version of 1Password under Wine on Ubuntu 14.10 and it works perfectly. I just use the app GUI, not the browser addon so I cannot comment on that.

</comment><comment> java-man I wrote this [https://github.com/andy- goryachev/PasswordSafe](https://github.com/andy-goryachev/PasswordSafe)

</comment><comment><USER28> KDE Wallet seems fine. It has integration with everything including Chrome.

</comment><comment><USER29> would be nice if there were a bookmark synching service (paid even) which works across browsers/machines etc.

<comment> mh- [http://xmarks.com/](http://xmarks.com/) is owned by LastPass

</comment></comment><comment><USER30> pass is a very good password manager.

</comment><comment><USER31> This article is the perfect example of why _not_ to use Linux on the desktop. A lot of fiddling around that eventually leads to a result that is far inferior to what you'd get just using OS X or Windows.

<comment><USER32> It can be if you want to use tools not designed for linux. I use keepass ([http://keepass.info/](http://keepass.info/)) on linux and android and find it to be equivalent to 1 Password on Mac. It is in the Fedora repos (and I assume most others) and so easy to install.

<comment><USER33> The problem I have with KeePass is that it doesn't integrate with my browser well. LastPass does marginally better (it has an extension but I'm not loving it). There's a Firefox extension for KeePass called KeeFox, but it needs KeePass to be open and running all the time, which is annoying to me because it needs an extra window.

<comment><USER34> KeePass works better is you set it up to use Auto-Type, which sends keystrokes to the window manager to type the passwords into the fields.

<comment><USER35> I've used keepass ona a daily basis. Auto type failed with my usage patterns - essentially I have multiple entry points per site (enterprise app) and each has a different titlebar text.

<comment><USER36> I've switched from OS X a few months ago and I'm actually happier with KeePassX than with 1Password. I hated AgileBits for the 4.0 bloat redesign which made everything slower (this is a constant on OS X it seems). I have a pretty simple use case with KeePassX (no sync) and here are the solutions I've found to problems mentioned in this thread. Hope they're helpful!

Hide KeePassX's window:

Just open the settings, click the first two checkboxes ("system tray icon", "minimize to tray instead of taskbar") and add `keepassx -min` to your login script. It'll ask for your password and disappear.

Title bar:

KeePassX does use the browser title bar and it's sometimes not reliable. It's easily fixable, though. Install a Greasemonkey plugin to your browser and add scripts such as this one:

// ==UserScript==
// @name Google
// @namespace google
// @include [https://accounts.google.com/*
//](https://accounts.google.com/*
//) @grant none
// ==/UserScript==
document.title += " | Google";

Browser plugin:

I like how I could type "gmail" in Alfred and have 1Password do everything for me. I was able to reproduce that with a bash script that I call from my own launcher and it works just as well, if not faster.

#!/bin/bash
nohup xdg-open "[https://example.com/"](https://example.com/") >&/dev/null &
wmctrl -a Opera
sleep 1
xte 'keydown Hyper_R' 'key dollar' 'keyup Hyper_R'

Last line simply simulates my KeePassX Auto-Type shortcut (which I got from OS X, yes).

Update:
 are newlines, can't believe it's this hard to post code snippets here.</comment></comment></comment></comment></comment></comment>


Bank economists warn of disruptive threat from mobile and crowdfunding - <AUTHOR> http://www.finextra.com/News/FullStory.aspx?newsitemid=24986&topic=internet

<comment><USER2> For now, banks continue to profit from crowdfunding. They get a percentage of each credit card transaction.

However, they could be in serious trouble if an alternative payment system becomes popular. The stage is set - NFC and Bitcoin are growing in popularity, and the federal government recently began allowing merchants to charge a credit card fee.

If a taco cost $1.50 with my smartphone, or $1.75 with my credit card, I know how I'd pay.

<comment><USER3> They already force retailers to not give discounts for using cash. If they've figured out how to make _that_ legal, why do you think BTC would be any different?

What we really need is for the justice department* to explicitly include the goal of making markets competitive in its short list of (un)official objectives.

* Or any branch of government. I mention the judicial because I think it is the branch least susceptible to bribery. Since competitive markets are bad for business, that makes it the most likely candidate to promote this kind of change.

<comment><USER4> I suspect that's more or a contractual thing than a legal thing. I know gas stations around South Florida are now advertising cash and credit prices (so my thought is---the gas companies have enough pull to get favorable terms from the credit card companies).

<comment><USER5> To date it has been contractual. However, as a result of an antitrust lawsuit, Visa and Mastercard changed the provisions that ban merchants from charging a credit card surcharge. But states are now trying to bad adding those surcharges: [http://www.cnbc.com/id/100485094](http://www.cnbc.com/id/100485094).

<comment><USER6> Funny though, if you pay your taxes with a credit card there is ALWAYS a fee for that.

</comment></comment></comment></comment></comment><comment><USER7> The easiest way for banks to deal with this disruptive threat is, of course, to make it illegal. Watch the lobbying efforts first; that's where you'll see "helpful" investor safety rules be proposed that begin the erosion of kickstart models.

<comment><USER8> The casinos did this with online poker and it worked.

<comment><USER9> On which side of the Atlantic?

<comment><USER10> On the USA side.

</comment></comment></comment></comment><comment><USER11> I've been consistently disappointed by UK retail/commercial banks' online services.

My "business" bank (Cater Allen) provides maximum 13 months electronic history. Anything else you have to call and ask nicely to pay £10 for a snail- mail printout.

Fully aware this would be a problem, I tried to do due diligence before signing up and there's nowhere to get a decent comparison, e.g. see feature matrixes and screenshots of the various offerings.

They'll spend millions on football sponsorship and inane TV ads, but none differentiate on the basis of first-class online services a la Simple. Whoever is cloning Simple, please do it fast!

<comment><USER12> What I'm really after, which doesn't feel like a hard thing for a large company to add, is a read-only api. Give me an access token and a set of endpoints to get my data out and I'll be a happy bunny, because then I can build my own tools on top.

I find it's a shame that they don't really compete on features like this. Most people still go on personal recommendations (/OH GOD AVOID THIS BANK comments from friends). Either that or who will give me a few quid a year?

</comment></comment><comment><USER13> Everyone in the comments here seems pretty pessimistic about what this is implying. I got the opposite impression--I think this report is actually very progressive, and that we should commend the economists at BBVA bank for identifying a trend so far in advance.

Most significantly, there is this quote:

>"For banks, crowdfunding poses a challenge ... However, banks should be prepared for this trend and make it work to their advantage."

Making crowdsourcing 'work to their advantage' is very different than making crowdsourcing illegal. It would be much more profitable for them to start up their own crowdsourcing platforms. That way, people deposit money into the banks interest earning accounts, AND they get a cut. Instead of 7% interest with a non-trivial chance of default (which, if you account for ~3% inflation, means their true benefit is only 4%), they get a clean 5% fee right off the top. With no risk. At all. Its free money.

This is a no-brainer for me. Banks are built to help people get the money they need to do what they would like to do. They would only stand to gain money by doing this on their own. Shutting down the whole system would be stupid, and I think the economists at BBVA would agree.

</comment><comment><USER14> Article seems to be inventing a need in the banking set for yet another crowdfunding meets YC knock-off. For them I also have a bridge for sale, low mileage and runs great.

</comment><comment><USER15> Looks like Simple[1] is perfectly positioned for the future of banking.

1\. [http://simple.com](http://simple.com)

<comment><USER16> That's complete nonsense, Simple is simply a front-end for one of the worst banks out there: [http://en.wikipedia.org/wiki/U.S._Bancorp](http://en.wikipedia.org/wiki/U.S._Bancorp)

There's a reason they're no longer called Bank Simple- because the law is very clear on what you can actually called a bank. Simple is not a bank.

<comment><USER17> They are not a front for US Bancorp. They're a front for Bancorp Bank ([http://www.thebancorp.com/](http://www.thebancorp.com/)), which is in fact a completely different and unrelated small bank.

<comment><USER16> Ah, thanks for the clarification!

</comment></comment></comment></comment><comment><USER18> > To what extent crowdfunding platforms will displace commercial banks in the > retail and small business segments remains to be seen.

If crowdfunding gives banks too much trouble, they will simply complain to governments that they are "too big to fail" and that crowdfunding websites need to be regulated to their death.

</comment><comment><USER19> BBC's Bottom Line did a podcast on alternative banking earlier this year, which might be of interest when discussing this topic. Especially about M-Pesa, which is truly disruptive in Africa.

[http://www.bbc.co.uk/programmes/b01qkmwl](http://www.bbc.co.uk/programmes/b01qkmwl)

</comment><comment><USER20> The government doesn't have to though cause it has our money anyway ( and our communications information ).

</comment><comment><USER21> Which investment has more risk? A typical market neutral hedge fund or a typical crowd-funded type start up. Obviously there are tons of idiosyncrasies, but I'm thinking on average. I noticed that I am allowed to invest in companies via crowd funding, but, since I'm not an accredited investor, I can't invest in a hedge fund. I would also venture to say that most people investing via crowd funding are not accredited investors.

</comment><comment><USER22> How are credit unions affected by mobile and crowdfunding?

<comment><USER21> I think crowd funding competes with investment banks more so than credit unions.</comment></comment>


Ask HN: Best way of learning mobile dev from a webdev background? - <AUTHOR>

Hi all, I have a webdev background (worked with python/django, C# and some php), and also at university I did some C/C++, now learning java.
What resources/books/anything would you recommend to get up to speed in mobile development, considering that I have some knowledge about web development and programming in general?
Thanks in advance :) <comment><USER2> If you know some C# and C++, my recommendation is to dive straight into the respective native SDKs (Android and iOS) and not let yourself waste time or get distracted by frameworks like Cordova or Titanium (or whatever they call it now). Cordova can be a good strategic choice for certain types of companies making certain types of apps, but if you want to learn mobile development, my opinion is that they'll just be a distraction (and I say this as someone who tried and floundered using this approach until I committed myself 100% to native SDKs).

For Android, an excellent resource are the example apps found at the CommonsWare website, who also have an accompanying book. Download these examples and start playing around with them, or use whatever approach you used to learn webdev [1].

Otherwise, Google's docs are pretty high quality.

Finally, even if you're a Vim/emacs kind of guy (like I am), I recommend using Android Studio for Android development, at least at first. It has some excellent resources for learners (like a very good autocomplete).

1\. [http://commonsware.com/Android/](http://commonsware.com/Android/)

<comment><USER3> +1 to the CommonsWare book. It's 1000s of pages of well-written reference material, and frequently updated.

If you like video learning, take a look at BitFountain and Udemy. Both have good courses on mobile development. IIRC Udacity also has one on Android development.

</comment></comment><comment><USER4> I transitioned from web development to mobile development a little over 3 years ago.

I did 3 things to prepare for the transition:

1) I completed the Stanford iOS course, including most of the assignments

2) I read the Big Nerd Ranch iOS book from cover to cover.

3) I spent about 3 months recreating dozens of interesting features / visual elements from popular apps.

I promise you, if you do these 3 things, you will be very well prepared to take a position in mobile dev.

</comment><comment><USER5> Apache Cordova is the largest project for developing mobile applications with web technologies (HTML, CSS, JS). It may be worth a look as that should be the fastest place for you to start.

<comment><AUTHOR> Thanks!

Do you have any experience on it? Do you recommend some book or diving in the docs directly?

<comment><USER5> I've dabbled but not yet had a project need it. From what I've seen, some places to start:

You mentioned C# so you've probably used at least some Visual Studio, Visual Studio 2015 has Apache Cordova templates and emulators in the default installer now. (You can also download them as an optional separate install for VS 2013.) It's interesting that the VS Android emulator (built for Hyper-V) is the fastest and best Android emulator available right now.

Also, while Cordova tries to be more browser-like than Node-like it may help to have at least passing familiarity with NodeJS. Most importantly you should know NPM (the node package manager) pretty well, as that's the main package manager for Cordova apps as well. (Also, VS helps here too as 2015 has an NPM GUI now.)

<comment><AUTHOR> I've used C# but am not on windows anymore, so Visual Studio is not an option right now.

I'm digging the Cordova docs on another tab and it looks promising for my use case.

</comment></comment></comment></comment><comment><USER6> I'm in the exactly opposite (and seemingly rare situation). I started with iOS mobile app development and now would like to move into web apps and not sure where to start. I have basic HTML and CSS knowledge. Should I learn javascript properly first (where) or learn about layouts, handling different browsers and things like that. Very sorry for being completely off-topic</comment>


Five Super Successful Tech Pivots - <AUTHOR> http://techcrunch.com/gallery/five-super-successful-tech-pivots/

<comment><USER2> Would have never guessed pinterest started out as Tote. What do they mean by low friction payments? Why not give some deals out? O well... Thoughts?</comment>


Adobe shows off Flash-to-HTML5 conversion tool.  - <AUTHOR> http://arstechnica.com/web/news/2010/10/adobe-shows-off-flash-to-html5-conversion-tool.ars

<comment><USER2> Articles like this make it seem that HTML5 aims to solve similar problems as Flash. It is less clear that it is a better solution. The primary argument against Flash is that in performs poorly, and the primary counter-argument is that Flash developers are writing inefficient code. How will HTML5 stop that from happening?</comment>


No shareholder control and Sky-high valuation – Will Snapchat IPO succeed? - <AUTHOR> https://craft.co/blog/intense-competition-slowing-growth-no-shareholder-control-and-sky-high-valuation-will-snapchat-ipo-succeed <comment><USER2> Do the alibaba shares have voting rights, it didn't stop their rocketing in value.

Yeah no rights for alibaba: [http://fortune.com/2014/09/18/alibaba-ipo- shareholders/](http://fortune.com/2014/09/18/alibaba-ipo-shareholders/)</comment>


Ask YC :What Single Sign On (Open Source) Solution you use ?? - <AUTHOR>

What Single Sign On (Open Source) Solution you use ??  I am trying to implemetn a SSO for my Web App . So far I have found JSSO and CAS . What are other good open source implementations ?? <comment><USER2> OpenID and/or Clickpass

</comment><comment><USER3> tomcat</comment>


Ask HN: How to start a business where there is competitors already? - <AUTHOR> Hi HN,
I always had this doubt. Let's say someone wants to start a business (by building a product). But he finds the solution has already being provided by some other business in the market.  In this case, how one needs to approach building his/her own product?
For example, I could able to see PayPal, Stripe, WePay etc are already in existence for payments. Does it really make sense to start a new business competing with the existing market? If so, what all things can make it a success? <comment><USER2> There is almost always a way to differentiate your product or service.

Also, for most viable products the market is almost always large enough that if you do your marketing and sales correctly and persistently, you can succeed even in competitive marketplaces.

<comment><AUTHOR> >> There is almost always a way to differentiate your product or service.

Can the _differentiate_ be in terms of pricing? For example if the competitor is charging say 80$ per month, what if my product charges say 10$ per month?

<comment><USER3> short answer: yes

      however there are many factors to consider before going that path
      * Low price start will be barrier for any future price changes or re-assesment.
      * There is quality perception attached to price so it impacts brand perception.
      * Even with price differentiation quality is something cant be compromised (in most of cases)</comment></comment></comment>


We Prefer Coding Challenges - <AUTHOR> https://gravitational.com/blog/coding-challenge <comment><USER2> Unfortunately, the idea behind coding challenges has been cargo culted into a lot of weak hiring cultures:

* The challenges often don't actually matter, and are simply part of the recruiting hazing ritual.

* They're totally subjective and just a proxy for the same bullshit friends-and-resumes process people were using already.

* No consideration is given to the amount of time the entire recruiting process is taking.

* The challenges themselves are totally divorced from the day-to-day expectations of the job, so people are doing CS102 algorithms problems for jobs that will mostly be about moving bits from one place to another.

I understand why people don't like them. But that doesn't really matter, because code challenges are _so much more effective_ at qualifying people that it would be crazy for any competent shop to stop using them.

For a couple years (and, of course, for many years before at Matasano) we've been hiring resume-blind and with almost no interviewing (we do a final on- site, but it's a formality with no tech-out, which is something we tell candidates). We calibrate our challenges so that they'd ideally, for a qualified candidate, take less time than interviews and phone screens would, and have the advantage of being scheduled at the candidate's convenience (all in one night, spread out over a couple weekends, whatever).

We have candidates coming out of our ears (volume has been the single biggest problem with our recruiting practice), and the quality of those candidates is just as good as anyone else's comparable funnel.

This is the right way to hire technical staff.

<comment><USER3> Since I have been in a position to do so, I tried to push for coding challenges, and base tech IV on the assignment itself. Your blog post about hiring has been my biggest inspiration on doing hiring. I hired 10+ people in 1.5 years this way, and I would rehire 90+% of them for most roles. I do see difficulties about practicing it though:

1\. When you don't control all the HR process, you can't guarantee that the tech assignment is the main filter.

2\. Because resume are generally so useless, if you look for a lot of people, you need to be able to review assignments very quickly. Also, to convince people to do the assignment, I make sure to have a phone call _before_ the assignment, which is time consuming since there is no filter.

3\. Writing good assignments is hard. You want something that does not take much time (half a day max), is quick to review, interesting enough for the candidate.

I have also not been able to make sure the assignment is the sole filter. I still filter at the (single, < 90 mins) tech IV. But that is at least partially because of my domain (ML engineering), where profiles are more diverse than pure software engineering.

<comment><USER2> We did a company based on this approach, and problem (1) is the main reason it failed.

</comment></comment></comment><comment><USER4> I don't do code challenges anymore. I have a full time job, I'm working on a startup on the side, I do some extra contracting, and I have an ever growing list of potentially profitable opportunities that I want to build. I would love to get paid more for my full time gig, and I should. I'm solidly a senior engineer, but I lack the title or pay. But I don't have the time to actually spend 8 hours doing some silly app. I get that it makes sense for the hiring manager to give a coding challenge, but I don't care. And the reality of our world right now is that I don't need to care. There are plenty of other companies desperate to bring on good people.

My skills give companies extreme multiples of ROI, and no other fields have nearly as ridiculous a hiring process. Have someone come onsite for a day and pay them, we can both decide if it's a decent fit. But I don't know you, your company, your team, the work process, the supporting teams, your funding, etc... honestly, one of those things are probably really awful. I'm not jumping through hoops for free. You're not google, you won't pay me $150,000+. Pass.

<comment><USER2> Spending a week doing off-and-on phone screens and then a day on-site doing an interview loop is a bigger hoop to jump through than banging out some code on your couch. But, I mean, people have all sorts of reasons not to apply to a job. Some people don't want to touch Java code. Some people don't want to work for a company in Santa Clara. You don't want to work anywhere that asks you to complete a code challenge. That's totally fine.

<comment><USER5> If I am doing a phone screen + an all day onsite, sure it sucks but at the very least I know I'm a serious enough candidate that the company is willing to burn one engineer day to evaluate me. With a coding challenge, I have no way of knowing! Maybe they sent the challenge to ten other candidates, maybe twenty, etc? I don't even know if the code will be reviewed. Make me jump through as many in person hoops as you want, I refuse to do take home coding challenges. _shrug_

<comment><USER4> I think ultimately the problem I haven't isn't that I have been assigned a problem to see my code skill. I think that's pretty fair. The problem is that it's not a great indicator if your beyond a staff level, it offloads all of the cost of finding and filtering an employee to the applicant, and like you said, it has no indication of their commitment to the code challenge while demanding an open ended commitment from the applicant.

<comment><USER6> I actually turned down a job, whose hiring manager was very excited (or desperate) to have me, after the recruiter sent me a link to a coding challenge. I felt devalued, that they didn't value my time, and I felt turned off realizing that this coding challenge was the only hurdle for engineers on that team. Note that I wasn't a fresh grad or anything, I had years of experience at this point from, what I assume was at the time, one of their big competitors.

Since the company can't make time for a potential "experienced candidate" (their words) during the hiring process, I wonder what else they can't make time for? Red flag for me.

<comment><USER7> You're in the rare camp that realized this. Thanks for doing me and everyone else in this industry a solid.

Companies won't change until this is enough of a negative signal for them.

</comment></comment></comment></comment></comment></comment><comment><USER8> I do not want to work for a company that does NOT test my technical skills; if they don't verify my skills that means they don't verify others and I'd prefer to work skilled engineers (with exceptions for entry-level or junior engineers).

Most people seem to agree that white-boarding is a poor way to judge technical skills. Coding challenges seem a good compromise, assuming they don't require more than a few hours of time.

<comment><USER9> I find as both an interviewer and an interviewee that I prefer whiteboarding.

But, it depends who you need to hire. If you need someone to just do the job. A coding challenge is fine. If you want someone who's above the rest in their CS knowledge, and problem solving skills, than a whiteboard interview is best.

Just my opinion. I have no data for this.

A whiteboard interview is pretty much a coding challenge where I can observe the candidate's methodology and their general approach to tackling problems. That's super valuable information.

From being a candidate myself, I've found that having someone watch me and being in a room with the stress and all motivates me to show my best. Whereas coding challenges I really lack the motivation and I end up rushing them, doing them last minute, and really not showing my best.

Ultimately, I think they both aren't ideal, but we don't have anything better short of an internship (and even those don't always pan out, since interns are treated differently and provided more hand holding).

In the end, it's just hard to reduce work that in practice spans multiple weeks per project, and involve all kinds of side process, to something you can test for in under a day.

<comment><USER10> > From being a candidate myself, I've found that having someone watch me and > being in a room with the stress and all motivates me to show my best. > Whereas coding challenges I really lack the motivation and I end up rushing > them, doing them last minute, and really not showing my best.

OTOH, whiteboards or live-coding under interview conditions is a great way to watch me do worse work than I did when I was less than a year out from writing my first hello world. And yeah, I'm cool & collected under normal shit's-broken pressure, or client's-pissed-off pressure, on the actual job, which is totally different.

<comment><USER11> Same, I can't code while being watched, but I can do a take home assessment. My favorites have been real world stuff like ... build x by creating your own MVC w/ x, y, and z as a base... like x router, y templating engine, etc...

<comment><USER10> Someone on here posted something about letting candidates pick an open issue on an open-source project and prep a PR for it, to go over. Easily my favorite version of a take-home assignment I've ever heard of—it's not throwaway junk or contrived bullshit, and I get to claim the PR if it gets accepted, whether or not you hire me, so while it's not paid it's also not a complete waste of my time if the job doesn't work out—but it's not repeatable the same way for every candidate (which is kind of the point? I mean selecting the issue to tackle is _part_ of the assessment, which, as long as there's a little guidance about the sort of thing that's considered good-enough so you're not entirely in the dark re: expectations, seems ideal) so a certain kind of hiring manager or interviewer will think it's necessarily crap.

<comment><USER11> That's genius. Almost sounds like something that could be it's own Startup/SaaS. A marketplace of code 'assignments' that OSS projects need done, employer can 'tag' assignments that they approve of, then you submit your work to the employer/oss project simultaneously so both can do a code review of it, if you lose the job but it gets accepted by the OSS then at least there's that. -- The employer would be the only part paying $$ for the platform, but it could be tax deductible as a 'donation' to OSS perhaps.

</comment></comment></comment></comment></comment></comment><comment><USER12> Unlike the other code-slinging gods who walk amongst us in this thread, I prefer coding challenges because I'm pretty mid-level and average and I do actually need a job. And I hate whiteboarding. No one should do whiteboarding for code.

<comment><USER10> Agreed. Make me whiteboard or live-code if you wanna make me look and feel like I've not actually had over a dozen years of productive experience designing systems and shipping code and fixing other people's broken crap, and you'd love to watch me stress out and forget how to write a damn loop so you can complain on HN about how I was clearly lying about my experience & abilities and that's why you have to make people live-code or whiteboard. Challenges are, at least, preferable to that, for sure.

</comment></comment><comment><USER13> > They have so many offers that writing code for 4-8 hours is just not going > to work for them.

Yeah, I don't typically work for free either. Are you paying candidates for this time?

"Hey, I need you to come in and stock shelves for four hours, you know, just to see if you're a hidden gem for shelf stocking"

<comment><USER14> On the other hand, I'll spend 4-8 hours on a coding challenge for free. Give me an interesting problem and why not?

I was asked to write an AWS integration tool once, and I declined to proceed with the interview process, because I didn't feel like spending hours learning the Amazon API and re-learning a language with a useful library (I've since come to appreciate Python and Boto3, even if I'd rather be Erlanging).

It also wasn't a sufficiently interesting problem to make the time worthwhile.

<comment><USER2> Which, for the right job, can be a perfect example of the system working: the firm wants to hire someone super comfortable with AWS, for that person, the tool might just take 30 minutes to bang out, and so it works as a filter.

</comment></comment></comment><comment><USER15> I've passed through a screening procedure recently that consisted of three steps:

1) They asked for some publicly available samples of my code «I'm proud of». Okay, I prepared three samples from different areas with detailed descriptions and comments, explaining what that code did and why it was good.

2) After that, as a coding challenge, they asked me to write a simple app using the Unsplash API.

3) Finally we had an over an hour long interview during which I was again given three simple coding problems.

And then they rejected me. The question I have after all that is do you really need a multi-staged procedure like that to determine a candidate is not a good fit?! When exactly did they decide I wouldn't fit? If that was after step 1 or 2, why didn't they stop right there? If that was only after step 3, then what's the purpose of steps 1 and 2? They don't mean anything if step 3 can just cancel them out. Then why didn't they start with step 3 not to waste my and their time?

</comment><comment><USER16> I've posted on here before about when I'm in a hiring role how I prefer to do code challenges. I enjoy doing BYOC challenges.

Let a candidate pick a ticket from an open source project and come in to pair on it (or shoulder surf if uncomfortable with pairing). I don't see the issue until the day we are pairing. Goal is to let them be the expert and as comfortable as possible.

They get some code on their GitHub, open source benefits, and I get a peak into their engineering skills.

If you're thinking, "hey that's not apples to apples," well people aren't fucking apples.

I had someone come in once that didn't have an "issue." She had been working with a library that had poor docs and wanted to work through the library and document it. THAT! That was an awesome experience. Best engineer? I had no idea. Willing to bang her head against a wall to make the experience better for others. Yes. Fuck yes, get on my team.

</comment><comment><USER17> Coding challenges as your barrier to entry are an optimization for a certain type of employee - low demand workers who don't have the leverage to by-pass who start hiring funnels that start with coding challenges and recruiter calls.

You may be gaining access to hidden gems, but you're definitely turning away proven and experienced developers from even entering your hiring funnel.

It all depends on what type of employee you're wanting to hire.

<comment><USER18> Author here. Even seasoned developers have to go onsite and spend 1-2 days doing interview.

In this scenario, we are asking for similar amount of time, but with no travel, time that works for everyone and has low stress with an interesting task folks can review beforehand.

Besides, before even going through this challenge, any engineer can make up their own mind whether it's worth for them because we present compensation brackets upfront on the call.

<comment><USER19> > Even seasoned developers have to go onsite and spend 1-2 days doing > interview.

No, they don't. Like most people that champion these types of nonsense "code challenge" interviews you present a false dichotomy of "you have to either torture someone in person for multiple days, or torture them with a bullshit made up test for hours!"

You can talk to them for a while over the phone (or video chat), split up over a few days, and get to know them just fine.

<comment><USER2> Yes, this much is true: in weak hiring cultures, which are very common, people get their friends (or people with dazzling resumes) hired without any real rigor. What's more, in that culture, it's straightforward to generate a dazzling resume: you "fail up", because it takes longer to get fired (or for it to become clear that it's time to get a new job) than it does to get enough time on the job to look good on a resume.

<comment><USER19> I really don't think this issue is as widespread as commonly held, and I think it is used to perpetuate the horrible hiring culture that is common in our industry.

I think it's perfectly reasonable to hire people based on resume, references, and conversation. If they can't handle the job once hired then they should be let go.

I do not think that the idea that all candidates are complete idiots unless they can be "proven" to be good engineers (by faked tests that rarely cover the actual job requirements but do have a way of discriminating against those who don't enjoy brainteasers, didn't go to college, or are older) is good or healthy.

<comment><USER10> I wanna know who the people are who can talk confidently and intelligently about the details, decisions, and purposes in the systems, technologies, and workflows they've worked with or built, to essentially arbitrary depth, but can't actually do the job, and also actually manage to hold down jobs without huge gaps in their work history. I find it hard to believe there are so many of them that it's worth defending against. Smooth talkers exist, sure, but c'mon, they can handle a friendly but detailed discussion about stuff on their résumé but can't write code? God, learning to write code would be easier than prepping for that kind of thing _without_ actually knowing how to do the work, surely.

<comment><USER2> Serious question: have you done much hiring? Because this was a huge component of my lived experience as a hiring manager since the late 1990s, and every hiring manager I've talked with directly since has had similar experiences. If you do a lot of hiring, and you're honestly surprised that there are people who do really well in interviews and turn out not to be good hires, I'm curious to hear more about your experience.

<comment><USER10> Yeah, both as just another part of larger hiring panels and in tech lead roles with the biggest say in who gets in. Maybe I've been rejecting people who'd be fine and am committing the same sin but it _seems_ pretty easy to get a sense of "this person has been working 5 years but is incredibly junior and barely understands the stuff they're working with" or "this person has been working 5 years and really knows their shit" from like 20 minutes of conversation, and I've not seen a true bullshitter get through hiring despite a lack of heavy, time-intensive tech-challenge-based interviews anywhere I've worked. Closest we had one place was a really easy screening project, which we didn't make anyone not-obviously-junior bother with, and I bet a few minutes on the phone with the right person could have replaced that with no real harm to the process.

I have, however, on two occasions probably _personally_ convinced someone they had dodged a bullet by passing on me when I bombed that sort of quizzy interview—they were, I am entirely confident given the job descriptions, my work history, and actual feedback I've received from managers and peers, quite wrong, but I bet they were _very sure_ I was useless and nowhere near being fit for the job.

[EDIT] I guess I should add that I have a history of not realizing that something I'm good at is not actually easy or obvious to others, so possibly I'm just unusually awesome at assessing developer suitability through conversation—I really doubt it, but maybe that's what's going on. I've also not found a way to make this fit with any sort of "we ask everyone the same set of questions because we want spreadsheets at the end" process, as you've got to tailor the interview to both the position and to the candidate, as presented on their résumé and related material. So if you want spreadsheets and quantifiable-everything then I'm not sure how you match that up with my preferred style.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> I get why companies like them, and there is nothing wrong with them. The truth is that I probably don't want the job enough to actually do it. It takes time away from my family, and my friends and most of the time, it's not that stellar of a place to work anyway. If I'm desperate for a job, I could feasibly see doing it, or if I thought it was a really amazing opportunity. The truth is that I'm probably not going to be in either of those positions. What really does irk me is when a company says you have to do it before they'll even talk to me. I'm definitely not going to spend several hours on something without even knowing anything about the company.

<comment><USER21> The asymmetric time investment required from candidates is what bothers me the most about these coding challenges.

My personal experience has been that it's a lopsided process with the candidate putting in hours of unpaid work and the company spending one, maybe two engineering hours if we're being generous, reviewing the submission.

If the reviewer decides to reject the challenge, the loop closes, HR sends a nice e-mail, and the candidate has nothing to show for it.

</comment></comment><comment><USER22> Another one of those, huh?

The only way to find out what kind of salary is possible is to ask for numbers that get rejected a few times. Additionally, there are many companies out there, with a surprising variety of job parameters. Finally, many people are not good or comfortable with the application process, so you need to practice.

This means you have to apply to many companies and have to have many job interviews. Long, multi-round interview processes and take-home assignments - reasonable or not - make this very difficult and expensive for the employee.

These regular company blogposts seem to respond to the pushback of applicants and try and establish this kind of application process as a norm. Unfortunately this would decrease the market transparency for employees even more - many people go through their working lives underpaid and in subobtimal working conditions without knowing any better. This procedure also feels asymetric - in a time where software people are supposedly in demand, it's the employee who is supposed to jump through hoops to get a job.

<comment><USER2> If you reached out at Latacora and asked "is there any way you'd be able to pay $X" before you did any of our challenges, we'd get you a quick, straight answer. Why wouldn't we? If you're outside the ballpark for us, working to recruit you isn't a good use of our time.

</comment></comment><comment><USER23> The process outlined in the article shows respect for candidates in many ways, but especially by providing _feedback_. I have no problem going through an in- depth interview process, because I can always look at it as a learning experience, but it can be very frustrating to go through a process and then not receive feedback, positive or negative, on your performance. I understand that all employers are busy, engineers' time is valuable, and that often communication is managed by HR people who don't have in-depth knowledge of the reasoning behind decision-making, but I think that making constructive feedback an expectation for the hiring process would improve the experience for candidates manifold, and ultimately would result in less arbitrariness in hiring decisions.

</comment><comment><USER24> I didn't see "pay candidates for their time" as a section even though I saw several mentions of how invested the company was (CEO commenting on PRs, team investment).

Saying "We will pay you to do this exercise" is a simple (and cheap!) way to show you value candidate's time.

</comment><comment><USER25> > "I've been hiring people for 10 years, and I still swear by a simple rule: > If someone doesn't send a thank-you email, don't hire them."

I was contacted by a recruiter a short while ago asking my availability for a phone screen- and I replied simply with my availability. The recruiter still hasn't gotten back to me, and I think that it may be because I didn't go out of my way to thank them for reaching out to me.

Are all of the niceties in your email inbox really that important to people? It seems pretty manufactured and boilerplate when people send me emails that they "hope find me well".

I may just have to get over it and start letting people know how "excited I am to speak with you and learn more about this opportunity!"

<comment><USER26> Yes. They're not testing your knowledge of etiquette, people skills, or friendliness though. They're looking for a more basic and far more widely applicable skill: following best practices. If you were configuring Apache for the first time, wouldn't you google for a list of do's and don'ts and spend a few minutes implementing the low-hanging fruit? Not doing that puts you at a huge risk of leaving a huge security hole or massive performance hit, right? It would be amateurish, and if a problem occurred because you didn't take even a few minutes to do the most basic and widely known stuff, you would have no excuse.

Likewise, while nobody really cares about thank you emails, _not_ doing that suggests you didn't even bother to Google "Interview Tips" and implement the ones that took less than a few minutes. That's not a good signal to send to people that are going to have to rely on your professionalism and quality of work for the next few years.

<comment><USER23> This would make sense except that the job isn't interviewing for jobs. You shouldn't hold people to the expectation that they're going to approach communicating with recruiters in the same way they would approach actual work they were actually getting paid for. This is a great way to filter good candidates out based on something that has nothing to do with the work you are hiring for.

<comment><USER25> This doesn't just have nothing to do with the work you are hiring for, this is testing for something that's actually a negative trait in your work.

Technical writing should be as concise and clear as possible

</comment></comment></comment></comment><comment><USER27> This seems got some negative review.

Let me shared my experience.

Alexander is fantastic as an interviewer and co-worker. I was interview by ALEXANDER a few years ago. I ended up not getting an offer. It was my fault.

The challenge is the hardest thing I have to research on my own to implement because google found no result for me at the time. I learned a lot when working on his challenge and the idea of being able to solve it is more imporant than passing to interview to me.

The way they conduct interview is really great. You are given help by their team.

All I can say is Gravitational takes hiring to their heart and setup for success of candidate.

TO Alex, I'm Vinh if you remember me :-).

<comment><USER18> Hey Vinh, thank you for the kind words and I'm glad that you got a positive experience with our challenge and the process!

</comment></comment><comment><USER28> > _Split your code submission using pull requests and give the team an > opportunity to review the PRs_

> _Not communicating. Candidates who submitted all the code to master branch, > which does not give us the ability to provide feedback on the various > implementation phases. Because we are a distributed team, structured > communication is critical to us._

how do you ask your candidate to split your answer using PR ? We would like this during interviewing but it ends up being a single PR. I dont want to impose create separate branches and a PR for each small incremental feature thing.

I'm assuming you are using Github

<comment><USER18> Good question! We usually recommend to submit a fully complete logical part, e.g. auth middleware, client, server. We recommend against submitting incomplete functionality in a PR because it is hard for our interview team to understand whether it's incomplete or complete and has defects.

<comment><USER28> so would each complete logical part be a separate branch with its PR ? and then branch from the previous branch to create the next PR?

I'm just wondering if you found there to be any cognitive overhead here.

</comment></comment></comment><comment> pickle-wizard My current job had a coding challenge and I felt they handled it pretty well.

It was done one site as part of the interview process. It was related to the work I'd be doing, however it wasn't super complicated. They expected that you'd be able to finish it in about 30 minutes, but you had as much time as you needed. I finished it in about 20 minutes. Since it was over lunch time, they bought me lunch. I figure lunch for 20 minutes of work was a fair reimbursement.

</comment><comment><USER16> They're bull's excrement, this industry's interview process is broken and arbitrary.

I don't know if we'll ever fix it, but code challenges certainly aren't the answer.

I've been developing professionally for 20 years.

I take about 4 interviews a year when _not_ looking for a job to stay practiced. Held DoE, Staff, and Principle roles.

Anecdotal evidence from this year:

\- given a decent sized MVC app with bugs and missing features. Tasked to green the test suite. PR comment from a pretty established engineer was "this is perfect, I wouldnt change anything." I used 1 of my 4 hours and thought my work was poor

\- given a "simple"[1] sort and map/reduce a large log file and didn't finish after 2 hours because the interviewer kept interrupting to ask me about the details of how internals of the language and GC worked - things I was familiar with, but I can't focus on code and answering questions at the same time. I was ranked as "junior" and not a fit for the role, cute.

This last one rolls up into one of the problems I have (and assume others have) in interviews: "work through the problem as you would, but talk out loud about your process"

If I'm talking, I'm not in my zone. Let me shut the fuck up and solve the problem and we can talk about it afterwards.

[1] "simply" parse this 500k line CSV file and aggregate some results, no dependencies. CSV file was actually a STDOUT log file that multiple containers were writing to with different formats, JSON, CSV, TSV, SSV, and random ass unstructured logs from a prod system.

</comment><comment><USER29> I do not mind a coding challenge in the hiring process if it is the last step, not the first step.

</comment><comment><USER30> I'll only do these if 1) company pays me or 2) I'm exceptionally interested and think the comp will justify it. (ie. Almost never.) Spending several hours on something that might not even get reviewed - no thanks.

</comment><comment><USER31> Great article, although 4-8 hours is clearly _way_ too long. 2 hours is much more reasonable.

</comment><comment><USER32> Coding challanges are used pretty often to scam programmers to do work for free before the company rejects them.

<comment><USER33> I don't believe this actually happens. Do you have any concrete examples?

<comment><USER34> There's this infamous company from Austin, Texas, which hires programmers for remote work, and they typically give you coding "challenges" that require a week to complete, and are complete (although not very complex) applications.</comment></comment></comment>


The Robots Have Descended on Trump Country - <AUTHOR> https://www.nytimes.com/2018/12/13/opinion/robots-trump-country-jobs.html <comment><USER2> Putting aside the "what makes Trump supporters so special" questions what really needs to accompany automation the most is educational reforms and funding - the work is condensed and more complex by definition but effectively means superhuman capabilities per person. That will be the future just as basic high school was needed for more factory work when the apprenticeship model broke down for many tasks and the roles were specialized and transient.

Another good use of the surplus labor less ammenable to retraining is infrastructural upgrades that aren't as readily automatable.

I also wonder about automation proliferation - when it will start to appear more at small business scale or if scaling will keep things centralized more.</comment>


Why You Should Let Users Define Your App - <AUTHOR> http://www.readwriteweb.com/archives/let_users_define_your_app.php

<comment><USER2> Reminds me of a college campus which did a major construction project for which the architects never included sidewalks because they didn't want to try to predict usage. They waited 6 months and laid the sidewalks over the well worn paths in the grass. Brilliant.

<comment><USER3> I believe I saw photos of that college green in "How Buildings Learn" Highly recommended - brilliant book about construction and architecture that applies fully to software development. Basic premise: If you don't build the right infrastructure/architecture, you will have to tear down to rebuild/remodel. All the copies I've lended out have been only returned to me years later.</comment></comment>


Fast Sparse ConvNets - <AUTHOR> https://arxiv.org/abs/1911.09723 <comment><USER2> TLDR; Make 1x1 convolutions sparse, write fast Sparse Matrix Multiplication kernels, get a nearly 2x speedup with smaller models.</comment>


Jobs Marketplace HireArt Wants To Help You Find A Job At An Education Startup - <AUTHOR> http://techcrunch.com/2013/04/08/resume-killing-jobs-marketplace-hireart-wants-to-help-you-find-a-job-at-an-education-startup/

<comment><USER2> Here's a link with a listing of companies, locations, deadlines, and some other information - <https://www.hireart.com/edchallenge> . I find it interesting that there isn't a work-from-home option.

</comment><comment><USER3> HireArt seems like such a neat idea so I went through the registration process and said Business Development is an area I am interested in for fun, and I was taken to a page where it tells me that I will now "be asked four questions about Biz Dev And Sales. Some require a short video response, and others text."

I'm guessing the point of something like this is so that people aren't preparing for the normal, mundane questions that typically come up in job interviews but I do think it would be nice if there were a bit more details, especially considering 'some [questions] require a short video response'. I'm currently sitting in bed and my voice probably still sounds like I just woke up so a video response from me would not be very attractive to employers.

Questions like "Do I only get one chance to respond to the questions? Or can I have multiple video responses?" should be at least addressed at this point so people like me aren't going in blind and have potentially-awful videos. There is no need to prep anyone on the question material, just some basic info.

Again, great idea...just thought I'd give some feedback...Cheers!

<comment><AUTHOR> Hey, this is Elli (Co-Founder). Awesome feedback -- really appreciate it. I think you're totally right that we should give you a heads up of what's going to happen before you start. Most people have never done this type of thing before.

Quick q for you: Do you think you would have wanted to know everything from the start (before you even did anything on our site)? Or do you think it's enough to have a modle that explains once you're about to start the interview?

To answer your question: \- You get as many chances as you want to re-record \- You can pause and come back later

Thanks again for your helpful feedback

<comment><USER2> "Do you think you would have wanted to know everything from the start (before you even did anything on our site)?" - Yes.

For what it's worth, I'm interested, but not sufficiently interested to sign- up for yet another account until I get "enough" information ("enough" being like porn - I know it when I see it).

-

"Can I choose which companies I am shown to? We'll show your profile to all participating employers. If you aren't comfortable with that, please email us at email@example.com and let us know which companies you're interested in." (<https://www.hireart.com/edchallenge>)

I am selective about companies that I apply to work for. The thought of having to send an email, instead of just having check-boxes next to each company that I'm interested in, is an extra, unnecessary step.

\- Edited for clarity

</comment></comment></comment><comment><USER4> This is an amazing startup, and a great idea.

</comment><comment><USER5> Setting it up as a competition is a neat idea. Although every job application is basically a competition!

</comment><comment><USER6> This is awesome.</comment>


List of Free EBooks to Learn JavaScript - <AUTHOR> https://medium.mybridge.co/the-most-useful-free-ebooks-for-web-developers-3854767ee52f#.sbviff8qf <comment><USER2> Not only JavaScript, looks like there is some CSS and HTML stuff there too. Regardless, looks like a very good list.</comment>


'Doom' at 20 - <AUTHOR> http://www.theverge.com/2013/12/10/5195508/doom-20th-anniversary-retrospective <comment><USER2> I can't tell you how many times I played through the demo, which I believe I got in a kids-targeted-cereal box (CHEX?) I still go back every ~three years and play it again. It's Timeless.</comment>


Evidence suggests microplastics in water pose 'minimal health risk' - <AUTHOR> https://www.bbc.com/news/health-49430038 <comment><USER2> I think we're all getting comfortable with the idea that humans are now regularly ingesting and breathing microplastic particulate matter, AND that we're not dying from the chemical accumulation of these particles.

But that doesn't negate what marine biologists are pointing out with more urgency: that at the smallest end of the food chain, these particulates are being mistaken as food, with consequences yet unknown.

More: [https://www.nationalgeographic.com/magazine/2019/05/micropla...](https://www.nationalgeographic.com/magazine/2019/05/microplastics- impact-on-fish-shown-in-pictures/)

<comment><USER3> In other news plastics often mimic estrogen and sperm count down all over the world drastically. Plastics need to be simply banned or highly regulated, and we should also worry about nano particles invading our environment uncontrollably. We have alternatives and the massive corporations that peddle most of the food and drink around the world is more than capable of affording to switch to better alternatives even if it costs them some of their profit.

<comment><USER4> nah, they would pass on the cost to the consumer. The consumer would go for the cheaper product which would be the manufacturer that uses plastic. So it would need to be enforced by regulation.

</comment></comment></comment><comment><USER5> It's hard to believe that. The cancer rates in wildlife have been increasing for a reason, and it can only be explained by pollution in general (not micro- plastics in particular).

The problem is not the microplastics themselves, but the fact that plastic is a very effective sponge for absorbing all sorts of persistent pollutants.

It's even used to collect pollutant samples, due to its huge absorption properties. It can't be good that's for sure, and in many cases, it's being overused.

I'm all for forbidding the use of plastic in many common use cases. My local supermarket sells packs of 4 peaches in a plastic container, wrapped in a plastic sheet.

I always have to take the trash out after grocery shopping, due to all the discarded packages, come on it's ridiculous.

<comment><USER6> Yes, some packaging seems ridiculous but so is food waste. People typically won't consume good that doesn't look appealing, such as bruised peaches in your example. My wife and I started using Imperfect Produce, and we've been fairly pleased with it as it seems to address both problems.

<comment><USER7> Fruit that doesn't look appealing can be (and is) made into juice which people are perfectly happy to drink (and other products like that). Isn't that a better solution?

<comment><USER8> depends what stage of distribution you catch "unappealing" fruit. if a peach gets bruised on the last mile of shipment to Walmart, it's probably not economic to juice it in the store or ship it back it.

also the supply of unattractive fruit probably exceeds demand for most kinds of fruit juice. most people I know only buy orange, apple, grape, or cranberry juice.

<comment><USER9> Add marmalade and other typed of conserves and deserts.

</comment></comment></comment></comment></comment><comment><USER10> [https://www.lunduniversity.lu.se/article/brain-damage-in- fis...](https://www.lunduniversity.lu.se/article/brain-damage-in-fish- affected-by-plastic-nanoparticles)

Minimal health risk...

<comment><USER11> Humans are not fish.

<comment><USER12> Quick reminder that even though we are not fish, it is an important part of the food chain.

<comment><USER11> The OP is about the health affects of microplastics on humans.

<comment><USER12> Those which will eventually get to us because we eat fish, you mean?

</comment></comment></comment></comment></comment><comment><USER13> Better question: are we willing to risk it just because some who-know-how- much-p-hacked study said so?

<comment><USER14> to play devil's advocate, yes. people expose themselves voluntarily to significantly more direct and harmful pollution every year by moving into urban areas. The economic trade-off of eliminating all the goods that these plastics are part of would probably find little acceptance

</comment></comment><comment><USER15> I think it depends on the source and the quantity "consumed", dihydrogen monoxide is also harmless in moderate quantities, but extremely dangerous if it's not sourced properly or "overused" or if a person has an exposure longer than 5 min while submerged.

</comment><comment><USER16> ... to humans. directly.

EDIT: (because i don't want to offer a second chance): are you guys that are down-voting me (a few already) not aware of Schopenhauer?

There is clear evidence of impact in the environment from microplastics.

</comment><comment><AUTHOR> Personally I think that in the coming decades we'll find out that something that made our life "easier" also brought us higher cancer rates, autism, diabetes etc etc. Life is a trade-off, but as time goes we'll have to choose the lesser evil. Oh, and I am not rushing to buy early studies...time will tell.

<comment><USER17> Autism rates are stable, and only appear to be increasing due to better diagnosis. Cancer rates are increasing due to people living longer and cancer being more common the older you are. Diabetes is up due to obesity being up.

<comment><USER18> > Autism rates are stable, and only appear to be increasing due to better > diagnosis.

Citation?

"Several large studies have suggested that autism rates have risen steadily in the last 20 years, but this new report suggests that rates may be leveling off. The ADDM Network's estimated rates also plateaued between 2010 and 2012 (after increasing roughly 123% between 2002 and 2010), but then jumped 30% from 2012 to 2014."

The paper goes on to mention both measurement and environmental factors as potential causes.

<comment><USER19> > _Citation?_

I'll refer you to the discussion on Wikipedia [1], which is fairly exhaustive. The long and the short of it is that we don't know for certain either way, and all estimates have large uncertainties attached. However, the (tentative) prevalent opinion amongst experts can be fairly summarised as "The reported increase is largely attributable to changes in diagnostic practices, referral patterns, availability of services, age at diagnosis, and public awareness". However, it also needs to be said that "largely" here refers to the effect size: _most_ of the increase is probably not due to actually increased incidence. But _some_ of it probably is.

[1] [https://en.wikipedia.org/wiki/Epidemiology_of_autism#Changes...](https://en.wikipedia.org/wiki/Epidemiology_of_autism#Changes_with_time)

<comment><USER20> >> But some of it probably is.

So basically you concede the original point then. That environmental factors may be increasing autism rates.

<comment><USER19> > _So basically you concede the original point then._

I'm not "conceding" anything because I'm not arguing against it (I didn't write the grandparent comment). My comment is intended to provide all the relevant information, not argue against the comment I replied to.

</comment></comment></comment></comment></comment></comment><comment><USER21> How effectively we can seperate microplastics?

Yesterday I was playing around with some PTFE nanopowder and mixed it with achohol and applied it on my mountain bike chain.

I am wondering if I throw this powder in river, are water cleaning units able to remove nano particles from the water? Not that I am going to do this, just curious.

<comment><USER22> If your filter is fine enough, sure. But then you force higher energy costs to clean the water.

"Not that I am going to do this," Sure, but eventually you'll wash your chain, and reapply the powder. So the particles end up in the river anyway.

If you're interested, read up on how PTFE is produced. Specifically the case in WV and Ohio with DuPont's precursor PTFE plant.

<comment><USER21> Unfortunately you are right. But what can be done? There are dry PTFE lubricants available in market and they work so well compared to traditional Grease in dusty environment that I don't see people giving up these.

<comment><USER23> Try spray wax. Works amazing on my motorcycle chains, and doesnt fling off or collect tons of dirt.

That said, motor oil with a brush, wipe it off, ignore dirt between oilings was shown to be the best for motorcycle chains, not sure about sprockets.</comment></comment></comment></comment>


Tofu – Meaningful Code Editing - <AUTHOR> https://gregoor.github.io/tofu/ <comment><USER2> If you are writing a code editor you need to watch coders other than yourself.

Enter adding new lines at the end of a line for instance. Have you never broken a compound conditional into a nested block? How about line wrapping three arguments because you're about to add a fourth?</comment>


What stack would you recommend for a simple web/mobile app? - <AUTHOR> I would like to build a simple app for a local poker room. It doesn't have to do much, just list a tournament schedule, cash tables, promotions and restaurant menu. I'll use Django for the backend but have no idea which frontend I should use. I'd like to optimize for easiness to learn and sharing as much as possible between the web / android / ios versions.
The mobile version would work fine as a simple encapsulation of the website so would Cordova be better or do you recommend learning React Native?
I have zero experience with either web or mobile and am willing to learn whatever I need (already familiar with C/C++/Python and non-web backend development).
I ask because I don't like to waste time learning frameworks just for the sake of it. <comment><USER2> If you'll use Django for the back-end, why not just build the whole thing with Django and render everything server side? Just make the web version mobile- friendly so you don't need apps. You can still wrap in Cordova, or have people add the web site shortcut to their mobile launcher.

If you need any truly interactive elements, you can add a bit of javascript directly in the Django templates, without needing a framework.

Thinking about it more: why do you need Django at all? It sounds like you're just presenting static information?

<comment><AUTHOR> Static information that changes.. cash tables need to be updated 30 minutes or so, tournament schedules less often but still do change

<comment><USER2> If it were me, then I'd consider using mostly HTML with a bit of vanilla JS for the front end, and serve the dynamic parts in a lightweight way. Either a Flask API or, if you don't need any authentication, put the data in Google Sheets and serve from there: [https://coderwall.com/p/duapqq/use-a-google- spreadsheet-as-y...](https://coderwall.com/p/duapqq/use-a-google-spreadsheet- as-your-json-backend)

</comment></comment></comment><comment><USER3> For a simple app, cordova and react native would be overkill. Just think for a moment whether you really need a mobile app.

Unless you are going to do a lot of client side interaction on the mobile like ordering, i'd recommend you to create a simple website. Use foundation or bootstrap to create a simple, responsive website.

If you really feel that you requirements can change over time towards more heavy interactivity, use django to create a json api that would be consumed by a responsive react based frontend exclusively using ajax calls (Look to reddit's mobile site for an example). This allows you to scale to native mobile apps if the need arises in the future.

Since you have zero experience with web and mobile, jumping head first into react native and cordova and mobile would be a big folly. Make and ship a regular, responsive website first before even thinking about mobile apps. Shipping out small but working apps and improving on them is better that spending months on an all encompassing platform that only exists on paper.

</comment><comment><USER4> Based on your main point, no experience, I have two suggestions: React/React Native for the framework approach, or something lighter: Simple HTML, CSS, and JavaScript. My background: .NET dev by day, Cordova dev by night.

React/RN and Ionic would be my top framework suggestions. With React, you have to learn their specific UI syntax/JSX, then React Native syntax. With Ionic, you need to learn Angular and TypeScript, as well as their specific UI syntax.

Another idea would be to start with simple HTML/CSS/JavaScript. These are the building blocks of the web and I've seen others struggle immensely when they don't take the time to learn them properly. This is what I did with my apps, currently using Knockout.js (two way binding is amazing), KendoUI Core (easy cross-platform UIs), and PhoneGap Build (cloud service to create native apps from web code). Incidentally, my Pluralsight course launches in a few minutes - [http://www.pluralsight.com/courses/phonegap-build- fundamenta...](http://www.pluralsight.com/courses/phonegap-build-fundamentals) \- and is exactly meant for beginners to get their feet wet before diving into the more complex frameworks.

<comment><AUTHOR> You say you're a Cordova dev but you would still rather recommend React/RN over it? Could you elaborate please?

I think I'd be better suited doing vanilla HTML/CSS/JS since I dabbled in those a while ago and it's very easy to learn them again.

Looking forward to your course !

<comment><USER4> Ah sure, sorry about that! I meant to elaborate but got distracted haha. Up until now, I've used plain web tech... but will be switching to React Native or Ionic soon. They both offer so much: rich UIs, native plugins, and more. So what I meant by my comments is, unfortunately I can't give more feedback on RN, but given its rising popularity it would be a safe time investment. I do stand by my comment that you could begin with vanilla web, then move to a more complex framework when you grow to that point. Thanks for the kind comment about the course, too!

</comment></comment></comment><comment><USER5> React and React Native (web/mobile and native ios & android).</comment>


People Mean Two Different Things by "MVP" - <AUTHOR> https://medium.com/@karti/people-mean-two-different-things-by-mvp-51a75d1c77da <comment><USER3> I think it's a pointless bike shedding exercise to discuss which of your shipping versions was the MVP. I note your mentor is from Google - <USER2> notorious for keeping things in beta long after it's shipped to millions of users, and killing off viable products because they measure success in billions of users.

MVP is about optimising the risk of your investment of effort and money in a new product. It's not a lagging indicator given by external usage. It's a decision you make about readiness to launch.

Don't waste time waiting for someone else to tell you that the third version after launch was your MVP. Make the hard decisions about whether you need more design work before launch. After launch, focus on feedback and product fit. Don't spend time asking "is our already shipping product MVP yet?"

(Of course at scale, there are decisions to be made about launching into new markets, integration into other products, how much to spend on marketing, lining up partnerships. All of which may in fact be determined by success to date. But for the product you describe, these are very separate to the MVP conversation you need to have)

<comment><AUTHOR> Thanks for joining the discussion.

It's not about looking back at earlier versions that have shipped and trying to classify them, nor is it about asking someone else. Rather, when there's a disagreement as to whether we can launch what we have, with one side saying, "It's fine to launch, it's an MVP after all" and the other side saying "No it's not at MVP quality yet", take a step back and remember that both sides may mean different things by MVP, as the post says.

</comment></comment><comment><USER4> To me, the MVP is the minimum demoable product. If it's running, solving a problem and getting feedback, it's viable.

The idea is to get something out the door and iterating on that. That started at 0.1.</comment>


How to Build a Stronger Memory - <AUTHOR> https://hbr.org/2020/06/how-to-build-a-stronger-memory <comment><USER2> Actually I read an article once who makes this quote from your article a bit wrong: "The research says that when people rely on devices to remember things, they often fail to actually learn them". In that article I read it was explaining that your memory doesn't store well information you know you can find easily (not only phone) but will on the other end store much better the ones you'll have trouble finding again.</comment>


A Rising Dollar Lifts the U.S. but Adds to the Crisis Abroad  - <AUTHOR> http://www.nytimes.com/2009/03/09/business/09dollar.html?_r=1&hp

<comment><USER2> Interesting article. Thanks.

What I find fascinating is that the Dollar is not being shorted. At this point, everyone knows the US is no longer AAA, and interest rates are effectively zero. In a normal setting, the dollar would drop like a stone. It hasn't yet for the reason the article mentions, but it's pretty clear it will -- and soon. So to me, this seems to be an opportunity of a lifetime, to short the dollar with gold, silver, Singapore Dollars, etc. Am I crazy?

<comment><USER3> > So to me, this seems to be an opportunity of a lifetime, to short the dollar > with gold, silver, Singapore Dollars, etc. Am I crazy?

Shorting the dollar only works if you can find something that will hold its value better.

It's not enough that the US system have problems, you can't make money unless you shift to a system will less problems.

I note that the Euro economies are taking an even larger hit. So much for their "superior regulation"....

</comment></comment><comment><USER4> All I really read in here is that China is pumping money in to the US, so the US is safe.

Because of this the dollar is obviously the safest bet for investments, creating a spiralling effect. This leaves other currencies somewhat less attractive.</comment>


OpenBSD backdoor claims: bugs found during code audit - <AUTHOR> http://www.itwire.com/opinion-and-analysis/open-sauce/43995-openbsd-backdoor-claims-code-audit-begins <comment><USER2> _If the claims made by Perry are found to be in any way true, then the project's reputation would take a big hit._

And yet, based on how this is being handled I find myself respecting OpenBSD even more.

</comment><comment><USER3> The discussion for this is mostly here:

<http://news.ycombinator.com/item?id=2014004>

<comment><USER4> Err, the bug fixed 8 years doesn't count as one of the two bugs fixed this week.

[http://marc.info/?l=openbsd- cvs&m=129245633605693&w=...](http://marc.info/?l=openbsd- cvs&m=129245633605693&w=2)

[http://marc.info/?l=openbsd- cvs&m=129245816907800&w=...](http://marc.info/?l=openbsd- cvs&m=129245816907800&w=2)

<comment><USER3> Ok. But:

* The former fix is somewhat theoretical. Back around 2003-2004, there was a Bellare paper that proposed an attack on SSH based on its use of "chained IVs", where the IV of packet N is the last ciphertext of packet N-1. This reveals the IV of the next packet to attackers (ciphertext is public) _before_ the packet is encrypted; it is OK for IVs to be public, but not OK for them to be predictable, or else attackers can use a chosen-plaintext attack to make guesses about packet contents. Angelos got rid of this construction back then, and this fix makes the rest of OpenBSD's crypto consistent with the fix. Interesting, but certainly not a crypto backdoor.

* The latter fix isn't a security flaw; they forgot to bump a constant and so a for() loop wouldn't be able to find an item in a list.

<comment><USER3> Never mind. I wrote the exploit code for that vulnerability. It's awesome. It's still definitely not a crypto backdoor (it lets you run dictionary attacks against crypto blocks in a CBC message stream, which is terrible, but not exactly an FBI-friendly feature addition), but it's not theoretical.

</comment></comment></comment></comment><comment><USER5> one of them being:

[http://marc.info/?l=openbsd- cvs&m=129245633605693&w=...](http://marc.info/?l=openbsd- cvs&m=129245633605693&w=2)

i'm not sure what the other one is.

</comment><comment><USER6> Pretty weird that they don't link to the emails confirming that bugs were found.</comment>


UptimeZone – Uptime, SEO, and Vulnerability monitors for your website - <AUTHOR> https://uptimezone.com <comment><USER2> Very easy to setup. Nice interface. Great idea to combine uptime and security checks in one app.

Congrats guys!</comment>


Email: The Variable Reinforcement Machine - <AUTHOR> http://www.codinghorror.com/blog/archives/001302.html

<comment><USER2> I don't seem to have the massive problem with email that some people do.

Stuff arrives in, I deal with it, or get on with what I was doing.

If I want to arrange to meet a group of friends then multi-way email is by far the best way of doing it.

If I want to exchange documents at work, email does it perfectly well (until we get a CMS going).

It's not the only medium, but it's one that has many uses, and I'm not planning on quitting it any time soon.

</comment><comment><USER3> His heart is in the right place, but I'm not so sure he needed to say "Stop. Sending. Email". Perhaps "Stop Automatically Checking Your Email" would be a better choice, since that's basically the recommendation at the end of the article.

At my place, we've got the following formula: email + Dropbox + blog + campfire + website system (based on Markdown) + damn phones.

I highly recommend Dropbox for sharing files, and the blog + campfire handles the "broadcasts". The website is for documentation. All of these things are free and easy to set up.

I could do less with the damn phones, actually. :) Most of the calls I get would be better asked by composing a good mail rather than "oh, hm, you know?"

</comment><comment><AUTHOR> I'm glad Atwood wrote a well thought out article, instead of the brief rehashes we had been seeing. I suspect the shorter articles are a result of StackOverflow DevDays coming up

</comment><comment><USER4> I deal with email. I don't consider email a burden, but rather a blessing. I have more friends I correspond with regularly with email than I would have if I wrote postal letters.

I like the reminder that research has shown that variable schedules of reinforcement produce high persistence of response.

[http://psychology.about.com/od/behavioralpsychology/a/schedu...](http://psychology.about.com/od/behavioralpsychology/a/schedules.htm)

That's not intuitive, as Jeff points out, and it's a useful thing to know for hackers who provide Web services as part of a start-up business.

</comment><comment><USER5> "Sometimes you get spam or mail you don't want, so stop using email completely."

No thanks. I learned to use email correctly, and it's a valuable tool that I am not going to replace with phone calls or twitter.</comment>


It's a bad time to start a company - <AUTHOR> http://www.caterina.net/archive/000965.html <comment><USER2> None of her arguments are convincing. In particular, it doesn't matter how many other people are starting startups. It's not as if there's some limit to the total number of startups that can succeed.

<comment><USER3> Even if her arguments do hold up and now is somehow relatively worse than some time in the past (or future?) for starting startups it's still hard to argue that startups are worse than the alternative. Hopefully no one's arguing that this is an especially good time to take a crap job at a large company.

</comment></comment><comment><USER4> It's never a "good time" -- you could always use more capital, more experience, more co-founders, etc.

But if you fall into that mindset, you'll wait for "conditions to improve", and never take the first step towards getting started.

</comment><comment><USER5> Did you hear that everyone? It's time to quit and go home. So please. Stop working on your companies. Seriously. You're not good enough. You'll never make it.

Oh and if you need a job let me know.

</comment><comment><AUTHOR> Caterina's caveat... "I was talking here about consumer-facing Web 2.0 companies based in San Francisco and the Valley"

I think there are a lot of bad ideas floating around (http://www.paulgraham.com/bronze.html - Why Smart People Have Bad Ideas) but still, a bad time to start a company? A vibrant competetive market produces some of the best products, if nobody started a company when there was a lot of competition we'd be without Google (and many others). Thoughts?

</comment><comment><USER6> define bad, define company, define everybody else

being a bad or hard time it doesn't mean you can't do it. creating a company doesn't mean you will produce a new technology or you have thought the next big thing...

after all, we all know that 1 out of 10 start-ups succeed...

from her speech 1 month later, you can see that they made flickr it for themselves..it was fun etc...

http://wiki.ycombinator.com/presentations/apr06/Caterina_Fake.mp3

i guess is not about making a company as much as about doing it for you and hopefully, your idea, passion and implementation will produce a success...making a company is one of the steps...

from ''Founders At work'', being over-funded may kill your company... so everybody else getting funded means nothing...

</comment><comment><USER7> looks like her insecurity speaking</comment>


Yet Another "Material Design" Framework? (Expand.js) - <AUTHOR> http://expandjs.com/

<comment><USER2> Not a framework.

expand.js is just a library that provides independent web components which can be used instead of standard HTML tags and a few modules to ease the vanilla JavaScript coding.

You could build an app using only what expand.js provides, however you can also build an app in whichever framework/OS you wish and use only a button (<mat-button> instead of <button>) from the whole thing.</comment>


Things You Probably Didn't Know About PHP - <AUTHOR> http://www.devtheweb.net/blog/2010/01/12/things-you-probably-didnt-know-about-php/ <comment><USER2> As a first couple of notes:

 _1\. You can gzip strings before storing them in a DB_

But many modern Databases/Filesystems have the built in ability to achieve the same effect - but faster and more transparently.

 _2\. Verify an email's host address is a valid DNS record._

True, you can. But what's the point? I see two possibilities - either you want to guarantee an address is legit or you don't. If you want a guarantee this doesn't get you anything (you'll still have to send a confirmation email). If you don't care, then what's the point (someone has to type email@example.com instead of email@example.com?). And (as a more minor concern) at sufficient scale, it could cause performance problems. I remember some webserver used to reverse-lookup IPs so it could log hostnames in its access log, and it was brought to its knees by even minimal levels of traffic).

<comment><USER3> Yes, it drives me nuts when people stress over picking the right regexp to "verify" email addresses. As if they're ever going to be able to detect that firstname.lastname@example.com is not legit.

The goal should just be to identify common typos (comma instead of dot). There's only one way to see if an email address is real.

<comment><USER4> But there is great value in telling that new user "Hey this doesn't look like an email address, please check it before continuing". Then accept whatever they put in (because really, email addresses are stupidly complex).

</comment></comment></comment><comment><USER5> _2\. You can check if a email is valid by the checkdnsrr() function. It checks the email's host address if it's a valid DNS record._

Should this function really be used for email validation?

 _5\. Easily unpack numeric arrays using the well-know function list <snip> Have you ever seen better code for swapping two variables' values !?_

Yes, try Python: a, b = b, a

</comment><comment><USER6> I'm a reasonably competent programmer by most standards and I was burned by PHP once.

If you include a file with their include() function and have whitespace after the closing ?> tag in the file--PHP will throw an error.

Except it gets better: whether this happens or not depends on a setting in php.ini (output buffering I think).

This happens if you're trying to send header information from the parent file but include a file that outputs whitespace on accident. The output buffering delays sending the output (because it's buffered, duh :)) so the header info can be sent, hence no error.

This is one of those things I didn't know and wish I did.

[http://stackoverflow.com/questions/1793482/php-error- cannot-...](http://stackoverflow.com/questions/1793482/php-error-cannot- modify-header-information-headers-already-sent)

The work around: omit the closing ?> tag from included files.

<comment><USER7> That's one of the most irritating problems with PHP due to the impossibility to find the bug (well, it's a whitespace, it's not as if one could see it). On my server, including a file with a whitespace after the ?> actually made the server send the PHP source code as text, including the mysql passwords that were included in the file.

<comment><USER8> Ouch, I generally try to put password files in directories not even in www_root, that way if the web server config gets messed up this stuff isn't even possible.

</comment></comment></comment><comment><USER9> _Have you ever seen better code for swapping two variables' values !?_

Actually yeah. Ways that people reading the code would recognize right away.

I'm not sure if that's intuitive for someone who codes in PHP, but if it belongs in a "PHP Tricks" article then it doesn't sound like the best way to do it.

<comment><USER10> Python:

        >>> a = 'apple'
        >>> b = 'banana'
        >>> a, b = b, a

</comment></comment><comment><USER10> >7\. You can handle the situation when a class that doesn't exist is instantiated

I'm not a PHP programmer so maybe I just don't get it ... but why would you ever want to instantiate a class that doesn't exist?

<comment><USER11> This is actually how frameworks like Zend require_once the file which DOES contain the class definition (and thus the ugly class names i.e. Zend_Db_Table_Row etc. that correspond to the actual directory structure). With proper namespaces most of this should go away.

</comment></comment><comment><USER12> This is a good list for developers new to PHP. Most lists that target that group tend to have a lot of outdated, wrong information; optimizations that were important for PHP4 but irrelevant today.

This one seems to skirt that.

One change I would make is to use the very effective Filter Input library to check an email address before you check it's DNS record. It would prevent a costly DNS hit if the email address is just gibberish.

 _Edit: For the criticism below (and unexplicable down-mods), take note that I didn't say this is a good list for new developers. I said this is a good list for developers new to PHP_

<comment><USER13> I disagree, I think this kind of list is another reason why new developers write poor PHP code. For example, as you highlight, there's no mention of checking to see if the string is an email address _before_ taking the DNS hit.

Then number 1: what's the point of having a long string stored in the database if it's compressed? Either put it there so you can search with it or store it on the local filesystem.

5\. Why on earth should we be encouraging people to write code like this?

6\. The same point, and even the list's author doesn't know what's going on here. He's using variable variables, e.g.

$cow = "ermintrude"; $dog = "wuffles";

$animal = "cow";

echo $$animal; //outputs ermintrude echo ${"dog"}; //output wuffles

As I say, new developers don't need these features and shouldn't be using them. For that matter, I don't think any developer should be using the features I mention above: am I wrong?

<comment><USER14> The reason they write poor code is because they are beginners and beginners always make mistakes, use functions incorrectly, etc. In any language they code, not just PHP.

PHP is often more visible because it is more used and easier to write... But if PHP wasn't that popular, we would see the same issue with Perl, Python, etc.

<comment><USER13> I could have been clearer with what I meant there, and I agree with you: it's not a problem specific to PHP, and in some ways it's unfair to label beginners' mistakes as problems in the first place.

The point I wanted to emphasize is that by reading lists like these new users might think that this is a good way to write PHP, whereas I strongly disagree with this list existing in the first place.

There's also the slightly selfish point of view of not wanting to have to clean up code like this should I come across it in future ;)

<comment><USER14> I agree with you. But beginners need to learn from somewhere and most advanced programmers are busy at work and not writing articles :)

Plus, did you ever read a PHP book? Most of them give bad examples and bad code practices too... I just read one that said to disable all apache logging (including error logging) for performance reasons.</comment></comment></comment></comment></comment>


Analysing 1.65M versions of Node.js modules in NPM - <AUTHOR> https://blog.nodeswat.com/what-i-learned-from-analysing-1-65m-versions-of-node-js-modules-in-npm-a0299a614318#.8f3ifd27r <comment><USER2> >but we all remember the left-pad incident, right? It proved that having lots of dependencies might actually not be the best thing.

npm no longer allows dependencies to be unpublished after they've been up for 24 hours. The issue that happened with left-pad was solved.

It's possible for someone to instead publish a new non-functional version of a package, but I don't think that's unique to npm, and that won't affect people who have pinned to a specific version of the package.

</comment><comment><USER3> For those interested in the topic, we ran a related set of experiments recently [1], and cross-referenced npm packages with (a subset of) Javascript GitHub projects to see how packages and versions are used in practice.

[1] [http://www.apiful.io/intro/2016/06/01/npm- analysis.html](http://www.apiful.io/intro/2016/06/01/npm-analysis.html)

</comment><comment><USER4> At first i thought you made a typo with 1.65 million

"Grab a cup of coffee and enjoy the deep dive into the NPM ecosystem."

Now taking my last sip of the coffee, i'm happy never to have spend a single second on node.js. The rapid and simple development via node.js does not weigh up to the bizar number of dependencies and crazy stuff that can originate from that.

Interesting to see in your stats there is a decline in development, at least of new modules. Either the ideas people can come up with are drying up, or i'd be inclined to say (interest of) nodeJS development is in decline?

</comment><comment><USER5> I have never had a package break between dev and prod when using versions like ^x.x.x.

Also, you need to test and ideally stage before deployment.

If you don't want to deploy with `npm i` then just copy the files or compress and then copy that and uncompress.

Also the new flat modules reduce the total install time.

The author advocates copy-pasting code rather than including small modules. To me this is very misguided.

Npm is the greatest code-reuse system ever created. The failure of software engineers to recognize that is an indication to me of a lack of depth of engineering knowledge and experience.

Deploys may take a few minutes. You just need to factor that and don't switch off prod servers until updated ones are ready.

<comment><USER6> Code reuse is fine, but taking that over the top is not fine. The same with Java some things actually do too much.

Especially dealing with many external dependencies is a real pain. A really big one.

<comment><USER5> I found the many dependencies to be a pain very early on when I was not specifying versions in my package.json.

Now I use npm i --save which gets versions so.. it really is not a pain to have many dependencies with npm.

In Java and many other systems, yes, it is very painful. npm is different.</comment></comment></comment>