hacker news with inline top comments    .. more ..    31 Mar 2017 Ask
home   ask   best   3 months ago   
Startup School by YC: What to Expect?
7 points by alexander-g  1 hour ago   1 comment top
ploggingdev 12 minutes ago 0 replies      
They already sent you a confirmation email? I thought April 3 was the when they were going to inform teams if they were accepted or not.
Ask HN: What do you use for recurring billing?
37 points by tamalsaha001  11 hours ago   14 comments top 7
dangrossman 9 hours ago 5 replies      
Roll your own. Start with a subscription table with a paid_through column, and a payment table for recordkeeping. Your billing code is a daily cron job running a single simple script, that selects all rows with paid_through less than current date, charges each user's card on file, and updates the two tables. Discounts, different subscription terms, receipts, dunning mails are all simple additions to the daily billing script that you can add as you grow.

This has worked for me with tens of thousands of customers and millions in billings, and I've never had to worry about being locked into some payment company's proprietary system. Whatever pricing scheme you initially come up with for your app probably won't be right. You might have 6 plans when you only need 2. You might find out you were charging a flat monthly rate when you really need to be charging per widget or per user or per server. The more you rely on someone else running your billing, the harder it will be to experiment and find the right way to do billing for your customers.

You can avoid being locked in to a payment processor for storing and charging payment info too. I use Spreedly (https://www.spreedly.com) which provides payment card tokenization and a single unified API for over 100 payment gateways. I can use Braintree today, Stripe tomorrow and ShinyPaymentStartup next year without changing any code or re-collecting billing info from customers.

Urgo 8 hours ago 0 replies      
Not thrilled with it but we use paypal for our reoccurring payments. Users trust it and don't have to fork over their credit cards, but I get scared every time someone lies and says they didn't authorize the charge and having to prove to paypal that they indeed did get what they ordered fearing they'll freeze our account or something. Also it does cause confusion where the subscription is managed at paypal instead of on our site. That said, it does work 99% of the time.
ramsr 10 hours ago 0 replies      
Check out these guys https://www.chargebee.com/
jlebrech 3 hours ago 0 replies      
use a provider if you can integrate in a day or two, then later think of rolling your own if you anticipate any issues. you could find a provider that might be interested in writing certain features for you or has a decent enough api for you to extend.
symisc_devel 8 hours ago 1 reply      
drstewart 10 hours ago 0 replies      
Recurly, Aria, Zuora
deedubaya 10 hours ago 0 replies      
Ask HN: When do ISPs begin selling your data, and is a VPN all that's needed?
29 points by arikr  19 hours ago   20 comments top 11
atmosx 17 hours ago 0 replies      
IMHO the ideal situation to selectively play along. A router running Linux/BSD which can be configured have regular, VPN and Tor route is the ideal situation to avoid scrutiny from third parties.

Connections to Facebook, Google, Amazon, etc. should go un-tunneled. It's good to feed the beast with data it already owns anyway.

Connection to porn websites (say by your 16-year-old cousin who came to stay at your place for the weekend) and other ethically debatable content should be routed via Tor. Connections to torrents should be routed via VPN[1].

I understand that some people here prefer their personal VPN against a VPN provider like TorGuard, etc. There's no good and poor solution here, everything depends on the use case. A VPN provider will be handling thousands of encrypted connections and gives you a dozen exit nodes. From each exit node thousands of different connections are routed. It's way harder to target and isolate a user, even for a medium state-level actor.

Conversely, if you route all your connections from, say a DO droplet, you're controlling the droplet, but you have one exit point for all your connections... It's extremely easy to target your connections for a state level actor.

Of course there are thousands of schemes one can choose. Everything depends on the use case.

p49k 18 hours ago 1 reply      
There are no clear answers; all the info about this is a bit fuzzy because there's no requirement for ISPs to disclose past or current activities surrounding their selling of data.

The bill was actually enacted to prevent privacy rules which hadn't even gone into effect yet, which means that technically, ISPs would have already been able to sell such data. However, the consensus seems to be that ISPs were only selling "anonymized" data, and this move will embolden them to push further into invasive practices.

eb0la 3 hours ago 0 replies      
DNS and Certificates are the key:

You should remove all CA certificates installed by software that show like it were "installed by you".

Some AV software does MITM sending you a "trusted" certificate signed by their own CA whilst acting as a proxy between the actual site and the AV.

Theoretically anybody could do the same on the network side transparently.

Also if you don't trust your ISP, you shouldn't use their DNS servers. I don't know about commercial integration between DHCP and DNS requests to track people but it is feasible with some work.

For DNS just grab a raspberry pi and setup a dns resolver. You only need the right root zone seed file. Just don't make it available to the whole internet.

URSpider94 8 hours ago 1 reply      
The recent law enacted by Congress countermanded an Obama-era regulation that had never gone into effect. Thus, the current situation is the same as it ever was - ISP's can sell anonymized and aggregated customer behavior data today, just like they could yesterday.

Also important to note -- existing regulations still in effect prevent selling un-anonymized data. Selling someone the browsing habits of a particular identifiable customer is not allowed, never has been.

seanp2k2 18 hours ago 1 reply      
Wherever you VPN to, your connection still comes out somewhere. If that happens to be in the US, datacenters still have ISPs. If you're visiting a site hosted in the US, that's on some ISP too. Basically, if Level3, CenturyLink, and Verizon decide that they want to collect and sell profiles based on browsing profiles, there's not a way around it. It'd be easier to build a profile on a direct subscriber (e.g. Comcast profile on a subscriber of theirs) but installing OpenVPN on a DO droplet won't magically save you from this if you're in the US.

Will they actually do it? Well, can they make money from it? Do you trust Comcast to be a good steward of your privacy in the absence of a legal requirement to do so? Comcast did a hard pull on my credit when switching my account to a new address because they were too incompetent to update it and ended up creating a second account as a new customer for me. Comcast is my only option of ISP, as it is for many many other apartment dwellers and many single-family homes as well.

fav_collector 17 hours ago 1 reply      
VPNs aren't really private. They can see everything that an ISP could see if you weren't using one. It's just a level of indirection.

I trust ISP companies more than I trust VPN companies because ISP companies are in the USA and are much larger (so engage in less risky behavior), so they at least have to sell data in aggregate and scrub PII

godshatter 17 hours ago 0 replies      
There are a large number of VPNs, commercial or otherwise, that someone can use. Where I live, I have a very small number of ISPs to choose from and they would all have my billing information if I used them. Some of the VPNs offer connections in other countries, and some of them claim not to log. The VPN's ISP would see my data move around, but wouldn't have my billing information. The VPN would, but if it's commercial I can likely sue them if they do something egregious with it.

In my opinion, VPNs help more than hurt privacy, assuming you choose a reputable one to use.

If a person wants anonymity, then go for Tor or Freenet.

mvidal01 14 hours ago 0 replies      
Will the VPN in Opera prevent this tracking? How long before Chrome and Firefox offer this?
tmaly 17 hours ago 1 reply      
You could always setup your own VPN on a VPS with


_RPM 12 hours ago 0 replies      
tedmiston 18 hours ago 0 replies      
Answering the question of choosing a VPN is complex and varies by what's important to you. Like with security, there are few black and white answers.

The VPN comparison chart [1] is the best reference I've seen on the dozens of factors one might care about.

[1]: https://thatoneprivacysite.net/vpn-comparison-chart/

Ask HN: Does anybody follow the Pomodoro Technique religiously?
33 points by nanospeck  21 hours ago   23 comments top 14
ced83fra 15 minutes ago 1 reply      
How do you deal with a pomodoro whom task isn't finish ? Do you just continue the task ? Or you just stop, and plan the end of the task for the next pomodoro ?
acalderaro 17 hours ago 0 replies      
I used the Pomodoro Technique to transition from the "Lazy-SOB" side to the "Deep Flow" side. It's a regulative tool, generalized for the average person, so depending where you are on the spectrum, you'll have different results.

For myself, the consistency was awesome. I applied it to work, leisure, studying, socializing - everything. Before this, I would binge. Go out for hours at a time, play games for hours at a time...I didn't track/measure anything.

I started having more time to accomplish my goals (because I was deliberately making time to do so) and I also got my hobbies/leisure activities under control.

But about a year ago, I would get frustrated when I would be getting into my state of flow just about when the timer went off. I decided I wanted more time in my flow state, so I decided to not follow the technique when I was doing work-related things.

Now, I only use it when I know I'm going to do something leisurely - mostly video games. It now serves as a way for me to avoid getting into the "flow" for things that I really should be cognizant of, while freeing up time to be in the flow of things I'm passionate about.

sinhpham 17 hours ago 0 replies      
I dislike the rigidity of the original pomodoro technique, so I made a flexible one without the fixed time slots. You only have a minimum working duration, work for however long you like. I found that way it doesn't break my flow.


saidajigumi 19 hours ago 0 replies      
I've used "strict" Pomodoro technique at times. At its simplest, the structured rhythm of timeboxing and breaks is a useful tool for keeping focused on work that benefits from high focus, e.g. plowing through some "heavy implementation" work, coding, debugging, grinding away in CAD, etc. On the other hand, I've found that it can be a detriment to other kinds of work, more creative or high-level design oriented work. Some days, it's just better to be a bit more relaxed and free-form, even get out and take a walk and let ideas percolate.

I've always found the estimation bit to be tricky, because its viability depends hugely on 1) the kind of work you're doing and 2) whether you're running an ongoing planning deficit or not. To point 1, the less well-defined your work is, the harder pom-level estimation is. For example, consider a task that boils down to "learn how to apply, new, complex set of APIs to solve problem X", but might just be written as "implement wireflow 2a". At some point, despite planning effort, you end up with tasks that are indivisible atoms with high variability. I don't necessarily feel it's worth putting a huge amount of time learning to precisely estimate those, if it's even possible. (I'd love to hear counter-examples from folks, tho.) My personal approach is really to try to bubble up overall variability/uncertainty to a higher-level than counting-the-poms, then mostly use poms to maintain focus/velocity.

As to point 2, part of the Pomodoro Technique is supposed to be doing a planning pom at the start of the day, and that's really the minimum. Sometimes that's not sufficient (e.g. you have higher-level planning/workflow problems), or sometimes your planning skills just need work. If you're at least doing your planning pom, that gives you time to reflect upon and begin to address these higher level issues.

bmallerd 15 hours ago 0 replies      
I've used the Pomodoro technique religiously for the last year. Some interesting conclusions that I drew from my yearly review:

1) I have a maximum sustainable rate of about 8 pomodoros (4 hours) high focus work per day. This can be temporarily overridden, but I work much less the following days.

2) Bimodal days seem to work best for me. One big block in the morning, followed by a long-ish lunch, and then another big block in the afternoon. Similar to PG's essay on maker vs. manager schedule.

3) Having many small unrelated tasks is inversely correlated with number of pomodoros completed. Usually I get the most pomodoros in when I have 2 big tasks for the day.

ced83fra 9 hours ago 2 replies      
Why so many people are talking about "apps" and other websites to help doing your pomororo ? (Pomodoro's creator encourages a low-tech approach, using a mechanical timer, paper and pencil.)
magic_beans 19 hours ago 1 reply      
I use the Pomodoro technique at work, except my pomodors are 50 minutes (I use the Focus app for Mac, and you can customize the pomodoro length and name your pomodoro).

On a productive day, I can get about five 50-min pomodoros.

The technique helps me A LOT psychologically. Once that timer starts, I do not do anything else from what I have named my pomodoro. It helps me focus my attention and keeps me from drifting off to HN or reddit or whatever.

That said, the standard pomodoro time of 20 minutes is WAY too short for programming tasks. The technique itself is solid though.

tmaly 21 hours ago 0 replies      
I have tried, but its hard to keep with it.

I have lots of fires to put out at a moments notice. I think it would work well for people that are able to focus on one project at a time.

tutufan 15 hours ago 0 replies      
I've had success with a slacker version of my own creation, somewhat like the "magic dots" technique. I have a liquid toy that takes about eight minutes for the blue syrup to run from top to bottom. I start a work period by turning it over, and just work. Occasionally I look at the toy, and if it looks done more or less, I connect two of my dots (of which there are four per group, so six connections fills the group). I do this on a post-it note, and paste the note into a notebook at the end of the day.

That's basically it. I'm counting the number of reasonably solid starts into "flow" I make each day. That seems to be enough to make me a lot more productive.

iamben 21 hours ago 2 replies      
Not religiously, but I have a pomodoro app which I keep installed for work I'm struggling with. If I'm lacking motivation to start or finish something I'll stick it on and get going.

It's incredibly easy to procrastinate when we have Facebook, HN, WhatsApp, email - whatever, but I know if I start a pomodoro it's only ever 25, 22, 17, 9, 3 minutes until I can take 'reward' myself with the aforementioned for a few minutes. It's easy to push through knowing I only _have_ to do (at most) 25 minutes more work. And once I'm rolling, it's a lot easier to continue.

I use Harvest throughout the day to check how much _actual_ work I'm getting done. This helps me make better estimates of times and costs (as well as see the days I'm most and least productive).

tedmiston 18 hours ago 1 reply      
In my opinion the principle of having dedicated focused work sessions and counting up how many you have each day is timeless.

Aside from that, I don't follow anything about Pomodoro specifically.

One issue with Pomodoro is taking 1 session, then 1 break. In my opinion, one should flex this "rule" in flow. It's more valuable to do, eg 3x uninterrupted sessions followed by a break of 1-3x your normal break length than 3 * (work, break).

I also prefer 15-minute blocks.

B.F. Skinner, the esteemed psychologist known for his work in behaviorism, reinforcement, and conditioning is known for using a similar approach.

_benj 19 hours ago 0 replies      
I have used it for years, not religiously but often enough. I guess that with time you start tweaking it to your particular needs. When I was studying 25 minutes was the perfect length of interval while research and write a paper. At work, doing creative work (development/design/UX/...) I found that 25 mins. was too short and it would actually break my focus, thus I changed it to 60/10 min.

Nowadays I use an app called Forest, it provides an element of encouragement of how many trees have I planted and how can I get other trees :-D

gumby 18 hours ago 1 reply      
I am always interested in reading about it because it has never made sense to me since it appears to be designed to interrupt you just when you've finally achieved 'flow'
stenecdote 13 hours ago 0 replies      
I've actually been actually working at this for the past few weeks. First, the caveat that I haven't implemented a good tracking system beyond casually jotting down Xs next to my task list to count the # of strict Pomodoros I allocated to each one. I'm also not strict about this and definitely don't compute statistics expect useful metrics. I'm much more interested in day-to-day rhythym improvements, interruption control, and focus training. For higher level scheduling, I've experimented following Cal Newport's recommendation to schedule every minute of my day (http://calnewport.com/blog/2013/12/21/deep-habits-the-import...). On days it works, it goes great, but I'm still working to integrate this method with the need for reactive changes of plans. With that, a few observations and outstanding questions about the Pomodoro side of things:

- Interruptions definitely affect my feeling of accomplishment and may affect my results. I find even the smallest external interruption or moment of weakness triggers my internal critic, resulting in an arguably more detrimental cascade of self-criticism. An avalanche of blog posts argue that these minor interruptions dramatically impact my productivity for other reasons. I totally buy this anecdotally but won't attempt to justify it since I suspect most people here agree anyway.

- Sometimes 25 minutes just doesn't cut it. I especially chafe at the forced 5 minute break during my 1.5 hour period pre-standup where I haven't eaten at all and am caffeinated. I know the creator of the technique and blog authors like Martin claim that I should be able to slice all of my tasks such that I don't need longer than 25 minutes, but I disagree. While I enjoy holding the state of a program in my head and occasionally finding the zone, I'm willing to acknowledge Martin's overstated but partly true point that the zone can induce tunnel vision and the downsides that go along with that. However, I've also observed that 3 break-interleaved chunks of work can zap my energy more one large block of work would have.

- How do people deal with waiting for things that take longer than a minute? I've recently been working with jobs that take multiple hours to run. It's difficult to both schedule my Pomodoros such that I have a free one to check the result of this job. Even worse, the validation of the job can take between a minute if it succeeded and hours if it failed. This makes budgeting hard.

- Should I budget Pomodoros for checking email and Slack or include that in my breaks? Ideally, I'd use breaks to recharge and not context-switch between communication platforms. But, while I'm not an always on, 10-minute to respond to any email guy, a consistent multiple hour time-to-respond to any communication is a recipe for face-to-face interruptions in the age of the open office.

- Should I include lower level planning in my break or 25-minute chunk? I often find going from high-level task statement to knowing exactly what I need to do requires a few minutes to orient myself. I'd be fine including this in my Pomodoros except this orienting can involve firing off a quick question to a colleague or searching through my emails / Slack messages. Maybe I just need to get better at gathering requirements beforehand...

To be clear, I'm not putting down the technique. I suspect any time management strategy would reveal the issues I described above and that we simply don't hear about the pains of actually implementing a system beyond a week of casual usage (see any blog post with a just-so title like "I Adopted <> and It Changed My Productivity Forever" as an example).

As I look back at my bullets, I've realized I'm mostly looking for wisdom from some seasoned Pomodoro veterans. I see one or two people on this thread who fit this description, but overall I'm disappointed with the ratio of people who want to sell the technique or have tried it to people who have used it consistently for months or years. This seems to be a common problem among productivity techniques.

Meta-comment: I recognize this comment could be condensed, and "if I had time I would have written a shorter letter" (http://quoteinvestigator.com/2012/04/28/shorter-letter/).

Ask HN: Google Cloud Certification vs. AWS Certification
9 points by lsiunsuex  13 hours ago   7 comments top 3
inka 12 hours ago 1 reply      
I can't say on Google certs, but I passed the AWS ones - I wouldn't go for developer and sys ops both - they are the same level certs in the same certification path, so it seems like a waste of money to get them both really :)

Quick note, it's "solutions architect" not "system architect".

AWS certs are very focused on AWS products, so may not be helpful for Google Cloud. The developer/sysops -> devops path may be a bit better of the two, as it focuses on how to get stuff done, while solutions architect is a bit more higher level knowledge of putting AWS products together.

mindingdata 11 hours ago 1 reply      
Just jumping on in terms of the "architecture" certifications. I'm currently doing the Azure architecture certification (And have the course materials for the AWS ones too). They are REALLY light on implementation. It's literally like reading a feature list of every single thing the cloud provider offers.

It's for when a question comes up like "Hmm. How can we we send a message that allows a yet to be decided amount of subscribers to act on that message? I know! Azure Service Bus!".

It's not that expensive to get the certifications so I usually say go for it. But it can be really dry and not as "real worldy" as you might expect.

dkarapetyan 12 hours ago 2 replies      
Pretty sure certification is a racket. Why would you play into it?
Ask HN: What's the closest one can get to a personal Basic Income with software?
10 points by hsribei  14 hours ago   11 comments top 4
patio11 3 hours ago 1 reply      
There are any number of software entrepreneurs (and, for that matter, insurance agents) who widely vary the amount of time they spend on the business and include many weeks where they look gainfully unemployed.

In terms of what to shoot for, a) recurring revenue (BCC didn't have it and _believe me_ did that radically raise the savviness bar required on the customer acquisition front), b) B2B where something is important enough to need but not enough to require a long sales cycle or urgent support if the thing hiccups, c) a well-understood marketing and sales model that you can semi-automate.

The third thing is probably hardest to build, and as your time scale gets longer, it is the most likely part to require your sustained attention to improve. (I have no information how BCC is doing these days but I rather suspect the original organic SEO strategy which served me well for 5+ years will not continue operating unaltered for 20.)

In terms of where these folks hang out: business owners who have priorities in their life other than the business are still business owners. I think the great mistake in the "passive income" community is failure to treat running a business like running a business; it becomes aspirational for lots of folks who have neither the skills nor the inclination to run a business nor, unfortunately, the desire to change either of those two things.

This makes "passive income" spaces into a whirlwind of depression and hucksterism. Meanwhile, if you ask around the table at MicroConf, you'll find some folks who had a really good year and worked really hard for it and you'll find some folks who phoned it in while taking care of parents, getting married, throwing themselves into a home-building project, starting a new business, etc.

MicroConf, BaconBiz, and DCBKK are three conferences which all had folks who were at many points along the spectrum here. All have online ambits to them, too. (I suppose one could run a not-awful conference about software businesses in maintenance mode but if you have one then flying out to a conference would absorb a few weeks of maintenance mode and be probably a lot more boring than going to MicroConf.)

hsribei 14 hours ago 1 reply      
Glad to see @patio11 thinks the same way. Look at his answer to this:

Q: Why are you bothering with BCC when consulting is so much more lucrative?(I can think of a few good reasons, but I'd like to hear what your reasons are.)

A: I really enjoy being a product guy. BCC has a very desirable property in that it mostly works in my sleep. Consulting is quite lucrative and intellectually engaging, but it often disrupts my life in ways that BCC does not: for example, flying off to $BIG_CITY_ACROSS_OCEAN for a few weeks is wonderful once or twice a year but would get tiresome if I were doing it every month. I very rarely get tired of BCC, and with the exception of a trivial amount of support all of my work for it is at my absolute discretion to schedule. I mean, my little brother is graduating college this spring and, without even looking at the calendar, I can say "Sure, no problem, I'll be there. Tell me the day sometime."

Money is also not a huge motivator for me. I like it, don't get me wrong, but after I've got the rent and necessities covered (oh look, bingo) money generally has to be the icing on the cake to motivate me to do something. (Shh, no telling the consulting clients.)

Source: https://news.ycombinator.com/item?id=2018936

nkkollaw 12 hours ago 1 reply      
Honestly, in my experience that would be consulting.

I've personally always failed building anything that people would like to use enough to pay for it, and I've seen many people waste (or invest) about 10x what they would put into consulting to make less than minimum wage (or even 0).

Yet, I'm still trying.

urs2102 14 hours ago 1 reply      
indiehackers.com is a great place to start looking at ideas. I've recommended it on a couple of threads, but it's worth a look.
Ask HN: Do you have to be open to unethical behavior in order to be succesful?
11 points by Lonewxlf  17 hours ago   9 comments top 8
shubb 14 hours ago 0 replies      
It's worth pointing out that certain normal business practices can feel unethical to us (programmers) because of conditioning.

For instance, a good deal in business is one where you all a good for more than it costs.

If you were a freelance developer, that might mean charging a large amount for a feature of high business value because you know the client will pay, even though it doesn't cost you much to do.

Another aspect is information asymmetry. In the above instance, lieing about how many hours the feature would range to implement would be unethical for sure. But not saying how long it would take - charging for features and keeping the cost to implement to yourself - probably not.

Then we get to practices like subscriptions you expect people will forget to cancel (see every consumer facing sas), or building a platform with the intention it will be hard to leave (no export or api = a moat = Facebook)

Are these unethical though? I think mostly not. You need a business model, and business models mean not running things like you are doing a favour for your uncle. I think the line is where you mislead or get your customer to do things potentialy against thier interests without telling them they are taking a risk.

ronzensci 3 hours ago 0 replies      
Your own inner voice will tell you when you are being unethical and when you are merely benefitting from your experience or knowledge. Being unethical is not a grey area - almost everyone has an internal compass which can tell themselves in black or white (people know when they are self-justifying).

I would argue that you don't every need to cheat your own self to be successful.

devopsproject 15 hours ago 0 replies      
Define success.

To have a career and your basic needs plus some met? no

To be an industry leader\ceo of wealthy company? evidence suggests it wouldn't hurt to be a bit "flexible" (http://www.cnbc.com/2017/03/21/apparently-psychopaths-make-g...)

Lordarminius 14 hours ago 0 replies      
In the real world, rising to and functioning at the 'top' implies recognizing that a different set of rules applies.

How you deal with this reality is up to you.

BjoernKW 16 hours ago 1 reply      
No, certainly not. In fact, I'd say it's much harder to be successful if you're not trustworthy or if you act inconsistently, which is what unethical behaviour boils down to because you're applying different sets of rules to yourself and others.
temp8976 17 hours ago 0 replies      
Imho, No.However it depends on what you mean for unethical... Talking about what is supposed to be our fiels (software engineering) i've been constantly in situations where "unhetical" developer sold the creepy code solutions cheap to customer who are not aware of the real cost in the long run, i tend to offer more professional solutions obviously less cheap and becausw i believe in honesty i explain the drawback of the cheapest solutions to the customer letting them to decide, in the long run i always got succesfull job-relations and mantain my own sense of hetic.
matbram 17 hours ago 0 replies      
Absolutely not. Many people and companies are actually more successful because they don't take the road most traveled. It's refreshing to come in contact with someone trustworthy and ethical.
itamarst 17 hours ago 0 replies      
If you're working in ways that you feel are unethical then you're not successful by definition: you've failed at being true to yourself.
Ask HN: Does reading code actually make you a better developer?
50 points by saasinator  1 day ago   27 comments top 24
danyim 1 day ago 0 replies      
Short answer, yes. Long answer: Learning how to read other people's code will help your literacy of the language and you may even learn a new trick along the way. It might seem like an arduous task now, but as you get into the habit of reading more code, you'll be able to recognize patterns and processes much faster thereby improving your velocity.
mvpu 1 day ago 0 replies      
Reading code without judging is a superpower, because it breaks your mental blocks and makes you versatile. You can work on others code comfortably, fix things, and learn the good parts quickly without getting frustrated. My biggest issue was that - I was expecting everyone to think like me :)
WalterSear 1 day ago 1 reply      
If you don't read other people's code, you are stuck understanding things in terms of the idioms of your own comprehension.

Moreover, reading code is a skill, and much of being a good developer involves working with other people code, which means being able to efficiently parse other people's code.

neurocline 1 day ago 0 replies      
The very short answer is - writing code makes you a better developer. But it's incredibly rare for you to be able to invent every pattern, every useful trick, every readable style, so you read others' code. Your ability to understand what you see in others' code (and to judge it) goes up as you get better. So you write lots of code, read lots of code, write lots of code...

There is an analogy to writing in a human language. If all you do is read for 10 years, and then start writing, you'll almost certainly be a bad writer. You learned to read and extract information (and get enjoyment), but you almost certainly didn't understand how writers achieved those goals. This is even more sure for programming. Writing code over and over again helps teach you when and why to apply certain rules, because code has to work, not just look pretty.

But unlike writing human languages, there is far more to learn about computer programming - it's not just grammar and style, there's all levels of design, and architecture. So you read articles and books, but those are usually very hand-wavy. By reading the code for very large programs and then trying to copy what you see, you learn.

Also unlike writing human languages, you start by writing code. Reading code before you've written any is nearly pointless - you just won't understand what you are looking at.

It also matters what code you are looking at, just like it matters what you are reading - but again, only once you get good. So until you think you are at the median level for software engineering, don't worry too much about what you read.

The cool thing is that there's so much code available to read now, as compared to 40 years ago when programming first started becoming a real thing. And especially with Google and a few others not just employing hordes of great engineers but releasing a lot of their source as open-source. Read the Chrome source, for example. Or the Linux source.

dontreact 1 day ago 0 replies      
I think you are much more likely to get stuck in a local minima if you don't get good at reading code.

-It lets you work effectively as part of a larger team or project

-Gives you a much larger surface area of material to learn from: you can learn new patterns and libraries by seeing how other people use them instead of having to find documentation or tutorials

-Sometimes there are bugs in libraries (open source or otherwise) that you depend on. You will find these much quicker if you are good at reading code.

weego 1 day ago 0 replies      
It's far too simplistic to say, yes or no.

If you are inclined towards self-motivated improvement and if you have a good internal monologue where you are able to be real honest with yourself and your own failings and limitations then reading good code opens up the possibility that you can apply the things you take away from it to your own code and become better.

Good code isn't a gold ticket, it's always on you.

y0y 2 hours ago 0 replies      
Understanding other people's code (for better or worse) makes you a better developer.
espeed 1 day ago 0 replies      
Yes, just like reading research papers will expand your horizon and build your cognitive map, the more code you read, the more you'll see concepts and patterns repeating. You'll start to identity what's important and how things are related in sometimes subtle ways. You'll encounter the same idea expressed in different forms, in different languages. This will help reveal the essence of an idea as you begin to identify its invariants that persist from language to language and form to form. You'll see contrasts between good code and bad code. Beautiful code and ugly code. Readable vs cryptic code. Clean lines vs nesting. Your sense of style and aesthetics will refine. But don't just read code in your preferred language or domain of expertise. Learn to read code in multiple languages, in multiple paradigms. High level and low level, up and down the stack. Read to refine your thinking. You'll develop fluency, and your code will evolve.
mamaniscalco 1 day ago 0 replies      
The answer to this question will fall sharply upon two lines depending on how you interpret the definition of "better" developer.

I see one interpretation of better as "can copy, repeat, fix, comprehend, maintain." And the other as "comprehends and exceeds - often without explicitly 'reading' that which is comprehended in the first place"

The first group will argue that you have to read.The second will argue that it's optional.

I am in the second group but would argue in favor of the first. It never hurts to stand upon the shoulders of the giants who came before you.

That being said, I never read other's code unless its to fix it.

relaunched 19 hours ago 0 replies      
After learning a language enough to have an intermediate understanding of how it works, both conceptually and syntactically, I'd argue you learn more reading other people's code than you do writing your own.

The way I like to do this is to think through how I would implement something. Then, reference code that does something similar to the problem I was trying to solve. Then, I compare their solution to mine.

kat 20 hours ago 0 replies      
Very much YES!Being able to read the code is a required skill for working on enterprise applications. Fixing bugs and adding features will have to play nicely with the old code. If you don't understand the old code, your new code will make matters worse. You may accomplish your short term goal, but without the ability to read and understand the old code you will create a very brittle solution.
emmetcooper 1 day ago 0 replies      
Yes, that's how I mostly improved my codes but learning how other people coded the function I wanted to do. And then write the code itself on how I understood it. By that, I also learn new things I haven't tried before.
thomastjeffery 1 day ago 0 replies      
Does reading make you a better writer? Yes.

What does it mean to be a good developer? Do you simply want to write your own black-box undocumented software? Then there is a much lesser advantage to reading other projects' code.On the other hand, if you want to manipulate another codebase, or use another library, reading code is a necessity.

That leaves one final question: Is it beneficial to your own development skill to read others' code? Yes. Proficiently reading others' code is a very beneficial skill, even if you do not intend to write code to be read by someone else. Not only will you get better at reading your own code, you will learn idioms and practices that will improve your comprehension, and writing skill.

bougiefever 17 hours ago 0 replies      
For me, reading code, and then trying to implement my own version while resisting the urge to look at it again is the best way. I actually learn by doing, but reading other people's code, either in a blog or at work is a good place to figure out what I want to learn.
NHern031 23 hours ago 0 replies      
I am a C# (mostly WPF) developer at work. Most of the applications I write communicate with an API written by another developer in PHP. As much as I dread PHP I learned to read his code(which is poorly documentation) and it has helped me learn quite a bit. Reading code that isn't yours opens your mind to a different style of thinking, it's very powerful; I would recommend it.
cpburns2009 1 day ago 0 replies      
I wouldn't say reading lots of code is necessary. Reading some code can definitely be beneficial though. If you've just moved to an existing code base, it would be helpful to familiarize yourself with the existing structure, idioms, and patterns. If you're working on something new but don't know how to approach the task, looking at code solving a similar problem or using a similar methodology can help. As with most advice, take it within reason. Don't go to the extreme.
tommymachine 1 day ago 0 replies      
Certainly yes! The chief reason is that you'll learn the difference between code you like and code you don't like. You'll learn what makes up that difference, so you can build it into your own code in the future. You will develop taste, so to speak. Taste is important.
nudpiedo 1 day ago 0 replies      
No, at least not just "reading code". You need to understand and identify the patterns that underly there... so debugging other people's code and lear how other's strategies are solving their problems should be the actual reason behind "read code".
mattbgates 1 day ago 0 replies      
Having worked and still working for years fixing other people's code... it definitely teaches you how to code and how not to code. I've seen things that made me question the competency of the programmer, but I've also seen many codes doing the same thing, but written in different ways. There are also those times where you think: "Wow, this code is so poetic!"

So reading other code can surely help. I have seen some Github projects where I would have loved to have used the project for personal use, but I just couldn't understand the coding style, or have had to incorporate my own coding style because I could not adopt the code as it was in the program.

forgottenacc57 1 day ago 0 replies      
Working on code makes you better.

You don't read it like a book, you read it to modify it and therefore you just understand it.

collyw 1 day ago 0 replies      
Reading crap code should give you inspiration to rewrite it in a better more understandable way.
edimaudo 22 hours ago 0 replies      
If you read code with the goals set in mind it can make you a better developer.
deepaksurti 23 hours ago 0 replies      
I read with a specific context/goal in mind.

For a new code base, I start off with a high level design and one feature which touches the important parts. May be there is more knowledgeable with codebase around to ask and also decent documentation.

If I am in a Lisp like editing language, this [1] tracer is fantastic. Otherwise in non-live languages, I am a dead duck in the circus of breakpoints/debugger to step through the code.

You may also have a look at this [2], the author of Coders at Work, Peter Siebel talking about decoding code and from the same book a very interesting discussion on reading code which I have reproduced here.


Seibel: Im still curious about this split between what people say and what they actually do. Everyone says, People should read code but few people seem to actually do it. Id be surprised if I interviewed a novelist and asked them what the last novel they had read was, and they said, Oh, I havent really read a novel since I was in grad school. Writers actually read other writers but it doesnt seem that programmers really do, even though we say we should.Abelson: Yeah. Youre right. But remember, a lot of times you crud up a program to make it finally work and do all of the things that you need it to do, so theres a lot of extraneous stuff around there that isnt the core idea.Seibel: So basically youre saying that in the end, most code isnt worth reading?Abelson: Or its built from an initial plan or some kind of pseudocode. A lot of the code in books, they have some very cleaned-up version that doesnt do all the stuff it needs to make it work.Seibel: Im thinking of the preface to SICP, where it says, programs must be written for people to read and only incidentally for machines to execute. But it seems the reality you just described is that in fact, most programs are written for machines to execute and only incidentally, if at all, for people to read.Abelson: Well, I think they start out for people to read, because theres some idea there. You explain stuff. Thats a little bit of what we have in the book. There are some fairly significant programs in the book, like the compiler. And thats partly because we think the easiest way to explain what its doing is to express that in code.


Overall, I try to read in small pieces with some clear goal. Interestingly enough, I don't know if we can read code from start to end like a book, may be literate programming makes that possible; but yes reading code is hard and that is simply because we don't have good code reading tools, yet in the 21st century!

[1] https://www.cs.cmu.edu/~dst/Lisp/dtrace/dtrace.generic

[2] http://www.gigamonkeys.com/code-reading/

EDIT: link to the code is not literature article

j45 23 hours ago 0 replies      
The better I learn to read, the better I write. Applies to coding as well, because the real world has so much more refactoring of code than always starting fresh to make a new mess. Love admitting you can get better and faster with practice and time
Ask HN: Has anyone at Google worked on Google Finance in the past 7 years?
13 points by throwaway52934  17 hours ago   6 comments top 5
cbanek 5 hours ago 0 replies      
I don't think so. It has serious problems, in that it will fail to show data if there's a non linearity that seems severe enough. I've had problems charting stocks that have had a gap up or down, clicking on 1 mo / 3 mo / 6 mo just gets stuck on some random time boundary. Or worse, sometimes it displays the wrong data.

Seeking alpha is a great site you might look at. They also have mobile apps and user generated content. seekingalpha.com

kidlogic 8 hours ago 0 replies      
I check Google finance each day at work. huge opportunity for improvement
cdnsteve 12 hours ago 1 reply      
Anyone have anything they use that's better?
drakonandor 12 hours ago 0 replies      
Someone has as they did close down the app at some point a few years ago.
KingMob 13 hours ago 0 replies      
Crickets: chirp, chirp.
Ask HN: Tell me an engineering war story from your career
75 points by nemild  1 day ago   35 comments top 16
superflit 1 day ago 1 reply      
Well, this is a different war story.

We just received a new Mainframe from IBM. Big beast big power consumption.

My primary task was to be Sysadmin of LPAR/instances of Linux inside the new IBM.

The new mainframe was unpacked, and the power connectors had to be "modified" to the local standard. You know.. You ask your local contractor to read the manual in English and hope for the best.

There was two person on that day on that Data Center. Me and the IBM Tech Representative.

Well, I was checking some blade servers looking at the Robotic library, and I see him plugin it 5 meters from me.

I just heard a BANG. And for the first time, I saw an electric fire. Like a Dragon spitting green fire. I shout for him stop and move away. He by instinct unplugged it (I grabbed a chair to throw at him if by chance he gets stuck on electricity).

It stops.And everything gets pitch black.Lights onHe looks at me.I look behind. And there are. 200 servers Down. all Down.It even had broken the APS system.

I walk to the extension. Dial 28 to my co-worker and say:

"P.... come here. Serious! Get everybody here... Big problem.. BiiiiiiiiiiiiiG."We had to start everything on its right orders (SAN storage, ADs, Servers, SQL) but we knew it.

8 minutes late the electricity company appears the IBM tech had to go to the hospital with cardiac arrest by the stress.

The IBM tech guy got lucky and is alive.I got a good recommendation for keeping cool in emergency situations.

msound 1 day ago 2 replies      
In 2003, I was working for a startup in India doing GPS/GSM based vehicle tracking system for fleets of trucks. The trucks would have our unit installed in them, and they would use GPS to get the location and send it to our server via GSM text message. Back then, GSM coverage not good, and trucks would go out of coverage for days. To further complicate matters, our firmware used to crash and the unit would stop sending updates.

To help us troubleshoot this, my boss asked me to program the unit to give a missed call to the server every hour. If we got a missed call, we knew that unit was still working. In countries like India, giving a missed call is a zero cost way to communicate. For example: You would pull up in front of a friend's place and give them a "missed call" to let them know that you are waiting outside etc.

Anyway, I implemented the logic and we sent off our field techs to intercept trucks at highways and update the firmware.

The way I implemented the logic was the unit was to call our server's modem number every hour at the top of the hour. No random delay nothing. So, soon after that, around 50 units tried to call our server at the same time. Remember the clocks in the units are being run off GPS and they are super accurate. This caused our telecom company's cell tower BTS to crash. Cell service in my office area, a busy part of Bangalore, was down for a whole 2 hours.

I was called into the telecom company's head office for their postmortem. They didn't yell at me or anything. They were super nice. In fact, when I finished explaining my side of the story, one of their engineers opened his wallet and gave a hundred rupees to another guy. Guess they were betting on the root cause. From what I understand, they escalated the bug to Ericsson who manufactured the BTS and got it fixed. For my part, I added a random delay and eventually removed that feature.

canterburry 1 day ago 3 replies      
This was probably my first real job/contract out of college. I was a VB script/web developer and landed a part time gig at this one man wealth advisory firm who wanted to build a side business from processing charitable donation online (back in 2001).

The owner was a very impatient youngish founder who new just enough about HTML/CSS to have the dangerous notion that he new something about programming. Additionally he was obsessive compulsive to the point where when he saw that different browsers didn't render the HTML/CSS EXACTLY identically in all cases, he had me redo ALL text on the site as IMAGES!..because those would look the same regardless of what the browser supported.

Now, the payment processing part. Since he was a cheap bastard and didn't want me spending any time on actually versioning, managing code, doing deployments, testing etc....we only had one development/test environment: PRODUCTION.

Yup, I'd connect my trusty VisualStudio IDE directly to the file system on the production IIS webserver and code away. Whatever I had coded when I hit save...was live.

No issue. Since we had no monitoring, logs, analytics or anything else unnecessary like that, he never could tell how many live transactions were lost because I had forgotten to close some tag, looped once too many times, mistakenly truncated some part of a card number, swapped the first name and the last name field accidentally or mistakenly told the payment gateway to CREDIT rather than DEBIT the charity's account (yes, that one did happen...and he did notice).

I would come home a nervous wreck every day just wondering what kind of pissed off customer calls I'd be hearing about the next day for something I had done that day.

jweather 1 day ago 0 replies      
Doing a digital video upgrade for a historic movie theater -- brand new 3D-capable projectors that cost more than my house. Everything's checked out great, the projector has run perfectly for test screenings. Fast forward to opening night, half an hour before showtime, somebody opens the door to the control room and the projector suddenly shuts off. No warnings, no chimes, just crash shutdown. They start it back up, and a few minutes later the same thing happens again when the door is opened. They managed to keep the door closed through the opening night showing, and got the manufacturer on the phone ASAP. Manufacturer goes through the super-secret diagnostic log files.

Turns out that the only difference between testing and opening night was that the front doors of the theater were open, and it was a windy night. The projector has a "wind vane" style airflow sensor in its exhaust vent to check and double-check that the fans are running correctly. The sudden changes in airflow when the control room door was open was enough for the airflow sensor to drop and trigger a panic shutdown. Since the projector also had fan sensors and temperature sensors, the manufacturer okayed us to bypass the airflow sensor.

johnnycarcin 1 day ago 2 replies      
I was not the one who pulled the trigger as luckily I was out on vacation, but it is one that I keep in the back of my mind whenever I am playing with stuff.

Early in my career a fellow team member working with me at a fairly well known fortune 500 company was testing out a process where using Microsoft Forefront Identity Manager we would cleanup in-active accounts and shuffle things around to various systems auth systems. Since this service was used to sync our prod AD and test AD there was a "connector" into prod. From this single FIM instance you could hit dev, test and prod ADs. Sadly there had never been any rules put into place to prevent a push from test -> prod.

On the day that this co-worker was doing some testing he somehow managed to push a change that he though was going to our test AD but instead went to the prod AD. This change ended up wiping out quite a few prod AD accounts. As in totally deleting them. All of our systems, including the phone system (not sure why) were tied into AD. All of the sudden people on our floor were saying they couldn't login to anything or send e-mail. Soon we found out that the CEO of the company was feeling the same pain and on top of that, was not able to receive or make phone calls. My co-worker took a look at the process he was running and realized he had screwed up big time. He killed the process but not before about half of our production AD had been wiped out.

Like most backup systems, restoring our AD from a backup had not been tested in awhile. Between figuring that out, since it naturally didn't work as designed, and having to get the backups from our off-site backup company most of the company was unable to do anything for about 8-10 hours. This included remote sites, field techs, customer support agents, etc.

What sucked is that this co-worker was one of the top members of our team and had been handed this FIM environment that somebody no longer with the company had built. On top of that he was not provided any sort of formal training and was really learning on the job. They let him hang around for another week or so and then let him go.

LocalMan 1 day ago 0 replies      
I was one of 7 people coding one of the 7 different real-time sensors for a large networked product. Another team was programming the central network manager and data processor.

The project was late and there was a daily-charge penalty clause in the contract with the customer, a very large company. A long enough delay could wipe out all the profit from the project. So engineering management told the programmers to suppress all signs of runtime bugs, no error messages, no halts, just slog on, bugs and all.

I objected, nobody paid attention. For my sensor, I had it scream bloody murder (on the diagnostic console) for every runtime problem it found. So I could fix it. The rest of the team followed instructions.

My unit was debugged, up and running, a year before everybody else. If the whole project would have been ready, the profit would have been reasonable. In a whole-team meeting,near the end, I asked the testing team if they had found any bugs in my unit. They asked "What's that?". They didn't even know its name. Suddenly, I was a hero.

itamarst 1 day ago 0 replies      
One of our servers stopped responding for 30 seconds every once in a while.

Spent some time trying to figure out why. No luck.

Spent some more time.

Eventually I realized that the log timestamps were weird - it looked like the query had been sent a response, but the log message appeared 30 seconds later.

I instrumented the servers to measure disk latency. I noticed massive spikes in latency every few hours. Couldn't figure out why. Then someone told me the servers were running on virtual machines with a shared NetApp for storage... and it all came together.

Every few hours a multi-gigabyte file was delivered to each machine. This was a design that had originally been done for physical machines. With virtual machines, 30 copies of a multi-gigabyte file were being dumped to a single NetApp, filling up the file server's memory buffer and making disk latency spike since it was waiting for physical writes.

Meanwhile, the server I was debugging was doing log writes in the main I/O thread, so it blocked on handling requests when this happened.

I went and talked to team lead for the server. "Oh yeah, we fixed that recently, logging will be in its own thread as of next release."


Moral of the story:

1. Talk to the people maintaining the software before you spend too much time debugging.

2. Disks do block, don't assume they won't.

3. Changes to operational setups can have significant, hard to predict impacts.

If you want to hear more stories, I'm writing a weekly email with one of my programming or career mistakes: https://softwareclown.com

deedubaya 1 day ago 0 replies      
From back in my sysadmin days when I worked for a Electrical Engineering firm which specialized in power distribution (power lines, power plants, etc). We had a homegrown datacenter in the basement with dedicated AC, backups, and fire suppression system. It even had a home designed air handler system for moving vast amounts of air through the room in the event of AC failure. Oh and a home grown diesel generator -- cuz electrical engineers.

Datacenter had about ~300 servers in it. Not huge, but not small either. The lynchpin in the system is this: neither the battery supplies or generator can run the AC or air handler, so when the power is out everything non-essential needs to come down to maintain sane temps in the DC.

Anyway, my page goes off in the middle of the night -- power outage. The DC is running on battery backup. I hurry into the office to start powering things down as temps are climbing. I start shutting down VM's, blades, and 1/2U servers. About 1/2 of the way through, the power comes back on -- but the AC isn't kicking on (red flag). The air handler will function though, so let's run with that until the AC guy comes out.

I start powering everything back up. At this point, a few co-workers trickle in to help. After about 2 minutes the fire suppression alarm triggers -- 30 sec to evacuate the DC. I glance over to the air handler vent, and it's SHOOTING flames into the DC. We oh-crap the heck out of there just in time to see the suppression system trigger and the door lock closed. I run to the electrical panel and kill the power to the AC and air handler knowing that they were possible sources of the fire. The fire dept. arrives and forces us out of the building. At this point, nearly the entire DC is cranking on sustainable power with 0 cooling. It's a locked box effectively. We watch our notification slowly alert to servers going down hard due to heat one-by-one. VM hosts -- boom. Network switches -- Boom. SAN -- BOOM.

Long story short, we lost a number of servers and restored a lot of data from backup once things were back online. The cause was traced back to the wiring of the air handler motor. When the power came back on, only 2 of the 3 phases came back online. This was enough for the UPS system to operate, but not enough for the AC (wired correctly). The motor on the air handler was 3 phase but installed incorrectly (or something to that effect, it's been years and I'm not an electrician) allowing it to run, but turning it into a ticking time bomb of an electrical fire.

Fun times.

FroshKiller 22 hours ago 0 replies      
A client's implementation of our report distribution service would unpredictably send copies of old reports, often completely different reports, often for completely different entities, often reports that were not intended for distribution.

The distribution service used the same reporting system as our ad hoc notification service. Records for scheduled distributions had a field that stored the ID of the scheduled event that prompted the report generation. In this way, the distributions could grab all the output by event ID without needing to know anything about the reports themselves.

The problem: The ad hoc system relied on the same behavior, but since it didn't have actual scheduled events, the programmer who implemented it halfheartedly spoofed an ID based on the current time when the ad hoc notification created report requests. Over time, these spoofed IDs collided with the real event IDs used by the scheduled distributions.

We entered a bug report. The bug report got closed, because the developers said the module was being re-implemented in a different language, so the functionality would likely be different (read as "broken in different ways").

Time passes. On a lark, the colleague I originally investigated the issue with suggests we do a code review to see whether the bug did indeed get fixed.

The new programmer copied & pasted the original Visual Basic code responsible for the bug into the new Visual Basic .NET project, comments and all.

In the end, of course, a true war story is never about war. It's about the special way that dawn spreads out on a river when you know you must cross the river and march into the mountains and do things you are afraid to do. It's about love and memory. It's about sorrow. It's about sisters who never write back and people who never listen.

jmenn 1 day ago 0 replies      
Not sure if this counts as engineering or a war story, but in my first job as an undergrad, I was hired as a "web intern" to setup a CMS for a non-profit. They offered me two CMSs from which to choose, Drupal or Joomla, a list of functionalities they wanted, and let me run loose. I was making progress, right up until the Executive Director told me I wasn't allowed to write "custom code" due to the possibility that I may one day leave. No HTML, CSS, JS, PHP, etc. that wasn't by default output from the CMS. The ED didn't believe I could write modules, so I ended up doing that, saying "look it's a default from this module in the CMS," and somehow that got the okay. A year later, when the ED retired, they hired me as a freelancer to redo everything in a more sensible way.
dublin 12 hours ago 1 reply      
Datacenter cooling can be problematic in unexpected ways: NASA's Mission Control datacenter at the Johnson Space Center was an interesting beast - designed for the IBM vacuum tube behemoths of the 1960s, it was both huge in acreage (only a small corner was used by the '90s) as well as arctic in it's cooling capacity (since every tube literally had a heater in it!) In the mid-to-late '90s, working at Sun, I put in the first ATM and Fibre Channel networks in there, the latter initially connecting up a bunch of the new SPARCstorage arrays (30 individual disks per array unit!) to the brand new UltraSPARC servers.

As I hinted earlier, the AC system was epic - literally cold enough to hang meat. It originally used several chillers, but even after turning off all but one, it was still FREEZING (well, nearly) in there - there was literally a rack of parkas hanging at the entrance, and you put one on if you were staying more than a couple of minutes.

Not long after the system went in, we got a call from their admins saying there was something wrong with the network, as they couldn't get the Storage Arrays back up - sometimes. Eventually, a pattern emerged: the Arrays refused to restart after they had been shut down for more than an hour or two, but when we took them back to our office, they worked just fine. Turns out the problem was thermal: The room was so cold that the new state-of-the-art HDDs literally didn't have the torque to spin the platters up again against the cold-shrunk tolerances. We checked with Seagate and they said NASA was operating the disks well below their design temperature - they had never expected anyone to do that! The fix: 1) Don't shut the array down for too long, and, 2) if you really have to shut it down longer you'll have to wrap the whole array in plastic to prevent condensation, then take it outside to let the disks warm up enough before bringing it back into the DC and spinning up before the disks almost literally froze up again! This was, of course, duly written up in an official NASA policy and procedures manual. I suppose SSDs were a big win for NASA, as I expect the problem only got worse with succeeding generations of spinning drives....

eb0la 19 hours ago 0 replies      
The customer was a Bank.

One the biggest banks in Europe.

They just bought (aka "rescued") another bank somewhere in Europe and they wanted to lay dark fiber for datacenter synchronization.

And they wanted us to manage that network.

After several weeks laying fiber, and setting all connections we started the network manager on the operations center... and couldn't see any device, except the "secondary" network manager in customer premises wich could see everything.

Turns out the "security" people at the simply put a Firewall between the NOC and the network and didn't allow any traffic to go from the NOC to the fiber optic devices.

We asked them to give us access but they didn't have IPv4 addressing compatible with ours. Whay? Because the bank used all IPv4 address space internally. All private IP adressing was already alocated and the NAT ("public") they could use colided with other customers equipment.

Finally I had to build a ugly "semi-isolated" network island between the bank, the noc, and some virtualized workstations that could "see" (natted) the customer devices (wich we were paid to manage) and the NOC workstations.

On the plus side, that junk made me write the best documentation I've ever made because just in case something broke in the middle of the night.

it_luddite 1 day ago 0 replies      
I was the primary ops guy (well before the concept of devops and when separation of duties was important) and ended up being the primary troubleshooter for problems. During one of the meetings between DEV, QA, RC, and I, the software architect exclaimed that RC had to be exaggerating since he just said it took X time to transfer the installer from one machine to another.

I looked at him and said the installer is ~200MB in size, 20 seconds is more than reasonable. He started arguing that the network connections had to be at least 100meg links so it shouldn't take more than 2 seconds. It went round and round, until I realized he didn't understand that network links were in bits/sec. At this point, he was refusing to listen and started disparaging everyone 'against' him. I gave it one more go and showed him the unit conversion and basic math on file size, rate, and time.

For a while, it looked like he was trying to get everyone arguing against him released since he was an 'architect' and everyone else was engineers and I was just the ops guy. Too bad for him, he didn't realize in the land of inflated titles, I was the security, storage, and infrastructure architect. I just felt it was presumptuous and relabeled myself the ops guy.

eb0la 20 hours ago 0 replies      
I was winter. The #@! coldest winter I saw in a long time and I was on call.

Sometime in the middle of the night, I received an SMS: "Datacenter temperature is high: 24C" (yes, centigrade about 74F).

I saw the graphs and I could see there was a temperature spike. In the last hour the datacenter went from 16C to 24C and it was going up.

Three of the four industrial HVAC machines failed that night. Nobody knew why - I called the HVAC technician (he would come around 9am) and meanwhile I opened all windows and doors in the datacenter floor to stabilize temperature. 26C inside the DC, -6C outside.

Turns out HVAC systems used water... and someone broke the pipe isolation and the water froze inside.

It was fixed in the morning aplying a blowtorch to the 3 frozen pipes, then when we had water in the circuit instead of ice, HVAC machines made the DC cold again.

Temperature peaked at 27C in the morning (-1C ouside) - at 28C (84F) the VP of Operations would call everybody for a controlled datacenter shutdown that - fortunately - didn't happened.

6 months later I had a similar problem with HVAC. This time water evaporated inside the pipes and we had a "normal" panic because both the inside and the ouside were hot.

That was my last on-call duty.

taf2 1 day ago 0 replies      
2011 Facebook login was broken because they had assumed a function on Date- maybe a date.js function? Working at LivingSocial we relied heavily on Facebook login working. So did our competitor Groupon. I recall we figured out the Date dependency and patched it externally and deployed before Facebook or Groupon had it fixed a few hours later. Was a lot of fun and rewarding seeing this fixed so quickly.
CaliforniaKarl 1 day ago 0 replies      
My first job out of college was for a fabless semiconductor company in Southern California. We had a small (~20 racks) data center in the ground floor of the building, and I was involved in its design & operation.

Top-level execs had made the decision to not get a backup generator. The one compensation was that we got a manual transfer switch, so that we could easily truck in a generator & cooling in case of a planned outage. There was the possibility that we'd be moving at some point, so self-containinment was a big thing.

Taking that into account, I suggested getting an Eaton 9390 UPS, with two IBC-L battery cabinets and an IDC breaker/distribution cabinet. (http://lit.powerware.com/ll_download.asp?file=Eaton9390UPSBr...) The distribution cabinet outputs went to in-rack Eaton RPMs (http://powerquality.eaton.com/Products-services/Power-Distri...), and from there to PDUs.

This setup gave us ~45 minutes runtime at normal load, and more if we shut down non-prod. The one time we had an outage (during my tenure there), shutting down non-prod allowed us to ride the outage. I also liked this setup because our only connections to the outside (power-wise) were from the fused disconnect input, and the EPO. In the end, the "single-line drawing" looked like this:

 Building fused disconnect-->Manual Transfer-->IDC cabinet breakers-->UPS-->IDC cabinet-->Rack-->PDUs Outside Generator Hookup---> Switch (input/bypass) dist. panel RPMs
Everything after the Manual Transfer Switch was either internal to the UPS, inside the racks, or in flexible conduit. I loved it so much!

Unfortunately, the electrical engineer hasn't seen such a thing before. In the past, the 480/208 transformer was external to the UPS, and this is what the electrical engineer was used to. So, the engineer wrote up plans to run an electrical duct from the UPS, to the Manual Transfer Switch, and then on to the transformer (in other words, back to the UPS).

I totally missed this mistake on the plans. It was actually caught by the construction crew, who was laying out the ductwork and realized that something looked weird.

In the end, one of the conduits was used, and the other one was just left in place. Luckily our connections from the IDC distribution panel to the RPMs were flexible, because that second conduit got in the way of pretty much everything.

Ask HN: Hacker News users reading habits
92 points by pmcpinto  2 days ago   73 comments top 45
WA 2 days ago 7 replies      
I read 3-5 articles per day, but oftentimes, I read the comments of 20-30 articles without clicking on the actual article. Recent example: Article about Angular 4.0 being released. I don't care about the article, but I do care about the comments of the JS folks.
aabajian 2 days ago 0 replies      
I'm surprised there are no comments on your question...so let me be the first. I'm a medical student about to start residency. I also have a master's degree in computer science.

I read a lot of articles about AI in medicine, pretty much anything I can get my hands on. I also read generic tech articles related to everything from Nintendo Switch, Tesla, Brain-Computer interfaces, and other popular media articles.

-How many articles do you read each day? Likely 10+. These aren't high-brow articles, just random blog posts and pop culture tech. I read about 2-3 research abstracts per day in medicine and maybe skim the text of 1-2 articles.

-They're usually related to your job or to some side projects? Usually they are related to my interest in medicine or technology. Sometimes they are related to my job (I work as a part-time developer / data scientist). I also run a small website (https://www.cronote.com). I encountered a number of issues with time-zone switching and the daylight savings change on March 12th. Read about 20 articles having to do with correctly implementing timezones in Python.

-Do you usually read about a variety of topics or it's focused in 2 or 3 topics only? Topics cover a vast span of medicine and computer science. I enjoy computer science more than medicine so it's a 20:80 split.

-Do you usually read during some time of the day or it's usually random? I read whenever I'm behind my computer, usually alternating between work and browsing the Internet. This amounts to ~5 hours per day.

anpat 1 day ago 0 replies      
I have subscribed to RSS feed on feedly where I skim through the list when I am idle/on the road/catching a smoking break and If I find something interesting save the link to pocket.

I usually clear my pocket reading list each weekend, even if there was something I dint finish reading (used to happen a lot), I just flush it out because that helps me determine my bandwidth for reading over a fixed time period.

Though mostly I am interested in comments section of tech/startups related topics, I also use feedly's reader count to decide whether to read or not articles on other topics.

NicoJuicy 2 days ago 0 replies      
I read random when i'm stuck on something or have to rethink on things. Doing something else for 5 minutes let's me suddenly think about it differently.

The subject doesn't count. I don't read the new stories though, otherwhise it would be a bigger timesink ;-) .

Always interested in hearing other people's thoughts, HN has some good reasoning in comments. I prefer it over watching the daily news in the noon :)

I save interesting stories on my side project http://tagly.azurewebsites.net/, which can also show HN comments when adding the tag: commentsbyhackernews ( it's currently a bookmarking service for myselve mostly, but it can do a lot more under the hood)

Eg. : http://tagly.azurewebsites.net/Item/Details?id=49b1ed7e-5d35...

Edit: Example feature, add a article to wsj.com ( paywalled) and it will automaticly create a link through facebook. So you can read it ( i hate paywalled articles)

wenc 1 day ago 1 reply      
I'm not sure if the question is about reading habits on HN, or the reading habits of the HN demographic.

If it is the former, I middle-click 3-4 articles a day, and if they are also juicy topics, I middle-click the comments links as well.

If it is the latter, I read tons of articles a day (avg 20), some related to tech, but mostly not. I read in the morning, at lunch (very productive time to read), and after dinner.

Offline: I have subscriptions to dead-tree versions of Time, Harvard Business Review, and Foreign Affairs. I also have 4-5 books on the go at any given time, mostly nonfiction. I go through phases, and my last major one was statistics and category theory.

Online: Slashdot, Reddit, HN, Marginal Revolution, John D Cook, Farnam Street, Quora, and a bunch of data science related blogs. I also read articles on the getpocket.com recommended list, and I find myself drawn to reading articles on The Atlantic.

ybrah 1 day ago 0 replies      
I read the comments before I read the articles, if at al
anotherevan 1 day ago 0 replies      
I do a lot of my news reading via RSS feeds to Newsblur. One of those RSS feeds is from hnapp.com which generates an RSS feed of Hacker News submissions with a score over 50 or more than 30 comments.

If there's something I want to read later I send it to Pocket which my ereader supports, so I can read them on my nice portable eink device whenever I have a spare moment stuck in a waiting room or on a bus or whatever.

According to my reading habits[1] I've averaged reading 690 articles that way in each of the last two years.

In order to track my article reading habits, plus follow up on articles in related forums such as Hacker News after Id read them and such, so I wrote a litte PHP browser based application that interfaces with the Pocket API to help me manage all that.

Naturally I called it Pocket Lint.

[1] http://www.michevan.id.au/tag/books/

scrollaway 2 days ago 1 reply      
Most of my reading is off HN/Reddit, whatever catches my eye and looks interesting which can be up to 10 articles in a day, but often enough 0-1.

I use https://bazqux.com as a RSS reader to keep up with the stuff I actually want to follow. Some gaming sites, LWN, EFF's deeplinks and the blogs of various products my company or I use.

(BTW, I highly recommend bazqux. UI very close to Google Reader, very cheap and with a lifetime subscription option)

Apaec 1 day ago 0 replies      
I read HN in this way I go to https://news.ycombinator.com/news?p=5, then https://news.ycombinator.com/news?p=4, till "/news" which is the same as "?p=1". I do that every night before bedtime.

If maybe I'm too busy and can't read HN one night, what I do is read the next day starting from "?p=10", if I miss two days I start from "?p=15" and so on, though that query has a varying limit, going after the limit gives no results, in the past I've gotten a successful request til "?p=25" but today it seems the limit is just "?p=10", most times I've seen the "?p=15" working.

I don't want to miss new tools or discussions so I always try to keep a maximum of 2 days of not reading HN.

zemo 1 day ago 0 replies      
check every weekday, but only click and read one, maybe two articles each day. I always read comments in the articles about Go to see the Haskell programmers having tantrums. I always read comments in the articles about JavaScript to see the Go programmers having tantrums. I don't ever read anything about politics from HN because people that read HN are not a representative sample of the real world; HN isn't exactly a wellspring of political diversity. I basically only look for announcements and stories about catastrophic failures in production systems.

also fwiw this is by nature a broken census since the people that will click this link are already gonna be the people that like the comment threads (since it's only a comment thread) and the people that respond are the people that post comments. so basically your feedback about how people behave based on comments is already going to select down to people that post comments on HN, which is likely a single-digit percentage of people that visit HN. asking users how they use a website on that website will always be subject to extreme sampling bias. so... this is fun by all means but let's not look too far into it ;)

tmaly 1 day ago 0 replies      
I subscribe to some newsletters that aggregate weekly articles around some category or topic. This is a lot easier for me as I do not have to continually scan sources for new articles.

I also try to read a book or article on something new I want to learn. My most recent book I started reading is called the Mom Test. Its about doing customer development, and it touches on the subject of what type of questions you should be asking.

justboxing 1 day ago 0 replies      
> How many articles do you read each day?

0 - 1 Articles

100+ Comments on 20 - 25 articles.

I use the comments as a curation tool, to decide if the article is really worth reading, or click-bait. Sometimes the comments also do a TL;DR; summary of the original article, so that saves me time (esp. on rambling articles that write 1000 words to prove a couple of points or make a statement / take a stance on something).

> They're usually related to your job or to some side projects?

Job, side-project and technology related. I'm here only for the comments as I see gems from software industry veterans and experts whose knowledge on various tech topics far exceeds mine.

> Do you usually read about a variety of topics or it's focused in 2 or 3 topics only?

Usually 2 to 3 - I mostly come here for "Show HN", "Ask HN" and technology related announcements / findings. I come here to find inspiration and motivation to ship my side-projects.

> Do you usually read during some time of the day or it's usually random?

Random, throughout the day. It's gone up more ever since I gave up reading mainstream news after the elections. ( Nov 10th 2016 to be precise). I try to avoid political news on HN also. The mods have done a great job of flagging and removing them, so I am very grateful for that.

Related Reading: http://joel.is/the-power-of-ignoring-mainstream-news/

P.S. I also use https://hckrnews.com/ It loads super fast , has a very clean pleasing UI and helps me quickly scan the top stories on HN and decide which ones to come and peruse.

hamstercat 2 days ago 0 replies      
I read about 10 articles per day, filtering through the top 10 to find the ones that I could be interested in. I really like the comment section, as it's a lot more civilized than other online community, and they usually add another perspective to the post. I actually make it a point not to read comment on most articles/blog other than HN because it tends to be filled with trolls.
valbaca 1 day ago 0 replies      
I read about 8 articles a day, mostly from HN and Lifehacker.com, usually just Productivity "Junk Food" Articles

Depending on my energy and/or how long my build is taking, sometimes I just skim articles headings and throw them to Pocket. Then when I have medium energy and more time, I open up my Pocket, filter aggressively, and read the rest. Really long articles get tagged with #someday and go to the weekend.

I've been trying to focus on C & C++ related articles, as that's what I want to and will be doing more. But I also find articles about Functional Programming very interesting.

I couldn't care less about start-ups or the culture. I can't even open most policy or political posts now because it's just a punch to the gut every day. I read less than 1 comment on average per article.

Proof 1 day ago 0 replies      
I'm a Mathematics major so I make a point of reading all maths related articles and if I have something to contribute then definitely comment.

On average I read 2-3 articles fully but it also depends what's it on. On breaks I always try to read top 10 or 15 and sometimes comment. I find this community and commentators quite a pleasure to read because many of us posses something unique or at least it seems so.

importantbrian 1 day ago 0 replies      
I actually read 3-5. I read the comments on another 3-5 without reading the article. Like WA said above. Sometimes I care more about the comments than the original article. I also find that if I'm not totally sure if an article is worth my time or not there are usually a couple of high-quality comments that will let me know if I should. I really love HN for that. I will also usually bookmark 10-20 articles with the intention of coming back to read them later, but I almost never do.

As to the type of article, I'm all over the place. Sometimes it's work related, sometimes a side project, sometimes just something I've got a passing interest in.

vinceguidry 2 days ago 1 reply      
I read mostly geopolitical articles and whatever TheBrowser kicks up to me. I used to read a lot of books, but these days a book has to be really attractive for me to get over the usual low signal to noise ratio that books offer.

I've been on a reading diet for the last few weeks, I plan to kick back into high gear soon, with a project I'm building to ingest all my reading materials and present them to me in bite-sized formats. I used to be satisfied with Pocket, but my reading workload is too heavy to comfortably shoulder, so I need my own power tools.

What would be great is if I could break books up by chapter and feed them into the system, so that way they don't feel so heavy. I'll find a way to do that eventually, probably based on some ugly hack of converting Kindle books to EPUB or something ungodly like that.

segmondy 1 day ago 0 replies      
20-50. :-( related to work, related to Tech, personal interests, news (politics, world, finance)
dhimes 1 day ago 0 replies      
I tend to read a couple of scholarly-type articles a week and a bunch of blog/tech sites as interesting things come up. That said, I've been reading a lot of literary fiction lately as I've been spending time in that circle because my wife just launched her first novel (and it's really quite brilliant, actually).


Grab a copy at your local indie bookstore!

dsr_ 2 days ago 0 replies      
I read for pleasure during my commute. (Days when I work at home are a little more stressful because I don't get that enforced downtime.)

During the workday, I check various sources of information about once an hour, unless I'm working on something that requires either research or flow.

I run an RSS collector to manage repeating sources of information and categorize them for me. I add sources as I come across them and clean it out about once every six months.

Everything I read during the workday is related to work, but that's about fifteen different topics.

kriro 2 days ago 2 replies      
I'd be interested in hearing if people share my habit of always reading 3ish nonfiction books in parallel. I have a pretty hard time sticking to one. It's usually a programming or related book, some science book and some pop-science or selfhelp or marketing related stuff (or something like outdoor living, fishing etc.). And usually fiction during the commute. Oftentimes I'll also have random collections of stuff (Lovecraft collection) or comic books lying around for a "quick read".
mertnesvat 2 days ago 0 replies      
I read 2 to 5 articles a day. But this reading is not comprehensive instead it's like looking the important points, although skimming is the key of surfing but recently I've discovered that it shortens attention span so it seems theres a big effect to changing other habits too.

That's why I'm in the diet of not skimming through instead if I start one article I finish no matter how boring it is. But it's very hard I'm old surfer and suffering for deep concentration..

prattbhatt 2 days ago 0 replies      
I skim Hacker News couple of times a day. I prefer reading books (on Kindle), ~30 mins to 1 hour every night before sleep and 20-30 mins every morning after waking up.
mynegation 1 day ago 0 replies      
My anecdata: I don't read much on internet anymore aside from what's linked on HN and what I research for a specific topic. Plus a bit of news at CNN and a bit of Producthunt.

I read about 15 articles on average and all comments to about 10 of them and scan some comments for the rest. My reading is batched around morning, lunch, and evening. I download few articles to Pocket for offline readin. During subway commute.

AngeloAnolin 1 day ago 0 replies      
Usually would read topics that are of interest to me (i.e. technology, software development, frameworks, etc.).

For the others, I would usually skim through the article and also read the comments.

I am finding that there's a lot of value reading the comments, as some folks have that deep seated knowledge, as well as providing relevant links that will help you further grasp what's on the article.

solracanobra 1 day ago 0 replies      
Usually if I find an article that I'd like to read, I skim it and then decide if I want to actually sit down and read it word for word, and if so I save it for the weekend. Usually skim through a couple articles daily, and they go all over ranging from tech to non related tech stuff.
pagade 1 day ago 0 replies      
Skim 5 to 10 articles daily. Interesting ones keep accumulating browser tabs till weekend. Mostly tech, personal interest. Have allocated time for cleaning up all the tabs on weekend. For long reads, I use TextAloud to quickly convert to audio and listen with faster speed.
Grangar 1 day ago 0 replies      
I always open the article and comments in separate tabs. I then skim the article if it's very short, if it's long-form I read the comments first. If the comments indicate it's worth reading I save it in my favorites for later.

I still have a list of ~40 articles to clear out...

jrs235 1 day ago 0 replies      
I read a handful of articles a day covering several disciplines. I usually am reading two or three books at a time. Reading a few chapters of each, setting it down and round robining through threw them.
vikas0380 1 day ago 0 replies      
I read hacker news daily when ever i am free, hacker news is the next thing i do. Apart from this i have subscribed to hacker news 500 Pushbullet channel. When ever any news hits 500, i get notification on my phone or chrome.
0xCMP 1 day ago 0 replies      
A fun game to play with a co-worker is "what articles would you click on the homepage?" I just did that yesterday. My co-worker knew every link I'd opened (without looking at my screen) and I couldn't figure out most of his.
penetrarthur 1 day ago 0 replies      
95% of the time I only read comments. People usually insert quotes from the article and discuss them right away. And it is much more valuable to read comments because there are a lot of smart people commenting who work in related fields.
wingerlang 2 days ago 0 replies      
Mostly comments on websites. Even when I read something for learning (books/articles/blog posts) I tend to skim it at best. My attention span is getting fairly low.

Either about iOS development, design or (lately) learning thai language-material.

david90 2 days ago 0 replies      
1) I read HM during break time. For like 5-10 minutes.

2) Usually I open the interested topics in other tabs and have a quick scan on the passage/ website

3) If that's interesting, I will add it to my reading list

4) I go over the reading list after dinner when I have free time

RamenJunkie_ 2 days ago 0 replies      
I have the RSS feed in my reader, I skim through he headlines with it mixed in among other technology RSS feeds, I read maybe 2-3 interesting topics, mostly in the morning while eating breakfast.
Alduras 1 day ago 0 replies      
I read 3-5 articles on the average, mostly very different topics to enlarge my knowledge and get to know Sites that I did not know before!
jerry40 1 day ago 0 replies      
I use The Old Reader as a news aggregator and my own emacs mode to read it via API. In fact I read HN in emacs :) At least when I'm home.
Apreche 2 days ago 0 replies      
I use the RSS feed with Feedly. I only read things about actual technology relevant to me, and skip everything about silicon valley startup nonsense.
davidiach 2 days ago 0 replies      
I read about 20-40 articles per day, mostly tech or business related. Generally speaking, I find them on HN, Facebook, Twitter.
rabboRubble 1 day ago 0 replies      
I read, or peruse, too much. You can thank Digg RSS Reader...

Fun stuff : xkcd and the like, 4 sites

News: Chinese edition NYT and the like, 11 sites

Technical: Hacker News, Venture Beat, ARS Technica, etc. 12 sites

Daily I maybe read / peruse ~100 articles out of what is summarized in the RSS feeds. Meaning, I see an article headline, it interests me enough to actually click to open the underlying website article. Maybe half of what I open I spend 10 seconds looking at only to immediately close. Half of what remains gets a speed read scan through. Maybe 5-10 articles a day get a thorough slow read. I try not to comment as much as humanly possible. I need to do other stuff in life youknowwhatimean....

sangupta 1 day ago 0 replies      
Skim through via my RSS reader, and read around 10-20 articles a day.
jedicoffee 1 day ago 0 replies      
I read 10-20 articles a day, don't really read too many comments.
anigbrowl 1 day ago 0 replies      
~10, no, variety, randomly.
mythrwy 1 day ago 0 replies      
3-4 articles per day.

Probably split equally between tech things I think might be helpful ("Python, Bash, SQL how tos" etc.) and non-tech things which are novel.

Like "Guy frozen in ice brought back to life after 600 years" (which wasn't a real article but if it had been you bet I would have read it).

I avoid most article from major news source (I keep up with the news anyway) and most Medium stories and anything with a social justice type slant (nothing wrong with that, it's just not of interest and not why I'm here). Also skip most "Our startup is doing XX or shutting down or whatever".

Skim comments for many more articles (~20) and if they look interesting read more in depth.

kppiskingpp 1 day ago 1 reply      
I read most things and it makes me happy but when I read a bunch of whiny white men on Hacker News I feel sad. ;(
Ask HN: Things you got in trouble for at work that were not a big deal?
7 points by mattbgates  11 hours ago   9 comments top 5
daly 7 hours ago 0 replies      
At IBM I got "called on the carpet" to the Director's office because I was seen in the hallway without my jacket. (1978)

Back in the past I worked at Franklin Lakes, the IBM Office Products Division headquarters. I was a VM/360 Systems Programmer. I printed out a "core dump" of memory and since the printer was just down the hall I walked out of my office, picked it up, and returned. Someone saw me, called my manager, who passed it up the hierarchy as an "infraction"... and I ended up getting chewed out by the Director (3 levels up the management chain).

Office Products sold typewriters, paper, and punched cards. Our typewriter repair persons (all male) wore suits and wing-tip shoes to service your typewriter.

Times have changed.

schoen 10 hours ago 0 replies      
The original text is about suffering and pain (presenting an interesting philosophical argument which I've come to associate closely with George Lakoff's "moral credit and debit" theory, that we tend to think people who have suffered automatically earned virtue from it).


Of course that doesn't mean that people who use this text are wishing suffering on anyone.

See also


mvpu 7 hours ago 0 replies      
This tells me your supervisor was never a creator (lorem ipsum is like hello world), lacks good judgment (should have researched the complaint and dismissed it as benign, explained to your naive colleague), and lacks good temperament (scolding is immature). I would look for a better supervisor and company.
isaiahg 8 hours ago 0 replies      
Wow, I've used Lorem ipsum before and people seem really confused by it and think I put it in purposely and that it was part of the final design.
savethefuture 10 hours ago 1 reply      
Lorem ipsum hate speech, thats a new one... You work for a shitty company who hires shitty people.
Ask HN: Can we have full dates on Hacker News stories/comments when hovered?
3 points by alpb  11 hours ago   1 comment top
gus_massa 9 hours ago 0 replies      
Looks like a good idea. I prefer "1 day 22 hours 13 minutes".

Anyway, it's better to send the suggestions to the mods by email hn@ycombinator.com because this threads are most of the times unnoticed.

Ask HN: Is there an open-source alternative to the AP Stylebook?
2 points by ahmedfromtunis  12 hours ago   1 comment top
wahern 10 hours ago 0 replies      
Judging by this article

it looks like the closest thing to an open, participatory style guide might just be Wikipedia's Manual of Style,


Is Kiln from Fog Creek dead, dying, or what?
10 points by aeorgnoieang  21 hours ago   2 comments top 2
spicyj 13 hours ago 0 replies      
It sounds like maybe they renamed it to be a feature in "FogBugz Dev Hub":


kevinherron 14 hours ago 0 replies      
We were using FogBugz+Kiln on premise for a while but abandoned Kiln for GitHub Enterprise a year or so back.

Seems dead to me, and to be honest, it always kind of sucked and was slow.

Ask HN: How many daily visits to HN?
6 points by tmaly  22 hours ago   2 comments top
mod 16 hours ago 1 reply      
This is a starting point, without exact figures: http://www.alexa.com/siteinfo/ycombinator.com
Ask HN: Does it matter which deep learning framework I use?
82 points by canterburry  2 days ago   21 comments top 14
antognini 2 days ago 2 replies      
It all depends on what your goals are. If you just want to train a neural network on a dataset you have and you aren't all that interested in going into the details of how the NN works or is trained, Keras is fine. It has a nice high-level interface and the backend is either in Theano or Tensorflow (your choice).

If your problem is more complicated and you want to use some unique architecture, you'll have to use one of the more low-level frameworks. I would recommend Tensorflow just on the basis of its popularity (you're more likely to find people who have run into the some problems as you). But Theano, Torch, and MXNet are probably pretty much equivalent in terms of speed and ease of use. I hear Caffe has a steeper learning curve.

If you're really doing something fancy, then you'll have to look into more detail. Torch and MXNet have the advantage that you can adaptively change your computation graph based on the data, but you'd probably have to be pretty far into deep learning research before something like that is useful. Tensorflow Fold does something similar, but I'm not sure how well integrated it is with the rest of Tensorflow (I've never used it).

You might also take a look at this:


It's a little out of date now, but it'll get you started.

Some of these frameworks are more general than others (e.g., Tensorflow is more general than Keras), so you can specify architectures in some that you can't in others. But as long as you can specify the architecture in a particular framework, you'll be able to get a working model. Your choice of framework just comes down to whatever one is easiest to work with for the problem at hand.

madmax108 2 days ago 0 replies      
As with most programming questions, the answer is a combination of yes and no, and that depends on the level of abstraction provided by the framework.

I started off using Caffe/Torch and currently use mostly Keras for most of my deep learning related experiments. With a more base level framework, I actually could tinker with different moving components to understand why they are used as they are, while with a higher level abstraction, I can concentrate on the problem at hand, knowing that most basic abstractions (or building blocks) are well developed already and have more or less been battle tested by people far smarter than me.

And of course, when it comes to pure speed numbers and architecture for scaling/deployment, these frameworks do vary among themselves: https://github.com/zer0n/deepframeworks/blob/master/README.m...

attractivechaos 2 days ago 0 replies      
> On the other hand, if a framework "correctly" implements the underlying statistical theory/principals of deep learning, shouldn't I get the same results regardless of whichever framework I use?

That is about right provided that 1) you use the same initial values and hyper-parameters, and 2) you can implement the same network with all frameworks. Issue 2) is complicated. Some networks are easy to implement in one framework can be hard or even impossible in another framework. Here "hard" can mean two opposite things: lack of flexibility (which disallows you to construct a certain topology) or excessive flexibility in the framework (which takes too many steps and care to construct a topology). Which framework to use depends on your goal and skill level. For starters, keras is usually easier.

gtani 2 days ago 1 reply      
Might want to look for video to Feb 22 lecture comparing caffe, theano, torch, TF: http://cs231n.stanford.edu/syllabus.html. It was taken down from youtube because no closed captions but i'm sure it's archived multiple places
p1esk 2 days ago 1 reply      
siscia 1 day ago 0 replies      
I am learning now TensorFlow and I have no knowledge of the other possible frameworks.

What surprise me the most is that, at least tf, is almost declarative as framework.

I needed to add some random noise to a point in a multidimensional space so to generate other n points, close to first one.

In python I would loop through n, each time I would add some noise to the initial point and then I would push it into a list or whatever structure, a list compression.

In tf I am "stacking" n times the original point so to obtain n times that same point, then I am generating n random noise and finally I am adding the two.

The second solution more elegant in my opinion but require an important mental shift.

If the other frameworks are somehow similar at tf your biggest hurdle will be this kind of mental shift, just pick one.

akyu 2 days ago 0 replies      
I was using Keras pretty heavily, but I have switched over to fully using TensorFlow. Once you build a decent library of boiler plate, Tensorflow becomes very usable. Packages like prettytensor may even surpass Keras in terms of usability. Also I found the Keras documentation to be quite lacking, and ended up reading the source code much more often than I would like to.

I ended up bumping into the edges of the Keras API too much, and coming up with hacky type solutions to do things that are actually quite simple if you just do them in TensorFlow yourself.

Theano and Torch are also great options, but I think I will be sticking with TensorFlow, simply because I trust that Google will be putting solid effort behind it for years to come.

billconan 1 day ago 0 replies      
there are few things you need to consider.

first is language. need to choose a familiar language.

second is feature set. they don't implement the same set of operators. but if you only want to use the common ones, most frameworks should have them.

the third is their ability to train in parallel. for example, does a framework support multiple machines? or just single machine, multiple gpus? Performance is also a factor. Do they support simd/gpu? do they generate intermittent code and compile it into cpp/cuda? or they just call into gpu libraries? Do you want to support mobile devices?

the fourth difference is the level of abstraction. if a framework is very low level, users need to understand many fundamentals of deep learning. but on the other hand, if you want to extend the framework to add new operators, a low level framework is easier to hack.

a high level framework lets you to write less code, but it hides details and makes it harder to hack.

the last thing that can be considered is the difference between dynamic/static framework. dynet and chainer and tensorflow with something called "fold" are dynamic frameworks. I was told they are more flexible. but I don't understand the details.

wayn3 2 days ago 0 replies      
It does not matter, and there's not a lot to get wrong in deep learning.

The math involved is pretty simple, in terms of the calculations that have to be performed.

Where frameworks differ is in things like speed and ease of use. Use the one that is the easiest for you. Tensorflow is certainly going to be the most popular for the foreseeable future.

mindcrime 2 days ago 0 replies      
In many frameworks the low level mathematics are delegated to the installed implementation of BLAS[1] anyway, so I'd expect most of the really popular frameworks to get the same answers from that perspective. Other than that, my feeling is that if you stick to the well known / popular frameworks, you should be fine. If any one of them had a glaring deficiency, I'm pretty sure it would have been noted and widely disseminated by now.

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

deepnotderp 2 days ago 0 replies      
Depends on your goal. Ultimately, the three tenets are flexibility, speed and speed of development. All frameworks make tradeoffs between them. Researchers use slower (in both senses) frameworks to implement weird new ideas that require the flexibility while engineers typically use faster (in both senses) frameworks that allow them to have a performant and reliable model for production deployment.
paulsutter 2 days ago 0 replies      
A year ago it looked like Tensorflow might dominate, but most papers I read still publish their code in Caffe, so we've done a lot more with Caffe than Tensorflow.

Our own work calls cudnn/cublas directly because we're C++ programmers and its just more convenient for our use case.

cjbprime 2 days ago 0 replies      
It's like any framework. You probably want to choose based on popularity (which equates to Stack Overflow articles explaining common pitfalls..) and a programming language you already know.
starlineventure 2 days ago 0 replies      
Try using keras.io that way you can have an abstraction on top of tensorflow, theano, etc
Ask HN: How do you set up a VPS for personal projects?
4 points by mmwtsn  13 hours ago   4 comments top 4
mattbillenstein 13 hours ago 0 replies      
Bash scripts -- write scripts, check them into git, make sure they are idempotent and repeatable. Whenever you start something new, reuse them and fix whatever broke since the last time.

For testing the scripts, I've used virtualbox -- install the latest ubuntu server LTS into a VMinstall your ssh keys, dotfiles, etc but leave it otherwise bare-bones. Then, clone it (this takes just a few seconds) and do your testing inside the clone. When you need a clean environment, delete the clone and create a new one... Makes for fast iteration on testing that install scripts always work. Don't configure anything by hand -- learn enough sed/awk/grep/etc to modify what configs you need without invoking an editor.

If you need to scale this up to something real and in production on multiple systems -- then start learning Ansible / Salt / etc. Doing in those systems what you now have documented in bash scripts will be some work, but doable.

soulchild37 7 hours ago 0 replies      
I wrote Chef script (https://github.com/cupnoodle/rails-server-starter-pack) for setting up Rails stack in VPS. Chef is similar to Ansible, I think it is quite handy.
newsat13 9 hours ago 0 replies      
Depends on what you mean by "personal projects". I have never used the likes of ansible for personal projects. Are you thinking of installing rails, django or a lamp stack? Or setting up a VPN? Really depends on the use cases.
smt88 13 hours ago 0 replies      
Is there a reason you're doing this stuff manually instead of using something like Elastic Beanstalk or Lambda on AWS (or the equivalents on Azure or Google)?
Ask HN: How do you make money from your side projects?
144 points by jmstfv  2 days ago   97 comments top 34
david_shaw 2 days ago 6 replies      
Google Adsense + organic (non-paid) traffic == "passive" money.

Not an insane amount of money, of course, but enough that you can consider the project successful if you're getting a solid amount of views.

My largest project, http://sleepyti.me, gets about 1.5 million unique views per month. The revenue Google Adsense brings in is not nearly enough support myself, but it's enough to make the effort feel solidly "worth it" in terms of development time and hosting costs (which are very low at this point).

How (or if) you should be monetizing depends on the nature of your side project. If your "side project" is a business -- say, designing WordPress themes -- then you should sell your product! If it's something that gets 50 views per month, maybe it's not the best candidate for monetization (and is instead a portfolio/resume builder). Either way, gaining experience building things is almost always a good thing.

tedmiston 2 days ago 1 reply      
There's a great book called Start Small, Stay Small: A Developer's Guide to Launching a Startup by Rob Walling [1]. It's by far my favorite book I've read on this subject and made me reconsider my approach of trying to monetize a side project. It was written in 2010 but is still highly relevant and recommended here from time to time. (There's similar free content on his blog as well.)

One important idea from the book is the distinction of side project/product confusion:

> A project is a software application that you build as a fun side project. The code is fun to write because youre not concerned about quality and performance, and the end result is a neat little application that likely isnt of use to many people.

> A product is a project that people will pay money for. In other words, its a project that has a market (a group of people who want to buy it). Without a market, a software application is just a project.

I think it's important to start in the right place here. Both approaches are fun but they have opposing goals. If you want to build a product that makes money, start with the market. If you want to build a side project... that's great, just keep in mind that when a side project tries to tack on "and make money" later, it mostly doesn't work.

[1]: http://www.startupbook.net/

AtheistOfFail 2 days ago 2 replies      
1) I write side project.

2) I put side project technologies on my resume.

3) I put side project link on my resume.

4) I put my resume on LinkedIn.

5) I get a raise during my next performance review (or next job)

I write side projects when I want to try a new technology in order to integrate it into my flow. I don't make money from putting a couple of JS libraries and generating an automatic ping pong game from Bitcoin transactions (https://writecodeeveryday.github.io/projects/bitpong/) but I do get the experience on Websockets for clients.

kbyatnal 2 days ago 1 reply      
Currently a student in college and I'm working on https://www.60secondseveryday.com, the fastest way of daily journaling.

I charge a subscription fee - either $5.99 or $9.99 a month. One of the hardest things for me to learn is that as developers, we tend to price things too low and don't really value our work enough.

60 Seconds Everyday is currently trending on Product Hunt too!

caseysoftware 2 days ago 3 replies      
About 18 months ago, I launched https://techeventsnetwork.com/cities

It aggregates tech events (mostly meetups, conferences, workshops, etc) across ~50 US cities and tweets them out and broadcasts a weekly mailing list. Hashtags, time of day of messages, including/filtering submissions, etc are driven by some simple machine learning. It's grown from basically nothing to ~13M+ impressions last year and is on track to generate ~30M this year.

The business model is affiliate links to the conferences and workshops. It turns out when you find 5-10k tech people in a given geography who are trying to improve their skills and network, event organizers come to you.

I do not include jobs, job fairs, etc though I know that would make more.

fuball63 2 days ago 1 reply      
I have been reading this site for a bit; there's a lot of good info here: https://www.indiehackers.com/businesses
mattkevan 2 days ago 0 replies      
Not much. I use side projects to try out ideas and learn new skills - and if they cover their costs or make a bit of money, then great.

Of course I'd love to hit on something that meant I could quit the day job, but I think that unlikely.

In 2011 I built www.illustrators.co, a multi-vendor marketplace for artists to sell their work. I met some cool people and learned web development and UX in the process, completely changing my career trajectory. It just about covers costs, despite languishing for the last few years. I'd love to work on it full time.

In addition make and sell prints of public domain images. A chance to experiment further with online marketing and selling and building sites with static generators. I also make and sell cyanotype prints of my photographs. Mostly to experiment with photography processes.

I'm currently building a compendium of UX concepts, methods, tools, books and events. Mostly to help me better understand the subject, but it may also be useful to others.

throw2bit 9 hours ago 0 replies      
I initially charged 9$ for my desktop shareware product. This was 7 years back. I thought the app was worth only 9$ that time. But when I understood many people purchased it, I increased to 19$, then 40$ now, but with many more features over the time. I make an average of 800$/month. Stopped using Stripe because of their heavy chargeback fees and bad dispute mechanism. Uses only PayPal to accept payment.
unit91 2 days ago 1 reply      
For me, side projects are about cash, not fun. I try to find contract jobs that look easy, bid really high knowing I won't get the vast majority of them, and do a good job for the people who actually hire me.
shanecleveland 1 day ago 0 replies      
Not a novel idea, or necessarily easy, but solve a problem for a business. A niche calculator, a pdf template, a better way to view publicly available date, a site widget, etc.

If you gain some traction, there is ad revenue to be gained. I have found even 100 to 300 page views a day is enough to start seeing a few dollars each day. B2B ads pay out more. I've seen single clicks bring in $5+. Once built, not usually much you have to do after that, and they will typically grow slowly over time. And I feel good about them, because I know businesses are getting actual value out of them.

I have not struck the right chord with affiliate revenue yet. But I know there is money to be made with the right niche. I think you need to be a little more invested in affiliate sites, and have a real interest. These sites seem to require a steady flow of new content, though you may be able to automate some of it.

napoleond 2 days ago 0 replies      
I am partial to the business model of asking people to pay me for my services or for things that I've made.

My latest side project is https://www.smsinbox.net, which provides a drop-in chat interface for Twilio apps. It's targeted at developers who use Twilio in their apps, and want to easily expose a two-way messaging interface to their users. It doesn't make a ton of money right now, but definitely covers costs.

matbram 18 hours ago 0 replies      
I personally use niche websites and affiliate marketing for generating pretty passive income. If you can drive traffic using keyword research, it's becomes really passive after the articles go up.

Google Adsense + Amazon Associates can bring in quite a good bit if done correctly.

Sidenote: If you guys are interested in passive income discussions, you should probably join the live chat on IRC.


bsilvereagle 2 days ago 1 reply      
I tried an Amazon affiliate link (similar to https://kenrockwell.com) on my blog (https://frdmtoplay.com). 6000 views over 4 months has lead to 2 conversions for $12. For my level of traffic that's better than ads, but still not covering hosting costs.
bananaboy 2 days ago 1 reply      
I sell a Unity plugin for live inspecting and update of game objects and properties on a build deployed to a device: http://u3d.as/sHr. Ordinarily you can't do this; once your game is on your device you can debug it with VS or MonoDevelop but you can't inspect any of the game objects on there and tweak settings. I think it's a really useful tool and something that should be built into Unity.

It's averaged US$340 gross per month since last May but it's been hard to grow it. I think in some ways it's quite a technical tool and you need to be interested in actually debugging issues on device, but there are a lot of people using Unity who aren't super technical. Also it doesn't lend itself to sexy screenshots. I've noticed some of the successful plugins are those which are about creating things, and they get a lot of people sharing screenshots of things they've created on the forums.

amorphic 2 days ago 2 replies      
An industrial design friend of mine and I started https://enstaved.com after I had a really positive reaction to the Pythonic Staff of Enlightenment (https://jimter.net/pythonic-staff/) at PyCon AU 2016 (more than one person asked me "where can I buy one?").

We've just started selling customised modular staves to people who use them as props, novelties or promo items. We've become good at 3D printing via much learning at our makerspace (http://sparkcc.org) and so with a couple of printers we can basically run our own small-scale manufacturing business.

Currently we just take orders via email and word of mouth but we're building a website that allows people to customise their own staff (like in a video game).

leandot 2 days ago 0 replies      
Amazon affiliate program - http://hackernewsbooks.com/. With enough visitors you can make some serious money with it.
franciscop 2 days ago 1 reply      
I made https://comments.network/ to integrate HN comments into your static page. If it takes off I hope to get money either through subscriptions or from advertising (it is clearly explained there). So far a couple of sites used it that got into the front-page and it handles them a lot better than expected, so there's a really low cost associated to it.
wushupork 1 day ago 0 replies      
I had a serious side hobby which was performance art related. I took gigs when and if they came. If that was my full-time job like most aspiring artists, I would have been a starving artist.

Also while being fully employed as an engineer, I would take side projects, contracts etc that I would work on during the evenings and weekends. Eventually that became my full time job. I now run a small consultancy.

ArturT 2 days ago 0 replies      
I created ruby gem knapsack to speed up testing and I built a Pro version which is SaaS https://knapsackpro.com

I definitely learned a lot during last year while emailing with people interested in the product. Thanks to that I improved my tool iteratively while the early adopters discovered new areas or edge cases about testing I didn't even think about.

This week I published success story about running tests across 100 parallel CI nodes with my tool:http://docs.knapsackpro.com/2017/auto-balancing-7-hours-test...

fancyham 2 days ago 0 replies      
I have a lot of little side projects. My greatest monetary success helps solve a real problem so I'd suggest that. It's not about making a living I love when people use my stuff. Here's my experience:

> I made a stamp calculator for any postage for my own use then shared it online. It's all organic traffic via google searches and lots of repeat users. One google ad that pays for my server and a few meals a month. A Pennsylvania post office uses it to help the Amish! I love that. http://fancyham.com/stamp_calculator

> Just released a music notation iMessage sticker set For a music teacher friend. My goal for this one: long tail. We'll see!https://itunes.apple.com/us/app/music-notation-sticker-pack/...http://fancyham.com/#notation

> Helvetica shirts for font nerds like myself: Lots of sales at first through Twitter, but nothing now that the fed has passed. Other folks copied the idea, too. http://fancyham.com/shirts

> Geiger counter app, secretly controlled by pressure on the screen, that always drops jaws but just a few sales a month. http://fancyham.com/#detecto

I do UX design for a living and while these are fun creative outlets and an opportunity to try some programming, I think of these as play, not work.

Though I'd like to say these projects bring in money via boosting my day job, I don't know if that's true. These are such quick and dirty projects that I haven't mentioned them on my resume.

Though, I have been inspired recently by Nadja Buttendorf's 'brutalist' HTML site: http://nadjabuttendorf.com/ I'm going to embrace the ugly.

simon_weber 2 days ago 0 replies      
I sell productivity tools - Chrome Extensions and a SaaS - that solve my own problems in a niche. All of them run subscriptions with varying kinds of free/trial access, depending on the audience and the cost to me.

If you're curious on the details, I wrote a post recently about getting to $100/month with them: https://www.simonmweber.com/2017/01/09/side-project-income-2....

eelkefolmer 2 days ago 1 reply      
I sell a Unity plugin that lets people navigate mobile VR using walking-in-place: https://www.assetstore.unity3d.com/en/#!/content/60450

Not a huge money maker (>300 copies sold) but I also filed a patent on it in 2015, so hopefully a larger VR company will see our locomotion technique as an essential step (no pun) to bring VR to the masses, since it reduces cybersickness.

parametrek 2 days ago 0 replies      
Amazon affiliate links. (Yeah, yeah, I need to diversify. Ain't easy making opportunities.) It works well if your site is designed to improve the shopping experience.
joshwcomeau 2 days ago 1 reply      
I recently started https://uncover.cc, an aggregator to help you stay on-top of new releases from your favourite authors.

To monetize it, I use Amazon affiliate links. When Uncover tells you about new books, it presents links to buy those books on Amazon, for which I earn a commission.

So far, it has not been a huge moneymaker; I have made exactly $2.10 USD.

Still, if it can make ~$10 a month, it covers its cost, which is good enough for me.

henrypray 2 days ago 0 replies      
I mine social media data and in turn, find over/under reactions in the stock market and employ an options based trading strategy on it.
stevesearer 2 days ago 0 replies      
My now full-time work https://officesnapshots.com started out as a side project while teaching history ~10 years ago and the main source of revenue was and continues to be advertising.
geuis 2 days ago 1 reply      
https://jsonip.com serves something north of 10 million requests a day last time I checked. It's a free service I've run for years. I'm open to suggestions.
NicoJuicy 2 days ago 0 replies      
Webshop with 1 product, just went into the newspaper today ( quite pleased about this)

Getting projects from personal connections is pretty easy ( eg websites, shops, ... ), got some money on a webapp ( not much though) and hosting off course.

pryelluw 2 days ago 0 replies      
I charge a one time fee. No recurring revenue here because people tend to shy away from it in my markets. Its ok because no overhead and I get a bigger lump sum.
nullundefined 2 days ago 2 replies      
I built a SaaS product that makes decent passive income ($3500~/month) and continues to grow.

I'm working on a second SaaS product at the moment.

skynode 2 days ago 0 replies      
Currently building something in the data science space myself. Mostly for the Enterprise though.
kruhft 2 days ago 0 replies      
Sales through the macOS App Store.
Johagan 2 days ago 0 replies      
Where would I find someone with a good knowledge of Deep learning to do some coding?
Johagan 2 days ago 1 reply      
Where would I find a coder with good knowledge of NN and reinforcement learning for a paid project?
Ask HN: How to price properly to get maximum income?
6 points by gdiocarez  1 day ago   5 comments top 3
taprun 22 hours ago 1 reply      
The obvious answer is to offer (or require) a maintenance plan. Charge XX% per year for a given level of support, updates, and maybe a newsletter.

Here's a list of some common revenue models: https://taprun.com/revenue/

tedmiston 16 hours ago 0 replies      
Make sure your contract clarifies the end state of what you're delivering and that continual updates are not included / would be a possible future but separate SOW.
mattbgates 1 day ago 1 reply      
I had a buddy who designed this web app a few years ago for a client of his. He was young and relatively new, and he charged the guy $500 to do it. The guy made hundreds of thousands of dollars. Years later, all of the APIs for the app are pretty much deprecated and things are breaking. The whole app needs a redesign.

The guy approached my friend letting him know that he needed to update it. My friend said it would be a lot of work and he didn't really feel like working on it. The guy said it was urgent and this was his livelihood. My friend came back at the guy with a price because the whole system basically needed to be re-developed and he was going to probably make it better than it was before -- having almost a decade now of experience. His quote: $25k.

The guy refused. As I said before: A guy who was making hundreds of thousands of dollars off this app refused to pay my friend to update it. Of course, he could take his business elsewhere, but my friend knew the app well because he designed it.

Another story to go with this in a way: I purposely did not update a clients' website for almost 5-6 months. Guess what happened? Exactly what I thought would happen: things started breaking. My client contacted me letting me know that things were broken, thus solidifying my justification for why I charge for monthly updates. Clients think that they can pay once and thats it. Sure, go ahead. But the web is changing so fast and especially things that rely on API that you just need to be handy.

Here is the thing by not doing that: If you go in months later, you have to figure out what you did, remember what is going on, try to fix it, etc. If you are in there monthly just to maintain it and update it, you have a constant reminder of the work you have done and the general maintenance helps you keep in contact with the client.

I have had it happen: I built a website/app for a guy and he was busy doing something else... I kept the web app on a private server and it was nearly done. He contacts me over 2 years later telling me he wants it to go live, but not before having a whole bunch of changes. I had to go in there, understand where I left off, and pick up where I left off to finish for him.

Anyways, my point of these stories is this: Know that once you develop it, you cannot guarantee what it will need in the future, or any bugs that might occur, but whether it needs monthly or yearly updates, you should incorporate that into your initial price, or monthly/yearly invoices, just so you can keep checking up on it, make sure everything is working, etc.

If they need things fixed during the course of the year, you can charge them by the hour, or just come up with a fair monthly price, even if you do no work on it -- just helps you keep everything in check.

You could also come up with an affiliate plan -- pay them a percentage for referring you to other potential clients -- on work completion, of course.

Ask HN: What techniques do you use to keep your current users engaged?
21 points by thakobyan  2 days ago   13 comments top 6
sametmax 2 days ago 2 replies      
Being useful.

Yes you can use many tricks, and they work. But in the end of the day you are not different that a czsino, a drug dealer or a tabloid magazin when you use them.

It is more economically efficient to trick the user into staying in the short run. But in the long run, we are using google and stack overflow because they are the most useful, not for tricks.

Among tricks, some useful ones are also often badly implemented and become armful.

Ex: notifications are only useful if it result in more productivity than distraction. I hate most notifications, they disturb my flow, but I like being request them for specific cases to save me time.

A light gamification can be fun, but if it's at the price of my main usage of the site I'll leave.

Basically give me want I want, quickly and in a useful way, and I'll stay. Save me time and energy and i may even pay.

Unfortunately, hn readers are not a good sample for user behavior. We all have ad blockers, we boycott sites with behavior we dislike and we know how to by pass stupid tech decisions.

But if you manage to engage hn users with the same content and design than regular user, your model has a good base to be sustainable because it has credibility.

Credibility is harder to build than addiction. It's not quickly as rewarding, but it more reliable. And more satisfying for you.

joeld42 1 day ago 0 replies      
Think about what valid, useful reasons people have to return to the app. E.g in a game, they might want to see the progress in their crops. In a book collecting app, it might be to find out what new books appeal to them, or to enter their review when they've finished reading a book, or when a new book by an author they've read is available, or when their friend has reviewed or added a book, etc..

Figure out how the app can trigger or remind them of these moments. Notifications are the obvious one, but you want to be careful not to train the user to tune out your app if you send too many notifs or notifs they are uninterested in. The best triggers are ones the user has asked for themselves.

For example, when they get a new book you can prompt them to set a goal to finish reading it in a week or two, or whatever is comfortable, and then ask them if they want you to check up on them (notification) when that time is up. If they set the goal, they will probably welcome it.

Additionally, you want to try and build habits that help the user improve his or her life. So if you build a habit of recording their daily reading log, and reward the user for reading every day without missing one, then they are happy because they are reading more books and they are also connecting their new reading habit with the action of opening and using your app.

tmaly 1 day ago 1 reply      
I am in the same situation with my side project. Currently working on version 2.

I would say look at what Facebook does, they are like digital crack.

Your site should be very useful to users and you should try to gamify things a little bit as others have said.

I would recommend building out a segmented newsletter for people. Say for instance, you get a bunch of HN users that signup. If they are interested in startups, you have a weekly or monthly email that goes out that lists books on startups, customer development, lean startups etc.

You give a small summary on each book in the newsletter and the link brings them back to the site.

I have also seen email notifications for responses to forum posts that have worked really well.

One other thing, I tried your site on a Nexus 5, and the images of the books are a little shifted and oversized. I would suggest tweaking this a little as the majority of people browse the web on their phones these days.

wingerlang 2 days ago 0 replies      
I am the only user of my app so far - but due to me knowing that I suffer from procrastination - I've added messages based on usage and light questions I feel I should answer.

For example, if I use the app for X minutes in a day, the next day I will get a summary as a notification.

It also adds light questions, to give an example it takes a random word and asks something like "how do you pronounce this?" or "what does X mean?". Tapping it takes you to the answer. They are made to require as little actual app interaction as possible, kind of making the learning (or rather, retention) almost passive to a degree.

I found the success of this minor so far, but I think it can work fairly well. It just needs a good balance.

ankit84 1 day ago 1 reply      
I will refer the techniques mentioned by _Nir Eyal_ in his book "Hooked: How to Build Habit-Forming Products". The

* Trigger

* Actions

* Rewards (variable rewards)

Ref book on Amazon: http://amzn.to/2ngLIuz

AznHisoka 2 days ago 0 replies      
You keep them engaged by communicating with them on a regular basis. But here is the catch: dont just rely on email blasts. dont try to scale it. instead email each one of them 1 by 1 and develop a relationship with them.
Ask HN: Who and how worked on games in 80's?
7 points by cosmorocket  21 hours ago   2 comments top 2
danijelb 21 hours ago 0 replies      
http://all-things-andy-gavin.com/2011/02/02/making-crash-ban...This is one of the rare stories about game development I managed to find and read. It is not about 80s, but 1994 was much closer to 80s than it is to today.
itamarst 18 hours ago 0 replies      
http://www.dadgum.com/halcyon/ is a book of interviews with classic video game programmers.
Ask HN: Negotiation advice with top tech companies?
5 points by tootall  21 hours ago   6 comments top 2
bsvalley 21 hours ago 1 reply      
You're honestly at the edge. You might have nailed your interviews because 300k RSU and 180 base is extremely high for 7 years of exp. You can't compare a startup package with a public company package. I'm surprised they didn't even tell you the difference between options and RSU's. One is competely imaginary, the other one is real money. Treat your RSU like a signing bonus because it's (variable) cash. My guess is that the other offers you might get will be lower than this one ;)
tmaly 21 hours ago 1 reply      
Yeah your pretty much at a near max. Take the offer with the highest base salary. Options and any other form can have a downside.
Ask HN: Website to collect customer enhancement requests
3 points by GnarfGnarf  21 hours ago   4 comments top 3
tmaly 20 hours ago 0 replies      
I was thinking about almost this same exact idea the other day. However, I wanted customers to be able to submit requests that would not be initially visible to public facing web. They would be vetted and made anonymous, then people could vote on them.
gt565k 20 hours ago 1 reply      
So something like User Voice?


itamarst 21 hours ago 0 replies      
I suspect services like ZenDesk or other helpdesk software are likely to have this or something similar as a feature.
Ask HN: Who uses computer eyewear?
3 points by esseti  22 hours ago   4 comments top 4
mod 17 hours ago 0 replies      
My girlfriend bought me some of these. I like them.

I try to wear low-power reading glasses while at the computer, on the advice of my (retired) optometrist friend, to avoid nearpoint stress, despite having 20/20 vision.

She bought me a pretty simple-looking variety, with amber lenses. I don't really care about the tinting, I primarily want to get the assistance for my eyes.

They fit well and I can wear them comfortably all day.

FWIW I am a remote developer (at home).

I read some bad reviews on them, but nothing that affects their usage as I've stated it above. It's possible they claim more benefits in their marketing, I don't really know.

peternicky 18 hours ago 0 replies      
I tried Gunnar products years ago and was not impressed. What are you trying to solve with them? If it is eyestrain and dryness, trying taking regular breaks from the screen and blink more often.

This sounds silly but when we are focused and in the zone, we often blink far less than normal, this contributes to eye discomfort.

nayshins 16 hours ago 0 replies      
I use these every day: https://shopfelixgray.com/. They look pretty good, and the slight magnification really helps with eye strain.
spcelzrd 21 hours ago 0 replies      
My coworker ordered some. Wore them for a few days, then just stopped. It's probably easier if you work from home or don't mind looking goofy.

I wear prescription lenses, so I would need to swap out glasses while I'm working, or buy some clip ons.

Ask HN: No degree, how do I break into DBA / DB developer work?
9 points by jamesmp98  1 day ago   5 comments top 3
throwayedidqo 1 day ago 1 reply      
Build a strong portfolio on GitHub and a record of lots of contributions to open source projects.

To be honest with you, DBA's no longer exist at many companies. Most modern databases are easy enough to use that all you need is developers. My current company has a single DBA for 7 development teams.

If you want to break into software dev the low hanging fruit is usually web development with something like PHP.

You're going to be competing with a ton of people that have degrees and experience so try not to get disappointed about your search. If you can't land a developer job straight away, I know many who have gotten into dev by starting as testers and building their knowledge laterally within the company.

It take the average candidate with experience and a degree maybe 4 interviews to get an offer, you will probably have to do at least triple that.

empthought 22 hours ago 1 reply      
Fortune 500 companies are always hiring data analysts, business analysts, ETL (extract-transform-load) developers, etc. Anyone who knows their way around SQL and Excel will be able to get one of these jobs.

If you don't have those skills, get them. Consider an associate degree at a community college or something, because those F500 companies don't give a crap about GitHub portfolios nearly as much as they do about a piece of paper that says you can show up on time enough to get the piece of paper.

These companies also use contracting and consulting firms to staff three- and six- month projects, often for data migration, decommissioning legacy systems, and other data-heavy tasks. Ask around in the tech community in your area about which firms treat people fairly, help professional development, etc. and make contact with some of them. Many sponsor "boot camps" or other training activities.

After you have that actual job under your belt (and the 40-hours-a-week of real-life experience with the systems) it will be much easier to pivot into something that adds up to more than just monkeying around with data loads and report generation.

edimaudo 22 hours ago 0 replies      
You should look into a devOPs role or learn a DBA stack like MS SQL.
Ask HN: How would you securely store and retrieve photocopied passports/ids
3 points by skyisblue  1 day ago   3 comments top 3
eb0la 23 hours ago 0 replies      
Take a look at the new data protection Directive from the UE (will be in effect from June 2018) - Eventually all states will have some kind of regulation similar to this:


The best way to comply if your app is used in Europe is 1) start writing a .doc document detailling which data you want to collect, where do you store it, when do you use encryption (suggestion: both in the application and the data volumes - but be careful choosing the ciphers for volume and in-app), and why do you allow people to see the data.

matt_s 23 hours ago 0 replies      
One thing comes to mind is the personally identifiable information (PII) that is in the passport/ID. Usually it will have ID numbers but also name, address, etc.

Look at what the EU is requiring for this - it used to be called Safe Harbor.

A few things I remember about those requirements:- data encryption at rest and in transit- no onward transfer to third parties- opt-out methods for users to not allow you to capture the data

You may want to look into any restrictions on using a cloud provider or specific configurations you may need (i.e. no failover to a non-AU AWS farm).

sparkling 21 hours ago 0 replies      
Before you do any of this: in many countries it is illegal to store/copy ID documents of your Clients.
Ask HN: Comcast just told me it takes 90 days to cancel account
16 points by ehutch79  2 days ago   15 comments top 10
Someone 2 days ago 0 replies      
Read the agreement you signed. I don't have the faintest idea whether it is anything like what you signed, but https://www.xfinity.com/Corporate/Customers/Policies/Subscri... states:

"Termination by You. Unless you have signed a minimum term addendum, you may terminate this Agreement for any reason at any time by notifying Comcast in one of three ways: (1) send a written notice to the postal address of your local Comcast business office; (2) send an electronic notice to the e-mail address specified on www.comcast.com; or (3) call our customer service line during normal business hours. Prior to affecting such termination, or any other change to your account, Comcast may undertake actions to verify your identity and confirm your election. Subject to applicable law or the terms of any agreements with governmental authorities, all applicable fees and charges for the Service(s) will accrue until this Agreement has terminated, the Service(s) have been disconnected, and all XFINITY Equipment has been returned"

Seems fairly clear to me, except for the "Prior to affecting such termination, or any other change to your account, Comcast may undertake actions to verify your identity and confirm your election" part. I guess a weasel could easily take 90 days to do so.

jh37 2 days ago 1 reply      
I've always emailed ecare@comcast.com with any issues/changes/etc. with my Comcast. Provide them with with all the account info and a phone number. Someone has always called me back within 24hrs that had the authority to make changes or cancel. Hope that helps.
existencebox 2 days ago 0 replies      
They tried to do this to me when I bought a house. It was a hot market, so naturally the transaction went start to finish in <2 weeks, and I wasn't even sure at the end of week 1

I was furious at the thought of paying for a service where I wasn't even living (To add insult to injury they threatened to fine me if I cancelled anyway), so I simply kept calling and escalating. They'd assign me a ticket, and if they EVER slipped their 48 hour SLAs, I'd call again and escalate again. (document everything) Luckily for me their ticket handling was so shoddy a higher manager eventually saw the churn on the tracker and handled me himself, he seemed both competent and sympathetic to the BS I had to put up with and both cancelled and credited my account.

To answer your core question with a ramble: in this situation the squeaky wheel really does get the grease. I'm sorry you have to go through their shit, "not comcast" was frankly a large motivator in choosing my house where I did.

space_ghost 2 days ago 1 reply      
I switched to AT&T's gigabit fiber last year and had no issue getting my Time Warner cable service cancelled. One phone call and the service was immediately disconnected, and they mailed me a refund check for the remainder of that month's service.
balabaster 2 days ago 1 reply      
When I was working for a large US telco, we were required by law (at that time), if we were told by the customer that if they were being deployed overseas with the armed forces that service would be cancelled immediately at the customer's request without further proof of military subscription or deployment being required. This was quite a while back so I cannot speak to whether or not this is still the case. You may want to do some digging first, but it might be an angle to abuse the system to get what you want. Obviously IANAL etc.
smcguirk 2 days ago 0 replies      
Luxury! Took them (I believe) 6 months and they kept billing us and also sent new equipment. Never again.
ElijahLynn 1 day ago 1 reply      
I do this every time I call Comcast:

1. What is your operator ID and/or first name and last initial?

2. Can I please speak with your manager?

They either fix the issue or get the manager on the phone.

Manger gets on phone and usually resolves issue. If not then I repeat step #2.

jpindar 1 day ago 0 replies      
I know it shouldn't be necessary in this modern age, but every time I've gone in person to one of Comcast's many local offices, they've solved my problem immediately.
gnicholas 1 day ago 0 replies      
I've found Comcast to be fairly responsive when I inform the agent I'm speaking to that I will be filing a complaint with the FCC. Always ask for the name of your agent when mentioning this, for additional motivation.
ElijahLynn 1 day ago 0 replies      
Make sure to Tweet it out, https://twitter.com/comcastcares
Ask HN: Which headphones do you use while working?
22 points by excitednumber  2 days ago   36 comments top 26
e_py 3 hours ago 0 replies      
AKG K845bt. These are my first bt headphones and I can tell you that they make a difference. I was skeptical about bt headphones but the freedom you get with them will change your mind.

About sound quality there is no doubts about AKG, in my opinion one of the best brands out there.

In reference to the price.. yes they are expensive compared to other headphones but for someone who uses them more than 5h a day.. I think they pay off

rajeshp1986 2 days ago 2 replies      
I was skeptical about high end headphones till now. My wife gifted me a Bose Quiet comfort 35 last week and initially I was mad at her for spending so much but I can confidently say that they are "The best" headphones if you are coding. The design is great and fits perfectly on ears. I can wear them for long hours. I couldn't bear any headphones for more than 1 hour continuously before and always thought there is something wrong with my ear shape.

I am glad to find these headphones. You should definitely try these without bothering about price. The price will look small when you start using them. If they allow you to go into Deep Work and focus on whatever you are doing then the price pays off!

coryfklein 2 days ago 4 replies      
I use the Beyerdynamic DT 770 Pro. Noise cancelling really only works for static noises (like air conditioning, engine roar), which can actually make workspace noise like talking and voices stand out more.

In-ear headphones don't provide enough comfort for extended listening day in day out, so over-ear headphones are the best choice IMO.

Anything of good build quality in the $150+ price range is likely worthwhile, assuming you don't go for the overmarketed brands like Beats. I chose the DT 770 Pro because they are studio-quality, meant to last, and Beyerdynamics even supplies repair parts. They are meant to last through heavy use while providing studio level sound quality.

seanwilson 1 day ago 0 replies      
> The ability to replace the cable has saved me a number of times and the headphones still work/sound great.

I couldn't switch back from using bluetooth headphones. Once you get used to the wire not getting in the way and how you can walk around without having to take your headphones off, wired headphones just feel awkward. When you can get ones with 40 hours battery life then that isn't an issue either.

dharma1 2 days ago 0 replies      
At home I like Sennheiser HD-650, but being open back headphones they leak quite a bit of sound in and out. For the office (and commute) I just bought the Sony MDR-1000x - the noise canceling is very good, better than Sennheiser Momentum or Bose.

I like IEM's for the size but in terms of comfort not so much.

For those on a tight budget, best value headphones I've used are Soundmagic e10 IEM's and Superlux HD681 Evo closed back headphones, for about 25 each they are great.

Philomath 2 days ago 0 replies      
I also have the Bose QuietComfort 30 and I've been using them every day for everything, not only work. I am super happy with how comfortable they are, and while I don't think the noise cancelling is really important working from home, I really enjoy it when I am in a noisy enviroment.
jfensch 2 days ago 0 replies      
Audio Technica ATH-50X with velour replacement pads. Blocks a fair bit of noise while remaining cool.
19eightyfour 2 days ago 1 reply      
Bose QC 35. I wish the noise cancellation was adjustable and better. I mean it is good. But I'm one of those people who actually wants to be encased in a cocoon of total silence any time I choose.

Some examples. Sitting outside in a noisy cafe, with NC and white noise playing: zero background noise.

Same setup without a track playing, only NC: I can hear everything, but it's just quieter. Voices, cars still there. Not acceptable.

The way I interpreted the promise of NC was it would actually play the inverse wave and cancel everything. I don't understand why some sound gets through. And I feel cheated.

I don't think my expectation was unrealistic because it was based on the following episode. I was on a plane and the Qatari American guy next to me chatted to me about films. When our conversation died he started watching movies, with some huge black headphones. I asked him about them. And he told me they were NC and asked if I'd like to try. I put them on, then he pushed one button on the side and whsp! Every noise disappeared! The plane engine was gone. He kept talking but it was gone too. It was literally a religious moment for me. I glimpsed another world I didn't know existed. I never knew I could end all the noise. So naturally I had to get myself a pair. I asked what they were and he said Bose QC. They were from a few years ago. So you see I thought I'd found something I could trust.

At Yodobashi Camera I was so excited to buy my QC 35. But when I used them, I could not rationalise away my disappointment. It was qualitatively different. On the plane those headphones had clearly put my ears in a pressurized bubble. Of total silence. But the QC 35 was just like God had turned the world volume down a third of the way. Really not good enough.

So now I still wear them, but I'm always playing tracks. At least I've discovered Spotify. But I still think I'd much rather prefer, the Total Noise Cancellation my first experience promised. Now sometimes I even go back and question the trustworthiness the guy who introduced me to NC such is the magnitude of the difference between my expectation and the reality. Did that Qatari American guy trick me? Did he just start mouthing silently as soon as he pressed the NC button? Or did that NC tech really cut everything? And if the tech was legit, did Qatar or 2014 get better NC tech than Japan or 2017? Why has Bose foresaken me?

iKnowKungFoo 2 days ago 0 replies      
Beats Studio Wireless (latest edition). The noise-cancelling is so good that I can't tell when somoenee has walked up to talk to me. On planes it manages to cancel out nearly all engine noise. The bluetooth connection is great and works over a surprising distance, this allows me to wander about my office as I'm pondering a problem. Had an issue with the original pair I purchased where the left ear got disconnected after a few months. Apple sent me a replacement pair and haven't had any other issues since then.
zhte415 1 day ago 0 replies      
None. I find a quiet place for things that require concentration, indeed there are quiet areas for this otherwise private areas exist, work from home, or otherwise enjoy an open-plan office format when collaboration is prioritised.

Pushing for this shouldn't be underrated.

gaspoweredcat 2 days ago 2 replies      
Etymotic er4p with a custom null audio cable and ACS custom eartips, this is not noise cancelling, it's total blockage, when you have music playing someone can stand in front of you shouting at full volume and you won't hear anything but your tunes

Although ACS no longer make custom eartips there are other places that do such as snugz, without doubt custom tips are the single best upgrade you can buy for your sound

softwarefounder 1 day ago 0 replies      
It's great to see such in-depth answers here.

I simply use some cheap skull candy earbuds. The important thing to me is earbuds. They almost never leak sound, and can easily drown out surrounding noise at mid-volume.

RUG3Y 2 days ago 0 replies      
I have HyperX Cloud headphones, they're a gaming headset. The mic has nice quality sound, I use it a lot for conferencing. The sound is balanced (a lot of gaming headsets are bass heavy, these are not) and most importantly, they're very, very comfortable. I can wear them all day no problem.
iDemonix 2 days ago 0 replies      
At home I use Sennheiser HD600s, often through my Marantz PM60005 amp, or a portable Fiio amp. If I'm at work I just Sennheiser Momentums, over-ear kind.

The HD600s are brilliant for gaming, music and movies, but obviously are open backed so are no good for a busy office. I find in games, people often complain they couldn't hear me coming, but I could hear them! The sound quality is amazing and I don't think I'd ever replace them, unless they broke - in which case I'd either buy more or try HD650s.

The momentums are great for travelling and this morning I actually bought my other half a pair of the folding on-ear versions for travelling and being away from home.

hector_ka 1 day ago 0 replies      
Spracht Konf-X with noise cancelling. $79.99 .Way cheaper than Bose, and very comfortable for me . I also use them when flying.
ddorian43 1 day ago 0 replies      
I use Panasonic Ergofit earbuds: http://www.ebay.com/itm/322284263220?_trksid=p2057872.m2749.... (really ergonomic, have kept them for 12+ hours/day (fell asleep))

Also have Sennheiser 380 Pro but am looking for something that blocks a lot more.

newsat13 9 hours ago 0 replies      
Koss Sporta pro
sushid 2 days ago 0 replies      
I would highly recommend Bose QC20 in ear. I have the over ear version and while mine may excel in the noise cancellation department, the QC20 beats mine out of the water in terms of noise blocking overall.
bjourne 2 days ago 0 replies      
I've been using Bose QuietComfort 15 for years. Unfortunately, something has broken in them so they aren't as good at noice cancellation as they were when I bought them.
camflan 2 days ago 0 replies      
Working at home lets me use speakers or open headphones most of the time, so Hifiman 400i, but when I need isolation I use either Oppo PM-3 or Etymotic ER4p
1123581321 2 days ago 0 replies      
Velodyne vQuiet. They're not the best, but they periodically go on sale for $30 and they're very good for that price.
TCS_Alone 2 days ago 0 replies      
Sony MRD-1000x's are fantastic. Very comparable in price to the QC35's, but I find the active noise cancelling to be noticeably superior.

Also if your media playback hardware is Sony, you can use their proprietary Bluetooth audio codec (less compression) for superior sound... (assuming your source media is high enough quality)

Shanbo 1 day ago 0 replies      
sennheiser 598. Forget that they are on, sound good enough. For noise cancelling, I use the bose quiet comfort.
kevinherron 2 days ago 0 replies      
Bose QuietComfort 35
amirouche 2 days ago 0 replies      
Marshall Headphones M-ACCS-00152 Monitor Headphones
jbdigriz 1 day ago 0 replies      
If you're willing to pay top dollar, I highly recommend the B&O Play by Bang and Olufsen Beoplay H8 wireless/wired headphones. I got these at an airport a few years ago when I forgot my AKG headphones and am convinced they are the best to be had. The sound quality is phenomenal and the active noise cancellation is superb. They have a removable battery which is huge for headphones at this price range ($500) and they can last 14 hrs on a single charge which is best in class. But if battery goes dead, can always plug them in an use as wired headphones (though worth mentioning that you lose the noise cancellation which sucks if say you're watching an in flight movie). The best feature is the touch interface for stop/start, volume control, skip/previous track, activate/disable noise cancellation and answering calls. It's resistive touch which means you can use it without removing your gloves which is huge!

Build quality is phenomenal and they're surprisingly low profile. My first pair actually had a problem with the touch interface and B&O not only replaced them, they expedited shipment so I'd get them in time when I explained I had a long trip coming up - so great support.

The only drawbacks are:

- they're on-ear which takes some getting used to, especially early on before the band takes shape to your head and can press to your ears. However, the padding is very soft and even replaceable! I now believe on ear produces the best accuracy as there's no acoustic reverberations and feedback that you can sometimes get with over ear. However, over ear is more comfortable and even after breaking these in, you'll still get ear fatigue after some hours of use. That being said, I've fallen asleep for hours on flights wearing these and not even playing music as the noise cancellation completely eliminates engine noise and most external sound in general

- they cannot be charged and used at the same time, even if using the wired lead. This is probably the biggest drawback though at 14 hrs play time and having a replaceable battery, this can be mitigated

- the previously mentioned drawback of not having noise cancellation when using them wired is annoying because the noise cancellation is exceptionally good

- they don't fold in any way, so you need to consider how to carry them if not in use. I usually just extend the headphones and keep them around my neck. In general though, you'll find the higher quality headphones won't be foldable as that's an easy point of failure

They're pricey but I've tried a number of other brands and the features/sound quality of these are far and away the best to be had. Not to mention, they look great when worn unlike most others that look cheep or goofy in their bulk. Highly recommend

Amazon has them on Prime:https://www.amazon.com/Bang-Olufsen-Wireless-Headphone-Cance...

       cached 31 March 2017 12:05:02 GMT