hacker news with inline top comments    .. more ..    10 Oct 2016 Ask
home   ask   best   3 years ago   
Ask HN: Recommendation for open-source self-hosted collaboration software
4 points by selmat  3 hours ago   2 comments top 2
MayeulC 3 hours ago 0 replies      
How about a github-like service, like gitlab or gogs?

It might not be perfect, but that's a possibility. And could can definitely work around your requirements with those.

n17r4m 3 hours ago 0 replies      
tiki.org is what I usually turn to, and it works well enough after a bit of setup. However there may be better solutions out there. (and if there are, I'd love to know about them!)
Ask HN: Where should I host my startup?
69 points by akos  19 hours ago   84 comments top 33
tjpd 17 hours ago 1 reply      
Reading a lot of these comments make me think that everyone on HN is a cynic of the Oscar Wilde/Lady Windermere variety: "A man who knows the price of everything and the value of nothing" [1].

IMHO you should go with Heroku and ignore anyone who's suggesting dedicated servers, VPSes, AWS, Docker or containers. Every moment you spend maintaining a server or doing devops is wasted because it's time not spent building or marketing your _app_.

New startups' biggest expense is founders' time. It seems a lot of people, even on HN, don't realise it because it's a hidden cost. But if you think that a decent developer is worth at least $50/hr and it might take you an 1hr to set up and 1hr/yr to manage a server (e.g. apply patches, update security) then you're better off not spending those 2hrs and paying an extra $100 hosting your app.

Worrying about the future infrastructure cost is also wrong-headed. It's a kind of premature optimisation. To get the real, expected future cost, the projected infrastructure cost has to be multiplied by the probability that you'll actually get big, which for start-ups, is very low.

[1]: http://www.gutenberg.org/files/790/790-h/790-h.htm

seanwilson 16 hours ago 1 reply      
This highly depends on if your site is dynamic or static. If static, I would go with GitHub Pages or Netlify as they're free/cheap and easy to use. Static sites with this kind of hosting is also great in that they require practically zero maintenance.

If you have to run a dynamic site (less potential headaches if you avoid this), I would try to use something like Heroku. It's easily one of the simplest way to host a robust site that needs to scale without having to spend much time on admin and DevOps.

For the people recommending a VPS, DigitalOcean etc., you're talking about using a huge amount of your own time to make such a setup as robust, easy to use and low maintenance as Heroku. What about backups? Scripting server creation? Adding a load balancer and more servers? Security updates? Server security?

The more parts and scripts you have to put together yourself, the more things that can go wrong and the more time of yours it's going to consume. If you consider how much your own time is worth and how important your startup is to you, trying to save anything in the realm of $10 a month on a core part of your startup doesn't make any sense if this is going to cost you multiple hours of time a month.

andrewl-hn 17 hours ago 2 replies      
No one has mentioned Heroku yet. Starting at $7 they are a bit more expensive than DigitalOcean, but with that extra $2 you'll get their platform, their tooling for deploying the app, their database backups. Adding other services later on is also easy with their addons. By choosing Heroku you can save hundreds or thousands of dollars in ops costs over a course of a few months.

The hosting cost may go up quickly, but if your business is successful you can either absorb it, or spend time and money to migrate away. They run on AWS, so picking the same location means you can run mixed infrastructure (part on Heroku, and part on AWS) without a latency hit. Thus, a hybrid configuration is very viable.

chias 18 hours ago 3 replies      
If "$10 / month" counts as cheap in your book, check out a Linode VPS. I've been using them for a couple years now, and I have been extremely satisfied (although I've upgraded to a beefier VPS as my project has grown in popularity).

Another good VPS option is DigitalOcean, which offers a smaller (and cheaper) plan for $5 / month.

There are also a lot of shared hosting providers out there that will sell you cheaper space, but I would not recommend this for anything non-trivial, as most of the time, you'll be limited to using PHP. Still, if you're looking for the best bang for your buck and you're willing to settle for shared hosting, check out Nearly Free Speech -- they are head and shoulders above any other shared hosting provider that I have ever tried.

hbcondo714 18 hours ago 1 reply      
Microsoft's BizSpark program gives startups $150/month in Azure credits for 3 years


jhylau 16 hours ago 0 replies      
For any non-static website - Heroku FOR SURE. It's not even a question - I have two companies that both run on Heroku - both startups are profitable and both will remain on Heroku for the next couple of years. (https://www.switchup.org and https://www.trycarriage.com) - I know massive scale billion dollar companies that are on Heroku (e.g. Deliveroo, Macy's)

The cost/benefit analysis is ALWAYS positive in favor of Heroku until you hit super massive scale (minimum 2-3 years out for most startups, if ever). It's super easy to use. Their feature set is increasing monthly and they can handle a lot of different types of setups.

iraklism 18 hours ago 1 reply      
Hetzner is another option. But you don't really specify your requirements (geographical region, scalability , etc) so I don't know if this suits you.
biot 17 hours ago 0 replies      
Since you've provided no details at all for your requirements (does your startup need a flotilla of beefy servers to do real-time facial recognition across thousands of live 4K video feeds?) I'm assuming you have a static HTML site with zero backend required. In that case, a Jekyll/Hugo generated site hosted on Amazon S3 will be really cheap. Throw CloudFlare in front of it for even more cheapness if you expect loads of traffic. Your hosting bill will be measured in pennies per month.
nodesocket 18 hours ago 0 replies      
Depending on your application and stack, you may want to consider Google Cloud or AWS. While I really like DigitalOcean, Linode, Vultr, etc they lack production features like a centralized firewall and IAM security. Additionally AWS and Google have a slew of complimentary services so maybe you don't need raw physical machines. For example, instead you may be able to use Elasticache, RDS, and Elastic Container Service and don't have to manage any servers.
ggregoire 18 hours ago 0 replies      
AWS has a free plan during 12 months: https://aws.amazon.com/free
jimmywanger 17 hours ago 0 replies      
I'd go with GCE. They have a wide suite of services, and because they're the number three player right now, will probably give you a bunch of free credit to play with.
erikb 16 hours ago 1 reply      
Don't trust anybody who doesn't start with "it depends". For nothing in this world there is one perfect answer. Context means a lot. What have you coded? Why do you think you are done if it is not running anywhere (I would say you are 20% done if it runs on your laptop)? How many people need to use it to be viable (e.g. a diary service needs only one user who writes texts for himself, a shop needs at least make its hosting and transportation fees, a social network needs thousands of people before it can even start to be successful)?

Good general advice is this: The simplest solution is often the best, but in some cases that means taking your old desktop pc, install ubuntu, configure your router to publicly share http and https from that computer. In other cases it means using a toolset like Heroku.

Please don't be mad about this, but the way you phrase your question it is very very likely you have so little skill that you don't even know how little. Please consider to pay a freelancer to support you. He likely has more skill and has experienced more "this can never happen in real life" F-Ups than you, and therefore can handle a lot.

ddorian43 15 hours ago 0 replies      
Check out webfaction https://www.webfaction.com/?aid=9281. It's cheaper/better than shared/heroku/dedicated/vps/ec2 up until a certain point (48GB ram).
epynonymous 8 hours ago 0 replies      
why can't you use just aws micro free t1? they give you a micro machine for 1 year free. what loads do you anticipate, what hw requirements do you need for your machine? i think hosting a simple website with sqlite database works great on an aws micro, if you need something more glorified like postgresql or mysql and multi-tier, then perhaps you should go for something like digital ocean or paid aws, this all depends on your requirements which you haven't specified.

currently i'm hosting a golang web + restful api + websocket server + sqlite3 db + redis + nginx all on a single micro AWS server, but my marketing hasn't really started yet, we're talking about <100 hits thus far per day.

adjohn 17 hours ago 0 replies      
Check out Digital Ocean Hatch[1]. If you're an eligible startup, you can get 100K of free credits for 12 months.

[1] - https://www.digitalocean.com/hatch/

trcollinson 15 hours ago 0 replies      
Can you give us an idea of what your site is built in? Personally I have a side project I am working on which I am just hosting on the free allocation of AWS. Even if it weren't in the free tier, it would be extremely inexpensive. With that, I have a lot of experience deploying to AWS and I have scripted most of the process (in fact, other than some monitoring, at this point, the deployment process is entirely automated). This would work for just about any architecture. But, the difficulty of setup will cause your mileage to vary a bit.
PetahNZ 18 hours ago 0 replies      
If you are willing to shell out a little more ($40), you can get a pretty powerful DS for a fraction of the cost of what the major cloud providers would cost: https://www.delimiter.com
ing33k 18 hours ago 1 reply      
you should check out free tier offered by Amazon


Also do apply for things like BizSparkhttps://bizspark.microsoft.com/

if you have a static marketing page, you can also host it for free ( almost ? ) on https://firebase.google.com/docs/hosting/

wtvanhest 18 hours ago 0 replies      
It depends on how much you want to do yourself.

Heroku is easiest and relatively cheap until you scale. (Great problem)

Lots of people seem to use AWS. My limited understanding is that it is marginally more difficult to implement than heroku.

You could also go with someone like Linode. I would only go that route if you have implemented before. There is a learning curve and if you are trying to get the site up quick, I would go with a different option.

boulos 17 hours ago 0 replies      
As people asked, what do you need "today" (host website apparently) and what do you need "tomorrow"? If you just need a simple static-ish web app, and everything else is your offline iOS game that's pretty different from building say a Snapchat competitor.

Full disclosure: I work on Google Cloud, but it's unclear you need a cloud provider.

smoyer 17 hours ago 0 replies      
Redhat offers free services (you pick which ones) via their OpenShift [0] platform. Under the covers it's Docker and Kubernetes.

[0] https://developers.openshift.com/getting-started/index.html?...

shanecleveland 17 hours ago 0 replies      
Webfaction. I don't do anything with heavy traffic, but very happy with reliability, performance and features.
pimterry 18 hours ago 2 replies      
If you're talking about hosting your startup's landing page, stick with Github Pages: https://pages.github.com/. Free, super quick & easy, with custom domains to boot.

Personally, for almost any product I start here. Even if you do need server-side infrastructure for the product, hosting all your marketing pages on GH pages is probably the right choice - they're going to be better at reliably hosting and serving static content than you are. Focus on your product instead.

When I do need server-side logic I then usually go for Digital Ocean, because they're very cheap, pretty great, and far less complicated to manage than EC2. It's also pretty easy to set up Dokku: https://medium.com/@pimterry/host-your-node-app-on-dokku-dig.... With that on top you then get a quick & effective Heroku-style deployment experience, at a fraction of the price.

nwilkens 17 hours ago 0 replies      
Do you have any special requirements -- such as location, high memory, io performance, or storage capacity?

At https://mnx.io (my company) we offer various options with reliability, and performance at our foundation.

borplk 12 hours ago 0 replies      
As someone who wasted time and money with AWS I'd say start with something simple like DigitalOcean and worry about problems as you face them.
flaie 17 hours ago 0 replies      
Clever cloud is a good option, they're very good at what they're doing. Plans start low, and you can scale easily when needed. They do have plenty of options, and support is top notch.
acarrera 18 hours ago 2 replies      
if looking into digitalocean, vultr.com is slightly better in terms of pricing and processors, though it takes much longer (~2-3mins) to spin up a vm instead of <60s in digitalocean
jtcond13 15 hours ago 0 replies      
Amazon's PaaS offering (Elastic Beanstalk) isn't too difficult to use and may be less expensive than Heroku.
DeBraid 17 hours ago 0 replies      
now.sh https://zeit.co/now/ and surge.sh https://surge.sh are some lesser-known options that I've used recently with ease and success (on free plan, for small projects).
coupdejarnac 16 hours ago 1 reply      
I haven't seen it mentioned yet, but Redhat's Openshift provides an alternative to Heroku. I've used it for a few years and been happy with it. They have a startup program that gives you access to a paid tier for a year. I've used Openshift to host Node and Flask apps.

Edit: a bunch of downvotes for trying to be helpful, how nice.

d0m 18 hours ago 0 replies      
Personally had bad experience with linode.. I'd go with aws.
imaginenore 18 hours ago 3 replies      
Cheap: browse through the listings on lowendbox.com, you will find some amazing deals for both VPS and dedicated servers.

Reliable: AWS / Rackspace / DigitalOcean / Google cloud / basically any famous one.

When you're starting, it's probably better to rent a cheap VPS server. If you start growing fast, you can always move to the cloud. But modern cheap VPSs are quite powerful. I have 7 websites running on one that costs me $6/month.

catalinbraescu 10 hours ago 0 replies      
It looks like you're confusing your startup (which is a company) with your web site.
Ask HN: How do you back up your site hosted on a VPS such as Digital Ocean?
104 points by joeclef  16 hours ago   79 comments top 38
dangrossman 16 hours ago 5 replies      
Write a little program in your favorite shell or scripting language that

* rsyncs the directories containing the files you want to back up

* mysqldumps/pg_dumps your databases

* zips/gzips everything up into a dated archive file

* deletes the oldest backup (the one with X days ago's date)

Put this program on a VPS at a different provider, on a spare computer in your house, or both. Create a cron job that runs it every night. Run it manually once or twice, then actually restore your backups somewhere to ensure you've made them correctly.

kevinsimper 25 minutes ago 0 replies      
This is the same question I had [1], but just asked in "how can I outsource this cheap" instead of "how can I do this cheap". I also use docker, so I would only need to get a hosted database.

[1] https://news.ycombinator.com/item?id=12659437

yvan 16 hours ago 2 replies      
The simplest way for us it's to use rsync, there is this service decade old (even more) that is just perfect for the offsite backup. http://rsync.net/index.html

We basically create a backup folder (our assets and MySQL Dump, then rsync it to rsync.net). Our source code is already on git, so basically backuped on Github, and all developers computer.

On top of it, rsynch has a very clear and simple documentation to implement it very quickly with any Linux distrib.

Kjeldahl 15 hours ago 2 replies      
DigitalOcean has a droplet backup solution priced at 20% of the monthly cost of your droplet. Doesn't get much easier than that, if you can afford it. For a small droplet ($10/month) that's a full backup of everything for a buck a month. https://www.digitalocean.com/community/tutorials/understandi...
no_protocol 13 hours ago 1 reply      
Whatever strategy you use, make sure you test the process of recreating the server from a backup to make sure you will actually be able to recover. You'll also have an idea how long it will take, and you can create scripts to automate the entire flow so you don't have to figure it all out while you're frantic.

I use tarsnap, as many others in this thread have shared. I also have the Digital Ocean backups option enabled, but I don't necessarily trust it. For the handful of servers I run, the small cost is worth it. Tarsnap is incredibly cheap if most of your data doesn't change from day to day.

stevekemp 3 hours ago 0 replies      
I see a lot of people mentioning different tools, but one thing you'll discover if you need to restore in the future is that it is crucial to distinguish between your "site" and your "data".

My main site runs a complex series of workers, CGI-scripts, and deamons. I can deploy them from scratch onto a remote node via fabric & ansible.

That means that I don't need to backup the whole server "/" (although I do!). If I can setup a new instance immediately the only data that needs to be backed up is the contents of some databases, and to do that I run an offsite backup once an hour.

kumaraman 16 hours ago 3 replies      
I use AWS S3 for this as the storage prices are so cheap, at $0.03 per GB.I recommend using a utility called s3cmd, which is a similar to rsync, in that you can backup directories.I just have this setup with a batch of cron jobs which dump my databases and then sync the directories to s3 weekly.
AdamGibbins 16 hours ago 0 replies      
I use config management to build the system (Puppet in my case, purely due to experience rather than strong preference) so it's fully reproducible.I push my data with borg (https://github.com/borgbackup/borg) to rsync.net (http://rsync.net/products/attic.html) for offsite backup.
rsync 14 hours ago 0 replies      
Some of our customers have already recommended rsync.net to you - let me remind folks that there is a "HN Readers Discount" - just email us[1] and ask for it.

[1] info@rsync.net

xachen 16 hours ago 1 reply      
www.tarsnap.com - it's pay as you go, encrypted and super simple to use and script using cron
jasey 6 hours ago 0 replies      
Osiris 6 hours ago 0 replies      
I use attic backup (there's a fork called borg backup). It runs daily to make incremental backups to a server at my home.

For database, I use a second VPS running as a read only slave. A script runs daily to create database backups on the VPS.

darkst4r 9 hours ago 0 replies      
http://tarsnap.com + bash scripts for mysqldump and removing old dumps + cron
stephenr 6 hours ago 0 replies      
How is this at 70+ comments without a mention of rsync.net?

Collect your files, rsync/scp/sftp them over.

Read only snapshots on the rsync.net side means even an attacker can't just delete all your previous backups.

bretpiatt 16 hours ago 0 replies      
For a static site put it in version control and keep as copy of your full site and deployment code.

For a database driven dynamic site or a site with content uploads you can also use your version control via cron job to upload that content. Have the database journal out the tables you need to backup before syncing to your DVCS host over choice.

If you're looking for a backup service to manage multiple servers with reporting, encryption, dedupelication, etc. I'd love your feedback on our server product: https://www.jungledisk.com/products/server (starts at $5 per month).

moreentropy 5 hours ago 0 replies      
I use restic[1] to make encrypted backups to S3 (self hosted minio service in my case).

I can't praise restic enough. It's fast, secure, easy to use and set up (golang) and the developer(s) are awesome!

[1] https://restic.github.io/

billhathaway 14 hours ago 1 reply      
Remember to have automated restore testing that validates restores are successful and the data "freshness" is within a reasonable period of time, such as last updated record in a database.

Lots of people only do a full test of their backup solution when first installing it. Without constant validation of the backup->restore pipeline, it is easy to get into a bad situation and not realize it until it is too late.

touch_o_goof 14 hours ago 0 replies      
All automated, with one copy to AWS, one copy to Azure, and an scp local that goes on my home server. Rolling 10, put every 10th backup in cold storage. And I use a different tool for each, just in case.
dotancohen 6 hours ago 1 reply      
I see lots of great suggestions for backup hosts and methods, but I don't see anybody addressing encrypting said backups. I'm uncomfortable with rsync.net / Backblaze / etc having access to my data. What are some good ways to encrypt these multiple-GB backups before uploading them to a third-party backup server?
pmontra 15 hours ago 0 replies      
On OVH I rsync to another VPS in a different data center. I pick the lowest priced VPS with enough space. I also rsync to a local disk at my home. I would do the same with DO.

OVH has a backup by FTP premium service but the FTP server is accessible only by the VPS it backups. Pretty useless because in my experience if an OVH VPS fails the technical support has never been able to take it back online.

2bluesc 16 hours ago 0 replies      
I use a daily systemd timer on my home machine to remotely back-up the data on my VPS. From there, my home machine backs-up a handful of data from different places to a remote server.

Make sure you check the status of backups, I send journald and syslog stuff to papertrail[0] and have email alerts on failures.

I manually verify the back-ups at least once a year, typically on World Back-up Day [1]

[0] https://papertrailapp.com/[1] http://www.worldbackupday.com/en/

mike503 11 hours ago 0 replies      
Bash script to dump all DBs local and tar up any config files.

Then the script sends it to s3 using aws s3 sync. If versioning is enabled you get versioning applied for free and can ship your actual data and webdocs type stuff up extremely fast and it's browsable via the console or tools. Set a retention policy how you desire. Industry's best durability, nearly the cheapest too.

voycey 5 hours ago 0 replies      
I really rate Jungledisk, you can choose S3 or Rackspace Cloudfiles as your storage medium, very much set it and forget it!
aeharding 15 hours ago 0 replies      
Because I use Docker Cloud, I use Dockup to back up a certain directory daily to S3 from my DO VPS. https://github.com/tutumcloud/dockup

I just use a simple scheduled AWS lambda to PUT to the redeploy webhook URL.

I use an IAM role with put-only permissions to a certain bucket. Then, if your box is compromised, the backups cannot be deleted or read. S3 can also be setup to automatically remove files older than X days... Also very useful.

spoiledtechie 16 hours ago 0 replies      
I use https://www.sosonlinebackup.com.

Stupid simple and stupid cheap. Install, select directories you want backed up, set it and forget it.

All for $7.00 a month.

colinbartlett 15 hours ago 0 replies      
The sites I host on DigitalOcean are all very simple Rails sites deployed with Dokku. The source code is in GitHub and the databases I backup hourly to S3 with a very simple cron job.
geocrasher 16 hours ago 0 replies      
I run a couple of virtualmin web servers which do virtualmin based backups (backs up each website with all its files/email/db's/zones etc into a single file, very much like how cPanel does its account backups), and those are rsynced (cron job) to my home server than runs two mirrored 1tb disks. A simple bash script keeps a few days of backups, plus a weekly backup that I keep two copies of. Overall pretty simple, and it's free since I'm not paying for cloud storage.
wtbob 11 hours ago 0 replies      
I have duplicity set up, sending encrypted backups to S3. It works pretty well, and is pretty cheap.
extesy 15 hours ago 0 replies      
I currently use https://github.com/backup/backup on my Digital Ocean instances, but https://github.com/bup/bup also looks nice.
benbristow 16 hours ago 1 reply      
What type of site is it?
ausjke 7 hours ago 0 replies      
Many ways to backup, but I always encrypt them other than just copying them to somewhere.
educar 14 hours ago 0 replies      
If you use docker to deploy, see cloudron.io. You can install custom apps and it takes care of encrypted backups to s3. And automates lets encrypt as well.
00deadbeef 14 hours ago 0 replies      
I have BackupPC running on another system


edoceo 12 hours ago 0 replies      
I make archives and put them in S3.

Use pg_dump and tar then just s3cp

yakamok 14 hours ago 0 replies      
i run a python/shell program to rsync and collect what i want backed up into one folder i then compress it and gpg encrypt it and send it to my backup server
chatterbeak 15 hours ago 0 replies      
Here's how we do it:

All the databases and other data are backed up to s3. For mysql, we use the python mysql-to-s3 backup scripts.

But the machines themselves are "backed up" by virtue of being able to be rebuilt with saltstack. We verify through nightly builds that we can bring a fresh instance up, with the latest dataset restored from s3, from scratch.

This makes it simple for us to switch providers, and can run our "production" instances locally on virtual machines running the exact same version of CentOS or FreeBSD we use in production.

X86BSD 6 hours ago 1 reply      
I don't know what the OP is running OS wise but if it's any modern Unix variant it uses ZFS. And a simple ZFS send/receive would be perfect. There are tons of scripts for that and replication.

If you're not using a modern Unix variant with ZFS... well there isn't a good reason why you would be.

nwilkens 16 hours ago 0 replies      
We have cheap reliable storage servers at https://mnx.io/pricing -- $15/TB. Couple our storage server with R1soft CDP (r1soft.com), Attic, Rsync, or Innobackupex, etc..

You can also use https://r1softstorage.com/ and receive storage + R1soft license (block based incremental backups) -- or just purchase the $5/month license from them and use storage where you want.

Ask HN: Any good examples for dashboard for performance analysis
13 points by curiousfunk  18 hours ago   2 comments top 2
roughcoder 3 hours ago 0 replies      
Can not recommend www.datadoghq.com enough, cheep and a load of integrations.
user5994461 13 hours ago 0 replies      
Get a performance tool like NewRelic, Dynatrace, Appdynamics.

They'll give you all of that.

Ask HN: Learning to code, without a computer?
195 points by givinguflac  1 day ago   177 comments top 87
informatimago 1 day ago 12 replies      
Learning to code without a computer is what we all did, 40 years ago!

He may write programs on paper, and send them to you to type them in, compile them, and print out a listing with the errors. You then send back the listing, and he will correct his program and repeat.

He'll become a great programmer, since he will have to be extra careful to avoid losing one week on some typo.

Now, it's been a few years since gcc has been able to produce a real listing of the compiled source. You would have to write some script to combine the error output with the source file to produce a classic listing. Similarly for other common modern programming language implementations.

On the other hand, without direct access to a computer, he would not attempt to write any interactive or GUI application, only batch programs, unless the interaction is performed only by an external tester for him.

Another idea: some progress has been made on optical character recognition, so if he can write well enough, it may be possible that you may be able to scan his written programs, and convert them to source file easily, without having to transcribe them. So the process could be smooth enough.

If writing ustensils include typewriter, then even better for the OCR!

llamaz 1 day ago 4 replies      
I'd recommend he read the "structure and interpretation of computer programs". It's written for audience who would, at the time, have found programming novel, but would be at home with math. Hence it's written in a language that allows you to expand out the program by pencil and paper, much the same way you would simplify an equation, to see if it works.

Also the following books, which I've copied and pasted from somewhere, to learn theory:

Mano, M.Digital Design, 3rd ed.Prentice Hall, 2002

Mano, M and Kime, CLogic and Computer Design Fundamentals, 2nd edPrentice Hall, 2001

Gajski, DPrinciples of Digital DesignPrentice Hall, 1997

Tanenbaum, AStructured Computer Organization, 5th edPrentice Hall, 2006

Patt, Y and Patel, SIntroduction to Computing Systems: From Bits and Gates to C and Beyond, 2nd ed.McGraw Hill, 2004

Null, L and Lobur, JThe Essentials of Computer Organization and Architecture, 2nd edJones and Bartlett Publishers, 2006

mbertschler 1 day ago 4 replies      
What is the most capable programmable device, that would not be considered a computer by the rules? How about a graphical calculator like a TI-83?

While I was stuck in school and did not have access to a computer, I wanted to challenge myself during classes. The most interesting distraction by far was to play around with the programming functions of my TI-82 calculator that was required for math classes. Even with almost no idea about programming I could soon do interesting things with it, because it is programmed using a version of BASIC. In the end I even created a clone of snake. It worked, but moving one block ahead would take 2 seconds.

hn_felon 1 day ago 1 reply      
I did 6 years in Texas, but I was already a developer before I went in. That said, I had some books sent to me to try to keep my mind fresh. I also helped someone else who was released a few years after me get going and now they're a junior dev.

Emphasize learning that will serve freelancing, since someone with a criminal record will run into issues with traditional employment. (I've been out since 2009 and done very well) Ruby, PHP, Javascript are some of the best bets.

I'd recommend O'Reilly's Head First books. Even if they're a few years old, really doesn't matter, given the situation. I think Sandi Metz's Practical Objected Oriented Design in Ruby is great - she does an awesome job of explaining OO principles even if you don't end up writing Ruby. The Manga Guide to Databases is another good read that explains concepts well.

I'd also consider a book that shows a quick way to build web apps, like Agile Development in Rails or maybe a book on ColdFusion. Without the ability to write and run code, it can help plant seeds for those "aha!" moments for understanding the code -> web request lifecycle without getting bogged down in ceremony.

In Texas, the books had to come from a bona fide bookseller, so don't go to B&N and try to mail the books yourself.

Stratoscope 1 day ago 0 replies      
I want to echo the suggestion that several others have made, to start with a good book on just about any programming language that has a lot of sample programs in it, and learn to read that code and execute it with pencil and paper.

This will be much more productive than trying to learn to write code from scratch while also learning a language and learning how to execute the code with pencil and paper.

I would start by going through the exercise yourself: pick out a book and use one of the first sample programs, and set up a "debugger" on a pad of paper.

I used to do this kind of debugging myself: when I first learned BASIC back around 1969, I spent some time in my grandmother's basement with two pads of paper, one with my code and one for the debugger. The debugger pad had columns across the top:

 Line number One variable Another variable Another one
Then I would step through my code, adding a row on the debugger for each line I executed, with the current line number in the first column and each new variable value in the other columns.

After going through this exercise with one program, send your friend the "debugger" pad along with the book, so he has a place to start with this idea. He can then go through the same example and follow along with your debugging steps.

That way he has a solid place to start when exploring the other sample programs in the book.

Please feel free to email me if you'd like to kick this idea around - address is in my profile. And I strongly suspect that everyone else in this thread would be happy to extend you the same offer.

I also heartily endorse the suggestion to read Charles Petzold's _Code_. It's a wonderful book!

mannykannot 1 day ago 2 replies      
Bell Lab's cardboard computer ( https://en.wikipedia.org/wiki/CARDboard_Illustrative_Aid_to_... ) came to mind, but you are probably right that studying algorithms (and at least something about hardware) is probably the best starting point. As it is some time since I was in school, I am not sure what counts as a good introductory text these days.

This does not give any experience in debugging, which is not taught in books, AFAIK. I am not sure what to do about that...

SiVal 1 day ago 1 reply      
I had to learn to program with pencil and paper, but I had occasional access to a computer, so I have to ask for more info. How long until your friend gets out? Will he have zero access to a computer while inside? Will he have someone on the outside who can take handwritten code, enter it, run it, and send back the results? If so, what will the turnaround time be? What does he want to do when he gets out?

-- If he'll be in for a year or two with essentially zero access (no computer inside, no computer buddy outside), he should learn something related to programming (math, web design with CSS, etc.), basically re-ordering a typical multi-year learning sequence to put the coding later

-- If he'll be in for ten or more years, he should learn something else. His learning will be so slow and the field changes so quickly that he might learn a few timeless fundamentals, but that's all. He could accomplish much more in some other challenging field that didn't require tools he wouldn't have (ex: math, physics, accounting, ...)

-- If he'll be in for less than five years with access to a computer (via friend outside, for example) every couple of weeks, it could work. It would be like my situation when I was a kid and kids didn't have computers (but I was able to sneak some access). I would do it differently now from what I did then. I would read programming books and get my hands on lots of small example programs. You read the lesson, do the exercise on paper, run it on paper, and only when you are SURE it works (or you're SURE you don't know how to make it work), you read the "answer" (code written by a pro) and study it. Use worked examples as feedback when you can't get it from an actual computer. As you do this, write simple things and send them to the partner on the outside as you continue to work examples on the inside. The turnaround time won't delay you as much if you have other things to do while you wait.

Now, take his real situation, consider the above scenarios, and craft one that will work for him.

downandout 1 day ago 0 replies      
A word of caution: "Learning to code" is a pretty broad subject. You should have him think about what he actually wants to accomplish with code when he gets out and have him study topics related to that. He can pickup ancillary things when he gets out; for now he likely wants to be working on something that will help him hit the ground running. If he wants to develop web pages, you should send him some books on JavaScript. If he wants to create mobile apps, there are specific books on this subject for iOS and Android. Most programming languages share concepts like OOP etc anyway, so by learning one he is laying the groundwork to much more easily pickup others.

Also, you should give him realistic expectations. Learning to code isn't the panacea that many think it is. There are many broke but talented programmers out there, and most don't have the extra baggage associated with a felony conviction. If he doesn't truly have a passion to create software, and is just looking for a way to make money, there are more efficient things he can learn about - like the psychology behind viral marketing (The Tipping Point by Malcom Gladwell and Purple Cow by Seth Godin might be good for example). I know someone that couldn't write a line of code to save his life, but makes 6 figures per month creating Facebook pages around ridiculous topics and using them to drive traffic to affiliate offers and his own Adsense pages. Your friend can always hire coders when needed if creating software isn't what he actually wants to do.

ajamesm 1 day ago 1 reply      
Sounds like a great opportunity to learn set theory, abstract algebra, number theory, linear algebra. You could get a working comprehension of cryptography or computer graphics. You could get a handle on category theory.

Those are topics that one could make progress on with only a pencil, paper, and the occasional phone call to a mentor.

I cannot imagine submitting punch cards and reading JavaScript stack traces by mail.

groundCode 1 day ago 3 replies      
I came across CS unplugged a while ago. Looks like it might be useful http://csunplugged.org/
techplex 10 hours ago 0 replies      
Neil Fraser wrote about getting a letter from a an inmate wanting to learn to program. He sent two books and a problem to solve.

CS Unplugged: Computer Science without a computer and Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers. I've also posed a problem for him to ponder:

"You have five fingers on your hand (usually -- a few people have more, many have fewer). Each finger can be either extended, or curled up. So a fist would be all fingers curled up, a high-five would be all fingers extended, and many other combinations exist (including the obscene middle-finger gesture, and probably a whole lot of gang signs). What is the total number of possible combinations that can be produced using five fingers? Can you do them all? What is the total number of possible combinations that can be produced using ten fingers? Can you figure out a pattern so that you could calculate how many possible combinations there would be if you had 16 fingers?"


exDM69 1 day ago 1 reply      
I have no idea about prison security and how things work, but are there programmable gadgets that are allowed inside? Ie. something that is really a computer inside but doesn't qualify as a proper computer when it comes to the rules. Some pocket tetris or similar game that could be hacked to run some kind of programming environment? Some old computing gadget that runs a basic interpreter? Edit: TI calculator mentioned by someone is an excellent idea if it passes the rules.

Apart from that... reading books and solving programming puzzles might be a good way. Something that has a feedback loop, which you won't have in the normal way without a computer at hand.

I must take my hat off for this kind of determination! I hope it provides your friend with a way out and they have a better life ahead of them.

jeffmould 1 day ago 1 reply      
Depends on where he is incarcerated there may be options available and if not he should find ways to bring them to the prison.

1) Edovo is a tablet learning solution that is in many jails (https://edovo.com/)

2) Another group The Last Mile, while they got their start in San Quentin, is working to bring their program/model to more prisons. https://thelastmile.org/

Regardless, I would encourage reaching out to either program to explore their options further. The people behind each are incredibly helpful and may be able to assist you with additional details.

toomanybeersies 1 day ago 0 replies      
Professor Tim Bell (University of Canterbury) is real big into this. He made CS Unplugged (http://csunplugged.org/), a program for teaching CS at school without using computers.

It is aimed at school children, but it's a place to start.

jrochkind1 1 day ago 0 replies      
I loved The Little Lisper/Little Schemer. The edition I used, at least, would work well to teach certain kinds of programmatic/computational thinking without a computer.

But I feel like I saw an actual curriculum without a computer recently, but now I can't remember what it was, curious to see if it shows up in this thread. Great idea for the incarcerated! I'm going to see if I can figure out what I'm thinking of.

Ah, I think I was thinking of the CS Unplugged that others have mentioned, sweet!

Thanks for this post, I think I'm going to buy a few copies of Little Schemer and CS Unplugged and ship them directly to a Books to Prisoners program I know that sends books to prisoners in response to topical requests.

hanakoWasNOCent 11 hours ago 0 replies      
He needs to take it in stages, first learn the vocab of whta constitutes whatever the syntax is of his preferred language.

I recommend C++ as it is useful for a LOT of different types of electronics, embedded, pc, servers, you name it.

Also UNIX scripting is very useful.

Then he should write very small programs that he can use to build into little functions for larger ones. Something like adding two numbers at first, really simple, like almost blindingly simple, just to get comfortable with the architecture of the language.

Then write something that is more complex, something like how to make a little calculator that does all sorts of functions.

He'll need at least one reference book (which I heard you said he has, but you didn't specify what type of book, so look into it... it's a bit of a tedious process to get decent textbooks into the squares, but if you buy it new and send it to them FROM THE PUBLISHER, he can get it, you probably know this, but someone else might be reading and they might wanna help someone learn as well, so they need to know)

Additional texts of note:

Data structures

Math books, especially linear algebra

Web Programming

Wireless Communications / Bluetooth

That'll last him at least a couple of years to really master. Beyond that, he needs to get a system of writing so that he's not having to use English constantly, as it will take a ton of time. I've seen people use something akin to semaphore, but it's not _extremely_ important unless he's older, and has used his hands a lot. Cramping sucks, and losing your ability to write is nicht gut.

Alright well, I hope this helps. Best of luck to your friend, and if he mentions a thank you, please tell him he's welcome.

God Bless.

S4M 1 day ago 0 replies      
If your friend plays chess - or any 1 vs 1 board game - he can implement a chess program and execute the algorithm by hand to see how his program performs. I haven't done that myself, I am sure it's tedious, but at least he will be able to see his algorithm running.
VertexRed 1 day ago 2 replies      
I don't understand why they don't give inmates access to a computer for a few hours per day.

When they're out the hard working ones will have programming skills which will help with the job hunt.

daver0_0 1 day ago 0 replies      
Maybe the best use of his time would be to develop math skills. Probability, Statistics, Calculus, Logic, perhaps a focus on algorithms (as you suggest) will give a leg up in important areas of computer science and make it much easier to jump in and do meaningful work when your friend gets out. Also all those skills do not require a computer to develop - although they are challenging. I hope there is some sort of support available in his current institution.
arikr 1 day ago 2 replies      
I remember reading an articulation that it is odd that we are taught to program differently to how we are taught to play music.

With music, we are taught to read before we write.

With programming, we start out writing.

This seems like a great chance for your friend to try out the music learning approach. Send them books of excellently written programs, and allow them to read before they write.

[As a side note: What is their goal? To program to become a software engineer? To program to build web applications for fun? To program to learn how to build products to produce a profit for themselves? The goals will inform the process.]

on_and_off 1 day ago 0 replies      
My first programming courses were all done with pen and paper.

Understanding how variables, loops, stacks and so on work was all done by writing the algorithms, and our first contact with a computer was in order to write some assembly code, after something like 2 months.

That's not ideal but you can already learn a lot without actually writing code to a computer.

Having access to a programmable calculator or even better to a smartphone would obviously be better.

Would he be able to get some kind of no-name android portable media player and write code on that ?

A simple google search leads me to QPython, I am sure there are tons of other IDEs running on Android. That might be the best option if he has access to such a device.

samblr 1 day ago 0 replies      
Writing pseudo-code on paper by making use of data-structures would set his aptitude levels. Its like building right muscles and reflexes for a sport. Books like this will help (Cracking coding interview) - https://goo.gl/jSUylb

One of the key things to also understand here is - what is missed out in this type of training. Tools. Tools. Tools.

As developers we have come far away from limited IDEs. We rely on so many tools that knowing-they-exist or sometimes mastering them is difference between good-or-bad devs. I would recommend to read printed material about IDEs, screen shots of tools.

Couple of other things I have found really helpful:* I had underestimated Medium as a platform to rely for tech news till lately. There is so much of latest developer/platform news and articles. Print outs of these definitely help. * Stackshare posts (http://stackshare.io/featured-posts) on what stacks/tools companies use (and how) are eye opening to say the least. Print outs of this.

robert_tweed 1 day ago 1 reply      
In addition to the CS books already recommended by others, do not underestimate the value of flowcharts.

You can draw a program on paper and follow it with a finger to "run" it. With a bit of practise, it'll be possible to run such mental models without even writing them down. At that point you're thinking like a programmer.

This skill is transferrable to any programming language.

sramam 21 hours ago 0 replies      
I can't seem to find the reference to it, but there was a link on HN a couple of years ago of a dad who taught kids (9 year olds IIRC) to program a robot by creating a real world obstacle course, giving them a basic set of "commands" that they could put together on post-it notes and a parent or another kid being the "robot" that "ran these instructions".

I have used this to introduce my son to the basics - and call it "post-it" programming. We built a few obstacle courses around the house. The most advanced we got was to "unload the dish washer", that resulted in him "inventing" functions.

It typically works better when some one else "executes" the program, since bugs are easier to surface and debugging is a lot more fun.

That said, my son has since learnt to read and write. There is greater enthusiasm to "type" on a computer than use post-it notes.

Hopefully this can be adapted to your friend's circumstance. Best wishes to him.

sAuronas 1 day ago 1 reply      
Be like Malcolm X and read every programming book he can get. Send him PDF copies. I'm self-taught. I obviously had a computer but I spent a ton of time just reading and studying other people's code. There was a time as a kid when I wanted to play the Sax but my mom made me wait a year. I bought a book and learned the fingerings and played by air for a whole year and took first chair the next. If he is really motivated, he can do it. In fact... I'll contribute and send him books as well as advise on how to get there. Send me a message and I'll help you help him.
tzs 1 day ago 0 replies      
Would he be allowed to have a calculator? If so, then maybe you could get him a programmable calculator. Something like an HP-48gx, perhaps.
vargavince91 1 day ago 0 replies      
Agree with all the CS Basics book (would add the Code: The Hidden Language of Computer Hardware and Software, great book and if he has time, I'd go for it). I'd also consider giving him a couple of books, like: A) Clean Code by Bob Martin, B) Soft Skills by Jon Sonmez. Books that doesn't require a computer, yet teach the reader how a good developer should think while writing code and working in a team. It's also less likely he gets stuck while reading this kind of literature.

Would help if you shared the end goal. Get hired anywhere? Get hired by Top 4 Tech Company or Hot Startup of the Year? Start a business? Don't get bored? How long is he going to be incarcerated?

I would greatly appreciate if you shared your experience.

uola 1 day ago 0 replies      
I would consider if focusing learning CS or fundamentals is the right approach. What is the plan when he gets out? I'm not sure there's a lot of beginner CS or C jobs around without credentials. Is he going to try and go to school afterward and is that actually feasible?

Otherwise I would suggest combining CS with more applied programming with smaller scope (like a web stack), developer methodologies (designing, methodology, testing) or design (interaction, interfaces, experience). Those would be things that he could more easily be practice as he gets out, aren't as focused on credentials and would more likely land him some sort of job.

veddox 1 day ago 3 replies      
Learning programming without a computer is going to be really tough, but if he's dedicated enough, he should be able to make some good progress. (Although he shouldn't expect to be employable as soon as he gets out.)

CS theory probably makes a good starting point, as a lot of it doesn't require actual coding, but still lays a solid foundation for future work. I would recommend SICP (Structure and Interpretation of Computer Programs, by Abelson and Sussman) as a good starting point. It uses Scheme, which isn't exactly a language he's likely to end up working in, but it will teach him a whole lot about thinking like a programmer.

LouisSayers 1 day ago 0 replies      
You could give him a pack of cards, and a book on data structures and algorithms.

He can learn the algorithms and apply them to the cards in order to check his understanding. He just needs to make sure that he acts like a computer would - only ever comparing two cards at once.

He can simulate this by having all cards placed face down apart from the two that he's currently doing the comparisons with. At the end he can flip all the cards over to make sure he got the intended result.

I'm sure by doing this he could learn all sorts of algorithms this way, and learn to code in the same way.

He may not have a computer, but don't they say that the greatest computers are the ones in our heads?! He just needs to dumb it down a bit for the sake of the exercise.

amorphid 1 day ago 0 replies      
Hey! This is a topic I'm interested in, too. If you'd like brainstorming on the idea, drop me a line. My email is in profile.

My first thoughts:

- iterate more quickly by experimenting with non-computer users who aren't in prison, as letters/email to a prisoner will have a slower feedback loop

- learn what people consider to be more fun, and and try to structure lessons within that

- see if there are some existing resources that are close to, but not exactly like, programming without a computer

- set up an open source curriculum on GitHub, so people besides yourself can contribute

schoen 20 hours ago 0 replies      
I thought of several books, but they've all been mentioned in the thread already, so I'd just like to congratulate everyone on the wide range of interesting suggestions.

OK, I guess I'll also mention Hillis's The Pattern on the Stone, which I feel has mostly been superseded by Petzold's Code. It's less technical and less detailed than Code and would be a much quicker read, where Code gives a more detailed understanding of these ideas.

txutxu 1 day ago 0 replies      
I did a LOGO programming course before having a computer, but we did have computers in the course. That did help.

One thing that did help me a lot when I didn't have computer or fast internet connection, were: the computing and programming paper magazines.

Maybe you can research for your friend programming magazines (on paper) which are available nowadays; and he can subscribe to them. Maybe he can even redistribute or perform as internal reseller once done with the chapters.

They use to treat diverse topics on monthly steps, and is a convenient way to assimilate knowledge. Ones are better than others and introduce less partial views... you must view on your own.

I can't help, because I'm many years without buying one.

jasim 1 day ago 0 replies      
I think Richard Bird's Thinking Functionally with Haskell will be an excellent book to learn programming without having access to a computer. It'll teach him how to think about programs as a set of simple equations, and also clearly demonstrates that Data Structure + Algorithms = Programs, a notion that easily gets forgotten to great detriment in imperative programming.

It is very much an introductory text to programming, something that can be picked by someone who has an inclination to the craft but with no prior experience. It doesn't even get into Haskell's powerful type system and sticks to primitives and lists. The intention is to teach the building blocks of programming through small, pure functions.

The text is very conversational, chapters are short and sweet, and have a lot of bite-sized exercises along with their answers which will greatly help a self-learner. It will also be easy to evaluate since functional code don't tend to get very verbose.

bra-ket 1 day ago 1 reply      
I learned programming without a computer in the 90s with Kernigan & Ritchie "C Programming Language", one of the best coding books ever written:


I'd also learn SICP: https://www.amazon.com/Structure-Interpretation-Computer-Pro...

and algorithms from either CLRS https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press... or Skiena Algorithm Design https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...

joatmon-snoo 1 day ago 1 reply      
On a CS-theory level, there's a fair amount of stuff he can learn in terms of just "thinking", but it won't come very close to being able to putz around with code and watch it fail.

Suggestions for absolutely no computers:

* CLRS, the classic. (I just skimmed the intro, though, and if he has no background in uni-level maths, it might be a little tough to digest.)

* (maybe) the Head First series (as someone else suggested). I'm wary of suggesting it not just because I have no experience with the books (I only even mention it because I know they're ubiquitous), but also because bad habits are formed early, and this could do that.

* Patterson and Hennessy - Computer Organization and Design (5d.)

* Sebesta - Concepts of Programming Languages (11d.) (but only after finishing some of CLRS, and even then I don't know how appropriate this is)


What kind of experience did he have with computers before he went in?

Depending, you may be able to make recommendations about stuff relevant to what he's used.


Can you get him something like a TI-84? Because even that will at least allow him to go in and write TI-BASIC.

phes 1 day ago 0 replies      
I remember reading this here a while back - wonder what happened:https://neil.fraser.name/news/2015/04/13/

But like others in this post I would recommend CS unplugged.

And depending on how long he is in there for he might want to look at:

How to Design Programs - This is a good book, and although it's in Scheme, it teaches how to create appropriate levels of abstraction, which seems to be something many programmers struggle with.

Concepts, Techniques & Models of Computer Programs - Discusses the different paradigms and how they are inter-related.

Also something a bit more vocational like The Pragmatic Programmer or Clean Code / Clean Coder probably wouldn't hurt either.

If he can read all of those he will be very well prepared to do some actual programming when he gets out.

SICP not a bad shout either, although I've not got past the first chapter.

heisenbit 23 hours ago 0 replies      
Adding one aspect to this already comprehensive list of good advice: Read good code.

There is a lot to be learned from writing code as it forces you to make decisions. This can be done in part on paper and in batch programming mode. There is also a lot to be learned from reading not just snippets and algorithms but from studying complete works. Software is a lot about architecture and integration. A stack of printed code and a #2 pencil is all it takes.

rshm 1 day ago 0 replies      
I had few months of GWBASIC experience from high school. Relative living in US mailed me Java the complete reference, i think the first editition with peter naughton still as co-editor. It was not a dedicated effort but read the book several times for two years during free hours without computer (could not afford one). Finally after getting used pentium, the transition to real programming was easy and fast. I remember having aha! moment of oop after year and half but by the end of two years i had pretty much mastered the core java.

I was driven by courisity, no pressure of completion and had all the time in the world. The book was thick with complete programs with outputs instead of snippets. Book also had list of all core packages, class and their members. It helped to grasp the core libs before hand.

I would suggest a comphrensive book. I have not checked any Osborne reference series since then, but check if there are similar ones for python.

blintz 1 day ago 0 replies      
I'd strongly recommend The Little Schemer (Friedman and Felleisen). It's written without the expectation that you have access to a computer. It's also written in a very approachable way - it assumes no prior familiarity with programming or even math, and it's in a simple question and response format.
dragandj 1 day ago 0 replies      
This is an excellent book from the pen and paper era, that is more than modern (functional programming is popular now): https://www.amazon.com/Introduction-Functional-Programming-C...
natewalck 1 day ago 0 replies      
Whenever I approach a new language, I read a book on it and go through the code in my head. I am a very visual person, so I practice visualizing what is happening as I read it. Once I have a proper mental model, I find I have a much easier time writing it on a computer. Perhaps one gets faster at visualizing code, but I've always found that I tend to be slower to learn new languages, but have a solid grasp once a good mental model is made.

I'll definitely take a look at some of the languages mentioned in this thread that are made to be done on paper. Sounds like a great exercise.

fallous 1 day ago 1 reply      
Start with learning symbolic logic. I'd then suggest learning something like 6502 assembler on a simple machine that existed (in order to attain predictable results and in order to have reference materials based on the programming results and tricks that real coders of that machine achieved).

I'd then suggest moving to something like SICP and/or NANDtoTetris.

If you learn the abstract fundamentals first, you will understand how they apply in every increasingly complex system you encounter... and none of that is syntax or frameworks but instead an ability to see and extract the underlying problem domain, which will then guide you in the solution.

api_or_ipa 1 day ago 0 replies      
Most, if not all of introductory discrete math, logic gates, basic CPU logic, data structures* and algorithms can be mastered without a computer.

Most (all?) CS students learn this early on in university anyways, so it's natural to study if your friend is interested in computer science.

He can also spend the time to master math, especially linear algebra. Getting a firm understanding on math never hurt any budding programmers and opens a ton of doors.

* Once released, he can play with different DSs and experience their asymptotic performances for himself.

codingdave 1 day ago 0 replies      
In addition to all the other answers, doing some procedural thought exercises may help. He can practice breaking down complex actions into more basic instructions. For example, thinking through what steps he takes to walk to a meal. He can start at a high level of just the turns and distances to walk, then think through what he actually does to take a step, or make a turn, or sit down or stand. It may not seem like much, but it will train him to think about how to build out instructions at different levels of abstraction, which will make a significant dent in the learning curve once he does gain access to a computer.
caconym_ 1 day ago 0 replies      
I remember that the book "Feynman's Lectures on Computation" has some excellent descriptions of basic computing models (FSMs, Turing machines, ...) as well as interesting exercises in constructing "programs" using those models. It may not be as practical as he/you are looking for, but I think it might be a great choice because it does an amazing job explaining the basic theory of computation and the "programs" called for in the exercises can be easily run by hand, on paper.

It might be a good place to start, at the very least. But it will only appeal to a certain sort of person.

hackermailman 1 day ago 0 replies      
The Schemer's Guide was designed for paper and penhttps://www.amazon.com/Schemers-Guide-Iain-Ferguson/dp/09628...

D is for Digital is a good survey and has some Javascript programming info, Amazon has the second version draft already http://kernighan.com/

samfisher83 21 hours ago 0 replies      
I remember having to write assembly code (6800 series) for some of my tests. That was no fun. At least we got to use cheat sheets with all the op codes. I don't think its that unique having to write code without a computer.
franze 1 day ago 0 replies      
Google & Print or buy "The C Programming Language"Let him study every letter. It simply is the best "start from zero" programming guidebook.

Then buy him a RasPi (+with instal guide).

sanjamia 23 hours ago 0 replies      
I can suggest a simple approach that worked for me. I learned to code without a computer by reading interesting coding books and writing my programs on graph paper. I did not worry about my approach because I did this for fun. I made each decision about my learning based on whether it was interesting and that it expanded and exercised my knowledge. Save written programs. Carefully play the role of the computer and execute your own programs and use graph paper for pixels. Copy and modify code from books. Know that you're building a foundation and going to the great lengths that only a great coder would attempt.
ceterum_censeo 1 day ago 0 replies      
It's hard to say exactly at what point it would be an appropriate read, but perhaps Knuth's The Art of Computer Programming should be on the reading list.
wordpressdev 1 day ago 0 replies      
My first coding language was GW-BASIC and, as the computer time was limited, I did most of the coding on paper - it was called Dry Run. Used to write up to 200 lines of code on paper, test it on paper and then type in the computer when I get into the lab.
bladedtoys 1 day ago 0 replies      
A light introductory college text on "Symbolic Logic" with exercises and answers if possible.

The way of thinking that such a text gives is nearly identical to the thinking needed for coding.

Just one example: We coders sometimes forget that a conditional like "if (not (A and B)) or C then..." is utterly incomprehensible to the bulk of humanity. Go through a logic book and that stuff will be second nature.

Also it helps lifelong with clarity of thinking which is nice too.

sfifs 1 day ago 0 replies      
When I was 11, I learned to code BASIC by reading a programming language manual that came with IBM PCs by writing out programs in a notebook. It was many months before I actually touched a real computer (which was a learning experience in itself, but didn't change what I had picked up too much).

So definitely possible.

chvid 1 day ago 0 replies      
There are some good theoretical computer science (sciency) books out there. I would recommend two of my favourites:

Gary William Flake: Computational Beauty of Nature

Douglas Hofstadter: Godel Escher Bach

They won't make you a programmer ready for a job at Facebook; but they will entertain the part of your head that makes you a good programmer.

The two books are also very well written and quite entertaining which give you the motivation you miss if you cannot try things out on your own.

Other than that: Study math at any level.

rezashirazian 1 day ago 1 reply      
That's like learning astronomy without a telescope: not as fun, much more difficult but very possible.
solotronics 1 day ago 1 reply      
Why are you not allowed a computer when incarcerated?
Retr0spectrum 1 day ago 2 replies      
I used to write BASIC programs on paper as a child before I had access to a computer.

There are plenty of algorithms you can learn without a computer too, and carry out on paper.

I have no idea what kind of things are allowed in prisons - would a microcontroller running a simple interpreter coupled with a small LCD and keypad be allowed? If so, something like that would be really great for applying programming concepts.

protomyth 1 day ago 0 replies      
I would go with the unplugged books that were mentioned by many, or help him learn introduction to digital electronics. When I went to school in 88 we didn't use a computer for designing our circuits. Designing a vending machine controller was the final project.
sleepychu 1 day ago 0 replies      

We used to frequently emulate a machine by hand on paper I think it was 16-bit but it might have been even smaller (not touched it since my first year of undergrad) and you could/can write a lot of cool programs for it.

z3t4 1 day ago 0 replies      
Computer science. While most self thought programmers started from the other end, theres nothing wrong with learning theory first.
glibgil 1 day ago 0 replies      
Honestly, it is probably better for him to become a computer engineer than a software engineer. This might be a fun place to start https://sites.google.com/site/kotukotuzimiti/Paper_Processor
the_watcher 1 day ago 0 replies      
Learning to code will be tough, although there are some great resources in here that I might pick up myself. Doesn't mean he shouldn't try though, but my recommendation would be to start with design, as there are a lot more offline resources for learning the principles of design, which apply across a lot of different disciplines.
35bge57dtjku 1 day ago 0 replies      
Can you mail him books? There are plenty of interesting, free programming books online one could print out.
K_REY_C 1 day ago 0 replies      
Computer science unplugged is great. Aimed at kids, but if starting out it may provide a good framework. http://csunplugged.org/
wepple 1 day ago 0 replies      
Different angle: Possibly a great opportunity to start low with CPU architecture, memory layout, and basic concepts in OS design. It'll really help further down the line and doesn't require any computer to execute code on.
neilsharma 1 day ago 0 replies      
Ask him for a list of concepts he doesn't understand well and post them here. Maybe the crowd can find some good blogposts online that you can print out and give it to him.
abledon 1 day ago 1 reply      
As cheesy as this sounds...

the HEAD First book series,they have fill in the blanks programming exercises.

houml 1 day ago 0 replies      
Study a language and algorithms. Recite those functions and algorithms from memory, and then compare what he writes and those in books.
leekh 1 day ago 0 replies      
I had to teach CS in Africa with very few resources e.g. electricity and working pc's.

The best thing I found http://csunplugged.org/

bikamonki 1 day ago 0 replies      
If you can get us a list of personal items that he's allowed inside, maybe we can help you figure it out if it's possible to build a tiny computer ;)
x0x0 1 day ago 1 reply      
If your friend has free time, he may also enjoy _Code_ by Charles Petzold. It's a layman-oriented explanation of how computers work.

Is he in state or federal prison? Are there no classes available that could give him access to a computer?

houml 22 hours ago 0 replies      
Study a program language and recite codes from memory.
caffinatedmonk 1 day ago 0 replies      
I would recommend to start with the basics: logic, assembly, algorithms and data structures.
rhlala 1 day ago 0 replies      
Suggest him to invent his own language!
williamle8300 1 day ago 0 replies      
A programmer is someone who puts himself above phenomena that he observes around him. So programming isn't intrinsically related to a computer.

He needs to find interesting things around him, and just make plans. Write it down. Without a computer he can use a paper and pencil.

Pulce 1 day ago 1 reply      
Me :)

I'm 'fighting' ('working' is a better definition) for civil rights in my city, so I think I will be incarcerated in the future...

I think I will organize a 'paper' version of Scratch, with me as an interpreter of lines of code.

edit: I'll miss Stallman's videos...

SixSigma 1 day ago 0 replies      
Try Bell Labs Cardiac the cardboard computer


EdwardMSmith 1 day ago 0 replies      
Any possibility of a higher-end TI or an old HP calculator?
damptowel 1 day ago 0 replies      
He could build a mechanical computer :) you can build adders out of marble tracks, use hydrolics or legos, etc.
smegel 1 day ago 0 replies      
Does he have pen and paper? Get him to design user interfaces for programs, and art to go with them. WAY harder than coding, at least for me.
yarou 1 day ago 0 replies      
Try to teach him the lambda calculus. Church-Turing thesis still holds today, so if he's able to learn the lambda calculus he will understand what functions are indeed computable, and what functions are impossible to compute, regardless of hardware, software, etc.

You don't need to have a computer (Von-Neumann et al didn't have one!) to invent a brilliant algorithm.

cheez 1 day ago 0 replies      
Send him the turtle game to play
Jugurtha 1 day ago 0 replies      
Well, we used to do that in college in... 2005, 2006, etc. We had a lab once a week, but we wrote and debugged programs in Pascal, C, x86 ASM, Microchip ASM by hand. We wrote stuff for the Intel 8251, 8253, 8255, 8257, 8259 (to handle interruptions and do serial communication, etc).

We'd go line by line and change the relevant registers, arrays, pointers, counters, etc. Exams consisted of doing that, too. Sometimes you're given a piece of code and asked about the state at a certain break point. Sometimes you're given a succession of register values an asked what the program is doing. A missing semicolon had a direct influence on your grade, not on stdout.

It's not guaranteed that it produces excellent programmers, but one can learn a lot and it was almost a meditation to focus like that and ask yourself "Why isn't it running?". It was cool (at least for me, I disassembled programs as a teenager and I had a computer, but I still think this was useful).

lifeisstillgood 1 day ago 0 replies      
Hmm, so uk rules seem different- allowing even non-internet enabled games consoles.

At which point the possibilities expand ...


Theodores 1 day ago 1 reply      
This is a good question for old timers that learned to code by rote with a home computer back in the day when you could learn a language and all of it from a couple of manuals. But times have changed and nowadays I do not have any books directly relevant to my current programming skill set - Stack Overflow is my friend.

So what books do I have?

Books on usability and web accessibility are good reads, however no obvious title springs to mind ('Don't Make Me Think!' would last your friend all of a morning).

One thing though, chess. Chess is played in prisons and some prisoners get rather good at it. Maybe encourage your friend to form a chess league if there isn't one already. Perhaps get him a really good book on chess that can be used by this chess league to be.

icantdrive55 1 day ago 0 replies      
I would go through Hacker news past posts, and comments.

Print out the better ones.

Get him familiar with the lingo.

My biggest stumbling block was learning the ever changing language of all aspects of computing.

Then buy him Learn to Program by Chris Pine. I would also want him very comfortable with UNIX, and the command line.

When he gets out,if he has some support; he will do just fine.

Ask HN: Any recommendations on resources for learning one algorithm a day?
185 points by alphanumeric0  1 day ago   35 comments top 27
gaus 1 day ago 1 reply      
This is a good resource we used in a university course I took on algorithm design and analysis...


I would probably recommend studying individual classes of algorithms, and to only move on when you feel ready, as opposed to learning algorithms in ascending difficulty (at the risk of learning them in a haphazard fashion).

VisuAlgo is another cool site that has lots of algorithm visualizations...http://visualgo.net

And, if you can handle the dude's voice, I recommend checking out Xoax.net's algorithm videos...http://xoax.net/comp_sci/crs/algorithms/index.php

What you will probably find is that it's more valuable to gain experience designing your own algorithms using tried-and-true techniques such as dynamic programming, greediness, divide-and-conqur, linear programming, etc. Also keep in mind that data structures are closely linked to algorithms, and vice versa. If you are not familiar with big-O notation I suggest you begin there as it can be used as a measure of both an algorithm's time complexity and its data complexity.

ChoHag 1 day ago 1 reply      
I suggest a dose of reality:

You can't. You may be able to consume the knowledge underpinning an algorithm and parrot it back but any attempt to learn it in one day is doomed to failure. Parrot knowledge has zero retention.

LeonardA-L 1 day ago 0 replies      
Last year was Advent of Code ( http://adventofcode.com/ ) and while they did not name them, each exercise was based on a known algorithmic problem (knapsack, traveling salesman, ...), and it was a fun way to engage people in a "1 exercise a day" pattern.

I guess you can also try your hand at CodinGame's puzzles ( https://www.codingame.com/training ) as they also involve known algorithms and they are realy fun to play.

But ultimately, both of these resources won't teach you how to implement algorithms.

ClayFerguson 1 day ago 0 replies      
Taking up a new algorithm each day is the best way I can think of to be sure you don't know any algorithms well. Learn what the various algorithms are, what problems they solve, and what the general classifications of them are, then move on. You are then empowered to dig deeper into the correct one once you have the actual need for one, you know if it exists or not, and how to begin.
keeperofdakeys 1 day ago 1 reply      
You might try The Algorithm Design Manual, the second half of the book is a giant index of algorithms. The first part is a guide on what algorithms you should pick depending on what you're doing.
simonhorlick 1 day ago 1 reply      
Just read The Art Of Computer Programming by Knuth very slowly. There's basically a different algorithm every other page. Of course, it will still take you years.
gravypod 1 day ago 0 replies      
I'd say you'd be far better off deriving your own algorithm every day.

Make something to solve a real problem every day of your life and you'll be far better at solving problems then other people. I'd rather be able to do that then just parrot back sorts, graph traversals, and what not.

codepie 22 hours ago 0 replies      
You can try competitive programming course by ITMO on edx (https://www.edx.org/course/how-win-coding-competitions-secre...). It's going to start on 17th October.
mindviews 1 day ago 2 replies      
https://projecteuler.net/ is an excellent tool for developing algorithmic thinking. From the project description:

The problems range in difficulty and for many the experience is inductive chain learning. That is, by solving one problem it will expose you to a new concept that allows you to undertake a previously inaccessible problem. So the determined participant will slowly but surely work his/her way through every problem.

leventov 1 day ago 0 replies      

Pretty much in the beginning of translation to English, but the original resource in Russian is a trove of information on algorithms. Suits well for the "one also a day" learning format.

amberj 1 day ago 0 replies      
I would recommend "The New Turing Omnibus" book by A.K. Dewdney:http://amzn.to/2dGetic

Jeff Atwood aka CodingHorror (of Stackoverflow and Discourse fame) recommended this book strongly in this post titled "Practicing the Fundamentals: The New Turing Omnibus": https://blog.codinghorror.com/practicing-the-fundamentals-th...

bsznjyewgd 1 day ago 0 replies      
You might be interested in Programming Praxis https://programmingpraxis.com/, a blog that posts a few exercises per week, with solutions. Some of them are more interesting, some of them less so.
kalimatas 1 day ago 0 replies      
http://www.geeksforgeeks.org/ has a collection of algorithms and puzzles split by topics.
fsloth 1 day ago 0 replies      
If you want to learn an algorithm I suggest implementing it as well. Since this question does not state any prerequisites I can only suggest the hands down best practical datastructure and algorithm study and reference book I've come accross: http://infolab.stanford.edu/~ullman/focs.html

It's old but concise and very much to the point. All of the material is highly practical.

0xCMP 1 day ago 0 replies      
https://www.interviewcake.com/ is a great site. Eventually you need to pay, but he send out a question almost every day you can try out.
splatcollision 22 hours ago 0 replies      
Code Wars is my favorite. The earlier ranks are pretty simple but there's a broad depth of challenging problems at the higher levels. Online editor and test runner verifies your solution and the community aspects are a big win.


infodroid 1 day ago 0 replies      
I found a relevant app Algorithms: Explained & Animated [1] that was just posted as a new HN story [2].

[1] http://algorithm.wiki/[2] https://news.ycombinator.com/item?id=12670674

drobert 22 hours ago 0 replies      
rusrushal13 22 hours ago 0 replies      
Go for http://www.spoj.com/, every question there needed an algorithm and doing one question per day will help you in getting better and better in algorithms per day.
jefflombardjr 1 day ago 0 replies      
https://www.hackerrank.com/ Has an algorithm section, might be worth a look!
Gammarays 1 day ago 0 replies      
We've been working on a project with a small community of developers that helps rank various tools and recommendations:


Would love to hear if this is helpful to you.

ilaksh 1 day ago 0 replies      
One algorithm a day -- the short answer is if you were going to really learn them and not just forget them then you would have to cheat and constantly review previously 'learned' algorithms as you go. Otherwise you will learn X algorithms and likely forget nearly X algorithms.

I have to question the value of only focusing on learning algorithms and on the idea of optimizing the quantity.

In terms of learning lots of them, it might be more useful to focus on learning more fundamental algorithms _better_ rather than tons of them. Or you might want to carefully select the most generally useful algorithms or ones in a specific field relevant to current projects.

Also, now that we have such powerful general purpose languages and efficient module versioning and distribution, learning to take advantage of those probably has more practical use.

For example, you could spend several weeks or years learning various statistical methods and algorithms for machine learning in a particular area. But then you realize that all of the algorithms are already implemented in python code libraries so you start learning how to apply the libraries in real code for applications rather than reimplementing the libraries.

But then you find out that deep learning techniques far outperform all of those algorithms you learned to implement and then apply via those libraries.

So then you train yourself on sophisticated deep learning techniques and start to implement LSTM in python. Then you realize you never quite got the fundamental understanding of neural networks so go back to work on learning that better.

Then you implement some core neural network algorithms in python and start to build back up to your LSTM implementation. Now you find out that TensorFlow exists but lacks good support for AMD which your university has (perhaps erroneously) made a large investment in.

So then you decide the best thing to do would actually be to try to fix some basic bugs that occur on your platform with the latest TensorFlow/OpenCl/AMD code (or whatever).

You manage to fix one of the minor issues and now several geniuses have their day improved by a bit or two.

The point is, trying to learn a ton of random algorithms in a short period probably isn't the best use of your time.

alexisnorman 1 day ago 0 replies      
Highly recommend Grokking Algorithms for beginners and refreshes.
haffi112 1 day ago 0 replies      
todd8 20 hours ago 0 replies      
Depending on your level of programming ability, one algorithm a day, IMHO, is completely doable. A number of comments and suggestions say that one per day is an unrealistic goal (yes, maybe it is) but the idea of setting a goal and working through a list of algorithms is very reasonable.

If you are just learning programming, plan on taking your time with the algorithms but practice coding every day. Find a fun project to attempt that is within your level of skill.

If you are a strong programmer in one language, find a book of algorithms using that language (some of the suggestions here in these comments are excellent). I list some of the books I like at the end of this comment.

If you are an experienced programmer, one algorithm per day is roughly doable. Especially so, because you are trying to learn one algorithm per day, not produce working, production level code for each algorithm each day.

Some algorithms are really families of algorithms and can take more than a day of study, hash based look up tables come to mind. First there are the hash functions themselves. That would be day one. Next there are several alternatives for storing entries in the hash table, e.g. open addressing vs chaining, days two and three. Then there are methods for handling collisions, linear probing, secondary hashing, etc.; that's day four. Finally there are important variations, perfect hashing, cuckoo hashing, robin hood hashing, and so forth; maybe another 5 days. Some languages are less appropriate for playing around and can make working with algorithms more difficult, instead of a couple of weeks this could easily take twice as long. After learning other methods of implementing fast lookups, its time to come back to hashing and understand when its appropriate and when alternatives are better and to understand how to combine methods for more sophisticated lookup methods.

I think you will be best served by modifying your goal a bit and saying that you will work on learning about algorithms every day and cover all of the material in a typical undergraduate course on the subject. It really is a fun branch of Computer Science.

A great starting point is Sedgewick's book/course, Algorithms [1]. For more depth and theory try [2], Cormen and Leiserson's excellent Introduction to Algorithms. Alternatively the theory is also covered by another book by Sedgewick, An Introduction to the Analysis of Algorithms [3]. A classic reference that goes far beyond these other books is of course Knuth [4], suitable for serious students of Computer Science less so as a book of recipes.

After these basics, there are books useful for special circumstances. If your goal is to be broadly and deeply familiar with Algorithms you will need to cover quite a bit of additional material.

Numerical methods -- Numerical Recipes 3rd Edition: The Art of Scientific Computing by Tuekolsky and Vetterling. I love this book. [5]

Randomized algorithms -- Randomized Algorithms by Motwani and Raghavan. [6], Probability and Computing: Randomized Algorithms and Probabilistic Analysis by Michael Mitzenmacher, [7]

Hard problems (like NP) -- Approximation Algorithms by Vazirani [8]. How to Solve It: Modern Heuristics by Michalewicz and Fogel. [9]

Data structures -- Advanced Data Structures by Brass. [10]

Functional programming -- Pearls of Functional Algorithm Design by Bird [11] and Purely Functional Data Structures by Okasaki [12].

Bit twiddling -- Hacker's Delight by Warren [13].

Distributed and parallel programming -- this material gets very hard so perhaps Distributed Algorithms by Lynch [14].

Machine learning and AI related algorithms -- Bishop's Pattern Recognition and Machine Learning [15] and Norvig's Artificial Intelligence: A Modern Approach [16]

These books will cover most of what a Ph.D. in CS might be expected to understand about algorithms. It will take years of study to work though all of them. After that, you will be reading about algorithms in journal publications (ACM and IEEE memberships are useful). For example, a recent, practical, and important development in hashing methods is called cuckoo hashing, and I don't believe that it appears in any of the books I've listed.

[1] Sedgewick, Algorithms, 2015. https://www.amazon.com/Algorithms-Fourth-Deluxe-24-Part-Lect...

[2] Cormen, et al., Introduction to Algorithms, 2009. https://www.amazon.com/s/ref=nb_sb_ss_i_1_15?url=search-alia...

[3] Sedgewick, An Introduction to the Analysis of Algorithms, 2013. https://www.amazon.com/Introduction-Analysis-Algorithms-2nd/...

[4] Knuth, The Art of Computer Programming, 2011. https://www.amazon.com/Computer-Programming-Volumes-1-4A-Box...

[5] Tuekolsky and Vetterling, Numerical Recipes 3rd Edition: The Art of Scientific Computing, 2007. https://www.amazon.com/Numerical-Recipes-3rd-Scientific-Comp...

[6] https://www.amazon.com/Randomized-Algorithms-Rajeev-Motwani/...


[8] Vazirani, https://www.amazon.com/Approximation-Algorithms-Vijay-V-Vazi...

[9] Michalewicz and Fogel, https://www.amazon.com/How-Solve-Heuristics-Zbigniew-Michale...

[10] Brass, https://www.amazon.com/Advanced-Data-Structures-Peter-Brass/...

[11] Bird, https://www.amazon.com/Pearls-Functional-Algorithm-Design-Ri...

[12] Okasaki, https://www.amazon.com/Purely-Functional-Structures-Chris-Ok...

[13] Warren, https://www.amazon.com/Hackers-Delight-2nd-Henry-Warren/dp/0...

[14] Lynch, https://www.amazon.com/Distributed-Algorithms-Kaufmann-Manag...

[15] Bishop, https://www.amazon.com/Pattern-Recognition-Learning-Informat...

[16] Norvig, https://www.amazon.com/Artificial-Intelligence-Modern-Approa...

Ask HN: What is your favourite stack for small personal projects?
7 points by ScottAS  16 hours ago   9 comments top 9
usgroup 14 minutes ago 0 replies      
Linode &Docker &bash &(Go v R v Python) &SQLite
soulchild37 2 hours ago 0 replies      
Ruby on Rails + PostgreSQL hosted on digitalocean. I have written a chef cookbook that helps me configure basic server security and install Rails/Nginx/PostgreSQL with just one command. The automated server setup took around 15 minutes then I can deploy my app to it.
stevekemp 1 hour ago 0 replies      
I tend to use Perl (generally via CGI::Application, but more recently with Dancer / Mojolicious). For databases I use MySQL and Redis for caching.
mobiuscog 4 hours ago 0 replies      
Java or Python (or occasionally C#).

Why do I need a 'stack' for a personal project ? Also, a weekend-or-two to set-up ?!? If it takes longer than 30 minutes to get going, it's not going to happen.

shakna 5 hours ago 0 replies      
Coffeescript, Flask or Bottle, Heroku. Maybe Firebase if I need a database.

Or if I don't need anything dynamic, Hakyll (Pandoc integrated!), and GitLab Pages (automatic CI deploy via any docker instance from git push).

pmontra 14 hours ago 0 replies      
Ruby or Ruby on Rails, because they're the ones I'm more proficient in. I did very small projects in Node and Elixir and I would like to become better at Elixir. But the time for personal projects is small so productivity is super important.

In general pick the tools you're better at.

merchang 3 hours ago 0 replies      
LAMP + Skelton boilerplate
randelramirez 7 hours ago 0 replies      
asp.net mvc + EF + AngularJS + TypeScript + Bootstrap, I'm a .Net Developer.
warriorkitty 15 hours ago 0 replies      
Laravel + AngularJS + Heroku
Ask HN: Can you try my web app beta and give me some feedback?
5 points by sbashyal  9 hours ago   9 comments top 5
pedalpete 9 hours ago 1 reply      
Why oh why would you put it behind an email wall? Why would you need my email to show me "what I assume" is image search.

My feedback. Ok, I can search for stock photos. But can't I already do that? There are lots of stock photo searches. But this one uses AI. So what?

Ok, let's see how your solution is better than anybody else. Oh, I can't you want my email, and I'm not really that bothered.

cocktailpeanuts 9 hours ago 0 replies      
You are wasting your precious chance on the front page of HN, especially when you're asking for help.

I'm guessing the bounce rate is like 99% right now.

If I were you, I would just let people access it if they came from HN referer

detaro 9 hours ago 1 reply      
(clickable link: http://aiphotosearch.com)

If you give us a demo page to try without signing up (at a private URL and with a clear time limit if you want), you are going to get a lot more feedback. Or at least show what we are going to get inside. And don't ask for a twitter account during signup.

macscam 8 hours ago 1 reply      
you can just type a fake email and get to the actual site.

1. change the title, it's still "My ASP.NET Application"\

2. It works OK (searching for 'pizza' shows some photos) and the design is pretty nice. I think you could improve it by reducing the number of different fonts you're using.

samblr 4 hours ago 1 reply      
A similar app can be built using google image search api ? how does it differentiate in feature set ?
Any online apps to learn history/ geography/ economics (serious stuff)?
14 points by de4sher  20 hours ago   4 comments top 4
brylie 19 hours ago 0 replies      
[Khan Academy](https://khanacademy.org) has forever free, study at your own pace, courses in many topics.
afarrell 14 hours ago 0 replies      
For learning historical narratives, Youtube is honestly pretty great. Crash Course[1] is good for a broad overview. It presents a fairly coherent narrative and the advantage of this is that you can then relate any other historical narrative to this skeleton. Extra History[2] is a good example of a channel that presents narratives of specific incidents. If you are looking for a channel focusing on one particular period from lots of different angles, The Great War is not bad[3].

But none of this is actually going to teach you the skill of inquiry and skeptically reading different competing historical narratives. You kinda do need a class for that. A friend of mine is building a startup to make running one easier: https://www.beaglelearning.com/

[1] https://www.youtube.com/watch?v=Yocja_N5s1I&list=PLBDA2E52FB... , https://www.youtube.com/playlist?list=PL8dPuuaLjXtMwmepBjTSG... , and https://www.youtube.com/playlist?list=PL8dPuuaLjXtPNZwz5_o_5...[2] https://www.youtube.com/watch?v=EbBHk_zLTmY&index=1&list=PLh... [3] https://www.youtube.com/playlist?list=PLB2vhKMBjSxMK8YelHj6V...

roschdal 18 hours ago 0 replies      
Freeciv-web at https://play.freeciv.org is a game which could teach some history and geography.
davidc11 19 hours ago 0 replies      
Just launched Duolingo flash cards. haven't tried yet. Not just for language other subjects too. https://tinycards.duolingo.com
Ask HN: How do you prepare for a coffee meeting with a potential employer?
4 points by throwawaysinger  11 hours ago   2 comments top 2
__d 8 hours ago 0 replies      
Same as for any important meeting: get a decent sleep, arrive on time, look appropriate, behave well, and (I guess you're doing this bit) have the content prepared.

The advantages of meeting over a coffee are that it is quick, you're on roughly neutral territory, and there's an opportunity to feel things out enough to decide whether it's worth taking things to the next level both personally and technically.

Being able to concisely describe what you've done in the past, what you'd like to do in future, and why you approached the firm should cover the bulk of the work content. Having an opinion on related technology issues is good, and I usually ask semi-random questions outside of work stuff too, just to get a feel for the person: nothing too controversial, but just conversational. Even if you're interested in a purely technology role, demonstrating that you can talk to strangers doesn't hurt.

It could be a little as 15-20 minutes; it could last for hours. Be ready for either. CTOs are usually very busy people, so get to your points and don't waffle.

Try to pay, but don't insist. Thank the person for their time. Send a followup thank-you email (and do anything else you said you would too).

Good luck!

pratik136 10 hours ago 0 replies      
Expect nothing more than your standard initial phone call. In fact, the advantages of a coffee meet are way higher than a call. They are probably going to be equally awkward at the beginning, unless they have done such coffee sessions before, in which case they will simply lead you.
Ask HN: Those making over $1K/month on side projects, what did you make?
262 points by kashifzaidi1  1 day ago   179 comments top 43
danschuller 23 hours ago 6 replies      
I am but I don't know how long it will continue!

My side project is: "How to Make an RPG" (http://howtomakeanrpg.com/) which I released in June.

It's a collection of code samples, art and digital book that shows the reader how to make an old-school, Japanese-style RPG. So, it's super niche! I wrote a little about my process here:


There was supposed to be a second part to this article but I haven't written it yet.

It's been over $1000/month very comfortably so far but it is trending down. This isn't uncommon for this type of project - there's often a spike followed by a slow decline.

Still, for the last three months I haven't actively worked on it and it's still sold well. I've moved country and been finding a job (all sorted now), so I haven't had much free time.

I'm not really sure where is good to go after this project. For now I'm building on the base the book introduces, just for fun.

matthewmueller 23 hours ago 8 replies      
https://standupjack.com is a side project I started earlier this year on my own. It's making more than $1k/mo now :-)
trcollinson 15 hours ago 2 replies      
I've been working on a side project for the last 3 months and it has finally gotten to the point where I am making more than $1000/month with more than 25 active customers 100% through word of mouth. I am working on a Show HN with some of my learning from the process so I won't get too deep into it here but here are a couple of highlights:

 * You do have time. I work a time consuming job, have a wife and kids, and still found 1 hour per day to work on it, and that was enough. * Automate everything that you can. Early on I automated the deployment, the creation of new accounts, the management of the sales, and soon the marketing. * Have a plan and stick to it. I planned to use 1 hour per day and I did. I have a backlog and I work against that always. * Pick a market you understand. I help a lot with my kids schools and this is software to help with that. * Drop bad ideas when needed. I have started more side projects than I can think of. Sometimes in the past I have felt bad because I didn't want to give up on an idea. So I worked on a bad idea for way too long. Don't do that.
It turns out that when you have the right idea and are scratching an itch that real people have, it's not that hard to get people to pay you to solve their problem.

julianshapiro 20 hours ago 5 replies      
Wrote a guide that summarizes the science of building muscle: https://julian.com/learn/muscle/intro.

It made a few thousand in Amazon referral fees after being at the top of HN, Product Hunt, and Designer News for 4 days. As these traffic spikes wear off, I expect it to continue at at least $1k/mo.

To maximize referral fees, I use this clever service called A-fwd, which geo-redirects visitors to their appropriate Amazon.tld so that they can make a seamless purchase without switching regions. This also allows for my affiliate codes to stay intact, and for me to collect worldwide Amazon affiliate revenue.

I also had to learn the ins and outs of Amazon Associates policies, which are incredibly finicky (no Amazon links in emails, no showing product pricing on your homepage, etc.) and frequently results in unannounced account closure that requires you to pester their support team to get things back online.

Shank 21 hours ago 0 replies      
If you haven't already seen IndieHackers, it's worth taking a look -- lots of stories about side projects and their associated incomes: https://www.indiehackers.com/businesses
csallen 14 hours ago 1 reply      
https://IndieHackers.com is a side project of mine that recently hit $1k/mo. I launched it here on HN a couple months ago (https://news.ycombinator.com/item?id=12269425).

It's pretty meta to be posting this here, because Indie Hackers is basically a huge collection of interviews with developers who are making money from their apps and side projects. I only include interviews with people who are willing to share revenue numbers, employee count, etc. There's also a forum/comments section where you can ask your own questions to the interviewees if you find my questions lacking :)

erikrothoff 22 hours ago 2 replies      
I made http://feeder.co, a Chrome extension to simulate Firefox's RSS live bookmarks back in 2010. Now it has 500,000 active installs on Chrome and our cloud hosted service is netting around 1500 USD each month after costs (1700 subscriptions).

Me and my twin brother have had it as a passive income thingie for years. After a failed attempt at selling it (SaaS metrics are NOT easy) we met a guy who saw some potential and we're finalizing paperwork with our lawyer to create a Swedish limited company right now with him as co-founder. We will try to take the plunge and get it running as a full time company within a couple of years!

Achieving a lifestyle passive income project is surprisingly hard...

qwertyuiop924 22 hours ago 4 replies      
You guys are making cash off your side projects? Jeez. I usually just release them for free. I should get in on this.

...Assuming that I ever finish a side project.

...And that I ever come up with a side project somebody would pay for.

Neither is very likely.

caser 23 hours ago 4 replies      
I started Hacker Paradise as a side project in 2014, and now we're a full-time team of 3.

We organize trips around the world for developers, designers, and entrepreneurs who want to work remotely while traveling. People pay us to organize housing, accommodations, and community events wherever we go (past speakers have been CIO of Estonia in Tallin, Matz in Tokyo, etc.).

Happy; to answer questions about running more of an ops business that still is related to tech.

ekwogefee 20 hours ago 3 replies      
Feem (http://www.feem.io) is making over $1K/month online; and I'm from Cameroon, Africa.

Feem is a great cross-platform way to share files within your LAN.

suhastech 23 hours ago 1 reply      
I started basically when I stumbled upon a problem myself. https://thehorcrux.com/why-i-built-horcrux-app/TL;DR: Google disabled my account. So, built an email backup app to not get into this situation again.

I started building the app 4 years ago. I put it on Hacker News and it blew up a tiny bit. That was enough to keep it going until now.

There is still a lot of work I can put into it marketing or coding wise. So far, it's been going well ($800ish). I recently rolled out a UI/UX improvement.

Its 4 year anniversary is in 2 days. :)

mutatio 21 hours ago 2 replies      
Created http://encycolorpedia.com a few years ago, kind of neglected it until recently (it's looking very dated), a version implemented in Rust is 90% complete - cheaper to run (more beer money, thanks Rust team!) & more features than the node.js implementation it will hopefully replace in the coming weeks.
eLobato 21 hours ago 1 reply      
I no longer make that kind of money through any side project but I did during ~ a year of college. It was one of the worst projects (coding wise) I made, and I made it all through ads.

It was just an Android soundboard app for a very popular TV show in Spain. You could tap a button and it'd play some funny sentence from a character from this show. Long press, you could share that sound.

Revenue model: a little ad bar on the bottom of the screen.

It grew from 60$/month to > 1000$ in around 6 months, only through word of mouth. That lasted another 6 months or so until the show became less trendy.

Probably not very sustainable as I was piggybacking on the popularity of the show, but it taught me that making money was 100% not about writing 'the bestest codes'.

rsoto 20 hours ago 1 reply      
Here in Mexico, you get an XML for your invoices, which you must keep in order to be tax deductable. However, it gets messy very quickly, as it must have your Tax ID, it has to exist in the tax office's database and then you must keep it for 5 year. It is a chore.

I run http://www.boxfactura.com, an email service for your digital invoices. It has been quite a journey because everyone I speak to has some kind of trouble with their invoices, but they don't know there's a product for that, so first you have to market the idea of it, and then the product.

Schweigi 20 hours ago 0 replies      
https://www.ganttplanner.com is one of my side projects. It turns your Google Calendar into a gantt chart. The project is making a bit more than 1k/month and is currently on auto pilot.

I created this project for learning purposes and because it was a lot of fun. I open sourced the actual gantt component: https://www.angular-gantt.com

swiftisthebest 23 hours ago 1 reply      
Digital magazine company. I have thousands of subscribers that pay me $2 / month. I pay royalties to content providers. I work about 10 hours a month on the project.
RyanOD 19 hours ago 0 replies      
Years ago, I created an affiliate site advertising the Snuggie. A couple months after I created the site, the Snuggie craze took off and I was making several hundreds of dollars per day. Then, consumers realized how absurd this fad was and the money dried up nearly as quickly.

Loads of fun while it lasted! Gave me a nice income bump for 3 holiday seasons.

maxsavin 23 hours ago 3 replies      
I created Meteor Toys, available at http://meteor.toys

It's been very good to me, but also trending down as people seem to be diversifying from Meteor. Certainly not what I expected when I got into it.

The story for it is a simple one: I solved some of the annoyances during development for myself with by making a devtool, and then open sourced it.

The reaction was very positive and encouraging. Between the opportunity to make more tools, and the downside of having to maintain them, I decided to create paid tier for the tools.

kyloren 23 hours ago 1 reply      
I saw the previous post as well. I know how it feels having a good idea is not easy. Even people say talk to people and find pain points in their work is easier said than done.

I guess it's partly because we are used to these pain points for a long period of time we don't feel it as a pain point anymore or even though we have a good idea it's not easy to build it as we need lot of capital to do so.

Also even if we have a good idea monetizing is a whole new ball game altogether. Like the chrome extension I'm hacking together on weekends which allows people to search for restaurants around them. I have no idea how I can monetize it and just build it for the challenge of making it.

I think one option is to keep on making cool things. Do something challenging and keep pushing out new things whenever you can. And finally one will stick. I don't think it's easy but if one keep persistent in shipping new things definitely one will become a success.

Like in a similar post I have made like this in the past I remember one commenting, we as HN users believe that everything that we make should be like Airbnb or Uber due to the illusion of success in many startups. But that is not the case and it all comes down to being persistent and enjoying the journey along the way.

sunnynagra 21 hours ago 1 reply      
I tried releasing an iOS sticker pack app that had an actual use case (allowing you to markup and annotate iMessage conversations). I was hoping would give some passive income. Had a good first day and then dropped off a cliff.

Link: https://appsto.re/us/zMHnfb.i?app=messages

marmot777 21 hours ago 1 reply      
What do side projects that make income tend to have in common? When I hear about people's side projects or read them here, I'm not certain what the lessons are. I personally do side projects just for fun but heck if interest/passion could somehow be directed toward money making side projects that were good for the world then i'd direct my energy toward those. Possibly. It's a good thought exercise everyone should at least consider, can a hobby be monetized without fucking up the reason you loved it in the first place? Can it be done in a way that makes it less like your day job, so to speak?
equalarrow 21 hours ago 0 replies      
Indie Hackers (http://indiehackers.com) also has some great projects earning over $1k/mo on it. It's been on the front page of HN multiple times.
NateG 19 hours ago 1 reply      
I created an online game called Pit of War (http://www.pitofwar.com). It's a strategy/management game that puts you in charge of a stable of gladiators. You train your gladiators, outfit them in armour and weapons and give them a set of strategies to use during the fights against other players. Strategies start off simple and grow in detail and complexity as gladiators gain levels, skills and better equipment.
streptomycin 23 hours ago 2 replies      
https://basketball-gm.com/ is a basketball management sim video game (sorta like football manager), and it makes more than that from ads.
thearn4 21 hours ago 0 replies      
Not a "side project" in the usual sense, but I teach as an adjunct professor (mathematics) every so often, and at a rate of about $1000 - 1200 per credit hour (depending on the institution) I can make a little under a grand a month after taxes. Teaching can be fun for many people, and I think it keeps me grounded in the fundamentals, where my day job is entirely application oriented.

The trick is that after a few times around, the courses require a bit less preparation.

Adjuncting is an absolute nightmare if you are trying to do it as a full-time job. But as a side thing for beer money when there is a staffing need? It's pretty light on stress. Since I am not gunning for tenure track (or even a full time position), there are little to no stakes involved.

Weirdly, I think the folks in my position (teaching as an adjunct as a side gig) along with the tenured full-professors on the opposite end of the academic spectrum are actually very similar in that regard.

khuknows 23 hours ago 1 reply      
I run https://uimovement.com/ and it makes just over $1,000 a month from sponsorships and ads most months.

The majority of that is from sponsorships for the weekly newsletter, which has almost 13,000 subscribers now. Currently doing cust dev and what not to see if there are income opportunities that don't involve ads.

nycdotnet 22 hours ago 2 replies      
I made two TypeScript videos for Pluralsight ("ES6 with TypeScript" and "Practical TypeScript Migration"). I put them together in the evenings and weekends using the knowledge I got at my day job and from working on TypeScript open source projects like grunt-ts (and a lot of research).

It was a lot of work, but it's a great passive income now that they're done, and I'm quite proud of how they turned out. The Pluralsight authors are a great professional network to be plugged-in with, and being an author is a pretty unique differentiator on your resume.

I'm going to put together a third course soon.

They're always looking for new authors. https://www.pluralsight.com/teach

docsapp_io 22 hours ago 1 reply      
I built my side project "Documentation Hub for Developers" DocsApp.io (https://www.docsapp.io/). I spent 1 year+ to build it. Current revenue around $800 per month. Now I still spending night time and weekends to enhance it. HTTPS for custom domain powered by LetsEncrypt is on roadmap.

The project started because there is always need for documentation for software projects (in my career), and a lot companies are not used to have one. At the same time, I want to learn Scala so I pick up Play! framework to play and build real world app.

Happy to answer any questions!

johndandison 23 hours ago 1 reply      
http://getlivead.com and http://chattorney.com. They're different front ends to the same backend. Makes everything from aubscriptions. Not enough to live on as primary income but not shabby either. It has been a long four year road, with a couple of pivots and rewrites, 3 years of attorney's fees for patents but hugely personally rewarding and self-sufficient now.
_asciiker_ 22 hours ago 1 reply      
I've launched Sentopia (https://www.sentopia.net) as a side project and it is still easily making over 1K with just 2 medium sized clients but it is not passive income, requires some maintenance & customer support but still very much worth it.

This year we're launching new features and a simple API: (https://sentopia.net/apidoc/)

jhylau 16 hours ago 0 replies      
I made https://www.switchup.org - all the revenue is from advertising. I spend around 10 hours a week on it and have another full-time job/startup. The website is run by two freelancers and a full-time hire.
double_h 16 hours ago 1 reply      
My app makes roughly around $1K/month. A simple utility to backup(free) and restore(paid, in-app purchase) mobile phone contacts. Check it out: http://c2x.eastros.com/
ArturT 22 hours ago 0 replies      
I created pro version of my ruby gem for test suite parallelisation https://knapsackpro.com I released it last year but started validating it by charging users since July this year. $1K/month is my goal by the end of this year, so far I'm halfway there.
soheil 19 hours ago 0 replies      
Radio show archive website, it's been running for about 10 years now.
williamle8300 14 hours ago 1 reply      
I started a (strictly e-book) publishing company. We publish public domain titles on Amazon, and Apple's iBookstore. GooglePlay has gone by the wayside just like all of their "cool projects."

We don't just copy-pasta public domain titles. We actually go through it, and create a really nice table of contents, include flourishing images to chapter headings, link any footnotes, and re-typeset so there's pleasant vertical rhythm to the paragraphs. We really pride ourselves on creating a great user experience rivaling titles from major book publishing companies that have delved into the foray of e-book publishing. CSS for e-books is a repeat of browser compatibility problems reminiscent of the 90s unfortunately.

Our average price is usually $0.99. Our genre is theology, so we publish books from Augustine, Thomas Aquinas, and John Calvin to name a few.

We make over $1K/month, but sales are on a downward trend. The hype of e-readers has faded in the past 2 years. It's not that e-reading isn't cool. It totally is. Just like the mp3 player was a great successor to the Walkman. The problem is that there isn't One Great Device for e-reading (like the iPod was).

A review of e-reading devices:

iPad: No person with eyeballs can read on an LCD screen for more than 2hrs, but I can read a physical paper book as long as I want. Dead-on-arrival in my opinion. Sales from this market never overtook sales from the Kindle store for my company.

Kindle: Better than the iPad. That's not saying all that much because they're only better because they use e-ink. That's it. Navigating and whatnot is still really janky. The worst thing about the Kindle is that all text is justified. There aren't any settings to change it to left alignment. It's nuts. You have to see a screenshot of some text to see how absurd this design decision is.

Kobo: These guys make the best e-readers. They are e-ink like Kindle, but they have this revolutionary technology called "left alignment of text" instead of justified-only text on the Kindle. You don't have the sophisticated backend infrastructure like Apple/Amazon for synchronizing your books/bookmarks/highlights/blabla. But it's not that important really. Just sideload your e-books, and dupe your e-book library on your computer. That's an end-to-end backup plan. You may not have heard about Kobo because they don't have the marketing budget like their competitors.

My company is called Fig, because I started the company on Fig St in Escondido, CA while I was in seminary. Here's some of our titles on Amazon: https://www.amazon.com/s/ref=nb_sb_noss?url=search-alias%3Dd...

Footnote: I probably went too far with this off-handed hardware review, but I'm drinking wine and felt loquacious.

jusob 15 hours ago 0 replies      
Browshot (https://browshot.com/), a screenshot service.
googlereject 19 hours ago 0 replies      
I make well over $10,000 / month operating several mobile games.
plantain 21 hours ago 0 replies      
I run https://skysight.io/ , which does weather forecasting for aviation.
soheil 19 hours ago 0 replies      
iPhone apps combined revenue ~$1k/mo, most popular unlocks a Mac using iPhone bluetooth mac address when it's in range.
icehac 17 hours ago 1 reply      
High frequency trading algorithms.
pcunite 16 hours ago 0 replies      
I have a website that largely runs itself right now. C++ based desktop products for the Windows environment.


soufron 22 hours ago 1 reply      
I created a political news aggregator in France, with a nice community...
imaginenore 1 day ago 5 replies      
I have a project making $200/month, 100% passively (I just renew the domain every couple of years). But I think it would be so dumb to just tell what it is here. Why would you invite more competition to your niche?
Ask HN: Favorite Reddit Sub-reddits?
5 points by asenna  14 hours ago   3 comments top 3
hackuser 13 hours ago 0 replies      
I seldom read Reddit; here's why:

* The signal-to-noise ratio is too low. There are many clever or useless comments that add no value for every one that is worth reading.

* When I read topics I know about, I find the information amateurish or often just wrong. People say things they have no idea about and get voted up, consistently. It seems to be an information bubble of the ignorant, to an extent. Because of that I find little value on topics I already know about, and I don't trust the others. (That may sound harsh but it's my experience, not an exaggeration.)

However, I seldom read it and I know Reddit is vast; I'd be very interested in any sub-Reddits that don't have those problems.

companyhen 9 hours ago 0 replies      
imaginenore 14 hours ago 0 replies      
Reddit is huge. Don't be put off by what you see on the default front page. There's a sub pretty much for everything. Whatever your interests are, there's a sub for it.

If you like photography, you might enjoy /r/videography and /r/Filmmakers/ and /r/cinematography/ and /r/art.

Of the general interest the cool ones are:



Magic Leap Myth or Magic
5 points by aivijay  20 hours ago   3 comments top 3
android521 3 hours ago 0 replies      
VR/MR is going to be the next platform like the internet. We need a decentralized platform just like the web. It shouldn't be controlled by a few big companies
autoslash 16 hours ago 0 replies      
I agree that it looks pretty impressive, but I'm unclear on how objects are rendered from a user perspective. Does the user have to wear a pair of glasses or some other viewing device to see the visualizations?
aivijay 13 hours ago 0 replies      
With some of the things online, I can see that its going to be some kind of a glass for sure. They talk about photonic lightfield chip which seems to be almost like a pair of glasses(to be more precise lenses) but it can control light similar to an electronic chip which controls electrons flow. Basically they project images into those glasses which get directly projected into a human eye at various focal lengths which gives you the sense of depth (far and near objects etc.,). Basically the photonic chip should have multiple layers to render images with different focal lengths. What I've read online interprets that it will be a pair of glasses (even Abovitz mentions in one of his talks, thats it going to be a head mounted display like a pair of glasses) which has the lightfield photonic chips for each eye, which then gets fed from a computing unit which the user might have in their pocket (similar in size of a cell phone). With cameras mounted on the HMD (glasses), and doing some SLAM(Simultaneous Localization and Mapping) on those images, they should be able to sense the environment around you and then allow for virtual objects to be placed appropriately to interact.

Check out the article below which gives an in-depth interpretation based on their patents and whatever information/demos magic leap has shared in the past.


Magic Leap's CEO also shows the light field photonic chip which looks like a normal piece of glass, but has the property of projecting images from a fiber optic source at various wavelengths.


I am wondering whether the technology developed can be rendered in such a form factor where its very easy to wear like grasses and use in a day to day basis. The guys at Magic leap seem to be very confident that they have got most of the complex pieces figured out and its already materialized. Even a developer kit from magic leap next year or so should blow every ones mind of, if they have got the projection of images directly to the eye working even with a tethered system to start with.

Also read that they are planning to showcase their product sometimes the end of the year and in CES 2017 (http://vrworld.com/2016/04/25/magic-leap-unveil-technology-c...).

Hololens from Microsoft seems to be doing something closely similar where they are projecting images through a glass like medium. Read somewhere that hololens was rushed to be first before Magic leap delivers its technology though. Some recent videos form wired on Magic Leap shows some impressive demos taken through their technology and should have a large FOV as hololens has a very limited FOV it seems. Magic leap's CEO Abovitz seems to be very confident that their tech is way superior to whatever exists and are not worried about some products like hololens hitting the market earlier than their products release.

Some refs on teardown of hololens stuff


Ask HN: Which countries are best for software engineers?
17 points by markwaldron  9 hours ago   12 comments top 6
mianasif 5 minutes ago 0 replies      
I think so in Pakistan you can find the best software engineers
snicky 7 hours ago 0 replies      
I guess it all depends on what you understand by the quality of life. If you are talking about a high purchasing power you get in exchange for your work then US is second to none, at least according to my research. I might be wrong, because I've never lived in US myself, but I was based in both Europe and Asia and it seems to me that IT salaries vs taxes and costs in your country can get you much further than in other places.

Nonetheless, there are still some spots with decent wages like London (particularly strong in fintech, but there's also lots of startups), Ireland (if you prefer to work for a branch of an American big-co), Singapore and Hong Kong if you'd like to change your environment entirely or even Australia. It all depends on your experience and selling skills though, as in most these places outside of US the difference between a senior's and junior's salary might determine your ability to rent a 3-room apartment vs a 100 square feet room in a shared-house with 8 flatmates :)

Most importantly, choose a place that you have a genuine interest towards. The rest doesn't really matter that much. If you pick a crowdy place you'd get a lower life quality in terms of purchasing power and living space, but higher from a cultural/social point of view and more job opportunities as well, so yeah, that's your tradeoff.

aminozuur 5 hours ago 1 reply      
The Netherlands has a high shortage of programmers. IT students are snatched away by companies in their first or second year, and many of them are happy to drop out because job security at large corporations is good. Human Development Index is also very high.

I have an American friend who came here to work for Adyen (Amsterdam-based unicorn) and recently bought a house here.

allenleein 8 hours ago 2 replies      
In Asia, I would say Seoul > Tokyo > Singapore > Shenzhen > Taipei.

In Euro, London > Berlin > Paris.

davidf18 7 hours ago 0 replies      
Israel. Startup Nation.
tejasu 8 hours ago 3 replies      
Ireland is the silicon valley of Europe.
Ask HN: What are some good educational resources for machine learning?
3 points by scottLobster  16 hours ago   1 comment top
augustt 14 hours ago 0 replies      
Andrew Ng's machine learning course on coursera is great for beginners. It'll show you some theory backed by intuition, and if you do the assignments you'll implement ML algorithms yourself (in Matlab).

After that, I recommend Stanford's CS231n. It's focused on computer vision tasks, but you can learn a lot about neural nets in general from it. The videos were recorded around a year ago I think, so it's up to date with the latest deep learning techniques and libraries. For some reason the videos were taken down from the CS231n site but you can watch them here: https://www.youtube.com/watch?v=g-PvXUjD6qg&list=PLlJy-eBtNF...

Ask HN: Self-hosted Google Books alternative?
13 points by ocdtrekkie  1 day ago   5 comments top 3
walterbell 1 day ago 2 replies      
You can organize the books in Calibre, e.g. with tags and other metadata. Then use a Linux desktop search engine like Recoll or Beagle to index both the content and metadata, https://www.linux.com/news/linux-desktop-search-engines-comp...
4684499 1 day ago 0 replies      
In the past, you could use Google Desktop to index your documents (like docs, pdfs, not sure about other ebooks format) and get full-text search, but it has been killed by Google for years[1]. However there are some alternatives[2].

[1] https://en.wikipedia.org/wiki/Google_Desktop

[2] http://alternativeto.net/software/google-desktop/

hop_a 1 day ago 0 replies      
If you are comfortable with a little bit of coding; I think both Apache Solr and Elastic Search will allow you to index and search pdfs.
Ask HN: What's your favorite tech talk?
817 points by mngutterman  5 days ago   252 comments top 154
Malic 5 days ago 7 replies      
grin Here we go...

For "laughing at ourselves" and oddities of computer languages, there is "Wat" by Gary Bernhardt:https://www.destroyallsoftware.com/talks/wat

For an opinion on the Sun to Oracle transition, there is "Fork Yeah! The Rise and Development of illumos" by Bryan M. Cantrill, Joyent. His Larry Ellison rant makes me smile:https://youtu.be/-zRN7XLCRhc?t=33m00s

peterkelly 5 days ago 3 replies      
"The Last Lecture", by Randy Pausch. While it's by a well-known CS professor (who was dying of cancer at the time), it's not a technical talk, but about life and work, and how to make the most of it. One of the most inspiring things I've ever seen.


Another fantastic one is Steve Jobs' 2005 commencement address at Stanford:


azeirah 5 days ago 4 replies      
By far my favorite talk is and has been for a very long time Bret Victor's inventing on principle, for me, nothing comes close, except for some of his other work I suppose.


pacomerh 5 days ago 2 replies      
qwertyuiop924 5 days ago 1 reply      
Linus Torvalds on Git. It's funny, and it really does tell you a lot about why Git is the way it is.

Bryan Cantrill's 2011(?) Lightning talk on ta(1). It's fascinating, but it also shows you just long-lived software can be.

Randall Munroe's Talk on the JoCo cruise. Because it's effing hilarious, and teaches everybody the important art of building a ball pit inside your house.

Finally, an honorable mention to three papers that don't qualify, but which I think you should read anyway.

Reflections on Trusting Trust: This is required reading for... Everybody. It describes a particularly insidious hack, and discusses its ramifications for security.

In the Beginning Was The Command Line: If you want get into interface design, programming, or ever work with computers, this is required. It's a snapshot of the 90's, a discussion of operating systems, corporations, and society as we know it. But more importantly, it's a crash course in abstractions. Before you can contribute to the infinite stack of turtles we programmers work with, you should probably understand why it's there, and what it is.

Finally, The Lambda Papers. If you've ever wondered how abstractions work, and how they're modeled... This won't really tell you, not totally, but they'll give you something cool to think about, and give you the start of an answer.

arjunnarayan 5 days ago 3 replies      
> what's that one talk that changed the way you think and you feel everyone needs to see?

Growing a Language by Guy Steele.


madmax108 5 days ago 2 replies      
I see a couple of Bret Victor videos here, but the one I loved the most was "The Future of Programming":https://vimeo.com/71278954

Really set me on a path of re-examining older ideas (and research papers), for applications that are much more contemporary. Absolute stunner of a talk (and the whole 70's gag was really great).

"What would be really sad is if in 40 years we were still writing code in procedures in text files" :(

sebg 5 days ago 0 replies      
Some previous posts:

"Ask HN: What are your favorite videos relevant to entrepreneurs or startups?" -> https://news.ycombinator.com/item?id=7656003

"Ask HN: Favorite talks [video] on software development?" -> https://news.ycombinator.com/item?id=8105732

pdkl95 5 days ago 1 reply      
Y Not - Adventures in Functional Programming by Jim Weirich https://www.youtube.com/watch?v=FITJMJjASUs

The Coming Civil War over General Purpose Computing by Cory Doctorow http://boingboing.net/2012/08/23/civilwar.html

Cybersecurity as Realpolitik by Dan Geer https://www.youtube.com/watch?v=nT-TGvYOBpIhttp://geer.tinho.net/geer.blackhat.6viii14.txt

rdtsc 5 days ago 2 replies      
Pretty much anything by David Beazley or Bryan Cantrill

Discovering Python (David Beazley)


David finds himself in a dark vault, stuck for months sifting through deliberately obfuscated pile of old code and manuals. All seems lost, but then he finds Python on a vanilla Windows box.

Fork Yeah! The Rise and Development of Illumos (Bryan Cantrill)


History of Illumos, SunOS, Solaris, the horribleness of Oracle

These are not technical, but they are entertaining.

KhalilK 5 days ago 0 replies      
Bret Victor - Inventing on Principle https://vimeo.com/36579366

We can argue on some of the points he makes but we can all agree that the demos are very impressive.

corysama 5 days ago 1 reply      
Alan Kay is my favorite tech curmudgeon.

1) Alan Kay: Is it really "Complex"? Or did we just make it "Complicated"https://www.youtube.com/watch?v=ubaX1Smg6pY

Take note that he is not giving the talk using Window & PowerPoint, or even Linux & OpenOffice. 100% of the software on his laptop are original products of his group. Including the productivity suite, the OS, the compilers and the languages being compiled.

2) Bret Victor: The Future of Programminghttps://www.youtube.com/watch?v=IGMiCo2Ntsc

jjp 5 days ago 0 replies      
Hans Rosling's original Ted talk, which has so much passion about data visualisation and making information accessible - http://www.ted.com/talks/hans_rosling_shows_the_best_stats_y...
cgag 5 days ago 1 reply      
Simple made easy is my favorite but I'd also just generally recommend everything by Rich Hickey, Gary Bernhardt, and Jonathan Blow.
kethinov 5 days ago 2 replies      
My current favorite is Jake Archibald's offline-first progressive web apps talk at Google I/O 2016: https://www.youtube.com/watch?v=cmGr0RszHc8

It's a terrific window into the future of web application development.

sssilver 5 days ago 2 replies      
Raymond Hettinger's talk about good code reviews -- https://www.youtube.com/watch?v=wf-BqAjZb8M

Carmack's talk about functional programming and Haskell -- https://www.youtube.com/watch?v=1PhArSujR_A

Jack Diederich's "Stop Writing Classes" -- https://www.youtube.com/watch?v=o9pEzgHorH0

All with a good sense of humor.

bajsejohannes 5 days ago 0 replies      
Jon Blow's "How to program independent games": https://www.youtube.com/watch?v=JjDsP5n2kSM

It's about much more than games. To me, it's about identifying and not doing unnecessary work.

The second half of this video is a Q&A session, which I would skip.

myth_buster 5 days ago 0 replies      
Richard Hamming's You and your research.


okket 5 days ago 1 reply      
Linus Torvalds talk about git


dcre 5 days ago 0 replies      
I already see a bunch of people posting and upvoting Bret Victor's "Inventing on Principle", but I think his "Media for Thinking the Unthinkable" is better.


kornish 5 days ago 1 reply      
Right now it's Boundaries, by Gary Bernhardt. He details the importance of separating out pure business logic from the plumbing code that brings it input and directs its output ("functional core, imperative shell").


grose 5 days ago 2 replies      
Lexical Scanning in Go by Rob Pike


I love everything about this talk. It walks you through building a lexer from scratch in a simple and elegant way, through a very interesting use of coroutines. I appreciate the bits of humor in the talk as well.

ChicagoBoy11 5 days ago 0 replies      
Peter Norvig on the "Unreasonable Effectiveness of Data"https://www.youtube.com/watch?v=yvDCzhbjYWs

I think it is so easy for us to discuss the impact of big data and quickly get into the weeds, but I think in this talk Norvig does an especially great job in making you truly appreciate the seismic impact that the availability of massive quantities of data can have on your way to think about problems. This is one of the first things I ever saw of him, and I've been in love ever since.

dudul 5 days ago 4 replies      
Big fan of Rich Hickey. I found most of his talks really great, and applicable beyond the Clojure universe. My favorites: "Are we there yet?" and "Simple made Easy".
dragonbonheur 5 days ago 1 reply      
The mother of all demos by Douglas Engelbart https://www.youtube.com/watch?v=yJDv-zdhzMY

How I met your girlfriend: https://www.youtube.com/watch?v=O5xRRF5GfQs&t=66s

SonOfLilit 5 days ago 0 replies      
"The Birth and Death of Javascript" by Gary Bernhardt (probably the most talented speaker on tech) at https://www.destroyallsoftware.com/talks/the-birth-and-death...

I'd mention Bret Victor's work before (maybe Drawing Dynamic Visualizations?), but Bret cheats by writing a lot of amazing code for each of his talks, and most of the awesome comes from the code, not his (great nonetheless) ability as a speaker.

Then you have John Carmack's QuakeCon keynotes, which are just hours and hours of him talking about things that interest him in random order, and it still beats most well prepared talks because of how good he is at what he does. HN will probably like best the one where he talks about his experiments in VR, a bit before he joined Oculus (stuff like when he tried shining a laser into his eyes to project an image, against the recommendations of... well, everyone): https://www.youtube.com/watch?v=wt-iVFxgFWk

unimpressive 5 days ago 0 replies      
These aren't necessarily my absolute favorite talks, but they're great mind-altering talks a little off the beaten path so I'd like to highlight them:

"Writing A Thumb Drive From Scratch" by Travis Goodspeed - https://www.youtube.com/watch?v=D8Im0_KUEf8&nohtml5=False

Excellent talk on the hardware side of security, goes into some really cool theoretical hard disk defense stuff, incredibly insightful and introduces a hardware security tech toy so fun you'll want to go out and order it the moment you're done watching. The speaker is entertaining as all heck to boot.

"Programming and Scaling" by Alan Kay - https://www.youtube.com/watch?v=YyIQKBzIuBY&nohtml5=False

Interesting talk on the theoretical limits of code size and engineering versus tinkering. Also talks a lot about Alan Kay's philosophy of computer science which analogizes systems to biological systems, which are the systems with the largest proven scaling on the planet.

"The Mother Of All Demos" by Douglas Engelbart - https://archive.org/details/XD300-23_68HighlightsAResearchCn...

This talk is so prescient you won't believe your eyes. Given in 1968, Douglas demonstrates just about every major computing concept in use today on a modern machine, along with some ones that are still experimental or unevenly distributed such as smooth remote desktop and collaborative editing.

mwcampbell 5 days ago 1 reply      
A few of Bryan Cantrill's talks have already been mentioned here, but this one about DTrace, from 2007, is a gem:


I especially like the part in the middle where he tells the story of how a an awful GNOME applet was killing a Sun Ray server, and how he tracked down the culprit with DTrace.

archagon 5 days ago 0 replies      
I don't really have a favorite, but recently I really enjoyed "8 Bit & '8 Bitish' Graphics-Outside the Box"[1]. The name didn't catch my eye, but then I learned that it was a lecture by the very same Mark Ferrari who made these[2] unbelievably beautiful color-cycling pixel art animations. Master of his art definitely worth listening to!

[1]: http://www.gdcvault.com/play/1023586/8-Bit-8-Bitish-Graphics

[2]: http://www.effectgames.com/demos/canvascycle/

shahar2k 5 days ago 0 replies      
https://www.youtube.com/watch?v=sI1C9DyIi_8 "the greatest shortcoming of the human race is our inability to understand the exponential function"

not a high tech talk, or particularly technically complex, but it shows a common blindspot in a way that is both clear, enlightening and frightening.

nommm-nommm 5 days ago 0 replies      
Elevator hacking (seriously) https://youtu.be/oHf1vD5_b5I
mrob 5 days ago 0 replies      
CppCon 2014: Mike Acton "Data-Oriented Design and C++"


Detailed discussion of how to get the most out of your memory cache and memory bandwidth, focusing on games development. It's full of examples of how understanding both the problem and the hardware, and working in a straightforward way, can give you huge performance gains over using poorly suited abstractions. It shows how low level thinking is still important even with modern compilers. I recommend people interested in performance optimization watch it.

anondon 5 days ago 0 replies      

This was the first time I watched pg give a talk. It was the talk that brought about the biggest change in the way I think about the world, my ambitions. The talk was the beginning, reading more about pg, I came across his essays and then HN.

cconroy 5 days ago 0 replies      
Doing with Images Makes Symbols, Alan Kay.https://www.youtube.com/watch?v=p2LZLYcu_JY

The title says it all. It's really a summary of several software systems with good ideas abound. I believe all the software is 80s or prior.

Edit: I also forgot to mention some psychology and math.

lukewrites 5 days ago 0 replies      
Mine is "The Internet With A Human Face", by Maciej Cegowskihttp://idlewords.com/talks/internet_with_a_human_face.htm

It's what I direct non-technical people to when they ask what the big deal about internet privacy is.

runT1ME 5 days ago 0 replies      
Propositions as Types: https://www.youtube.com/watch?v=IOiZatlZtGU

I think this can really really change how we look at everyday programming tasks everywhere from the type of tooling we choose to how we approach problems.

joeclark77 4 days ago 0 replies      
First, the "Mother of all Demos" by Doug Engelbart: https://youtu.be/yJDv-zdhzMYThis was in 1968, at a time when most people thought about computers as being machines for solving computation problems, like processing payrolls or calculating rocket trajectories. Engelbart and his students had the radical idea that computers could be used for human "knowledge worker" productivity. In one 90 minute presentation, he introduces everything from the idea of a GUI, to the mouse, to word processing, hypertext, computer graphics, and (simulated) videoconferencing. You have to be able to put yourself in the shoes of the audience that has never seen this stuff before, and it'll blow you away.

Something more recent:Martin Fowler's great introduction to NoSQL: https://youtu.be/qI_g07C_Q5INot so technical, this is a great overview of the reasons why (and when) NoSQL is valuable. He crams a lot into a short speech, so it's one of the rare videos I've required students in my database classes to watch.

Now, really getting away from the technical, I have to recommend watching the IDEO shopping cart video: https://youtu.be/taJOV-YCieIThis is the classic introduction of Design Thinking to the world, in 1999. If you're using the Lean Startup or an Agile method, but have never heard of IDEO's shopping cart, you may be able to get along fine at work, but you should be kind of embarrassed like a physicist who's never read Newton.

monksy 5 days ago 0 replies      
Agile Is Dead: By Dave Thomas https://www.youtube.com/watch?v=a-BOSpxYJ9M

I love his talks for a few reasons:

Often times...

 1. He's anti-hype 2. He's contriversal 3. He's right.

pradeepchhetri 5 days ago 3 replies      
One of my favourite talks is by James Mickens at Monitorama 2015: https://vimeo.com/95066828
VLM 5 days ago 1 reply      
Aside from the typical, I watched Damian Conway "Standing on the shoulders of giants" from YAPC 2016 last week and found it interesting. Always fun to see a modern feature full language collide with history and algorithms.


intelekshual 5 days ago 0 replies      
Keyframe 5 days ago 0 replies      
Too many great talks to mention, but if I had to pick one it would be Ted Nelson's few minutes of demonstration of Xanadu. Demonstration is lacking, but what he said about the concept/idea is what stuck with me. Deep and referential(?) content. https://www.youtube.com/watch?v=En_2T7KH6RA
taeric 5 days ago 0 replies      
https://www.infoq.com/presentations/We-Really-Dont-Know-How-... is by far my favorite technical talk right now.

Sussman goes over some interesting ideas on the provenance of calculations and asserts that "exact" computation is possibly not worth the cost.

indexerror 5 days ago 0 replies      
My favourite talk is:

"What the heck is the event loop anyway?" by Philip Roberts


petr_tik 5 days ago 1 reply      
1Martin Thompson busting myths about hardware and explaining why it's important to know. Mechanical sympathy makes you better, because you know how the code actually runs on the machine and interacts with different layers of memory


2Matt Godbolt (the man behind GCC explorer) - Emulating a 6502 system in Javascript

Great talk about BBC micro and much more


3Matt Adereth - Clojure/typing

History of keyboards and a custom keyboard written in Clojure


I like the 3 for their content and how each speaker presented the background and their project/hack/ideas.

Highly recommend

philbo 5 days ago 0 replies      
Joshua Bloch: How to design a good API and why it matters


0xmohit 5 days ago 2 replies      

 How To Design A Good API and Why it Matters [0] The Principles of Clean Architecture [1] The State of the Art in Microservices by Adrian Cockcroft [2] "The Mess We're In" by Joe Armstrong [3]
[0] https://www.youtube.com/watch?v=aAb7hSCtvGw

[1] https://www.youtube.com/watch?v=o_TH-Y78tt4

[2] https://www.youtube.com/watch?v=pwpxq9-uw_0

[3] https://www.youtube.com/watch?v=lKXe3HUG2l4

danblick 5 days ago 0 replies      
I think Alan Kay's "Doing with Images makes Symbols" talk from 1987 might make my list:


It's mostly about the history of HCI up to that point.

agentultra 5 days ago 0 replies      
We Really Don't Know How To Compute! [0] is probably my top... next to the christmas tree lectures.

[0] https://www.infoq.com/presentations/We-Really-Dont-Know-How-...

agumonkey 5 days ago 4 replies      
After lots of talks I started going to the library and found out it's a lot more effective to grow knowledge. Maybe I'm too ADHD-able when watching videos.
beyondcompute 5 days ago 0 replies      
Bret Victor is pretty interesting though a bit philosophical.

The best practical talk is of course this:

https://www.youtube.com/watch?v=asLUTiJJqdE - Robert "Uncle Bob" Martin, Clean Architecture and Design

jonbaer 5 days ago 0 replies      
Richard Feynman: Fun to Imagine (BBC Series, 1983) - https://www.youtube.com/watch?v=v3pYRn5j7oI&list=PL04B3F5636...
samcal 5 days ago 0 replies      
James Mickens at Monitorama: https://vimeo.com/95066828

Aside from the comedic aspect (which makes the talk incredible), Mickens is a genuinely brilliant thinker and has a marvelous way with words.

evilgeneralist 5 days ago 1 reply      
Can I just say anything with Bryan Cantrill?
hackaflocka 5 days ago 1 reply      
Paul Buchheit - Startup School Europe 2014


Anjana Vakil: Learning Functional Programming with JavaScript - JSUnconf 2016


Bret Victor - Inventing on Principle


Philip Roberts: What the heck is the event loop anyway? | JSConf EU 2014


kruhft 5 days ago 1 reply      
Growing a Language by Guy Steele (video and transcription):


utefan001 5 days ago 0 replies      

InfoSec talk. Best lines from talk..

"Basic lessons are not learned such as know thy network"

"You have to learn your network, you have to have skin in the game"

"Defense is hard, breaking stuff is easy"

"If you serve the God's of compliance you will fail"

"Compliance is not security"

"Perfect solution fallacy"

"People are falling over themselves not to change, shooting great ideas down."

"Perfect attacker fallacy, they don't exist, they are a myth!"

"Attackers are not that good because they don't need to be that good."

Speaker is Eric Conrad

raspasov 5 days ago 1 reply      
mtmail 5 days ago 0 replies      
"Avoiding Burnout, and other essentials of Open Source Self-Care" https://www.youtube.com/watch?v=RbeHBnWfXUc
IntelMiner 5 days ago 1 reply      
Not quite as low-level as some of the other talks, but I love watching LazyGameReviews "Tech Tales" series when ever a new one comes out

It's fairly high level, but he really burrows into computer history and it's simply fascinating to watch, helped by the fact the person is extremely passionate about what he does https://www.youtube.com/watch?v=gB1vrRFJI1Q&list=PLbBZM9aUMs...

dorianm 5 days ago 0 replies      
Aaron Patterson talks (aka @tenderlove): https://www.youtube.com/watch?v=B3gYklsN9uc
antouank 5 days ago 0 replies      
Rich Hickey - Simplicity Mattershttps://www.youtube.com/watch?v=rI8tNMsozo0
JoshTriplett 5 days ago 1 reply      
For reasons completely unrelated to the content, Identity 2.0: https://www.youtube.com/watch?v=RrpajcAgR1E

Watching that talk brought me over to the "a picture or a few words per slide" style of presentation, rather than the "wall of bullet points" style. It also helped me move from "stop talking, change slides, start talking again", to smooth transitions while talking.

jack9 5 days ago 0 replies      
What We Actually Know About Software Development, and Why We Believe Its True


jordanlev 5 days ago 0 replies      
As a web developer, my favorite recent talk is "Modern Layouts: Getting Out of Our Ruts" by Jen Simmons


...very inspiring if you're bored with the way websites have been looking for the past few years.

dantle 5 days ago 0 replies      
Indistinguishable From Magic: Manufacturing Modern Computer Chips.

Explains a lot of recent mass-market innovations that keep the semiconductor manufacturing industry rolling, and goes into detail about the many tricks used to ensure scaling down to the 22nm node.


raglof 5 days ago 0 replies      
Bret Victor's "Inventing on Principle" [1] or Rob Pike's "Concurrency Is Not Parallelism" [2].

[1] https://vimeo.com/36579366[2] https://www.youtube.com/watch?v=cN_DpYBzKso

antigremlin 2 days ago 0 replies      
Temporally Quaquaversal Virtual Nanomachine is another gem by Damian Conway: https://yow.eventer.com/events/1004/talks/1028
fivealarm 5 days ago 0 replies      
I'm relatively early in my career, and I feel like I've learned a ridiculous amount of useful stuff from talks given by these people:

Brandon Rhodes

Raymond Hettinger

David Beazley

Sandi Metz

Avdi Grimm

exarne 5 days ago 0 replies      
It's an old talk but I really enjoyed it at the time, Paul Graham on Great Hackers: http://web.archive.org/web/20130729231533id_/http://itc.conv...
zerognowl 2 days ago 0 replies      
Always refreshing to hear one of Haroon Meer's talks:


Jake Appelbaum's Digital Anti-Repression Workshop is de rigeur listening too:


wedesoft 1 day ago 0 replies      
Dr Meister: Using Lisp, LLVM, and C++ for molecular programming: http://www.youtube.com/watch?v=8X69_42Mj-g
m0llusk 4 days ago 0 replies      
Google TechTalks Personal Growth Series: William Dement on Healthy Sleep and Optimal Performancehttps://www.youtube.com/watch?v=8hAw1z8GdE8
wyldfire 5 days ago 0 replies      
x0x0 5 days ago 0 replies      
Cliff Click was the jvm architect at sun then spent a decade at azul systems as their jvm architect. The talk is "A JVM Does That?"

It's well worth watching if you are interested in vms at all.


makmanalp 5 days ago 0 replies      
Aside from a lot of the classics here, one that stands out is this AMAZING live demo at pycon by David Beazley:


The simple and followable progression to more and more complex ideas blows my mind every time.

recmend 5 days ago 0 replies      
People don't buy what you do, they buy why you do it by Simon Sinekhttps://www.ted.com/talks/simon_sinek_how_great_leaders_insp...
andycroll 5 days ago 0 replies      
Slightly self-serving as the organiser but Sarah Mei's talk at Brighton Ruby this year was terrific.


agconti 5 days ago 0 replies      
Mike Bostock's talk on visualizing algorithms is one of my favorites: https://vimeo.com/112319901

> Visualizing Algorithms A look at the use of visualization and animation to understand, explain and debug algorithms.

cvwright 5 days ago 0 replies      
Gary McGraw: Cyber War, Cyber Peace, Stones, and Glass Houses https://www.youtube.com/watch?v=LCULzMa7iqs

I like how this talk cuts through a lot of the BS in security. One of his points is that the US and other rich Western countries have a lot more to lose from a possible "cyber war" than our potential adversaries do.

Another key point is that we'll never make much progress unless we can somehow start building better systems in the first place, with fewer vulnerabilities for an adversary to exploit.

I think the second point has become a lot more widely accepted in recent years since McGraw started giving this talk. Unfortunately it sounds like a lot of government folks still haven't got the memo on point #1.

akkartik 5 days ago 0 replies      
Moxie Marlinspike at Blackhat 2010 on how we lost the war for privacy in spite of winning the Crypto Wars of the 1990's-early 2000's: https://www.youtube.com/watch?v=unZZCykRa5w
anoother 5 days ago 0 replies      
"How to Speed up a Python Program 114,000 times." - https://www.youtube.com/watch?v=e08kOj2kISU

Humour, serious technical insight and a good reminder of why being a generalist is an advantage.

daveguy 5 days ago 0 replies      
Geoffrey Hinton "The Next Generation of Neural Networks". A google tech talk from 2007 about this newfangled "deep neural network" thing:


vvanders 5 days ago 0 replies      
Herb Sutter, Modern C++ - https://channel9.msdn.com/Events/Build/2014/2-661

Great overview of value types, performance and how hardware that runs things still matters.

teamhappy 5 days ago 0 replies      
Keith Winstein presenting mosh at USENIX 2012 is easily the most entertaining tech talk I've ever seen: https://www.youtube.com/watch?v=XsIxNYl0oyU

Scott Meyers' talks are fun to watch too.

drizze 5 days ago 0 replies      
David Beazley's, "Discovering Python": https://youtu.be/RZ4Sn-Y7AP8

A fascinating tale about using python during the discovery phase of a trial. Very fun watch. Anything by David Beazley is great!

simscitizen 5 days ago 0 replies      
"An Introduction to SQLite" by Richard Hipp (who wrote the library) is actually a pretty good intro on to how to build your own DB engine.


ebcode 5 days ago 0 replies      
John Holland is always worth watching, and not very many people have seen this one: https://www.youtube.com/watch?v=a_u_d-KLEsE#t=1183.549186
sideb0ard 5 days ago 0 replies      
I love the Ted Nelson "Computers For Cynics" series - https://www.youtube.com/watch?v=KdnGPQaICjk

He is kinda awesome in Herzog's recent 'Lo and Behold' too.

amelius 5 days ago 0 replies      
Rupert Sheldrake, "The Extended Mind, Experimental Evidence", Google Talks 2008, https://www.youtube.com/watch?v=hic18Xyk9is

If you are in for something out of the ordinary.

ajankovic 5 days ago 0 replies      
I like this one because it's a good reality check:Opening Keynote: Greg Young - Stop Over-Engenering https://www.youtube.com/watch?v=GRr4xeMn1uU
vonklaus 5 days ago 0 replies      
Ashton Kutcher--Startup School

I like it because it is the intersection of so many things. He starts slow, is very intimidated by the audience. The audience, obviously super skeptical of the clown from that 70s show giving any useful information, they could learn from. He finds his footing with a great morivational story (albeit laden with a few cliches) about a forgotten entrepreneur and how he built some lasting value.

For me, this is a great talk. The story is extremely motivational and has some interesting bits of history & entrepreneurial genius-- but the entire experience is extremely educational. About bias, drive & success.

I liked it for what it wasnt.

peelle 4 days ago 0 replies      
Clay Shirky on Love, Internet Style. He has several great talks.


thegeekpirate 5 days ago 1 reply      
Black Hat USA 2015 - The Memory Sinkhole Unleashing An X86 Design Flaw Allowing Universal Privilege


johnhenry 5 days ago 0 replies      
Douglass Crockford's series of 8 videos, "Crockford on JavaScript" really helped me gain a understanding of the language and a better understanding of programming in general. If you don't like or understand JavaScript, this will definitely change that. He's an excellent speaker and the talks are quite enjoyable. Here is the first video: https://www.youtube.com/watch?v=AoB2r1QxIAY. If you like it, the other 7 are available in the suggested section.
djfdev 5 days ago 0 replies      
I always enjoyed Ryan Dahl's casual at-home talk on the history of Node.JS: https://www.youtube.com/watch?v=SAc0vQCC6UQ
geichel 5 days ago 0 replies      
Zed Shaw's presentation, it's Not You, It's Them: Why Programming Languages Are Hard To Teach -- https://vimeo.com/53062800
stewartw 4 days ago 0 replies      
Lawrence Lessig's 'free culture' from OSCON 2002:-https://randomfoo.net/oscon/2002/lessig/

Anything at all by Richard Feynman:-https://www.google.co.uk/search?q=%22richard+feynman%22&tbm=...

nicwest 5 days ago 0 replies      
The Clean Code Talks - "Global State and Singletons": https://www.youtube.com/watch?v=-FRm3VPhseI
joshux 5 days ago 0 replies      
Damien Katz - CouchDB and Me: https://www.infoq.com/presentations/katz-couchdb-and-me

The talk is about how Damien quit his job to hack on open source software. It shows his struggle and doubt while embarking on the project and then finally invented CouchDB. It's a passionate and human account of the process of creating something significant. I recommend every hacker watch this.

boulos 5 days ago 0 replies      
In addition to Linus's git talk, I really enjoyed Jeff Dean's EE380 retrospective on Building Systems at Google (http://m.youtube.com/watch?v=modXC5IWTJI). Many people have mentioned Jeff's basic premise elsewhere ("Design a system for 10x your current need, but not 100x, rewrite it before then") but this talk gave several useful examples where tipping points occurred (at least with Search).
vayarajesh 5 days ago 0 replies      
TED talk - Elon musk - https://www.youtube.com/watch?v=IgKWPdJWuBQ

D10 conference - Steve jobs and Bill gates - https://www.youtube.com/watch?v=Sw8x7ASpRIY

TED talk - Bill gates (Innovation to Zero) - https://www.youtube.com/watch?v=JaF-fq2Zn7I

miiiiiike 5 days ago 0 replies      
Chuck Rossi - How Facebook releases software: https://vimeo.com/56362484 I remember thinking "Dr. Cox as release manager."
Veratyr 5 days ago 0 replies      

How Google backs up the internet.

At the time it changed how I thought about backups/reliability.

Philipp__ 5 days ago 0 replies      
Everything by Mr. Bryan Cantrill! This one is special:https://www.youtube.com/watch?v=l6XQUciI-Sc
glitcher 5 days ago 0 replies      
One in particular comes to mind that really changed the way I think about the larger problem of security in computer science and what a mess our current state of affairs seems to be in:

"The Science of Insecurity" by Meredith L. Patterson and Sergey Gordeychik (2011)


Warning: speaker likes to use profanity (which I enjoy :) but possibly NSFW if you're not on headphones

ciroduran 5 days ago 0 replies      
I love Kevlin Henney's talks, he's very entertaining and informative at the same time, here's one called "Seven Ineffective Coding Habits of Many Java Programmers", very useful even if you don't use Java - https://vimeo.com/101084305

The rest of his channel is full of his talks https://vimeo.com/channels/761265

oleksiyp 5 days ago 0 replies      
Google I/O 2009 - The Myth of the Genius Programmer

One of the best talks about code reviews and similiar things


1057x31337 5 days ago 0 replies      
Therapeutic Refactoring by Katrina Owen https://www.youtube.com/watch?v=J4dlF0kcThQ
tboyd47 5 days ago 0 replies      
"Being Awesome By Being Boring"https://www.youtube.com/watch?v=Iheymi5QFEY
michaelmcmillan 5 days ago 0 replies      
Fast test, slow test by Gary Bernhardt: https://www.youtube.com/watch?v=RAxiiRPHS9k
sedachv 5 days ago 0 replies      
QueueTard's Manufacturing Modern Computer Chips at HOPE number nine: https://www.youtube.com/watch?v=NGFhc8R_uO4

Guy Steele's How to Think about Parallel Programming: Not! at Strange Loop 2011: https://www.infoq.com/presentations/Thinking-Parallel-Progra...

danpalmer 5 days ago 0 replies      
I find Simon Peyton Jones to be an excellent educator. He talks mostly about Haskell and the GHC compiler, but his talks are very accessible to a wide audience of programmers.
augustk 5 days ago 0 replies      
Edsger Dijkstra's Turing Award Speech:


theviajerock 3 days ago 0 replies      
My favorite is this one about Drones and IA. One of the best:


EvanAnderson 5 days ago 0 replies      
I very much enjoyed the talk John Graham-Cumming gave "The Great Railway Caper: Big Data in 1955": https://www.youtube.com/watch?v=pcBJfkE5UwU

Any of Jason Scott's talks given at various hacker cons are usually historically informative and always a lot of laughs (but they're decidedly not "technical").

romper 5 days ago 0 replies      
Secret history of silicon valley: https://youtu.be/hFSPHfZQpIQ
jagermo 5 days ago 0 replies      
"Pwned by the Owner" (https://www.youtube.com/watch?v=U4oB28ksiIo), a DefCon 18 talk about a stolen Mac that one day popped back up on the owners DynDNS service, he was able to connect to it and had some fun afterward.

Not a technical deepdive, but entertaining.

lumannnn 5 days ago 0 replies      
by Dave Thomas (PragDave)

"LoneStarRuby 2015 - My Dog Taught Me to Code by Dave Thomas" - https://www.youtube.com/watch?v=yCBUsd52a3s


"GOTO 2015 Agile is Dead Pragmatic Dave Thomas" - https://www.youtube.com/watch?v=a-BOSpxYJ9M

lewisl9029 5 days ago 0 replies      
The Front-end Architecture Revolution by David Nolen: http://www.ustream.tv/recorded/61483785

It completely changed the way I approach front-end development (Not that talk in particular though. I saw an earlier, similar talk on Youtube but this one has much higher quality).

ericssmith 5 days ago 0 replies      
Not at all high-brow, but I revisit the in-the-trenches case study of "Scaling Pinterest" on Infoq from time to time because I find their fighting through the pain inspirational for my own scaling troubles.


zengr 3 days ago 0 replies      
My personal favorite is "The ACL is Dead" by Zed Shaw https://vimeo.com/2723800
exawsthrowaway 5 days ago 0 replies      
It's not publicly available, but it was an internal AWS talk and very-deep-dive on the design & implementation of S3. A real eye opener for what it meant to build at global scale.

It's worth joining a global-scale tech company (AWS, Google, Azure, Facebook) just to have your mind blown by some of the internal materials.

davur 5 days ago 0 replies      
Cal Henderson "Why I Hate Django" DjangoCon 2008 Keynote - https://www.youtube.com/watch?v=i6Fr65PFqfk. Not that it is the most educational talk, but it's really funny (edit: added youtube link).
rimantas 5 days ago 0 replies      
Anything by Sandi Metz.
ruairidhwm 5 days ago 0 replies      
Hacking with Words and Smiles by James Lyne https://www.youtube.com/watch?v=KrNo0XpQxBk

He was a co-speaker at TEDxGlasgow with me and I thought his talk was brilliant. Cyber-crime is a really interesting area.

jboynyc 5 days ago 0 replies      
I like all of Carin Meier's talks, but I think the one that made the most lasting impression was "The Joy of Flying Robots with Clojure."


jacques_chester 5 days ago 0 replies      
Stop Building Products by David Edwards.

A deeply thoughtful discussion of the impact of metaphors on how we think about software development.

Skip to 0:40 if you don't want to hear the MC.


NetStrikeForce 4 days ago 0 replies      
ECCHacks - A gentle introduction to elliptic-curve cryptography [31c3]


peoplee 5 days ago 0 replies      
The Pixel Factory by Steven Wittenshttps://www.youtube.com/watch?v=4NkjLWAkYZ8

For those how likes computer graphics (or want to learn), this is a gold piece.

vinkelhake 5 days ago 0 replies      
"Desktop on the Linux" by Wolfgang Draxinger (guest appearance by Lennart Poettering):https://www.youtube.com/watch?v=ZTdUmlGxVo0
c0l0 5 days ago 0 replies      
Artur Bergman, creator of the Fastly CDN, at Velocity 2011 - giving a (very) short talk about SSDs: https://www.youtube.com/watch?v=H7PJ1oeEyGg
lukego 5 days ago 0 replies      
superplussed 5 days ago 0 replies      
React-motion, the react animation package that boils all of the animations down to one concept, a spring.


0xmohit 5 days ago 0 replies      
I have a list of interesting talks on Haskell/OCaml [0].

(Plan to organize and add more categories.)

[0] https://github.com/0xmohit/talks

unkoman 5 days ago 0 replies      
Eric Brandwine at AWS talking about how they solved the networking part of the cloud: https://www.youtube.com/watch?v=3qln2u1Vr2E
d1ffuz0r 5 days ago 0 replies      
krsna 5 days ago 0 replies      
"When We Build" by Wilson Miner: https://vimeo.com/34017777

It completely changed my perspective on how design shapes our world.

nickysielicki 5 days ago 0 replies      
DEFCON 20: Owning Bad Guys {And Mafia} With Javascript Botnets https://www.youtube.com/watch?v=0QT4YJn7oVI

This guy is just too funny.

simula67 5 days ago 0 replies      
"Greg Wilson - What We Actually Know About Software Development, and Why We Believe Its True"


tehwebguy 5 days ago 0 replies      
That guy fat from the Bootstrap team - What Is Open Source & Why Do I Feel So Guilty?


jpetitto 5 days ago 1 reply      
Deconstructing Functional Programming by Gilad Bracha:


samblr 5 days ago 0 replies      
There is a sort of palpable energy in (Ryan Dahl) node.js original presentation.


edit: +Ryan Dahl

RodericDay 5 days ago 0 replies      
I really liked "The Life and Death of Javascript" by Gary Bernhardt
sunils34 5 days ago 0 replies      
Resilience in Complex Adaptive systems by Richard Cook at Velocity Conf 2013:


bluefox 5 days ago 0 replies      
Dynamic Languages Wizards Series - Panel on Runtime: https://www.youtube.com/watch?v=4LG-RtcSYUQ
jentulman 5 days ago 0 replies      
Dan Abromovich sort of introducing Redux in this talk. https://youtu.be/xsSnOQynTHs
verandaguy 5 days ago 0 replies      
I'm a fan of "Knocking my neighbors kids cruddy drone offline" by Robinson and Mithcell from DEFCON 23.

 [0] https://www.youtube.com/watch?v=5CzURm7OpAA

rhgraysonii 5 days ago 0 replies      
Closure, by @steveklabnik


So many lessons in short, beautiful piece.

fitzwatermellow 5 days ago 0 replies      
Well. There's enough quality content in this thread to start a dedicated cable television channel, a la Viceland ;)

Not sure if it's my favorite. And the subject is more technology than "tech". But the talk that keeps haunting me is Michael Dearing's lecture from the Reid Hoffman "Blitzscaling" class at Stanford:

Heroes of Capitalism From Beyond The Grave


Dearing draws upon an obscure letter by Daniel McCallum, superintendant of the New York and Erie Railroad, written to his bosses in the 1850s. In the report, McCallum bemoans the stress and frustration of operating a railroad system spanning thousands of miles. All of the joy and magic he used to revel in whilst running a fifty mile stretch back in his home town has long since dissipated. Furthermore, the unit cost per mile seems to be exploding rather counter-intuitively!

Dearing goes on to elucidate the absolute necessity of the railroads ("the thing to know about the railroads is: they were startups once") themselves. As guarantors of civilization and progress. Beacons bringing light and reason to the dark swamps of ignorance and inhumanity. And not just in the physical transport of goods, people and ideas across the continent. But as the wealth created from that creative destruction remains the best cure for all of our other inimical maladies: poverty, injustice, disease and stagnation.

So, no pressure. But civilization depends upon you!

Links to References in the Talk:

Estimates of World GDP: From One Million BC to the Present


The Process of Creative Destruction by Joseph Schumpeter


The Visible Hand: The Managerial Revolution in American Business by Alfred D. Chandler, Jr.


Report of D. C. McCallum to the stockholders of the New York and Erie Railroad


Things As They Are In America by William Chambers


Ask HN: How does your engineering organization decide what tools to support?
3 points by thevoid108  21 hours ago   1 comment top
user5994461 19 hours ago 0 replies      
> How does your company select their supported engineering tools? Is this done amongst a select group of engineering leads? Organizational surveys, etc?

IMO. All tools are history from a distant past.

There was problem some time ago. Some people picked a tool and it persists. The reasons for a particular tool could have been anything and may or may not still hold true.

Usually the tooling ends up fragmented by team, office locations, external acquisitions... especially when there are multiple similar products available.

The alternative is to have one ruthless dictator who forces the adoption of ONE SINGLE TOOL and kill everything else. That's the only way to get decent tooling and unify it across a company. (Coincidentally, that's also the only way to migrate from a mess of old tools).

Ask HN: How to become better at problem solving?
14 points by nshung  1 day ago   12 comments top 10
Envec83 1 day ago 0 replies      
Solve lots of problems.

Given you are asking on HN, I would guess that you code and are looking to become better at programming problems as well.

If that is the case, check out this resource for programming games, challenges and competitions: https://github.com/dakaraphi/development-resources

Someone 1 day ago 2 replies      
Book: "How to solve it" by George Plya (https://en.wikipedia.org/wiki/How_to_Solve_It)
LarryMade2 1 day ago 0 replies      
Trying out your ideas to do one thing or maybe even a way to improve something.

Doesn't have to be a complete idea all the time; mainly you need to build yourself hands-on experience of trying to solve a problem, the more you do the more ideas you get as well as the wisdom of why some methods may not work.

Sometimes I think of stupid ideas, but even thought I'm pretty certain it wont work, I will try it out just to see anyway. Many times such attempts leads me to other ideas.

Also if you are stuck, do some research, sometimes you will find a solution, others solutions might lead you to other possible methods. Just keep trying stuff.

lrlabs 1 day ago 0 replies      
3 steps.

- Identify a structure as against finding an idea or solution. Structures help you be through and ensure you are limited to just brain waves

- Solve more problems. Solve a particular problem and then try to see if the solution is scaleable. That will help you improve your structure.

- Read more. Read a lot. Read just about anything. Good editorials can be a master class in problem structuring.

arikr 1 day ago 0 replies      
A la Charlie Munger, develop a latticework of mental models.

See: https://medium.com/@yegg/mental-models-i-find-repeatedly-use...

me_not_brucelee 1 day ago 0 replies      
Maybe you can get a more fruitful answer, if you layout what kind of problem you want/expect to solve. I can tell you to read more books, solve more problem, but I'm pretty sure you already know that, or can know with some google search.
eecks 1 day ago 0 replies      
When you look at a problem

* relate it to other problems you have solved or seen solved

* break the problem down into parts. Some of those parts may be things you have previously solved or have seen solved

* research the problem

* after completing one problem, reflect on it and learn from it

spotman 1 day ago 0 replies      
Take a job, or a gig, or a ticket that is beyond your skill level, and don't give up until you solve it.
johnrgrace 1 day ago 0 replies      
Take up a hobby that revolves around problem solving like lock picking.
_RPM 1 day ago 0 replies      
Hackerrank tutorials
Ask HN: How do you debug code?
9 points by questionr  1 day ago   5 comments top 5
de4sher 19 hours ago 0 replies      
Though I'm a big fan of debugging, and one of my specialties is debugging everything, I'd also like to point out that writing unit tests is also a very good way to "debug".

2 good things come out of unit tests:

1. You'll decrease the chances of having to debug that code again2. You'll learn how to write code that needs less debugging.

Now to adress your question directly, I have developed a few techniques of debugging, which come in quite useful.

1. Going directly to the problem. Example 1: you're debugging some database problems -> put a breakpoint in the library that's interfacing with the database. Example 2: Some object has some unexpected property -> put a breakpoint at the point when that property is set. Example 3: you're receiving weird http requests -> put a breakpoint as close as you can to the code giving you the request.

2. Conditional breakpoints. Some IDEs have this feature build in. If not, you can just write code around that. All you have to do is write a conditional statement with the condition you expect, and if it will evaluate to True, put a breakpoint inside this condition - there you have it, simple conditional breakpointing (helps with loops and other scenarios).

3. Write code that minimizes state change. I know I'm being preachy again, but the worst bugs I encountered all revolved around objects being changed by code in extremely unexpected places. Don't do that! Think by default never to modify objects once created, and only stray from this rule when the alternative becomes ridiculous (e.g. when you have to write a lot of really complicated code which nobody will understand)

maramono 1 day ago 0 replies      
It depends on the difficulty of the bug(s) that need to be localized and fixed.

I use a wide range of techniques from simple printf's all the way to a full-blown methodology that has not failed, especially when dealing with coupled bugs or those caused by concurrency issues, hardware and such.

I wrote about my methodology here: http://ortask.com/wp-content/uploads/fault_localization_impr...

_RPM 1 day ago 0 replies      
I usually will look at the input, and then look at my output. If it's not what I expect, I look at the code. Then I'll discover something usually. It's hard to articulate how I do it. I couldn't pass one of those hacker rank style challenges for 2 or 3 companies this year out of the box, but I think I can debug code pretty well.
malux85 23 hours ago 0 replies      
For 'shallow' bugs, printing / logging - solves problem 90% of time.

Deeper bugs use the IDE, breakpoints and debugger, goto definition and call stack examination solve the other 10%

Some tips for production: Put logging calls in at critical points -- e.g. initialisation of interfaces log input and output shapes (I work in mostly in vectors), DEBUG level logging, which is more verbose, can log the shape of incoming vectors to help with sanitation efforts.

veddox 1 day ago 0 replies      
Yes, debug logs are my usual m.o. too. In general I follow the divide-and-conquer approach for localizing the source of a bug - it works well for > 95% of bugs.

If you're using an interpreted language, a REPL is brilliant for debugging individual functions (I use this mostly with Lisp, but also to some extent with Python).

Disclaimer: I'm not a professional dev...

Ask HN: Were we ever future-obsessed as we are now?
22 points by gallerdude  2 days ago   21 comments top 10
mchannon 2 days ago 0 replies      
I'd say we're in many ways less future-obsessed than we used to be, at least when it comes to the distant future.

You can see numerous examples ranging from magazines dating back to the 1800's (and before) of all the wacky inventions they pictured denizens of the year 2000 using (rocket packs! nuclear-powered cars! pneumatic transport!), and what life might be like (through the lens of the time). Readerships enjoyed and appreciated reading about the future and giving their imaginations fertile ground to romp.

Futurist was actually a job title.

I think now we're too busy or easily distracted to care much about the possibilities of the distant future. Most of our thoughts on the subject are now doom scenarios involving climate change, collision with an asteroid, running -out- of atmospheric CO2, or the Sun eventually encompassing the Earth.

Then again, maybe there's just a big opening for someone with the right marketing skills to fill an unmet need. I think I could be a futurist.

wj 2 days ago 0 replies      
Who is we?

I was old enough to have been a young teenager when Netscape was released and connected to the web via a BBS (already had Usenet) and Trumpet Winsock. I would say up until 1998 the Internet boom was met with scepticism by the general public. Most people weren't even chatting on AOL. It wasn't until broadband became more commonplace (2000?) that I think the general public became obsessed with the Internet.

As to smartphones the iPhone (specifically the 3G) was the device I had been waiting most of a decade for after seeing my friend's Palm Pilot with Internet access in 1999 or 2000. I'm probably old enough that I discount the "smartphone boom" as I viewed it as the natural progression of existing technology. Also am slightly disappointed that the original premise of the iPhone was web apps on the phone through the browser but that quickly was replaced with native phone apps.

tldr: I think a very small percentage of people are future obsessed about the AI revolution. In the HN echo chamber it might be more but the majority of people don't give it a second thought outside of, "NO SIRI! I SAID WHERE IS..."

I'm not old enough to say but I imagine the magic behind the beginning of space exploration and the race to the moon could have been the peak of future obsession.

niftich 2 days ago 0 replies      
We were always this future-obsessed. Take electricity, for example, arguably the most significant innovation of the late 1800s. In 1883 Darmstadt University of Technology, MIT, and Cornell started teaching Electrical Engineering as a distinct field of study. In 1889 at the expo in Paris (now-famous for the Eiffel Tower which debuted at this fair), there was a large pavilion with various machines [1][2] including electrically-powered moving platforms suspended from the ceiling that shuttled visitors across from the mezzanines [3]. Two years later in 1891 there was an expo held in Frankfurt specifically on electrical technology [4], where several electrical innovations were demonstrated, and two years later at the 1893 Chicago world's fair, there was even more electric features, including motors, generators, lamps, spotlights, and the whole fair was illuminated by electricity [5].

This is, of course, the same time period featured in the xkcd titled 'The Pace of Modern Life' [6], which takes contemporary newspaper quotes lamenting that people are always in a hurry and rarely stop to greet strangers and instead spend their commutes on the trains with their noses buried in newspapers, showing that today's critiques about people lost in their smartphones are more than a century old.

So yeah, I'd say we've always been obsessed with the future.

[1] https://en.wikipedia.org/wiki/Galerie_des_machines[2] https://en.wikipedia.org/wiki/Galerie_des_machines#/media/Fi...[3] https://en.wikipedia.org/wiki/Galerie_des_machines#/media/Fi...[4] https://en.wikipedia.org/wiki/International_Electrotechnical...[5] https://en.wikipedia.org/wiki/World%27s_Columbian_Exposition[6] https://xkcd.com/1227/

buckbova 2 days ago 1 reply      
Late thirties here, I expected we'd be in flying cars and live in big glass bubbles by now. Technology is moving fast but still too slow for my taste.

And basically I feel like that's it for my lifetime. There will be incremental changes from here on out. I really hope I'm wrong though and some huge breakthrough in energy or astrophysics or biology or whatever knocks me on my ass.

fitzwatermellow 2 days ago 1 reply      
William Gibson stated his famous maxim about the future already being here way back in 1990. Just last week, Lagos, Nigeria celebrated its own "Startup Week". Currently there are over 2000 technology accelerators spanning the globe. But the "future" you and I are living in barely appears in the halcyon dreams of the vast majority of Earth's citizens!

Stanford economist Paul Romer once theorized that breakthrough technologies don't really become productive for a generation. That lag time has shrunk to about a decade.

So instead of obsessing over the "vertical" invention, think about what it means to solve the "horizontal" problem. That in less than ten years time, something you take for granted today could be at the fingertips of 4B+ people ;)

zubat 2 days ago 1 reply      
There's always something to anticipate around the corner, because the future is actively marketed to you. Oftentimes this marketing precedes the actual goods being of value - for example, VR went through a hype cycle circa 1990-1995, then disappeared for a while, because it really just wasn't doing very much yet, back then - and the headset and motion sensing tech was conflated into the onrush of CGI imagery, interactive 3D scenes, digital video, and internet technology. Most of that stuck around and consequently became ordinary. When the technology is actually the future, it becomes pervasive and ordinary very quickly. When it's a hype bubble, it crashes after a while and a bunch of companies fail.

That was the dot-com bubble: even though the internet was a big deal, pets.com and Webvan were not viable internet companies as they took on something the ecosystem wasn't ready for. They did, however, anticipate, and market to, a future where their business became viable, in the form of today's Amazon. 1990's Amazon was purely a bookseller, and perpetually viewed as sitting on a knife-edge.

Now we have a second hype cycle for VR, and while it's much better stuff this time, that doesn't mean it's actually the future. The hype around AI is similar. There was hype over previous AI techniques, too: expert systems, for example, had a period in the 80's where they were promised to do everything, assuming "everything" meant encoding a huge decision tree. Now it's the neural networks that will do "everything". NN also had a hype cycle in the 90's, but without the data and computational power, they weren't able to achieve the results we're getting today.

Developments in AI today are enumerated in achievements that become banal moments after you first hear of them: Watson beat a Jeopardy! champion. AlphaGo beat a top-level Go player. We can detect cats in images. Cars can self-drive a course better than trained race-car drivers. And so on.

It's good to be excited about the future. The marketing hype is not evil, it's necessary - it creates a dialogue, focusing people to think in terms of new technology. It's not the same as its realization, which tends to be more of a "one morning I woke up and realized I was in the future" self-reflection.

carsongross 2 days ago 0 replies      
> It seems like right now we're on the major cusp of an AI revolution

It seemed like that in 1980, as well, and then this happened:


I make no predictions around AI, although I'm skeptical it will work well outside of specialized, rules-heavy environments. Been wrong before, happy to be wrong again.

My sense is we are less future-obsessed than people were in the 1950's, during the blow-off top of the atomic age. People seem more concerned with the environment, sustainability and so forth, Moore's law is slowly grinding to a halt and technical innovation, in general, has slowed down.

Culture churn has definitely increased since the 90's, however. I attribute this to us finding ourselves at the end of modernism and post-modernism, with nothing left to deconstruct, strip away, transgress or mock. This, coupled with the internet, is leading to a blow off top in culturally combinatorial attempts to avoid a return to tradition (unthinkable) or facing up to end-state nihilism (unbearable).

It's not all bad: https://www.youtube.com/user/NewRetroWave

tracker1 2 days ago 0 replies      
I'm still waiting for my flying car... It's well after the year 2000 and I was promised flying cars!

[0] https://www.youtube.com/watch?v=vzm6pvHPSGo

hacker66 2 days ago 0 replies      
Look at the movie 2001 released in 1968. Commercial space flights. A full AI. Living on the moon. And people pretty much thought all that was inevitable (so disappointed it didn't happen). To me this point in time seems less future obsessed.
tarancato 2 days ago 1 reply      
Are we future obsessed? I am not.
Ask HN: Turkey has GitHub, dropbox etc. blocked. What is a good VPN to be using?
3 points by throwawayx010  23 hours ago   2 comments top 2
atmosx 14 hours ago 0 replies      
I use Torguard which features exit nodes in +80 countries for ~ 60/year. I use it with openvpn[1].

That said, I'm not sure if it will work in case because I've noticed that some websites block at least 2/3 of the exit nodes. So I guess that there's an IP list of shared exit nodes for all if not most VPN providers. Even if it doesn't exist is really easy to create by creating one account per VPN provider.

Torguard supposedly doesn't track/keep logs and hides your IP in IPv4/6 when torrenting. There's a tool to check if you are leaking packets which show your real IP through torrents.

In your case (Turkey) I'd go for a single VPS instance and setup an OpenVPN server, it takes 10 minutes to do so... Chances are that the VPS will never get blocked, I can't say the same for VPN's exit nodes.

[1] https://www.convalesco.org/articles/2015/06/08/raspberry-pi-...

mtmail 20 hours ago 0 replies      
I used https://privatepackets.io/ to setup my own server while in Turkey.

The HN search has a couple of recent 'best VPN' discussion threads https://hn.algolia.com/?query=best%20vpn&sort=byPopularity&p...

Ask HN: Team for Hire?
205 points by wilwade  2 days ago   97 comments top 17
alberth 2 days ago 0 replies      

Just the other day HN had an article on them. They are in Atlanta, so not far from you.

They are looking to hire 150 new employees within the next year.

>> "[MailChimp] now employs about 550 people, and by next year it will be close to 700"


Since OpenTable sends email confirmation for restaurant reservations, your team might bring interesting insight for MailChimp since it's possible you might be a current customer of them.

eganist 2 days ago 6 replies      

Interesting. I know there are Very good reasons for not relocating to either Los Angeles or San Francisco, but what were the specific reasons (aside from family/homes, if any) you and the team had for opting not to relocate?

Further to this:

2) Were team members offered raises as part of a relocation package?

3) Were team members offered the opportunity to work 100% remotely?

4) Has OpenTable approved this message?

5) Regardless of #4, are there certain conditions others would need to be aware of such as non-competes? I know NCAs are fairly (if not entirely) powerless in California, but I'm not aware of the laws impacting them in Tennessee.

Edit: per user @rfc's jogging of my brain, Stripe has a program for hiring full development teams. @wilwade, this might be worth applying to. I know I posted it in another comment, but it's worthy of top-order visibility: https://stripe.com/blog/bring-your-own-team

sailfast 2 days ago 1 reply      
If you can't find a group that will hire you as a team, perhaps you should start a consulting / product firm. There's overhead / non-dev work to setting up shop and starting a business development pipeline to get revenue in the door of course, but if you want to stick together, build great things, and keep your culture that's a solid option if others fail.
seagreen 2 days ago 0 replies      
Sorry to hear that OpenTable's moving out of Chattanooga.

I was in Chattanooga from 2013-15 and have nothing but good things to say about their team. Most notably they ran a functional programming meetup that covered pretty advanced topics but was still inclusive to beginners. I'll remember the encouragement I got there for a long time.

If anybody who cares about the Chattanooga tech scene reads this: do your best to keep the OpenTable team intact. A lot of the programming community's enthusiasm is either directly coming from or being encouraged by them.

DISCLAIMER?: I was in Chattanooga a couple weeks ago and they gave me a bunch of useful, free advice on my current project. This isn't really a disclaimer though because IMO it just reflects even better on them.

archon 2 days ago 2 replies      
As another Chattanooga dev, I hate to be a wet blanket, but I would be very surprised if any startup here has a need for or ability to employ a team that large. Especially since the larger employers here (TVA, Blue Cross, Unum, Covenant Transport, USX) are all .Net shops.

I'm not saying it's impossible, just that I believe you would be better served to either find individual jobs here, or be willing to relocate. (And just to be clear, I'm not pushing the relocation thing. I love this city and wouldn't want to move either.)

33a 2 days ago 1 reply      
Have you all considered starting a worker owned cooperative?
chattamatt 2 days ago 4 replies      
Please know that this post does not represent the views of all of us at this office. While I appreciate the effort to place us as a team, I feel this effort in particular does not represent the professional nature in which we conduct ourselves, and was posted without the permission of all of us on the team.
timdorr 2 days ago 2 replies      
Are you willing to move down to Atlanta? If so, I know of some potential options here in town. Glad to make the intro.
rfc 2 days ago 2 replies      
I spent a few minutes searching but couldn't find the link. IIRC, Airbnb was testing out hiring full teams. It was a pilot program and I'm not sure if it's still going on. If you know anyone there, I'd reach out to ask.
tbrooks 2 days ago 0 replies      
Chattanooga is a beautiful town. I almost moved their in January. The city has a lot to offer and it could be one of the next great tech hubs.

I decided not to move because I didn't think the local economy offers a lot of choice for software engineering jobs. When I visited people remarked, we've got VaynerMedia, we've got OpenTable, we've got CarbonFive, etc. etc.

This news sucks because I really want to see Chattanooga grow into a techhub, but it also confirms the suspicions I originally had. :/

pknerd 2 days ago 1 reply      
a bit OT. Since you are already a team, utilize spare time to make some awesome product. Someone will eventually hire you :)
micah_chatt 2 days ago 1 reply      
I know of a tech startup in Chattanooga with the budget/funding that is willing to take on this team (cough: current employer)https://twitter.com/kenmcelrath/status/784418953141493760
pbreit 2 days ago 0 replies      
Eventbrite is hiring engineers in Nashville.
rubyfan 2 days ago 0 replies      
When you say "backend," specifically what do you mean?
stray 2 days ago 0 replies      
Have you talked to the folks over at Lamp Post Group?
phaitour 2 days ago 1 reply      
have you tried elevator? goelevator.com/
Klarbichu 2 days ago 7 replies      
You'll find success faster if you split up and join the talent pool sooner rather than later.

If you're trying to get hired as a team, that sounds new, so employers might not have heard of such a thing.

It's the first time I've heard of something so preposterous. Maybe if it was a progressive state like Colorado, I could understand, but Tennessee? I can't stand the hot, humid summers myself. Then you have chiggers and scorpions to worry about. ;)

Ask HN: Collaborate on research as a side project?
5 points by bjornsing  1 day ago   6 comments top 3
malux85 1 day ago 1 reply      
Yes - I am building a deep learning platform right now, and it's 95% complete (just some UI to finish) I am starting to look for real use cases to run on the demo servers.

My email is in my profile if you'd like to work together

dragon_king 21 hours ago 1 reply      
I have been thinking kind of along the same lines. I work full time but I can carve out 5-8 hours a week to work on some research project and add value as a technologist. I would love to contribute especially to projects and folks working in the medical field trying to fight diseases, finding cure and advance genetic engineering to name a few.

I think a lot of people would love to contribute their free time and together that would mean thousands of hours of help into these projects which could mean that the goals could be achieved sooner. The problem is I don't know where to start and which projects would benefit from my 5-8 hours a week. This seems like the same problem I have with contributing towards open source projects.

I would love to talk more and see if there is a viable solution out there.

keyle 1 day ago 1 reply      
I think you're better off starting it, figuring what it's about, and then, inviting people to join. As is stands, it sounds rather vague.

PS: I'd love to help but I don't think I'm qualified enough in that field! Good luck!

Ask HN: Best platform for blog+store+members area
6 points by geomark  1 day ago   3 comments top
happycodework 1 day ago 1 reply      
Django. Shopify and etsy. Are good choices (also bootstrap and stripe payments)

For php Magento and Wordpress do exactly that (ecommerce and blog).

For blog there are also some nice "markdown static blog" software that are super ez.

Ask HN: Database schema with more than 100 tables where can I find some?
7 points by samblr  1 day ago   8 comments top 4
cauterized 1 day ago 1 reply      
What do you expect to learn from this hypothetical sample database?

In my experience, a DB with hundreds of tables doesn't usually model its data any differently from one with a few dozen tables. It just has a couple dozen topical clusters of a dozen or so related tables, instead of just a few clusters of a dozen or so related tables.

mtmail 1 day ago 1 reply      
Magento 1.7 has over 300 tables, see http://www.magereverse.com/ Magento 2.x has probably even more. You can download the software including a demo store https://www.magentocommerce.com/download
lucb1e 1 day ago 0 replies      
Care2x has quite a few tables if I remember correctly, but I don't remember if it was over 100.
tenken 1 day ago 2 replies      
Any large drupal7 site.
*SUSE Dev Survey Please Help Improve OpenSUSE for Developers
8 points by rbrownsuse  2 days ago   8 comments top 5
johnson 1 day ago 0 replies      

1. Abondon SystemD, while there is still time! (that ship is sinking. Rumor has it many of the SystemD tools develop by governmental agencies for offensive hacking, are focused on the numerous problem with SystemD.

Just 'emerge' the best parts of OpenSuse into a Gentoo Fork.Gentoo is being raped by CoreOS, rackspace, google and a hoard of other commercial interests. So, OPenSuse could easily become the best (secure) distro on the planet, and bring a robust installation semantic to Gentoo, that is so desperately needed. Change 1/2 of the folks on your Board of Directors:: align with the little people.

Gentoo severely needs a robust installer. Then focus on UNIkernel solutions for the cloud that are secure (very small attack surfaces.

Dirt Simple:: Make money off of corporate consulting

johnson 1 day ago 0 replies      
Just 'emerge' all of the good things of SUSE into Gentooand help build a better GENTOO linux.

dirt simple::you can then focus on UNIkernel clustered codesthat provide little in the way of attack surfaces.

k__ 1 day ago 0 replies      
I used Debian (Server) and Ubuntu (Workstation) for development till now.

Switching to NixOS these days, because it has dev specific features I really like (Nix, hurrr). I don't see that much benefit from switching from Ubuntu to SUSE or Fedora etc.

roschdal 1 day ago 1 reply      
I like OpenSUSE! Easily available images of OpenSUSE for Docker and Vagrant would be nice.
Ask HN: Category structure for a directory of side projects
6 points by webtechgal  2 days ago   5 comments top
partisan 1 day ago 1 reply      
You might consider using tags instead of categories. People might look at categorizations in different ways. So you might tag your projects with languages, industries, etc. You can seed these values without a lot of thought and without painting yourself into a corner.
       cached 10 October 2016 12:05:02 GMT