hacker news with inline top comments    .. more ..    25 Jul 2017 Ask
home   ask   best   7 months ago   
Ask HN: How do you find clients when you have no network and can only do remote?
283 points by penpapersw  14 hours ago   98 comments top 32
gk1 14 hours ago 2 replies      
I wrote about how I learned to get consulting leads: http://www.gkogan.co/blog/how-i-learned-to-get-consulting-le...

TL;DR - Decide who is your ideal client. Identify their 1) common pain points and 2) which online communities they participate in (may or may not be HN). Write advice that will help them with their pain points, and share it in those communities. This will in effect advertise that you know how to solve their problems. Don't be too modest to say you're available for consulting projects, and make it easy for people to contact you.

PS - As someone else suggested, you may want to add your contact info here. There's a big overlap between people who browse HN and people who need and have the budget/authority to hire contractors.

Brajeshwar 8 hours ago 3 replies      
There are pretty good Remote Job sources these days, try them. There are quite a bit of contract works too, which you can start off with. Also, do not forget to walk into your area's agencies, they usually work with freelancers/contractors.

- https://www.workingnomads.co/jobs

- https://remoteworkhub.com/remote-jobs/

- https://www.crossover.com/

- https://remote.com/

- https://weworkremotely.com/

- https://getbetterluck.com/ (one of our own internal tool)

throwawaybbq1 32 minutes ago 0 replies      
If you need to make money right away, I strongly suggest you reconsider upwork (don't know the other sites you mentioned). I know a friend who worked on it as a dev. I use it as a client. The money from initial contracts might be bad, but it has the potential to turn into a more lucrative deal with a particular client (if you prove your value). This is a great way to build up experience as a consultant .. you can then say you worked as a consultant for X, Y, Z big name brand. Here is the thing .. pick your customer carefully. You want to make sure you are working with a customer who is as tech savvy as you. I work in deep tech so was able to communicate very effectively with my upworker, we were able to estimate things similarly, etc. I have seen postings on other free lance sites where someone wants you to build a highly scalable version of twitter for 50 bucks. You want to be able to avoid those people.
aresant 14 hours ago 2 replies      
I would immediately update your posting with a CV, website, git, whatever.

You are on the front page of arguably the PREMIER network of people with access / need for technologists.

wtracy 14 hours ago 5 replies      
The problems with Upwork and Freelancer, while significant, are regularly blown out of proportion. I don't recommend them for more than finding short gigs when you're in a pinch, but they are useful for that. Do be prepared to lose a lot of jobs to bidders from the third world. Take advantage of anything that you can use to differentiate yourself.

Also, get a stack of business cards and start going to local business networking events. Look up the local Chamber of Commerce, search meetup.com, and see if your county has any small business development classes or lunches you can attend.

That's my short-term advice. I'm still trying to figure out what to do in the medium- and long-term myself.

Y7ZCQtNo39 14 hours ago 0 replies      
I think the biggest thing you can do is establishing credibility with potential clients. The easiest way to do that would to be an existing set of clients, which you don't have. That's fine, everyone has to start from somewhere.

Your clients could or could not know much about the software development life cycle, and how to evaluate if you have the skills to meet whatever needs they may have. Perhaps you could network with existing freelancers who are too busy to take on new clients.

Spitballing here, but maybe working on or creating an OSS project could give you credibility to those freelancers. Or maybe you could work under a successful freelancer to establish yourself in the space. Maybe the site you built will lend you credibility to others.

Alternatively, if you have business ideas you'd like to try out, you could try working for yourself and creating your own income. Also, it doesn't hurt to sign up for LinkedIn. It might not be immediately beneficial, but once you find your first client, maybe they'll write you a glowing review.

> having worked remotely for the past 5 years has really limited my ability to build a network. I don't have LinkedIn and even if I did, it's more meant for building a network than for finding a quick gig.

Yeah, it's hard to build a network. Time to start putting in the effort. I sense a tinge of can't-do attitude here (but obviously, the tone interpreted in written communication is subjective) -- I don't know if it's the case or not, but a can't-do attitude is not what you want to have for freelancing work. Your lack of a network, or having an expansive one, is ultimately the result of your personal decisions. You have to be willing to give it a shot. If networking sounds not fun, or like a chore and otherwise unpleasant, you're probably better off just working for a big tech company. Personal skills are far more important in freelancing and entrepreneurship when compared to standard full-time employment.

Best of luck. Now go out there and kick some ass.

goodroot 12 hours ago 1 reply      
While it may not fill an urgent need, have you considered finding a comfortable and stable remote job? Hackernews 'who is hiring' is a great spot; weworkremotely.com, remoteok.io.

You seem to have experiences, which is excellent. In the short term, if you're in the throes of an emergency, perhaps get some help from love ones while you get your feet back on the ground.

Looking for a project under stressful circumstances feels like it might create an uncomfortable environment to do good work and sustainably remedying what you're going through.

Good luck, whatever route you choose!

ssijak 3 hours ago 1 reply      
Try getting into Toptal https://www.toptal.com/#connect-unmatched-coders-now It is good for both clients and freelancers because Toptal screens both for quality. I am there as a freelancer for half a year and am satisfied. It feels like they are looking after you, and you can pick and choose what you want to work on and how much. They will try to match you with the clients, or you can pick jobs, but they will never force you to do anything. And there is nothing like screen recording and tracking like in Crossover. Also, I would never work on Upwork or similar network where everybody can say about them what they want and bid on whatever they want (with low prices).
ShirsenduK 5 hours ago 0 replies      
I was a freelancer with no network 10 years back. I used to get cheap projects and some crappy clients. Some 5 years back, I got to work at a startup (luck and my relentless application to jobs did the trick). I had to move away from my hometown. Remote was _not_ an option. We got bought by LinkedIn and I was an engineer at LinkedIn. That blew my network up! I get remote work offers in my hometown.

In my experience, face time matters if you are from place no one knows about. There is a reason most engineering talent is in and around Silicon Valley.

I am not sure about github or other technical profiles as the people who make the decision of hiring you never visit github or understand code. I am taking about the CEO of a small company who will hire you and not the cool SF startup that we read more often.

Companies want to reduce risk, remote increases it because of the unknowns. If I were you, I would again start with upwork and similar freelancing sites. The shady things you hear are distractions and everyone has a different experience. There is a reason the upworks of today still exist and are doing business.

I wish you the best! :)

csomar 2 hours ago 0 replies      
In a short time? Forget about it. No one who doesn't know you first hand will engage you in a $10-20k contract. Let alone the fact that there is such a position available on short notice.

So your options are really limited: Credit card debt? Family debt? Low paying jobs?

In the longer run, there is no way around building a network. If you want high quality work, you have to build a network. It's like some guy coming to a big city and want to hit the high-end clubs, meet with high-quality people and get back home with a 9/10 girl to sleep with. Not gonna happen.

He's probably going to fail at entering the clubs (first step) and then blame it on the clubs having bad policies and stuff. If you want high paid work, you have to establish yourself first.

Establishing yourself in a certain market/niche take years of hard work on establishing yourself. It can happen on different dimensions and will depend on your style (blogging? Forums? Conferences? How about writing a book? Contributing to a popular open source project? How about becoming a main contributor of a popular open source project?).

Good luck. Tough times but I'm pretty sure you'll come out of it and it'll shape your perception down the road.

kqr 2 hours ago 0 replies      
Not sure what you mean by "network", but have you tried reaching out to businesses you truly believe you could help? Remember that work is a two-way deal. There are millions of small businesses with crappy technology. If you explain to them specifically how their business will improve from employing you to improve their technology, they'll listen.
lukaszkups 5 hours ago 0 replies      
I had similar problem while ago. I've decided to leave my previous workplace and search for a new one full-time.

I was applying to both remote and office-based offers, but only in my location (which suffers from lack of good job offers currently-most of them are dedicated for students with low payment).

It took me 2months to finally land in a new workplace)and it is remote which was my very dream form of working-I've done some remote freelance in the past and loved it)

I've applied to dozen job offers, most from LinkedIn, some from remote portals mentioned by other users in this thread.

In the end I've got a job from a job offer that was on stackoverflow, so maybe check there because I don't see anyone mentioned this as a source of job offers.

Keep on trying, as You can see it won't magically come to You without any action. Good luck!

eldavido 9 hours ago 0 replies      
I work with hotels. They face the same problem (how to get customers). There are basically two approaches: either pay someone a commission, or build a brand.

Building a brand is hard, it takes a long time, but it's worth a lot and is monetized over time.

Paying someone means accepting you're going to pay 10-15% or whatever price to someone like 10x consulting or some other sort of agency to find you work. This can be the right option if you aren't in it long-term or just plain don't want the hassle of brand-building.

Uptrenda 8 hours ago 0 replies      
I don't know how helpful this will be OP: but thinking about problems in your domain and writing about your solutions is a good way to establish competence. It's the difference between organic leads vs active advertising. The former has the client coming to you and the latter has you chasing the client.

Which of these do you think works the best? In my experience its the former by far (all of the people who have sought me out had the most reasonable and interesting project.) But I do understand that in the beginning you're going to have to grind to get anywhere (share your work where ever you can) which means putting in A LOT of unpaid hours doing research and development for new stuff. It's worth it though.

If you keep working on your portfolio and learning new skills then you will never have to look for work again. Just think of the security that would bring: To know that if anything happened to the company you're working for (or you get fired) you can sign a new contract the very same day. Would be amazing for most devs... But in my experience this can only happen if you specialise.

The problem is, there is too much competition for the skills you listed. As an example, if you were to learn some skills in say - big data or AI then you would be much more competitive. I know that's a big ask but one thing I think is true about the tech industry is that anyone can succeed if they put in the effort. In the end its a meritocracy, so the good developers quickly go to the top and the bad ones are weeded out... Remember companies ARE looking for good developers all the time, you just have to make yourself heard and do something worth showing (this doesn't necessarily mean applying to a company. Get creative. There are a lot of ways to stand out)

Good luck OP

Overtonwindow 14 hours ago 0 replies      
I am in the same boat, albeit a completely different field, still it might help. Have you considered becoming a news and information resource for nonprofits, trade associations, and small businesses? I am a lobbyist and grassroots advocacy manager. I work from home, have no network, and limited ability to do so. I stumbled on to some schools that were interested in public policy, and laws. I rang one of them up and offered to monitor the law and legislation for them, and let them know when things came up that they might find interesting. Very low price, about a grand a month. That one school told someone else, and now I've got four schools. Just enough to pay the bills and eek by. I focused on keeping the price way down to entice people, make it up in volume.
thibaut_barrere 13 hours ago 0 replies      
This will not help the OP immediately, but for anyone to avoid this situation in the first place, there are a number of techniques (some quite easy) that can help, described in this article I wrote:


More short term, I would definitely try to find a single gig, maybe via some subcontracting or via sites like toptal, just to build some runway and to make sure the techniques described above have enough time to bear fruit.

noufalibrahim 7 hours ago 0 replies      
There are several suggestions on how you can get an immediate gig here.

I have something else to add. Once you do get a gig and start on it, budget some time and money to grow your network. There's no real substitute for a real circle of influential and well connected contacts in my experience. Perhaps attend conferences related to technologies that you're interested in, participate on online fora (mailing lists, stack overflow etc.) to help people with their problems in exchange for visibility, get a linkedIN profile, go to local user group meetups (or atleast attend nearby ones less frequently if you're in a city that doesn't have many such groups).

Good luck!

tomcam 13 hours ago 0 replies      
You know how to develop iOS apps. Can you think of any company that has an iOS app you could do better? How about contacting them with suggestions and a gallery showing the apps that you have already written
elektor 14 hours ago 1 reply      

I've had a few coding tasks completed by Redditors on this subreddit.

edem 2 hours ago 0 replies      
Maybe you want to try [teamed.io](http://teamed.io).
rrherr 9 hours ago 0 replies      
You could be a mentor in an online bootcamp. For example: https://www.thinkful.com/apply/

It's flexible part-time remote work, and you don't have to find clients yourself.

navya1089 5 hours ago 0 replies      

I would suggest you to have a LinkedIn profile and update it regularly and start building the network now.. It is never too late.Meanwhile, for the job which you cannot wait for, there are many remote job portals like remoteok , weworkremotely , remote.co ,remotive, workingnomads, WFH.IO ,dribble etc which you can try .. But I would suggest you check angellist (angel.co) which offers jobs from mainly startups all over the world.

Another tip : Apply to local companies which are offering full time jobs , attend the interview and try to convince them to offer you a work from home based role ( It might work out, you never know).

Hope you find a suitabLe job real soon.

All the best ! :)

Mz 14 hours ago 3 replies      
Potential alternative to Upwork that sounds better:http://gigworks.blogspot.com/2017/04/moonlight-work-for-soft...
notfried 14 hours ago 1 reply      
Many years ago I did just that on Elance (now Upwork) and RentACoder (now Freelancer.com). I started with a couple of jobs in below the $100, then some below the $1,000, and then some in the low thousands. Striving for excellent ratings is key.
mitchellbryson 10 hours ago 0 replies      
I used to search for freelance gigs amongst the remote/full-time job boards. I wrote about it here with some of the list: https://medium.com/webuildevery-com/find-5-freelance-design-...
atemerev 13 hours ago 1 reply      
One advice: you promised to make messages on affluentconfidante public at July 17th, but you didn't. I understand that there are still no messages there ;) But you need to do something about it. Maybe postpone the date. [I know the hunger and trying the get-rich-quick ideas; used to do it myself all the time].

Meanwhile -- can you do canvas/d3/realtime charting type of stuff?

jfmandroid 14 hours ago 3 replies      
Try https://toptal.com

Once you pass their screening process, you will get jobs in one or two weeks

imnotlost 14 hours ago 0 replies      
How about contacting a consulting agency such as http://www.tripleco.com/find-tech-jobs/ or similar agencies?
MarkMc 6 hours ago 0 replies      
What shady things does UpWork do?
kevinburke 7 hours ago 0 replies      
I write a lot and post the results to places with lots of visitors, and I watch the job board in a few different Slack channels and reach out to people seeking help.
bdcravens 9 hours ago 0 replies      
Codementor/HackHands seem to be good options.
throwawayxyz709 8 hours ago 0 replies      
The internet?
Ask HN: What books had the greatest effect on how you structure your code?
236 points by rufugee  16 hours ago   119 comments top 52
troels 4 hours ago 0 replies      
"Patterns of Enterprise Application Architecture" by Martin Fowler made a big difference for me at the time. Also, "Domain Driven Design" by Eric Evans. Both have a focus on high level architecture.

Of books that are more on the craft of programming, "Refactoring" (Also Fowler) is good. And I enjoyed "Practical Common Lisp" by Peter Seibel too.

In general, I suspect that the value of a book has more to do with where the reader is, than where the book is.

DanHulton 15 hours ago 2 replies      
Code Complete, Steve McConnell.http://www.stevemcconnell.com/cc.htm

One of the best books on programming style and function, backed up with actual research for the recommendations.

numbsafari 1 hour ago 0 replies      
Writing Basic Adventure Programs for the TRS-80. [1]

It contains this gem [2], which is pretty much how every program works. I occasionally riff off this diagram for work as an inside joke with myself.

1: http://www.trs-80.org/writing-basic-adventure-programs-for-t...

2: https://imgur.com/gallery/Vz63D

BJanecke 2 hours ago 3 replies      
* Douglas Hofstadter - Gdel, Escher, Bach: an Eternal Golden Braid

* Fred Brooks - Design Of Design

* Fred Brooks - The Mythical Man month

* Eric J. Evans - Domain Driven Design

* Design Patterns: Elements of Reusable Object-Oriented Software

* Kent Beck - Extreme Programming Explained

* Kent Beck - Planning Extreme Programming

* Michael C. Feathers - Working Effectively with Legacy Code

* Daniel Kahneman - Thinking, Fast and Slow

[EDIT] Correct the author for legacy code

danso 14 hours ago 2 replies      
Of lesser-known books, Avdi Grimm's "Confident Ruby": http://www.confidentruby.com/

Learning Ruby itself was a huge influence to me; hadn't considered that a language should be designed to make programmers "happy", as Matz said. "Confident Ruby" was one of several books that had this human-happiness focus. "Confident" is broken down into patterns, many of which can be found in books like Sandi Metz's POODR, but as a semi-experienced programmer, Grimm's way of writing really appealed to me.

Even the title of the book itself was revelatory to me. The idea that the functions and methods and conventions we create should be rooted in a "confident" mentality (such as the old adage of being promiscuous in what a function accepts, and strict in what it returns) really improved the way I designed code. Not just in terms of technical proficiency, but with less cognitive burden, which ultimately leads to the elegant simplicity we desire in our work.

jjjjjosh 13 hours ago 2 replies      
Hands-down, Practical Object-Oriented Design in Ruby (http://www.poodr.com/) - some of it I don't agree with but it's all wonderfully put-together: clear and concise, with wonderful examples. Much more about OO design than Ruby, non-Rubyists will get 98% of the value out of it that Rubyists would.
abecedarius 14 hours ago 2 replies      
Thinking Forth; Software Tools; SICP; Abstraction and Specification in Program Development; Essentials of Programming Languages; Paradigms of AI Programming; I'd like to list something about OO too, but no book I know really measures up to learning from other programmers. But there's Mark S. Miller's thesis Robust Composition.

(in roughly chronological order. As you can see from the chronology, it took me a long time to start to like OOP.)

jcmoscon 14 hours ago 2 replies      
On LISP, by Paul Graham. LISP was the second language I learned in college, but only after 6 years programming Java and C# that I came back and really learned LISP. It was when I realized that I was doing everything wrong. For example design patterns exists because OO has serious problems that we don't find in a functional programming language and you only see this when you understand both paradigms.
butlersean 14 hours ago 1 reply      
Refactoring: Improving the Design of Existing Code

After reading I began to think about programming as an algebraic transformation from one system to another, in doing so radically reduced the amount of errors I made.

ransom1538 1 hour ago 0 replies      
Classic essay on unmaintainable-code.


leksak 8 hours ago 0 replies      
Game Programming Patterns - without a doubt. Own it in print, but usually only read it online. To me it's a more exciting read than the GoF book


Jtsummers 15 hours ago 0 replies      
Literate Programming, Knuth. My methods have evolved since I first read and started toying with the ideas here, but this is where it started.


oulu2006 4 hours ago 0 replies      
MithrilTuxedo 8 hours ago 1 reply      
Clean Code by Robert C. Martin

This helped me break my analysis paralysis when it came to figuring out how to organize my code.

ztjio 13 hours ago 0 replies      
It surprised me just how huge the impact was of reading about Flow-based Programming years ago (J Paul Morrison's book, though, his site is probably a sufficient substitute http://www.jpaulmorrison.com/fbp/)

Of course, in recent times, it has become all that much more relevant to me as I began working in data science/engineering space. Even though it's not specifically about code structure for a particular language, it addresses a common flaw in most programming approaches that seem to treat all functionality as a servant of the current context which is strange and silly and not how anything works in physical information processing so why do it in code?

A somewhat common pattern that maps well to FBP is "Railway Oriented Programming." Though FBP in full takes this well beyond simply shooting errors along in sideband to the happy path.

pjc50 3 hours ago 0 replies      
Very old, but "C traps and pitfalls": http://www.goodreads.com/book/show/706807.C_Traps_and_Pitfal...

It's essentially a list of anti-patterns to avoid. But crucial to it is the idea of clarity and avoiding misinterpretation by either human or compiler.

oneeyedpigeon 14 hours ago 0 replies      
The Art of Unix Programming, Eric S. Raymond. http://www.catb.org/esr/writings/taoup/html/

I'm still trying to achieve everything he advocates, but what I've managed so far has been extremely beneficial.

gnaritas 14 hours ago 0 replies      
Smalltalk Best Practice Patterns by Kent Beck.Refactoring by Martin Fowler. Design Patterns by the Gang of Four. Domain Driven Design by Eric Evans.
dcw303 12 hours ago 2 replies      
For C#, Framework Design Guidelines by Cwalina & Abrams. Very clear and concise pointers for well structured and easy to read code. It's a little out of date now though, wish they'd update it to a third edition.
d0m 13 hours ago 0 replies      
SICP made the biggest difference; it really changed the way I approach mutability and state management in everything I write (To name just this).
doubleunplussed 14 hours ago 0 replies      
Not a book, but the game spacechem [1] made all my code start being more influenced by the actor model [2] without me really realising it.

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

[2] https://en.wikipedia.org/wiki/Actor_model

anentropic 54 minutes ago 1 reply      
Does anyone else here never read programming books?
fusiongyro 13 hours ago 0 replies      
A Mentoring Course in Smalltalk[0]. I was really surprised, after reading and really loving Design Patterns, that there was still so much to say about OO design.

I did love Design Patterns a lot though. Purely Functional Data Structures by Chris Okasaki was also really useful for Haskell, as was Real World Haskell.

Programming Prolog probably had a bigger influence on my Prolog than the other books, even though I read Art of Prolog and Prolog Programming in Depth first. Especially the latest edition, it's a really beautiful book.

[0]: http://www.lulu.com/us/en/shop/andres-valloud/a-mentoring-co...

davidmoffatt 13 hours ago 0 replies      
The Little Lisper by Dan Friedman. It is probably 30 years out of publication but I pulled it off of my shelf the other day, reread it, and the next day I noticed that my code had improved. It is a quick read, nothing earth shattering, but you will be amazed by what you have forgotten.
e12e 11 hours ago 0 replies      
Probably the book that surprised me the most, was "Designing Active Server Pages" by Scott Mitchell[1] - bought for next to nothing in a sale clearing out old titles. I don't really program in VBscript or on the .net platform - but the book demonstrates how much improvement it is possible to get in a server-side template language (eg: like PHP, ColdFusion) with a bit of mindfulness to how code is structured.

I'm not sure I would recommend it today, but at the time I read it, in the mid 2000s, it did change my view on these "unmaintainable" technology stacks. I later came across the fusebox architecture/pattern, originally from ColdFusion - and realized that many PHP programmers had skipped some history, ending up reinventing code structure, sometimes badly.

Note that fusebox has grown and changed, I'm mostly talking about the fundamental ideas, and I don't think the later "port" to using XML was a very elegant or good idea. For those interested, see:

https://en.wikipedia.org/wiki/Fusebox_(programming)#Fusebox_... and most of the rest of that page.

[1] http://shop.oreilly.com/product/9780596000448.do

gt_ 15 hours ago 3 replies      
As a programmer in training who has both Clean Code and Code Complete in a queue on the edge of my desk, I'm following this thread to decide which goes first, or if they both get sold in mint condition.
Adamantcheese 12 hours ago 1 reply      
How To Write Unmaintainable Code by Roedy Green.

The best way to write better code is to avoid writing it badly in the first place. But you need to know how to write bad code to write code better than it. Definitely a different way of learning how to write good code, also a good laugh for anyone in industry.

robinphilip1989 2 hours ago 0 replies      
Head First Design Patterns by Eric FreemanDesign patterns by GoF Code Complete by Steve McConnel
lj3 15 hours ago 0 replies      
Practical UML Statecharts in C/C++: Event-Driven Programming for Embedded Systems by Miro Samek.


cutler 14 hours ago 1 reply      
Clojure Applied by Ben Vandergrift and Alex Miller. That and Rich Hickey's Greatest Hits (https://changelog.com/posts/rich-hickeys-greatest-hits).
tomjakubowski 7 hours ago 0 replies      
"The Practice of Programming" by Kernighan & Pike, especially chapters 3, 4, 8 and 9.


CalRobert 3 hours ago 0 replies      
Javascript: The Good Parts
mhh__ 15 hours ago 0 replies      
Alexandrescu's Modern C++ design taught me how to template properly.

Also, Scott Meyers's books were very helpful.

The design of the D standard library has also been very influential on my code (Mainly convincing me of the benefits of ranges over iterator)

fernly 8 hours ago 0 replies      
Jon Bentley, _Writing Efficient Programs_ and Kernighan & Ritchie's _C Programming Language_.
breck 15 hours ago 0 replies      
Clean Code
_Codemonkeyism 2 hours ago 0 replies      
"Implementation Patterns"
chrismealy 13 hours ago 0 replies      
Kent Beck'a Smalltalk book. I've never used Smalltalk but it transfers to any dynamic OOP language. (It also used to be $25, yikes what happened?)
InclinedPlane 14 hours ago 0 replies      
Refactoring. If I could shove that book down every coder's throat in the world I would. Or, if I could even just get them to use extract method like ... half the times they should I'd consider that to be a major historical achievement.
chvid 3 hours ago 0 replies      
The Life-Changing Magic of Tidying Up by Marie Kondo
enriquto 2 hours ago 0 replies      
all modern programming books are footnotes to Kernighan and Ritchie
marvel_boy 14 hours ago 0 replies      
nlawalker 10 hours ago 0 replies      
Dependency Injection in .NET by Mark Seemann was the trigger that started my transition from someone basically writing "script spaghetti" in an OO language to someone that could actually decompose a conceptual set of processes into decoupled parts and assemble a software system from them.

It came along at just the right moment in my career, when I was struggling to understand how I could build things in a more elegant way. I picked up the book thinking I was going to learn about some esoteric design pattern, and came away with a much better understanding of the languages I was using and all of the other design patterns I thought I had learned about previously. It's clear, concise, and focuses on concepts over specific tools and libraries, but most importantly it's practical - it has real, practical code examples and explains how to actually build an object-oriented system. It's such a stark contrast with most presentations I've seen of the Gang of Four patterns and of SOLID, which usually come with really weak examples that aren't helpful or motivational.

Everything snowballed from there. I started using composition a lot more than inheritance, I started identifying problems with side effects and eliminating them, I started writing real unit tests, I was able to better critique other peoples' code. I felt like I was finally using the tools available to me in the way they were supposed to be used.

What's funny and satisfying to me is following the author's blog and seeing that he has since moved on to focus primarily on F# and functional programming, which I naturally started to do myself after more practice with the concepts in his book. Once you start decoupling things well, and you've built a few systems big enough that you have trouble finding the actual implementation of your IWhatever and an AbstractSingletonProxyFactoryBean actually does solve your problem pretty well even as you realize the insanity of it, the encapsulating borders of classes and the need to assign everything to a noun start to feel more like a hindrance rather than a guide.

That said, I still think that most of the world's code written in object-oriented languages would be better off if everyone using them had brief, practical training to understand the value of specifying the behavior of an object through the interfaces it depends on, giving it other objects that implement those interfaces right when you create it, and doing all that creation up front (or specifying other objects that can defer that creation to later). I still see so much C# code from developers at all levels who clearly create classes only because the language offers it and it seems like the right thing to do, randomly jamming methods and fields into classes with names vaguely related to the domain, calling static methods to access databases and external services, and proudly adding unit tests for their one loose little function that mushes strings together. I push this book as hard as I can on junior devs.

frik 7 hours ago 0 replies      
JavaScript, the Good Parts
gaius 2 hours ago 0 replies      
Alice in Wonderland
nichochar 14 hours ago 0 replies      
The pragmatic programmer
ertucetin 2 hours ago 0 replies      
Joy Of Clojure
weishigoname 7 hours ago 0 replies      
for me, there is no special book effect my code style, the greatest effect is read source code of projects I am interested in.
rurban 15 hours ago 0 replies      
Kenji 13 hours ago 0 replies      
Digital Design and Computer Architecture (Harris & Harris)

Why? Because we software engineers can learn a lot from the hardware guys. Almost every piece of software I write these days contains some finite state machines (technically, every program is a finite state machine, where the binary string that makes up all your variables at a given point in time is one state, that insight alone is valuable, but I mean with explicit states in the code) - in fact, they often make up the core structure and uphold some strong invariants that make reasoning about the code simpler. And if one finite state machine does not do it, then you can nest them and keep all the benefits.

hardlianotion 13 hours ago 0 replies      
Scott Meyers Effective C++
miguelrochefort 13 hours ago 8 replies      
Are books still state of the art in 2017?

I would assume all the best knowledge could be found online for free by now.

__s 14 hours ago 0 replies      
Ask HN: HNers who got their Show HNs on homepage, how is your site doing now?
252 points by superasn  20 hours ago   172 comments top 72
bwang29 19 hours ago 11 replies      
Submitted my Show HN 1075 days ago (https://photoeditor.polarr.co/), for a WebGL photo editing tool, now has turned into a startup with more than 10M users.
gnicholas 13 hours ago 5 replies      
I did a Show HN back when I was still a full-time corporate lawyer, and BeeLine Reader was just my side project. Much to my surprise, my post garnered over 700 points and was at #1 for the better part of a day. A HN-ranking site had it as the 9th-most popular Show HN ever, at the time (2013).

Almost four years later, we've raised a couple hundred thousand in equity and grants (mostly the latter, happily), and I'm working full-time on it. Equity is from Intel Capital and grant awards are from Stanford, The Tech Museum of Innovation, and NewSchools Venture Fund (a nonprofit backed by various SV family offices).

I will say that there is lots of luck in where posts end up. My second post about BeeLine Reader when we released our Chrome extension hardly got any attention. This was a big surprise, given how popular the (very alpha-version) bookmarklet had been.

original post: https://news.ycombinator.com/item?id=6335784

current website: http://www.beelinereader.com


We're looking for a rails dev and a dev with PDF experience, BTW! Email developers@ ..

rwieruch 16 hours ago 1 reply      
222 Days Ago - Show HN: The Road to learn React Build a Hacker News App on the Way [0]

The book [1] was downloaded by 9600+ people by now. It is an open source book that gets continuously improved. You build an React.js application along the way and transition smoothly from JavaScript ES5 to JavaScript ES6. It teaches the fundamentals of React without any tooling or Redux. Afterward you are ready to go to build your own React applications.

I must say I never expected this amazing reaction from the community.

- [0] https://news.ycombinator.com/item?id=13170837

- [1] https://www.robinwieruch.de/the-road-to-learn-react/

jastr 17 hours ago 2 replies      
CSV Explorer, 4 months ago (https://news.ycombinator.com/item?id=14043527). It's a tool to open CSVs that are too big for Excel. It hit the homepage, but many comments were "I would never trust my data in the cloud" or "Why doesn't everyone use Python/Pandas/SQL".

Paying customers now include consultants, journalists, realtors, insurance companies, and others! There are few developers who use it because it saves them time, but they're the exception.

jboggan 12 hours ago 0 replies      
3 years ago I tried to launch my Bitcoin options trading platform (or at least the paper-trading version of it) with a Show HN post which did briefly reach the front page. I got 0 signups and mostly a lot of comments about how the landing page was so ugly and using an outdated Bootstrap that they wouldn't consider using it. As a backend dev that was a revelatory experience and I appreciated the honest feedback after my hurt feelings recovered.
bbx 19 hours ago 6 replies      
I had 3 of my "Show HN" hit the front page. I have stats about 2 of them. They had a huge spike at the start, but the current traffic is more correlated with SEO and backlinks rather than the initial influx of visitors.

My actual most visited website is one that has hit the front page, but not because of my "Show HN".

[1] http://jgthms.com/web-design-in-4-minutes/

[2] http://cssreference.io/

[3] http://htmlreference.io/

[4] http://bulma.io/

sytse 5 hours ago 1 reply      
Did an ask HN in 2012 https://news.ycombinator.com/item?id=4428278 Now GitLab is a 170 people company https://about.gitlab.com/history/
gkoberger 18 hours ago 4 replies      
Great! I launched ReadMe 2.5 years ago as a Show HN (https://news.ycombinator.com/item?id=8422408), then did a Product Hunt launch (https://blog.readme.io/product-hunter-becomes-the-hunted/), and got into YC a few weeks later. Having a good launch was something we could point VCs to.

We got some awesome customers (including some big names) from our HN launch, and it kickstarted out growth. If I remember correctly, we finished out the week at about $4k MRR... nothing compared to now, but at the time it felt awesome to be making money.

We've come a long way since then, but our Show HN was a great way to kick things off!

errozero 16 hours ago 2 replies      
I submitted my Acid Machine site in 2015, it's a web based synth and drum machine app. I didn't expect much to happen, just wanted to get a bit of feedback. It ended up featuring on a few high profile music sites and for the next week it got 70,000 users a day. I didn't post it anywhere else so it all originated from HN in some way.

Since then I have released version 2 which has the ability to add fx to the instruments, use MIDI devices and lots more. It gets a few sales a week with traffic still coming from those music sites.


espitia 16 hours ago 1 reply      
1124 days ago I submitted my first app - Habit Streaks.

Over time I got 60k+ downloads and sold it for $8.5k :)!

Original link: https://news.ycombinator.com/item?id=7950866Story: http://www.germanespitia.com/habit-streaks

westoncb 19 hours ago 3 replies      
I messed up my wrists from typing/mousing too much a number of years ago, so I spent a couple years working at a grocery store while building a new kind of text editor meant for efficiently writing code with motion sensors (e.g. Leap Motion, Kinect). It made it to the front page here, which was an interesting experience, but my end game with the project was basically, "get far enough, post to HN and the world will see how cool this is, and somehow you'll be able to continue working on it"and that did not materialize.

Project: http://symbolflux.com/projects/tiledtext [video]

Original Show HN: https://news.ycombinator.com/item?id=5306155

daveid 12 hours ago 0 replies      
Mastodon first got on the frontpage 292 days ago, then a second time 203 days ago (https://joinmastodon.org). Federated network now more than 2,000 servers, 720,000 users, GitHub repository closing in on 10k stars. Pretty happy with that!
bharani_m 5 hours ago 0 replies      
I did a Show HN for Resumonk back in 2012: https://news.ycombinator.com/item?id=3934370

I was in college then and found making a well formatted resume a huge pain when I was applying for internships. I met my Co-Founder also via that particular post, and went full time on it after passing out of college.

We are bootstrapped, pay ourselves well and work remotely. Not sure if that qualifies as a 'big' success, but we receive these kind of comments from our users that make us super happy - https://www.resumonk.com/testimonials

endymi0n 16 hours ago 0 replies      
899 days ago - Show HN: JustWatch Choose your favorite streaming providers and see whats new

By now largest streaming search engine in the world at Alexa/Similarweb Top ~#4700 global with around 12 million unique visits per month. Not too shabby all around.

Launch post: https://news.ycombinator.com/item?id=9005641

archildress 19 hours ago 0 replies      
A project I'm working on, Gridmaster, hit the frontpage of HN back in November. The traffic and mailing list signups were nice, but the product feedback we got was way more valuable.

It helped us realize that a web-based version of our "CodeAcademy for Excel" product wasn't going to cut it. We built an integrated version that actually lives inside of Excel and won a contest with Microsoft.

I talk a little more about what happened here:


mxstbr 12 hours ago 1 reply      
While not technically a "Show HN", 576 days ago @tilt submitted my react-boilerplate to HN. (https://news.ycombinator.com/item?id=10794502) The submission garnered a bunch of votes and was on the frontpage for a good 20 hours.

The project went from 50 to 550 stars overnight, eventually reaching 3,000-something stars when the hype died down. (it's now at ~14,500 stars and growing)

That submission kickstarted my career. Among other things it led to me speaking at over 20 international conferences, to being featured in Forbes Austria and to the privilege of being employed as a full-time open source developer. (which eventually led to the creation of styled-components)

I wrote a bit more about my journey on my blog a while ago too in case you want the longer version: https://mxstbr.blog/2016/12/a-dream-come-true/

It's been an awesome ride and I wouldn't be where I am without HN!

welder 18 hours ago 1 reply      
Project 1: https://wakatime.com/

Show HN Link: https://news.ycombinator.com/item?id=6046227

Status: Still growing, almost 100k users, vibrant leaderboards

Project 2: CLMapper Chrome Extension (https://chrome.google.com/webstore/detail/clmapper/omonmigal...)

Show HN Link: https://news.ycombinator.com/item?id=4324884

Status: Unmaintained. Reached peak of over 4k users, now under 2k and decreasing

oldboyFX 16 hours ago 1 reply      
995 Days Ago - Show HN: A database for browsing and discovering movies (https://news.ycombinator.com/item?id=8547351)

It was on the homepage for around 24 hours I think. We had ~500,000 unique sessions during the first month after the launch. Hacker News played a big part in that.

We stopped actively working on the project, but it's still being used by more than 100,000 people every month.

I wrote a little case study about the whole thing here - http://codetree.co/case-studies/movieo

Jack000 14 hours ago 1 reply      
(oldest first):






A few of them rank on google and get consistent traffic. There's definitely a lot of randomness in getting to the front page. If I were to do it again I think I'd collect emails or have some kind of plan for the traffic.

jblok 15 hours ago 0 replies      
186 days ago I posted my app Dongle Daddy - https://news.ycombinator.com/item?id=13434787

On this day, it was also featured on Product Hunt and The Next Web leading to around 30k uniques across 2 days. Traffic is now nothing like that unfortunately.

One nice upside is that when I launched, it was picked up by a manager at BT Shop, a fairly large online electronics store in the UK, and I have released a variant of the app which uses their own affiliate scheme and branding. They've integrated this into one of their category pages at https://www.shop.bt.com/category/cables-and-adapters,cables/....

meagher 11 hours ago 0 replies      
Notational, a notes app built with Vue.js. (https://news.ycombinator.com/item?id=14409760) 61 days ago

Response was great: lots of sign ups and feedback, but I haven't had time to do anything. Started a new job and moved cities. Everything is open-sourced if anyone wants to take a crack: https://github.com/tmm/notational

Scirra_Tom 18 hours ago 1 reply      
Construct 3 - Game editor in the browser:



Subscribers increasing slowly but steadily. ShowHN didn't lead to any direct sales as far as our reporting shows but doing a "ShowHN" is something of an internal milestone for us and the comments have been interesting a good motivational boost. Hopefully have more to Show HN in the future!

sv123 18 hours ago 0 replies      
My show HN was posted 2555 days ago (https://news.ycombinator.com/item?id=1548584), roughly one month after the site was launched.

Led to a large traffic spike, and attention from a company that would acquire it roughly 18 months later. The team has grown from 3 to 100+, with over 1m registered users. Although the domain has changed and it looks like nobody bothered to keep the original registered ()

titel 17 hours ago 5 replies      
Submitted a Show HN two days ago: https://news.ycombinator.com/item?id=14822897

Not even one upvote though. Do any of these posts get on the homepage organically?

LE: 2nd (and last) try: https://news.ycombinator.com/item?id=14841172

makaimc 19 hours ago 1 reply      
My open source side project Full Stack Python (https://www.fullstackpython.com/) hit front page over July 4th weekend in 2014 (https://news.ycombinator.com/item?id=7985692). I've continued to write and grow the site from ~5k users per month to over 100k/month now.

The traffic bump and feedback was motivating and helpful to know I was on the right track with my content. I also learned there are some comments you just need to ignore and focus on your own vision :)

edit: my traffic was lower than I originally remembered, it was ~5k per month, not 25k in mid-2014

peterburkimsher 6 hours ago 0 replies      
Project: https://pingtype.github.io

Show HN Links: https://news.ycombinator.com/submitted?id=peterburkimsher

Summary: Chinese-English word-for-word translator for education.

Result: 16 points, 4 comments, still no idea how to market it.

jventura 14 hours ago 1 reply      
I submitted a Show HN a month and a half ago (https://news.ycombinator.com/item?id=14537247), and altough I got some initial visits (some 500 users), it has dropped to nearly zero lately. Here's how the analytics curve looks like: https://s2.postimg.org/6z9gmo8bt/Captura_de_ecra_2017-07-24_...

Basically, I've built this simple project to see if there was any commercial interest in building rest apis using mock data, and I am almost certain that the answer is no - which is fine by me, i'm waiting for the next idea.. :)

Edit: By the way, besides simple SEO with google, I haven't bothered doing any marketing at all with this project, because I'm being mostly lazy, also because if the idea was any good, it should (hopefully) had success initially, and also because I suck at marketing..

rsoto 17 hours ago 0 replies      
Not exactly the home page, but PullToRefresh.js[1] was on HN's front page last december and since we've basically doubled our traffic, altough sales haven't been affected by it, since we are offering a product only for Mexico.

Besides the traffic increase, the repo trended on Github and now we have +1,400 stars.

1: https://www.boxfactura.com/pulltorefresh.js/

wheresvic1 16 hours ago 1 reply      
I recently had my Show HN make it to the front page: https://ewolo.fitness/

It was up for a nice 24 hours and while I got a huge amount of traffic (10,000 page views) it resulted in only 100 accounts.

I'm not giving up though - I'm still constantly improving it and it has come quite far since the first Show HN version :)

llamataboot 17 hours ago 0 replies      
My very first side project, a real-time API for the World Cup built on a scraper, went to the frontpage. Obviously it hasn't seen as much traffic since then as it was a very time limited thing, but it was fun to have a side project on the front page.


I submitted a Show HN the other day for a natural language chatbot that gives harm reduction info about drugs and it pretty much went nowhere fast. Got way more traffic from being on the front page of reddit r/drugs (and arguably a more useful demographic)


To the people asking, I definitely think there is a high amount of luck getting anything on the front page of HN. Just has to be right time, right place, but it's inspiring to read about people who have seen their businesses launch, in part, from that brief exposure.

taxicabjesus 18 hours ago 0 replies      
Show HN: Taxi Wars Stories from the front line - https://news.ycombinator.com/item?id=12193273 (359 days ago - HN submission links directly to http://taxiwars.org/)

tl/dr: HN provided a nice boost, but websites don't grow if you don't feed them.

Backstory: ~5 years ago I started driving a taxi, for fun & adventure & freedom. And to support myself, while trying to figure out how to finish recovering from a head injury [1]. After 8 days I made an account on kuro5hin.org (k5) & started blogging about my experiences.

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

At first I was just trolling k5 user "Zombie Jesus Christ", who had grand ambitions to help people, but was handicapped by a history of mercury poisoning -> mental illness. My point in being 'TaxiCabJesus' on k5 was to show that it's the little things that count. After a 3.5 years I'd learned a lot about what people actually experience (which I hadn't appreciated due to my upper-middle-class upbringing), and was forced into retiring from the taxi driving gig...

One day kuro5hin.org went away. K5's absentee founder Rusty hadn't prepared for a datacenter move, and the site was lost. I posted in HN submission RIP kuro5hin that my story "Electronic Taxi Dispatch, v1.0" was last to post [2], and one of you responded that you appreciated my k5 submissions & encouraged me to re-post them at a site of my own.

[2] https://news.ycombinator.com/item?id=11609802

I still intend to write a Taxi Wars trilogy: A New Hope, The Vultures Strike Back, and Return of the Drivers. I also have some other stories to tell. Retrospectively I realized that I was learning about the various 'predicaments' that people find themselves experiencing. Draft titles include:

The Predicament of 'old people' / Ordinary Rendition: The Public Servants' Quagmire / the predicaments of doctors and patients

I joined Toastmasters several months ago. Recently I gave a speech that's based the 'predicaments of doctors and patients'. It went over pretty well, which was motivation to work on my little site...

eerikkivistik 5 hours ago 0 replies      
Submitted https://3dc.io (a simple cross-platform 3d design tool) about 2 months ago, got a massive spike in traffic, that lasted for about 2-3 days. In addition we got some good and thorough feedback from the community. https://news.ycombinator.com/item?id=14360921
mmathias 16 hours ago 0 replies      
My project "UrlRoulette" was on the HN homepage for about 24 hours. I received a huge traffic spike at the start. Since then traffic came from other sources such as Reddit, some blog posts and articles that were written - and of course some search engines. After being on HN, UrlRoulette was featured in the german C'T magazine and received a lot of traffic from their website and their print edition. Also, being featured on some more sites certainly helped pushing the site's page rank on Google.

The project: https://urlroulette.net/

I actually wrote a post about being on the HN front page: https://hackernoon.com/urlroulette-24-hours-on-hacker-news-e...

git-pull 17 hours ago 0 replies      
The Tao of tmux (https://leanpub.com/the-tao-of-tmux) gained initial exposure and eventually became highly cited throughout the tmux community.

It's also available to read for free online (https://leanpub.com/the-tao-of-tmux/read).

tmuxp (https://tmuxp.git-pull.com), a tmux session manager, gained over 1k stars over the years.

vcspull (https://vcspull.git-pull.com), a repo sync tool, compare to myrepos. Received a lot of valuable feedback on documentation that I ported to other projects.

adzicg 19 hours ago 1 reply      
Two things my team announced on Show HN appeared on the home page for a day or so.

MindMup (https://www.mindmup.com), an online mind mapping tool appeared in 2013, and got a nice traffic bump that day, it took about two years to reach that level of regular traffic. the site now gets between 400 and 500k visits monthly during busy school periods (seems to be mostly used by educational users), and grows around 5% per month.

ClaudiaJS (https://claudiajs.com) is an open source tool that helps deploy Node.js projects to AWS Lambda and API Gateway easily. Originally built for MindMup, we decided to spin it off as a separate open source tool. It appeared on HN about a year ago, and according to NPM stats now has roughly 85K downloads.

abhas9 19 hours ago 0 replies      
My Show HN (https://news.ycombinator.com/item?id=14782936) made it to the front page 7 days ago and stayed there for a couple of hours. We got 70 downloads and some very good feedback.

We are consistently getting a good rating in Play Store [1] and thanks to HN we now have around 50 daily active users playing 75-100 games. Meanwhile, we are developing the features that were suggested in the comments and we felt are required.

[1] https://play.google.com/store/apps/details?id=com.buildmyvoc... - Two-Player Vocabulary Game

prohor 14 hours ago 0 replies      
6 years ago I submitted cloud computing comparison - https://www.cloudorado.com/ . It has hit first page with 38 comments. There was a nice spike in traffic that I've never seen later but it faded quickly. Now traffic mostly comes from search and some links that popped up here and there. The site is live and provides revenue (but not spectacular; fraction of what I need for living).
stockkid 12 hours ago 0 replies      
I have two sites.

I submitted RemoteBase 400 days ago: https://news.ycombinator.com/item?id=11890991

For the first time, someone paid for something I made from scratch. I wrote about what I learned from this launch: https://sung.io/lessons-from-successfully-launching-remoteba.... I have since gotten a job, and the site sort of stopped making money. But I am still iterating on it.

Also submitted Dnote 100 days ago: https://news.ycombinator.com/item?id=14031649

I pitched it to a live audience shortly after: https://sung.io/pitching-dnote. I never got around making an actual sale.

khc 14 hours ago 0 replies      
Open source project so not quite a "site": submitted goofys (https://github.com/kahing/goofys/) 644 days ago and had 40 upvotes on HN, and from what I recall I had a couple hundred stars on github right after. Now I am approaching 900 stars, a niche community of users, and occasional drive-by contributions.

Compare to catfs (https://github.com/kahing/catfs/) which I recently posted but did not make to front page, and right now it's at 14 stars. I would say both projects have similar audiences comparable in complexity, which would mean front page on HN gave goofys a 20x or so boost in terms of github stars.

Note that the first time I posted goofys it did not make it to front page. @dang emailed me to re-post it and the second time it was boosted to front page.

kamranahmed_se 16 hours ago 1 reply      
I had about five of my submissions hit the front page. All of them were mostly projects on github and articles on my blog. For how they helped me:

- They got me around ~3000 subscribers for hugobots.com which I have been promoting through my repositories (it would have been much more; unfortunately, I forgot to put the link on the first day while the repository was on the first page. I put it on the third day and the emails that I got were mostly from the traffic from the people sharing the post on twitter/facebook/reddit etc)

- One of the project (developer roadmap) got me two sponsors paying me around ~1000$ each every 6 months for just putting their links in the project readme.

- Follower count on my github profile was around ~100 at that time; now it is about 2.3k

- Had been approached for freelancing gigs and was able to make connections.






austincheney 18 hours ago 0 replies      
Project: http://prettydiff.com/guide/unrelated_diff.xhtml

Show HN Link: https://news.ycombinator.com/item?id=13983085

Summary: A new diff algorithm

Result: About 50,000 visits to the web site, which then averaged about 1000 visits a day. Not much repeat traffic from those visits, but the daily traffic is now about 1200 visits a day.

dmjio 19 hours ago 0 replies      
Project: https://haskell-miso.org, https://github.com/dmjio/miso

Synopsis: Elm arch. in Haskell, but supports isomorphic js

Show HN link: https://news.ycombinator.com/item?id=14685677

Status: Still kickin', ~17k views, top 15 repo globally on GH (for a day)

dangrossman 16 hours ago 0 replies      
1. Show HN: HN Replies Get notified of replies to your comments ( http://hnreplies.com )

933 HN users are signed up and have received 38109 email notifications so far.

Comments: https://news.ycombinator.com/item?id=11080539

Stats: https://www.w3counter.com/stats/98986/dashboard


2. Show HN: A date range picker for Twitter Bootstrap ( http://daterangepicker.com )

5-year-old open source code that averages 3000 visits per day and 750 git clones per day.

Comments: https://news.ycombinator.com/item?id=4408070

Stats: https://www.w3counter.com/stats/90840/dashboard

vivekseth 19 hours ago 1 reply      
What kinds of Show HNs are you asking about? What do you mean by how is a site doing?

My Show HN (https://news.ycombinator.com/item?id=14778497) made it to the homepage, but I don't think its what you're asking about. My site is just a personal site with random content so its no different than before my post.

sideshowb 13 hours ago 0 replies      
I didn't call it "Show HN" as was unaware of that protocol at the time, but "Help me check my quantum physics game for accuracy" [1] got a lot of helpful comments on the physics.

Also a lot of complaints over my poor choice of language, and "why don't you open source it, we'll do a JS port". I did. They didn't.

Anyway I don't think it's seen much use since that (mostly positive) experience - if you're willing to download and execute a java app you still can:

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

aml183 19 hours ago 0 replies      
We closed. Company was called Koalah.
Cogbotter 15 hours ago 0 replies      
My attempt at creating realistic images from Gameboy camera pictures[1] got posted by someone else.

I did not notice it, and the traffic brought down my tiny blog with the 25.000 visits I got the next couple of days.

It was a really cool feeling, and I learned what measures to take to keep my self hosted WordPress blog up in these cases. Unfortunately I never needed it afterwards. If someone is interested in a write up, let me know so I can make one.

Since then my blog gets about 40 visits a day. Only a small amount, but it still satisfies me and keeps me writing.


iambrakes 16 hours ago 0 replies      
I released SoundKit (https://soundkit.io), a library of UI sounds a few years back. At the time, there weren't really people marketing sounds for UI, so people were interested in discussing. I learned a lot from the feedback (some good, some bad) and saw a lot of traffic in the first few weeks from it.

I still get a regular stream of traffic now, and there are tons of others making sounds for UI. So, hopefully it helped kickstart that market a little.

I'm in the process of creating a second set of sounds now to try and keep the interest alive.

Original Posthttps://news.ycombinator.com/item?id=8527861

avisk 10 hours ago 0 replies      
I submitted logtrail (https://github.com/sivasamyk/logtrail) 312 days ago (more of a side project of mine) and made it to front page. Got lots of stars :). Helped me boost my confidence and currently has active users and made multiple releases with new features. Happy I did it.
ThomPete 18 hours ago 2 replies      
I submitted 4 which all got on the frontpage.


I still make good money on Ghostnote and is working on new features plus a new SAAS service.


This one is alive but not really active. Around 8K users on a mailing list. If anyone want to take over this project pm me.



This was fun to do but just a project we did for fun.

StriverGuy 18 hours ago 0 replies      

Posted in November 2016. Got a ton of traffic for about three days (~20k users/day). Now DAU is around 10-15. More a side-project type site, never was intended as a business.

garysieling 17 hours ago 0 replies      
My site gets 50-100 users a day (https://www.findlectures.com). I got a ton of great feedback, which I'm slowly working through, e.g. bug reports, requests for more content, and one $20 sponsorship. I've also got a conference talk coming up at a Solr conference in September.

I have just under 900 people signed up for an email list of hand-picked talk recommendations - about 200 of these were from HN, and a couple people sign up every day.

Based on the feedback I got, I'm working on an add-on to send email alerts with talks based on people's interests (if you want in, contact me, I need a few beta users)

nappy 12 hours ago 0 replies      
Made HN when we launched late last Summer- we're doing our first 5k+ unit wholesale orders and have shipped caffeinated toothpaste to thousands of customers.


greenwalls 12 hours ago 0 replies      
Submitted GlassWire https://www.glasswire.com for Windows 1064 days ago. Now we have a new Android app! https://play.google.com/store/apps/details?id=com.glasswire....
twoslide 11 hours ago 0 replies      
On the front page about 1.5 years ago with 2sli.de, my web app for interactive slides:


I got a few hundred sign-ups but not much else; I am still maintaining the site but have not found as much time as I would like to develop it.

cantbecool 18 hours ago 0 replies      
I posted http://moviemagnet.co (movie torrent search engine) awhile back, it was removed from Google search results and still receive a steady 2k+ visitors a day.
leandot 15 hours ago 0 replies      
463 points, 332 days ago submitted http://hackernewsbooks.com

Got ~1500 active subscribers on the newsletter, some web traffic, some passive income, a lot of interesting contacts, met some cool people in Zurich, where I live. Overall, really glad I did it.

Original post here - https://news.ycombinator.com/item?id=12365693

aparks517 13 hours ago 0 replies      
Project: https://getmirrorshades.com

Show HN: https://news.ycombinator.com/item?id=13687353

Summary: Simple web analytics

Result: Lots of great feedback, added about 100 active users

nikivi 17 hours ago 0 replies      
We submitted our search engine a few days ago (https://learn-anything.xyz/) and it has been pretty well received. We got quite a bit of valuable feedback on it which we used in turn to improve the engine.

Here is the HN post :


monokai_nl 14 hours ago 0 replies      
Submitted the new installment of the Monokai syntax highlighting colors for Sublime Text (Monokai Pro) a month ago: https://news.ycombinator.com/item?id=14611823

I got a good spike of traffic from Reddit and Medium, HN a bit less.

krptos 18 hours ago 0 replies      
My Show HN (https://news.ycombinator.com/item?id=13857137) HexoPress earned 200 signups in a span of couple of days.

The traffic spike, remained a spike and didn't continue long. But it gained a few regular users. I run my own blog with HexoPress (http://hexopress.com).

ransom1538 16 hours ago 1 reply      
Submitted a week ago or so: https://www.opendoctor.io/opioid/highest/

When it was first posted it hit front page, then hit reddit, melted my machine. I started moving to static files, but not in time! HN removed it from the homepage.

kermittd 14 hours ago 0 replies      
How meta! I submitted my side project http://www.bookeyes.co/. Though it was simplistic and still is BookEyes was well received. I got feature ideas I'm in the process of implementing.
Lerc 13 hours ago 0 replies      
Mostly when I show things they're just things I made that I put on github. I get github stars.

I think the exchange rate between Github stars and Facebook/Twitter Likes is favourable. Tinder Swipes, not so much.

Not much of a BTC/Github-Star exchange yet.

soheil 16 hours ago 0 replies      
We got netin.co on the front page a few months ago. The post was about hiring a team as opposed to individual candidates. We are still doing well, although don't expect the visibility to have a long term effect. Think of it more as a sugar rush without the crash, no pun intended.
grimmdude 18 hours ago 0 replies      
Submitted MidiWriterJS about a year and a half ago (https://github.com/grimmdude/MidiWriterJS). I think the majority of the stars and usage it gets came because of that.
shykes 11 hours ago 1 reply      
Docker is doing pretty well. It was a HN-only launch.
chuhnk 17 hours ago 0 replies      
Project evolved from a small framework with a couple hundred stars to something now used by a number of billion dollar enterprise companies. Still a long road ahead.


herbst 18 hours ago 0 replies      
I had a few i think. One for example ascii.li which front paged twice. It's just a stupid content site so traffic died again but for a week or more I got thousands of users and plenty backlinks.
mcjiggerlog 17 hours ago 0 replies      
Artpip was on the front page for a while 3 weeks ago [1].

I had around a 30% increase in users and around $500 in sales over the following couple of weeks, which was pretty great.

borski 11 hours ago 0 replies      
Tinfoil Security (https://www.tinfoilsecurity.com) originally started as a Show HN, and hit the front page back then: https://news.ycombinator.com/item?id=2291944

We're doing well, and hiring! :)

dang 17 hours ago 2 replies      
I've been meaning to publish the tips that we send to people who email us asking for Show HN advice. Anybody want to add anything? or see anything incorrect?


Read https://news.ycombinator.com/showhn.html. Point users to something they can try out for themselves. Don't require signups or permissions that aren't obviously needed. Avoid popups. Avoid overly slick website design and (especially) marketing language: HN users tune all that out and in fact it hurts you. Text and text-based layouts are good. Information density is good. Avoid super-large fonts and excessive pictures, they make you look lightweight. Put intellectually interesting details up front. If you're launching a company, corporate branding is fine; otherwise it's a negative, so tune it down.

Add a first comment to the thread with the backstory of how you came to work on this and explaining what's different about it. This tends to seed better discussion.

Make it easy to tell what the product/project is; otherwise the discussion will consist of "I can't tell what this is". Link to any relevant past threads.

Your primary mission is to engage intellectual curiosity. If you try to sell HN readers on your stuff, you'll evoke objections. Engage their curiosity and they will sell themselves.

Mention areas you'd like feedback about or open questions. Surprising or whimsical things that came up during the work are also good--they are unpredictable and that makes them interesting.

A little humor is ok; more than a little feels presumptuous. Don't be chummy, just answer straightforwardly. Don't address other users by their usernames (it's not the convention on HN and feels out of place). Don't introduce yourself more than once.

Don't say nice things about yourself or your work. It invites comeuppance. Instead, be humble or even mildly self-critical; then readers will look for nice things to say, and even when finding fault, won't make as big a deal about it.

Don't ask for upvotes. Our software ignores most promo-votes, plus HN users notice them and get mad. Especially make sure that your friends don't post booster comments or softball questions. HN users sniff that out a mile away and then we have to kill the thread.

Email us a link to your submission when it's up and we might be able to give you some help or make sure it doesn't get flagged.


This originated as advice for YC startups but I always liked the pg/yc tradition of giving the same advice to everybody.

Ask HN: What programming blogs do you follow?
328 points by in9  15 hours ago   61 comments top 49
andythemoron 10 hours ago 0 replies      
Julia Evans' blog is one of my favorites! It was a big inspiration for starting my own blog (https://andythemoron.com). I also love High Scalability and Dan Luu's blog which have been mentioned in other comments.

I "follow" several which are mostly defunct, but in terms of blogs that still feature active updates:

Evan Klitze's blog: lots of topics around Linux, C++, etc. https://eklitzke.org/

Sutter's Mill: lots of "state of the world" for C++, but also context, history, etc. https://herbsutter.com/

IT Hare: C++, game programming http://ithare.com/

The Erlangelist: Erlang/Elixir http://theerlangelist.com/

null program: lots of miscellaneous topics http://nullprogram.com/

Fluent C++: the name speaks for itself http://www.fluentcpp.com/

Another Programmer's Blog: Linux, C, C++, C#, MSSQL https://www.stev.org/

tomcam 13 hours ago 3 replies      
As a nod to HN I confess its front page acts as a wonderful filter. So while I do not follow blogs, I get a really good stuff from here.
Arcsech 14 hours ago 1 reply      
Here's a dump of the "Programming" folder from my RSS reader:

Aphyr's (aka the guy behind the Jepsen distributed system test series): https://aphyr.com/

Fred Herbert, the author of Learn You Some Erlang: http://ferd.ca/

Eevee, who posts a mishmash of stuff about programming in general but these days is mostly focussed on games: https://eev.ee/

Tef/Programming is Terrible, which features strong opinions about programming/programmers: http://programmingisterrible.com

Matt Kline, who posts mainly about low-level stuff and embedded systems: http://bitbashing.io/

Evan Miller, whose blog topics are wide-ranging: http://www.evanmiller.org/

tptacek, who can be seen tirelessly defending common sense in the comments on this very site: https://sockpuppet.org

Sonniesedge, who talks about front-end stuff and the human impact of programming: https://sonniesedge.co.uk/blog/

Carin Meier, who posts most often, but not exclusively, about Clojure: http://gigasquidsoftware.com/

Also Julia Evans, as mentioned in the OP.

lurrr 5 hours ago 0 replies      
I'm actually surprised no one mentioned these two

Eli Bendersky http://eli.thegreenplace.net/Jeff Preshing http://preshing.com/

Entangled 13 hours ago 1 reply      
Not a blog but daily articles from Medium bloggers by language, much better:



adyimpulse 34 minutes ago 0 replies      
https://reprog.wordpress.com/ is a great one i discovered recently.
acemarke 9 hours ago 1 reply      
Wayyyyy too many :)

A few months back I wrote a Reddit comment listing "just" the high-quality React-related blogs that I read : https://www.reddit.com/r/reactjs/comments/5t8loz/what_are_yo... .

I read a lot more besides that. To pick out just a few:

- Scott Hanselman: https://www.hanselman.com/blog/

- Robert O'Callahan: http://robert.ocallahan.org/

- Henrik Warne: https://henrikwarne.com/

- Andrew Wulf ("The Codist"): http://thecodist.com/

- Lin Clark: https://code-cartoons.com/ . (Her actual blog hasn't been updated in a while, but she's also posted many in-depth articles to Mozilla organization blogs over the last few months.)

And while I don't think

theknarf 1 hour ago 0 replies      
Let's see. Often when I find something interesting on HN or Reddit I might see if the author writes other interesting posts and subscribe to their blog on Feedly. I currently have a few hundred sources that I subscribe to so it might be a bit hard for me to choose which "blogs" I'd promote. But there are some:

- https://blog.codinghorror.com/

- http://www.pentadact.com/

- http://procworld.blogspot.no/

- https://moviecode.tumblr.com/

- http://hackaday.com/

- https://research.googleblog.com/

- https://gpuofthebrain.com/

- https://xkcd.com/

- http://oglaf.com/

This is an almost random selection of some of the blogs that I subscribe to.

ryanschneider 14 hours ago 0 replies      
Mike Ash has started posting again after a long hiatus:


The URL is very misleading, his blog is about Objective-C (and now Swift) internals, in a very loose way like an "Old New Thing" for Apple's tech stack (w/o the insider knowledge parts, he's not an Apple employee).

av3csr 4 hours ago 0 replies      
When he was updating it, shakes fist


zbuttram 12 hours ago 0 replies      
Surprised to see http://2ality.com/ missing. First place I go for every new JavaScript lang feature/proposal.
executesorder66 1 hour ago 0 replies      

Lots of high quality code examples in a variety of languages.

johnny_reilly 4 hours ago 0 replies      
The Morning Brew: "a daily .NET software development link blog published by Chris Alcock"

It's like a daily readers digest of software development stuff. And the tagline just quoted is a little out of date - it's got a strong .NET leaning but that's not the only thing on there.


romgrk 13 hours ago 0 replies      
deepakkarki 10 hours ago 1 reply      
I have created this as a side project of mine :)


It's a curated and tagged list of company blogposts - published every weekday (or whenever I get 5-10 good links for the day)! As of now it is limited to only engineering blogs.

To know more, visit : https://www.discoverdev.io/about

duykhoa12t 5 hours ago 0 replies      
turingbook 3 hours ago 0 replies      
If you can read Chinese, Meituan-Dianping Engineering Blog is a must-read: https://tech.meituan.com/
skibz 14 hours ago 0 replies      
Not as frequently updated as it used to be, but: https://rachelbythebay.com/w/
gk1 13 hours ago 0 replies      
https://www.highscalability.com - good devops articles and link roundups
nezo 3 hours ago 0 replies      
Airbnb Engineering & Data Science https://medium.com/airbnb-engineering
codeforgeek 5 hours ago 0 replies      
https://codeforgeek.comhttps://scotch.ioHackernoon medium and free code camp. Video courses at plural and Edx.
gogopuppygogo 6 hours ago 0 replies      
http://www.catonmat.net is excellent.

I'm also a fan of the comics the author Peter Krumins puts out https://comic.browserling.com/

gmanolache 1 hour ago 0 replies      
The Practical Devhttps://dev.to/
blojayble 4 hours ago 0 replies      
jvns 14 hours ago 2 replies      
Dan Luu has a list of programming blogs you might like: https://danluu.com/programming-blogs/. The rest of his blog is good too!

a few of my favorite blogs:

- http://blog.acolyer.org for fantastic daily summaries of CS papers.

- http://stephaniehurlburt.com/blog/ -- she has a business creating a new compression algorithm and I love reading about it

- https://rachelbythebay.com/w/ is pure gold for weird debugging stories

- https://accidentallyquadratic.tumblr.com/ is always a fun read

- http://wingolog.org/ on building compilers

- http://composition.al/blog -- Lindsey Kuper on her programming languages research

- aphyr's blog on distributed systems, of course

- https://charity.wtf/

- http://www.pgbovine.net/writings.htm -- Philip Guo is a CS professor whose blog on his experiences in academia I really like

- http://whilefalse.blogspot.com by Camille Fournier, mostly on engineering management

- http://larahogan.me/blog/ by Lara Hogan, on engineering management

Also I think this comment from Dan's blog (https://danluu.com/about/) is very true and important:

> I view that as a sign theres a desperate shortage of understandable explanation of technical topics. Theres nothing here that most of my co-workers dont know (with the exception of maybe three or four posts where I propose novel ideas). Its just that they dont blog and I do. Im not going to try to convince you to start writing a blog, since that has to be something you want to do, but I will point out that theres a large gap thats waiting to be filled by your knowledge. When I started writing this blog, I figured almost no one would ever read it; sure Joel Spolsky and Steve Yegge created widely read blogs, but that was back when almost no one was blogging. Now that there are millions of blogs, theres just no way to start a new blog and get noticed. Turns out thats not true.

I really think there is a shortage of understandable explanations of technical topics, and I see new people writing great posts clarifying complicated technical topics all the time. And I find people really do notice/appreciate it. So if you're excited about blogging, maybe do it :)

Entangled 9 hours ago 0 replies      
For those who like newsletters delivered to their inbox:


Enough programming news for a lifetime, or two.

briansteffens 14 hours ago 0 replies      
wizzerking 7 hours ago 0 replies      
Since i do a lot of image stuff with OpenCVpyimagesearch.com
atsaloli 7 hours ago 0 replies      
http://codesimplicity.com/ for fundamentals of software design and improving code bases
gkelly 10 hours ago 0 replies      
Here is a similar question from a few months ago, which resulted in a pretty great list of blogs and twitters:


philip1209 9 hours ago 0 replies      
I've been impressed by the Sourcegraph blog lately:


ZedDogX 11 hours ago 0 replies      
I listen to a few podcasts but don't religiously follow any one particular person on blogs. I just find blog posts about what i want to do and learn from that, maybe poke around a while after.
sidcool 8 hours ago 0 replies      
Most of the ones I read are covered here. Would like to add http://dev.to
psbrandt 11 hours ago 0 replies      

There's also an OPML file that you can import into Feedly.

jrochkind1 9 hours ago 0 replies      
I run an aggregator for ruby-related blogs and other news feeds.


nikivi 14 hours ago 0 replies      
I keep a list of blogs I follow as a GitHub repo :


weishigoname 6 hours ago 0 replies      
some machine learning blog I like to follow is http://karpathy.github.io
xref 14 hours ago 0 replies      
If you like Julia Evans style you may also like Charity Majors aka @mipsytipsy on twitter https://charity.wtf/

Also I use the open source Django project Newsblur as my RSS reader, and follow Samuel's blog: http://blog.newsblur.com/

A couple others I like:



purpleidea 6 hours ago 0 replies      
The Technical Blog of Jameshttps://ttboj.wordpress.com/

Source: Author

fapjacks 3 hours ago 0 replies      
Windytan (Oona Risnen), absolutely phenomenal hacker: http://www.windytan.com/
ahamedirshad123 3 hours ago 0 replies      
+1 for Julia Evans blog
hprotagonist 14 hours ago 0 replies      
- aphyr

- scott hansleman

- coding horror

- decyphering glyph

- eric lippert

karthik_ir 6 hours ago 0 replies      
crispytx 13 hours ago 0 replies      
PHP on Acid ;)


naturalgradient 14 hours ago 2 replies      
Ah rather thinly veiled blog advertisement?
Ask HN: In what creative ways are you using Makefiles?
87 points by kamranahmed_se  1 day ago   89 comments top 44
new299 1 day ago 5 replies      
My favorite use was during my PhD. My thesis could be regenerated from the source data, through to creating plots with gnuplot/GRI and finally assembled from the Latex and eps files into the final pdf.

It was quite simple really, but really powerful to be able to tweak/replace a dataset hit make, and have a fully updated version of my thesis ready to go.

richardknop 1 day ago 4 replies      
I use Makefile as a wrapper for build / test bash commands. For example I often define these targets:

- make test : run the entire test suite on local environment

- make ci : run the whole test suite (using docker compose so this can easily be executed by any CI server without having to install anything other than docker and docker-compose) and generate code coverage report, use linter tools to check code standards

- make install-deps : installs dependencies for current project

- make update-deps : will check if there is a newer version of dependencies available and install it

- make fmt : formats the code (replace spaces for tabs or vice-versa, remove additional whitespaces from beginning/end of files etc)

- make build : would compile and build a binary for current platform, I would also defined platform specific sub commands like make build-linux or make build-windows

mauvehaus 20 hours ago 0 replies      
Teradata contributes the Facebook open-source project Presto. Presto uses Docker to run tests against Presto. Since the tests require Hadoop to do much of anything useful, we install Hadoop in docker containers.

And we run tests on 3 flavors of Hadoop (HDP, CDH, and IOP), each of which is broken down into a flavor-base image with most of the packages installed, and various other images derived from that, which means we have a dependency chain that looks like:

base-image -> base-image-with-java -> flavor-base => several other images.

Enter make, to make sure that all of these get rebuilt in the correct order and that at the end, you have a consistent set of images.


But wait, there's more. Docker LABEL information is contained in a layer. Our LABEL data currently includes the git hash of the repo. Which means any time you commit, the LABEL data on base-with-java changes, and invalidates everything downstream. This is terrible, because downloading the hadoop packages can take a while. So I have a WIP branch that builds the images from an unlabelled layer.


As an added bonus, there's a graph target that automatically creates an image of the dependency graph of the images using graphviz.

Arguably, all of the above is a pretty serious misuse of both docker and make :-)

I can answer complaints about the sins I've committed with make, but the sins we've committed with Docker are (mostly) not my doing.

Figs 1 day ago 1 reply      
I once implemented FizzBuzz in Make: https://www.reddit.com/r/programming/comments/412kqz/a_criti...

Even though Make does not have built-in support for arithmetic (as far as I know), it's possible to implement it by way of string manipulation.

I don't recommend ever doing this in production code, but it was a fun challenge!

chubot 1 day ago 2 replies      
Not particularly creative, but I'm using it to generate this blog:

http://www.oilshell.org/blog/ (Makefile not available)

and build a Python program into a single file (stripped-down Python interpreter + embedded bytecode):


Although generally I prefer shell to Make. I just use Make for the graph, while shell has most of the logic. Although honestly Make is pretty poor at specifying a build graph.

grymoire1 23 hours ago 0 replies      
I've used it when I was doing a pentest - searching a network for leaks of information. I wrote dozens of shell scripts that scanned the network for .html files, then extracted URL's from them, downloaded all of the files referenced in them, and searched those files (.doc, *.pdf, etc.) for metadata that contained sensitive information. This involved eliminating redundant URL's and files, using scripts to extract information which was piped into other scripts, and a dozen different ways of extracting metadata from from various file types. I wrote a lot of scripts that where long, single-use and complicated, and I used a Makefile to document and save these so I could re-do them if there was an update, or make variations of them if I had a new ideas.
voltagex_ 1 day ago 1 reply      
To set up my dotfiles, although I'm not in enough of a routine for it to be truly useful.

 tmux: ln -s $(CURDIR)/.tmux.conf $(HOME)/.tmux.conf tmux source-file ~/.tmux.conf reload-tmux: tmux source-file ~/.tmux.conf gitconfig: ln -s $(CURDIR)/.gitconfig $(HOME)/.gitconfig
cd ~/configs then make whatever. ~/configs itself is a git repository.

privong 20 hours ago 0 replies      
I use Makefiles for two components of my research:

- Compilation of papers I am writing (in LaTeX). The Makefile processes the .tex and .bib files, and produces a final pdf. Fairly simple makefile

- Creation of initial conditions for galaxy merger simulations. This I obtained from a collaborator. We do idealized galaxy merger simulations and my collaborator has developed a scheme to create galaxies with multiple dynamical components (dark matter halos, stellar disks, stellar spheroids, etc.) very near equilibrium. We have makefiles that generate galaxy models, place those galaxies on initial orbits, and then numerically evolve the system.

INTPenis 1 day ago 2 replies      
Not exactly creative but KISS. I use only Makefile for a C project that compiles on both Linux, BSD and Mac OS.

Point being that autoconf is often overkill for smaller C projects.

lantastic 14 hours ago 0 replies      
I once used make to jury-rig a fairly complex set of backup jobs for a customer on a very short notice. Jobs were grouped and each group was allowed to run a certain number of jobs in parallel, and some jobs had a non-overlap constraint. The problem was well beyond regular time-based scheduling, so I made a script to generate recursive makefiles for each group that started backups via a command-line utility, and a master makefile to invoke them with group-specific parallelism via -j.

File outputs were progress logs of the backups that got renamed after the backup, so if any jobs failed in the backup window, you could easily inspect them and rerun the failed jobs just by rerunning the make command.

Fun times. Handling filenames with spaces was an absolute pain, though.

sannee 20 hours ago 0 replies      
Not something I have personal experience with, but I have heard a story about a Makefile-operated tokamak at the local university. Apparently, the operator would do something like "make shot PARA=X PARB=Y ..." and it would control the tokamak and produce the output data using a bunch of shell scripts.
leksak 3 hours ago 0 replies      
Nowadays I mostly use Tup. If I use make it is usually for when I'm working with other people on LaTeX documents, and often times it's enough to just call rubber from make x)
alexatkeplar 1 day ago 0 replies      
Until recently we used them at Snowplow for orchestrating data processing pipelines, per this blog post:


We gradually swapped them out in favour of our own DAG-runner written in Rust, called Factotum:


rv77ax 16 hours ago 0 replies      
I use makefile as the library package dependency [1], maybe like what package.json was in node environment.

The idea is if you want to use the library, you just include the makefile inside your project makefile, define a TARGET values and you will automatically have tasks for build, debug, etc.

The key is a hack on .SECONDEXPANSION pragma of GNU make, which means it's only work in GNU/Linux environment.

[1] https://GitHub.com/shuLhan/libvos

Edit: ah, turn out I write some documentation about it here: http://kilabit.info/projects/libvos/doc/index.html

BenjiWiebe 15 hours ago 0 replies      
I have a makefile I use for all of my AVR projects. It has targets to build, program, erase, and bring up a screen on ttyS0 and maybe more. I add targets whenever I realize I'm doing anything repetitive with the development workflow.
dakerfp 6 hours ago 0 replies      
I use it to run Verilog testbenches and start a Riscv simulator.
rrobukef 1 day ago 0 replies      
I use it to setup my programming environment. One Makefile per project, semi-transferable to other pcs. It contains

 * a source code download, * copying IDE project files not included in the source, * creating a build folders for multiple builds (debug/release/converage/benchmark, clang & gcc), * building and installing a specific branch, * copying to a remote server for benchmark tests.

cperciva 20 hours ago 0 replies      
I have "make Makefiles", which uses BSD make logic to create portable POSIX-compliant Makefiles.
shakna 1 day ago 0 replies      
Lisp in make [0] is probably the most creative project I've seen. For myself, in some tightly controlled environments I've resorted to it to create a template language, as something like pandoc was forbidden. It was awful, but worked.

[0] https://github.com/kanaka/mal/tree/master/make

Someone 19 hours ago 1 reply      
I don't use it, but your question made me think of one: I would like to see it (mis)used as a way to bring up an operating system.

It probably will require quite a few changes, but if the /proc file system exposed running processes by name, and contained a file for each port that something listened to, one _could_ run make on that 'directory' with a makefile that describes the dependencies between components of the system.

Useful? Unlikely, as the makefile would have to describe all hardware and their dependencies, and it is quite unlikely nowadays that that is even possible (although, come to think of it, a true hacker with too much time in hand and a bit of a masochistic tendencies could probably use autotools to creative use)

gopalv 16 hours ago 0 replies      
To generate 100 Terabytes of data in parallel ... on Hadoop


The shell script generates a Makefile and the Makefile runs the hadoop commands, so that the parallel dep handling is entirely handed off to Make.

This make it super easy to run 2 parallel workloads at all times - unlike xargs -P 2, this is much more friendly towards complex before/after deps and failure handling.

gkelly 10 hours ago 0 replies      
I use Makefiles that run "git push $branch" and then call a Jenkins API to start a build/deploy of that $branch. This way I never have to leave vim; I use the fugitive plugin for vim to "git add" and "git commit", then run ":make".
rahi374 5 hours ago 0 replies      
I use it to generate my latex CV.In my case I have multiple target countries, so I have pseudo-i18n with pseudo-l10n, and different values like page size, addresses, phone numbers, and then I just make for the target country like make us or make ja.
xemoka 20 hours ago 0 replies      
I haven't, but one of the cool uses that I've seen lately is how OpenResty's folks are using it for their own website, they convert markdown -> html, then with metadata to TSV, finally loading it into a postgres db. They then use OpenResty to interface with the DB etc. But all the documentation is originally authored in markdown files.

Makefile: https://github.com/openresty/openresty.org/blob/master/v2/Ma...

cmcginty 18 hours ago 0 replies      
I used a Makefile for managing a large number of SSL certificates, private keys and trust stores. This was for an app that needed certs for IIS, Java, Apache and they all expect certificates to be presented in different formats.

Using a Makefile allowed someone to quickly drop in new keys/certs and have all of the output formats built in a single command. Converting and packaging a single certificate requires one or more intermediate commands and Makefile is setup to directly handle this type of workflow.

DanHulton 20 hours ago 0 replies      
I use Ansible for deployment and Ansible Vault for storing encrypted config files in the repo. Of course, it's always a bit of a nightmare scenario that you accidentally commit unencrypted files, right?

Well, I have "make encrypt" and "make decrypt" commands that will iterate over the files in an ".encrypted-files" file. Decrypt will also add a pre-commit hook that will reject any commit with a warning.

This is tons easier than trying to remember the ansible-vault commands, and I never have to worry about trying to remember how to permanently delete a commit from GitHub.

a3n 1 day ago 0 replies      
Miki: Makefile Wiki https://github.com/a3n/miki

A personal wiki and resource catalog. The only thing delivered is the makefile, which uses existing tools, and a small convenience script to run it.

unmole 1 day ago 0 replies      
Not mine but here's a Lisp interpreter written in Make: https://github.com/kanaka/mal/tree/master/make
matt4077 1 day ago 1 reply      
I'm using ruby's rake in almost every project, even when it's not ruby otherwise.

It has much of the same functionality, but I already know (and love) ruby, whereas make comes with its own syntax that isn't useful anywhere else.

You can easily create workflows, and get parallelism and caching of intermediate results for free. Even if you're not using ruby and/or rails, it's almost no work to still throw together the data model and use it for data administration as well (although the file-based semantics unfortunately do not extend to the database, something I've been meaning to try to implement).

Lately, I've been using it for machine learning data pipelines: spidering, image resizing, backups, data cleanup etc.

natebrennand 20 hours ago 0 replies      
We use Makefile "libraries" to reduce the amount of boilerplate each of our microservices have to contain. This then allows us to change our testing practices in bulk throughout all our repos.


fusiongyro 15 hours ago 0 replies      
stephenr 1 day ago 0 replies      
I guess it depends what you consider creative?

I use one to build my company's Debian Vagrant boxes: https://app.vagrantup.com/koalephant

I use one to build a PHP library into a .phar archive and upload it to BitBucket

My static-ish site generator can create a self-updating Makefile: https://news.ycombinator.com/item?id=14836706

I use them as a standard part of most project setup

haspok 20 hours ago 0 replies      
https://erlang.mk/ - need I say more? :)
Mister_Snuggles 15 hours ago 0 replies      
I've used Makefiles to determine what order to run batch jobs in so that dependencies can be met. Instead of describing what order to run things in, you describe what depends on what.

It's pretty cool, but not ideal.

peterbraden 1 day ago 0 replies      
I have a makefile that sets up a brand new computer with the software I need. It means I can be up and running on a new machine in a few minutes.
dvfjsdhgfv 1 day ago 0 replies      
The main question to ask if you really need to use make. If you do, there practically no limit of what you can do with it these days, including deployment to different servers, starting containers/dedicated instances etc. But unless you are already using make or are forced to, it's better to check one of newer build systems. I personally like CMake (it actually generates Makefiles).
accatyyc 1 day ago 0 replies      
One "creative" use is project setup. Sometimes, less technical colleagues need to run our application, and explaining git and recursive submodules takes a lot of time, so I usually create a Makefile with a "setup" target that checks out submodules and generates some required files to run the project.
Da_Blitz 1 day ago 1 reply      
i use it to solve dependency graphs for me in my program language of choice, at the moment this involves setting up containers and container networking but i throw it at anything graph based

make seems to be easier to install/get running than the myriad of non packaged, github only projects i have found.

johnny_1010 1 day ago 0 replies      
I use makefile to gen my static website.Also my CV, latex and make works well together.
tripa 1 day ago 0 replies      
I use make as a poor man's substitute for rsync (well, local rsync. Like cp -r), when I need to add some filtering in between.
tmaly 1 day ago 0 replies      
I use it to build all my Go micro services, run test suite, compile SaSS, minify css, minify js
yabadabadoo 1 day ago 2 replies      
I use make to pre-compile markdown into HTML for a static website.
rurban 1 day ago 0 replies      
I'm creating a config.inc makefile during make to store config settings, analog to the config.hhttps://github.com/perl11/potion/blob/master/config.mak#L275

Instead of bloated autotools I also call a config.sh from make to fill some config.inc or config.h values, which even works fine for cross-compiling.

jmurphyau 1 day ago 0 replies      
I use make to make things
Ask HN: Would anyone be interested in a darknet dropbox type thing?
8 points by Kylesan  9 hours ago   7 comments top 5
richardknop 50 minutes ago 0 replies      
I hope you are using a throwaway account to ask this question.
detaro 9 hours ago 1 reply      
Set up a website and submit a Show HN instead of asking if people care every few hours please.
bhcc 6 hours ago 1 reply      
I think you could easily start with forks of

ZeroNet (distributed TOR hosting):https://zeronet.iohttps://github.com/HelloZeroNet/ZeroNet

and either:SecureDrop:https://securedrop.orghttps://github.com/freedomofpress/securedrop


Though basically you're just routing .onion at a bucket.

Another thing to look at would be building on https://libcloud.apache.org/https://libcloud.readthedocs.io/en/latest/supported_provider...orhttps://jclouds.apache.org/https://jclouds.apache.org/reference/providers/

And providing a storage target. Though you have to consider the possibility of seizure of the host[s] by the service providers state.



whatnotests 8 hours ago 0 replies      
The FBI certainly would be interested!
bromonkey 6 hours ago 0 replies      
What benefit does this service provide over onionshare? https://onionshare.org/
Ask HN: Best-architected open-source business applications worth studying?
275 points by ghosthamlet  1 day ago   85 comments top 32
berns 22 hours ago 3 replies      
Meta: So far (23 top level answers) we have: Nginx, Git, Guava, Photoshop (?!), Discourse, OpenBSD (and: other BSDs, Plan9, BSD tools, Linux, LLVM/Clang, WebKit, Chrome, Firefox, Quake 1-3, Doom 3, CPython, TensorFlow), Hashicorp's tools, Redis, Mysql, Postgresql, Apache HTTP server.

Wasn't the question about business applications?

Redeeming answers: ERPNext, Odoo, OpenERP, OpenERM

elorm 1 day ago 4 replies      
Nginx and Git.

Nginx has a lot of respect on the market for handling high concurrency as well as exhibiting high performance and efficiency.

I don't even have to speak about the Git architecture. It speaks plainly for itself.

There's a series of books called The Architecture of Open Source Applications that does justice to this topic


yodon 1 day ago 3 replies      
There's been a good deal of academic work on architectural differences between open source and closed source applications (basically resulting from the differences in the organizational structures that designed/built/grew them ala Conway's Law). Observations for example include reports that closed source applications tend to have more large scale API classes/layers, because there is a management structure in the designing organization that can herd them into existence, while open source projects of the same size and complexity tend to have a less centralized architecture, again reflecting the organizing characteristics of the developers involved[0].

None of this is arguing that one or the other style of architecture is "better" per se, but rather the architectures are different because they were in the end optimized for different kinds of development organizations.

Most business applications remain fundamentally a three-tiered architecture, with the interesting stuff today tending to happen in how you slice that up into microservices, how you manage the front end views (PHP and static web apps are pretty different evolutionary branches), and critically how you orchestrate the release and synchronization/discovery of all those microservices.

(None of which is directly an answer to your question, but is more meant to say that lots of the most interesting stuff is getting harder to spot in a conventional github repository because much of it is moving much closer to the ops side of devOps)

[0] http://www.hbs.edu/faculty/Publication%20Files/08-039_1861e5...

rushabh 1 day ago 0 replies      
Checkout ERPNext (https://GitHub.com/frappe/erpnext). It is based on a metadata framework (Frappe) that lets you build by configuration, so complexity can be handled much better.

Frappe also lets you build extensions (apps), add hooks to standard events, has a built in RESTAPI and more. Here is a quick overview https://www.slideshare.net/mobile/rushabh_mehta/frapp-framew...

Disclaimer: see my bio

jph 1 day ago 1 reply      
Spree is an open source e-commerce solution. IMHO has good architecture for learning.

Spree has a clean API, clear models, front end and back end, extensions, and command line tools.


Especially take a look at the models:


dustingetz 21 hours ago 0 replies      
http://www.aosabook.org/ - I actually did not get much out of this book, i felt my time was more efficiently spent studying languages and databases.

But this chapter is great: http://www.aosabook.org/en/500L/an-archaeology-inspired-data...

ctrlrsf 21 hours ago 0 replies      
For an OSS business application, Rundeck (http://rundeck.org/) is very polished and has a clean architecture. The concepts for setting up jobs, schedules, ACLs, etc, is clearly thought out and flexible.
taude 23 hours ago 0 replies      
By business app, I'm interpreting as something that might be a a basis for writing an enterprise application or an application that might be used by enterprise and not the infrastructure-type of stuff I see posted below like NGINX, Git, etc...

Something that's expandable by multiple departments, expandable business-specific logic, modular, plug-in infrastructure, the ability to work with multiple authentication schemes, etc....

Take a look at Liferay Portal: https://github.com/liferay/liferay-portal/

Edit: fixed all my typos.

neves 1 day ago 0 replies      
There is a nice site site about this subject:The Architecture of Open Source Applicationshttp://aosabook.org/en/index.html
nXqd 1 day ago 1 reply      
pixelmonkey 20 hours ago 2 replies      
One of my favorite "open source architecture" essays is on Graphite:


It's part of the book, "Architecture of Open Source Applications", which has many such essays. This one is freely available -- and quite good.

Graphite is used for the business purpose of simple & fast real-time analytics for custom metrics inside an organization. It was built inside Orbitz and is now widely used at many startups, including my own.

Graphite is now a vibrant open source project with a community around it here:


bradgnar 20 hours ago 1 reply      
Applications dont really need to be well architected until they are hitting scale. Then the parts of their system that need to relieve pressure will need to be re-architected. This is almost like a case study and there are a lot of good talks on youtube from places like dropbox and facebook that explain the problem and solution. Example: https://www.youtube.com/watch?v=PE4gwstWhmc

If you dont want to do youtube case studies there are also books to read about distributed systems. Also reading about cloud architecture can help.

Top19 1 day ago 0 replies      
Two I am familiar with are OpenERP and OpenEMR.

OpenERP, now Odoo, is written in Python.

OpenEMR is written in PHP. It dates from a while ago, but has been mostly updated to the latest PSR standards.

Might also try OrangeHCM, but not sure what those guys are doing these days.

steedsofwar 1 day ago 0 replies      
Amongst the other great suggestions you could also have a look at Redis (https://redis.io)
albertzeyer 1 day ago 2 replies      
I'm not exactly sure what is meant by business. Commercial successful?

Anyway, here are some projects which I can recommend by its source code:

* OpenBSD. Also the other BSDs. Plan9. And the BSD tools. Linux is a bit bloated but maybe it has to be. I don't recommend the GNU tools.

* LLVM/Clang.

* WebKit. Also Chrome. Firefox not so much, although maybe it improved.

* Quake 1-3, as well as other earlier id games. Really elegant and clean. Also not that big in total. Doom 3 has become much bigger in comparison but again maybe it has to be.

* CPython. Anyway interesting also for educational purpose.

* TensorFlow. Very much not Theano.

I really enjoy reading the source code of most projects which I used at some point. Some code is nicer, some not so nice, mostly judged by how easy it is to understand and how elegant it seems to be. In any case it really is rewarding to look at it as you will gain a much better understanding of the software and often you will also learn something new.

NKCSS 1 day ago 0 replies      
As far as I know sqlite has the reputation of being great (mostly for the test coverage and sheer amount of unit tests).
scarface74 1 day ago 0 replies      
From a usability and installation experience, Hashicorp's tools. One very small executable for each of their products that work as the client or server, a simple command to join them in a cluster, and reasonable defaults and the ones I've used work well together.

The learning curve to go from I've never heard of them to reading about them, to installing them and using them was very small at least for Consul, Nomad, and Vault.

austinl 19 hours ago 0 replies      
For iOS engineers, I'd recommend reading over the Kickstarter iOS application (https://github.com/kickstarter/ios-oss).

They use a lot of interesting stuff, like FRP, lenses, etc.

rrmmedia 1 day ago 0 replies      
Check out ERPNext written in python https://erpnext.com
cerisier 13 hours ago 0 replies      
I find Apache Spark to be exceptionnaly well written and easy to read. (in Scala). https://github.com/apache/spark
chw9e 1 day ago 0 replies      
Artsy has a bunch of Open Source applications that are interesting to check out, especially for those interested in mobile apps https://github.com/artsy
kfk 20 hours ago 0 replies      
Airbnb Superset. It's not mature yet, but it's enterprisey enough and the code is clean.
slackingoff2017 22 hours ago 0 replies      
If libraries count, Google Guava has some of the most impressive code quality I've ever seen
kawera 1 day ago 0 replies      
PostgreSQL and Apache HTTP server.
williape 23 hours ago 0 replies      
Photoshop: http://www.computerhistory.org/atchm/adobe-photoshop-source-... Not open source but one of the most commercially successful and one of the best architected. Original source code now available via Computer History Museum.
unixhero 19 hours ago 0 replies      
I would say:


jackmott 22 hours ago 0 replies      
patwalls 23 hours ago 0 replies      
marknote 1 day ago 0 replies      
Has anyone mentioned SQLite?
sidcool 1 day ago 0 replies      
Shameless plug, but Bahmni and the Go CD open source projects.
alfiedotwtf 1 day ago 0 replies      

"On January 16, 2008, MySQL AB announced that it had agreed to be acquired by Sun Microsystems for approximately $1 billion"


Edit: sorry, missed the question entirely. I thought OP said "open-source businesses worth studying"

Ask HN: What do people use to prevent crawlers?
116 points by jongi_ct  2 days ago   117 comments top 31
wrath 1 day ago 8 replies      
I've built crawlers that retrieve billions of web pages every month. We had a whole team working modifying the crawlers to resolve website changes, to reverse engineer ajax requests and solve complex problems like captcha solvers. Bottom line, if someone wants to crawl your website they will.

What you can do, however, is make it hard so that the vast majority of developers can't do it (e.g. My tech crawl billions of pages, but there was a whole team dedicated to keeping it going). If you have money to spend, there's Distill Networks or Incapsula that have good solutions. They block PhantomJS and browsers that use Selenium to navigate websites, as well as rate limit the bots.

What I found really affective that some websites do is tarpit bots. That is, slowly increase the number of seconds it takes to return the http request. So after a certain amount of request to your site it takes 30+ seconds for the bot to get the HTML back. The downside is that your web servers need to accept many more incoming connections but the benefit is you'll throttle the bots to an acceptable level.

I currently run a website that gets crawled a lot, deadheat.ca. I've written a simple algorithm that tarpits bots. I also throw a captcha every now and then when I see an IP address hits too often over a span of a few minutes. The website is not super popular and, in my case, it's pretty simple to differentiate between a human or bot.

Hope this helps...

Rjevski 1 day ago 1 reply      
Don't prevent them. The same data you let humans access for free should be accessible via bots. If you only want to give out a "reasonable" amount of data, that humans wouldn't usually exceed but bots would, then define a rate-limit that wouldn't inconvenience humans and then apply it for everyone - bot or not. That way you're discriminating based on the amount of data instead of whether it's a bot or not. It will thwart people simply paying humans to scrape the data (which would happen if you magically found a way to block bots) while not inconveniencing humans who use a bot to make their job easier while scraping a reasonable amount of data.
monodeldiablo 1 day ago 9 replies      
"How do I stop all these dinner guests from eating this lovely pie I set out on the table?"

I remember working hard on a project for a year, then releasing the data and visualizations online. I was very proud. It was very cool. Almost immediately, we saw grad students and research assistants across the globe scraping our site. I started brainstorming clever ways to fend off the scrapers with a colleague when my boss interrupted.

Him: "WTF are you doing?"

Me: "We're trying to figure out how to prevent people from scraping our data."

Him: "WTF do you want to do that for?"

Me: "Uh... to prevent them from stealing our data."

Him: "But we put it on the public Web..."

Me: "Yeah, but that data took thousands of compute hours to grind out. They're getting a valuable product for free!"

Him: "So then pull it from Web."

Me: "But then we won't get any sales from people who see that we published this new and exciting-- Oh. I see what you mean."

Him: "Yeah, just get a list of the top 20 IP addresses, figure out who's scraping, and hand it off to our sales guys. Scraping ain't free, and our prices aren't high. This is a sales tool, and it's working. Now get back to building shit to make our customers lives easier, not shittier."

Sure enough, most of the scrapers chose to pay rather than babysit web crawlers once we pointed out that our price was lower than their time cost. If your data is valuable enough to scrape, it's valuable enough to sell.

The only technological way to prevent someone crawling your website is to not put it on a publicly-facing property in the first place. If you're concerned about DoS or bandwidth charges, throttle all users. Otherwise, any attempts to restrict bots is just pissing into the wind, IMHO.

Spend your energies on generating real value. Don't engage in an arms racw you're destined to lose.

bmetz 1 day ago 2 replies      
My favorite thing was to identify bots and instead of blocking them, switch to a slightly scrambled data set to make the scrape useless but look good to the developer who stole it. It was a ton of fun as a side project. I'd also suggest you add some innocent fake data to your real site and then set up google alerts of all of the above to catch traffic. About 50% of sites would respond positively to an email when you showed them they were hosting fake data. About 90% would take my data down if that was followed up with a stronger C&D. One key is to catch them fast, while they're still a little nervous about showing off their stolen data online.
ThePhysicist 2 days ago 2 replies      
I assume you are concerned about crawlers that do not respect the robots.txt file (which is the polite way to restrict them from indexing your side, but does not provide any actual protection if crawlers chose to ignore the file). Cloudflare has a tool for doing this (now part of their core service):


There's a nice Github repo with some advice on blocking scrapers:


Finally, you could use a plugin in your Webserver to display a CAPTCHA to visitors from IP addresses that cause a lot of requests to your site.

There are many more strategies available (up to creating fake websites / content to lead crawlers astray), but the CAPTCHA solution is the most robust one. It will not be able to protect you against crawlers that use a large source IP pool to access your site though.

bad_user 2 days ago 3 replies      
The other day I've made a Chrome extension for scrapping a protected website. It worked wonderfully, as it simulated a normal user session, bypassing the JavaScript protections the website has. You can also run such scripts with a headless browser for full automation, PhantomJS being an obvious choice.

You really can't protect against this unless you start making the experience of regular visitors much worse.

mattm 1 day ago 4 replies      
One thing I've thought about but never had the chance to put into practice would be to randomize CSS classes and IDs. Most web scraping relies on these to identify the content they are looking for.

Imagine if everyday they changed? It would make things a lot more difficult.

There would be disadvantages to actual users with this method like caching wouldn't work very well but maybe this alternative site could be displayed only to bots.

The crawler could get smart about it and only use xpaths like the 6th div on the page so maybe in the daily update you could throw in some random useless empty divs and spans in various locations.

It's a lot of work to setup but I think you would make scraping almost impossible.

thinbeige 2 days ago 0 replies      
You can't prevent good crawlers. Captchas might help and what Amazon does: Erratic, unpredictable changes of the HTML structure.
huffmsa 1 day ago 2 replies      
If you're getting a lot of crawler traffic, your site probably has information a lot of people find useful, so you should consider finding a way to monetize it.

Otherwise, your best bet (hardest to get around in my experience) is monitoring for actual user I/O. Like if someone starts typing in an input field, real humans have to click on it beforehand, and most bots won't.

Or if a user clicks next-page without the selector being visible or without scrolling the page at all. Not natural behavior.

Think like a human.

okket 2 days ago 0 replies      
A password prompt/captcha? If you do not want to get crawled, do not make it public?
inglor 2 days ago 2 replies      
We've used Incapsula (cheap and works, but awful support and service) and Distil (expensive and works, great support but steep pricing).

Both worked, both worked well with http downloads and selenium (and common techniques). Neither worked against someone dedicated enough - but there are the usual tricks for bypassing them (which we used, to test our own stuff).

We also developed something in-house, but that never helps.

laurieg 1 day ago 1 reply      
Domain specific but if you detect a bot you can start giving it false information.

For example, a dictionary site. Someone tries to crawl your site after triggering your "This is a bot" code, serve bad data to every 20 requests. Mispell a word, Mislabel a noun as a verb, give an incorrect definition.

If you combine this with throttling then the value of scraping your site is greatly reduced. Also, most people won't come up with a super advanced crawler if they never get a "Permission denied, please stop crawling" message.

danielbeeke 1 day ago 0 replies      
The stack (https://github.com/omega8cc/boa/) I am using, uses CSF https://www.configserver.com/cp/csf.html

This is for Drupal sites. It has a strong firewall (csf) and it has a lot of crawler detections on the nginx configurations. It checks the load and when on high load it blocks the crawlers.

twobyfour 2 days ago 0 replies      
For well-bahaved bots, robots.txt.

For ill-behaved ones, it depends on why you're trying to block them. Rate throttling, IP blocking, requiring login, or just gating all access to the site with HTTP Basic Auth can all work.

timbowhite 1 day ago 0 replies      
I wrote a plugin for node.js/express that performs basic bot detection and bans bots by IP address until they pay you some Bitcoin:

project: https://github.com/timbowhite/botbouncer

simple demo: http://botbouncer.xyz/

I ran it for awhile on some medium traffic websites that were being heavily scraped. It blocked thousands of IP addresses, but IIRC only received one Bitcoin payment.

danpalmer 1 day ago 0 replies      
I encourage developers thinking of doing this to check that they aren't required to have their website be scraper-friendly first.

The company I work for does a large amount of scraping of partner websites, with whom we have contracts that allow us to do it and that someone in their company signed off, but we still get blocked and throttled by tech teams who think they are helping by blocking bots. If we can't scrape a site we just turn off the partner, and that means lost business for them.

hollander 2 days ago 1 reply      
If it's about content, SVG and convert all text to curves. /s
jeremyliew 1 day ago 0 replies      
I don't understand why you'd want to stop crawlers. If you didn't want people to see your content, it probably shouldn't be on the public web.
digitalzombie 1 day ago 1 reply      
You can use cloudfare but it's a small roadblock. I can still crawl that.

Also you can do frontend rendering, it's a bit larger roadblock but you can use phantomJS or something to crawl that.

IIRC there is a php framework that mutate your front end code but I'm not sure if it does it enough to stop a generalized xpath...

Also I used to work for company where they employ people full time for crawling. It will even notified the company if crawler stopped working so they can update their crawler...

lazyjones 1 day ago 0 replies      
- permanently block Tor exit nodes and relays (some relays are hidden exit nodes)

- permanently block known anonymizer service IP addresses

- permanently block known server IP address ranges, such as AWS

- temporarily (short intervals, 5-15 mins) block IP addresses with typical scraping access patterns (more than 1-2 hits/sec over 30+ secs)

- add captchas

All of these will cost you a small fraction of legitimate users and are only worth it if scraping puts a strain on your server or kills your business model...

ge0 2 days ago 0 replies      
Can you give a little more context to the question? There are various ways but they would be dependent on the reasons in the first place.
ghola2k5 1 day ago 0 replies      
The best answer is probably an API.
Pica_soO 1 day ago 0 replies      
Add keywords which are likely to get the crawling company involved into a lawsuit (like the names of persons who suit google to be removed from search).
whatnotests 1 day ago 0 replies      
One cannot stop a determined thief.

One technique that bothers me quite a bit is constant random changes in class names or DOM structure, which can make it more difficult. Not impossible but more difficult.

wcummings 17 hours ago 0 replies      
Scraping is my birthright, you'll never stop me.
calafrax 1 day ago 0 replies      
There are a variety of methods that can be deployed:

1) request fingerprinting - browser request headers have arbitrary patterns that depend on user agent. matching user agent strings with a database of the request header fingerprints allows you to filter out anyone who is not using a real browser who hasn't taken the time to correctly spoof the headers. this will filter out low skill low energy scrapers and create higher costs.

2) put javascript in the page that tracks mouse movement and pings back. this forces scrapers to simulate mouse movement in a js execution environment or reverse engineer your ping back script. this is a very high hurdle and once again forces much more computationally intensive scraping and also much more sophisticated engineering effort.

3) do access pattern detection. require valid refer headers. don't allow api access without page access, etc. check that assets from page are loaded. etc.

4) use maxmind database and treat as suspicious any access not from a consumer isp. block access from aws, gcp, azure, and other cloud services offering cheap ip rental.

crispytx 1 day ago 0 replies      
I think websites, in general, tend to get a lot of bot traffic. My website doesn't have anything valuable to scrape, but I still get 100 hits from bot traffic every day.
Kenji 2 days ago 1 reply      

then Zip bombs.

owebmaster 2 days ago 0 replies      
They used to use flash, for the good or the bad.
z92 2 days ago 2 replies      
I run a cronjob every 5 minutes that parses httpd access log. If there's an IP with abnormally large request number, it blocks it.

Most crawlers will make hundreds of requests in five minutes, while legitimate viewers will make be bellow 100.

Ask HN: Best books on AI
5 points by forgotmysn  8 hours ago   2 comments top 2
ebcode 4 hours ago 0 replies      
My recommendation would be to go back to the original sources. Hardly anyone (on Medium or Techcrunch, that is) would know about Arthur Samuel's checkers playing program. His paper, "Some Studies in Machine Learning Using the Game of Checkers", can be found in the compilation, "Computers and Thought" by Feigenbaum and Feldman.

Another good resource is the three-volume set, "The Handbook of Artificial Intelligence ", also by Feigenbaum. It's a very thorough catalog of programs developed in the 60s and 70s that illustrate various techniques used in AI programs.

In the words of Alan Kay, "the past is vast".

jroth 7 hours ago 0 replies      
I found the first chapter of Deep Learning by Ian Goodfellow et. al. to do a good job going over the basic structure of AI as well as some useful history. The book is published online for free by MIT as well, which is great. www.deeplearningbook.org
Ask HN: Do you become emotionally attached to your old tech?
6 points by jmbake  8 hours ago   3 comments top 3
dakom 23 minutes ago 0 replies      
Definitely when it comes to gaming. I probably have as much fun playing Street Fighter II with a usb-snes controller + emu as I do playing with the GearVR, modern games, etc.

As long as it isn't holding you back from productivity - there's no real downside to being held back by nostalgia. If keeping old tech is holding you back in any way (security flaws, being out of touch with your industry, unable to collaborate, etc.) - then you'll find the happiness quotient goes up if you upgrade ;)

FilthyAnalyst 8 hours ago 0 replies      
I wish I knew how to overcome it. My 1541 drives and Commodore computers take up so much room.
ing33k 8 hours ago 0 replies      
donate it to some one who may have need for it.
Ask HN: Why am I so unhappy in spite of material success?
29 points by ta20170723  1 day ago   38 comments top 23
Powerofmene 1 day ago 0 replies      
Every item pointed out is related to work; make good money at work, short commute to work, interesting work, good benefits at work. The only non work item you mentioned is that you are in the best shape of your life (physically at least).

It appears your work/life balance is lacking. Do you have a significant other? Do you have hobbies you enjoy and/or actively pursue? I have been where you are with the dreading going to work each morning even to the point of being physically sick each morning. I had to find purpose in my work and as a result have just recently formed a startup that I hope will be accepted into Y Combinator.

I would encourage you to find someone you can talk to about the feelings you are experiencing before they become even more pronounced. Success at work is terrific but happiness is not always tied to employment success.

hijinks 22 hours ago 1 reply      
I felt the same way 12 years ago when I was in my mid-twenties. Long story short is I ended up walking into a pet store and buying a puppy. Around 6 months later the dog started losing hair and turned out he had a mite problem and was born without an immunity system.

I ended up putting down the dog and by my gym was a normal pet store that didn't sell dogs/cats but had a dog rescue event going on. So I went there to donate what stuff I bought. I ended up talking to the founder there on why pet store dogs are so bad.

So that day I signed up to foster a dog. A few months later I was helping with events and then a group of us split from that rescue to start our own that imported dogs from the south that were surrendered up north. It changed my life doing something I felt was good.

Maybe you can try to take some of your time and donate it to some cause you might be interested in. I turned from hating work to thinking of work as a means for me to make money to help a cause I loved.

djbelieny 18 hours ago 2 replies      
I will post this here at the risk of being the most down voted comment of all time but here we go: Read the bible, get to know Jesus. Not a religion or religious path, Jesus the man and the God. Pray and ask Him who you really are in your own eyes and in His eyes. Then, simply Love others as yourself and Him above all else. I personally took this journey many years ago when I was going through a very dark time. I was very unhappy with it all, despite having a good job, a great wife, an amazing daughter, family support and all. I lived religion for many years previous to that and tried to be a good man, going to church and following the do/don't routine. Not until I searched for a relationship with Jesus and asked him to show me who I really am, was I able to live a fulfilling life of purpose. If you feel like it we can talk more in depth about all this and I can tell you my story. DM me on twitter and we'll connect @djbelieny
akulbe 21 hours ago 2 replies      
I'm going to be short and to the point, and hope you will take it well. I mean the best, as I myself have been in this place.

Based on what you wrote, it seems like you are only focused inward, on yourself. Figure out a way to focus on someone else.

Had an old, wise friend tell me, "You learn to love, by doing for..." i.e. when you tend to someone who is helpless, you are focused on them, and their needs. You gain a whole new perspective on life.

Do _for_ them. Do something that doesn't bring you any gain or benefit. Just to be a good human. Selfless.

Kids make this happen, naturally. But I'm not suggesting you go have a bunch of kids, just for that, I hope you get my drift.

bsvalley 20 hours ago 0 replies      
Simple answer to your problem. Everything you mentioned about "being awesome" in your current life, aren't things that make you happy. That's it! Switch things up a little bit and I'm sure you're smart enough to make the difference between "what's good for me" and "what people think is awesome".

Try new things, break your routine. Life has a lot to offer my friend :)

jotjotzzz 17 hours ago 0 replies      
This was posted in HN as well, but it serves to repost it for this question:http://news.harvard.edu/gazette/story/2017/04/over-nearly-80...

Having material things is worthless unless you do not have any long, deep, and meaningful relationship and belong in a community. We, humans, long for deep connections. None of the material things will make you happy unless you share it.

saluki 23 hours ago 1 reply      
Work is work . . . it's a means to provide for you (and your family/future family).

Life is about things outside of work, people, loved ones, pets, plants, hobbies.

Set some goals to connect with friends and family. Get a pet, do gardening, volunteer, read. Go hiking, go biking. Play a team sport.

Most people dread going to work, that's why they call it work, btw. Although it is nice if you can enjoy work, short commute, great pay and interesting projects can help with that.

Build other things in your life where you look forward to going to work, but you really look forward to getting off work to pursue the people/hobbies you really care about.

Exercise can help too but sounds like you have that covered. Try something new though. Hiking, Biking, Rock Gym/Climbing. Team sports.

Good luck finding the illusive 'happiness', sounds like you're on the right track.

davidjnelson 16 hours ago 0 replies      
Berkeley's Greater Good Science center does fantastic research on this topic. They have a MOOC too.

This article is a great summary that may help you:


These parts specifically may provide key insight:

"Often, psychologists have distinguished between two types of well-being: hedonic well-being (a sense of happiness) and eudaimonic well-being (a sense of meaning and purpose). Although happiness and meaning overlap significantly, researchers suspected that helping others is especially crucial to developing a sense of meaning."

"A recent article published in The Journal of Positive Psychology by Daryl Van Tongeren and his colleagues sought to examine this relationship. In a preliminary study, the researchers asked over 400 participants to report on how frequently they engage in different altruistic behaviors (such as volunteering) and how meaningful their life feels. Participants who were more altruistic reported a greater sense of purpose and meaning in their lives."

k__ 22 hours ago 0 replies      
The only answer to this is, nobody knows why, just try different things and look if they make you happier.

Get into a romantic relationship or even multiple parallel if that is your thing. (I'm in non-monogamous relationships for 8 years now and started feeling much better)

Start a company or get kids. Having to care for your employees or kids can give you a purpose.

Try to help people in general. Teach some lesser fortunate people your skills, see what they make of it, maybe it helps you to get meaning by lifting others up.

Become a monk, christian or some other religion. They always search for people and the constant work and prayers gave some people meaning. Also the 100% structured daily life lets you age much slower.

zaro 8 hours ago 0 replies      
First thing to answer is this material success is this something you really want or is it something that society "induced" into you.

There are many ways to make yourself feel better, but the most effective actually is to understand "Why I am doing this?".

Jesus or a puppy can alleviate the symptoms for some time but if you are living somebody else's idea of a good life it's just kicking the can down the road. It's treating the symptoms.

It is not an easy task to align yourself with you ( as crazy as it might sound :)), but this is the only way to feel right.

And is not an easy thing to do in the materialistic society which we live in. Where stuff and possessions are supposed to make you feel fulfilled . They never will, so try new things that are not about money or owning things but rather about experiences. The more out of the ordinary experiences you get the easier it is to answer this question "How do I become happier?"

mod 1 day ago 0 replies      
Maybe you need to share your life with someone else.

Maybe you need to work on something that helps people.

Maybe your work is the wrong variety. Maybe you need to do work where you shower after your shift, rather than before.

Maybe you need to work for yourself, rather than a company.

Just a few thoughts, maybe one clicks.

davidjnelson 16 hours ago 0 replies      
You may enjoy the books "Happiness" and "Altruism" by Matthieu Ricard, who's been called the "happiest man alive" based on extensive brain scans. His advice is basically to help others in practical ways, as well as more abstract ways such as loving kindness meditation. Tldr: helping others takes attention off of "separate self", which is a common cause of suffering. Wish you the very best!
mattm 1 day ago 0 replies      
Do you have any goals outside of work - not like vacations but something that is a challenge and requires skill building?

Are you dating?

I'd recommend reading "The Way of the Superior Man" [1]. One of the things that's stuck with me from the book is that no one ever feels like they've "made it". Even if you do feel like you get to the point, like you have, you suddenly become miserable as there's nothing left to strive for. We need some driver in our lives that push us forward.

The author also makes the claim where everyone should have an hour per day to focus on something they want to do. It helps give you direction and purpose. I know the times when I've done this, I've enjoyed work and life a lot more than the times where I haven't.

[1] http://amzn.com/B004A8ZWM4

mycat 22 hours ago 0 replies      
Maybe because you haven't truly answered these questions:

1. From where you actually came from.

2. What are you here for.

3. Where to go afterwards.

By the way, it started with your first intention, i.e. for what did you worked so hard for all these?

WheelsAtLarge 1 day ago 0 replies      
Do you find your job meaningful? Look into that and you might find that you need to feel that you're making a difference with your work. I had a similar situation where I felt like a cog without much significance to my job. Dealing with technology day in and day out can be very dissatisfying.

Possible solutions:

1)Find out what you really want to do even if it's less money

2)Do you need to find someone to share your life with?

3) Do you need to work up the career ladder?

4) if what you want to do won't let you make a living. Use your current job to finance what you want to do. It will give your job a purpose.

5) Talk to a mental health professional.

I would take one of those long vacations and test different things. You'll have to take action. You can talk about it forever and it won't make a difference.

qxzw 14 hours ago 0 replies      
Life is more than career and income. You are not your job. Analyse other life choices. Are you with a wrong person? Do you think you let somebody down? Do you have to repair some damage? Are you giving anything away? Are you grateful?
thecupisblue 21 hours ago 1 reply      
Start creating, and not just writing code, start creating outside of development.Start writing, making music, painting, sewing, designing, woodworking. Try going out with friends to different events than usual and try different things - new kind of music, new kind of food, new kind of drinks.. Smoke some weed and lie in bed thinking about your life.
cmstoken 18 hours ago 0 replies      
You haven't told us enough information. What's your social life like? Do you have any close friends or acquaintances? Do you have any family members you talk to? Significant other? etc...
bkohlmann 1 day ago 0 replies      
What are you doing to make others lives more meaningful and productive? My experience is that refocusing my attention away from myself, and towards others has the unanticipated benefit of lifting my own well being.

As a start, volunteer one hour every week at an organization that interests you. Do the grunt work. See what the effect is after a month and grow from a simple base.

vfulco 1 day ago 1 reply      
Because you are a slave Neo ;-)
seekingcharlie 18 hours ago 0 replies      
It's not out there, man. The world is an illusion.

Start meditating :)

mapster 16 hours ago 0 replies      
what are your thought patterns when you feel at your worst? (i.e. wish I was doing x thing, or living an x life).
crypticlizard 17 hours ago 0 replies      
Imo happiness comes from our beliefs. Beliefs add up to become perspective. Once perspective aligns we garner from it our personal truths. As humans get older we tend to stabilize perspective and truth changes less. This is why suggestions to resolve inner turmoil commonly focus on stabilizing ones belief structure: it makes truths more reliably convincing. Humans find it deeply satisfying to know the truth. Unfortunately, universal truth is elusive and not likely provable so instead the pyramid paradigm we live in says: convince yourself of whatever truth conveniences you the most, and we'll sell you the means to believe it.

Something has put you near the top of the power pyramid for its own reasons. And the whole of global consumerism is here to service your happiness. Consider all that went into the wealth and influence you have as a rich person. Everywhere you go you can buy approximations of happiness, but your beliefs are preventing that from happening. You worked to get your job that provides your high status. Now you have the right to that level of buying power but your beliefs are holding you back from being a successful consumer at your place in the pyramid scheme.

Ask HN: Which cryptocurrencies do you think will succeed and why?
7 points by habosa  14 hours ago   5 comments top 5
thecupisblue 1 hour ago 0 replies      

1. Because it was first .

2. Because it's got a strong ecosystem .

3. Because a lot of new ones are scams, pump and dumps or unreliable.

ismaelbej 6 hours ago 0 replies      
The first to get 1000 transactions per second at a reasonable fee without consuming the energy of a small country.
grover_hartmann 13 hours ago 0 replies      
Bitcoin, hands down.

SegWit will activate soon and after that we'll get things like lightning with super fast / cheap transactions and no more waiting for transactions to get confirmed.

I think we'll see a lot more mainstream use after LN and the price will either skyrocket or stabilize as a result.

companyhen 14 hours ago 0 replies      
Bitcoin because it was first.
meric 9 hours ago 0 replies      
Over what period, 2 years, 5 years, 10 years, 50 years, 100 years, 500 years, 1000 years?
Ask HN: What are some good tools for keeping a software project on track?
98 points by bnchrch  2 days ago   73 comments top 35
dannysu 2 days ago 3 replies      
Tools don't keep projects on track. Communication skills and project management skills keep projects on track.

I believe the most important task is to teach your team members those project management skills.

Teach them the skills to recognize unexpected events and know to communicate those bad news proactively. For example, an assigned task turned out to be much more difficult or larger scope than previously thought? Communicate. Uncertainty whether things can get done in time? Communicate. Feeling even the slightest uneasy about anything? Communicate.

Understanding of the business goals? You have to teach it and make it clear. You're not gonna have a textbox, type it in and expect the team to just get it. There's a difference between reading something, and understanding something.

Again, tools are "tools". No tool can allow your team to just be in zombie mode and not use their brain to think. Tools are there as an aid, not to fill in a hole in competencies.

Choose whichever tool that works for you. Observe how your team members are doing and teach them the necessary skills as needed.

At my company we've used simple Google doc, Asana, Trello, and now we're on JIRA. They all have pros and cons, but so far JIRA is working out alright and I think better than Trello.

boffinism 2 days ago 1 reply      
In my experience, what matters most is good communication. Whatever tool you use, what matter most is making sure your team are diligent about updating it, and about responding to updates by others. If you can get them doing that, then using a spreadsheet or a wall of post-it notes will give you 80% of the benefits of using the most advanced dashboard/kanban/IM tool. If you can't get them doing that, then even the most advanced tools won't save you.
tootie 2 days ago 0 replies      
Post-it notes are an absolutely terrible mechanism even for a small colocated team. Trello is barely sufficient. It's a digital task list, not project management. I'm sure everyone is deliberately thumbing their nose at enterprise tools like JIRA, but I consider it absolutely essential. Take the time to learn how to use it. Pick a workflow that works for you and just enforce discipline. It can do release management. Even in an automated way with Jenkins plugins. Pair it with bitbucket and you can create feature branches from the UI for each ticket. You can easily match commits to which feature they were for.

I know there's also a lot of scorn for agile, but the core tenet is really just writing well-defined stories. Make each ticket the smallest possible feature with incremental value than can be built, tested and deployed. Then stack your tickets in priority order. Everything else about the process is for communication and visibility, but if you write your stories well, they are less important.

ryandrake 2 days ago 1 reply      
Incomplete problem statement. Project size plays a big role.

A lot of solutions posted so far (post-its, E-mail, whiteboard) work well for 2 person projects, with discipline scale to 20 person projects, are problematic for 200 person projects, and are totally inappropriate for 2000 person projects.

Specialized tools are recommended when projects scale beyond 10-20 people. Formal process helps. You also need to track risks as another poster pointed out. If your project is a part of a larger whole, you need to track dependencies and their schedules (other teams at your company, vendors/suppliers, 3rd party open source dependencies, etc.)

gaius 2 days ago 4 replies      
The only project management tool I've ever seen work effectively - I'm not even kidding - is a whiteboard with Post-it notes stuck to it. Everything else is snake oil.
wikwocket 2 days ago 0 replies      
One micro-solution to the "what's deployed right now" problem is to have a health-check url for your app, which includes info like what git commit was used to create the current build, when it was deployed, and some basic application health info.

You can monitor this for basic uptime monitoring and refer to it to sanity check which version is deployed. We do this at my place and it's super convenient.

blipblop 1 day ago 0 replies      
I have found that revisiting the same documents during regular meetings works best. First starting at a high-level overview of the projects/milestones/deadlines/customers and then drilling down in the detail.

> Know what each other are working on? (progress/blockers)

a. Gantt chart = Asana + Instagantt

- Instagantt is great. It allows you to create a Gantt chart from multiple Asana projects. I have an Asana project for each customer project with the deadlines/milestones. I also have a project for Ops/Refactoring "projects" (changing ORM, dockerizing, etc.), a project for Releases, and a project for Meetings.

- I use to think Github could do everything but business-folk seem to struggle with it, and Asana is more flexible. Assigning tasks to people in Asana is great.

b. Kanban board = Github + Zube

To actually get things built we work in loose two week sprints. We create Github Issues for tasks we are working on usually keeping them quite broad as usually a lot of details emerge once we start working on them.

We estimate time based on Planning Poker with the goal being to become better at estimating time and scoping tasks.

> Know what is currently deployed to production and staging? (heroku)

I've started keeping details of releases in Asana. Could also use Github Milestones. We feature freeze releases to a branch called `release/0.5.x`, when we ship we use a tag called `release-tag/0.5.0`, and then tag our deploys with `deploy/staging`, `deploy/prod`, or `deploy/<on-premise-customer-name>`.

> Keep track of larger goals (milestones)

We use a Gantt chart is visualise this, and usually some high-level strategy docs in Quip.

smithkl42 2 days ago 0 replies      
I've successfully used Pivotal Tracker for my last three startups. It's an opinionated tool whose opinions don't always match mine, but it works well, and I've scaled it to teams up to about 15-20 participants. Beyond that, it seems to get bulky and hard to work with, but I don't know if that's so much a limitation with Pivotal, or with how I've tended to use it.
olalonde 2 days ago 1 reply      
Small team here.

1. We do all of this from Github using issues, milestones and projects. We have a GitHub Slack integration which can also give a feel of what everyone's working on. We also have a meeting every Monday where everyone says what they'll be working on this week.

2. Master branch is always in production. Staging branch is always in staging. We use CircleCI for CI/CD.

3. Milestones in GitHub.

leipert 2 days ago 0 replies      
We are using Kanban with the help of JIRA. Took it a while to set it up, but the switch from OpenProject & Sprints was totally worth it.

1. How do we know what each other is working on?

All of us (~15 people, 5 of which remote) participate in the daily at 10 o'clock. The daily takes around 15 min and it is focused on the stories and every one has a good overview on what is everyone doing. Other meetings are usually organized in the daily. Typically like

A) "I have this and that problem with X, I would like to talk with B)"

B) "Okay, let's talk after the daily."

C) "I have also interest in this"

Every day the daily is lead by another person. At the end of daily we ask questions regarding if everyone has enough/to much to do, knows what to do and so on.

2. How do we know what is currently deployed to production and staging?

Version numbers ;) And Bamboo deployments.

3. Larger Goals

Big releases every few months with planning directly after each release.

taprun 2 days ago 0 replies      
As a former pm, I sure hope you're going to track risks. Things that are (or should be) spotted early need to be tracked and managed.
ilaksh 2 days ago 0 replies      
Depends on the type of project. For small projects it mainly is about engagement and communication. They have to actually be around doing work and also have time set aside to communicate. They have to actually use the communication tools effectively. A lot of people actually are bad at online communication so you have to correct or work around that. If you are doing online everyone needs to be good at whatever online communication, or trying hard to be. And if most people are using Github issues for example, some people can't be doing their own thing on Skype if they overlap with the stuff on Github.Github.A chat tool with history.Phone calls or Skype or any voice tool.Make sure people are available for a minimum amount of time every day or few days to discuss things freely.For me I think it is counter-productive and just stressful to dump a big to-do list in any tool. Concentrate on the most important tasks for that week or two is how I do it.
ajax100 18 hours ago 1 reply      
You should check out Standup, it makes it easy to track what everyone in your team has been working on:


foodie_ 2 days ago 1 reply      
I'm honestly surprised no one has said it yet, but you shouldn't be thinking about tools at this stage. You should start on Monday and see what they are using, identify where it's not working and propose a solution.

It's simply to early to think about the solution at this stage.

(With that said I manage a remote team and we use kanban on trello, heroku and slack. We only meet as needed)

astonex 2 days ago 0 replies      
At my job we use https://clubhouse.io which is basically Trello but with a lot more helpful features

We can see what everyone is working on just by looking at the stories in our 'in development' list which show who picked up that story.

We can also group stories into epics and milestones to track progress towards larger goals

perlgeek 2 days ago 0 replies      
Most modern software development methodologies have elements to address your point 1. For example Scrum has daily standups that specifically inform every attendant about progress and blockers. Kanban mandates that you visualize your workflow with a board.

Tracking the larger goals is often not well formalized, but I like this podcast episode about levels of planning in agile projects: http://deliveritcast.com/ep33-always-be-planning. It's often included in frameworks for scaling scrum, like SAFE of scrum of scrums.

2. is a purely technical problem. If I remember correctly, stuff deployed to heroku corresponds to git branches, so it should be pretty easy to create some visualization about what's deployed right now from looking at git repos. I could be wrong here.

eikenberry 2 days ago 1 reply      
I've worked on several remote teams and for keeping up with each other the best combo I've found is a daily chat based standup, optionally with a standup-bot. Along with a ticket tracking systems with an in-progress state + a dashboard layout that includes your teams in-progress stuff.

For example my dashboard I has a 2 column layout, on the left top is my in-progress stuff and down the left side is the other team members in progress stuff. On the right top is my assigned tasks and below is monitored tasks. This layout is useful to me for tracking my work and I get to stay aware what the others are working on. It helps a lot to keep tickets small in scope, so you can rotate them fairly often.

Of course what works depends on the nature of your teams work. Anyways, just some ideas.

dasmoth 2 days ago 0 replies      
1. Know what each other are working on? (progress/blockers)

The closest thing I've seen to a nice solution to this is to e-mail a brief report of what you've been up to to the manager at the end of the week, who collates into a summary at the start of the following week. Lightweight, avoids superfluous detail (because the coordinator can edit it out), and not so fine-grained that individuals can't sit on a problem for a day or two while thinking it over if that's their preferred style.

Obviously, this doesn't preclude talking about individual issues during the week! But daily check-ins force this too quickly in my view.

ksikka 2 days ago 0 replies      
For 1 and 3, it's the process that matters more than the tool. One process I found effective is maintaining a spreadsheet of tasks and a spreadsheet of larger milestones, updated in periodic meetings.

For the task spreadsheet, you can have a twice-a-week stand up where everyone goes around and updates their own tasks on a google sheet in turn.

For the milestone spreadsheet, a period between one month and one quarter works well.

Although meetings are often eschewed by software engineers, they really do help to keep projects on track.

Also appoint someone to be in charge of tracking the "health" of various milestones, red = needs course correction, orange = at risk, green = on track, etc.

msupr 2 days ago 0 replies      
I'm pretty surprised to see so many people recommending post it notes or a whiteboard. Even if you aren't remote, people are going to have sick days or WFH days and "can you take a picture of the whiteboard for me" requests are nonsensical.

Start with Trello. You can easily bend Trello to work with any productivity/PM system. Easy to get started and easy to evolve your process over time. Lots of great examples of how people are using it and some cool plugins to extend it.

#1 is extremely easy to implement in Trello. #3 is definitely possible but takes some time and buy in.

billdybas 2 days ago 0 replies      
I echo others: effective communication and a motivated team are more important than any tool.

I would add that visibility into what everyone else is working on is also super helpful to avoid stepping on other's toes or duplicating work.

Once you've got communication down, you might find one of these tools useful:




laktek 2 days ago 0 replies      
Let me answer those with what we are currently doing in our remote startup:

1) Team members have to reply to a thread on "What are you working on?" at the end of the day. This keeps everyone informed of progress and blockers.

2) We use the CI dashboard to answer this (any changes to the master branch are auto-deployed to staging, and then staging is manually promoted to production.)

3) We use a Gantt chart to track high-level milestones (usually we go through it once a week to see where we are at).

sirrele 2 days ago 0 replies      
1. JIRA <------ This is what you are looking for..2. Testrail <3 QA + JIRA3. Confluence <3 JIRA4. OneNote [Mac's Desktop App > Window's :( ]5. Slack + Git + JIRA + Screen Sharing + Emojis - Video Calls 6. SourceTree [Use when no one is looking]7. MySQL Workbench Crashes When Mad | Hard to let go......Write some damn scripts and automate it already!
edimaudo 2 days ago 0 replies      
If you want to keep a software project on track, tools are secondary. The most important things are proper communication, good people management and some luck.
a_imho 2 days ago 1 reply      
Individuals and interactions over processes and tools.
dreamdu5t 2 days ago 0 replies      
Lines of communication and chain of command are more important than tools. The only person who should need to know what you're doing is who you report to. And so on all the way to the top.

Trello, jira, aha, whatever won't help if you don't have clear lines of communication and a chain of command

klenwell 2 days ago 1 reply      
About a year ago, I took over a small team of 3 developers that was floundering and demoralized. This was not a remote team but I think that's incidental for the most part. I admit I'm writing this mainly as a testament to my own experience. But I think it includes some sound advice (a lot of which I collected from Hacker News discussions over the years.)

Process is key. Tools should serve the process and the team. First thing I did was to put together a basic scrum process. This had an immediate positive impact that has persisted. Some recommendations:

- Respect your team members. Give them the benefit of the doubt. There have been some good threads on HN about the distinction between being a dev and a manager.[0]

- Short daily standups: no more than 10 minutes, just the three questions: Did? Doing? Blocks? We do them in-person in the office, but I also do them over email with some of our contractors.

- Regular sprints (I like two-week sprints) with focused, structured demo, retrospective, and planning meetings.

- Retrospective meetings with developers and product owners that identify pain points but emphasize fixing the process not blaming or fixing individuals.

- One-on-one meetings every other week with members of my team and with my manager.[1]

- Weekly grooming meetings: product owners and developers together review, size, and prioritize stories.

- Projects are managed in Trello: cards are either user stories or defects with acceptance criteria.

- Issues are tracked and documented (in Github). I set an example for my team by thoroughly documenting issues and emphasizing best practices.

- Developers don't work on anything that doesn't have a Trello card (we have an action item card for small one-off tasks.)

- No burndown charts!

A lot of these practices I carried over from my previous job, where we used scrum but, because of laziness and laxity on a few points, ended up with a pretty dysfunctional team.

My only real innovation was the "No Card/No Work" rule. I think it's essential. It both stops managers and stakeholders from derailing the process. And it provides a record and reference for the team's accomplishments. Coming into an existing team, I made sure I was flexible and accommodating in implementing the new process. But this is the one point on which I told my manager I needed to be firm. We agreed to leave a little bit of room in each sprint for any urgent stories that might come up. It's worked out well.

Finally, my managers support and respect the process. Commitment was one of the keywords that was emphasized when I was first trained in Agile Scrum and I appreciate the significance of it now. Without the investment and commitment of management, this would probably all be futile. For larger goals, we created an Epic board that my manager likes to use with senior management. Trello is great because it visually reinforces the reality that priorities are a queue and if you push some urgent new job to the top, everything else in line is going to get pushed down and delayed. It's funny how easy it is for people on high or under stress to ignore that basic law of nature.

[0] https://news.ycombinator.com/item?id=3407643

[1] https://workplace.stackexchange.com/questions/32765/what-is-...

anotheryou 2 days ago 1 reply      
How do you guys manage large backlogs? Tiny bugs or nuances with low priority that just accumulate and are a pain to review again because you are not even sure they are still reproducable.
wheresvic1 2 days ago 0 replies      
If you are looking for something simple I can highly recommend Trello.

It is very flexible - you can label tickets, assign them and you even have git integration!

sAbakumoff 2 days ago 0 replies      
1. Jira is awesome for it.
speedracr 2 days ago 0 replies      
Post-its are hard to beat because they function as a backdrop and everyone walks by a couple of times per day, whether they want to or not.

For remote teams that run on Slack, give http://www.slash-done.com/ a try - a good friend of mine had this built after missing a simple way of having everyone check in once their tasks were completed.

jaequery 2 days ago 0 replies      
unfortunately, there is no one good tool. you'd have to use a combination of Asana, JIRA, and something like Productplan.

it is quite interesting to see that no one has yet created one that combines all three in a simple / minimal interface.

zwetan 2 days ago 0 replies      
simply look at the tools you can find on Github or similar: issue tracker, wiki, versioning of release, etc.
Walkman 2 days ago 1 reply      
not tools, however these are the best: your brain, your mouth and some things you can write with. Maybe a computer.
vermooten 2 days ago 0 replies      
'On track'? Really? Dude it's 2017, not 1997.
Ask HN: What's the best business for a tinkerer?
37 points by cronjobma  1 day ago   20 comments top 9
kamphey 1 day ago 2 replies      
Start a YouTube channel.Either learn filmmaking or find a friend to help.

Upload a video a week. Full complete projects. Post them on reddit.Reply to every comment. Ask for suggestions of next project.

After 3 months or 12 videos. Start posting 3 times a week of projects in progress.

After 3 months start live streaming twice a week.

At the 6 month mark start a Patreon. Even if you don't have any patrons immediately learn the platform and incorporate it into your videos. Set a goal that entices ppl to participate. Maybe one of your projects was a hit.

Hope that helps.

kspaans 1 day ago 1 reply      
Reverse Engineering and security. Every executable you reverse is like a new project!
fest 23 hours ago 0 replies      
I have a friend who runs a lifestyle business of:

1) One-off mechatronics projects: museum exhibits, cable-cams for filming companies, puzzles for escape-rooms etc.

2) Regional distribution and support for a particular brand of lasercutters.

From what I see, he spends most of the time on first category but most of the revenue comes from the second.

rad1o 1 day ago 1 reply      
Teaching others how to tinker. My wife and kids started this business: https://makerjunior.com
patrickg_zill 1 day ago 0 replies      
Are you involved in a local hacker or maker space?

Do you think you can make a kit that parents or other hackers would want to buy, like the build your own robots kits that come in pieces but include all the parts needed?

I know of one guy that got certified on shopbot and the laser cutter, and used that knowledge to get clients. He helps them go from idea to something repeatable.

mjfl 1 day ago 1 reply      
You sound like me. If you like writing tutorials for your tinkering, I'm building a platform to support people like you: https://ocalog.com/ I'm currently tinkering with Ethereum.
brudgers 1 day ago 0 replies      
mchannon 1 day ago 0 replies      
1. Make something people want.

2. Learn how to make it for a lot less than people will pay for it.

3. Partner with people who can market your projects.

SirLJ 1 day ago 1 reply      
How about quantitative trading systems? I am really enjoying thinkering, back testing, inventing, I think this is the ultimate location independent lifestyle business...
Ask HN: Where to find raspberry Pi zero or alternative under $15
6 points by bedros  13 hours ago   4 comments top 3
zapt02 12 hours ago 0 replies      
Unfortunately the CHIP ($9) hasn't shipped for a couple of months while they revamp their CPU. I have a few and they truly are exceptional hardware and probably better than the Zero for your needs due to onboard wifi, bluetooth and 4GB of storage.


Its big brother CHIP Pro ($16) can be ordered in any quantity but you will need to solder your own headers. Depending on what you want to do it might be a good fit:


Pine also has a $15 board that seems to be shipping:


brookish 10 hours ago 1 reply      
I have had really good luck with these boards. http://nanopi.io/nanopi-neo-air.html

$20 but they do not need a permanent SD card and they need a heat sink. The Allwinner CPU's seem to get much hotter than the Raspi Broadcoms. The issues I have experienced really have been nuances of the Linux distros but very workable.

bigiain 11 hours ago 0 replies      
While I understand the Pi Foundations "one per order/customer" rule - I share your frustration. There's a bunch of ideas I've got where 10 or so Pi Zeros would be both useful and affordable @ $5 ea or even $10 for the ZeroW, but I just can't buy them like that...

I wanted to make a "real working" diagram of our standard AWS platform as a wall chart - with 3 ELB load balancers, 5 autoscaling ec2 instances (3 "active" and two "spares"), and 3 "multi-az" RDS db servers - each represented by a Pi Zero, with ws2811 led strip running between them representing the network which lights up animating packet/data flow. It'd have big red killswitches next to everything, so you can push buttons to kill off bits of infrasructure and visualise how the platform responds (with the spare ec2 instances autoscaling in to replace dead ones, ELB and RDS traffic auto-rerouting). And I'd use this to run our "standard" backend, so people could connect with their phone (with a browser or test app) and "see" their own network traffic and watch how it still works even if you kill any 2 and up to 8 different parts in the right combination.

I think that'd be a really useful way to demonstrate to non-technical stakeholders why if they want better response times that "we'll get to that Monday morning" when something breaks after 5pm on a Friday - I'm going to charge them _way_ more to support their site if it's running on a $5 or $10 per month VPS than if they spend $120/month or so on AWS to host it.

(Oh, and I second zapt02's recommendation for the NextThing CHIP - I've got half a dozen of those, and they're working out really well in other projects - but I've also got another 5 on order and have been waiting several month for em...)

Ask HN: Is there mandarin speech-to-text API with result confidence per word?
10 points by sammyjiang  1 day ago   2 comments top 2
owens99 1 day ago 0 replies      
aka iFly has the best. Mandarin speech to English text and vice versa.
nolite 1 day ago 0 replies      
Google Speech API is pretty good, and has confidence results
Ask HN: Help Need startup-friendly patent attorney to respond to office action
4 points by not_that_noob  13 hours ago   2 comments top 2
gus_massa 12 hours ago 0 replies      
Grellas is a startup-friendly attorney. I'm not sure if he know about patents. https://news.ycombinator.com/user?id=grellas
cryptobailey 12 hours ago 0 replies      
If you're also needing help with funding CoinStarter can help too. https://coinstarter.com?ref=dt3ndxx3j
Ask HN: What music do you listen to while you work?
6 points by colin_  14 hours ago   4 comments top 4
dakom 20 minutes ago 0 replies      
I tend to hop over on soma.fm and pick a station. Usually "Sonic Universe" but I sometimes bounce around to the folk stuff, dubstep, celtic, etc.

Overall I like listening to either instrumental stuff or stuff I've never heard before, I feel like listening to songs with words that I know becomes a distraction somehow.

Interestingly, while driving and doing chores it's the exact opposite - I'm always relistening to songs I've heard a million times :)

partisan 8 hours ago 0 replies      
MCMXC a.D. By Enigma

Music for Programming

Music for the masses by Depeche Mode

Syro by Aphex Twin

The inevitable end by Royksopp

Dead can dance by Dead can dance

Ghost in the shell soundtrack by Kenji Kawaii

I also listen to a lot of podcasts lately though I tend to tune them out and they become mostly white noise.

mtmail 14 hours ago 0 replies      
sm4sp 13 hours ago 0 replies      
I listen to the same rap albums over and over again.

The up-tempo beats and lyrics keep me well paced throughout the day

The first part of my day is spent listening to either Kanye West's discography or Kid Cudi's discography (omitting some of his experimental stuff) then I might mix in other albums after lunch

Ask HN: What career path is better. Bleeding edge or niche?
6 points by minionslave  15 hours ago   7 comments top 3
mswen 14 hours ago 0 replies      
In your example I believe that complete mastery of ASP.net and strong competency in the adjacent pieces of the MS stack would probably generate the best job security. This stack is used in many medium size businesses all throughout the US, including many with cheaper cost of living than the Bay area. However, you need to be comfortable knowing that you will work mostly on CRUD type applications that power so many business processes.

The bleeding edge is much more interesting but also carries much higher risk and potential reward. You may find yourself expert in something that was technically very interesting but the timing is wrong or the specific tech fades quickly. So failure mode has you learning and relearning the latest frameworks trying to stay hip and potentially changing jobs frequently. On the other hand, success out on the bleeding edge might but you in an equity position in a start-up that turns into a unicorn.

I gravitated more toward the fringe and have built some cool tech but the start-ups and projects never reached market success and so I often reflect that had I picked more standard problems and tech and become expert in those I would have very high consulting rates today and plenty of work. As it is I have moderately high rates but I don't quite fit into people's mold and it is somewhat harder to stay busy with billable hours.

In the end you also have to live with yourself intellectually and emotionally. So although my more fringe focus hasn't yielded the best economic ROI - I have mostly enjoyed the choices and outcomes for my own life.

seanwilson 6 hours ago 0 replies      
What kind of job are you looking for? It depends what you want to do. If you're applying for existing companies seeking certain skills that's one thing, but if you're contracting for non-technical clients they don't care what technology you use as long as you deliver a solution on time and do it well.

Personally, I think once you have enough experience you should be able to easily pick up new frameworks. I don't understand developers who try to define themselves by a single language or a single framework. You should be trying to pick the best tools available and learn as you go when required. You might be safe for a couple of years sticking to one thing but the industry is constantly changing so you should have a diverse skillset and always be learning.

muzuq 15 hours ago 3 replies      
If you ever want to truly be held as an expert, you should be doing what you _enjoy_ most. Not for money, not for job security. Purely enjoyment.

The rest will follow.

Ask HN: Is someone at GitHub having a rough day today?
12 points by dzwell  15 hours ago   2 comments top 2
gt2 6 hours ago 0 replies      
Do you have any proof this happened?
flukus 6 hours ago 0 replies      
Phishing scam maybe? It's not the first time github users have been targeted: http://www.javaworld.com/article/3187571/security/open-sourc...
Ask HN: What is the most impressive career switch you've ever witnessed?
5 points by bsvalley  16 hours ago   7 comments top 5
muzuq 15 hours ago 0 replies      
I don't know if "impressive" is the word I'd use, I also don't know if this is the sort of story you're interested in, but...

I graduated Construction Engineering Technology, worked manual labour and moved into an estimating/quantity surveying role at a small construction firm. I was still site foreman at the time, and did just as much physical labour after graduating as I did before.

I decided physical labour was not the life for me. Got hired on at a small oil and gas engineering firm which engineers specialty products for large diameter pipeline construction. What was I doing? Reception. Answering phones. Doing dishes. Booking flights. All the administrative things which were (I thought) far and below me, the educated man.

Fast forward 6 months, I've had two promotions, two raises, and am having my IIBA membership and classes paid for. I still do some reception duties, but rarely.

I think there's a lesson to be had here. I was pretty upset moving into a role at the bottom of the pole, after being fairly "high up" in my old role (well, lots of responsibility even if the pay didn't quite reflect that). But, now I'm making more money than I was, with as much schooling as I (reasonably) want paid for. I showed up with a good attitude every day, and no matter how remedial I felt the work was, I put in 100% effort. It paid off. It's continuing to pay off.

tldr - Started as a receptionist, now am much more

le-mark 4 hours ago 0 replies      
I once knew a guy who was enlisted in the Air Force (US) and assigned to a ROTC unit at some school near Harvard. He some how got into Harvard Business school and got the Air Force to pay for it. When I knew him, he was in my reserve unit, and had finagled a COO role at a prominent local business with the mandate to turn it around. Apparently this was based solely on his MBA from Harvard. Which he did. He finished out his reserve contract and last I heard had moved on to CEO some other company.

TL DR: Air Force enlisted to CEO.

Edit; Now that I think about it, I also worked for another company who's CEO had started of enlisted in the military (army national guard iirc). So two enlisted to CEO stories.

rcarmo 16 hours ago 1 reply      
I know irony is dangerous on HN, but there was this millionaire who became politician and presided over a nation.

I think that it qualifies as both unthinkable and impressive (albeit mostly in terms of collateral damage).

mattbgates 15 hours ago 0 replies      
Probably nothing crazy but I reflect on my life. I started working as a security officer after high school. I thought: I'm going to move up in the ranks and make good money. I knew everything and I was ready to take on the world.

While my pay wage was something of a joke, although at some sites it was more than others, but 4 years later and a penny raise (boss probably did it as a joke), I realized, I was stuck in a dead end job with no opportunity to grow.

I went back to college, having no idea where I would end up. I continued working security jobs in order to help me pay my way through college. I was interested psychology (which I have my degree in) and eventually wanted to do something with career counseling -- helping college students find their place or helping people who decided to have a career change later in life.

During my latter years in college, I got out of security and worked for student life, which only paid some minimum wage, but I got to do a series of jobs such as orientation leader, secretarial work, and even campus card (I took photos of everyone), and even worked at a liquor store in downtown Chicago for a year.

Anyways, after college, I moved to Israel for a year, where I taught English to elementary and middle school students, and although it was nice, I wasn't very interested in working with kids. This nonprofit organization needed a website so I volunteered to do it for them and loved it. It gave me some insight into web design.

I moved back home and I was desperate for a job with no money and student loans to pay off... so I did the only thing I knew to do: I applied across the boards on Craigslist. I figured I had a college degree now, who wouldn't hire me? Only one company responded, a software company that licensed out their autobody shop software, a program created in Visual Basic 6.0. I had experience in it personally, having taught myself when I was like 11 or 12, but not any experience professionally, but they took a chance on me, and I worked there for a year and a half. I was hired to make the UI more friendly and fix bugs.

After that, tired of a tyrant boss, I moved on to full-time web designer for a Solar Panel company, working in Flash and did the animations for them that displayed on a kiosk for companies in their lobbies. At the same time, I also got hired as a web designer for the media (Solar Panel company on location from 8 AM - 5 PM, media company remotely from 6 PM - 2 AM). I was also freelancing on the side as a web designer. So for almost 2 years, this was my life.

I was eventually laid off from the day job and currently still have a job working for the media, but I am no longer working remotely. They gave me a choice: move across the country or get laid off. So being one of the only employees who chose to move, out of about 20, I negotiated a nice salary rise and they even paid for my move across the country.

If you asked me just a decade ago what I would've been doing today, I probably would have never guessed I'd be working as a web designer / web developer.

dozzie 15 hours ago 0 replies      
Any career switch that involves dozens of months of training is veryimpressive. I've seen several career switches. One of them was an architectthat took part-time CS studies to become a programmer. Another was a HR guythat was an electrical engineer before; he was around 40 years old when hetook the same part-time CS studies as the mentioned architect. Yet anotherstarted as a paramedic, then switched to civil engineering, and he still hasenough energy to learn programming (though he's forced to do this, as there'slittle construction work around here).
Ask HN: How to be an activist for a more open government?
4 points by interdrift  1 day ago   1 comment top
crypticlizard 15 hours ago 0 replies      
Hard question because activism commonly isn't straightforwardly legal. Legal activism kinda doesn't work because corruption is invested in the status quo and has the power to suppress rogue actors. But there's lots of technology companies you could build that could defeat corruption by making a technology that makes corruption infeasible. It's a circuitous route to activism though, and it doesn't feel as powerful or immediate as traditional activism. And you're likely to be subverted by the corruption, else losing your business or being branded a criminal.Illegal activism isn't much better though. Snowden & Aaron Swartz were modern activists that told truth to power and got hammered.

There's a reason your country has sustained corruption that has global implications. Do you know what foreign influences the corruption serves? A good way to tell might be finding out what corporations are invested in your countrieseconomy. Then as an activist you can target that corporation in your search to expose the truth of who funds and perpetuates the corruption.

Ask HN: What advice would you give for breaking into top-tier companies?
11 points by peller  1 day ago   8 comments top 7
bsvalley 1 day ago 1 reply      
If you're targeting companies like google, facebook, etc. They're looking for excellent algorithm solvers. Ideally, people who can right a complex function on a whiteboard in a very short amount of time (under 15 minutes).

That's it.

Your past experiences don't really matter. My best advise is for you to memorize as many algorithm problems as you can and to make your Resume look like you'd be someone who could easily crack a "technical" interview. They usually look if you've already worked for one of these companies in the past, if you've graduated from a prestigious institution, with an excellent GPA, if you've won a hackathon and things like that. Forget about buzz words, technologies, prior projects and open source stuff. We all do that by default. Unless you're someone like Guido van Rossum, they don't really care.

nostrademons 1 day ago 0 replies      
Get the relevant experience via working on open-source stuff.

That doesn't mean a ridiculously over-engineered side project with distributed micro-services, BTW. Most of the top-tier companies don't actually fall for the bullshit that makes up most of the tech industry hype cycle.

It could mean investigating an interesting data-science problem with publicly-available data, building a model with some predictive validity, and publishing your findings & code via blog & GitHub. Or it could mean building a side-project for some local organization of importance to you, but really going the extra mile on user-experience so it's not just a CRUD screen, and you collect data in unobtrusive ways that don't bother the user. Or it could mean working on a hobby programming language and delivering a working compiler.

Mz 1 day ago 0 replies      
I don't code, but I was a homemaker for a lot of years. My first full time paid job was at a Fortune 500 company. I was 41 years old and it paid better than minimum wage.

I didn't plan that. I was trying to get a different job when a relative suggested I apply. But I knew people at the job who had spent years trying to get good enough to qualify.

Get a copy of "What color is my parachute?" and read up on the section concerning informational interviews. See if you can get a few information interviews. The point is a fact finding mission to get some idea of what it really takes to get into the company in comparison to where you currently are.

Do some googling online and start a folder to compile information on your target companies. Try to get some insight into what they are looking for.

Try to find out what the application and interview process is like. Big companies tend to have very formal processes. Insider connections will generally be less useful to you than in small shops like you have been working at.

I would do some basic legwork before asking further questions of this sort. I got a job at a big company and I can't really tell you how to make that happen. I had several years college and I had the math and language skills they wanted. I ended up qualifying for two positions and picking which one I wanted, this after more than a year of getting nowhere in my job search while going through a divorce. But there are people who are talented at job hunting (my sister is one such person) and my impression is they do a lot of research before applying.


muzuq 15 hours ago 0 replies      
Networking, networking, networking.

And I mean the social kind.

Regardless of experience, resume, whatever.. Networking is everyones number one way of getting a "foot in the door". Honestly, if I were you, any time you think you should spend polishing up your resume / brushing up on data structures whatever; you should instead spend your time getting out there and networking.

Ask people to refer you to other people. Meet people for friendly coffee, and don't even bring up that you're looking for work the first coffee. Start commenting on popular blogs, insightful articles on LinkedIn, etc.

EnderMB 1 day ago 0 replies      
I've been thinking about posting something similar, but your experiences match mine, so I'll wade in with my experiences too.

I too am a developer with 7 years of experience, probably a bit more if I count freelancing during university. I studied at a not-so-great university in the UK where I studied Computer Science, and most of my experience is either in a non-tech startup or digital agencies. In terms of agency strength I currently lead projects for a big UK agency in a satellite office. I'd say I'm a decent developer. Not the greatest in the world, but typically one of the better developers in most places I've worked. I've also got some open-source work behind me, and some user group talks, although primarily to do with content management systems.

Over the past decade I've applied to Google and Microsoft a couple of times, and every time I've been quickly rejected by email. Whether it's for a college internship, grad scheme, as a recent graduate, or after a few years of experience, I've received a rejection email after a week of applying. I've had recruiters from Amazon and Microsoft contact me on LinkedIn in the past, and after sending over my CV I've heard nothing back.

My thoughts match yours, in that I think it's because I don't have the "right" experience. It's probably a mixture of me being a .NET developer (and the stigma that comes with working on Windows), and primarily working with Content Management Systems. It's been a negative at jobs I've applied to in the past, so I can only guess that it's the same for the larger companies. I have a CS degree, and a public repo full of C# implementations of various data structures and algorithms, so I doubt it's to do with a lack of knowledge. Outside of me being put on some kind of top four blacklist, I can only guess it's because neither company wants to hire a .NET dev.

Apologies if my reply isn't that helpful, but I thought I'd wade in as someone with a CS degree who feels that they are in the same position as you.

dabockster 1 day ago 0 replies      

I'm a full stacker too, so I sort of know what you're going through.


> but the response has always boiled down to "we don't think you have the relevant experience"

This has been my experience but as a guy one year out of school. And I live in the Seattle area, so you would think that I should have ample opportunities.

In my extremely limited experience, "relevant experience" can literally mean anything in this context. It might be true that they were looking for other technical knowledge. It could also mean that they were looking for another trait and wanted to let you down on a more neutral note. Basically, it's an HR term meant to avoid opening a can of worms on both sides.


>figuring I don't have the strongest resume

You have five years of full stack work. That's an incredibly strong background.

What languages did you write in? Platforms/programs/operating systems? What software patterns did you use?

Since you worked on a very broad area of software development, your resume is fine as long as you fine tune it a bit more to emphasize your knowledge on certain languages and frameworks, as well as the fact that you should have a good idea on how a software project evolves over time.


> Do I work on brushing up my algorithms and data structures knowledge in a lower-level language (and blog about it)?

You could try that. But that still doesn't guarantee that you'll get an interview. You could literally do this for a full year and still not get a code screen because someone will ask you "why did you only study this stuff for a year? where are your projects/work experience/meetup talks/OSS contributions/the holy grail/etc etc etc?!!!"


> Or do I spend time on MOOCs (and blog)?

Since you say you've graduated, I'm assuming you have a formal college degree. A MOOC would be a waste of cash at this point. You have the experience and education already. You don't need another diploma just to satisfy some HR drone.


> Or build a ridiculously over-engineered side project with distributed micro-services just to prove I can do it (and blog)?

Again, this is something that might get you in the door. It might not. Either way, I wouldn't recommend trying to write anything too specific. As the old saying goes, don't put all of your eggs in one basket.

And, once again, even if you're successful in building it, whoever replies to your application could still give you the "we don't think you have the relevant experience" jargon for literally any reason they feel like.


> move to a more opportunities-rich location, networking on the ground?

Only move once you have another job lined up. All those stories we hear of people moving for work reek of Survival Bias. We don't know how much they saved prior, if they had family/friends in the new location that could help them out, if they borrowed money, if they had their parents pay for it, etc. Moving anywhere is a huge time and money cost, so only do it if you have the cash and resources to do it. Reliable housing comes first, networking second.

But, then again, I do not know where you live.



Basically, my big points are

1. Don't do a MOOC if you already have any sort of professional programming experience (especially full stack). You already have the tools and knowledge necessary to learn almost anything related to modern programming on your own.

2. Don't move just to network. Networking won't necessarily get you a job, let alone an interview.

3. Don't read too far into those "I did it, so can you" articles. They're full of Survival Bias.

4. Companies can reject your application for any reason they feel like and get away with it by telling you something purposefully broad like "we don't think you have the relevant experience". It's total BS, but it's next to impossible to challenge it from outside the company.

5. It might be time to consider starting something new if it doesn't already exist in your town. If you know 3-5 people that have good business skills, you might want to consider talking to them.

6. There are a lot of over achievers in tech right now. Looking at them as you are right now can lead to phycological problems. You might want to consider talking to your doctor and/or a psychologist.


If you have any further questions or just want to talk/vent, feel free to give me a buzz at steven@stevenbock.me.

draw_down 1 day ago 0 replies      
Just don't expect them to be as good as they look from the outside. Smart people do dumb things, and good businesses can be run on top of a pile of absolute garbage, technologically speaking. PR people can work wonders. Et cetera.
Ask HN: What do you actually use your biohack implants for?
60 points by amingilani  2 days ago   54 comments top 10
88e282102ae2e5b 1 day ago 0 replies      
This whole concept seems like a combination of a desperate wish to be living in a better world and the need to seem interesting at parties. When there's a compelling reason to get such devices you won't have to ask people what they use them for, in the same way that you don't have to ask people why they have a cell phone.
pimeys 2 days ago 3 replies      
Does a CGM glucose monitoring sensor count? I get the values real time to my android watch and remote InfluxDB for later analysis.
cup 2 days ago 2 replies      
There are plenty of uses. Braces for teeth straightening. Cochlea implant for assisted hearing. Bionic eye to improve sight. Insulin pump to regulate blood glucose levels. Pace maker to supplement failing pacemaker cells.

Never understood why people associated "biohack implants" with sticking a magnet or NFC chip in your finger.

thinbeige 2 days ago 3 replies      
Maybe I am clueless but why not just stick a NFC chip on the back of your smartphone or just get one with NFC?

I can't imagine any situation where you need an NFC chip and don't carry along your smartphone. Ok, there's one: You are swimming in a swimming pool and need to open the locker afterwards.

michjedi 2 days ago 5 replies      
You could easily cut an Oyster Card chip out of the card, stick it in your hand and use it to travel in London.
falcolas 1 day ago 1 reply      
I want to do this - to expand my senses and mind (what else is technology good for) - but I really don't want something that will wear out and which can't be easily replaced. I respect the pioneers in this field, and look forward to the tech becoming more advanced and mainstream.

To those who believe it will never become mainstream - the same could have been said for tattoos and piercings a mere few decades ago. I remember a time when visible tattoos were a sign of a counter culture, not a normal part of life.

Heck, Google Glass was shunned for its camera, but the Snapchat Spectacles are actively embraced only a few years later.

marklyon 1 day ago 1 reply      
I use a modified digestive tract to minimize the amount of personal space I require. Thus far, it's working well.
lordnacho 2 days ago 2 replies      
Could you possibly use it as a train ticket? A number of modern commuter systems now have swipe system that are NFC chips. Is it programmable?
jackhwds 2 days ago 1 reply      
Can you not use it to pay for things? thats the whole reason I want to get one like an upgrade from apple pay
CodeWriter23 2 days ago 0 replies      
That's a hilarious parlor trick.
Ask HN: What sites do you use to become a good engineering manager?
2 points by kareemm  10 hours ago   2 comments top
presspot 9 hours ago 1 reply      
Ask HN: Which companies are considered to have the best engineers in 2017?
32 points by capocannoniere  3 days ago   20 comments top 13
bsvalley 3 days ago 0 replies      
I hear terms like "developers", "coders", "resources" and all these kind of stuff when companies talk about us. So I don't think any company has brillant "engineers" per se. They maybe have excellent algorithm solvers on a whiteboard. Google, Facebook, etc.
devonkim 3 days ago 1 reply      
To be contrarian, I'll point toward financial engineering (not retail or I-banking and such) such as Renaissance. It takes some pretty crazy and smart people to dig into FPGAs and HDLs trying to write what would normally be CPU based algorithms while focusing upon latency and availability as well when so many dollars are in motion. The industry's secrecy habits make it hard to get a fair assessment, but I've never heard of anyone incompetent at such a place while I've heard gobs of stories of incompetent people at large tech companies.
rl3 3 days ago 0 replies      
My vote is Epic Games. If you look at UE4 changelogs, the amount of productivity is staggering.

Core engine programming is no joke either, let alone on a commercial engine used by half the industry.

Axsuul 3 days ago 0 replies      
There are no "best engineers". There can be, however, a "best engineer" for the specific stage the company is at. The typical higher echelon engineer that you'll find at the Big 4 will not necessary thrive at a early-stage startup.
PhrosTT 3 days ago 0 replies      
My person & abritrary list of companies I consider to be 'above' the Big 4:


Two Sigma


Maybe AirBnb & Netflix?

ravitation 3 days ago 0 replies      
Google is certainly one company that's traditionally had that reputation.
harrisreynolds 3 days ago 0 replies      
Joel Spolsky always seemed to have an aptitude for attracting great people to Fog Creek Software. See joelonsoftware.com for a treasure trove of knowledge if you somehow have never heard of him.
maxxxxx 3 days ago 0 replies      
I think a better question would be which company has the best environment for engineering? I see a lot of smart people with a lot of potential working on crap projects.
drewrv 3 days ago 1 reply      
I imagine this depends on how you define "best". The most impressive/challenging work right now is probably in AR or self driving cars. If "best" is based on code quality or productivity, well, that's kind of subjective.
sidcool 3 days ago 0 replies      
In my opinion, Google and Apple.
harrisreynolds 3 days ago 1 reply      
FYI. Big Four = Google, Facebook, Amazon and Microsoft

I'd guess Stripe, Palantir and AirBnB would be up there too.

Madmallard 3 days ago 2 replies      
blizzard valve bethesda are probably really high up there the smartest guy i knew at university went to work at blizzard he just made everyone around him look bad
j7ake 3 days ago 2 replies      
The best engineers are probably working in academia doing research.
Ask HN: How do you invite contributors to contribute on your project?
49 points by wasi0013  3 days ago   15 comments top 13
kbr 3 days ago 1 reply      
I usually don't invite contributors to my own project. Instead, people who are interested will naturally begin to make more and more issues and pull requests as they get more into your project.

If you get a project out there, people interested in it will start to help out. Gradually, this turns into that person becoming a contributor to a project.

wmichelin 3 days ago 0 replies      
There's a famous Chris Rock quote about him being broken down on the side of the road. When he was standing there waiting for help, nobody wanted to help. When he started pushing the car himself, people would always get out and help him. People love to see you helping yourself, and will naturally come help you if you are visible enough.
zython 3 days ago 0 replies      
Before everyone starts posting her/his own projects in this thread I'd like to pitch my idea to what I personally am looking in this situation: a board similar to https://starters.servo.org/ for open source project where I can learn a new language by fixing bugs/resolving issues that can be ranked from beginner to expert, so you can find interesting projects fix bugs and learn new languages at once.

The link I have posted only covers the mozilla servo project and I can see this concept working with multiple projects/languages/etc.

Of course one would need to heavily moderate the submissions but I think this idea is great. Anyone know if something like this exists ?

agibsonccc 1 day ago 0 replies      
People tend to have different incentives for contributing.A ton of it is people scratching their own itch.

You still need a core team to drive a project.If you want contributors you'll need users.

People have a finite amount of time in a given day.They aren't going to contribute because you want them to.They want to get something out of it. It could be learning something, fixing a bug that affects their day job, an interesting side project for a weekend (some folks pick random projects to contribute to)

Open sourcing something also has different incentives.Many successful projects are either run by foundations or companies with the hopes of attracting talent.

Try to understand what the incentive structure is for people and contributors follow from that.

You still need to do project promotion as well.That's a whole separate topic though.

xz0r 3 days ago 0 replies      
One good example that I can point out is Homebrew's github repository[1]

The README is so clear and welcoming new contributors, by telling how exactly they can start contributing. In fact that encouraged me to start contributing to opensource. Now I'm doing Google Summer of Code under the same organization.

[1] https://github.com/homebrew/brew

afarrell 1 day ago 0 replies      
One thing to include: an explanation of how much background someone should have before contributing. You might think this is intimidating, but it is really helpful because it lets a potential contributor disambiguate whether they should

A) Just start contributing, sure in the knowledge that they aren't missing some piece of background that others would consider obvious.

B) Go off and search for a good book/course to learn about X, where X is a googlable phrase that your contributing.md just told them.

Mz 3 days ago 0 replies      
I think this is a hard problem to solve because actual invitations seem to not work well. In other words, writing to someone and asking them in specific seems to not go good places.

I think it works better to focus on a) making sure to create a welcoming or inviting atmosphere and b) leaving the door open logistically.

It needs to be apparent to other people that new contributors are welcome and it also needs to be apparent to other people where and how they can go ahead and step up to bat. These can be tricky things to pull off. It is much, much easier conceptually to just think "I know! I will actually literally invite people!" (aka ask them to contribute) and this means you may be asking people who have no interest in the project or not ability to effectively contribute or both.

I am still working on solving this piece for my own projects. Trying to be inviting without literally sending out invitations is tricky. But I think that is what works best to make it possible for those who have both interest and ability to get involved on terms that work for them.

type0 3 days ago 0 replies      
Good documentation as well as write about what can be improved and that you're open to new ideas and contributors.
cdubzzz 3 days ago 0 replies      
"Up For Grabs"[0] was posted on HN a while and it seems like a cool idea, but doesn't seem to have a ton of traction.

[0] http://up-for-grabs.net/

nikivi 3 days ago 0 replies      
We actually wrote a blog post that we link to anyone wanting to contribute to our project and we simply link that if anyone shows any interest.

Here is the project : https://learn-anything.xyz/

And here is the article we link to : https://learn-anything.github.io/2017/06/15/contributing.htm...

It saves quite a lot of time as we try to cover all the ways in which one can help with the project there.

napsterbr 3 days ago 0 replies      
I've created https://letsbuildagame.org.

Too bad I don't have the time to maintain or update such website, nor to actually keep reasonable docs at the pace things are changing.

I had the aspiration to create a truly contributor friendly project. It turned out to be way harder than I expected, at least for a small team like ours.

nithinm 3 days ago 0 replies      
im the author of pygsheets (a library for acessing google sheets from python) https://github.com/nithinmurali/pygsheets. As mentioned in other comments i think you will only get contributions if your project is useful. the project will only grow if it has some users. once you have some users you will start getting issues created. you would have to fix some issues at first. Now if your project has a good enough documentation. you will start getting some pull requests. it will go uphill from there.
FLGMwt 3 days ago 1 reply      
If you have a project looking for contributors, this question might be a good place :)
Ask HN: Resources for learning software design?
14 points by majewsky  1 day ago   4 comments top 2
cottonseed 11 hours ago 0 replies      
Tough question. I'm not aware of any books that are substitutes for reading and writing large projects, some books I've found useful: TCP/IP Illustrated: The Implementation (goes through the implementation of the 4.4BSD-Lite network stack), Lion's Commentary on UNIX (or xv6 book), Network Algorithmics (amazing book), Linux Kernel Development by Love, Large Scale C++ Software Design, Design Patterns. A lot of people like the Architecture of Open Source Applications books. I also think learning more computer architecture as the beginning of computer systems engineering is good for everyone, but that's just me.

Lampson's classic on hints for computer system design:


Here is a previous HN post on the subject: https://news.ycombinator.com/item?id=8000811

The Clean Code author has a Clean Architecture book but I don't think it is out yet.

dabockster 1 day ago 1 reply      
Just study resources on MVC and some of the patterns that get lumped together with it (Adapter, Facade, etc). There are books available, but they all tend to lack in certain areas (since software design is a super broad topic). Best just to read up on some of the patterns and work on some projects. (Yes, I know that's the usual comeback for this sort of post. But practice really does make perfect for this sort of thing.)

And, if someone recommends a book called Code Complete, quietly begin to question some of their life choices.

Ask HN: What useful Linux (Ubuntu) software should more people be aware of?
39 points by deepsy  3 days ago   30 comments top 16
fphammerle 1 day ago 0 replies      
In case you haven't yet:Set up an automatic backup system.

If you prefer a graphical user interface consider backintime.https://www.howtogeek.com/110138/how-to-back-up-your-linux-s...

Otherwise check out duplicity.https://help.ubuntu.com/community/DuplicityBackupHowto

Duplicity supports a bunch of protocols / target services (SFTP, dropbox, google drive, amazon S3 ...)

Duplicity uses asymmetric encryption (via gnupg)so the backup commands can be run unattended.(Your private key is not required for encryption during backup)

nickmancol 3 days ago 0 replies      
GNU parallel

its a super useful tool to execute tasks using all cores of your machine. A simple example https://vidanp.wordpress.com/2016/11/04/paralelizando-en-lin...

type0 2 days ago 0 replies      
You could add PPA for VS Code on Ubuntu, you should try rsync (cli) or grsync (gui) and get Meld for diffs. Shutter for screenshots, Parcellite for clipboard history, Caffeine to inactivate the screensaver. Also you could get a lot of task specific software via so called snaps or package your tools own with snapcraft.
grover_hartmann 2 days ago 1 reply      
* systemd-nspawn - aka. chroot on steroids -- for all your container needs -- I use this a lot for all my development, for trying new programs, for games, etc.

* RetroArch - for all your emulation needs in one package.

* ripgrep - better and faster than ag (The Silver Searcher).

* mpv - very nice video player, it can also be used together with youtube-dl for streaming from various websites, including youtube, etc.

To site admins: stop marking my comments as dead for no good reasons, my suggestions are valid.

mobitar 3 days ago 2 replies      
Standard Notes :) It's an encrypted notes app I work on. Available on Linux and almost every other platform. https://standardnotes.org.
fphammerle 1 day ago 0 replies      
If you like vim or other console applications with vi-like key bindings I'd would recommend taking a look at http://ranger.nongnu.org/

Ranger is an highly customizable file manager that can be controlled by using the keyboard only.

File management (searching, copying, moving, renaming...) takes considerably less time since I switched from windows-explorer / nautilus / nemo to ranger.

I can't imagine going back.

Getting started with ranger:https://github.com/ranger/ranger/wiki/Official-user-guide

steven_braham 3 days ago 1 reply      
Franz: http://meetfranz.com/

It's a cross-platform messaging client that combines, Whatsapp, Facebook chat, Slack etc. into one application.

Faaak 3 days ago 0 replies      

Its a wonderful CLI app when you calculate things with units.

Eg:You have: (1000W * 5 hour)/(24V100A)You want: min 125

Or:You have: 10 km * 6L/100km * 1.3 EUR/LYou want: USD* 0.837486

You should try it !

sharmi 3 days ago 0 replies      
Tunesviewer to access the university courses available on iTunes. It allows you to choose which videos to download and you can watch it through tunesviewer itself or your favorite media player.


manaskarekar 1 day ago 0 replies      
The following suggestion is definitely not the most useful, but really nice to have.

If you're feeling adventurous, you could experiment with different window managers, such as bspwm, awesomewm or i3.

Check out some examples in https://www.reddit.com/r/unixporn/

Here's a good demo of bspwm https://github.com/windelicato/dotfiles/blob/master/why_bspw...

12s12m 1 day ago 0 replies      
For a person who is initially starting with Linux. I'd suggest you to get familiar with the terminal. I'd also ask what your primary use case is. If you are a software developer vs code is a great editor to download.
Ag0s 3 days ago 1 reply      
It all depends on what you do with your computer. For one I am a stats nerd so I tend to have Conky running.

OpenOffice or Libre office; for all your Office needs, it can also output to Microsoft formats.

Screen; for multi terminal windows within one terminal. Also very handy when working remotely.

more_corn 3 days ago 3 replies      
If you don't already you should get familiar with Aptitude (apt-get). There's nothing like hopping into the command line and immediately installing the piece of software you want.

I like the Clementine music player.

Being able to hop into the command line to process text is neat. You might want to do a toutorial on grep, awk and sed.

Gimp is nice for photo manipulation, I use Inkscape for vector graphics.

Opera is a nice second browser (chrome is a memory hog) it also has built in vpn and Adblock.

jrader 3 days ago 0 replies      
Riot: End-To-End encrypted chat system the runs on Matrix. The idea behind Matrix is to connect different protocols through "bridges".

Matrix is federated (I suppose XMPP is federated too). You can send an email from Gmail to Yahoo, Outlook to Protonmail, etc.

se7entime 3 days ago 0 replies      
Rjevski 1 day ago 0 replies      
"Linux" "user experience"

Good luck.

       cached 25 July 2017 12:05:01 GMT