hacker news with inline top comments    .. more ..    24 Nov 2016 Ask
home   ask   best   2 years ago   
Ask HN: Does it matter to be the first on the market?
40 points by bobnarizes  1 hour ago   31 comments top 27
cdnsteve 1 hour ago 2 replies      
If you seriously invested 6 months already, stop everything and ship it in the next 5 days Cut out anything/everything feature wise you had planned and focus on shipping, now. Competing products are offered all the time, everywhere you look. It's because there is a strong problem area and demand for them.

What makes them better/different or noticeable? Marketing. Take a look at the web hosting industry. There are literally thousands and thousands of web hosting companies all offering (nearly*) the same thing. They differentiate by reputation and marketing. Ask any small business owner if they have a website, then ask them have they heard of AWS? I bet they won't. They'll be use Joe Host down the street from him or GoDaddy or won't have a clue and they have a "web person" to take care of that.

A product idea only gets you so far. Now you need to master how to get people to find it, tell them they need it and get them to sign up by hopefully providing you their credit card for X service/product. Your journey is just starting.

ImTalking 20 minutes ago 0 replies      
How can it be the exact same product when developed independently? Your product will fork away as you and your customers decide what is important just as they will.

Answers to your questions:

1) Yes. It happens to everyone. And you want it to happen because being first is very expensive. You have to educate the market place and that takes time and money. Plus if you were the first and started to succeed, do you think that other startups (or larger companies that smell an opportunity) wouldn't pour into that marketplace? That's the market-based system hard at work.

2) Joel Spolsky and a million others have said to ignore your competitors and concentrate on the customers. Nothing your competitors ever do will be as significant as just listening to the people who will ultimately use your product. So carry on. Mate, eventually you will have to deal with competitors so you might as well train your mind and your company to deal with this as early as possible.

3) That's ridiculous. If you are passionate about the idea then fight harder now.

4) Yes, you could create an economy where the first company with a particular idea gets a 17 year monopoly. Seriously, you fight because, eventually, if the idea is good and the market is large enough, the competitors will be flocking in. Learn to handle this now. You buckle down and work twice as hard.

You need to realise that nothing, and I mean nothing, gets done until you have customers. You think you've been working hard now but you haven't. Customers are the only difference between a startup and a successful business.

Overall, I think this will be a good thing for you. It's (bluntly) lit a fire under your ass and will make you re-assess your plans to create a more customer-centric plan. Good luck.

panabee 27 minutes ago 0 replies      
Entrepreneurs often share startup ideas and hear, Isnt X doing the same thing? This is actually the common case as only one company can claim the first-to-market mantle.

Its natural to feel discouraged or wonder if the window of opportunity passed, but history has proven unequivocally: first-to-market guarantees nothing.

Never abandon an idea because competitors exist. Abandon an idea because it lacks meaningful differentiation, because no one wants it more than the alternatives.

Here are inspiring examples of companies and products that flourished despite entering the market after others:

Facebook > Myspace

Google > Alta Vista

Nike > Converse

iPhone > BlackBerry

Instagram > Hipstamatic

Airbnb > CouchSurfing

WhatsApp > SMSenger

Dropbox > FolderShare

Skype > Net2Phone

Zappos > Shoebuy

Gmail > Hotmail

YouTube > Metacafe

LinkedIn > Ryze

Tumblr > Xanga

Kickstarter > Indiegogo

jnpatel 1 hour ago 0 replies      
Justin Kan has this great quote: "Startups mostly don't compete against each other, they compete against no one giving a shit."


gokhan 1 hour ago 0 replies      
Idea is %5-10 most of the time. It's the execution which makes the difference. Ideas tend to popup at multiple places at the same time, since they are fed but other ideas and multiple people reach to the same conclusion with the same input.

Do you think they will execute better? What if both of you succeeds? Is the market big enough for multiple players? Do you really need more time to go to market? (6 months is quite long for an mvp)

Besides, why don't you tell us what you're working on? Do you think someone will copy it or something? If that's the case, maybe it's something easily implementable and that can also happen after your release as well. In that case, those guys on Kickstarter won't do any harm, this will be the nature of your market.

greenyoda 1 hour ago 0 replies      
The fact that someone else is working on the same product tells you that you're not the only person who thinks there's a market for this product. That's probably useful to know - it validates your idea.

Many of the most successful products today were not the first in their market: Google wasn't the first search engine, Facebook wasn't the first social network, the iPhone wasn't the first smart phone, etc. They succeeded because of innovative features and business skills, not because they were first to market.

downandout 49 minutes ago 0 replies      
Execution is the key. There were lots of messengers before both Snapchat and WhatsApp, for example, yet they are now dominant. The idea is almost irrelevant, except that the product needs to be valuable to some group of people.

As others have said, launch now and see what happens. Don't assume that most of the market has seen your competitor simply because it is on Kickstarter and you have seen it. There are billions of people in the world, and probably at least millions of potential customers/users of your product. Most have neither seen the other product nor had a chance to decide that it is better than yours.

rl3 21 minutes ago 0 replies      
I've had this happen twice.

The first time I gave up. In retrospect I'm thankful I did, because I later came to realize I wasn't a true believer in the idea. Although it was valid from a business perspective (as evidenced by the other people doing it), it wasn't anything that truly excited me. If you're trying to build something exceptional, being excited matters for both morale and creativity reasons.

Regardless, in retrospect the first idea still could have succeeded. The competition's execution, while initially virtually identical, significantly diverged later on.

The second time featured very similar initial execution, followed by a divergence so large that I don't even consider them competitors anymore. It's even happened a few more times on the same idea, and each time the end result is wild divergence. This is likely a result of the second idea being more complex.

The moral of the story is that you shouldn't worry about competitors, even if it looks like doom and gloom right now.

Divergence in execution is proportional to idea complexity. Unless the idea in question is dead simple with no conceivable variation, press on.

Even so, press on anyways if you're a strong believer and the idea excites you.

If you have considerable time invested but don't believe in a way that excites you: kick it out the door fast, throw it against the wall and see if it sticks.

Good luck.

dazhbog 47 minutes ago 0 replies      
TL;DR No it doesn't matter, 99.9% of the time. Its all about execution. Most consumers will change to a more capable product if it's placed in front of them, it solves their problems better and the cost of switching is low.

We all think that we are special snowflakes and that our idea is unique. Unfortunately, there are probably tens or hundreds of other groups of people working on the same idea of yours, at this very moment. These guys launching on KS probably have been working way longer than you on this idea, maybe one or more years. Having competitors is a good sign vs. no competitors at all. Note here, profitable competitors is a good metric, not just KS campaigns!

1) Yes it happens all the time! Don't try to defend your idea with patents, try and build a better product and serve your customers better.

2) Don't get discouraged, instead take some time to reflect why you are doing this, how are you solving your customer's problems. Why is your solution better or how could it be better. Can you execute this project to the end? Have you talked to your users about their problems? Do they get excited when you tell them about your solution? Can you bootstrap your way to a campaign or even better, to some beta units? It's all about execution.

3) Not enough data to advice. Follow your gut feeling..

4) Nothing to do to avoid others doing it. Don't be defensive about it, embrace it and try and build a better product.

PS: Remember to have fun and enjoy your self (ZEN of business).

Hope this helps :)

svisser 1 hour ago 0 replies      
Not necessarily.

There is even an argument that you want to be "the last" on the market.

For example, Google is the last "search engine" - it wasn't the first search engine on the market but it did grow to dominate the market when it arrived.

cuantos 39 minutes ago 0 replies      
There is a strategy called fast follower where you run behind a competitor (first mover) waiting for them to trip up. Quiteoften they do. You can learn from their mistakes, operate leaner, you take different risks, make different partnerships, etc.

Often the first mover advantage comes with a lot of pride leading to arrogance and them making unforced errors.

Keep your head and focus on execution, margin and survival. Who knows what the future holds.

I'm the lastest entrant in a very mature market and I'm cleaning up.

encoderer 1 hour ago 0 replies      
Keep working on it. You have an advantage of being able to address the weakness of your competitor. In fact I started my SaaS business, Cronitor, because I was unhappy with the incumbent.

If you'll excuse the cliche: pioneers take the arrows, settlers take the land.

Finally, six months of hard work and nothing is shipped? This is your answer to #4. Ship early and often. Six months is an incredible investment without feedback from users.

choxi 53 minutes ago 0 replies      
1. This happens all the time, the market is very efficient. If your idea has any merit there's almost always going to be a competitor near you.

But, as your business evolves, you'll move closer to some competitors and further from others. I think of it like ships sailing in the sea: you might be close to a competitor right now, but have very different trajectories (moving up vs. down on the pricing curve, expanding your product assortment horizontally versus vertically, focusing on different segments of the market, improving on different aspects of the product, etc).

2. One of your jobs is going to be to navigate that competitive landscape. It shouldn't necessarily keep you up at night, you need to focus on the problems in front of you instead of being constantly paranoid about competitors, but you do need to be strategic about where you steer your ship to stay differentiated.

Is the other product exactly the same? Could you differentiate on brand, focus on a different market niche, do it cheaper/better, have better design?

3. It depends on #2. If I could think of a way to differentiate and leap frog the first product, I would try that. If not, I'd probably launch it anyway if I've spent 6 months on it. What do you have to lose?

4. You can't avoid it altogether. There will always be competitors if you're creating something valuable, if not now then later. One of my friends runs a company that builds SaaS for janitorial quality control (a relatively niche market) and even he has competitors. Navigating the competitive landscape is just something you have to continuously do as a founder.

rubberstamp 1 hour ago 0 replies      
Idea might be the same. But execution is the one that really matters. Make a list of features. Really think if you need to implement all of those features right away. Prioritize by feature importance. If your execution is better than anyone else's, your product would be the one on top on areas where both products exists. Pricing would also matter.

Many of my ideas also existed when I first started to imagine solutions to different problems. But I realized execution really matters.

Take example of google search, macintosh etc. Search and personal computers did exist before those. Similarly PC market is over crowded. Product quality and experience matters a lot.

Keep building. It would be an experience. As long as you have one or more strong features that gives your product strong advantage you are in the good.

rsp1984 48 minutes ago 0 replies      
First of all, you wrote the other party has put it on Kickstarter. That doesn't mean the product exists yet. They are just announcing it. They might in fact never ship (this happened to countless Kickstarter projects). Announcements are so much easier than actually shipping product and making customers happy so I wouldn't be too concerned about timing right now.

To your questions:

1) Yes, but so what? They are probing the market for you and you get to enjoy free market research. If their KS succeeds then you know you're working on something valuable. If they fail, then either there's no demand for the product or they haven't executed well (which would be a chance for you to do better).

2) Sit back and enjoy the show. And keep working on your product. There's likely a lot of opportunity to differentiate down the road.

3) Continue and watch how their KS goes.

4) Of course not. But it's not necessarily a bad thing.

codegeek 1 hour ago 0 replies      
Take a look at this:

- Friendster

- Myspace

- orkut

- Lycos

- Altavista

What is common with all these above ? They were one of the first if not THE first to enter the market and they were all destroyed ultimately by facebook and google. If there is one evidence like this, then you can conclude that being first in the market is not everything. Mind you, these companies were no minnows during their time.

Let me say this. If your project fails, it will not be because you were second or last in the market. Most likely, it will be due to bad execution, unfit market, no validation, poor management, founder conflict, shitty product, no marketing and others.

erichocean 39 minutes ago 0 replies      
My current startup has literally hundreds of competitors in a winner-takes-all market. I've also randomly run into a number of other people in SoCal who have tried to do what we're doing (and failed to get something the marketor they, themselvesactually wants to use).

It's a very simple concept, but as others have noted: execution is key. It's not the first product to market that wins, it's the first product that the market wants that wins.

perlgeek 1 hour ago 1 reply      
There's another option. You could consider teaming up with the folks on kickstarter.

If I were trying to build a thing, and somebody told me: "hey, I've had the same idea as you did, and worked half a year on it", I'd be intrigued to learn from their experience, and maybe even consider some form of collaboration.

alashley 1 hour ago 0 replies      
To borrow a line from the rapper Drake, "It ain't about who did it first, its about who did it right."
fillskills 38 minutes ago 0 replies      
Focus on completing your product and launching it well. Focus on your plans, not theirs. The difference is continuous execution. e.g. Better marketing, keeping costs low, keeping quality high etc. As an fellow entrepreneur I get this feeling everytime we get new competition. You will get immune to this after you get through the first few.
kazinator 1 hour ago 0 replies      
Most of the time, as a rule of thumb, the third product in the same class will succeed more than the first or second.

Was Facebook the first social network? It ate Myspace for dinner, plus things like Orkut.

Shimano didn't invent derailleurs.

Google and Samsung didn't have the first touch screen smartphone.

labrador 1 hour ago 0 replies      
Another possibility (I'm not suggesting anything) is to consider contacting the other project and seeing if it makes sense to both parties to join forces. You may each have strengths that complement each other.
return0 1 hour ago 0 replies      
It matters to be the last one , not the first one.
fsloth 44 minutes ago 0 replies      
I'm an armchair economist at most but generally having a market is not a negative sign.
jwatte 10 minutes ago 0 replies      
Deliver better. Success comes in execution, not idea.

Also, first movers don't always win, because second movers can learn without maintaining legacy.

Who would you rather be?MySpace or Facebook?Alta Vista or Google?ICQ or Skype?

neom 45 minutes ago 0 replies      
Depends on if you're a product company or a technology company, I suspect.
beachstartup 1 hour ago 0 replies      
that slight feeling of panic you have -- that is what running a business feels like, all the time, non-stop. what you choose to do with that feeling is up to you.
Ask HN: Why should I use Django?
82 points by xcoding  1 day ago   96 comments top 36
cyberpanther 1 day ago 2 replies      
If you want to use Python then use Django. As with any framework, it can be hard to work around but Django gives you the most options to work around the framework than any other framework I've found.

Normally, if you are having a hard time with Django its because you're trying to work around it the wrong way. This takes time to learn but Django can be really elegant to work around and with.

The second option is Flask or Tornado which are pretty great too. Both would give you more freedom but also less structure. I find it better to have the structure because unless your an experienced engineer your Flask or Tornado project will turn messy quick. Django projects can turn messy too, but at least there is a more training and protocols for people to follow.

I use Flask/Tornado if I want to use Python and I know my project is a small service and will probably not get big.

I use Django if I want to use Python and I know the project will grow over time or I need features from the start like a database, migrations, cache, etc.

jonasvp 1 day ago 1 reply      
We've built web applications based on Django for small CMS sites, large multi-language CMS sites, up to large custom-built applications (mostly API-based) for the likes of Mercedes-Benz and Deutsche Bahn. I can honestly say that I never regretted the decision.

It scales beautifully (see the likes of Instagram, Disqus, Sentry, etc.), has a great security track record, sane deprecation schedules, and the core team keeps up with the times and new technologies but does so at a sane pace and without rushing things.

Not to mention the documentation - ohmygod, the documentation!

In a nutshell: pick Django, keep learning Python, and try to build something that your users love.

hobarrera 21 hours ago 0 replies      
Things I really like about django that are objectively good:

* A lot of _very common_ situations and patterns are already solved for you, and they're solved in the cleanest way possible.

* The documentation is excellent, both with "guides", examples, and API reference. Django (along with OpenBSD), has probably the best documentation I've seen around.

* Clean design (of django itself) means that you can extend it, or avoid using bits that for some reason don't suit you.

* Very transparent development, and the developers are really into open source - everything is done out in the open. This last point might not be really important as a user, but it helps if you ever want to contribute (or understand) anything to django itself.


Even after years of django, I very occasionally still come across a functionality in django that I'd overlooked and saves be a bunch of my own code.

falcolas 1 day ago 1 reply      
If you have a usecase that matches Django's niche - i.e. a CMS style CRUD application - you would have a hard time doing better than Django. If you're not in that usecase, think long and hard about it. Django is fantastic to use when writing with the framework, and a nightmare to work around when you need to do something it doesn't easily support.

Your app does sound like it is in Django's wheelhouse (CRUD against a DB with users), so it is probably a good fit.

superquest 1 day ago 0 replies      
Before I was sophisticated enough to investigate such decisions on my own (given the mass of discussion freely available on the internet), I really don't think it mattered which framework I chose.

So I'd suggest you just some popular framework and don't worry whether it's the right one. Pick one and run with it!

wahnfrieden 1 day ago 6 replies      
Django REST Framework is Django's killer app (as Django is Python's killer app). If you need an API, it's a great batteries-included way to build one.
rubberstamp 1 day ago 1 reply      
Consider Pyramid web framework.Deploy it on gunicorn server with eventlet workers.Use pushpin if you need realtime.

Its easy, it scales, use any DB and Pyramid framework has good documentation too.

Or go with web2py if you need to start simple and easy and fast prototyping. It has an ORM which supports many Relational DB and MongoDB too if you need it. It has good documentation. Its authentication and authorization system is too easy.

Stick to python3.

Really good python learning resources.




dom0 1 day ago 0 replies      
Django is a good framework, because it's opinionated about the right things (ie those that fit most very well).

Also, "there's an app for that". The ecosystem is large and healthy.

If you don't want Django cause it's Django, then Flask and Pyramid are other excellent alternatives. There is also a swath of more specialized frameworks (eg. Tornado).

dexterbt1 1 day ago 0 replies      
I'm copying here what I wrote back in 2013 to some other forum, much of it is still true...

Django is mature, full-stack, flexible, has sound architectural decisions behind it, relatively good security track record. There is a built-in admin and permission systems to help with what you require. Batteries included such as an ORM, templating, routing, forms. The Django third-party apps/module ecosystem is rather large and accessible: from authentication, social media integration, payment gateway integrations, APIs, to whole apps like invoicing, helpdesk, etc.

dopeboy 1 day ago 1 reply      
I picked up Django early 2015 and it has been my choice of backend ever since. Though I haven't used Django to build a fullstack application, I have used Django REST framework extensively for my backend. Impressions over 1.92 years:

1) Great documentation. Well organized, well written. Good balance between theory and examples.

2) Superb ecosystem. Coming from PHP land, I got the sense of a "anything-goes" mentality. On SO, people who help are very much interested in doing things the idiomatic way.

3) You get to practice Python!

jstimpfle 1 day ago 0 replies      
I don't have experience with Django, but you could also just build everything yourself on plain WSGI (the python version of (Fast)CGI).

Note I am not saying "build a new, generic framework because all other frameworks stink". Building libraries with the goal to support other projects is a neverending task.

But only building the support paste as you actually need it is not a lot of work. WSGI is a quite simple interface. I'm doing this myself and the support I currently need is only ~500 lines. The only external library I use is jinja2 templates. As database I use plain sqlite3 from the python standard lib and in some places text files.

If you don't know and don't want to learn HTTP and Web application architecture you will of course end up with a broken design. On the other hand it's very rewarding to learn how to decompose an application into independent components (templates, services, routing, database access, business logic, authorization, session management, config parsing, project directory structure, what have you).

The other big advantage is of course flexibility. If you do a good job the decomposition is better than with a framework. This means flexibility. It's easier to fix problems than with an opinionated framework.

NumberCruncher 12 hours ago 0 replies      
If you want to use python I would give web2py + intercooler.js a try. It is "good enough" for most CRUD pet projects. Reading here the comments about Django's advantages an inner voice always says "fine, web2py has it too" except the excessive documentation and the weird non-pythonic syntax.

If you want to make something really professional just ignore the words of a n00b.

kayman 21 hours ago 2 replies      
If you're using Python and don't use Django (I've tried it as an exercise for one of my pet projects), you have 2 options.

Create your own framework - writing http headers etc from scratch which will take you forever or Use a lightweight framework like Flask or Web.py.

Either way, you'll end up creating your own ways to query the database and creating patterns to communicate with frontend.As you write more code, you'll abstract your code to reusable methods.

About a month into the project, you'll realize that you're slowly rolling out your own framework which has grown organically.

Soon you'll realize you're better off using a polished framework like Django which has abstracted many of the details so you can focus on delivering value instead of clobbering together your own framework which will become a burden to maintain alongside your app.

olavgg 1 day ago 0 replies      
I think frameworks like Django, Rails or Grails are excellent tools for building many business applications. Especially when there are plenty of CRUD operations and complex workflows with different administrative roles. These frameworks excels in developer productivity, stability and maintenance over years.

I've been using Grails for over 10 years, my clients are super happy with what I have delivered. I've built complex issue tracking systems, e-commerce web sites, administration panels, data management tools and so on. Code I wrote 10 years ago is still working fine today! I highly recommend learning one of these frameworks, you will make new friends and good money!

dv35z 23 hours ago 1 reply      
Any Django developers who have made the switch to Play Franework (in Scala), would you share your experience? About to go down that route, and would like to know if it's as great as everyone says, challenges, etc. The usecase is fairly mundane CRUD app, 10-15 interconnected tables.
megamark16 1 day ago 0 replies      
Django gives you a ton out of the box, with lots of sane defaults, but it still allows you to override those defaults when you're ready for more complicated functionality or business rules. I like the templating language, it lets you drop a lot of dynamic functionality into existing html templates, while staying out of the way for the most part.
econner 1 day ago 1 reply      
Lots of people will say not to use Django because ORMs don't scale. In my experience, if you don't use an ORM you end up writing one (and doing a poor job) in the early stages of a project. Usually this happens because you're changing things quickly and favoring iteration time. You don't know what you're building yet, so you can't choose the super optimized solution. Once you need to scale things can become specialized and it's easier to go that route because you have a better idea what you're building.
koliber 1 day ago 1 reply      
Figuratively speaking, Django gets you from zero to 60mph in 2.4 seconds. Getting from 60mph to 100mph takes 20 seconds. Going above that takes a lot more time.

Lacking details, it seems like your app could be a good candidate for Django.

For me, the main appeal is the Django admin. It gives you a great way of interacting with your data with minimal effort.

rayalez 23 hours ago 0 replies      
As far as the backend frameworks go, you have the 3 most popular, very good options:

- Ruby on Rails

- Node + Express

- Django

The major reason I have picked Django is that it is written in Python, which allows me to use an elegant and beautiful language that I can apply in any field, and utilize a huge amount of python apps, scripts, and stackoverflow examples.

Using Django has also enabled me to learn the solid foundations of web development, which I can expand upon and apply anywhere.

For example now I am experimenting with React and Express, and knowing Django helps me enormously, it makes understanding these things way easier.

I have built a bunch of projects with Django, and I am extremely happy about my choice, so I highly recommend it to anyone who is beginning to learn web development.

idm 1 day ago 0 replies      
Django has excellent documentation. Whether you're a beginner or an expert, it is appropriate. That is to say: there are good tutorials for starting out and there is good reference material for going deep.

As others have mentioned, Django is opinionated and I think they get it mostly right.

I use Flask myself, in part because I wish for my data modelling language to be a separate part of my stack, but my use of Flask is heavily influenced by Django's philosophy.

I am the primary developer of Flask-Diamond, which attempts to adapt Django's opinionated choices to Flask. However, I would still recommend that most people start with Django.

welder 1 day ago 0 replies      
This post about Django vs Flask might help you decide to use Django or not:


alexbecker 1 day ago 0 replies      
Django is great for fast prototyping if you need very dynamic pages (because views written in Python are so powerful), a complex site structure (because it has excellent url routing), and lots of database interaction (because of the ORM). If you only need the first two, I recommend Flask instead.

But be careful if you intend to create a stable, heavily-used site. I have so many problems with Django in this use case that I've gotten tired of listing them each time it comes up and collected them into a blogpost: https://alexcbecker.net/blog.html#django-is-terrible

jasonthevillain 1 day ago 0 replies      
The reason I keep sticking with it is the "optional batteries included" approach. User auth, for example, is something that just works out of the box with the admin/ORM, and has a lot of basic security necessities addressed.

In a more a la carte framework, such as Flask, there are packages to help with user auth, but you have to do a lot more work to get them working with whatever ORM you choose.

This means I can spend my time making products instead of wrangling packages together.

andr 1 day ago 0 replies      
After spending several years developing in Django, I am currently building something in a Scala web framework (not gonna name names) and the level to which Django just works is utterly amazing.

If your application fits the use case - a mostly CRUD application based on SQL, HTML-based or REST, no heavy real-time component - don't think twice about it. Of course, none of those factors are a hard limitation, but if you stick to them, Django fits like a glove.

al11588 1 day ago 0 replies      
All you need to do is use Django as the backend create a rest API and then use react or Angular to retrieve the data.
zitterbewegung 1 day ago 0 replies      
Do you want to make a CRUD app and know python with good documentation and batteries included? Use django.
morissette 17 hours ago 1 reply      
And thoughts for microservice architectures? I run flask for our microservice backend and have a angular frontend decoupled from the backend
sunstone 23 hours ago 1 reply      
Because you're a gentleman of exceptional demeanor, character and surpassing technical judgement, who unfailingly chooses the best tool for the job at hand from the Maelstrom of pretenders.
wenbin 20 hours ago 0 replies      
Popular websites / online services that use Django:- Instagram- Pinterest- Nextdoor- The Onion- Disqus- Washington Post- Bitbucket- Eventbrite
dopeboy 1 day ago 0 replies      
Couldn't anyone comment on the pros/cons of using Flask? Currently I've been using DRF and it's been serving my needs pretty well. I'm curious if there's anything to be gained from Flask.
cmdrfred 1 day ago 1 reply      
Are you proficient in Python?
symmitchry 1 day ago 0 replies      
Nice documentation in one good reason. The official tutorial is great.
garymoon 1 day ago 1 reply      
I have experience with Flask, that's why I have the same question.

Any answers?

dschiptsov 1 day ago 0 replies      
In theory, one should take a look at web.py and flask first.. It will teach essentialism and minimalism (web.py) and doing the right thing in a right way (all of them and Python in general).
pmontra 1 day ago 2 replies      
I read in an answer of yours that you're learning Python. I learned Ruby myself with Rails in 2005 because I had no other reason to use Ruby back then. Rails was a much lighter framework than Django is now. I would recommend to start with something very lightweight, get the gist of it and move on to Web2py or Django.

What you're looking for could be Flask or even something simpler like


or its Python3 version


Now, about Django...

I inherited a Django project and after a few months working on it I wouldn't start a project of mine with it. Obviously customers can ask me to do anything :-)

Disclaimer: I might be biased against it because I don't like Python much (it looks like a badly engineered Ruby, and probably the other way around if you like Python, no bad feelings).

First problem: coming from 10 years of Rails, Django is very weakly opinionated, so you can arrange the project as you want, name the db fields as you want, etc. This is not as bad as having no framework or using Flask, but a developer joining a project might have to spend time to get familiar with the general structure of it (and the bill for the customer keeps growing, so the chances he won't be happy).

Second problem: it doesn't import automatically every model and module. It gets tiresome to do that in every file and in the shell (and the bill...) This is not a language thing because Ruby has to import modules too but somewhat Rails works around that. Surprisingly it raised problems for me only a couple of times. The sum of the time lost with Python in the last few months is greater than the one I lost in Rails because of that.

Third: the templating language is not Python but some crippled down language. Somewhat people still manage to write nice code with Web2py which uses full Python in the templates. Rails too. Why not Django? More time lost to learn one more thing.

Web2py is an alternative but it has its share of problems: the first two of Django plus a very risky approach at migrations which are automatically enforced as soon as you run the code. If there is a way to turn that off and you really like Python or have to work with it, look at Web2py.

About the nice points, it's got everything that it has to be taken for granted in a past 2005 web framework: tests, migrations, ORM. It doesn't miss any particular feature, it's got a big community so it's a safe choice and I won't steer customers away from it.

Ask HN: Why aren't websites adopting client certs in lieu of passwords?
96 points by bsilvereagle  1 day ago   95 comments top 37
JackC 1 day ago 4 replies      
Could we bootstrap this by starting with support in password manager browser plugins, rather than better UI support in browsers?

Say Lastpass, KeePass, and 1Password agree to support an open public-key auth protocol, where during signup if a site supports the protocol, your password manager will provide a public key instead of a password, and will then sign a challenge with that key during login.


- Progressive enhancement -- everyone doesn't have to switch at once. Switch if you already use a password manager and want to opt into better security. Start with power users and trickle down as the pattern establishes itself.

- Workflow -- my password manager is already necessary for me to log into most sites, so I'm already solving the problem of syncing the cert store everywhere I need it. My password manager is also already part of my UI flow whenever I'm asked for a new password. If anything this will simplify my life as a user, because server-side support will let my password manager offer better UI. (This would require some manual challenge response for the rare occasions I can't install the PM -- not sure how tricky that part would be.)

- Incentives -- supporting the protocol is a value add for password managers -- it's another way to get higher security by using the product.

I'm sure folks are ahead of me -- just tossing out this angle in case it's helpful.

Freak_NL 1 day ago 2 replies      
The arguments against client-side TLS certificates boil down to complex UI and maintainability, but it does have its uses.

At small to medium sized companies it isn't uncommon to host a number of self-hosted services, such as GitLab, MatterMost, some wiki, perhaps OwnCloud, the list goes on. Securing all these services takes some non-trivial effort, even if you manage to get all services talking to your local LDAP server (we did!). Only recently GitLab advised users of the self-hosted solution to upgrade ASAP due to a security issue.

To cut ourselves some slack, we placed all these services behind an Nginx proxy. That proxy is secured with client-side TLS certificates. So if you try to access https://chat.example.com without it, you just get a friendly error message (actually, you get a picture of Grumpy Cat saying 'no', but you get the idea). With certificate, you get the service you wanted to access. You still need to log on with the service, but that's usually just a matter of doing it once and ticking the 'remember me' checkbox or something similar. For our users it just works.

Generating new certificates and revoking old ones is fairly simple for the administrators (couple of scripts, ample documentation).

The arguments against public use still stand of course, but for this scenario it is a great solution.

pluma 1 day ago 2 replies      
Client certs would be awesome but they're not for humans.

I was enrolled at the distance university of Hagen in Germany for a while and they require the use of client certificates for access to their online portal. There were clear instructions for how to create and use a client certificate but I suspect they have an advantage in that many of their students enrol in technical subjects or already have job experience. Compared to an ordinary website they also have the advantage that students HAVE to use the website and they're the only public distance university in Germany so there's no competition.

From a user perspective the client certificate is incredibly cumbersome. It's a file on your computer, so you have to remember where you put it and move it to new devices if you want to use it there too. It also means you're more likely to misplace or lose it though you're probably less likely to leak it compared to a password.

The instructions also largely boiled down to "use Firefox". In Germany Firefox has a huge market share and is widely deployed as the alternative browser in the public sector (although IE still exists due to contracts with intranet service providers). In other countries things look differently.

In Chrome the experience of using client certificates was even more convoluted and the university officially didn't support Chrome because apparently client certificates flat out didn't work in Chrome until fairly recently (i.e. a few years ago).

In terms of UX, creating and using password is trivial compared to creating and using client certificates. Of course this is mostly because most people do passwords wrong. Creating and using a secure non-guessable password is difficult (though services like 1password or lastpass have made it easier at the cost of adding a single point of failure) but it's still marginally easier than creating and using a client certificate.

The big difference though, is that insecure-by-default is not as big of a cost to a website or software as the bad UX of client certificates. Sadly the UX of client certificates likely won't get better in browsers unless more sites use client certificates -- so it's stuck in a Catch 22.

pimlottc 1 day ago 0 replies      
Because the UI is terrible, both within the browser and the tools to generate and manage certs themselves. I implemented client certs for an internal API service and I quickly learned that even among a company of generally very clueful people, no one knows really knows how PKI works. No matter how much I tried to document the steps to generating and installing keys, users would have problems, and I would usually end up just doing it for them. The command line tools for PKI are generally very unfriendly, and terms like "private key", "signed certificate", "keystore" and "truststore" are basically meaningless to 99.9% of people, including other developers.

Not to mention that almost no one uses two-way SSL compared to standard SSL, making it very difficult to find good documentation and support for full two-way authentication. Most people assume SSL means server-only authentication and don't even realize client-authentication is possible. Many tools simply don't support it, or require obscure options to enable it. I found it difficult even to get a properly signed client certificate from a major CA, as the standard certs you get are marked for server authentication only.

vertex-four 1 day ago 3 replies      
Client certs have dire usability in browsers - it's impossible to do things like logging out, or using a public machine reasonably, managing certs across all your devices is extremely difficult, etc etc.

BrowserID (Persona) solved some of these issues by issuing short-term certs to devices based on a login, and designing an API for logout, but even the organisation that specced it out (Mozilla) never integrated it into its browser, so it failed on usability grounds.

JorgeGT 1 day ago 0 replies      
I know this is a US-based site, but as July 1st 2016 the eIDAS Regulation has come into force in all EU member states, creating a legal structure for electronic identification, signatures, seals, and documents throughout the EU. Adobe for instance supports EU Trusted Lists: https://blogs.adobe.com/documentcloud/eu-trusted-list-now-av...

In many EU countries getting citizen certificates is getting more usual in order to deal with government paperwork (taxes, forms, healthcare, subsidies, etc.) so now that an unified trust structure exists, maybe it can boost adoption also by browsers and websites.

Edit: here's an official FAQ on eIDAS. It explicitly mentions website authentication and browsers. https://ec.europa.eu/digital-single-market/en/news/questions...

newscracker 1 day ago 0 replies      
I prefer client certificates to passwords when logging into intranet sites, which is just a couple of clicks as opposed to typing (password managers with auto-fill could also be used), but having a system to generate and provide the certificate is not simple. You would somehow have to authenticate and identify the user before you issue a certificate for that person. That "somehow" is usually using a username and password already provided to them (most likely for the system login, which is separate from other applications wanting to use client certificates). Installing directly from a issuing server to the browser is ideal, IMO. Other channels for providing the certificate come with more issues on the security and usability fronts.

There's also a big difference in where the certificate store is and which browsers share it. For example, on Windows the certificate store is managed using Internet Explorer and the same is also used by Google Chrome. Firefox, on the other hand, has its own certificate store (including trusted CAs). So even if you deploy a system to provision client certificates, non-tech users may find that the site does not work on a certain browser depending on which browser they did the initial certificate generation and import from.

Exporting and importing certificates into different browsers is quite easy for techies, but you'd have to provide step-by-step instructions with screenshots for others. And God forbid a browser/system's certificate management interface changes, and you'd have tons of tickets coming to support.

quanticle 1 day ago 3 replies      
With a password, I can log in to the website from anywhere. With client-certs, I have to pre-populate the cert onto all of my devices.
muaddirac 1 day ago 0 replies      
Since I didn't see this elsewhere - client certs have privacy concerns, because by the time you've done your handshake the other side knows exactly who you are. This pretty much rules out always-presented certs. Because of that, you would need to manage the certs more directly, and then you get into all of the UX issues around managing certs.
camillomiller 1 day ago 3 replies      
I would like to extend the question: is any startup/company working on something that would simplify the client certs process? Why haven't we really moved beyond password-based logins yet?
dreistdreist 1 day ago 3 replies      
Because it's not user friendly? Especially across devices
samsk 1 day ago 1 reply      
I had to abandon them because of HTTP/2. If one site on the web server uses TLS client auth, and then you go to another site on the same server you receive HTTP 421 Misdirected Request, because of connection reuse.

And almost none browser can deal with them correctly (or could not few months ago) - I'm looking at you Chrome, mobile Opera etc...

Jtsummers 1 day ago 1 reply      
2FA would be nice, but for client certs, as others have said, the UI sucks. Once you have to share the same cert (or manage multiple certs on multiple computers) it becomes too cumbersome for most end users.

Apple Keychain can store certs (I believe), as can most password managers so there's that to help.

But, IMHO, the only way it could get widespread use is if the cert is stored on a physical token that you can connect to your different computers. In the style of the DOD CAC where the private cert never leaves the card itself. Back up the certificate before storing it on the card or USB stick, and then plug that into every computer you want to access. Downside: Without multiple tokens you can't use multiple computers at the same time (easily).

jlgaddis 1 day ago 2 replies      
The DoD uses them across the board. Even civilian contractors get one, and they carry it with them all the time (it doubles as their ID badge).
ptero 1 day ago 0 replies      
I think most of it is the fact that users know how the passwords are supposed to work -- basic "do-s nd don't-s" (e.g., do not give them out to "tech representatives" calling your home, etc.), how to change them, etc.

Certificates? Most are vague at best about them. Does closing the browser window stop access? Can you share certs? If your laptop is stolen did certs get compromised? How do you deal with compromised certs? Etc, etc. Ask a generic user something like this and enjoy the answers.

This is slowly changing -- as more organizations switch to cert-based authentication more users get to know and trust them which can lead to wide adoption for personal use.

user5994461 1 day ago 1 reply      
Because there is no easy way to do it.

Source: I've done contracting for government and I've worked on a PoC to determine whether we could bring 2FA to a 10M people country at once.

sbuttgereit 1 day ago 0 replies      
I'll add to what's already said:

You'd need to be able to maintain/deploy certs to all your devices in a way that's simple enough for non-technical users to understand; never mind the added requirement for safe private cert handling on each device.

Once you're outside of the browser accessing services, take banks for example, now I need a my browser to have the cert and my mobile apps individually to have those certs as well... or I have certs for the the browser and passwords for the apps (more complexity for the user). Sure my devices can have a cert safe or similar, but the apps/browsers would have to respect that sufficiently for it to be useful (hard enough to get my password manager to work with my phone apps well... certs... eek!)

Finally each browser, app, etc. may have it's own way of dealing with things... making for even more complexity.

I could go on.

Point is there's an awful lot of friction to make that work as simply as the less secure, but apparently socially acceptable, passwords we use today. Whether that should be "the way" or not is irrelevant... consumer choices include factoring in immediate ease of use, right or wrong.

I think there are better arguments for 2FA, since there is something approaching reasonable standards (most applications I encounter support Google Authenticator or that standard at least). You still end up with another ease of use issue, but that might a more surmountable one. (I do hate, though, that I have to use my 2FA on the device which I get my 2FA auth codes from... I understand why, but still...)

Of course, Hacker News is a start-upish sort of community... so maybe unified technology security management for consumers is the next big thing to be "disrupted". :-) Have at it!

UK-AL 1 day ago 0 replies      
Client certs are great for APIs. I wouldn't use them for actual websites.
GuidoW 1 day ago 0 replies      
I've designed this protocol[1] to make client certs work easy for end users.

Signing up at a site is just requesting a client cert at the site's private CA.

It requires a user agent (a browserplugin) on the client side. The agent keeps check of which certificates belong to what sites so it actively blocks MitM attacks.

Granted, if you need to share your certificates, you'd have to copy them over. For that, use the sync-feature of your browser or design something better. But synching is a separate concern, independent of the authentication protocol.

[1] http://eccentric-authentication.org/

fullofstack 1 day ago 3 replies      
https://web.whatsapp.com/ only allows login through a cert (via a QR-code). Some banks also use this. A smartphone is used a a cert vault. Not a client cert in the traditional sense, though it's basically the same thing.
gsylvie 1 day ago 1 reply      
Some companies use Forcepoint's TLS inspection to monitor all outbound TLS/SSL traffic. I suspect client certs break that. Probably that's a good thing, but if your customers work inside a company using Forcepoint, well, those won't be your customers from 9AM - 5PM their time.

"When you enable SSL decryption for your endusers, SSL-encrypted traffic is decrypted, inspected, and then re-encrypted before it is sent to its destination."


spinchange 22 hours ago 0 replies      
Doesn't Google handle it's own internal IT services in this way? You don't log into a domain, every internal IT service is available on the web and not behind a firewall, but requires a company provided cert to access? This always seemed better to me than trying to secure a perimeter around resources anyway, usability considerations notwithstanding.
jimktrains2 1 day ago 0 replies      
Would TLS-SRP provide the same type benefits as a cert (mutual auth and no secrets on the server), but with a password (less entropy).



chx 1 day ago 0 replies      
Rietumu Banka in Latvia uses password, 2FA (classic jumping code keyfob) and client side certs. http://www.rietumu.com/remote-internet-cert-machttp://www.rietumu.com/remote-internet-cert-win It's crazy.
out_of_protocol 1 day ago 0 replies      
Really interested in adoption of nfc smart cards. Still, it's just not possible now - you'd need hardware, software support on basically every platform. Looking forward though
vabmit 1 day ago 0 replies      
We've been using client certificates at MIT for more than a decade. Many people like them. But, most people hate them. As others said, the usability is the primary issue.

The specific issues are:

1. You have to install a client certificate on every device you want to use. And, you have to keep that certificate up to date. If you use multiple web browsers (for say UI development testing) you have to install and maintain the certificate it each one. MIT currently issues client certificates with a validity period of slightly less than one year. That makes for a lot of lost time every year for students, staff, and faculty, spent re-installing client certs.

2. The certificate can be stolen just like a password. But, there is no easy way for the client to revoke a stolen certificate. Many CRL list implementations are lacking or fully absent. There for, organizations that depend on client certificate authentication typically depend on certificate expiration to re-secure compromised client accounts. (See #1 above)

3. Client certificates are not supported by all web servers. The major players support it pretty well. But, there's been a proliferation of specialized, micro, and nano web servers over the last several years.

4. You have to invest in securing the signing key for the client certificates. This usually means a decent HSM which costs on the over of $x00,000USD. At MIT for example, there is a web site where anyone can go at any time to generate a new client certificate (again, see #1). This site needs to be able to perform signatures constantly which means the signing key needs to be accessible 24/7 online some how.

5. Proxies are a problem. If you try and terminate the TLS connection early, the client certificate related operations are not "proxied back". Some proxies like HAProxy will allow you to pass back environment variables set during the client certificate authentication process. But, that is obviously not the same as having the final destination webserver performing validation. This has become much more of an issue with the invention of ClouldFlare's TLS proxying CDN.

6. If you implement logic to expire certificates at the end of a customer's subscription or enrolment period, it can cause significant headaches with processes where it would be helpful to still be able to authenticate them. For example, if a customer's subscription to your SaaS site expires and you want them to be able to review with out inadvertently sharing details of their account with others. Or, if a student has graduated but they still need to pay some unpaid parking tickets. MIT runs into this issue often due to its use of client side certificates. If you extend their certificate well beyond the end of their system authorization, you have to put a lot of complex authorization code in all of your local apps and websites. While client certificates only provide authentication and not authorization, many implementers use client certificates for both simultaneously. This is especially true when protecting web content and web sites with client certificates.

Walkman 1 day ago 0 replies      
Mostly this: https://www.w3.org/DesignIssues/Security-ClientCerts.html

Also it's because a phisical thing you lose easier than forgot a password (new/crashed/different computer, another browser, etc, etc)

hollander 1 day ago 0 replies      
I've done this once, as a client. I believe it was with startssl.com. Somehow I messed it up, I don't know, but in the end it was quite troublesome to get it working. And then I'm a pro user, so I consider myself someone who should be able to get this working.

Another problem is how to manage your keys between devices.

If this would be offered as an extra option, just like Gmail has 2FA, that would be great!

louhike 1 day ago 0 replies      
Client certificates are harder to put in place than a login form. It requires to create the certificates and install them on every device which will log to the website. And you will have to manage the changes/lost of devices.

But I agree it is a good solution in a 2FA for internal applications.

45h34jh53k4j 1 day ago 0 replies      
With the proposed deprecation of the <keygen> tag, it's going to get harder to enrol client certificates. This is not the way forward
moonbug 1 day ago 0 replies      
As someone in a country where all on'line interaction with the State is mediated with client-side certs, this question always raises a wry smile.
m3kw9 1 day ago 0 replies      
Because it's cumbersome-ness decreases usage
geofft 1 day ago 0 replies      
Privacy is the biggest problem - both sides of the connection present their identity simultaneously, so you leak your identity to a MITM. For server-to-server communication, that's fine. For person-to-website communication, the two sides are semantically asymmetric, and I don't want to prove to that I am geofft until proves to me that it's news.ycombinator.com.

UX is the other one. Chrome is removing support for <keygen>, and they have excellent arguments for why: https://groups.google.com/a/chromium.org/d/msg/blink-dev/z_q... (Essentially, the ability for a website to inject certs into the system cert store is super weird.)

And without <keygen>, the experience of installing certs is completely awful. Let alone the UX problems with expired certs, etc.

jwatte 1 day ago 1 reply      
A password is safely stored in my brain and 100% portable. I can use it from whatever location. If I lose my computer, the password is not in the hands of bad guys. Not so with a client cert.
api 1 day ago 0 replies      
Horrible user experience.
throwaway1974 1 day ago 0 replies      
Revenue website here in Ireland does this, you need to have a cert which is read by a java applet, cert is issued after you use a one time password mailed to your home from what i remember, they expire every so often and need to be renewed.

One of the banking sites did as well but dropped it, now my gmail is more secure than my bank account since there is no 2fa on this bank.

The java applet approach must cause endless customer support requests

Ask HN: What's it like coming back to Windows from OS X?
2 points by brightball  5 hours ago   7 comments top 6
brudgers 3 hours ago 0 replies      
I've never bought into Apple. I think Windows 10 is great, but I love tiling window managers. So I run Linux.

Windows 10 provides a polished, efficient, well designed interface. You have to get pretty far out on the edge of hardware before stuff doesn't just run [e.g. my eight year old Dell Precision configured as RAID 1 on via proprietary third party BIOS on the mother board interfering with the Windows 10 automatic upgrade until I turned it off and disconnected the disks until the upgrade had completed].

On the other hand, Linux provides a deeply documented operating system with text configuration files. It affords ample opportunities to hone one's RTFM skills, e.g. a 2016 kernel upgrade that borked Synaptics drivers made configuring my new Dell an exercise in understanding X11, systemd, libinput, and mouse configuration. Getting a 4k display well sorted is still underway (thanks for being the exception to deeply documented Unity!).

The downside of Windows for me is that most free software is untrustworthy and Microsoft has not quite come around to a good package manager system for native applications. By which I mean, there's lots of read the news apps in the Store, but not MIT-Scheme or little utilities like nmap. What I would say is that when Linux sucks, it sucks very consistently in a particular way: there's a fix that I am left to find myself and it might involve patching and recompiling the kernel (though it usually does not).

Anyway, Dell Precisions and some XPS laptops, can be ordered with Linux installed (at least in the US). So it's not just System 76. Also, there's generally a good Linux story with Thinkpads.

seanwilson 4 hours ago 0 replies      
I'd reconsider Linux. As long as you make sure the laptop is supported Linux is great if you're a developer.
Koshkin 2 hours ago 0 replies      
For me, switching between the two is painful - mostly due to difference in keybindings, and the only reason to keep a Mac around is the need to use it for projects targeting Apple's mobile platform. Windows seems to be a better PC-based gaming platform than either Mac or Linux, but overall Linux is what makes most sense for me - as a Unix and as a platform to get important and interesting stuff done.
dman 5 hours ago 1 reply      
Ive been enjoying windows a fair amount recently. With the Linux subsystem it has turned into a surprisingly great experience. All the familiar unix tools are here now and Windows 10 is pretty tasteful as an OS. Only request I have from Microsoft is to add a feature to disable file notification hooks from file created in the unix subsystem. Creating a lot of small files has always been slow on windows because it pounds the antivirus. I was hoping that the unix sandbox would be exempt from this however I see the Anti virus works hard even when I do IO in the unix subsystem.

Also Hyper-V being built in and free means that you can have test VMs with snapshot capabilities built right in the OS which is nice since it allows you to avoid the VMWare/Parallels tax.

bgrohman 5 hours ago 0 replies      
I'm in the process of switching back from osx on a Mac mini to a laptop dual booting Windows 10 and Ubuntu. I've been using Ubuntu almost exclusively. There are very few things I miss, actually. In fact, I'm struggling to think of any now that I think about it.
ttflee 5 hours ago 0 replies      
Ctrl vs CMD, again.
Ask HN: How often do you get rejected for lack of passion?
7 points by filterdoesit  6 hours ago   9 comments top 8
petervandijck 3 hours ago 1 reply      
Frankly, no, it's not a codeword for unpaid overtime, it means "you will likely just make everyone depressed with your attitude."

You don't need to be passionate about insurance, but you need to be able to show some enthusiasm about building software for insurance, which likely has a lot of exciting challenges (in addition to 90% boring work, as does almost any job). You don't need to be passionate about web agencies, but you need to at least understand what's cool about working at an agency (in addition to what's not). Finance is "boring" to you? There are tons of interesting tech challenges in finance. If you describe every job as boring then the problem might be you.

Nobody is going to hire you just because you can code if you have a negative attitude about what everyone there spends their days doing. Why would they?

rgbrgb 33 minutes ago 0 replies      
Sorry you're having a hard time.

I think software development is murky. In my experience, fixing a customer problem with software can take 10 hours if you're excited about it and interested enough to come up with a creative solution or 40 hours if you're bored and just robotically building to a spec.

Likewise, I haven't met a programmer who was very good at something they hated. I'm guessing you actually enjoy some parts of your work -- maybe steer the conversations to that.

itamarst 3 hours ago 0 replies      
On the one hand, pretty bullshit (https://www.google.com/#q=at+*+we+are+passionate+about+ is a fun search). And often code word for "unpaid overtime".

On the other hand, companies do legitimately want people who will care about their work. So maybe next time:

1. Spend a bit more time reading about companies' business and then ask more questions at interviews. Even if you're not passionate you do want to make sure they're not going to have redundancies in 6 months, and it will give better impression :)

2. Emphasize your pride in work you do, so even if it's not "HEART EYES INSURANCE I LOVE INSUARNCE" at least it's "I will do good work."

3. Try to get better sense of company culture (e.g. unpaid overtime), so you can better calibrate rejections and so you can get better sense of if you want to work there. Ideally if they say "not enough passion" you should already know whether this is code for unpaid overtime based on what you learned in interview.

4. This is another reason getting jobs through someone you know is better, you can get better sense of company culture in advance.

Some ideas on filtering out companies that suck: https://codewithoutrules.com/2016/10/14/job-you-dont-hate/

Some resources I wrote up on finding jobs with a sane workweek:https://codewithoutrules.com/saneworkweek/

meira 6 hours ago 0 replies      
Yes, but there are tons of "passionate" people out there, so they are looking for them. Here in my country (Brazil), we are nearing a ridiculous situation. Most startups set stupid hiring metrics managed by people ignorant about technology and most of them (if not barely all) fail badly. And then the CXO's all blame their "passionate" programmers and leave with the pockets full of money.
throwmeaway32 2 hours ago 0 replies      
Be passionate about the problem space the job and code exists in.
dozzie 6 hours ago 0 replies      
I think you're right, it's just as bullshit as they come.

I'm working for an ISP that also sells IPTV, both to end-users (along withsettopboxes) and to other ISPs (as a service they sell to their users).I couldn't care less about the television in general and IP-based one inparticular. I don't watch TV, I don't even have a TV set and the closest thingto one that I have is the screen of my laptop. Yet I take pride in how ourinfrastructure for providing TV channels works, especially when compared tohow it looked like when I got hired.

In other words, it can be perfectly healthy if you don't care about theproduct itself, as long as you care about the quality of the product andcraftsmanship used to build it.

sharemywin 6 hours ago 0 replies      
Look at it as they are filtering themselves out for you.
blackrose 6 hours ago 0 replies      
I'd imagine that's exactly what they're looking for. And if they can somehow find someone so passionate, they can only benefit. So why not look for that (from their perspective)?
Ask HN: What free or low-cost static site hosting do you use most?
192 points by shovel  1 day ago   210 comments top 79
K0nserv 1 day ago 5 replies      
I use Github to host the source for my blog/website which is open source. Jekyll for the building which happens on Travis CI. Deployment on S3 with cloudflare as a CDN for SSL and reduced bandwidth. I really like this setup. I wrote a guide called The One Cent Blog[0] a while back detailing how it's setup. Typical months the cost is around $0.01-$0.03.

Becuase people usually ask why S3 over Github pages I'll answer it up front. Github pages is too limited in terms of what you can do with custom jekyll plugins and code.

0: https://hugotunius.se/2016/01/10/the-one-cent-blog.html

vanderZwan 1 day ago 4 replies      
I have a soft spot for Neocities, which is trying to be everything we loved about Geocities, but for a modern age:


ZERO ADVERTISEMENTS, even for the free plan. Supports only static hosting, is free for 100mb websites with bandwidth of 50GB per month, or five dollars per month for 10,000mb with 2TB and a number of other extra features.

EDIT: As mentioned by detaro, custom domain only supported in the paid plan, see https://neocities.org/supporter

Works really well with creative coding frameworks like p5js or Twine, for fun, fast little sketches you just want to thrown online and share with others:



Also, they really care about resurrecting the ideals of the old internet:



newscracker 1 day ago 1 reply      
Nearly Free Speech (nearlyfreespeech.net aka NFSN). [1] I'd strongly recommend you try it, without purchasing a domain, and see for yourself how far the initial trial takes you (you get a 25 cent credit when you create an account). Even if you decide to try something else, it's worth your time to read NFSN's FAQ [2] to know more about the service and policies. It's quite impressive.


1. Excluding domain costs, which are reasonable (and even cheaper than many others), you can have small static sites for pennies a month, or even pennies a year if you put the free tier of CloudFlare in front of it (with DNS changes). It's really dirt cheap!

2. It's the most honest service I've seen, where you pay close to what you actually use.

3. The owner/admin is a no-nonsense person and is available on the forums to help with things that don't need extensive support involvement.


1. You need to be tech savvy (at least know how to use an FTP client to upload your static files and use the BSD shell if you wish to play around with application setup or other things over ssh). NFSN does not have any fancy control panels (like cPanel) where you can do one click installs of WordPress or other applications.

2. For PHP and MySQL based applications, setup is not difficult at all. But if you want any other application server (like Node or Rails or Django), you would have to do more work to get it set up.

3. If you truly need support, then there's a paid support subscription (it's optional). For most requirements the forums would suffice.

4. If your site grows a lot (in terms of disk space used, network traffic used and resources used), then NFSN could become very expensive compared to the commonly oversold $5 a month or $10 a month services that promise a lot but depend on most users not reaching their promised limits.

[1]: https://www.nearlyfreespeech.net/

[2]: https://www.nearlyfreespeech.net/about/faq

nodejs-news 1 day ago 2 replies      
I'm a great self-hosting fan, behind my DSL connection using 2 x RaspberryPI. I have 3 static web sites, 2 with Jekyll, 1 with Hugo, with great perf :

checkout webpagetest -> https://www.webpagetest.org/result/161123_0R_8RDY/

and feel free to check my 3 web sites:

- http://www.it-wars.com- http://www.louer-hendaye.com- http://www.nodejs-news.com

Init : 2 RaspberryPi + electric plugs : 2x 30$ + 2 x6$Monthly bill:electricity : about nothingDSL : 30$


throwaway2016a 1 day ago 3 replies      
Just to echo... Amazon S3 with CloudFront. No contest. CloudFront has free SSL too. Then AWS Lambda to provide dynamic content via Javascript / API if needed.

If you want to get fancy you can even attach it to your domain root (example.com vs www.example.com) using Route53. Which is impossible with many static hosts. Although that requires a hosted Route53 zone which at $2 might very well be 100x your hosting costs.

I use Jenkins to generate the website itself.

Edit: Only downside is if your traffic spikes you have no control over the cost. There is no upper bounds. With that said, it would take a tremendous amount of traffic to balloon the costs to anything worth worrying about. And at least you can be sure your website will actually stay up.

seanwilson 1 day ago 3 replies      
I use GitHub pages with Cloudflare (free CDN + HTTPS) for simpler sites but I'm a fan of netlify.com right now. Setup is simple, atomic deploys are simple, rollbacks are simple, caching + cache invalidation + HTTPS is done for you and there's paid plans if you need passwords, form submissions and custom response headers. There's probably cheaper options compared to the paid plan at $9 a month but you have to ask yourself how much your time is worth in comparison if you're burning just 1 hour a month on configuring your hosting.

Deploying over S3 sounds like a bunch of hassle to me. Can you deploy atomically? Can you rollback?

gtsteve 1 day ago 2 replies      
I use AWS S3, which I put behind a Cloudfront distribution. It's quick to set up, and there are no servers to keep up to date and patched. You also get free SSL for your Cloudfront distribution via AWS certificate manager. For stuff like Contact Us forms, I use AWS Lambda to post the data into my company's CMS. We've had this setup for about a year now and it works quite well.

The cost is almost nothing but we don't have a high traffic website. If you started getting billions of hits from expensive Cloudfront regions such as Australia or India, you might consider something else.

kyledrake 1 day ago 2 replies      
I'm biased, but Neocities (https://neocities.org) can do all of these things and is a great choice for static web hosting. We run a global anycast CDN with instant cache purging, custom domains with Let's Encrypt SSL, high availability architecture, and all the rest. We haven't had a full site hosting outage in years.

We include 10GB storage 2TB BW for free (more of both included soon) for $5/mo, which would cost over $180/mo at AWS with S3. Cloud providers really upcharge on bandwidth big time. Really that 2TB is just a soft cap just to make sure nobody tries to run the New York Times from a $5 hosting plan. Many people go over it and it's not a problem.

The one thing we don't do well is show how good we are for pro hosting as well as people learning HTML and having fun. I need to work on that.

thunfisch 1 day ago 4 replies      

Shell Access, pretty much every common language available, service running, databases, mail, etc..

No bullshit hosting in germany, Pay what you want (1/month minimum).

Absolute best, I'm hosting about 25 projects with them for various bands, etc. and haven't had any problems whatsoever.

hashtagMERKY 1 day ago 2 replies      
For static sites I used to use surge [0], but now I use Neltify [1] for my site [2], because it offers free SSL on your own domain, and continuous deployment from a GitHub or Gitlab repository. You can set your own build options, for example to build Jekyll.

(I have no affiliation with Netlify I just think their service is neat.)

[0] https://surge.sh/

[1] https://www.netlify.com/

[2] https://gilly.tk

edit: formatting

reimertz 1 day ago 1 reply      
Github Pages + cloudflare + travis

why: free, cdn, version-controlled, continuous integration, https, custom domains.

theandrewbailey 1 day ago 1 reply      
I have a PC in my basement on a nice 150meg fiber connection. I have a dynamic DNS service and client set up, and ports forwarded. At this point, I can do whatever the hell I want (static or dynamic), as long as I don't transfer like 10TB a month.

I have Payara (java app server) running my blog down there, and HTTPS courtesy of Let's Encrypt. I looked into running a Open Street Maps server, but it was fairly hard (I might have been close to getting it running), and professional reasons for maybe playing around with it changed.

oliver2213 1 day ago 2 replies      
I use a cheap $5/mo Digital Ocean droplet with nginx, Nikola [0], and letsencrypt for ssl. Works great and I can expand easily if I want to add php or other wsgi apps.

[0] https://getnikola.com

user5994461 1 day ago 1 reply      
Wordpress.com or Blogger.com

Fully operational, all the important stuff (text editors, analytics, pictures hosting...), nice themes, well indexed by google, zero maintenance, free, and unlimited traffic.

I run blogs so obviously it is particularly appropriate. But that works as well for small static sites with a couple pages.

eximius 1 day ago 3 replies      
NearlyFreeSpeech - fantastic business, incredibly cheap. My domain costs are more than my hosting costs (I pay roughly $2.50 a month for hosting a forum).
tiernano 1 day ago 0 replies      
as a few people have mentioned, NearlyFreeSpeech.net is my static host of choice. i use them for static blogs (jekyll built) and they work perfectly. non static sites get charged at 1c per day (and you get a MySQL instance for about 1c a day, give or take), and static has no charge per day. you are billed for bandwidth and storage, and can have multiple sites in one account. SSH/SFTP access available also.
fao_ 1 day ago 1 reply      
I generally use nearlyfreespeech.net

I added about 5 gbp two years ago and it's down to about 4 gbp. It's cheap as hell and I only have to dump 5 pounds on there every few years or so.

d0lph 1 day ago 3 replies      
RamNode: 128MB RAM 15GB storage, $15/year. Cheapest I have found yet for a tiny VPS.

Perfect for static pages, but a little bit of PHP might be fine.

CyberFonic 1 day ago 0 replies      
I use Google AppEngine with Python SDK. Whilst it is intended for web apps (and I use it for that too) it works well serving up static content alone. Very easy to add interactivity as and when the need arises. Also has access to Google Cloud services.

I like that I can check my changes on my notebook before uploading to the cloud.

Animats 1 day ago 3 replies      
I'm still using Dreamweaver 8 and pushing the site to a server as static files.

Unfortunately, Dreamweaver 8's static SFTP doesn't work any more, due to some Microsoft-forced change in Windows 7.

tyingq 1 day ago 0 replies      
Gitlab pages (https://pages.gitlab.io/) is free, and has some advantages over Github pages:

- Not restricted to jekyll, use any static generator

- Supports https on custom domains

antihero 1 day ago 1 reply      
I think I'd go with DigitalOcean $5/mo, nginx, a static site generator (there's so many), and LetsEncrypt (for SSL).
jdmoreira 1 day ago 1 reply      
I'm very happy with the service at https://www.scaleway.com
iUsedToCode 1 day ago 0 replies      
I use linuxpl.com (https://linuxpl.com/Hosting-Serwery-wirtualne) which is ~ 12 usd / year (so just $1/ month).Comes with 2 GB of space and 50 gb bandwidth per month.

SSH access, shared hosting (so pretty powerful CPU/ram there). Currently i have about 700 daily unique visitors and growing. Used to deploy custom sites, now i use mostly wordpress.Also, i use it for my git remote repos.

Great service. Been using if for years, awesome quality for the money.

Lately had some issues but the support is helpful and they fixed whatever i wanted, enabling SSI, fixing response headers, etc. Never had to wait for a reply longer than 6 hours (usually it's just minutes, really). As a bonus, admin staff is available through odlschool IM app - Gadu-Gadu. And PHP 7 is available and easy to switch to.

The site's in polish, which sucks for you guys, but it's by far the cheapest and best solution i have for low cost hosting. I'm a happy customer.

teekert 1 day ago 0 replies      
I use Nginx either on my basement server (I have 50/50 fiber internet at home) or I use one of my digital ocean droplets, which can be as cheap as 5$ a month, that is less than my server at home uses in power. A Raspberry pi would also suffice if there is not too much traffic I guess, that would cost you about 10 a year in power. Running a whole server means there is no limit to the amount of sites you can run (apart from memory and bandwidth of course.)

Both my servers (DO vps and basement) run Ubuntu 16.04, I use PHP-fpm for PHP, domains I purchase at a local registrar (.nl domains are about 10/year), for ssl I use lets encrypt. For simple sites I always use Bootstrap for the css.

FTP is implicit if you count SFTP as FTP (FTP over SSH). Under Linux SFTP is mounted as easily as any network share.

At home I run a Nextcloud instance and share some directories as Nginx roots, that means I can locally (even on my phone) edit a static web page and it is synced immediately to the webserver's root folder. This can be quite convenient.

rntz 1 day ago 1 reply      
www.nearlyfreespeech.net is cheap (really cheap, hence the name) and reliable - they've been around since 2002, and I've used them since 2008.
cklar 1 day ago 1 reply      
For static sites I use firebase hosting, quite simple to use and it includes a free SSL certificate https://firebase.google.com/docs/hosting/
lazyjones 1 day ago 1 reply      
I host my static stuff (with my own domains) at FastMail, it's included in my "standard" plan. Upload is possible via FTP and DAV, the quota is currently 5GB disk space, 2GB or 80K files daily traffic.
oDot 1 day ago 0 replies      
StockDroids.com is hosted on S3 and served using Cloudfront. It's pretty easy to get going if you don't mind getting a little technical.

Not sure how price compares to the competition, though. HN's + /r/Android's front pages resulted in about 13K uniques and it ended up costing me ~$10 (which is insanely cheap, but GitHub + Cloudfront is free...)

Edit: I should mention that the site isn't as light it can be, currently stands at 473kb of code and about 3 megs of images. So that $10 is for ~45 gigs of traffic.

Rabidgremlin 1 day ago 1 reply      
I use an S3 bucket. I have a Docker image that pulls Markdown out of git, runs Hugo over it and pushes the site to an S3 bucket. I set it up to work with Bitbucket pipelines so I get a site rebuild with a simple git push: https://github.com/rabidgremlin/hugo-s3
duggan 1 day ago 0 replies      
Github Pages with CNAME file, CircleCI, Cloudflare. Free, CDN, and SSL hosted if it's all open source.

No how-to, but it's all open source here https://github.com/barricadeio/docs

Most awkward part was figuring out the voodoo required to get Hugo and Middleman working (lots of trial and error).

chrisanthropic 1 day ago 0 replies      
I've been using Jekyll + Gitlab + S3 + Cloudfront (+ lambda).

This costs me just over 50 cents a month, almost all of which is the Route53/DNS costs.

 - Gitlab stores the source and GitlabCI builds the site. - Lambda triggers the build on a schedule. - GitlabCI pushes the site to S3 (using Gitlab ENV VARS!). - CloudFront as the CDN, also provides free SSL.

wtracy 1 day ago 0 replies      
I've been a happy customer of Register4Less.com for years, and they throw in free static hosting with every domain name. It does everything you mention except PHP and Markdown. (But you could do Markdown yourself with a static site generator!) They also provide free WHOIS privacy, which is nice.

An extra $1.45/month gets you PHP and CGI hosting, plus raised quotas.

My only caveats: The free hosting tier only gets you 10MB of space per domain (no bandwidth quotas, though!) Which has been plenty for me for everything except large photo galleries, but YMMV. Also, I've had terrible experience with their domain backordering service--the domain I backordered was quietly released and became publicly available without a peep from R4L.

Their actual domain hosting, website hosting, and technical support has been stellar, though. (Websites are actually hosted on a shared server somewhere at OVH, if Ican trust the reverse DNS info.)

s_m 1 day ago 0 replies      
You can use App Engine (https://cloud.google.com/appengine/) to host a static site for free. It's easier to set up than S3, which I've also used.
gempir 1 day ago 0 replies      
I prefer full control. I have a 10$ a month Digitalocean VPS with Nginx, PHP and whatever I want.
planetjones 1 day ago 0 replies      

I manage all my sites there. Never had any issues with them, there is SSH access too so I recently set up a Hugo bitbucket pipeline which builds my personal website and rysncs it to dreamhost.

They were very fast to add lets encrypt support, so all that stuff is taken care automagically. Reliability is very good.

dagw 1 day ago 0 replies      

super simple, super cheap, never had a real problem.

brianbreslin 1 day ago 1 reply      
For some cheap VPS you can try searching on https://lowendbox.com/ some are like $2/month (usually a year commitment)
jordanlev 1 day ago 0 replies      
If you want PHP and FTP, I've been successfully using webfaction <https://www.webfaction.com/> for years now (they're a developer-friendly shared host). $10/month. Their setup is a little weird to figure out at first (they add an extra layer of indirection between domain names and applications), but once you get it it makes it very easy to set up new sites.
ekiara 1 day ago 1 reply      
Github Pages does pretty much everything you've listed. Also Github Pages explicity allows companies to setup and host their corporate websites on there.

PROS: It is free, always available, and the deploy is easy once you get the hang of git.

lllorddino 18 hours ago 0 replies      
I currently have one website that's built with Jekyll and I host it for free on Github Pages. The only thing I'm paying for is the custom domain name from Namecheap. Also I set up HTTPS with Cloudflare in front of it.

I prefer this method over managing a server any day.

funkaster 1 day ago 0 replies      
I use orgmode publish to html and then a simple script to upload/sync to s3[1]. Hosted there + cloudflare for CDN/HTTPS. I was hosting the site myself on a linode, but I like this setup much better.

[1]: https://www.rolando.cl/201607-1-blogging-like-its-2016.html

kumaranvpl 1 day ago 0 replies      
How about github.io. Github pages allows us to host our custom domains too
libeclipse 1 day ago 1 reply      
I use github to host the source code for my static Jekyll site, but since github doesn't support HTTPS on custom domains, I use Netlify as a CDN. Netlify automatically hooks me up with an A+ rated Let's Encrypt cert setup.

So my domain points at Netlify, which pulls the site from github.

The total cost of this setup is only the yearly cost of the domain, which you can eliminate too if you use a sub-domain on netlify.

mehdix 1 day ago 1 reply      
Github pages + Jekyll + Wercker for custom builds

Pros: free, convinient (a push ends up as a new post upon a successful build)

Cons: no SSL with custom domain on Github (at least not easily)

reacweb 1 day ago 0 replies      
I am on scaleway bare metal at 3.6 per month. I use no-ip.com for the free domain name. I have a docker image to update a jekyll static site that I publish over ssh with rsync. I use fgallery for the pictures collections. For me, it is the easiest solution because I am familiar with the OS and it uses only standard tools that will never change and no fancy and broken website interface.

It is cheap enough to not bother with the limitations of most low-cost static site hosting.

cyberferret 1 day ago 0 replies      
Another vote for AWS S3 + CloudFront here.

We also have a distributed team updating and looking after our website, and we use BitBucket as our git repo. Recently implemented their Pipelines feature to auto update the S3 bucket and refresh CloudFront resources with any changes pushed to the repo.

Makes it really easy now - just a 'git push' and Bam!, the website is updated and CloudFront auto invalidates all the old assets and starts serving up the new stuff. Really smooth.

ig0r0 1 day ago 0 replies      
Recently migrated my Hugo generated blog to Netlify and so far so good.

Deployment from git, Hugo build on server, free HTTPS with Lets Encrypt and free for my basic usage.

imgabe 1 day ago 0 replies      
I have the cheapest VPS from Linode, which is $12.50 a month including an extra $2.5/mo for their automatic backup service. (So, $10 if you don't want them to do the backup for you)

I wrote my own little script that converts markdown to html with python and push that to the server with git, but of course with a VPS you can run pretty much anything you want.

sergiotapia 1 day ago 0 replies      
surge.sh - i can get a website up in 10 seconds with a normal folder structure from my machine. i love it.
kybernetikos 1 day ago 0 replies      
I host some odd static sites with my fast mail family account. Has webdav file access and a dns control panel. Since I am buying the email service anyway it's free :-) Lets you set up different hosts serving from different folders.
danielsju6 1 day ago 0 replies      
Firebase ;) Great static hosting, HTTP/2, CDN, custom domains, and free SSL. https://firebase.google.com/docs/hosting
marcamillion 14 hours ago 0 replies      
Octopress + Github Pages + CloudFlare = Free, Stable that can handle a good amount of traffic.
novaleaf 23 hours ago 0 replies      
for non-developers, I advocate the use of google sites, which is basically a google managed wiki. very good for intranet sites, and passable for client documentation portals.
zlib 1 day ago 0 replies      
Long time user of https://idleserv.net
hopeless 1 day ago 1 reply      
middleman -> s3 -> cloudfront. About $0.15/mo.

Pros: Generally works well, speedy enough, free ssl with Cloudfront, cheap for many sites (most hosts charge per site which catches me out for little projects). I've mostly got the process figured out now...

Cons: not easy or quick to set up, lots of steps to get right, AWS is a terrible UI, Cloudfront invalidations are apparently sent by carrier pigeon so asset hashing is a must, even then it can take a while to see your site updates

I've noticed a high mortality rate among static hosting sites, particularly those "just add files to Dropbox and we publish your site" services. Static hosting services are to ops people what todo list apps are to frontend designers

Also, to your point: you can't, by definition, run php on a static site.

curiousgal 1 day ago 0 replies      
I run a cheap OVH VPS for hosting. I can host any number of websites I want and it costs less than any static hosting service.

Also, Github Pages and Gitlab Pages are great and free. You can't beat free if it's reliable and both of those two are reliable.

babayega2 1 day ago 0 replies      
I've used www.openshift.com to host a django website for free, since 2014!
deedubaya 1 day ago 0 replies      
https://www.simplybuilt.com works pretty well. Completely free for OSS projects, which is nice.
alemhnan 1 day ago 0 replies      
I use surge.sh, pretty easy and comfortable to use.
d0m 1 day ago 0 replies      
aws: s3/cloudfront.
627467 1 day ago 1 reply      
surge.sh + cloudflare

Free static hosting with custom domain support

mihohl 1 day ago 0 replies      
I wouldn't consider WordPress (and most other blog systems) static? But for real static hosting I preferre AWS S3.
tuananh 14 hours ago 0 replies      
i use ramnode. my setup is rather simple with git push and git hook to build along with cloudflare
Thomas_9 1 day ago 0 replies      
OVH just does the job for me since years, cheap and reliable.
macandcheese 1 day ago 0 replies      
Middleman + AWS S3 + s3_sync module. Dead simple!
logronoide 1 day ago 0 replies      
Hugo + AWS S3 + Cloudflare
espeed 1 day ago 0 replies      
Google Firebase, Google App Engine, GitHub Pages
jimpick 1 day ago 0 replies      
I like Zeit now, aerobatic.com and surge.sh
sandGorgon 1 day ago 0 replies      
hugo or jekyll static sites. tons of themes...really cool blogs. no setup. use github with a custom domain
infinityplus1 1 day ago 1 reply      
Dropbox public folder is pretty useful.
Dowwie 1 day ago 0 replies      
github.io, using it to power the yosai project and my own blog
gressquel 1 day ago 0 replies      
AWS S3 with custom domain
eswat 1 day ago 0 replies      
GitHub Pages or Firebase.
xcoding 1 day ago 0 replies      
Namecheap hosting
Bladtman 1 day ago 0 replies      
anacleto 1 day ago 0 replies      
imaginenore 1 day ago 0 replies      
Look for deals on LowEndBox, there are some amazing ones.
cylim 1 day ago 0 replies      
github, we are developer.
Ask HN: What are the bibles of Computer Science?
94 points by laddng  2 days ago   52 comments top 35
simon_acca 2 days ago 0 replies      
Knuth's "The art of computer programming" is definitely the bible of algorithmics: https://en.m.wikipedia.org/wiki/The_Art_of_Computer_Programm...
Jtsummers 2 days ago 0 replies      
What's your background?

For CS, I'll concur with others on these (for algorithms):

 Introduction to Algorithms, Cormen et al. The Art of Computer Programming, Knuth
I'll add:

 Introduction to the Theory of Computation, Sipser
More on the math side, I found this helped me bridge the gap between Calculus (and other continuous maths) and discrete math topics:

 Concrete Mathematics, Knuth et al.
SICP is good, and worth recommending, along with the Schemer series (Little, Seasoned, Reasoned). I have both The Reasoned Schemer and The Little Prover here at my desk. I had intended to work through them on my lunch breaks but, well, that hasn't happened yet. I don't know how much these are "bibles" versus good introductions to their topics, not really reference books.

My library is at home, I'm trying to run through what all I have and would recommend in particular of that collection.

On the practical, software engineering, side:

 Mythical Man Month, Brooks
Fantastic read on real-world experiences on a large-scale project. Every essay in there is worth reading at least twice, and several are worth rereading every year just in case you forgot the lessons.

I am currently wracking my brain to recall the other titles, may edit later.

abakker 2 days ago 0 replies      
The Mythical Man Month - Fred Brooks

It is amazing how this book can be interpreted as having predicted the necessity of Agile/DevOps long before the tooling was really available to easily enable that methodology.


ng12 2 days ago 2 replies      
SICP. In addition to being an incredibly illuminating read on programming fundamentals it was also the foundation of a religion on 4chan's old programming board.
showerst 2 days ago 0 replies      
Introduction to Algorithms (CLRS) - probably the closest you'll get for Algorithms, next to Knuth. It's also updated relatively often to stay cutting edge


AI, a modern approach (Norvig & Russel) - For classic AI stuff, although nowadays it might fade a bit with all the deep learning advances.


While it's not strictly CS, Tufte's Visual Display of Quantitative information should probably be on every programmer's shelf.


randcraw 2 days ago 1 reply      
These books are all venerable CS standards (AKA bibles) that teach principles well, though probably not the most up-to-date:

"Compilers, Principles, Techniques and Tools", by Aho, Ullman, Sethi, Lam

"Artificial Intelligence: A Modern Approach", by Russell, Norvig

"Computer Architecture: A Quantitative Approach", by Patterson, Hennessy

"Computer Networks", by Tannenbaum

"Operating System Concepts", by Silberschatz

deepaksurti 1 day ago 0 replies      
PAIP: https://www.amazon.com/Paradigms-Artificial-Intelligence-Pro...

While it deals with classical AI techniques, it is worth working through this book. Especially the AI example chapters where Norvig teaches how to go from specification to implementation and iterate over the design to fix problems etc. Backed by Common Lisp which allows this quick iteration by getting out of your way, this book is one way to fall in love with programing.

Warning: Once you are done with this book, be prepared to handle the less powerful systems and I am not implying here CL is the most powerful programming environment.

jonkiddy 2 days ago 0 replies      
The Pragmatic Programmer from Andrew Hunt. Very informative book. It is a book filled with opinions/tips from experienced programmers, some of which apply and some don't. The ones that do are invaluable.
convolvatron 1 day ago 1 reply      
Lisp in Small Pieces (Cambridge University Press, 1996 ISBN 0-521-56247-3; paperback edition (December 4, 2003) ISBN 0-521-54566-8; translated by Kathleen Callaway) is a book by Christian Queinnec on Lisp, Scheme and other related dialects, their interpretation, semantics, and compilation and contains code for 11 interpreters and 2 compilers.
flukus 1 day ago 0 replies      
"Joel on Software". Much like the bible, it's full of parables that can be interpretted in multiple ways, contains a lot of advice that is no longer relevant and contains enough good parts to cherry pick that I can consider myself a spolskyite.
d0lph 2 days ago 0 replies      
Written by the creator of the language, 1300 pages long and weighing almost 4 pounds:

The C++ Programming Language, 4th Edition


clentaminator 1 day ago 0 replies      
Why's Poignant Guide to Ruby

I don't consider it a bible of CS, but it's one of the most playful, imaginative and, essentially, fun, introductory programming books that I've read.

The analogy of the truthiness of a value as an energy or life force that flows through your program, or Ruby's ranges depicted as accordions, are just some examples of the book's approach to visualising some of the aspects of programming that seem so rote after you've used them for a while.

How useful it is to someone learning to program is questionable, as the book's style might get in the way of teaching fundamentals, but it's certainly fun to read as an experienced programmer (imho, of course).

leemck 1 day ago 0 replies      
About 30 years ago, my VW and a thousand dollars of tools, having been stolen and stripped, I left my low budget Malibu bodysurfing, workbench with an oscilloscope, free Lincoln Heights cabin and moved to Berkeley and enrolled in the first UCB extension course for the holy grail (at the time) of learning Unix and C programming. I started building the best library of computer programming books I could buy and about 1/4 of the books mentioned here were my choice then too. My recommendation to you is extend your computer science interest by going to college and mastering the fundamentals and also in your junior and senior year join in on the most interesting academic or scientific programming projects you can find. These days a Degree is required and your employer is hoping to benefit from the esoteric work you did in college.
mrlyc 2 days ago 1 reply      
The Psychology of Computer Programming by Gerald Weinberg. It considers programming as a human activity and introduces the concept of egoless programming.
derstander 22 hours ago 0 replies      
A little unorthodox, and not exactly a bible, but I enjoyed Feynman's Lectures on Computation. His CS chops include administering the computation group (of human computers!) during the Manhattan Project and a little work on the Connection Machine (including, apparently, a new method for computing logarithms).
CmdrSprinkles 1 day ago 0 replies      
Might not be full bible level of importance, but if you intend to do any work on Fortran and legacy science codes, "Modern Fortran Explained" by Metcalf, Reid, and Cohen is a must. Better examples and explanations than anything you can find on stack overflow with a focus on f90 (the most commonly accepted flavour) while also discussing the useful parts of 2003.
baddox 2 days ago 1 reply      
While not a reference book or software engineering book like the rest of the suggestions, I'll throw in Godel, Escher, Bach. It's pretty difficult to explain, but if you're deeply interested in computer science and want a challenging and mind-expanding read, it's an easy recommendation.
kasey_junk 1 day ago 0 replies      
Am extremely disappointed that this scene in the movie Hackers has not been referenced:


briHass 1 day ago 0 replies      
For the hardware side: "Code" by Charles Petzold.


yomritoyj 1 day ago 0 replies      
I would say that the words 'science' and 'bible' do not go well together. The books mentioned in the answers are all worth looking at, but they take you only up to the foothills of the discipline and are no substitute for reading widely and working things out on your own.
ddoherty03 1 day ago 0 replies      
Might I add, "The UNIX Programming Environment" by Kernighan and Pike, 1984. Still the best book on how all the tools of the UNIX command line work together for someone new to the shell, culminating in a parser for a small language using lex and yacc. Just saying.
JamesBarney 1 day ago 0 replies      
For Software Engineering I recommend anything by Steve McConnell such as 'Code Complete', 'Software Estimation', and 'Rapid Development'.
Someone 2 days ago 0 replies      
The examples you give, for me, aren't computer science (TAOCP, SICP), but "pivotal technologies" (to those, I would, for example, add books about Algol, early Unix and git)

You may consider splitting your collection in three parts: those two and software engineering (examples: the mythical man-month, the psychology of computer programming), which itself can be split into a technical and a social part.

Doing that may show gaps in your library/where your interests lie.

yegortimoshenko 1 day ago 0 replies      
SICP, Rich Hickey's talks.
nekopa 1 day ago 0 replies      
Steven Skiena's The Algorithm Design Manual. Especially the "war stories" contained within.
kchauhan 1 day ago 0 replies      
For cryptography : bruce schneier's applied cryptography
0xdeadbeefbabe 2 days ago 2 replies      
The Dream Machine is good for history and genealogy, much like the real Bible.

Edit: It's more popular to ignore history, but you can find Shannon's information theory, As We May Think, Cybernetics, etc. along with historical context. It might keep you from pretending you have invented the wheel.

dubious00 2 days ago 1 reply      
The C Programming Language (sometimes referred to as K&R, after its authors' initials)


The 23 Gang of Four (GoF) patterns

Lordarminius 1 day ago 0 replies      
Not CS exactly but for Linux you could do worse than

 Linux Bible 9th Edition by Christopher Negus

baccheion 2 days ago 0 replies      
Look on Goodreads and Amazon for books with 4.2+ stars (preferrably 4.6+, but those are uncommon) ratings, then filter from there. They need to have a good number of reviews (to suggest they've been read some number of times).
tmaly 2 days ago 1 reply      
I would add Clean Code to the list just because the concepts are applicable to many languages
CarolineW 1 day ago 0 replies      
Programming Pearls, by Jon Bentley

The Elements of Computing Systems, by Noam Nisan and Shimon Schocken

and its accompanying website: http://www.nand2tetris.org/

dubious00 2 days ago 0 replies      
How about Gang of Four? or

The C Programming Language K&R

dmux 2 days ago 0 replies      
Object Thinking by David West.
Ask HN: How do you get hired without a programming interview?
5 points by rvalue  18 hours ago   14 comments top 9
future1979 38 minutes ago 0 replies      
It used to work that way before Google messed it up. Microsoft was known to have a "difficult" process .. a cakewalk by today's unreasonable standard. Companies didn't try to emulate Microsoft in those days .. I don't know why everyone wanted to copy Google.
throwmeaway32 1 hour ago 0 replies      
"One seeking a managerial position isn't necessarily asked to demonstrate and perform his skills on spot, are they?"

Yes they are (kind of), they are asked questions/problems which are used to gauge their ability to manage and do the job expected of them; in the 'best' way achievable in a interview scenario. Just like coders are asked questions to try to gauge their ability.

I'm not saying either ways are perfect, but it's not like a managerial interview is easy/non-challenging.

[Edit: Ooops saw a similar reply below, done way earlier...will keep mine here for consistency on my part]

ng12 18 hours ago 0 replies      
> We see and also personally observe how coding tests do not effectively measure a persons analytical skills

I'm not convinced of this. It's not a perfect system but a well-orchestrated coding test is a great indicator of performance. In fact I think that's a huge pain point when hiring for a soft-skill oriented role -- it's very difficult to judge candidates until they've spent ~6 months on the job.

So what do established companies do? They rely very heavily on pedigree and experience. Coding interviews suck but I think they're necessary for meritocratic hiring. Plus, most of the complaints I see here are the result of poorly conducting programming interviews, not necessarily programming interviews as a concept.

itamarst 7 hours ago 1 reply      
On site programming puzzles are flawed, yes, especially whiteboard programming (as interviewee you're stuck with still doing them, but there's things you can do to make it less awful: https://codewithoutrules.com/2016/04/04/interview-puzzles/)

Other alternatives:

1. Take-home programming exercise. More realistic, if it's a good task. Biased against people with less free time, though.

2. Paid take-home real work. DuckDuckGo does this, as does SpiderOak I think. Doesn't work well for people who have current job, but if it ever becomes popular it'll be easier for people to quit during job hunt period.

3. Pair programming during interview. Somewhat more realistic than whiteboard puzzle, biased against people with interview nerves.

4. Debugging code during interview. Somewhat more realistic than whiteboard puzzle, biased against people with interview nerves.


There's no magic bullet, sadly.

allfou 3 hours ago 0 replies      
You don't unless it's a tiny startup and none of the founders/employees are technical. Which is pretty rare.
soulchild37 12 hours ago 0 replies      
I show my app on the app store to the interviewer, shown him a bit of the source code of the app on how I tackled some interesting problem etc, how I handled user complain/support etc. Got offered immediately afterward.

This might not work for most company however.

CmdrSprinkles 10 hours ago 0 replies      
> One seeking a managerial position isn't necessarily asked to demonstrate and perform his skills on spot, are they?

Actually, they are. That is the interview. As a manager, you need to have social skills. And a lot of the questions asked give a good insight into how you approach problems and social situations.

And that is why the better coder interviews are more about talking through a problem with a bit of whiteboard sketching/coding.

odonnellryan 6 hours ago 0 replies      
You'd have to know someone, most likely.
imaginenore 18 hours ago 3 replies      
I've interviewed at a few places without any technical questions. They basically talked to me about my past work and what I wanted to do. It's strange indeed.
Ask HN: What are you hacking on this weekend?
13 points by tmaly  1 day ago   23 comments top 20
jasonkester 7 hours ago 0 replies      
Bouldering. I have a project just down the hill from this one:


Gotta step away from the machine for a few days every week to make sure the rest of your life gets lived. I find it actually makes me more productive when Monday rolls around.

trcollinson 17 hours ago 0 replies      
I've been working on my next side project. I am hoping to get a beta out for it. Basically, I have a number of clients who need hosted database solutions. So I have made an automated relational database as a service solution with backup, restore, and high availability on multiple relational database engines.

Now that I have a few clients and it's working well, I would love to be able to market and sell it more widely.

krapp 19 hours ago 0 replies      
Random probably fruitless game development endeavors.

Still working on a game project I started in January. It's terrible, and could have been finished in a month if I knew what I was doing, and stopped shaving all these yaks.

Also I've decided I want to go through the noobtuts[0] Unity tutorials and implement them in C++, since they're really basic and I want to learn Unity and actually have some finished games.


kejaed 20 hours ago 0 replies      
Last weekend and week I spent 20+ hours on a coding assessment for an interview. They said they liked me as a candidate, liked my work, but whereas I was always going to be a remote candidate, that just wasn't going to work for them right now. Sigh.

This weekend I'll hopefully get a chance to work on my Deck lights LED strip project.


stvnbn 9 hours ago 0 replies      
I'm working on a browser extension (just chrome for now) so I don't miss any amazon goldbox deal, check it out, feedback is very welcome https://chrome.google.com/webstore/detail/new-tab-deals/oglf...
vmorgulis 6 hours ago 0 replies      
Writing widgets with Algolia and Github API for a HN meetup page: https://hn.silexlabs.org/index.html
acesubido 7 hours ago 0 replies      
Trying my hand on a small elixir-based livestreaming video broadcast server using WebRTC. Broadcasters and Audience would be in react-native. Dunno if it would work though.
itamarst 1 day ago 1 reply      
Hopefully will have time to work on the book version of https://codewithoutrules.com/saneworkweek/. And maybe a talk proposal for PyCon.
na85 23 hours ago 0 replies      
A custom emulator for Ultima Online. (actually a fork of runuo)
banterfoil 22 hours ago 0 replies      
Hopefully a turkey and a TCP server written in C
malux85 23 hours ago 0 replies      
Improving performance of latent space visualisation tools for spaces generated with Deep Learning Autoencoders
NicoJuicy 23 hours ago 0 replies      
Have some problems using a Meitracker for tracking trucks ( and temperature of the fridges), their gprs protocol is really bad.

Looking to get through it, have no choice.

On top of that, my webshop ( more languages), some websites ( clients) and other webshops ( clients) + erp integration with ErpNext or OpenErp

danielvf 23 hours ago 0 replies      
The programming game http://halite.io/

I'd recommend it - really fun.

At the moment I'm ranked #23 with a really stupid bot. I'm now doing hammock driven development on a better concept.

keyle 15 hours ago 0 replies      
More gamedev with UE4 http://paddlevspaddle.com/
nicomfe 21 hours ago 0 replies      
Need to fix my express server and webpack build for the first production version of a website im working on

OT: any expert in react, webpack, express !! please tweet me at @nicofetter or email hi@nicofetter.com

nanospeck 15 hours ago 0 replies      
Finish the Machine Learning for Trading course on Udacity. I'm already halfway through.
DrNuke 23 hours ago 0 replies      
Going to a local Startup Weekend the next one and preparing for an apps recommender prototype combining security and popularity rankings.
brnoenfield 20 hours ago 1 reply      
Gonna read a book.
Jugurtha 16 hours ago 0 replies      
I was asked if I could chime in to automate repetitive, inhumane, tasks in a HR process (a large number of people). It's mainly monitoring records matching a set of sentinels and triggering stuff.

I don't want to impose Python because the tools they're using offer scripting capabilities, so I'll just learn their stuff and point them towards scripting.

Also working on a few projects and learning as I go (JavaScript, XMPP, Google App Engine..) and will buy a couple of things for a hydroponics experiment.

Ask HN: Do you write automated tests for your side projects?
5 points by teekno  1 day ago   7 comments top 7
ajeet_dhaliwal 18 hours ago 0 replies      
This really depends on the size of the project and how many developers are involved for me. If it's just me and there are no external users then I almost never write them due to priority. If there are external users and/or at least two developers, then absolutely.

It's a great sign people are writing automated tests for their side projects because based on my experience there are still many teams that aren't bothering to do so for bigger production projects adequately. It's one of those things everyone knows they should do and talk about it but the resources and priorities are almost never in place. The test results need to be visible by more than just the testers too.

I have a particular interest in test automation due to my involvement at Tesults (https://www.tesults.com). This is a test results dashboard for teams of about 10-20 or more - it's not designed for tiny teams or side projects but if you're interested in trying it out for a small team send an email using the address on the site with the link to this page on HN and we can sort you out - only really worth it if you are doing continuous build/integration too, overkill for one or two person teams.

stevekemp 15 hours ago 0 replies      

A "side project" is a project, which by definition, doesn't have my full attention. I need to have confidence that I can tweak it and re-deploy it when I have a moment of inspiration or a bug-report.

The main way to be confident that you haven't broken things? Adding test-cases. I started out writing unit-tests for the APIs I present and consume, then later added more tests which run from "Signup, Use the service, Delete the account".

In all honesty I don't run the full suite very often, but when I do I'm glad I took the time to write it.

ohgh1ieD 22 hours ago 0 replies      
Yes always, I hate it, that's the worst part of every application, testing in general but it's also the foundation for a good night sleep.
pesfandiar 1 day ago 0 replies      
Depends on the size and use case of the project. If it's only a small hobby project that myself and a few others use, writing automated tests instead of manual testing is overkill. If you have paying customers or have made an implicit promise to keep the service up and running, then automated tests make sense.
bjourne 23 hours ago 0 replies      
Yes, always. That way I can refactor much faster because I know the tests will catch me.
sheraz 1 day ago 0 replies      
Never. And then I change platforms, say from heroku to deis. It's is about this time that I wish I at least had some end-to-end tests on the big things like signup, password reset, and profile editing.

Call it post-facto regret I guess.

afarrell 1 day ago 0 replies      
Always. If I'm trying to learn something new, I need to write automated tests to check my understanding or else I'll end up getting lost.
How to start using VIM?
9 points by avelino  21 hours ago   4 comments top 4
dmlittle 20 hours ago 0 replies      
I started using vim as my primary editor back in July. I quickly glanced over a friend's .vimrc, copied it and thought I'd be set. I was very wrong. It was too much for me to handle as a beginner. Starting from scratch (aside from syntax highlighting which your project does) and manually creating your .vimrc is a valuable experience. Even learning how to manually set up Vundle Pathogen, or NeoBundle is worth it up so you're comfortable adding plugins as you learn.

That being said, good job creating a tool some other people might be able to use!

hanniabu 16 hours ago 0 replies      

I heard this was good. Turns learning into a game.

ibizaman 17 hours ago 0 replies      
It would be awesome to be able to see the generated vimrc without downloading it. We in fact can see them easily in https://github.com/avelino/vim-bootstrap/blob/master/vim_tem...
mintlysocial 15 hours ago 0 replies      
Using the Vim editor

Two modes

The vi editor is a very powerful tool and has a very extensive built-in manual, which you can activate using the :help command when the program is started (instead of using man or info, which don't contain nearly as much information). We will only discuss the very basics here to get you started.

What makes vi confusing to the beginner is that it can operate in two modes: command mode and insert mode. The editor always starts in command mode. Commands move you through the text, search, replace, mark blocks and perform other editing tasks, and some of them switch the editor to insert mode.

This means that each key has not one, but likely two meanings: it can either represent a command for the editor when in command mode, or a character that you want in a text when in insert mode.


It's pronounced "vee-eye".

Basic commands

Moving through the text

Moving through the text is usually possible with the arrow keys. If not, try:

h to move the cursor to the left

l to move it to the right

k to move up

j to move down

SHIFT-G will put the prompt at the end of the document.

Basic operations

These are some popular vi commands:

n dd will delete n lines starting from the current cursor position.

n dw will delete n words at the right side of the cursor.

x will delete the character on which the cursor is positioned

:n moves to line n of the file.

:w will save (write) the file

:q will exit the editor.

:q! forces the exit when you want to quit a file containing unsaved changes.

:wq will save and exit

:w newfile will save the text to newfile.

:wq! overrides read-only permission (if you have the permission to override permissions, for instance when you are using the root account.

/astring will search the string in the file and position the cursor on the first match below its position.

/ will perform the same search again, moving the cursor to the next match.

:1, $s/word/anotherword/g will replace word with anotherword throughout the file.

yy will copy a block of text.

n p will paste it n times.

:recover will recover a file after an unexpected interruption.

Commands that switch the editor to insert mode

a will append: it moves the cursor one position to the right before switching to insert mode

i will insert

o will insert a blank line under the current cursor position and move the cursor to that line.

Pressing the Esc key switches back to command mode. If you're not sure what mode you're in because you use a really old version of vi that doesn't display an "INSERT" message, type Esc and you'll be sure to return to command mode. It is possible that the system gives a little alert when you are already in command mode when hitting Esc, by beeping or giving a visual bell (a flash on the screen). This is normal behavior.

The easy way

Instead of reading the text, which is quite boring, you can use the vimtutor to learn you first Vim commands. This is a thirty minute tutorial that teaches the most basic Vim functionality in eight easy exercises. While you can't learn everything about vim in just half an hour, the tutor is designed to describe enough of the commands that you will be able to easily use Vim as an all-purpose editor.

In UNIX and MS Windows, if Vim has been properly installed, you can start this program from the shell or command line, entering the vimtutor command. This will make a copy of the tutor file, so that you can edit it without the risk of damaging the original. There are a few translated versions of the tutor. To find out if yours is available, use the two-letter language code. For French this would be vimtutor fr (if installed on the system).

Whats the best feedback you got when you DIDNT get the job?
28 points by ohjeez  1 day ago   31 comments top 16
baxter001 1 day ago 1 reply      
As an applicant I've not had any on a technical basis.

A few years ago:

"Bit too much of a solo developer, which can be great but not what we're looking for."

Which is fair given that the context was they were needing to rapidly build a new core team for their first foray into microservices.

I was perfectly happy with the response, because I'd say it's a fair personal assessment, clearly at odds with how they planned to build the team, and my role at the time was very much a "Me and the Admin" type scenario.

When I've declined a role it has usually been due to a faint whiff of "Desperate eyed non-technical founder with a great idea" which I've usually characterised to them as being "Too accustomed to security of a more traditional company".

Or in once instance I advised the hiring manager that it didn't seem they needed more devs at all, that the two they had seemed by his description to be drowning in BAU and support tasks, that him training or hiring administrators would probably be a better use of his budget and more likely to retain the domain expertise already baked into his existing devs, before more of them left...Which was accurate even if he hadn't just also told me that he'd increased internal adoption of their CRM system by making it a disciplinary matter if usage was low.

idoh 1 day ago 1 reply      
An interesting question. I think that the bar is so low for feedback that any type of feedback is pretty welcome. For my most recent job search most of the time the company never bothered to tell me that I was declined, they just left it open. Something like: "Thanks for coming in today. The team had really positive feedback and we'd like to invite you back for another round. [so and so] will email you in the next couple days..." followed by weeks / months of radio silence despite followup.

The best feedback I got (through a side channel) was that the team was in a deadlock between me and another candidate, so it came down to a coin toss and I lost. I felt reassured, because at least the ordeal was over.

Another time I was declined because they only higher product managers with CS degrees and I do not have one. In that case I felt annoyed because this info was readily apparent on my resume, and I do have tech skills but they never brought up the issue in the interview.

c0110 1 day ago 0 replies      
The best feedback I received was from a hiring manager who said I was not senior enough for the position (they only hire senior engineers at that company). After my onsite interviews, we had a series of phone calls that pushed me out of my comfort zone, onto a path to discover my career.

1. He said he and his team were sitting on the fence about whether to take me on or not. The interviews went well, but he couldn't make a decision yet, so we agreed to talk in the morning.

2. He called the next morning and told me I didn't get the position. He gave his reasons (further down) and told me to keep in touch. I asked if I could call him again to ask some questions and he said that was fine.

3. Played phone tag a little, but he eventually called back and took the time to answer my questions about growing as an engineer.

This hiring manager was looking for senior engineers. I had no idea where I stood in my career, having been at the same company for most of my career (8 years), but I decided to give the interview a try. Hiring manager said I was not senior enough (a fair assessment) for the position. I asked him what it would take for me to be considered "senior enough" and he gave me some pointers on how to gain depth and breadth, as well as developing soft skills.

That 3rd phone call was really, really valuable. I started reading books (both technical and non technical) and really pushing myself to code more. But more importantly, I've pushed myself to seek help and guidance from people who are way more experienced. I suppose when you get specific directions, you get just a little bit closer to your destination... even if it's a moving target. :)

It's pretty rare to get this kind of feedback and I can definitely see why recruiters and hiring managers don't give this level of detail. They're really not obligated, and it can get them in trouble.

(edit: line breaks)

voycey 1 day ago 1 reply      
One (Large) company in the UK years ago - "Our psychometric tests indicate that you are possibly a smoker and we are a no smoking organisation"

Have never even held a cigarette in my life let alone smoked one

Tests included questions like "Johnny had a joint on Friday after work, is he OK to work on Monday?"

"Do you think smokers work to equal levels as their non-smoking employees"

and so on

Pretty sure this was illegal but I was young and had no idea so meh

Afton 1 day ago 1 reply      
Fresh out of my first year of computer science, I had fumbled my through some graph traversal algorithms. The guy (who I still remember!), said "Look, you seem like a smart guy, but it doesn't seem like you've done very much programming". I.e. I could figure out the problem, I just couldn't implement it very quickly or well.

He was right (and obviously. Like I said, one year of university). I took it to heart, and practiced programming. Nailed my next interviews. :)

I've never had any other constructive feedback from an interview, and at more than one company, I've been given specific instructions not to provide it (by the recruiting team).

JSeymourATL 1 day ago 0 replies      
> But youre left wondering, What did I do wrong?

Understand that you may not have done anything wrong at all.

Even if the hiring executive is a seasoned pro in evaluating and assessing prospective talent-- the interview process can be very subjective. He's trying to scorecard a number of strong competitors for the role. All of the finalists could likely do the job successfully. It can make the final hiring decision a very tough call.

As a candidate -- an area to probe just before finishing the interview, ask the hiring executive if they have any concerns or reservations about your skills/experience as it relates to their decision criteria. This is your chance to uncover and address any possible objections. Here's a Forbes take on this > http://www.forbes.com/sites/crossingborders/2012/04/25/the-r...

bbcbasic 1 day ago 1 reply      
Was told I was holding things back in a 2001 interview.

I knew what they were referring to. A problem I solved with a for loop, they then asked me how else I would do it. I couldn't think of another way, but after giving me a few tries they unleashed their genius: "What if you copy paste the loop innards 10 times".

And because I didn't mention that as a solution I guess I was holding back.

Applied 10 years later just to see if they'd improved. They told me that as I applied before and was rejected they could only pay me a graduate salary which was unchanged in 10 years to boot!

kafkaesq 1 day ago 1 reply      
Very early in my career: "We're a hard-core CS shop, and don't want to break that mold."

Fair enough.

Somewhat later, after blabbing too much about math: "We think this job would be too boring for you."

Memo to self: don't blab about math, unless they ask.

In sum virtually any feedback is great, as long as it's honest, and doesn't beat around the bush.

jrnichols 1 day ago 0 replies      
I had a company finally reply to me a few weeks after an interview and say "We were impressed with your resume and the interviews went well, but unfortunately due to budget issues, we are unable to fill this job requisition at this time."

I appreciated their honesty and it's better than the lawyer safe generic email.

itamarst 1 day ago 0 replies      
1. Looking for a non-full-time job I got told "but what if we need you on Wednesdays?", i.e. the day I was going to be taking care of my kid instead of working. Eventually found another part time job elsewhere (https://codewithoutrules.com/saneworkweek/ if you want some tips on how you can do that sort of thing).

Was reassuring insofar as it wasn't "you're not good enough".

2. Interviewed at startup, it goes well, then silence for weeks. I ping them, and eventually they said they're having some internal problems and if I have another offer I should probably take it. They apparently had "internal problems" for years, as in one review from 6 years later where it was still "it's a startup, don't know if I'll have job next week".

The job I did end up taking worked out very well.

jackess 1 day ago 1 reply      
Learn how to say "I don't know."
jgamman 1 day ago 1 reply      
not me but someone i know got down to the last two and the company would have been happy with either - they went with the other top candidate. turns out when they are in that position, they choose the least represented demographic/gender/background to include in their team. sounds reasonable, not sure if it's true but you can't really fault the intent.
DrNuke 1 day ago 0 replies      
Always a cultural fit, too much an INTJ to get along with people and social dynamics in an office environment. Was suffering a bit when younger, now in middle age I just don't care. Therefore, freelancing as a r&d / preliminary design specialist and trying to strike gold with my own projects, often sending targeted e-mails to win contracts where I can.
atmosx 1 day ago 0 replies      
This is an interesting thread.

However, as with all soft skills all of the feedback posted here is subjective to external circumstances. The often limited interpretation and perception of the interviewer goes along way into the hiring process.

So, from my small experience, there are many things that must come into play in order to get hired. The good thing is that in our industry hiring is going strong compared to other industries which are vanishing.

I think we can agree that valuable feedback comes mostly from people with whom we work daily and managers.

allfou 1 day ago 0 replies      
Your application goes like this:

You > recruiters > team

Team > HR > You

The only way to get feedback is to skip the middle layers.

ryanmccullagh 1 day ago 2 replies      
You move your mouse too much. Moving your mouse and windows too much indicates that you're not focused on the task at hand. Try not to jump from screen to screen when explaining things. Even if you're trying to explain various connected components. I received this as feedback from a job I had over the summer.
Ask HN: How to escape the rat race?
2 points by koejoelo  19 hours ago   6 comments top 5
itamarst 3 hours ago 0 replies      
A startup is a toss up. The key to financial independence is lowering your living expenses.

Read http://www.mrmoneymustache.com/2012/01/13/the-shockingly-sim... to see why, then start at http://www.mrmoneymustache.com/2013/02/22/getting-rich-from-...

For a programmer-oriented guide that talks a little about financial independence (and eventually a book with much more info): https://codewithoutrules.com/saneworkweek/

allfou 2 hours ago 0 replies      
A college kid with zero savings can become billionaire. An old rich billionaire can spend millions of dollars trying to build 100 products people don't want. There's no right answer to your question. The only advice I heard that made sense to me was:

%99 of the people are looking for: security, then comfort, then becoming rich

%1 of the people are looking to becoming rich, then comfort, then security

"Simply" re-order your priorities.

smt88 16 hours ago 0 replies      
Doing a startup is gambling, and it's gambling in a particularly high-risk way. If all you have is $50k in savings, you should not put that money anywhere near a startup. The money that isn't in your immediate checking account should be in a low-fee index fund, especially if $50k is all you have.
amorphid 13 hours ago 0 replies      
One reason it's worth doing a startup if you know something other people don't. For example, you've been working in an industry, have some knowledge of that industry's inefficiencies, and can efficiently tackle those inefficiencies with technology.
imaginenore 18 hours ago 1 reply      
If you're in the US, and are a programmer, your savings are way way too low for your age. It means you either haven't been changing jobs often enough, getting massive raises every time, or you spend too much.

If you're a US citizen, consider finding a well paid hourly remote job, and move somewhere cheap. You can reduce your work hours to literally 1-2 per week, enough to sustain yourself. Europe is quite cheap if you avoid big cities, Switzerland, and Norway. Most of Asia is very cheap except Singapore and Japan. There's also Africa, South America, and a gazillion island nations.

Ask HN: Is AI going to replace web developers?
6 points by ud0  1 day ago   8 comments top 7
goldenbeet 1 day ago 0 replies      
TL;DR: Yes it's possible, but it doesn't actually matter if it happens or not.

An AI creating websites is definitely possible, but will it actually replace people? I don't see that happening (at least not at a large scale). It's much more likely to be a tool that developers use rather than a tool that replaces developers. Or possibly something similar to Squarespace. It might be able to manage content on its own and build webpages, but what happens when there's a bug? What happens when you want to innovate and create something new? An AI would have trouble accomplishing that, so web developers would still play a role.

Now the more important question in my mind isn't whether or not they will replace jobs, but rather does it matter if they do? And my answer to that is no. There's two scenarios. A scenario where AI completely eradicates all developer jobs, in which case AI has probably eradicated a majority of today's current jobs and we would adapt as a society. Either by instituting some changes like Universal Basic Income or by developing new job markets (probably geared more towards the arts or things we can't yet imagine). The second scenario is that AI is introduced more as a tool or a simple solution to web/app development. In that case, there will still be a need for devs to do the more complex stuff. There will also be other development fields to move into, like Machine Learning Engineer for example.

niftich 1 day ago 0 replies      
Doubtful. Most of development is discovering, understanding, and refining requirements that may not all be known in advance, and then translating those requirements into deliverables. This is an intricate process subject to information asymmetry, and AI/ML and related fields are fundamentally reliant on a trove of accurate data.
allfou 3 hours ago 0 replies      
Yes it will. The question is, when?
a-saleh 1 day ago 1 reply      
I think it will be another tool in the toolbox.

I.e. I remember that few years ago, large part of web-dev was getting a page design in image files and you sliced and diced them and created proper html, maybe with few placeholders, with css optimized both for desktop and mobile.

Then I have seen a thesis on my uni, that automated all of that with genetic algorithms. You just threw an image at it and few hours in it spews out optimized web-page. I wouldn't be suprised if current photoshop has a button for it :)

pesfandiar 1 day ago 0 replies      
It won't likely replace people any time soon, but if it's anything like other technologies, it will make workers more productive (reduce jobs) or the process easier to learn (larger pool of worker -> lower wages).
DrNuke 1 day ago 0 replies      
Very probably, if web development is seen as a closed game with a limited set of rules and numerable outcomes.
mintlysocial 10 hours ago 0 replies      
You may have heard of The Grid, a new crowdfunding campaign that would revolutionize website design by incorporating Artificial Intelligence as a design tool. The service is similar to SquareSpace or WIX but include algorithms that essentially analyze a users content and imagery to calculate the ideal website design based on a set criterion. Any new content that gets added will result in the entire site reorganizing itself on the fly. Sound too good to be true? Perhaps. But interactive designers and developers have been worried about pre-made templates and DIY client services for years. Some of us fear being replaced. Some of us welcome our new robot overlords. Some of us, myself included, see these new services as a chance to evangelize that there are extremely deep, unique User Experience challenges that a web template (created by a bot or not) just cant solve.In the Beginning Human-Robot Interaction has been a topic of both fascination and fear since the time of antiquity. Homers Iliad described the creation of automatons by the Greek god Hephaestus, who built consciousness into golden statues. Aristotle proposed that human thought and logic could be mechanized. Nineteenth century inventors and artists perfected self-operating toys and machines. These concepts would be lifted to a new plane with the invention of the programmable digital computer in the 1940s and subsequent founding of the field of AI research at Dartmouth College in 1958.Our relationship with AI has always been pretty tenuous. As in all instances of paradigm shifts and technological revolutions, were at odds with making our lives easier while feeling a dull sense of displacement or irrelevance. Harkening back to Isaac Asimovs Three Laws of Robotics, weve attempted to safeguard ourselves from AI completely replacing or harming us. But replace may not be the right sentiment as it relates to the Web. Weve seen design trends, languages and methodologies come and go. Most often theyre superseded by far more efficient ways of doing things and conveying information. Could the introduction of Web AI fall into the same path of progress or are we entering a new era of design? Not for Everybody The Grid promises to free us from the shackles of design and code. It promises that all of our problems are to be solved via a set of constraints and templates, whether theyre conceived from an algorithm or otherwise. While I think AI and template sites will benefit from small businesses and casual users who are on a tight budget, they completely ignore all of the work that User Experience designers and information architects have done in solving problems from an empathetic, strategic and tailored point of view.When we talk about web design, were talking about something much more far-reaching than what the end-user sees. Since the design is freed from static, printed paper, the screen is able to contextually change what is displayed based on environment and feedback. How we get to that point of context is the task of a UX designer. Defining who the user is and his or her goals, and what a clients business goals are, helps inform the final design. Its beyond the ability of an algorithm to figure that out. We just arent there yet. We havent successfully taught machines how to think and behave like real human beings, so until we can do that, we have to do the dirty work ourselves. And web designers love those really tough problems. All of the nuances, the complexity, and the compromise. Another issue with an AI-based website is how much control we really have over its output. You essentially abdicate the big decisions for the system to make, resulting in a site based on its own assumptions and programming limitations. (Side note: the code the AI spits out is so poor that youre likely going to be dinged on SEO crawls!) I dont think were ready to hand over our thought processes as they relate to defining a unique face and voice online either. Although interface conventions are becoming more homogenized, the need to outline a brands differentiators in the interactive space are at an all time high.
A Node.js microservices toolkit for NATS
3 points by starptech  22 hours ago   2 comments top 2
skibz 21 hours ago 0 replies      
I like it! It reminds me of Seneca (http://senecajs.org/)
partisan 20 hours ago 0 replies      
Would love to hear from people using NATS about their experiences.
Ask HN: What sort of SaaS related content do you read?
16 points by brilliantcode  2 days ago   3 comments top 2
erikrothoff 2 days ago 0 replies      
I don't follow many blogs, but a service super related to SaaS businesses is ChartMogul (https://chartmogul.com/). We were (http://feeder.co) completely blind before them. It's amazing how much you don't know about your own subscriber base. They do really good content marketing as well.
grantlmiller 2 days ago 1 reply      
A few great resources for SaaS founders (particularly those targeting enterprise buyers):http://www.saastr.comhttps://hitenism.comhttp://www.enterprisesales.nychttp://www.heavybit.com/libraryhttps://www.enterpriseready.io
Ask HN: Any good case studies of companies for entrepreneurs?
8 points by hubatrix  2 days ago   6 comments top 6
GFischer 1 day ago 0 replies      
Depends on what your venture will be about, but there's a lot of books written specifically to help entrepreneurs.

The best ones IMO are the ones by Steve Blank and Alex Osterwalder:

- Business Model Generation, by Alexander Osterwalder & Yves Pigneur

- The Startup Owners Manual, by Steve Blank and Bob Dorf (haven't read it yet)

- "The Four Steps to the Epiphany", by Steve Blank

and others

These slides are pretty good too:


Above all, execute. I have what I believe is a very good project and it's floundering because of lack of execution (cash would help, but I should be able to make it work anyways). I've seen crappy ideas pivot into success by sheer tenacity (coupled with flexibility).

Edit: more resources

Getting Real by the Basecamp guys




skrish 1 day ago 0 replies      
I would highly recommend "Founders at work",if you haven't read that yet. I liked Creativity Inc by Ed Catmull, which deals with challenges of managing a highly creative team and working towards tangible output.
user7878 1 day ago 0 replies      
https://www.indiehackers.com/businesses is what you might interested in
nanospeck 1 day ago 0 replies      
I have almost finished writing a kindle ebook on the same topic. Just my observations on interesting strategies of top companies. Please let me know (drop an email) if you are interested to join the waiting list. Akhil.karun[at]gmail[dot]com
drallison 2 days ago 0 replies      
John Walker's The Autodesk File is definitely worth reading. https://www.fourmilab.ch/autofile/ has the book available in several formats.
Mz 1 day ago 0 replies      
You might have more luck looking for biographies of founders and company histories instead of case studies. It might be especially useful to look for biographies of founders who have something in common with you and histories of companies that do (or did) work that is in some way related to the kind of work you desire to do or that otherwise have some kind of connection or thing in common with your intended project.
Ask HN: Why isn't homebrew officially supported by Apple?
3 points by tush726  1 day ago   3 comments top 3
rvalue 15 hours ago 0 replies      
Homebrew doesn't have any existing support to accept license to use for every application. Users of brew just download and install.

If Apple had to implement a package manager, I think they would ask application developers to accept Apple's own license and policies for distribution etc. which may not be acceptable with them.

Also, wouldn't it make Appstore redundant ?

mintlysocial 15 hours ago 0 replies      
OS X/Darwin follows the design philosophy of it's cousin FreeBSD. The base system is only upgraded when a new OS version is released. Upgrades may or may not be the latest version of a software package. If the tool does it job and does it well then it may not be upgraded. The idea is " the lastest version may not equate to a better version" or "if it ain't broke, then don't fix it". So, the base system on your version of OS X will only be patched when there is a security concern or severe bug.
coppolaemilio 1 day ago 0 replies      
Because they will have to maintain it. If it already exists why bother?
Ask HN: What home automation platform should I get started with?
7 points by source99  1 day ago   7 comments top 7
kosma 1 day ago 0 replies      
I work for a successful IoT company and my advice is: don't. State of the art in home automation is: impossibly insecure & rarely helpful. The so-called "smart" home is anything but smart; it takes lots of manual configuration to make it perform as intelligently as you'd wish (and if you have a knack for coding, you'll end up reimplementing your vendor's hideously expensive "smart home hub" that was supposed to do the work for you). The industry is simply too young and immature.

Speaking of security: You have no bloody idea how easy it is for anyone with some crypto/security background to break into an IoT appliance or its vendor's cloud services. In the era where an average web development Joe knows a lot about SSL certs, CSRF, XSS and all that stuff, the average embedded developer's idea of encryption is AES in ECB mode (but not too many bits - "our MCU won't handle that!").

davismwfl 1 day ago 0 replies      
The market is in an odd phase right now. People recognize the insecurity but continually pump out insecure products that early adopters keep installing so we wind up with these crazy hacks that take out huge swaths of IoT devices.

The reality is the market is not mature so whatever you choose will likely change and you are likely responsible for implementing proper security controls at the Router to prevent stupid mistakes from being internet accessible.

This will resolve itself and as a tech home automation will become secure, but right now it is still relatively early in the cycle, so be prepared to make it secure on your own. Also be aware that likely there will be many things you have to integrate at some level, as there doesn't seem to be a real standard yet.

cdvonstinkpot 1 day ago 0 replies      
I once worked with some automation stuff back during the dot-com boom, before "smart home" was a thing. At the time the only players in the industry were "Lutron Homeworks", AMX, & Crestron control systems. A guy in our office used a language called "SIMPL" to create the touchscreen interfaces' UI.

...And, yes they were insecure. I remember the Chinese would take over 1 particular media distribution system regularly, at a local community college. They'd plaster anti-western political messages on every TV in every classroom. Took a week or so tinkering with hyperterminal to fix it. Lol

Terretta 1 day ago 0 replies      
System: HomeKit + ATV4

Lights: Lutron Caseta, uses normal wall switches + Lutron Smartbridge Pro for HomeKit

Thermostat: ecobee3 for HomeKit + remote sensors

Door lock: Schlage Sense for HomeKit

Security cam: upcoming Canary https://blog.canary.is/homekit/

A/V: Logitech Harmony

Bridge to non HomeKit devices like the Harmony: homebridge

Apple first party Home app

Optional: Third party Home app for detailed HomeKit DB edits

Siri and Echo can both control all the above, simultaneously

1. Homebridge: https://github.com/nfarina/homebridge + https://github.com/KraigM/homebridge-harmonyhub

2. HomeKit accessories: http://selfcoded.com/home/buying-guide/, http://www.apple.com/shop/accessories/all-accessories/homeki...

3. Third party HomeKit DB app: http://selfcoded.com/home/

itamarst 1 day ago 0 replies      
An example of why you don't want to do this: https://twitter.com/ow/status/789515155877027840
seanwilson 1 day ago 0 replies      
Is there a reason this is such a hard problem? Decent home automation that doesn't have you locked into one company that might disappear in a few years has been pipedream for decades now.
itamarst 1 day ago 0 replies      
Don't use any. It's insanely insecure (free DDoS for everyone! not to mention strangers on Internet controlling your house) and a bit of a waste of money. Think of all the exercise you get walking to the light switch and back ;)
Ask HN: Permanent deletion of Facebook account not really deleted?
8 points by junto  1 day ago   2 comments top
mtgx 1 day ago 1 reply      
If you live in the EU, send an email to your national Data Protection Authority. They could get in big trouble over this, as they weren't supposed to do this anymore.

In the US, it might still be worth sending an email to FTC.

Implore HN: Stop making low-effort comments, and downvote low-effort comments
13 points by simonsarris  2 days ago   4 comments top 3
nickpsecurity 2 days ago 1 reply      
You've set yourself up to learn a valuable lesson about human nature. The kind of people who care so little about the quality expectation here will also not care about any comment or rule asking them to change their behavior. This is why wrecks still happen at street lights despite clear rules and risk of death for violating them. This principle means your post is entirely worthless as it's asking selfish, uncaring people to be selfless and care.

It will save you energy and stress is you just stop doing that. Not just here but everywhere. Try to enact change where it matters with receptive audiences. Anything else is usually a waste. Your impact on the world will go up.

Note: Those of us downvoting or flagging spam will continue to do our part here of course.

stocktech 1 day ago 0 replies      
HN is a community like any other. As much as people want to engage with like minded people, they also want to relax, joke, and have fun with like minded people.

You need to lighten up.

PaulHoule 2 days ago 0 replies      
Ask HN: What are your experiences with the Touch Bar so far?
10 points by spacehacker  2 days ago   5 comments top 3
beaugunderson 21 hours ago 0 replies      
Touch ID is the only part of it I use because the rest of it is such a step backward.

I used Keyboard Maestro to create shortcuts for volume up/down, brightness up/down, play/pause, previous/next, and Mission Control.

I already had Caps Lock mapped to Escape with Karabiner-Elements.

Caballera 2 days ago 0 replies      
I like it, although I don't use it a lot. It's a nice to have more then a must have. But it works so far flawlessly. I do like having Touch ID.

Probably be more useful once more apps take advantage of it. So far only a few non-Apple apps I use take advantage of it. I do hope Slack takes advantage soon.

pvdebbe 2 days ago 1 reply      
Haven't had complaints so far. Don't use it really either. I have mapped Escape to Caps lock.
Are there any remote startup accelerators / incubators?
6 points by peter_suhm  1 day ago   2 comments top 2
hassansyed 1 day ago 0 replies      
hassansyed 1 day ago 0 replies      
You can use www.ideagist.com
Ask HN: [Data Science] What would make you hire a guy who self studied?
6 points by WaffleSmack  1 day ago   10 comments top 7
jstewartmobile 1 day ago 0 replies      
I roll in an unusual way, so take this with a grain of salt:

I'm very dubious of resumes. Typical resume is an alphabet-soup of "hot" technologies alongside a 4.0 GPA they got by remembering, regurgitating, then forgetting.

Two things that seal the deal for me are: A) well-executed personal projects that they can B) discuss their methodology fluently, casually, and competently so that I know it is truly their own work. If they can do A and B, I don't even care if they graduated high school.

That, and the definition of "data scientist" is somewhat up-in-the-air. A lot of jobs listed as "data scientist" are really more like map-reduce DBAs than anything remotely resembling science.

CmdrSprinkles 1 day ago 1 reply      
While not data science specific, I do often find myself on the hiring/search committee for our tech related jobs.

And honestly? Aside from the obvious "experience" (at least a year of contiguous experience doing something similar to what we want), there really isn't anything that would make me give a checkmark to a fresh faced person without a remotely relevant degree. Because online courses are useful but don't really show me that they know how to work on a project as a team. Same with most github projects where there is one contributor.

Universities may not be great, but it is pretty hard to graduate without ever having worked on a group project. Moreso for advanced degrees. And that is what I want.

Obviously there are exceptions on both sides. But when we have a hundred CVs to sift through, we are going to narrow it down. Because none of us want to do 100 interviews. It isn't fair to us and it sure as hell isn't fair to anyone past number 10 where we genuinely won't care anymore.

kejaed 1 day ago 0 replies      
Here is the path I'm following:

I'm doing the Data Science Specialization from Johns Hopkins University / Coursera, with verified certificates that I hope will help me create a portfolio to showcase as I look at this type of work.

I feel like having a portfolio to point to, as well as code on a site like GitHub, should be a good basis for a conversation with a potential employer.


wayn3 1 day ago 1 reply      
Demonstrate that you can turn data into Money.

The how is intentionally left open. As a scientist,you need to be capable of owning the entire process. You need the hustle to acquire your dataset and the mathematical ability to derive an advantage from it.

Can't be learned at school. You have it or you don't.

It's OK if you aren't able to "realize" the making Money part due to real world constraints. (For example a demonstrable investment opportunity that you can't personally invest in because you don't have funds to play with)

FT_intern 1 day ago 0 replies      
Your best bet would be to get experience in a software engineering job that works closely with a data science team and weisel your way in
gt2 1 day ago 0 replies      
Info on their blog (or first phone call) that proved the person knew fundamentals, and some insights myself or team found interesting and fresh.
e_py 1 day ago 0 replies      
Maybe some projects and/or relevant experience in the field
Ask HN: Why Doesn't Twitter Charge Donald Trump to Tweet?
5 points by labrador  1 day ago   11 comments top 6
qbrass 1 day ago 1 reply      
It just encourages people with the most influence to get their followers to abandon Twitter for some Twitter clone that doesn't charge them money.
kahrkunne 11 hours ago 0 replies      
Make twitter great again and make Donald Trump pay for it
wayclever 15 hours ago 0 replies      
Trump should not pay anything, nor should any other non-commercial endeavor. Commercial use ought to pay based upon revenue.
joeclark77 22 hours ago 0 replies      
They should be paying him, frankly. Twitter has been circling the drain and their best hope for a revival is that Trump has found Twitter to be a good way to bypass the media filter and speak directly to his supporters.
venomsnake 1 day ago 1 reply      
Unless you want to spark a flame war - change the question title to celbrities instead of the newly minted president elect.

I think the obvious answer is that not everyone with lots of followers have or makes a lot of money. It will strangle the social justice movement (not that i will be too sad, but still that is not the right way of defeating an ideology)

Mz 23 hours ago 1 reply      
Yes, Twitter needs to make money. But they need to do so in a way that doesn't kill the goose that lays the golden egg. Soak the rich policies tend to backfire. The rich and powerful have the most latitude for just going elsewhere. The result is almost always that other groups who have less power and money are hurt while the rich just make other choices because they aren't interested in being soaked and they aren't sheeple.
Ask HN: Is it legal to sell FB and Twitter username along with my domain iMUST.do?
4 points by unieldorado  1 day ago   2 comments top 2
davismwfl 1 day ago 0 replies      
IANAL. But in general yes. I have sold 2 different companies and with them the Twitter, Facebook and Linkedin pages, names etc. My attorney said as an asset of the business it is legally transferrable to the new owner, and in fact it usually must be transferred.

I am sure if you read the T&C's of each of those sites there will be a statement along the lines of, you are not allowed to setup names/pages for sale. If there, that statement is to prevent "name squatting" not stop a legal transfer of control over an entity. I think it would be nearly impossible for them to prevent the legal sale of an entity and therefore the assets that entity has, nor IMO would they really want to get involved.

wayn3 23 hours ago 0 replies      
you don't sell the usernames. the usernames are owned by "the business" and you're selling the business and in the process of doing so, pass along the credentials to the social accounts.

thats perfectly fine. imagine big company X gets sold. Clearly the new owner wants to retain the social accounts and theres nothing wrong with that.

Ask HN: Would you prioritize learning WebGL as an aspiring junior developer?
4 points by HamwakHall  1 day ago   10 comments top 7
blister 1 day ago 1 reply      
I've been a professional engineer for over 15 years now and have been working in the games and simulations space for about 5.

My advice to you: only focus on it if you really love it. The pay is (most of the time) not as good as what you'd get writing CRUD apps in the enterprise space.

The other concern is, WebGL is a really niche topic inside an already niche field. As someone that does a significant amount of games and simulations work, WebGL is still far too low-level to be of any real business use. Even with the expectation that things will improve in the next few years, you'll still mostly likely get the most bang for your buck using a game engine like Unity and letting it manage the "compilation" to WebGL.

If you're really passionate about games, learn a game engine and start building games. The "game" space is a really weird subset of CS disciplines and it'll help to get familiar with the entire production pipeline (coding, art, animation, behaviors, etc).

If you were really ridiculously passionate about low-level 3d programming, you'd either A) not be asking us for advice, or B) too busy playing with it to ask for advice. :)

With all that said, I'd love to talk to you about this industry and point you in the right direction if you're curious. My email address is in my profile if you want to know more.

itamarst 1 day ago 1 reply      
1. Nothing wrong with wanting to make money.

2. "Formal degree in CS" doesn't mean someone will be better than you. It might, it might not, depends on the job. Often it has no relation to actual job requirements.

A job skill that will serve you well no matter what you do: learning new things quickly. So instead of deep diving into one thing, maybe spend some time building a few small things with a bunch of interesting technologies. (Other comment about knowing basics is correct: knowing core technology is important prerequisite, do that first if you're not there yet).

Then you can tell employers "yes, I'm inexperienced, but look, I can learn fast, here's proof." You're pretty much never going to know the whole tech stack at a new job, so that matters a lot.

Another thing to focus on: learning how to build robust code (i.e. testing, both manual and automated). It's not exciting or flashy, but being able to say "and I can make sure my code actually works, and here's how" is worth a lot to smarter employers (though not all employers).

deepaksurti 1 day ago 0 replies      
GL is one area where just using a high level library is not going to help you master it. If you intend to use it as a black box, well you can use anything that wraps GL in your domain of choice (games, simulation etc).

However, what I have seen is that knowing the low level GL stuff is really important when you get stuck and have to debug your way out. Write your own shaders etc. Most recently I figured my way out of a tricky skeletal animation problem only because I knew the low level details as well.

My recommendation: Work through this book: [1]

I even wrote a scene graph in CL while working through this book and after learning SceneKit(iOS, macOS 3d framework). So I am backing up what I am suggesting:[2]

If you want to be in the graphics field in the long run, better know the low level stuff. This is just my 2$ thought. YMMV. And as @blister suggests, he is right that you need to pick the graphics domain as it is niche as compared to Web programming and the pay will be on the lesser side comparatively, especially if you are starting off.

My email is in my profile, feel free to reach out if you need any help from me in learning GL.

[1] https://capnramses.github.io/opengl/[2] https://gitlab.com/cl-3d-graphics/cl-scene

davismwfl 1 day ago 0 replies      
WebGL is not a skill I'd put high on your list. Really knowing Javascript and learning how to be productive is far more important. WebGL IMO is still niche to specific use cases and doesn't have a broad appeal, so the positions you are seeing are likely a microcosm of the overall job market.

If you want to be employable, study and know javascript, know your front end stuff solid. Don't worry about knowing lots of different technologies, know a few key things really well, like Javascript, html and CSS, with those alone you have good employability. Each company will have their favorite framework and you'll work with it, so knowing how to come up to speed on Angular, or Ember or choose your flavor is more important then knowing them initially. And the core ability to do that is being solid in the basics.

Good luck!

jstewartmobile 1 day ago 0 replies      
The branded technologies change with the breeze. This is not progress, or an emergent property of progress so much as it is by design (but that is a completely different conversation).

The best investment of your time is in the fundamentals; the things that don't change or change very slowly:

 Stats: Useful in both data science and machine learning Algorithms: Duh Differential Geometry: must-have if you're a graphics/games guy Discrete Math: Good stuff for dealing with machines that process things in bits. Linear Algebra: Comes in handy in so many different problem domains. Ethernet + TCP/IP: It's not going anywhere. Hardware/Architecture: Still running a von Neumann architecture last I checked. Things go much more smoothly when you know what the physical limitations and bottlenecks are before you start coding.
If you go all-in on WebGL and get a job, keep an eye out for the next new hotness, because you will officially be on the treadmill then.

MayorOfMonkeys 1 day ago 0 replies      
I'm seeing a dramatic up-tick in companies wanting WebGL content to be built, either in-house or externally. WebVR is only going to accelerate this trend. So, sure, picking up skills around WebGL content creation should be a safe bet but avoid learning WebGL at a low level. Tools like PlayCanvas are there to help you get excellent results in a fraction of the time - you're much better off learning that.
dyeje 1 day ago 1 reply      
What positions are you looking at where you're seeing WebGL and Unity frequently?
Ask HN: Why doesn't Nintendo ramp up production of classic?
5 points by nodesocket  1 day ago   4 comments top 4
CmdrSprinkles 1 day ago 0 replies      
Because Nintendo is a toy company and basically view the classic (and amiibos (and gamecube controllers that only work with one game)) as cabbage patch dolls.

This first wave was to gauge interest and build hype. It came out early November and made people want them in the lead-up to xmas. If Nintendo weren't still living in the 80s they would have a very large burst of stock this week, but so be it.

The next big wave is going to be mid-December when parents (and loved ones) are buying gifts and want "the big thing".

Then we'll get a large wave in early January for all the people who get cash for xmas.

And then we'll just get a continuous stream so that every sane person can buy one in February or march

As for why Nintendo does it this way: it lets them tell their board that they "won the holidays" because they had the must-have product. And next year they'll have the snes classic (or nes classic 2 if they can find more games). They make less this way, but they can pretty much guarantee they turn a profit and have good stories for shareholders.

As for direct shipping: Part of that is Nintendo not really having invested in the infrastructure for that scale of direct orders. But I suspect a big chunk of this is Nintendo trying to earn some good will with retailers who have dismissed them due to bloated stocks of wii Us, 3dses, and amiibos. Because Nintendo need to push the shyft and while they may think they can win with a Vita they aren't dumb enough to forget that retailers killed the psp go.

matt_s 1 day ago 0 replies      
They are probably going to make more from the Mario iOS game coming out in 2 weeks. That requires zero ramp up of production and a couple of TV ads could make it the new "thing" everyone plays.

The target demographic with money today matches exactly with people that played those games as a kid. A lot of people would "pass" on the legacy looking console at a store but would tap away $5-10 on a phone without thinking about it.

I really hope they step out of their closed garden and port more games to iOS/Android. Mobile games can be the gateway to more people buying their systems, old or new.

qwrusz 1 day ago 0 replies      
It's been out a week? Pretty sure they are ramping up production. It takes time to hit the switch to build and then deliver to stores. Ask this again if supply is still low mid-December.

As for why they don't raise the price and sell directly, you can ask this about every company that doesn't sell their products directly. Why don't they do it?

I would guess with this particular product for Nintendo is not really about the money. A company never wants to depend on profits from selling nostalgia alone, they want to look forward and grow and make new things for excited, engaged customers.

flukus 1 day ago 0 replies      
Nintendo is a very conservative company. They try to set production at a sustainable level, not increasing and decreasing numbers every month. We saw this with the wii, they increased production every month until they reached an equilibrium point.

As for selling directly, they don't won't to burn bridges with retailers that still have a large role in pushing their products.

Are videos really the best tool for the job of educating coders?
40 points by samerbuna  2 days ago   43 comments top 22
thenomad 2 days ago 4 replies      
Can't speak for everyone, but personally I absolutely hate having to trawl through audiovisual format for learning anything, and coding is particularly bad.

It's just so damn slow. I can read and absorb information about 5x faster than I can watch a video. That leads me to feel a lot like the video's just wasting my time.

On occasion I've even considered sending tutorial videos to a transcription service.

So - personally, I much prefer a textual alternative. But I know some people like video.

Given you are doing video-like things, please make sure they're as tightly edited as possible. Really tightly-edited audiovisual content is a lot more tolerable. There's very little more annoying than a two-hour-long, rambling tutorial that could have gotten to the point in 12 minutes.

kstrauser 2 days ago 1 reply      
"How long is a rope?"

Some people learn better from video. I've never heard a programmer claim that they were one of those people, but it's surely possible. But consider all the text you deal with on a daily basis and why you use it.

Can you imagine a man-page-as-video: "You can type dash capital A to list all entries except for the current and parent directories. This is always true for root anyway."? That'd be hellish. Did they already get to the part about how to display inodes or do I have to wait for it? Wait, what was that bit about the recursion? In short, you can't search through video or instantly go back a sentence with a flick of your eyeballs.

Well, that's exactly how I feel about videos trying to teach me how to install something. I can't trivially skip past the part where they discuss the differences between RedHat and Debian. I can't go back. If my ears are tired, I can't adjust the "contrast" to make it easier to listen to (although I suppose some video players have audio compressors/expanders). I can't copy and paste it into an editor to see how it works locally.

Your idea goes a long way toward addressing those problems. I could see it being great for people who prefer listening, but still want to, you know, interact with the thing they're learning. I'd vastly prefer this approach to Yet Another Youtube Video.

djmashko2 2 days ago 3 replies      
I built this approach at a hackathon with a friend, it's something that enables people to teach about code by inspecting different parts of a pre-existing project: https://www.codetours.xyz/

Never took the extra time to polish it up after the hackathon, but if someone is interested I'd be happy to work together on improvements.

tmaly 2 days ago 0 replies      
Back in the mid 90s when I was taking electrical engineering courses that dealt with modeling the transistor, I found videos very valuable to review what was said in the class.

Fast forward to today, I think a great blog post with links to code and break outs of sample pieces of the code explained in the blog post do a much better job.

jabv 2 days ago 1 reply      
Hi - I only checked out the introduction, but I think you are right that this is a far superior form compared to traditional video.

I make things like this for product trainings with my company using a graphical tool (Articulate Storyline), and I think your idea and execution are both quite good.

Check out the book "ELearning and the Science of Instruction" for research-based tips on fine-tuning things you're doing.

At first glance, the visual indicators (code or box highlights) are really important and a little understated. I would make them more prominent visually.

Secondly, I would think about feedback on incorrect answers as well as hints. E.g., on section 1.1, the user may feel stuck without a clear memory of how to write Hello class. Allowing for something like "show me the next line" to get started would help learners who need more support.

soneca 1 day ago 0 replies      
I am actually learning JS, but much basic stuff. I'm using freecodecamp.

I personally prefer "type on the browser following written instructions" than videos. Pace on video is very hard to set right.

I only checked the first and second lessons, but I did like your tool! As I can type while the voice is still talking, I can move faster if i want. And listen to instructions while highlighting the part of the code on the screen felt natural.

So I think you are on to something and you can have the best of both worlds, clear instructions that stick on your brain and flexibility to follow anyone's pace.

The features I would ask:

i) allow me to click at the bar of the bottom and go back (or forward) to the part of the audio that I want to read.

ii) mark at the bar the exact moment where you objectively explain the key concepts of the class (and make sure at each lesson you have one sentence that explains each concept very directly, like "render function is..").

good luck!! Sounds very promising! :)


leepowers 1 day ago 0 replies      
Video can be great for describing certain concepts. Like illustrating the relationship between pi and a co/sine wave. Or anything related to animation, physics, etc. in code.

Video can also be useful for learning how to setup a development environment, to show how to use developer tools in FF/Webkit, setup an Xcode project, etc. Instances where a student needs to navigate a complex UI to begin the work of actually coding.

For coding there's many problems with video. One issue is bandwidth: text can be scanned and consumed very quickly. Text can be given a hierarchical structure that a student can jump between, which makes it easier to understand complex relationships between concepts. Video is linear. Code is not. Code has a relational and web-like structure that is more accurately represented by hypertext.

robattila128 2 days ago 2 replies      
What people who prefer videos wont admit is they just find it more comforting to have someone instructing them. Especially if they left an impression on them previously. It's lonelier and harder to establish a connection through blog posts so they will sit through videos instead.
marssaxman 1 day ago 0 replies      
Your world is very different from mine, because it would never occur to me to ask that question, much less to answer it with anything but an emphatic "no". I am fairly sure I have never learned anything about programming from a video and have trouble imagining how that would work. I am curious - who produces these videos? Where do you find them? What sorts of things do you learn from them? How do they overcome the slow pace and low information density which appear to me to be intrinsic to the medium?
ivan_ah 2 days ago 0 replies      
Hi samerbuna, jsComplete is very nice. The multi-panel interface is pretty intuitive and the COMMAND+ENTER to re-run the code works well too.

One thing about the speed control. You should consider making it a [-|spped|+] button rather than offer 1 1.25 and 1.5 as predefined options. I can usually handle audio at 2x normal speed or sometimes even more. This Chrome extension[1] is my best friend.

[1] https://chrome.google.com/webstore/detail/video-speed-contro...

sean_patel 2 days ago 0 replies      
> Are videos really the best tool for the job of educating coders?

In most cases, I believe they are. Let me explain why.

I checked out your React example and noticed 2 things.

1) You jumped straight into coding, whereas your audience might be at different levels / experience in their coding history.

2) Your audio-only format works well ONLY for client-side stuff like Javascript, HTML, CSS programming. It quickly falls apart if you are teaching ASP.Net, or iOS Programming, Webservices, SQL Server, Oracle, pretty much anything that involves more than just saving a file and clicking refresh in the browser.

#2 is where videos shine. If you take a look at PluralSight videos, or even Udemy coding videos, the Instructor is able to SHOW the IDE, the things you've build by going to various browser, folder locations, as well as menu options, settings etc in the IDE. How will you do such things in Audio only format? It will take a lot of words, and if the student doesn't find it then they panic. Whereas in Video they can see EXACTLY what you are doing.

hugja 2 days ago 1 reply      
What you're describing sounds very similar to how [1]Khan Academy teaches programming. Which is probably one of the best ways I've seen programming taught through a browser.

1. https://www.khanacademy.org/computing/computer-programming

aaron695 1 day ago 0 replies      
I think your title question detracts from the real question :)

Your idea sounds like it might be quite good, just try and keep interactivity fairly often, perhaps.

markm208 2 days ago 1 reply      
I am working on a tool that allows developers to walk others through their code. It can certainly be used purely for teaching others but I think there is also value in having developers reflect on what they have done in their workflow:


teilo 2 days ago 0 replies      
I love videos for learning visual things - like how to replace the fuel pump on my car.

I hate videos for non-visual things - like code.

brador 2 days ago 0 replies      
Very cool. Polish, Package, Sell to education establishments or as training material to corporations.
garymoon 2 days ago 0 replies      
Since I started learning most of the people that helped me told me RTFM sometimes it was kind of rude but I got used to it. Most of the time I read official docs, but if a project is very complex or not well documented I go with books, tutorials, videos, etc.
iKlsR 1 day ago 0 replies      
I'm not sure why this fad popped up with people recording themselves and overlaying this over 1/4 of the video. Why do I want to see you with a gigantic mic over your face and your cat in the background?
weishigoname 1 day ago 0 replies      
I don't think video is very efficient way to educate, specially for coders, do-by-learning is very efficient I think.
cellularmitosis 2 days ago 0 replies      
This is essentially the same format as Gary Bernhardt's 'Destroy All Software' screencasts, which are absolutely delightful.
garysieling 2 days ago 0 replies      
I like that you included subtitles in this.
MK999 2 days ago 0 replies      
Teach me how to do interesting things in wasm.
Ask HN: How do you handle divorce as a startup owner?
9 points by losingitall  1 day ago   14 comments top 9
losingitall 1 day ago 1 reply      
To be clear, I'm perfectly happy(?) to help give her a solid foundation to start the new life she feels she needs. I want her to be able to be successful and feel fulfilled, etc... However, I'm losing almost everything I've built up as my "life" (house, marriage, dog, 1/2 our friends, my best friend/wife, will likely have to move somewhere with a much lower cost of living, etc...), and it feels like I'm also losing my freedom or ability to build a new life for the next 8 years (unable to quit, working 60 hours a week and taking home a fraction of what I'm earning, etc...).
Red_Tarsius 1 day ago 0 replies      
I'm so sorry for what you're going through. I can't offer any legal advice other than consulting another lawyer. Alimony is state-enforced theft and often ruins (male) lives, so you have every right to feel upset. Whatever the outcome, please keep us updated: we care about your well-being.
JSeymourATL 1 day ago 1 reply      
> My (very highly respected and expensive) attorney unfortunately feels that the MA law is super simple and I'm basically just screwed.

It may be worthwhile getting the legal equivalent of a 2nd opinion. Consulting another lawyer could be a smart play. They may confirm your attorney's advice or suggest some alternate suggestions. Also, mediated divorce settlements may be an option to explore. Here's a list in Massachusetts > http://www.mediate.com/Massachusetts/

saluki 1 day ago 0 replies      
With this much on the line I would get a few second opinions from other lawyers.

I would look at doing a 50% profit sharing of your current and future earnings from your company with her and 50% of profits from any sale in the future, she might make more in the long run but you aren't paying 50% of the current value over 8 years.

Talk to more lawyers to make sure you get the best setup possible.

pja 1 day ago 1 reply      
Well, youre in a negotiation.

Either you buy your wife out of her share of the business based on current valuations or you can transfer half of your share holding in the business to her, if the latter is even possible. Or something in between. No easy answers unfortunately.

Do you think you can grow the business? How recent is the "recent valuation"?

sharemywin 1 day ago 0 replies      
you can sell the business.

or maybe your partner is interested in owning more of the business?

At the end of the day your buying out a partner over 8 years. At which time the company will probably be growing and become worth more.

rajacombinator 1 day ago 0 replies      
Sounds like you have a bad lawyer. Surely and agreement can be made that doesn't require you to give her cash upfront for your stake in the company.
dbg31415 1 day ago 1 reply      
My uncle went through a similar situation. He owned a company and got divorced, he had to pay her out the valuation of the company, just like he had a mortgage. What's worse, she went to some stupid get all your money in one lump sum place and instantly lost like 60% of the value. So in addition to losing money to interest he had to live with knowing that his kids only got 40% of what he was paying.

It taught me that it's important to have a prenup. There are things that should be communal assets, a company is not one of those things.

Any way to just close the company down and then re-found it with your partners? Or structure it so that they "fire you" or buy you out for a fraction of the value and then give you equity bonus on rehire? I don't know if any of these things are legal, but after seeing how miserable my uncle was, I would go to extreme lengths to avoid being in a situation where I had to buy my own company back from my ex-wife.

Mz 1 day ago 0 replies      
So, I was the wife/homemaker and he did not have a startup. We had an amicable divorce, in part because I wanted to keep lawyers out of it and I have had a college class on Negotiation and Conflict Management. Given that we did not have much money, I did not want the lawyers bleeding us for money we could not remotely afford. So I did a lot of steering that to make it as painless as possible for all parties. He was cooperative, but I at times agreed to things that were a convenience for him because I understood that screwing him over was absolutely not in my best interest.

But if you are negotiating with an idiot who does not understand that bleeding you is a bad negotiating tactic, you need to get better at a) negotiating tactics and b) communicating to them why this is not in THEIR best interest. Don't talk about what you need/want/feel. Talk about how this is likely to impact her, and not in a positive way.

Make absolutely sure you are not making threats. You need to make it clear this will cost her and you need to do so in a way that cannot be construed by the court system as bad faith or threatening behavior and that cannot be construed by her as hot air or empty talk that you won't really follow through on. This is not a scare tactic. The point is to educate this fool.

For example, it might help to get figures on what a nasty, long drawn out divorce litigation costs in both time and money. (I knew we were saving like $40k or more -- money we absolutely did not have -- to divorce without lawyers. That left lots more on the table for us to split, so I didn't quibble about small things.)

Let me also recommend that you pick up "Getting to Yes" and "The Mind and Heart of the Negotiator". They are both research based and were both required texts for my college class on negotiating and conflict management. The first is a quick read. You should be able to get it through in a weekend. The second is much meatier, but I strongly suggest you do your best to find/make time for it as it contains lots of good info.

If you just cannot come up with the money, you may need to do all in your power to insist she accept stocks to cover the part of the business she is "owed."

If you can get a copy of the movie Our Househttps://en.wikipedia.org/wiki/Our_House_(2006_film) and also Kingdom of Heaven, both contain good lessons in effective hardball negotiating.

Please get your feelings out of the way. You need to be goal-oriented here. This is not about the fact that she is breaking your heart or doesn't love you anymore or a thousand other personal pains involved in the end of most marriages. Keep a journal or do therapy or something, but find a way to get your feelings out of your way when negotiating this settlement.

This is business, not personal. There is enormous money on the table. You must treat it like business -- and never mind that she probably won't. You need to do all you can to avoid getting dragged into her emotional crap or provoking her. Be diplomatic and sensitive to her hurt feelings, but do so in a way that sidesteps the issue as much as possible. Don't pick at old wounds. Don't throw things in her face. Stuff like that will cost you money.

This is advice rooted in having been through a divorce and managing to not screw over either party in the process.

Best of luck.

       cached 24 November 2016 21:05:01 GMT