Ask HN: Moved from Windows to Macbook Pro – How can I get up to speed quickly? - <AUTHOR> I've been using Windows for my entire career and was just given a Macbook Pro for my new job.  I'm a web developer and was hoping to get some ideas on how to make the transition more easily.
Any tips, shortcuts, plugins, etc.. that can get me up to speed on being super productive?  All ideas are welcome :)
Edit: Are there any recommended websites/resources that give an aggregate of information I can find in these responses?  It's awesome to get the information here (very much appreciated!), but it would be cool if there was an existing website that gave an overall rundown of all the quick hacks to get devs up and running quickly. <comment><USER8> Alfred is amazing (and the Power Pack is totally worth it). F.lux is great if you plan on spending any significant amount of time on it after dark. Bartender is quite nice to have. As others have mentioned, iTerm2 is a must, it offers a vastly superior experience to the native Terminal.app. Disable Caps Lock and switch it to Alt, you'll save yourself some pain in the palm/thumb (Google how). Enable Dark Mode (subjective, but I and most people I know greatly prefer it). Enable Autohiding on your dock, and Google how to speed up the animation and reduce the delay. Make heavy use of Spaces. Enable 4-finger swipe to switch spaces, and three-finger drag for click-and-hold. Get rid of the Widgets space (useless). Wish I could provide more links but I'm on my phone at the moment. Hope this helps, enjoy your new MacBook!

<comment><USER9> Please provide some links when you get a chance :)

<comment><USER8> Here you go :)

#Apps

Alfred: [http://www.alfredapp.com/](http://www.alfredapp.com/) Also, here are some good workflows to get you started (heads-up: PowerPack required for workflows): [https://github.com/zenorocha/alfred- workflows](https://github.com/zenorocha/alfred-workflows)

Bartender: [http://www.macbartender.com/](http://www.macbartender.com/)

F.lux: [https://justgetflux.com/](https://justgetflux.com/)

iTerm2: [http://iterm2.com/](http://iterm2.com/)

Dash (offline docs browser - one of those things you don't know you need until you need it): [http://kapeli.com/dash](http://kapeli.com/dash)

Cellist (HTTP debugging proxy that beats Charles): [https://itunes.apple.com/us/app/cellist-http-debugging- proxy...](https://itunes.apple.com/us/app/cellist-http-debugging- proxy/id897814548?mt=12)

LimeChat (IRC client): [http://limechat.net/mac/](http://limechat.net/mac/)

Keka (zip utility): [http://www.kekaosx.com/en/](http://www.kekaosx.com/en/)

Raindrop (bookmarking app): [https://raindrop.io](https://raindrop.io)

Spectacle (window management): [http://spectacleapp.com/](http://spectacleapp.com/)

Tower (git GUI): [http://www.git-tower.com/](http://www.git-tower.com/)

Homebrew (package manager): [http://brew.sh/](http://brew.sh/)

\---

# Tutorials

[http://www.howtogeek.com/tips/how-to-disable-the-useless- das...](http://www.howtogeek.com/tips/how-to-disable-the-useless-dashboard-on- mac-os-x/)

[http://krypted.com/mac-security/remove-the-delay-for-the- doc...](http://krypted.com/mac-security/remove-the-delay-for-the-dock-to-pop- up/)

Remapping Caps Lock: Every Google result wants you to download some bogus software. Nonsense. System Preferences > Keyboard > Modifier Keys

Gestures: System Preferences > Trackpad

Enabling word-jump in iTerm2 (weird that it doesn't come with it I know): [https://coderwall.com/p/h6yfda/use-and-to-jump-forwards- back...](https://coderwall.com/p/h6yfda/use-and-to-jump-forwards-backwards- words-in-iterm-2-on-os-x)

\---

That's my bag of tricks, without getting into more personalization type stuff. Should be enough to get you up and more productive than before in a matter of weeks. Let me know if you have any other questions!

</comment></comment></comment><comment><USER10> I suggest using Homebrew ([http://brew.sh/](http://brew.sh/)) for package management.

<comment><AUTHOR> Whoa, thanks. Just installed homebrew and did a `brew search`. Has a ton of stuff. Pretty cool that it's all git/ruby too :)

</comment></comment><comment><USER11> Do you have to run OSX? Having spent years working in both OSX and Linux I've found the latter is much more usable as a developer - in terms of customisation, scripted setup, flexibility, UI[1].

If you're going to the bother of changing OS, I suggest trying Linux (I use Linux Mint) as well, and see which you prefer. My setup is here:

[https://github.com/duncan-bayne/mint-setup/wiki](https://github.com/duncan- bayne/mint-setup/wiki)

Using a tiling window manager like StumpWM[2] is a major win as you can almost entirely give up using the mouse. Plus a _programmable_ window manager (again, like StumpWM) gives you the flexibility to tailor your environment to suit _exactly_ the way you work, and keep changing it as your style develops.

OSX is miles better than Windows, I'll grant you, but it's still primarily a consumer-focused OS. Be a producer, not a consumer ;)

[1] The OSX GUI is great for discoverability. But as a developer, you might benefit more from a powerful, flexible, trivially programmable GUI.

[2] [https://stumpwm.github.io/](https://stumpwm.github.io/) ... see [https://www.youtube.com/watch?v=do0DVxy4HBc](https://www.youtube.com/watch?v=do0DVxy4HBc) for an intro

<comment><USER12> Most people moving from Windows need some applications that are not available on Linux but are available on OS X. If this is the case, then virtualbox on OS X with Linux VMs is a reasonable way to go.

<comment><USER11> ... or dual-boot if you've the hard drive space. Mint starts up in literally a few seconds on my hardware (a several year old ThinkPad L520).

Personally, I found that going cold-turkey worked for me when I switched from Windows for C development back in the day. Every time I ran into the "oh, I need a Windows app" problem, I'd stop and learn the Linux equivalent.

Fortunately there were no road-blocks; literally everything I needed to do as a developer could be done on Linux, and that was back in 2001 or so from memory.

These days there's little I can't do on a Linux box. There's an old Windows laptop knocking around the office to run Niagara Workbench; I suspect it'll work on Linux through Wine but due to licensing complexities I haven't tried. Probably will when that laptop finally shuffles off this mortal coil.

<comment><USER12> For development yes, but for the consumer apps you might be used to using (or have paid for) it could be difficult switching.

YNAB, Fluenz, & iTunes are things you might want a mac for.

<comment><USER11> I'd have assumed that people would flee from iTunes given the chance :) Perhaps it's improved in the years since I last used it (bought an iPhone when they were the New Hotness here in Australia) but I doubt it.

When I migrated off iOS I encoded my iTunes music to .ogg, which was a pretty good experience. I don't know what the state of the art is now though.

According to the forums, YNAB runs in Linux on WINE. Also people have reported some success with Fluenz on WINE as well. For music I run Spotify, which has a good Linux client these days.

I'll grant you it isn't always easy, or even possible, but there are usually alternatives.

<comment><USER12> I use iTunes mainly for podcasts. I don't know of a good alternative to that.

I also hate ruining a good linux installation with WINE. =)

<comment><USER11> :)

My podcast workflow is a little odd - I subscribe to RSS feeds with Newsblur, and as new podcasts come up, I save those I'm interested in to a directory that I synchronise with my home NAS with Unison.

I imagine gPodder ([http://gpodder.org/](http://gpodder.org/)) might be a more normal solution :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> As others have mentioned, the quickest way to be as productive on a MacBook as previously on a Windows Box is to install and run Windows. Problem solved: get on with developing software. Just researching 'tips and tricks' is already a drag on productivity.

Switching operating systems will typically create a non-trivial learning curve for at least a few weeks anywhere that a person has to perform system administration. Eleswhere, EMACS is EMACS (so to speak).

</comment><comment><USER14> Unless you're required to use OS X, you can always install Windows. I would actually recommend this if using OS X really is that outside your comfort zone.

If you need to use OS X, then IMO, the best way to learn is to just start using it for everything. And Google, a lot. If you're familiar with *nix systems, OS X shouldn't be too mind blowing.

If not, I would seriously just boot camp Windows 7 or 8.1. It works flawlessly these days and its a very common practice.

</comment><comment><USER15> Get to know Mission Control (formerly Exposé), and configure it to your liking. Personally, I use hot corners to quickly show all running app windows or the desktop at my whim. This is (for me) an perfect replacement for Alt-Tab and the Start Bar in Windows. You can also drag and drop while using Mission Control, which is really handy when dragging between Windows, or to and from the desktop. I think this feature is understated.

<comment><USER16> Mission Control or Alfred has contributed the most to increase my efficency whilst my transition from PC to Mac

</comment></comment><comment><USER17> If you like speed as much as I do :

1\. Total Space. Setup shortcuts and disable transitions

2\. Disable (or speed up) OSX animation (I don't have the commands on my phone, just Google it)

3\. iTerm and window splitting (Cmd d) and switch (Cmd [ or ])

4\. And The REAL time saver : Keyboard Maestro Create at least one macro per app. I assigned shortcuts like

Cmd Shift L - <USER2>

Cmd Shift / \- Atom

Cmd Shift ' \- Chrome

Ctrl Shift < \- Finder

Ctrl Shift M - <USER3>

And so (Xcode, Slack etc.)

Then I pur each app in fullscreen (Ctrl Cmd F).

Now I have O(1) access over my computer \o/

Edit: disclaimer I'm a vim user

<comment><USER18> For the application shortcuts, is there an advantage over activating spotlight (cmd + space) and typing the first few letters of the application name?

I've been thinking about making screenflow workflows to open up a set of files, which could be quite powerful.

<comment><USER17> Yes. For those you often switch (eg Atom > Chrome > Atom). O(1) access FTW.

I use Spotlight for app I launch but don't really switch Mostly CSGO, Heroes of The Storm, Mumble and TS (Games!)

Actually I use shortcut a lot more for switching than for launching. For instance I launch atom from iTerm. A standard flow could be code, test, terminal commit, chat on Slack/IRSSI, IDE.

</comment></comment></comment><comment><USER19> Editor:

\- Atom

       - Plugins:
         - Sublime-Style-Column-Selection
         - atom-beautiful
         - autocomplete-plus
         - <USER4>
         - pretty-json
         - (few other plugins for spotify etc...)

Utilities:

        - <USER5>
        - <USER6>
        - <USER7>

Terminal: I personally use iTerm for all of my terminal needs, this is purely a personal choice.

</comment><comment><USER20> One thing that took me a while to get up to speed on was the different in alt+tab here switching between entire apps vs individual windows as on a PC. To be able to get that functionality back, install Witch [http://manytricks.com/witch/](http://manytricks.com/witch/)

<comment><USER21> You can use Cmd+` to switch between windows within apps.

<comment><USER20> I am aware of that, this is more to switch between the individual windows without bringing up all of the other windows of that program. Make sense?

</comment></comment></comment><comment><USER22> 1password if you're not using any other password organizer app.

Bartender to keep your menu bar items organized.

Flashlight to make Spotlight a bit more powerful.

Flux if you're into it.

Github OSX app is quite nice.

That's what I got from a quick look to my system.

</comment><comment><USER23> This podcast/show notes gives some good info. [http://www.startupsfortherestofus.com/episodes/episode-185-m...](http://www.startupsfortherestofus.com/episodes/episode-185-moving- from-windows-to-mac)

I moved to mac last year from windows I would recommend:

Mac App Store:

Window Magnet (drag and drop your windows/automatic resize) Skitch (Screen Shots)

I also use:

sublime text Virtual Box/Vagrant MAMP Sequel Pro

Other than installing your favorite browsers and extensions you should be good to go.

</comment><comment><USER16> A few weeks back i put together a sheet for the various applications i utilize. [https://medium.com/@elyrly/developer-setup- early-2015-d3f6f6...](https://medium.com/@elyrly/developer-setup- early-2015-d3f6f6e25477)

</comment><comment><USER24> GitTower for a git GUI

Divvy for window management

1Password for password management

Homebrew for package management

Atom for a text editor

</comment><comment><USER25> Memory Clean for memory optimization

Alfred for searching things on your Mac (better than Spotlight)

BetterSnapTool for window management (cheaper than Divvy)

GitHub for Mac and Atom are excellent as others have mentioned

<comment><USER26> Memory Clean... when you can't stand having your bits set for no reason...

</comment></comment><comment><USER27> Learn the shortcut keys. Unlike windows, they are pretty consistent across apps. For example, command-, is settings in almost every app.

</comment><comment><USER28> dot files are pretty nice to have [1]. Also see EmacsForOSX.com. Know the Readline shortcuts for editing most textboxes. Run _$ man open_ to read about opening apps from the command line.

[1] [https://github.com/mathiasbynens/dotfiles](https://github.com/mathiasbynens/dotfiles)

</comment><comment><USER29> Free window snapping/management

[http://spectacleapp.com/](http://spectacleapp.com/)

</comment><comment><USER30> On the topic of OSX productivity, is there a way to keybind moving a window to a new space?

<comment><USER31> There's an app called Divvy (2 v's) that I use every day.

</comment></comment><comment><USER32> vim and git natively is a great thing to have</comment>


Effectively Using Materialized Views in Ruby on Rails - <AUTHOR> https://pganalyze.com/blog/materialized-views-ruby-rails <comment><USER2> Overall, I love this approach, but the big pain for me is the lack of incremental view refreshes. I end up needing to recreate giant tables each refresh even though the underlying changes are small. Sure I could implement that myself, but that sacrifices the correctness guarantees that materialized views provide!

Two things that would help:

1\. Getting Incremental View Maintenance (IVM) [1] into Postgres. It looks like work is beginning on this but it's been 7+ years coming. If there are any Postgres devs looking at this, I'm cheering for you!

2\. There's a commercial group doing an implementation of this, Materialize [2], but they don't have any publicly released product yet. I mention it because their interview on Data Engineering Podcast is really good [3] and I really like their focus on correctness by working from replication logs.

[1] [https://wiki.postgresql.org/wiki/Incremental_View_Maintenanc...](https://wiki.postgresql.org/wiki/Incremental_View_Maintenance)

[2] [https://materialize.io/](https://materialize.io/)

[3] [https://www.dataengineeringpodcast.com/materialize- streaming...](https://www.dataengineeringpodcast.com/materialize-streaming- analytics-episode-112/)

<comment><USER3> Likely too boring and old school data warehousing, but this is what the notion of rollup/aggregate tables achieve. You define a table that's the result of some sort of an aggregation query (time is almost always involved: minutely, hourly, daily, monthly plus other business-specific dimensions) and at the conclusion of each corresponding interval you insert the next respective batch.

        e.g. insert into rollup_clicks_hourly select hour, count(*) clicks from clicks where created_at >= ? and created_at < ? group by 1

Then from a reporting perspective, users/dashboards/etc read from the highest relevant table that meets their criteria.

<comment><USER4> That's a very clever concept.

Could you recommend any classic old-school books about data warehousing that you'vre read that teach more such techniques?

Thank you!

<comment><USER5> Its pretty much the kimball books - [https://www.kimballgroup.com/data- warehouse-business-intelli...](https://www.kimballgroup.com/data-warehouse- business-intelligence-resources/kimball-techniques/dimensional-modeling- techniques/)

<comment><USER3> Yup, exactly. Kimball's stuff is the best. You can achieve on a modest machine what modern techniques would require an incredibly expensive horizontally scaled MPP database. It does require a lot more planning and forethought to be certain.

[https://www.amazon.com/dp/product/1118530802](https://www.amazon.com/dp/product/1118530802) and possibly [https://www.amazon.com/dp/0764567578/](https://www.amazon.com/dp/0764567578/)

</comment></comment></comment></comment></comment><comment><USER6> I used a technique very much like this in the past. Here are two potential gotchas using matviews with rails, both related to the inevitable reality that DDLs evolve over time:

\- postgres supports concurrently refreshing the contents of existing materialized views but there's no built in way to change the structure of the matview concurrently. Which means any `ALTER MATERIALIZED VIEW` will result in all reads to the view blocking for potentially many minutes or longer, for views over nontrivial data. Adding a column to a table is a cheap and non- blocking migration, but allowing the new column to appear in matviews can require an outage or fancy transactional view name swapping that libraries like scenic don't support.

\- a column that is included in a view of any kind cannot change in any way, even ways that are binary-compatible like VARCHAR->TEXT. This comes up surprisingly often and getting around it is annoying.

<comment><USER7> How about create new materialized view, then rename (or drop) the old, rename the new? That is assuming you don't need model changes, or can guard/fence them somehow.

</comment></comment><comment><USER8> View Backed Models are a super power. If you're a working Rails dev and you've never used them before, you really owe it to yourself to check them out. IMO, they should be baked into Rails itself. They're that useful.

</comment><comment><USER9> Are there any sensible ways to do this with Django? Ideally with migrations to create and update the views.

<comment><USER10> > Are there any sensible ways to do this with Django? Ideally with migrations > to create and update the views.

There are apps to integrate PG views as django models, however is kind of trivial to do it yourself.

1\. Create a migration that runs the SQL to create the view like ```create VIEW active_users AS SELECT rest of view ... `

2\. Create a model mapping all the fields you want to use, add the Meta.table_name with the name of the view, and Meta.managed=False to avoid adding this to your migrations in the future.

Use it as any other normal Model.

Just that

About the updates with migrations I think if you already are thinking on using VIEWS, you could just create migrations that drop and recreate it when you needed. Is what I do, and is very little work for that.

<comment><USER10> Here is an old article that I used to implement my own [https://www.fusionbox.com/blog/detail/using-materialized- vie...](https://www.fusionbox.com/blog/detail/using-materialized-views-to- implement-efficient-reports-in-django/643/)

</comment></comment></comment><comment><USER11> I once worked on a larger Rails project where we had decided to utilize Postgres views and materialized views to optimize the performance of parts of our application. This was about 7 years ago, so before Scenic existed to help with this (or at least before it was known). We had to manually manage the use of our views while keeping Rails apprised of the underlying schema through custom schema files and migration methods.

One of the main issues we had run into, in addition to all the complexity that comes with managing a cache and no longer being able to count on your db queries to return the latest information, was that our views had to be deleted and re-created for nearly every schema change (at least every schema change that affected the views, but we had so many views, this ended up being probably 90% of our schema changes).

We ended up overriding the standard Rails "up" and "down" migration methods to prepend the deletion of these views, append their re-creation, clean up after failed migrations, etc. I remember us spending a good amount of time across the team dealing with weird edge cases that cropped up from this. I also remember spending a fair amount of time training all the developers on these issues since almost no one on the team had experience using or dealing with database views. I assume managing migrations and schema of your views within Rails is all included in what Scenic does for you for free, since these hassles weren't mentioned in the article.

It's really nice to see something that handles all that complexity for you. However, that still leaves the standard and age-old caching issues with stale data. Another side effect was that they started being a bandaid for inefficient queries and data structures in the database, which is probably how we ended up with so many db views in the first place.

In the end, after probably 8 months of using these views, we decided to excise them from the application entirely and go back to optimizing our actual database queries. We got to delete a lot of custom code, our schema changes and migrations became simpler, our data became fresh again, and we got to reinvest that time into improving our underlying data structures and queries.

This probably is not an argument against using db views, but rather an anecdote of what can happen when you resort to them prematurely. If you have queries that are 100ms or more, there are probably more traditional optimizations you can find, such as restructuring your relational data, adding/removing indexes, etc. If you're actually trying to eliminate those last 10s of milliseconds from your queries though, as is shown in the article, I can see them being a good option.

</comment><comment><USER12> Another approach could be to create the materialized view and then use some sort of event system say the pg_notify subsystem to capture an event and then increment some aggregation -- this would eliminate the need for scheduled view refreshes and keep the view almost real-time and quick.

<comment><USER13> This might be best done using triggers. I've had good experiences with the Hair Trigger gem for managing these in rails.

<comment><USER12> Trigger would work. But going the pg_notify approach could allow for asynchronous updating whereas the trigger approach could slow writes.

</comment></comment></comment><comment><USER14> "There are two hard things in computer science: _cache invalidation_ , naming things, and off-by-one errors." (Phil Karlton, _et al_ )

Views (both regular and materialized) are really useful, but remember that storing data in two places really is one of the of the hard problems in CS. Refreshing the materialized view on a timer might seem easy, but 6 months from now when something important reads from the stale view instead of the real table could become a really frustrating bug. A materialized view might still be a worthwhile optimization; just remember that you're also adding cache management, which might be more complicated than you suspect.

<comment><USER2> Presumably if you're materializing a view, you have to have a cache for speed — it's either this or ElasticSearch or Redis. For me, where possible, it's nice to have a correct cache a `REFRESH MATERIALIZED VIEW` away instead of needing to make sure your cache book-keeping is perfect with other solutions.

But yes, you're right that this is caching, with all associated pitfalls.

</comment></comment><comment><USER15> Is there an upper limit on the number of materialized views that it makes sense to have in a database?

I've been trying to figure out a way to deal with my (growing) join of 13 rather large tables when fetching all of a user's data. Are materialized views the kind of thing that I could generate these cached results _per user_ and have, like, hundreds of thousands of them sitting around to query? And then be able to query against all of user 123456's content directly instead of filtering N tables for their content and joining them all together every time?

</comment><comment><USER16> How often does rails refresh the materialized views? And is it automatic or do you have to explicitly refresh them?

<comment><USER17> You typically do it on a schedule, e.g. once per hour, or once every day.

In the post the whenever gem ([https://github.com/javan/whenever](https://github.com/javan/whenever)) is used, but you could use anything that is able to run things periodically.

If you'd want to stay solely within Postgres, there is also pg_cron ([https://github.com/citusdata/pg_cron](https://github.com/citusdata/pg_cron)) which could be used to call REFRESH MATERIALIZED VIEW from within the database.</comment></comment>


My service was on the front page of Hacker News. What is the outcome? - <AUTHOR> http://dream-force.com/post/60564038701/my-service-was-on-the-front-page-of-hacker-news-what

<comment> workhere-io As far as I understand it, your service collects email addresses from the web and then enables your customers to access that email database. In some European countries that would probably be illegal - in others it would be legal, but bordering on unethical behavior (the fact that someone - <USER2> by accident - publishes his/her email on the web doesn't mean he/she wishes to be spammed).

So the fact that you even managed to get six signups for your email database is quite amazing (and I don't mean that in a good way), and I don't think those who make proper, ethical startups have anything to learn from your experience.</comment>


It's not about the bike: The real story of oBike and what it can teach us - <AUTHOR> https://cyclingtips.com/2018/08/lessons-learned-from-the-real-story-of-obike-or-why-we-cant-have-nice-things/ <comment><USER2> I tried oBike in London last year because it seemed like it would be more convenient than the "Boris Bikes" that the government provide (TfL to be precise).

I used one once and it was probably the worst bike I've ever ridden, it was like cycling through treacle. I thought it might have been just that bike so tried once more and it was the same on a different bike.

The route I take home takes me 17 minutes on a Boris Bike (which are built like a tank and not at all a fast bike to ride), and I typically finish feeling like I've exercised but not feeling out of breath for more than a few seconds. The oBike took 25 minutes and I came off feeling like I'd had a very tough workout. They are just not good enough quality.

</comment><comment><USER3> The article is very nice, but I have to disagree with the "absolving the citizens/users" part.

It is not like these bikes self-dump themselves in rivers, not Obikes in Melbourne, nor Mobikes in Manchester [0] or in any other place.

That the Obike is (was) a sort of get money quick scheme or not and that the bikes were not particularly comfortable/easy to use is not a valid reason for the amount of vandalism reported.

Surely it is nothing "uniquely naughty" about the Australians, but it is something "universally naughty" that shouldn't be IMHO dismissed so easily or simply considered a "new normal" of some kind.

[0] [https://www.theguardian.com/commentisfree/2017/jul/16/manche...](https://www.theguardian.com/commentisfree/2017/jul/16/manchesters- bike-share-scheme-isnt-working-because-people-dont-know-how-to-share)

<comment><USER4> I agree that there is a vandalism problem with such a service but that has also a lot to do with the users. I first noticed these bikes not because of their bright colors or because I heard about them but because they repeatedly blocked my pedestrian walkway. We have a lot of bikes around here but none of them are parked like these bikes that the last customer just wanted to get rid of and I more than once got the feeling that I should just throw that bike down into the water to get rid of the obstacle (and what kept me from doing that was only that than the city would still have to get rid of it). However, I have never had any problems with any of the bike-sharing services that offer fixed stations were you get and return your bike and I think a lot of people do so. So in my perspective, it has nothing to do with "universal naughtiness", just that some of these companies are ass-hole, law ignoring ponzi schemes.

<comment><USER5> The part that gets me about the sentiment expressed in posts like this are that there are loads of people who will angrily just do things that make my life worse. They think they're stopping the asshole law-ignoring company but in truth they're just law-ignoring assholes themselves.

So they perceive some war between them and some company and impose that cost upon me - an innocent third party. I don't care if there's a scooter or bike by the side of the road because it isn't even an inconvenience, but when you're throwing it onto the street or into a water body, you're not a hero. To me, you're a worse villain than the company.

Now you have the restraint to not do this but there is a véritable plethora of morons who do not.

<comment><USER4> Did not see this before but have to reply anyways:

> there are loads of people who will angrily just do things that make my life > worse.

But unfortunately, those are especially the users of those companies. I do not care if there are bikes parked at the side of the road (and do the same everyday myself) but a user who does not own said bike and is not forced to park it in a sensible way will, more often than not, just drop it whereever it is the most convenient, often in the way of others. I have seen people with a stroller walk on the street because someone parked their rented vehicle (especially cars are prone to this) at the next free spot that was free for exactly that reason.

I do not and never planned to obstruct anyone else path with a bike because it obstructed my path (and can honestly not understand why you would think anything like this from my comment as I especially point that out), but the users of these services do and I feel helpless against those everyone-but- themself ignoring humans (and to cite you, those are the people 'that make my life worse').

</comment></comment></comment></comment><comment><USER6> Obike failed because of bad execution. Bikes were malfucntioning, hard to find, and they upset the locals. A few of their competitors seem to be doing better. I've tried out a few in Berlin before settling on Mobike. Obike has all but disappeared here. But Mobike seems to be pretty popular and is very similar conceptually.

Part of the attraction is flat fee subscriptions. You can either pay like a euro for half an hour, or just get a flat fee subscription and grab a bike whenever you need one. I'm currently on a 20 euro for 3 months plan with mobike; which is really good value. I grab one a few times per week. Multiple times on some days. I'm saving a ton of money on public transport. And I get a bit of good exercise (these bikes are hard work).

Financially, this makes a lot of sense. They are getting reliable revenue from me and probably a couple of thousand users plus some less frequent revenue from maybe 10-20k users. To keep the money flowing, all they need to do is make sure that they have enough bikes distributed around the city.

These bikes are not that expensive. Probably they cost around 100-150 each. Maybe less. Very sturdy, not a lot of parts that can break, etc. So, Mobike did the obvious thing: flood the city with bikes. From what I understand they have at least around 5000 bikes on the streets here and are planning to deploy even more. Whatever it is, the end result is that I can find a mobike whenever I need one with relatively little effort.

At 100 euro per bike, we are talking half a million of investment for 5k bikes. With thousands or tens of thousands of users, this becomes meaningful revenue pretty quickly. In my case, if I keep on paying their flatfee, I'll end up paying around 80 per year. Only a few thousand people like me means they earn back their investment in a year. I imagine there's other cost as well but probably the per bike expenses are pretty modest. Ballpark, they should be making money.

From what I can see most of their competitors are trying to compete with far less bikes and failing. The trick is having enough bikes on the street to keep users hooked and doing that in as many big cities as possible. That's more or less what Mobike and their VC funded competitors are doing.

</comment><comment><USER7> We have nextbike in Cardiff and they've been a huge hit. There's static points to return them to, which most people seem to do, and the pricing is very sensible. There's no security deposit like with oBike, and they've rigged up some deals with the local council and universities to get more people using them. The quality of the bikes is alright, and I just carry a keyring with a few utility allen-keys on it in case anything needs tightening (though they are prompt at fixing broken bikes, it's handy to be able to tighten something up if you're in a rush).

[https://www.nextbike.co.uk/en/news/another-27-nextbike- locat...](https://www.nextbike.co.uk/en/news/another-27-nextbike-locations- have-been-announced-for-cardiff/)

Now if only our council would design cycle lanes that weren't massively fucking stupid, we'd be golden.

Sidenote: I was sat in a bar having locked one of the nextbikes up outside (lock through the wheel, on its stand), and got a very entertaining 5 minutes watching a woman and her partner try to steal it. They didn't seem to understand that it was locked. They're also fecking heavy, so I'm not sure how far they'd have gotten with it if they had the brainpower to move it in the first place.

</comment><comment><USER8> Where I live there's Velospot (velospot.ch), and it works rather well. The differences: using a RFID card, not dockless, an organisation in the city itself and cooperation with the local jobless employment institution, a yearly fee and usage fees for usages above one hour.

However, in a neighbouring city a competing bike sharing company also failed. They misdesigned the locks and after a security hole went public all their bikes got stolen.

It seems that bike sharing is really difficult!

</comment><comment><USER9> Bike sharing schemes were widely predicted to fail in Australia due to their compulsory helmet laws for cyclists. The argument was that few people would want to put on a shared helmet, and that preparation involved in having to bring a helmet would deter casual use -- which is the whole point of such schemes.

</comment><comment><USER10> I don't disagree with the overall thrust of the article, but the author doesn't know what venture capital is:

"Assuming oBike were gunning for a deposit from a user base one-tenth the population of Sydney and Melbourne – that's still just under one million users. If each of them paid $69.99, you just amassed nearly $70 million in venture capital, from an operation where your fleet cost perhaps $120,000, at most."

Money your users pay you is _revenue_ , not venture capital. This mistake repeats several times throughout the article. The author seems to think that the point of a startup is to get "venture capital" in the form of revenue from customers, when it really exists to get venture capital in the form of investments from VCs.

<comment><USER11> I think the author is aware of the difference. His claim is specifically that the whole enterprise wasn't made to provide a bike-sharing service, it was made, or evolved, to use the user's deposits as a fund for something else (on the users behalf).

</comment></comment><comment><USER12> I hope we can find a sustainable model with these bikes. They are really useful in the cities they're in. I've used them in the UK in London and Bristol, and it really feels rather magical when you stumble across a bike, realise it's by far the fastest way to get where you're going, and within minutes you're riding off.

Perhaps the solution is a hybrid of the fixed dock cycle schemes which are really capital intensive to install, and these completely free-floating schemes. Maybe some docks with only RFID chips and no active electronics. Make the docks steel frames which are just bolted to the ground rather than cast in concrete, and maybe installation is affordable.

<comment><USER13> There exist quite a few attempts at this and most work pretty well in my experience:

\- Publibike in Switzerland (publibike.ch) operates your idea of cheaper docks: they are just a metal sign next to parking space with some (bluetooth- like) electronics in them to communicate with the bikes. You can only return your bike at one of these parking spaces. At the same time, they avoid the cost of installing fixed docks for each bike. They had some problems with their locks on the bikes not working properly, but these seem to be resolved and otherwise they work really well IMO.

\- INDIGO weel ([https://www.indigoweel.com/](https://www.indigoweel.com/)) is a free-floating system, but not totally free floating: you can only return your bike in GPS-fenced "allowed areas", which should be bike parking spots, avoiding the chaos of completely free-floating bikes. As GPS fences are quite broad, this doesn't work perfectly but it helps. Some of the schemes operated by Nextbike in Germany also work like that (they also operate with fixed docks in some cities, though).

I prefer these dock- or semi-dock-based systems to the totally free-floating ones, as if you know where the docks are its much easier and more reliable to actually find a bike there. Especially if you are travelling in a group, it will be a challenge to "collect" enough bikes with a free-floating system (unless you have so many bikes standing around on the streets that they become a public nuisance).

Nevertheless, I do not think judging free-floating systems by oBike is a good idea: oBike was uniquely bad in many respects (the quality of the bikes, the lack of local staff and support, the lack of GPS on the bikes, the need for a deposit etc.) and other free-floating schemes such as Limebike seem to work quite well.

<comment><USER14> The docks, here in Helsinki, are integrated well with the bus & tram API/app. That means you can see how many bikes are sat at each dock-point around the city, in real-time, which is pretty good.

</comment></comment></comment><comment><USER15> It was a weird few months seeing the bikes everywhere, but only ever seeing them ridden by groups of young kids. I asked a group of Sudanese boys how they liked them, and they showed me how they jimmyed the locks and then rode them for a while until ditching them. Poorly planned system from a hardware perspective - the venture capital idea makes sense to me

</comment><comment><USER16> One rather long creative wiring essay on why it's actually O-Bike's fault delinquents dumped their bikes in the creek? Conspiracy theories? Shady tactics about collecting data by lending bikes without GPSs? This one has everything but sense.

<comment><USER17> The whole _point_ of these bikeshare services is that each bike has a GPS and the central system can livefeed the guaranteed location of nearby available bikes to a user's phone. If O-bike didn't have GPS, then it wasn't a real bikeshare service.

I wouldn't trust Mobike to be more about the bike than O-bike was, though. A few months after joining Mobike in China earlier this year, they decreased the default scale on the location map in their app when you first open it. Within a few months, the usual number of nearby bikes had noticeably decreased, but this was obscured in the app map because of the smaller scaling. It seems like they changed the app map scaling _because_ they were planning the decrease in bikes in the local area. Perhaps they had collected enough deposits in this district, and moved the bikes in bulk to another district of the city with fewer signups to make it look like bikes were always available there, thus encouraging people there to pay deposits.</comment></comment>


CTOs are the new PANDAs - <AUTHOR> http://blog.hiddenfounders.com/ctos-new-pandas/ <comment><USER2> HN effect: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://blog.hiddenfounders.com/ctos- new-pandas/)

</comment><comment><USER3> Interesting read. I've been approached by non-tech founders for CTO roles many times, and the main reason I turn them down is that I don't believe in their products, but don't have the heart to trample on someone else's dreams.

Having worked for a failed start-up before, I'll only go back to that madness for a very solid product offering, and a sizable financial reward given the risks.

<comment><USER4> I'm curious about the non-tech founders who approached you, was it the good old PPT pitch or they have actual TRACTION ?

<comment><USER3> Most of them had working prototypes to be fair, one even with dedicated hardware, but no market traction. A lot of them were trying to create new markets, which is always risky as hell. Anyone tries to hit me with a PPT-only and it's an immediate "no thanks".

</comment></comment></comment><comment><USER5> While it is not clear from the article, I would point out that being a technical cofounder is not necessarily a CTO, which is a specific type of role. I have seen plenty of startups with technical founders and a lot of engineers that still had a desperate need for a CTO. Also, not every kind of startup really needs a CTO to execute well.

Part of the reason that there is a shortage of CTOs, particularly outside of technology hotbeds, is that it is difficult to develop the skills required for the job if you have not been immersed in a technology hotbed for many years. This leads to a strange phenomenon I've noticed where non-CTO types in Silicon Valley are pressed into service as CTOs in other cities; relative to the local talent in those cities, the've developed more of the required experience by proximity even if it is not their core competency than technical people that have been far out on the periphery of technology development. It is not enough to simply be an experienced software engineer.

</comment><comment><USER6> Tips for the prospective founding CTO working from a clean slate with a non- technical cofounder:

* Get it in writing, and sooner rather than later.

* Do not work for free. A business cofounder should be in charge of finding money. If they can't get enough to pay you to build a PoC, you shouldn't work with them.

* Work together to set near-term goals for the non-technical party, and assess whether they can deliver. If they can't: beware.

* Do not accept less than a 50/50 split unless the other party has decades of experience in a vertical, glowing references, and an astounding Rolodex. A few years at McKinsey or Bain followed by an MBA isn't worth more than the work you put in to get here. (Although it is meaningful.)

* Check references on the other person and do background work. It's amazing how little folks put into this compared with, say, the amount they put into their first hire. This is a source of much pain.

* Qualitatively, you MUST feel a sense of respect for the other person, and it helps if you find them outright impressive. Again, a source of major pain.

</comment><comment><USER7> > In its early stages, the only thing a startup "absolutely needs" is > traction; traction will have to happen before everything else; before > funding, before media exposure, and now before co-founders as well.

Well, the author just described a good portion of the startup scene which do many of these things _before_ traction. Traction happens _because of_ media exposure, which happens _because of_ funding, etc.

> and now before co-founders as well

If the founder is the CTO, yes. Otherwise, how can you get traction without a working product. I don't get it.

<comment><USER4> > Traction happens because of media exposure, which happens because of > funding, etc. I believe funding isn't the only source of media exposure. You > can get traction by creating something people want first, then use a lot of > channels like HN itself, reddit and product hunt to get your initial > traction. Those initial efforts may get you in an accelerator, or even get > you your first seed round. So I think there is a lot a founder can do before > hitting the funding milestone.

<comment><USER7> I don't think HN, reddit and PH can help much with consumer products/services or for some sectors like... healthcare.

> by creating something people want first

You can create something people want and people may never know about it.

</comment></comment></comment><comment><USER8> I recently came off of a string of startups being CTO and I can attest that the attempt to recruit me has increased 10x since the last time I was on the market.

</comment><comment><USER9> Very nice article. A very interesting approach on the industry and the struggle of non-tech founders in a market fostered by technology.

</comment><comment><USER10> This is a huge project ! that will take a lot of startup ideas to reality !</comment>


"Government is an association of men who do violence to the rest of us." Tolstoy - <AUTHOR>

Happy 4th of July, fellow Americans. <comment><USER2> You must be fun at parties!</comment>


Game's shifting strategies leaves Beane, sage of Moneyball, behind - <AUTHOR> http://sportsillustrated.cnn.com/2011/writers/tom_verducci/08/02/billy.beane.moneyball/index.html

<comment><AUTHOR> Billy Beane was the central character in Michael Lewis' book Moneyball whose central theme was using detailed statistics and out of the box thinking to determine a player's true value, rather than gut feel or standard criteria. I post this because it is a great example of how evolution is required to stay on top. Markets will adapt and your golden edge can disappear right before your very eyes.</comment>


The difference between US Military prisons and regular prisons - <AUTHOR> http://www.metafilter.com/98531/Silenced-Protest#3420198

<comment><USER2> The whole thread is worth reading.</comment>


Ask HN: Does it really matter which language you use to write code? Pros and Cons - <AUTHOR> <comment><USER2> Yes, different languages are made for different purposes. The concept of low- level and high-level is relative to the task. When writing systems applications you reach for C, C++, whereas for server code you might reach for Scala, Elixir, and obviously you have the platform-specific languages such as Obj-C. When you want to verify your code formally, you might reach for Coq or Isabella, writing theorem provers usually in Standard ML or OCaml.

Furthermore, the tools you use mold your way of thinking. That's why teaching Haskell as an introductory language is a better choice than Java.

<comment><USER3> I sincerely wonder why people are disagreeing with you, assuming the majority of downvotes signify disagreement.

<comment><USER4> I'm not one of the down votes, but I read their comment as missing the point of the question. These types of questions rarely are asking "should I use C or Javascript for a web front-end?" so saying "different languages are for different purposes" means nothing. The question, while admittedly unclear, is most likely asking "does it matter if I use Python or Ruby" or "Perl vs PHP" or "C++ or Swift" or "Clojure or Haskell".

There are a lot of languages that, for the most part, are completely interchangeable. That makes it nice for choice, but also makes it hard to decide which language to focus on.

</comment></comment></comment><comment><USER5> Yes a) Some languages are better suited form some applications than others. You might be able to create a desktop game using Perl, but not really what it is designed to do.

b) There's more than one way to do it and everyone's different. So part of language choice depends on what you are comfortable working with and how you solve problems. Some language, while absolutely are great don't work for some people, and also some languages that seem to some like a piece of crap, others can really rock with.

I think the factors are can the language solve your problems and does the product work well. For the non-programmers languages are all the fiddly stuff, whatever as long as it works.

The more complex/mature the tasks then you have to do more factoring in of language choices for scalability, robustness, readability, etc.

</comment><comment><USER6> Yes, I think it does matter in a way I seldom see mentioned.

My two favorite languages to develop in are Python and Clojure. When I was building up my last project, I decided to use Python. Why?

Because it is an open source project and it is a project I would like to have other people be able to modify, use, and perhaps push changes back to me.

Suppose I want to turn this into a company and hire on developers? Would I have a more difficult time finding good Python developers or good Clojure developers?

I have been contacted by certain companies over and over for the past 2 years because they want my Clojure knowledge. Quite often, the description is "we made a 500KLOC mess and we need help. We need someone that understands immutability." This doesn't sound like an appealing job nor does it sound like an appealing position to put your company into. Of course, these companies want me to move across the country to work for them, and are completely closed off to remote work. Sure, I like using Clojure, but not enough to append my life for.

</comment><comment><USER7> Yes. each problem will have a different manner in which you might approach it in differing languages. Making it either easier or harder and more or less productive.

For example writing a website in C is possible but would be insanely unproductive and you'd be solving issues that other languages and frameworks already solved.

Yet writing an image processing library that has critical performance requirements would likely be best in C/C++.

</comment><comment><USER8> Your question is too general. Everything depends on deeper specification.

Let me assume (maybe wrong) you trying to choose from two or three languages suitable for your solution? For example Java, .NET and C++. Every language has own pros and cons.

For example architecture design,portability,performance,security, libraries availability and support etc.

There are also some personal preferences like previous experiences, ability to understand and write effective code,time to learn certain language approach etc.

No solution is 'one size fits all' with 100 % compliance of all raised requirements....

So, yes, it does matter.... you have to consider which one you choose to have best fit for your needs, and results might vary over different languages

But no, it doesnt matter ....you can create you solution in almost every language

</comment><comment><USER9> No, not really. You can solve most problems with any number of mainstream languages with a few caveats. 1) The language has to run and be supported on the platform of choice (You probably can't use perl to write mobile apps nor are you likely to use ruby to build windows apps.). 2) If you have known speed, scale or other special requirements ie (you're probably not going to want to run a jvm language on embedded systems, and if you're running a system that's going to get billions of requests a second, you're probably going to want something that's multi-threaded or supports some type of concurrency)

</comment><comment><USER10> It matters to an extent but I know I am guilty of delaying personal projects just because I can't decide to go with Python or Javascript. Same with frameworks and other tools.

<comment><USER11> I envy the monoglot...

"Oh another project, looks like RoR and React"

I have to think about 30 languages and frameworks and figure out the combo to pick..</comment></comment>


The Era of Automatic Facial Recognition and Surveillance Is Here - <AUTHOR> http://www.forbes.com/sites/bruceschneier/2015/09/29/the-era-of-automatic-facial-recognition-and-surveillance-is-here/ <comment><USER2> A HN contest: Provide an elevator pitch, to completely non-technical end- users, that will make them aware of this issue and persuade them that it is important to them. Vote up the best ones. [EDIT: The goal is to persuade them about its dangers, not sell them something based on it]

That elevator pitch is key. I have extensive knowledge about this issue but have a hard time coming up with it; I need to be prepared.

Change only will come through political pressure, and that requires public awareness. I had lunch recently with a journalist from a prominent publication, someone very well informed, and they told me that widespread surveillance wasn't real, a sort of urban myth. Organizations like the EFF have been unsuccessful and I think that's because they don't generate mass public awareness. It's up to us to create it, and we need a pitch.

EDIT: [deleted]

<comment><USER3> You've spent years saving up to finally buy a home. You're having a baby in a few months, and you really need the space. You have the down payment ready, your credit is great, you've ticked all the boxes on the application, but you're turned down for the loan. Why?

Maybe you walk home through a bad neighborhood. Maybe you sometimes grab a beer at a bit of a divey bar near your office. Maybe you've visited an old friend who's been in some trouble recently. Whatever the case may be, your face has been in a photo with some questionable folks, whether it's a security camera or a stranger's Facebook photo. So the bank's computers noticed, and flagged you as a risk. People who hang around questionable people aren't very good at repaying their loans.

<comment><USER4> I've tried this one on lay people before. The problem I have is that they usually can't get past their firm belief that these things are technologically impossible, even after you explain to them that they are. "That all sounds like science fiction, that can't happen in the real world."

Also it can fall down if you don't stick only to directly relatable details: "but I don't walk through a bad neighbourhood, so this wouldn't affect me and therefore I don't see how it could be a problem". The instant it ceases to speak to their experience directly, you've lost them.

<comment><USER5> > "That all sounds like science fiction, that can't happen in the real world."

Tell them that the mobile phone they have in their pocket also seems like science fiction - and it was 20-30 years ago. Now it is science fact. Facial recognition is getting the same way.

If anything, based on all the shoddy movies that 'zoom in, enhance' with photos, the public should be primed to accept facial recognition quite easily.

<comment><USER6> Ha, when watching those shows, I am always the nerd telling my wife how it's impossible to zoom in and enhance, because you can't create more information than existed when the photo was taken. I'm not sure that she gets it.

<comment><USER7> If you take a blurry photo of a license plate - it can be possible to enhance it (e.g. using sharpen) to reveal the license plate number - just because your naked eyes can't extract that information from a blurry photo doesn't mean the blurry photo doesn't already have enough information to encode the number precisely.

<comment><USER8> There is also superresolution methods that in practice make the "enhance"-feature possible. The information from the same objects in successive frames, eg. from a security camera feed, are composited into a single frame of higher resolution than the originals. This can even be done for a single image (see. Glasner et al. "Super-resolution from a single image." Computer Vision, 2009 ICCV 2009. IEEE.).

If machine learning is brought into play it gets even more interesting. See eg. waifu2x, the anime video upscaler based on Deep Convolutional Neural Networks. Basically it is a neural net, that has been shown A LOT of anime, and it can therefore creatively(?) fill in the created pixels when upscaling.

I have no idea how advanced this kind of ML boosted "enhance" technology can get in the future, and it might even get a little scary: imagine an observer with the experience of million lives spent looking blurry images in poor lighting. It might get surprisingly good at that...

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Also available on his blog instead of Forbes' terrible website

[https://www.schneier.com/blog/archives/2015/10/automatic_fac...](https://www.schneier.com/blog/archives/2015/10/automatic_face_.html)

</comment><comment><USER10> As someone with prosopagnosia (neurological inability to recognize faces) I find this incredibly frustrating. My everyday life would be immensely easier with assistive tech that told me the names of everyone I see. And now that the technology exists to develop such a useful device, what do we get instead? Mass societal surveillance.

<comment><USER11> That would be the killer app for Google Glass. Not just for your situation, but for salesmen, customer service reps, security guards, politicians, or anyone who needs to recognize lots of people, recall names, and bring up an instant profile about the person standing in front of them.

(Granted, even this application has serious overtones of societal surveillance.)

EDIT: Anyone care to speculate on why Google Glass doesn't do this? Surely the processing capability is there.

<comment><USER10> Google Glass bans facial recognition apps[0]. I've tweeted them about getting an exception for assistive tech but I've never pursued it any further[1].

[0] [https://developers.google.com/glass/policies?hl=en](https://developers.google.com/glass/policies?hl=en) [1] [https://twitter.com/googleglass/status/463838878143492096](https://twitter.com/googleglass/status/463838878143492096)

<comment><USER12> A great example of "you don't own your hardware," or "you own your hardware with a hundred strings attached (probably to the software)"

RMS called this one.

</comment></comment></comment></comment><comment><USER13> I no longer know what to do about this problem. I'm convinced surveillance is here to stay and that making it illegal will only serve to hide the microphones. I'm still extremely grateful for those who fight for privacy, is just that I don't see how we can win.

Not knowing how to treat the cause, I'm at least trying to treat the symptoms. We might not be able to stop them from seeing our secrets, but we might very well stop them from making us feel ashamed and from blackmailing us.

<comment><USER2> > surveillance is here to stay and that making it illegal will only serve to > hide the microphones.

Certainly it's here to stay, but so is murder, theft, fraud, and many other things. We want to maximize the leverage and tools people have to fight it.

<comment><USER14> Unfortunately you can't put the genie back in the bottle. I don't think there's a real way to fight this in the age of networks and cameras in every pocket.

There are many good uses for the ability to instantly recognize and identify anybody from a crowd, as well as bad ones.

Probably the easiest way to frustrate these things would be the simplest; only go out in public with substantial facial features obscured or altered.

The degree to which tools with diverse uses, some of which may be bad, should be regulated is always a matter of serious controversy (cf. firearms). Whether it's legal or not, this tech _will_ be used, so we need to get people to accept that and learn to recognize and frustrate its usage, instead of trying to deprive the populace of the tools that provide the function, which is ultimately futile.

<comment><USER15> [http://cvdazzle.com/](http://cvdazzle.com/)

I don't know how well obscuring facial features will really work. There might just be too much information. Partially obscured face, body dimensions, clothing, location, time... I think it might be a loosing battle.

<comment><USER16> Who wants to do that every day? Also, how long before we can out-calculate it? Right now we can already match things like gait patterns and multiple biometrics (eg height, relative length of limbs) well enough for many purposes using probabilistic systems (eg your metrics match 3 people but the other two are on different continents so I'm 99% certain it's you).

</comment></comment></comment></comment></comment><comment><USER17> Where's the line that separates generic image recognition from facial recognition?

Forget corporations for a moment and think about your own rights as a programmer. I want to tinker with image-similarity scores by downloading random images from the internet and comparing with a photo I just took in a public place. Oops, my photo just so happened to have a stranger's face that matches a photo in my database and that filename contains the person's name. Should that be illegal?

Consider the effects of a legal requirement to have an "opt-in" for facial recognition software. That was what the "consumer advocates" thought should be a minimum standard. Large corporations with trusted brands might be able to run such an effort, but any startup certainly could not.

Regulating what software I can write is a slippery slope. Compare facial recognition with encryption. If there's regulation for recognition software, then regulation for encryption will be coming right after. The worst-case scenario in my mind is if the federal government has a monopoly on any kind of software. Our best defense against a government/corporate monopoly on surveillance is not to ban it, but to democratize it.

<comment><USER18> What you can do in your own time is one thing, what you can do commercially is another.

Encryption is something you do by yourself or with another consenting party, facial recognition is something you do to someone else without their permission and possibly use for nefarious purposes.

There's nothing wrong with outlawing certain activities from the commercial sphere, or any sphere. It's not an assault on your freedom, its protection of my privacy? It's illegal to stalk and harass people in person or over the phone. It's illegal to serve people undercooked food or raw milk or whatever. It's illegal to breach HIPAA.

Are you next going to say its terrible that you can't access my medical records for your startup?

How about security cameras and genitalia recognition in the bathrooms at restaurants, is that cool too?

<comment><USER17> It's illegal to stalk and harass, it's not illegal to make phone calls. The issue is not facial recognition, it's the misuse. I'm all for gun control, not gun ban.

Cameras in the bathroom? Fine. Whatever. If that's the new normal, then I guess I'll get over it. Are you saying that will now be legalized? I'm pretty sure we don't need any new laws to prevent cameras in changing rooms. The "scary" scenarios that have been described in the other threads are already illegal for other reasons -- harassment, redlining (racial profiling), spam, etc.

<comment><USER18> You'll get over cameras in the bathroom?

You should be able to collect any data you want, and use it however you want?

Why not start a business face-recognizing people who show up at battered women's shelters and selling access online for $50?

Or how about completely legally standing a public street and making notes of the schedules of when people are and are not home, and selling access to that to probable burglars, should that also be legal?

The use of information can and should be regulated. Everything from insider trading to medical privacy.

<comment><USER17> People's opinions are remarkably malleable. Read some accounts of how soldiers change during and after fighting. Watch how the audience acts at a rock show. Check out the people on a nude beach vs the sidewalk just off the beach. Normal and acceptable is entirely situational. Walking in the street was normal. After the ad campaigns of the auto industry, we call it jaywalking.

I'm all for regulating (mis)use of information, but not the collection of information.

</comment></comment></comment></comment></comment><comment><USER19> So _are_ we actually there yet? I was under the impression that, while face recognition has evolved to the point that face matching against a limited group of people (say, your Facebook friends) is feasible, we're still a long ways off from being able to put a face-scanner in a crowd in NYC and have it spot the 1 suspect among 10 million without a totally ridiculous rate of false positives.

<comment><USER20> This should be a top comment - this kind of tracking is not possible at scale and probably won't be for a long time. Identifying a person in a group of 100s/1000s has been a solved problem for decades. Consistently identifying a single person from a database of 100Ms/billions of people who are constantly gaining weight, growing facial hair, etc is impossible with today's technology; false positives will become an exponentially bigger problem as you increase the candidate space.

Perhaps one day increased camera resolutions will allow trackers to identify something humans can't, like retinal scans. This would allow cameras to basically "fingerprint" people, and will be super creepy.

<comment><USER21> I think that actually as you increase surveillance the problem gets simpler. If you're always in view of a camera then I can simply track your motion and I only need to recognise you once. Given that I've seen you in your car, I can already narrow things down significantly.

> Consistently identifying a single person from a database of 100Ms/billions > of people

I don't need to, there aren't billions of people who are likely to be at the closest ATM to your house.

> constantly gaining weight, growing facial hair, etc

But I see you several times _every single day_.

> false positives will become an exponentially bigger problem as you increase > the candidate space.

To be honest, I think that this is the most likely thing to scare people, that you won't be allowed to fly because a computer made a mistake and everyone trusts it or can't override it. That the police get called when you go to pick up your son because you're the same height and rough build as a child molester who was released from prison yesterday

</comment></comment></comment><comment><USER22> I agree with the general idea put forth by the article. This is an important issue, and the future could bring a lot of bad things if we (as a society) are not careful.

Schneier makes it sound pretty scary. For a general audience, this is probably good. It takes a lot to make your average Joe start paying attention to something new.

But on a technical level, I can't help wondering, how realistic is the scenario he describes? Or, maybe the better question is, how _immediate_ is the threat of universal face recognition? If we know what time horizon we're working with, maybe we can be better prepared.

I think Schneier makes some substantial logical leaps in the article that make it sound like automatic, ubiquitous facial recognition is a more urgent issue than it really is.

For example, he goes from this

> Today in the US there's a massive but invisible industry that records the > movements of cars around the country. Cameras mounted on cars and tow trucks > capture license places along with date/time/location information ...

to this

> This could easily happen with face recognition.

with no supporting evidence for how this feat of engineering will be accomplished. Recognizing letters and numbers on a license plate is one thing. Recognizing faces at random angles with random occlusions, hats, eyeglasses, makeup, etc., is quite another thing.

I found a couple of papers from CMU and UCF a couple of years ago where they look at the problem of recognizing people in photos at "web scale" [1]. The recall/precision rates of the algorithms they tested are pretty decent, but they're still pretty far from the dystopian future described in the article.

[1] [http://enriquegortiz.com/wordpress/enriquegortiz/research/fa...](http://enriquegortiz.com/wordpress/enriquegortiz/research/face- recognition/webscale-face-recognition/)

</comment><comment><USER23> I'm not sure what "good as a person" means in the context of large scale facial recognition.

I know software is now scoring as people on various standard AI tests. But most people couldn't recognize a million other people correctly. The situation is kind of odd. It's like how engineering a car to drive automatically in a variety of controlled situations which might represent 90% of the normal driving. They are still nowhere near ready to drive on real roads.

The supposed advantages are perverse; Face recognition with a 1% false positive rate can translate one fugitive to 10 or 100 false arrests of random people.

A store clerk knowing your name when you walk in the store is mostly creepy and wouldn't help sales - the store that had their clerks saying goodbye by name to credit card holds a few years back have stopped.

So, benefits? Changes? The article is kind of light on the whole subject.

<comment><USER2> > store clerk knowing your name when you walk in the store is mostly creepy > and wouldn't help sales

Saying your name might be creepy (but maybe people will become accustomed to it). Knowing your identity I think would certainly help sales, the same way it does when you shop online.

<comment><USER23> _Knowing your identity I think would certainly help sales, the same way it does when you shop online._

How?

I suppose you could have store change it's stock based on who it knows has visited it. But that sounds cumbersome and speculative. The store might find itself removing the things people like to buy _from that store_ and stocking things people prefer to buy from other stores and so wind-up selling less.

Kind of like when things I've searched for on amazon reappear as Facebook ads. It don't click through and buy 'cause I've already decided on whether or not to get them.

<comment><USER2> I'm surprised to find questions like this on HN. These are fundemental concepts that drive SV; while I don't expect the world to understand I expect it here.

</comment></comment></comment></comment><comment><USER24> There was a great discussion I wont be able to find about this recently on HN after an article about a zebra/leopard patterned couch. Thwarting an image id algorithim is not difficult and the researcher came on and spoke about the problems in the space similar to this xkcd[0] comic. It is a super complex problem to solve. How far away are we? It is like the turing test, everytime someone gets close the term is redefined. It is certainly coming, maybe reasonable models in ~5 years publicly acknowledged. What can someone really do to prevent it? Short of making an account every few months with a lot of your data but different pictures, what american doesnt have a photo that has been published on the internet? Even if you dont have facebook, someone you know does. The tech will take a while to dev and refine, and longer to deploy at scale, but I can't think of a scalable solution to this.

[0][http://xkcd.com/1425/](http://xkcd.com/1425/)

<comment><USER25> Here is the discussion for "Suddenly, a leopard print sofa appears": [https://news.ycombinator.com/item?id=9749660](https://news.ycombinator.com/item?id=9749660)

</comment></comment><comment><USER26> Perhaps the niqab (face-veil) will see a rise in popularity...

<comment><USER27> Nah, turns out that modern AI techniques are better than the brain at certain things. In this instance, the brain has huge amounts of volume dedicated to recognizing faces. AI don't have that same preference for faces; we can make AI recognize using any feature, including seemingly unlikely ones such as gait. A driverless car with no windows would probably do it, but then again the car itself will probably be bugged a la Samsung TVs.

</comment></comment><comment><USER28> There was a comic recently that had a main character who had little emitters constantly blasting his face with IR radiation, so it would just turn up as an overexposed blob on surveillance cameras. Of course all they need is an IR filter to combat this, but the idea is fun.

<comment><USER29> an episode of Almost Human had 'anti-camera spray' that did this, as well. maybe a comic was based on that?

</comment></comment><comment><USER30> This article is a bit alarmist. I agree that government entities using this technology as a tool of oppression is definitely bad & going to happen somewhere but I'm not worried about the shop clerk knowing my political affiliation because there is zero profit motive there. You're talking about a truly massive database of customer info joined with facial info obtained...how? Is the DMV gonna start giving away my license to Home Depot? Is facebook going to torpedo their business by selling this info? I doubt it! Second, why would they want it? to creep me out when I walk into their store?

<comment><USER2> > Is the DMV gonna start giving away my license to Home Depot?

IIRC this already happens and businesses can buy DMV databases.

> Is facebook going to torpedo their business by selling this info?

Many businesses collect and sell this information. Where do all these online businesses, who charge users nothing, get their revenue? [EDIT: More simply said, that info arguably is the basis of the Internet economy]

> why would they want it?

To discriminate. They may offer different products or prices. They may discriminate because you are gay or transgender, because of your ethnic background, or because of your religious (e.g., Muslims) or political affiliation (e.g., communist, right-wing extremist, etc.). This can happen in more serious situations too, such as when dealing with government, law enforcement, or in employment situations.

Certainly such discrimination has been widespread for centuries and is today. Why would it be any different when they have new tools?

<comment><USER30> Seems like a massive amount of effort just to be a dick. They get all the info they could ever want from customer loyalty cards, this is a redundant and frankly useless waste of money.

<comment><USER31> I think it's unwise to underestimate your fellow humans' propensity to "be a dick", as you put it, even if they don't gain anything more than the satisfaction of treating others poorly.

Facial recognition + a database allows POWERFUL and fine grained discrimination!

Imagine being able to know ${Things} about people -- via analytics / The Internet -- whenever any prospective customer comes into your store.

You could refuse to do business with gay people, divorcees, adulterers, married people, transgender people, politicians, members of the opposing political party or religion, or even police officers with X number of complaints. You could exclude people from the wrong side of town, or who didn't go to the right schools, or whose parents were (or who themselves are) illegal immigrants.

Many of these things are Probably Legal (some are likely not), but most of them strike me as unjust treatment of others. The technology allows frightening things, and there are MANY people who would do so right now if given the ability. (Religious and political boundaries are one such place where people are quite willing to do so.)

I only touched on business owners. Now imagine that roving bands of jerks (or criminals) got their hands on the same technology or data, and could tell who was a stranger in town, or was more vulnerable than others, or fit their desired target criteria. It's pretty scary, and I'm sure that within ten years we'll hear stories of such abuse happening.

<comment><USER32> > I think it's unwise to underestimate your fellow humans' propensity to "be a > dick"...

That tendency exists quite strongly in humans, yes. Unfortunate, but true. On the other hand, businesses also have the tendency to want to make money. If I've got a business, and I make it hard for group X to buy stuff from me, they're probably going to try to find someone else who wants more strongly to make money and/or less strongly to be a jerk. And that business will get their money, and I won't.

And there may be businesses that are okay with that. But it ought to be somewhat of a self-defeating behavior.

Note well: I am not claiming that this behavior is moral or legal.

The criminal aspects mentioned in your last paragraph is quite frightening, and more so because it is also quite probable...

<comment><USER21> > That tendency exists quite strongly in humans, yes. Unfortunate, but true. > On the other hand, businesses also have the tendency to want to make money. > If I've got a business, and I make it hard for group X to buy stuff from me, > they're probably going to try to find someone else who wants more strongly > to make money and/or less strongly to be a jerk. And that business will get > their money, and I won't.

Which is true, although there are a few rubs:

1\. It's not so easy to start a business, and if the group you exclude are small there's very little [edit - forgot to finish this sentence, sorry] incentive to open a new business just to cater for a small proportion of people. Depends on the business, obviously.

2\. You're ignoring any influence other customers have. If 90% of your customers threaten to boycott you because you (bake cakes for gay weddings || print leaflets for republicans) it'd be good business sense to not serve that small percentage of your client base.

With 2, consider a "realistic" situation. In the future, all sex offenders will have their photos published on some public crime database. Cue outrage that sex offenders are being served in the local bar (or choose the establishment of your choice), they are then banned. Are people going to open up bars with the motto "sex offenders welcome here!"? To make people more wary of this, what happens when it thinks you're a sex offender because of a false positive?

I'm always really concerned when people argue that the free market will remove discrimination, and perhaps they're right in the long term but I don't think it's unreasonable to say that there was a fair amount of time when people in the US were discriminated against because of the colour of their skin (not to get into a discussion about _now_ as it's not too relevant).

</comment></comment></comment></comment></comment></comment><comment><USER33> It is a scary vision. However, the scary part seems to come not so much from the increasing data availability, but rather from the increased likelihood of discriminatory uses of such data. Enforcing non-discriminatory uses of data sounds like a hard problem to tackle, especially if we realize how diverse is the space of possible missuses (e.g., in law enforcements, business, and politics) and that this problem affects both humans and computer systems. As hard as this problem sounds, the article provides a great motivation for research that defines computationally what "discriminatory" means, as well as for the research aiming to design systems (both human and computer) that are privacy-protecting and non-discriminatory.

</comment><comment><USER34> My default interpretive framework when I read something like this is, of course, nearly hysterical paranoia and sociopolitical despair. And, speaking as objectively as possible, I think those are not invalid responses. However, for the moment, I'm instead trying to imagine sociology/psychology of the first generation to grow up native to this environment, and I admit that it's fascinating to think about. What will the teenagers be like who grow up expecting to be identified and known everywhere they go, by friend and foe alike? How will it affect manners, speech, courtship rituals, expectations for entertainment/education/employment? Etc. So strange.

</comment><comment><USER35> Anyone can suggest brands for high quality fake mustaches and asymmetric sunglasses? ;-)

</comment><comment><USER36> When surveillance systems are put in place and collected information stored for later use, irrespective of whether it's a personal, business, or government system, the people who get themselves in control of them will use the surveillance and/or information to steal from, preach to, discredit, and/or wear down the target/s, all of which ultimately equate to benefiting in some way at the target's expense. There's no such thing as unused surveillance capacity or unused collected information.

</comment><comment><USER37> Watching Minority Report the other day, this reminds me of the automated retina scans in the movie. Really creeped me out when Tom Cruise was walking through a mall, gets picked up by the scanners and they start shooting targeted advertising at him.

<comment> finance-geek Tangent: I always chuckle at how prescient Minority Report was on some aspects, yet they didn't envision network storage or wireless communication -- do you remember at how they would transfer small glass disks all the time...how burdensome. LOL.

</comment></comment><comment><USER38> Walk into a store, and the salesclerks will know your name.

\- they already do once you scan your store card

The store's cameras and computers will have figured out your identity,

\- store card

and looked you up in both their store database and a commercial marketing database they've subscribed to.

\- store card again.

They'll know your name,

\- store card

salary,

\- if you entered it and if you didn't lie when you filled out your store card form

interests,

\- if you entered them and your didn't lie when you filled out your store card form

what sort of sales pitches you're most vulnerable to,

\- if the "deep data" / AI is actually correct

and how profitable a customer you are.

\- store card

Maybe they'll have read a profile based on your tweets and know what sort of mood you're in.

\- MAYBE. assuming the AI is anywhere near correct.

Maybe they'll know your political affiliation or sexual identity,

\- MAYBE, probably wrong.

both predictable by your social media activity.

\- PROVE THIS.

And they're going to engage with you accordingly, perhaps by making sure you're well taken care of or possibly by trying to make you so uncomfortable that you'll leave.

<comment><USER39> Considering that Target can tell whether you're pregnant or not before you do based on your purchases, I'd assume that online habits encode your preferences a lot more strongly that one would like to think.

More info on that weird pregnancy story: [http://www.nytimes.com/2012/02/19/magazine/shopping- habits.h...](http://www.nytimes.com/2012/02/19/magazine/shopping- habits.html?pagewanted=all&_r=1)

<comment><USER40> They can't tell "before you do". They can tell before you tell people, but the woman needs to know she's pregnant before her habits change.

<comment><USER21> That's definitely true in this story, but is this general statement true?

> the woman needs to know she's pregnant before her habits change.

There are always stories of people who don't realise they're pregnant, do their habits change in a reasonably identifiable way?

This wasn't particularly relevant to the point, I just wondered and thought it was an interesting question.

</comment></comment></comment></comment><comment><USER41> You show your face automatically everywhere you go. Expecting other people not to look is folly.

It's no different from the idiocy around fingerprints.

</comment><comment><USER42> How poignant given the end of the 3rd episode of Heroes Reborn that I just saw last night (don't worry, I won't spoil its awesomeness).</comment>


Want The Kindle Source Code? You Can Have It. - <AUTHOR> http://www.techcrunch.com/2009/06/16/want-the-kindle-source-code-you-can-have-it/ <comment><USER2> Please see <http://news.ycombinator.com/item?id=660795></comment>