How I Under-promised, Over-delivered and Screwed Myself - <AUTHOR> http://nathanconyngham.com/under-promising-over-delivering-screwed-me/

<comment><USER2> A better title:

"How I didn't know how to under-promise."

I did freelance web design in high school (nothing fancy, HTML/CSS with stuff that clients thought was fancy in 2006, like Lightbox and RSS) and after my second client, where a five-page photography portfolio turned into a Frankenstein's monster of a PHP web-app held together by duct tape and invalid code, I realized two things:

1\. There is never such a thing as being too specific.

2\. Bill hourly.

<comment><USER3> You mean "bill time & materials". Hourly is just one way to do that, and it's an especially painful and counterproductive way.

<comment> mh- I agree. I think the relatively-green consultants here would get some value out of you expanding on how T&M can work for them.

<comment><USER4> I certainly would. Even after 7 years of successful work, I've still not got billing sorted.

Fixed-price jobs generally take double the time (losing me half); sprints work if the client understands and is in charge of the project, but most see it as a cost-sink and nothing will be delivered without extorting extra cash (which a long-time fixed-price client spat at me last week...).

<comment><USER5> Fixed price bids are better when you've already established a working relationship with your buyer. A good way to establish a working relationship is by starting off fixed-price if the scope is narrow enough and explaining that T&M is more likely to be more expensive for the buyer based on the scope.

Usually this results in the buyer either:

(i) asking for a lower price;

(ii) disagreeing with the FP bid and going T&M;

(iii) walking away.

The basic assumption is that scope is narrowly enough defined. If it isn't, then try hard to narrow the scope and give the deal 1 to 3 hrs for this exercise (depending on your available hours classified for business development aka "biz dev"). At this point, hopefully you've got the requirements narrow enough that you can then engage in the exercise above after coming up with an estimate or quote.

If (i), then roughly itemize and remove items to bring the price down to change the value proposition. Avoid keeping scope the same and bringing price down, or else this is a plain discount pure and simple and hurts you down the road.

If (ii), then the follow-up move for future deals with the same buyer is to clearly show why their final T&M billables could have been cheaper if they'd gone with FP.

If (iii), count yourself lucky. Nothing harder than letting business go until you get yourself into a deal where your costs are higher than revenue (aka. negative margin deal).

>>Fixed-price jobs generally take double the time (losing me half)

... that sentence implies a pattern of failed FP deals and lack of scope. However, I am empathetic because other clients have stated that they are uncomfortable with code sprints on a professional services basis solely because of the lack of concrete deliverables that can be used as payment milestones or triggers.

Code sprints are better off billed on a T&M basis unless, as you say, the client _really_ understands what they're doing. In most cases, buyers don't know what they want, which is why some time must be spent on building on biz dev building the pipeline.

<comment><USER4> Thanks. I appreciate this.

Could you define T&M in this context? How does it differ from code sprints?

> If (ii), then the follow-up move for future deals with the same buyer is to > clearly show why their final T&M billables could have been cheaper if they'd > gone with FP.

I understand (i) and (iii), but why is showing them FP is better than T&M a good idea? Isn't T&M more profitable for me?

> ... that sentence implies a pattern of failed FP deals and lack of scope.

That's accurate unfortunately. There's always scope, but for sub-£2k jobs (and worse for sub-£1k) there's a trade-off between time spent tying down the scope and time doing the job. If I spend an hour on it, that's 5-10% of the overall budget gone.

<comment><USER5> T&M is "Time & Materials", which is the same as billing by the hour or week. The advantage of T&M for code sprints is because of the typically ambiguous and uncertain nature of the sprints. Even though there's supposed to be a well defined and constantly prioritized queue of features to be completed during each sprint, the fact that they can be changed and moved around means it's incredibly difficult to nail down an actual deliverable beyond a vague "payment of milestone X due upon completion of code sprint", which is really no different than a duration-based payment schedule which basically boils down to T&M :D

FP is generally (not always) better for both the buyer and provider because:

1\. Buyer benefit: For a given scope there is a corresponding, known budget. Typically, fixed/forecasted budgets are preferred by buyers so they can forecast and set internal expectations.

2\. Seller benefits:

(i) If it's a task that you feel can be done quickly or with less effort than normal (e.g. done repeatedly for others in the past), you can still charge based on the VALUE of the work vs. the # LABOUR UNITS, ultimately resulting in a higher margin for the seller with a tightly scoped budget for the buyer, _even though it takes you less time to complete_. The only time you need to consider lowering list prices for work done several times in a row is when a perception of commoditization creeps in, either by the general industry or (more likely) by the customer(s).

(ii) T&M is more profitable for you in the short term, but often causes more overhead and problems for the buyer on larger deals as scope uncertainty and ambiguity increases. Typically, the easier you make your buyer's life in terms of reducing overhead and paperwork, the more likely they are to want to work with you in the future.

>>There's always scope, but for sub-£2k jobs (and worse for sub-£1k) there's a trade-off between time spent tying down the scope and time doing the job.

Sounds like you're an independent freelancer. In this instance, you're in a tough spot. I suggest putting in 1.5hrs that you swallow from a cost basis with a firm goal to minimize potential risks during the engagement.

The worst part of being an independent is that your overhead is typically higher if you try to go the FP route for higher-valued deals as you are solely responsible for writing the SOWs, thinking about the timelines, managing the customer AND delivering. I can absolutely understand why, in that situation, you're comparative advantage is defaulting with T&M in most situations and hopefully raising your prices a bit to compensate for the inevitable pre-sales discussions you need to have with potential customers.

Sorry I can't give more advice there. I've found patio111's posts to be very informative for independents looking to grow.

</comment></comment></comment></comment></comment></comment></comment><comment><USER6> I think Nathan's got the meaning of the phrase mixed up. The idea isn't to promise your standard output and then run yourself into the ground trying to exceed that. The "under-promise" part means that you promise less than what you know you can deliver. Having done that, you deliver your standard output and thus have "over-delivered". In this manner, it's sustainable.

<comment><USER7> The trouble with actually under-promising on a project is that unless you have actually done almost that _exact_ project in the past, or are a _fantastic_ pessimist, you will fail to under-promise. See [http://lesswrong.com/lw/jg/planning_fallacy/](http://lesswrong.com/lw/jg/planning_fallacy/)

<comment><USER8> Which is why you're under-promising. So that when inevitably things don't go as well as planned, you have a buffer.

<comment><USER9> Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.

</comment></comment></comment></comment><comment><USER10> I did this on my first real consulting gig on a state contract. We were on a roll kicking ass working 10-12 hour days and we blew through the requirements in the first deliverable a month early. When you're going like that you don't want to stop.

Rather than taking it in and showing them. The lead decided that we should just start in on the second deliverable.

We busted out most of the work there before the meeting began regarding the first deliverable.

When we went in to the meeting we were shocked to see that everyone who had written up the requirements had quit and moved on to other jobs. The task had fallen to other employees who wanted to completely change the direction of the application. While the first deliverable did not change. All the work we had done on the second was worthless.

After that I never again worked 12 hour days while on schedule and I never again did anything ahead of schedule that wasn't a 100% sure thing.

<comment><USER5> It would have been fine to get the first deliverable done early. I'm confused why the lead (or whoever was responsible for invoicing and managing the customer relationship) didn't invoice right away.

The team still could have gone ahead with the second deliverable "at-risk" (i.e. on the _assumption_ that the customer still wants the next deliverable). The key failure point here was the touchpoint with the customer and the invoicing. If there was no payment trigger/invoice for the first deliverable, that only emphasizes the importance of the customer checkpoint.

Usually, the project manager (sometimes known as the engagement manager in other shops) is responsible for this. That person failed the buyer, your organization, and your team.

<comment><USER10> I don't really understand why it went down like that either. It was the lead/PMs first job with the company and mine too. He may have been concerned with losing face or he wanted to finish the whole project super early and possibly get a bonus because it was fixed bid.

The requirements doc was extremely clear and robust. We felt confident that we were on the right track. Regardless I pestered him to schedule a meeting right away. After two weeks he relented but it took us another two weeks just to get in there due to people leaving at the state, general confusion over there and I assume them spending time rewriting the second deliverable.

There are a number of things we could have done to avoid the grief on our end.

1) We definitely should have made a greater effort to get in there as soon as we were done with the first deliverable.

2) we could have not burned ourselves out working 12s in the first place on salary and finished about at the right time when they were ready for us.

3) After finishing early we could have taken the equivalent time off instead of trying to power through the second deliverable. (not getting ahead of ourselves or burning us out)

We ultimately delivered the project within the time constraints of the estimate (a miracle considering we lost almost a month). although not including the OT we spent initially. So the client was happy but our team's morale never quite recovered.

</comment></comment></comment><comment><USER11> To sum up: just promise what you can deliver, deliver what you can deliver, and stop playing games.

Honestly, I've found that the value of even simple web applications in modern business is so enormous that once you have your foot in the door in a place the contracts just dont stop coming. Especially when you were intelligent enough early on to be selling them an ecosystem, a complete automated solution to their problems, instead of a single, one-off application. The price of going out and developing a good relationship another contractor who is capable enough to understand your existing code becomes prohibitively high, especially when they already have a good working relationship with you.

Is this cynical? No. I'm not suggesting that you slack off or deliver substandard products. I am making an accurate statement about the value of IT in the marketplace. It just reflects the business reality of the moment: people who can make applications are still rare, these applications are immensely valuable to businesses, and if you can do them, there will be someone to pay you to do so.

When competition becomes steeper you can start to play games with expectations. Until then, never let the company intimidate you into thinking they're doing you a favor by giving you a longer deadline. You're doing them a favor, assuming the product works like it should. Deliver and promise exactly that.

</comment><comment><USER5> I love that the OP put this out there as a learning experience. Regardless of the fact that he has an MBA and a technical background, he cheerfully admits he was wrong and tries to do a better job managing expectations in the future. I'll provide a blow-by-blow analysis.

>>"We need to under promise and over deliver."

Great! But, why? There has to be a concrete, preferably measurable, reason(s) to have this mindset. As other commentators noted, what he did wasn't really under-promising, but simply adhering to the original schedule, which implies that the customer was on-board with the agreed timeline.

>>The project moved along and thanks to some long days we actually managed to deliver functionality ahead of schedule.

What did he expect to get out of this? What did he tell the team to justify this?

>>We continued our iterations, tuning functionality and consistently over delivering when the team started to become disgruntled and exhausted.

Even with the right motivation, burnout is a constant issue for services staff in any industry, especially when the engagement lead doesn't monitor both sides (customer and internal). He would have monitored this more closely, or would not even have gone down that path if his internal team were billing him on an hourly basis, as it would have forced him to more concretely justify to himself and his partners what he expected to get out the self-imposed accelerated schedule.

>>To continue to over deliver, the team had been working very long hours, weekends and some had missed important family appointments.

Live and learn. Seems like you are somewhat charismatic, or have a hold on your employees that made them put in the long hours and miss family time without pushing back on you.

>>The next day we presented to the client, they were surprised at what we'd achieve in such a short time and were happy that we were ahead of schedule.

As engagement manager, you should have ensured that this wasn't a surprise to the customer! It would have allowed you to more quickly gauge whether (a) it's worth continuing on the death march and (b) how the customer will react.

>>The discussion turned to the next set of deliverables, the effort and the expected delivery dates. This is where it all started to fall apart.

No -- we need to be very clear here. Things started to fall apart well before this due to: (i) lack of identifying value exchange for the death march on the first deliverable; (ii) lack of continual communication with the customer.

>>"Why can't you do it? We're not asking for anything more, it's actually less than what you delivered before."

The standard answer here is:

(i) We can't do it because the first deliverable was a one-off to help you reduce time-to-market / internal target date, but this second deliverable will require additional staff that I don't have. From a resourcing perspective, I'm not going to charge you for the additional hours that my staff spent on the accelerated schedule for the first deliverable because I made that decision unilaterally. We must stick to the same duration for the second deliverable.

(ii) I know you're not asking for anything more; that's why we're able to commit to our originally agreed upon deliverable duration (e.g. 2 weeks), and nothing shorter.

(iii) If you want us to work weekends, as per the Statement Of Work ("SOW") that you signed, you'll need to pay for the additional weekend and holiday staff shifts for the second deliverable [context: sounded like the OP did in fact have a contract in play, and hopefully had language in the SOW that covered increase in base rates for weekend & holidays]. We'll swallow the increase in costs for the first deliverable because we did it of our own volition.

(iv) I'm glad that we confirm our original agreement regarding the nature, specificity and scope of the second deliverable (i.e. that it is "less than what you delivered before"). This further emphasizes that our originally agreed upon duration for the second deliverable is firm and we can deliver with the agreed upon duration.

>>Over the next few meetings, with significant effort, the discussions started to turn around. I had been reborn and now realised:

There's hope for you yet! In most situations, this is where the customer escalates, goes over your head and tries to get you off the project, or where the firm partner/general manager tries puts a PIP on your record because your customer relationship management skills (the number one reason you're typically chosen to become an engagement manager) was so severely lacking. Seriously, that was a great turnaround if the OP did that himself.

>>It's not about the effort, it's about the outcome. The client did not care how much effort we'd put in.

In general, this is true. However, as part of your job you are supposed to tie in the effort with the outcome, whether via narrative, task-based estimate or simply pure dollar terms. Do this, and your job becomes easier explaining timelines and pricing deliverables.

>>We needed to become a partner

Yep. However, as part of your job, you must be cognizant when a psychopathic or aggressive customer has no interest in becoming a partner and only extracting as much value as possible out of the current deal. Customers can flip, and engagement managers must always be taking the customer's temperature to protect the deal, the team, and the deal margin.

>>The expectations had to be reset

As others noted in this thread, they weren't managed properly. OP was fine up until the kick-off when the baseline timeline was established and agreed upon, but then went off plan for no compelling reason(s).

>>As painful as this was, it did teach me a lot. Get on top of this before it blows out.

Amen.

>>Under promising and over delivering is for suckers.

This last sentence is wrong. Forget about under promising. Just focus on the over-delivering part. Only over-deliver if you have the appropriate risk appetite, enough deal margin you're willing to sacrifice, and compelling exchange of value. Examples of exchanges of value are:

(i) "If we make a great impression that is sustainable in the long run, we can leverage this influential customer for references in the future!" \--> Make sure your sales team has the balls to follow-through on this. Surprisingly, many organizations and field teams have a hard time asking for references for future deals.

(ii) "When we were talking, the customer kept referring to feature X that's gating the next phase of their program and holding up future deals. If we deliver a proof of concept showing that we can deliver this functionality, it might clear the obstacle for future services deals." \--> Make sure your product/engineering group can deliver, and that your support group will actually support the new 'feature' that you deliver.

(iii) "The customer is asking us to bring in the schedule. We've got no other deals on the table and all of our guys would be on the bench (i.e. idle) otherwise. Let's swallow the cost for a short period of time." \--> Engagement manager needs to go into 'expectation management' overdrive and find a narrative that works for both parties.

</comment><comment><USER12> If you had to put in ridiculous hours to hit the _under_ deliver timeline, you in fact over promised.

<comment><USER13> That was my thought too - why did they not put in sane hours and deliver as promised, instead of killing the team to overdeliver?

</comment></comment><comment><USER9> This sort of expectation management is also why it is a terrible idea to show a client a slick UI mockup that kinda works (but is missing the underlying app logic).

As far as they are concerned, you're pretty much almost done because all the stuff they will ever see is there and looks good. No matter how much you try to rationally explain to them that it is just a superficial shell of an app and is a long way from done, a lot of them just aren't capable of internalizing this concept meaningfully.

<comment><USER14> What's the best way you've found to manage that particular issue? Line-art slide decks instead of interactive demos?

<comment><USER9> In my experience, yeah that's basically it. If it helps to have an interactive demo to communicate things, keep it ugly when showing it to the client, and show them the final UI designs separately as static image files. Even if you've already done the work to bring the assets into the demo, avoid showing this to the client as long as is reasonably possible to manage their expectations because they will almost universally have a hard time separating the UI/UX functionality completeness from everything else.

Obviously there are situations where the client will, in fact, understand the distinction, but I assume they won't until proven otherwise.

</comment></comment></comment><comment><USER15> Expectations management is probably the most underrated skill in the world. (Cough Obama Cough.) The problem isn't the idea of underpromise and overdeliver, it's not realizing this is about expectations management (it's also about only thinking of the idea in terms of customers -- your team needs to be treated well too).

First of all, pad estimates realistically, add contingency estimates, trade off deliverables against shortened schedules, and then you're in a position to underpromise and overdeliver and not screw yourself. Oh yeah, and don't deliver early, ever. Wrong axis to exceed expectations on. Deliver more features than originally promised, or more polish. Never create expectations of faster delivery, you shoot yourself in the credibility.

<comment><USER16> _Oh yeah, and don 't deliver early, ever. Wrong axis to exceed expectations on. Deliver more features than originally promised, or more polish._ This is the most important thing. Under-promise, as much as you can. Get what you promised done - with normal working hours. IF there is still time, do something more (a little, nice to have feature, or polish). Deliver on time.

</comment></comment><comment><USER17> Having hired many software development firms for projects, I expect the project manager to ensure the consulting team is not working inhumane hours and to push back if I ask for too much, too soon. Healthy push back should normally come in the form of "What you want will take an extra developer, an extra month, an extra $20k, etc." and let me decide if I still want to do it. If the firm fails, then I fail, so I never intentionally do things to undermine the consultant, but I am also not perfect and depend on honest communication from them. Also, a project done ahead of schedule is not as helpful as it seems. Even if the consultant is done early, it doesn't always mean that I can start my next milestone early.

<comment><USER14> And then when the managers rely on pushback from engineers who don't know how to say no, they burn out and the whole thing blows up.

I still don't understand how our industry makes any forward progress in the aggregate.

<comment><USER18> If you are a manager, it is a valuable skill to be able to actually hear "no" from the developer, which may come in many different flavors, but only a few will actually say "no" plainly clear.

On the other point, this seems more like a US/India thing. In Europe, where there are certain regulations about working hours, mobbing, and in general, higher employee protection by law, people are not that afraid to say "no" like in the US, but it's still not always clear and loud.

I guess centuries of taking heads from people saying "no" have taken its toll, and it's still hard to say "no" to superior.

<comment><USER19> 35 years has taught me that saying "no" as an engineer means you are being an "obstructionist" or "not a team player." I am most definitely one of those because I was taught to say "no" very early on. The problem is that many people are affronted when they hear "no," take offense to it, possibly because it is a rejection, or, and this happens more frequently, a "no" answer to a lot of managers means "I just didn't ask you to do this persuasively enough."

</comment></comment></comment></comment><comment><USER20> _Why can 't you do it? We're not asking for anything more, it's actually less than what you delivered before._

Don't let a client, or anyone for that matter, corner you w/statements like that.

Regardless of whether they were right or wrong, in terms of the amount of work they're asking for being less than the previous, have something to show in regard to why it's not as simple as they perceive.

For example, consider adopting a thorough estimating strategy, broken down into small iterations of work. An estimate showing the amount of hours or calendar days the next iteration would take, accompanied by more realistic dev-hours-per-week (burn rate), would have been the right way to counter the client's statement. It's much harder to argue with with supported numbers.

 _My grand plan to under promise and over deliver had led to a disaster!_

Any plan where you take on more work than you can handle in a given time frame will lead to disaster. Under promising and over delivering had little, if anything, to do here. This was entirely a management problem (dev schedule, client expectations, etc.).

</comment><comment><USER21> > It started with an internal meeting that focused on the expectations set and > how we were going to now deliver. That's when it happened. I blurted those > horrible words out. "We need to under promise and over deliver."

Dude, those are the words to live by. Not marketing spiel. By saying it to the client you did the exact opposite. You over promised.

</comment><comment><USER22> There are lots of different types of clients. Some use your response to their first request as a measure of your standard output. Once that is known, a difficult client might continue to demand more.

I've found this happens often with clients who are the least knowledgable in your area of expertise. Sometimes their insecurity compels them to avoid getting screwed, by making sure they're getting everything they can out of you.

Other clients, with lower expectations, might be overjoyed by the the same efforts. All clients are not equal.

</comment><comment><USER23> tl;dr: OP failed to under-promise correctly.

</comment><comment><USER24> One think I learned from these type of situations is that it is important with some clients to stretch how difficult the project is and keep a constant flow of signals that show the hard work we put into the projects. In my perspective everything is super difficult. Unless the client knows that it is super difficult then it must look really easy. But it is a very nuanced approach, not that black and white as I describe it.

The client must take away the feeling of "they moved heaven and earth for me and I really can't expect them to pull such inhumane hours for me next time" and not "well, they clearly can do a lot more if I just challenge them a bit more". It depends a lot on the client relationship and the related communication.

<comment><USER25> I recently had a waitress who "moved heaven and earth for me" (that's the phrase she used over and over and over again and again and again). I don't doubt that she got the cook to do a favor for me, but hitting me over the head with it until she was blue in the face actually made me lower my tip.

As in all things, there's a balance - having the client understand that it wasn't a cake walk is important, but not beating them over the head with it is important too.

</comment></comment><comment><USER26> Over-deliver doesn't mean "deliver early." It means deliver better quality.

</comment><comment><USER27> Because if you let a software deadline slip, you'll be the first person to ever do so...

(I like the whooshing sound they make as they fly by.)

</comment><comment><USER28> If you had to pressure your team to over-deliver against the first under- promise milestone, you completely failed Project Management 101. The point of "under promise, over deliver" is to give your customer a risk-realistic timeline that you can likely exceed, but which won't disappoint them if your project runs into speed bumps.

</comment><comment><USER29> They just didn't underpromise enough. They should have promise only what they could deliver with half of the team working 3 days per week and overdeliver things by making 3/4 of our team working 4 days per week.

They would have happy and amazed client and lot's of spare strength.

</comment><comment><USER30> he is very right, you can't make yourself work so hard and show nothing for it except everyone being too tired to continue working. And you giving someone a false image about yourself can come back to bite you when they expect you to always be like that and perform the way you showed them or better..

</comment><comment><USER31> "Do I care how long it takes a mechanic to fix my car? No, I just care that its fixed."

Really??

<comment><USER32> Yep. If - like most people - you know nothing about cars, then you wouldn't know how long it actually takes to fix your car. So if the mechanic chooses to 'over-deliver' by fixing your car in 3 hours, instead of the actual 6 hours it takes, that's going to set your expectations. You'd think that it takes 3 hours to fix a car, and you'll be pissed when the mechanic takes 6 hours the second time around. Which was the problem the author faced.

<comment><USER33> Mechanics don't even charge how long it actually takes. They charge a standard (arguably, over-inflated) amount for a job regardless of the actual time.

So it does take 3 hours to fix your car, and they charge you for 6. Then you care.

<comment><USER5> I'm not a mechanic, and know little about cars. However, whenever I've taken cars in for service I find that the shops charge me labour and parts, and they are often clearly itemized on the invoice.

The reason that it seems they charge a 'standard' amount for a job is because certain jobs (changing brakes/tires/oil, general checkups, car detailing, etc.) have been enough times across the industry and in the shop that reliable statistical (or consensus) baselines allow one to more easily and reliably estimate.

Admittedly, this doesn't fix the original principal-agent problem[1], but I thought I'd throw in my experience with mechanics and getting cars serviced.

[1] [http://books.google.ca/books?id=4XcR7Y5ddcoC&pg=PA323&lpg=PA...](http://books.google.ca/books?id=4XcR7Y5ddcoC&pg=PA323&lpg=PA323&dq=principal- agent+mechanic&source=bl&ots=FPut69nJL_&sig=madAnluCPf7YjdMeryDxiPfgHz0&hl=en&sa=X&ei=8EzJUbrlDsvnigKgkYGIAQ&redir_esc=y#v=onepage&q=principal- agent%20mechanic&f=false)

<comment><USER34> AFAIK, service stations even have catalogs (from manufacturers, no less) which specify how much time specific repair will take. Clients are billed according to that, and not the actual amount of time mechanic spent.

<comment><USER5> I misinterpreted your statement. You are right -- if an unscrupulous mechanic tried to charge you for more hours of labour than what the catalogs specify, then we'd care and would probably pick up on it a lot faster.

</comment></comment></comment></comment></comment></comment><comment><USER14> Yeah, that's not how you do it.

1\. Under-promise for a sustainable output pace.

2\. If/when you finish early, everybody gets an appropriate amount of time off.

3\. Repeat.

Your client is happy, and your team is happy, healthier, and ultimately more productive.</comment>


Facebook Disconnect - chrome extension to disable Facebook tracking - <AUTHOR> https://chrome.google.com/extensions/detail/ejpepffjfmamnambagiibghpglaidiec

<comment><USER2> There's a more general addon which detects and disables tracking called Ghostery: <http://www.ghostery.com/>

<comment><USER3> I'm a fan of WidgetBlock, a chrome extension that simply blocks all major offsite social networking widgets, whether its facebook like buttons, tweet this buttons, the facebook connect thing, etc.

It's stated reason for doing this is to improve page load times, which it certainly does, but it does just as well to protect your privacy.

[https://chrome.google.com/extensions/detail/hgiihiookhijpbha...](https://chrome.google.com/extensions/detail/hgiihiookhijpbhaflohognbhmamdnol)

EDIT: It appears to work nicely in tandem with this ghostery thing.

<comment><USER4> But wouldn't it also remove Facebook commenting system from the page? Because that's usually what I don't want.

</comment></comment></comment><comment><USER5> For those on OSX Glimmer Blocker ( <http://glimmerblocker.org/> ) provides really nice OS-wide ad blocking and there's a custom ruleset that blocks all the facebook widgets with click-to-enable at <http://visuao.net/facebook/glimmer.xml>

<comment><USER6> I use to use Proxomitron (<http://www.proxomitron.info/>) on windows. Thanks for this.

</comment></comment><comment><USER7> I just run Facebook in a separate browser (Opera) to isolate the session. Yes, I'm that crazy.

I tried Multifox ( <http://br.mozdev.org/multifox/> ), but for some reason I concluded it wasn't a good solution. Can't remember why though.

<comment><USER8> I do the same thing for bank accounts and such — I only use a clean install of opera, and that's all I use it for.

</comment></comment><comment><USER9> From the same author (@byoogle) there is also a more generic Disconnect, that blocks Google,Twitter,Digg,Yahoo! too.

[https://chrome.google.com/webstore/detail/jeoacafpbcihiomhla...](https://chrome.google.com/webstore/detail/jeoacafpbcihiomhlakheieifhpjdfeo)

A bit aggressive imho, with the google block enabled you can't even login to google.

<comment><USER10> Be careful. Disconnect also ends up blocking core services, like Google Channel API, used by some App Engine apps (this took me hours to figure out why my site was broken in Chrome).

</comment></comment><comment><USER11> Related post from a few months ago <http://news.ycombinator.com/item?id=1810644>

</comment><comment><USER12> This only pertains to ads and malware, but I use Ad Muncher on Windows, which is a paid program (with a month-long trial). I use it, because I can't be bothered to set up countermeasures, every time I use a new installation. And it works in all browsers (obviously) - and outside browsers.

Cons: * Whitelisting is a hassle: I still haven't figured it out, which means that good ad networks like Yoggrt, Fusion Ads, and Deck Network are blocked. * Blacklisting is also a hassle. You'd think they would support a widget filter - or a good import feature, but alas.

It's the best desktop client I know, though.

<http://admuncher.com>.

</comment><comment><USER13> For Firefox users:

Similar functionality can be achieved in Firefox using one of its settings. From the privacy tab of the Preferences Dialog (Options in Windows), choose "custom setting for History" and disable third-party cookies.

Another method is to use an addon called Facebook Blocker: <http://webgraph.com/resources/facebookblocker/> (haven't tested).

Some other methods are suggested here: [http://superuser.com/questions/220696/how-can-i-block-all- fa...](http://superuser.com/questions/220696/how-can-i-block-all-facebook- elements-content)

</comment><comment><USER14> 'Keep My Opt-Outs' is the same one by Google, no? [https://chrome.google.com/extensions/detail/hhnjdplhmcnkieca...](https://chrome.google.com/extensions/detail/hhnjdplhmcnkiecampfdgfjilccfpfoe#)

</comment><comment><USER15> The fact that one needs a plugin to do this says a lot about the "Facebook" way of social networking.

Why not put it as an option in my maze on the settings page?

<comment><AUTHOR> I agree, though to be fair, facebook isn't the only site where third parties have tried to fix privacy issues.

I read once that you know you've really made it when an eco-system grows around your product or service. The same can be said here: you know your product or service sucks if unpaid developers feel compelled to try and fix it.

</comment></comment><comment><USER16> So much of public messaging around privacy seems to make light of people's concerns around it. I believe this is deliberate social conditioning. Some of your friends end up picking up on the verbiage and soon you are surrounded. "Awww come on, it's harmless."

Never give out enough information for someone to clone you online.

</comment><comment><USER17> So this is just a version of Disconnect that only blocks facebook? Does Disconnet do all this anyway? I discovered at the weekend that Disconnect blocks results on a Google custom search I made where analytics is running also. Seems a little overzealous.

<comment><USER18> this is what he wrote prior to Disconnect. if you have the later, it does Facebook and other sites

</comment></comment><comment><USER19> There's a lot going on to block Facebook these days. I'm not happy with it either, but can somebody please give me an insight why so many people are pissed of it right now?

<comment><USER20> right now it's the commenting system. Before that it was general backlash and before that it was the like-button-everywhere shitstorm that also spawned diaspora.

Don't worry. In at most one month's time nobody will remember this and Facebook will be awesome again.

Until it's time again to fish for pageviews at which point another flaming article will be published somewhere and everyone will repost it in their own words in order to get pageviews.

You can't expect consistency in a society with a cumulative attention span of about a week.

<comment><AUTHOR> > Don't worry. In at most one month's time nobody will remember this and > Facebook will be awesome again.

Facebook stopped being awesome a long time ago. I doubt it ever will be again. You're making it out to be a victim of some kind and it's not. If facebook didn't repeatedly abuse its users' trust and privacy, there'd be no backlash. There'd be no 'flaming' articles and no shitstorms.

> Until it's time again to fish for pageviews at which point another flaming > article will be published somewhere and everyone will repost it in their own > words in order to get pageviews.

Perhaps so, but the extension isn't a result of a flaming article. It has over 100,000 users and 4000+ weekly installs.

<comment><USER20> > You're making it out to be a victim of some kind and it's not.

I'm not. I'm just surprised about how quickly the opinions seem to change. I made up my mind once facebook was basically allowing third-party websites I accidentally visit to post stuff in my name ("like"-buttons) and decided to stop using facebook right then. No need to rationalize or post articles.

It's just amazing how the pendulum swung back and forth over the last two years between an overall positive mood and an overall negative one.

</comment></comment></comment></comment><comment><USER21> Can someone compare this to the "disable 3rd-party cookies" approach?

</comment><comment><USER22> Anyone know of these kind of extensions for Safari?

<comment><USER18> <http://www.disconnectere.com/>

</comment></comment><comment><USER23> I came. I saw. I installed.

<comment><USER24> Amen Brother!

</comment></comment><comment><USER25> Just keep yourself logged-off when not using Facebook, or use Facebook when not using any other website.

</comment><comment><USER26> Word to the wise, this was preventing any ReCaptcha's from appearing (for me). Great ext otherwise.</comment>


A mobile friendly Vim cheat sheet - <AUTHOR> http://rtorruellas.com/vim-cheat-sheet/

<comment><USER2> Under "Working with multiple files", the split command is incorrect. It's not Ctrl+WQ; it's Ctrl+WS.

<comment><AUTHOR> Awesome find. I'll get that fixed.

EDIT: Looks like someone had a pull request for it. Merged.

</comment></comment><comment><USER3> I'm a bit confused what the intended use case is, here. Is the idea to have it loaded on your tablet while programming on your laptop or desktop so you don't have to switch screens? Why not just print it out and pin it to the wall?

<comment><AUTHOR> I made a similar cheat sheet years ago as a PDF. It got some popularity around the developer community. I think it being html/an open source document, you can use it in many different ways (including printing it out and putting it on your wall). The fact that I have already received pull request I think shows it might be a good idea.

<comment><USER3> I'm not saying I don't think people will find it useful, just that I don't get it. Still, it's clean and concise (and readily printable), so thanks!

</comment></comment></comment><comment><USER4> "c$ - change (replace) to the end of line"

I find 'C' simpler for that command.

<comment><USER5> Why doesn't 'Y' behave similarly? I've never understood this inconsistency in the default key bindings:

'c$' OR 'C' = change to end of line

'd$' OR 'D' = cut to end of line

'y$' = yank to end of line

'cc' = change entire line

'dd' = cut entire line

'yy' OR 'Y' = yank entire line

</comment></comment><comment><USER6> Should also mention:

      gg - top of file
      G - end of file
      5gg - go to line 5 (I find this easier than 5G)
      ciw - delete current word and enter insert mode
      yiw - copy current word
      zz - center cursor (its also nice to remap G to Gzz etc)

<comment><USER7> one of these can be shortened: cw - deletes the current word & enters insert mode

<comment><USER8> Not quite: cw deletes until the end of the current word from the current position and then enters insert mode. ciw deletes the entire your current position is in and enters insert mode. Go ahead and try them.

</comment></comment></comment><comment><USER9> Very useful. Needs a few typo fixes, but it's bookmarked on my phone :)

</comment><comment><USER10> It's missing my favorite commands - ci", ci{, and ci( - change (replace) inside quotes, brackets, and parens (respectively) pair under the cursor.

<comment><USER11> That's actually one command/operator (c) with different motions (in case, they're all text objects).

<comment><USER10> true, but isn't c$ similar in that sense? that one made the list...

</comment></comment></comment><comment><USER12> I personally like :x Over :wq

Also a nice one is :Sex

For splitting windows and navigating the file system.

</comment><comment><USER13> Looks awesome. Going over it I'm surprised how much Vim I know already without thinking.

</comment><comment><USER14> Actually just what I was after. Thanks for your efforts on this :)

</comment><comment><USER15> Cool, thanks!</comment>


Ask HN: Who are the "Old Masters" of programming? - <AUTHOR> Many are well known but I'd like to gather a comprehensive list for study.
1. Who are the Old Masters?
2. What are their best works?
3. Where can we find their code or descriptions of their systems for study?
Thanks! <comment><USER2> In my mind, that spans decades, some perhaps fairly recent. I am over 4 decades old, so I can do that.

Here's an incomplete list in no particular order of some that immediately come to mind:

Brian Kernigan

Dennis Ritchie

Rob Pike

Steve Wozniak

RMS

Dave Cutler

Nolan Bushnell (Atari)

Jay Miner (Amiga)

Linus Torvalds

Burrell Smith (Apple)

Bill Atkinson (Apple)

Bud Tribble (Apple)

Avie Tevanian (Apple/NeXT)

Larry Wall (Perl)

Anders Hejlsberg (C#/Borland Pascal)

and even Jeff Raskin (Wikipedia him) and Charles Petzold for his early Windows API work. And DHH, even though he's a kid.

Those are the ones that are particularly notable to me personally.

</comment><comment><USER3> Read the first Programmers at Work book. It doesn't cover huge technical details, but those are the old masters. I read it every 5-10 yrs or so.

Coders at Work is pretty fun too.

</comment><comment><USER4> Dan Ingalls (implemented smalltalk)

Jim Gray (transaction)

Chris Date (SQL, QUEL)

Gregor Kiczales (CLOS, Aspect-oriented programming)

Ivan Sutherland (Sketchpad)

Leslie Lamport (LateX, Paxos, much work on distributed computing)

Butler Lampson (Laser printing, Ethernet, Bravo: first WYSIWYG word processor)

</comment><comment><USER5> 1\. Mel

2\. A blackjack program

3\. [http://www.pbm.com/~lindahl/mel.html](http://www.pbm.com/~lindahl/mel.html)

</comment><comment><USER6> Get "Masters of Doom" for a good read about some old masters.

</comment><comment><USER7> Richard Stallman</comment>


Techstars to open up shop in Detroit - <AUTHOR> http://www.crainsdetroit.com/article/20141210/BLOG007/141219993/techstars-to-open-shop-in-detroit <comment><USER2> As a Detroiter hopefully this will give me a reason to start going downtown.

The current problem with the Detroit Metro area is when ever outside money comes in. Most the time the offices open in the northern/western suburbs.

I say this because most _high paying_ jobs are in the suburbs. Because that's where the businesses are. The suburbs are doing well. At first I was very excited and hoped they'd open relatively close, but all things consider that wouldn't help the city as much.

<comment><USER3> The only time I ever go downtown is for events at the Renaissance Center and Cobo Hall. There's really no reason to otherwise, unless you like to gamble. Pretty much everywhere outside of the immediate area around Cobo is really bad anyway.

<comment><USER4> > There's really no reason to otherwise, unless you like to gamble.

That's really not true. There's a ton of fantastic restaurants/coffee places that don't exist in the suburbs (Mudgie's, Slowe's, Great Lakes Coffee, etc), the Detroit Art Institute in Midtown (including famous works like Van Gogh's self portrait), a music scene ranging from the big pop stars at Fox Theater to the up and coming indie bands at the Magic Stick, there's all the sporting events, there's ice skating at Campus Martius during the winter and free music at Grand Circus during the summer, there's the Opera House, there's touring Broadway shows at the Fox, there's smaller but still professional theater at the Hillberry, and there's a few regular tech meetups that take place downtown (Detroit Google Developer's Group, Lambda Lounge, Detroit Craftsman's Guild). There's almost always something going on in the Downtown/Midtown area.

<comment><USER5> The other problem Detroit has is the freeways. I fail to understand why I-75 in the middle of the downtown area goes down from 4 lanes to 2 lanes of traffic. Boggles the mind. I've learned to avoid the area during major events because the freeway turns into a parking lot down there.

</comment></comment></comment></comment><comment><USER6> As a Houstonion this gives me pause. Houston is a massive economic center by nearly every measure. It is also home to the most diverse county and university in the US. There are large successful technology companies here. Yet, Detroit and Dallas (arch enemy of Houston) are getting TechStars before us.

Part of the reason we don't attract accelerators like TechStars is the lack of a healthy startup ecosystem. I am NOT saying that the well intentioned community organizers aren't working hard. It's just that most of the VC here goes to Oil & Gas projects. If your tech isn't energy related it won't hit the radar. The technology startup successes I've seen in my 30 or so years here were built inspite of a (nonexistent) local startup ecosystem. Lastly, 9 out of 10 great people I've worked with here have left to go places with more tech opportunity. The talent is voting with its feet. Frankly, I'm done too. I'm on the first airplane out of here once I get my feet under me. I'm sad that it has to be this way. Maybe if I make it rich I'll come back and invest.

edit: spelling

<comment><USER7> I have to agree. I love Houston but I left it for San Antonio because the tech scene in SA was much more lively with Geekdom and Techstars. Though I'm now in Boulder I've been keeping in eye on SA and there's a lot of cool stuff going on there, plus the VC activity has really picked up—multiple $1+ million rounds have been announced or will be announced in the next few weeks.

<comment><USER8> As a San Antonio VC (GeekdomFund.com), I hope you come back.

<comment><USER7> Hi Michael.

</comment></comment></comment></comment><comment><USER9> While this is great news, I think YC-Detroit would have been even better ;-)

There is a lot of talent here. As evidence, here's the First Robotics Competition team map: [https://www.google.com/maps/d/viewer?mid=zIJNq656OeBY.ke6fB8...](https://www.google.com/maps/d/viewer?mid=zIJNq656OeBY.ke6fB8FLJTDI&ie=UTF&msa=0)

Our teams also have a long history of winning ;-)

<comment><USER10> While YC is a wonderful program, I think it'd be nice to give some props and support to programs like TechStars that are actively expanding and supporting startup cities outside of the valley.

<comment><USER9> I completely agree. It's just that YC kinda has a reputation as being #1 at least for the kinds of startups they do. Either way, Detroit (or the Detroit area) has been overlooked IMHO and this is still a great thing to see.

<comment><USER10> Yep, I would love to see YC expand beyond the valley (drawing a bit on their east-coast past), though I can't blame them for focusing there.

</comment></comment></comment></comment><comment><USER11> I have said it before and I will say it again.

Detroit is the perfect place to build the robotics industry and they should call it Uncanny Vally.

<comment><USER12> >Detroit is the perfect place to build the robotics industry

Why?

<comment><USER2> Mechanical and Technical engineering base of the city already exists.

The automotive industry has already created a host of general consulting engineering companies specializing in everything from hydraulics to electronics to fluid flow is insane.

One area of the city is literally known as "automation alley" due to the huge number of PLC controlled robots it produced in the 80's and 90's.

The ideas of line automation were invented in Detroit.

Also the exposure the metro-area children get to this technology is unpresendented. While HN doesn't seem to be "big" on First/FRC high school robotics competition. Nearly every school in the suburbs has a team that builds at least 1 50k+ robot per year to compete locally. There are multiple programs and competitions FIRST isn't the only. I bring this up because Michigan teams don't exactly compete but dominate was a better word before the region limiting system was put in place.

Finally the education system is also in place. Lawerence/Kettering university were founded by Ford and GM as trade schools to crank out engineers for their companies, now they're private universes. But the it demonstrates just how many engineer degrees come from the state let alone the metro area.

<comment><USER13> Hey I judge at First every year! You're right that the amount of engineering prowess (and willingness to go into engineering) is really high, but for some reason the area is never mentioned among the heavyweights for some reason.

Oakland U also has (or had) a decent engineering program, no idea how it's coming along these days though.

<comment><USER9> OU is still hosting the annual AUVS intelligent ground vehicle competition - autonomous vehicles. My team took 2nd place back in 1994. Yeah Google, we've been doing that stuff for 21 years. They're also building another engineering building.

</comment></comment></comment></comment></comment><comment><USER14> If true and successful, this would be huge for Detroit.

I once looked into the suitability of Detroit for a start-up. It seemed that professional services were generally not as interested in working with young companies as in the bay area. The availability of deferred legal, accounting, or other services was non-existent. Being in the bay area, my company has benefited greatly from having deferred legal work. I also worried about finding good advisers.

With Techstars there, it would definitely solve these problems for their awardees.

While there aren't a wealth of affluent, urban customers in the city, there would be great opportunities for consumer or educational startups that address problems for the base of the pyramid. Whole Foods opened a store in Detroit, and talked more about it in their last quarterly conference call than any other topic. Ostensibly, figuring out how to be successful in markets like Detroit is a huge opportunity for growth for them. Finally, the city of Detroit has neighborhoods that are young and affluent. Inventory is very limited, and rents in the highest profile areas are as high as most big cities -- think Lake Merritt in Oakland.

I really hope TechStars is successful there. Detroit is a place dear in my heart and not as scary as many think. I lived in SF's SOMA 10-ish years ago, and can say that I had way crazier stories and more dangerous moments than my mom, who has been working in Detroit Public Schools since her retirement.

<comment><USER15> Although I'm glad Whole Foods is in Midtown, it's not catered towards the "base of the pyramid". Every time I've been in there, the customers are primarily the hip newcomers who have moved to Midtown or folks from Oakland county coming in to catch an exhibit at the DIA or symphony. I would love to see development happen in the areas that need it more and not just in the rapidly gentrifying downtown core.

</comment></comment><comment><USER16> There is already at least one accelerator in Detroit. [http://bizdom.com/](http://bizdom.com/) It is partially funded by the Dan Gilbert, founder of Quicken Loans. He also owns the Cleveland Cavilers and partial funds same thing in Cleveland.

Detroit is cheap compared to SF but actually downtown is filling up, rents are not as cheap as you might think.

<comment><USER17> He's also invested in Detroit Venture Partners

</comment></comment><comment><USER18> Happy for Detroit, I think there is a responsibility of tech leaders to get this throughout our nation not concentrate it, no single point of failure, plus more input from different areas means better products + systems which are more robust.

However, when is someone going to setup in Phoenix (Chandler, Scottsdale, Tempe)? Huge market, short flight to CA, always overlooked. Gangplank (web/app/product), Game Co-lab (games) co-working locations + ASU are doing a good job for startups but it would be awesome for more investment here, fairly untapped and a blue ocean in the desert where we have to stay indoors working most of the time anyways.

</comment><comment><USER19> Great news & I have more hope for the community.

However, many people outside of the startup scene have misconceptions, as they see survivor bias/success bias in the reporting. One item in the report feeds this misconception: "The average company got $1.9 million in funding." The median raised would be far more revealing of the actual experience that a startup faces than the average.

<comment><USER20> Techstars is incredibly transparent with their stats. Full funding data available here: [http://www.techstars.com/companies/stats/](http://www.techstars.com/companies/stats/)

I just pulled some numbers quickly...

In the last 3 Techstars NYC batches (not including the most recent), there were 37 companies with median funding of just over $1.6 million. 28 are still active, 6 have been acquired and 3 have failed.

<comment><USER19> Thanks. That is indeed an incredible level of transparency. I didn't see a CSV download but just scanning, it looks like it's more like a $200k median, with 1.6M average. Medians just make far more sense in letting someone outside the system know what to expect. Just like, "The average actress in Hollywood makes $250k, when in fact the median is $30k and a few make $100M).

<comment><USER20> They don't have a CSV export, but here's a quick Javascript script that pulls the fundings and calculates the median and average.

Total companies: 486

Median funding: $450,000

Average funding: $2,039,918

Total funding: $991,400,000

      var fundings = $('.batch .parent .right').map(function(){
        return +this.innerHTML.replace(/(\$|,| )/g, '') || 0;
      }).toArray();

      fundings = fundings.sort(function(a, b) { return a - b; });

      var totalFunding = fundings.reduce(function(a, b) { return a + b; });

      console.log('Total companies: ', fundings.length);
      console.log('Median funding: ', fundings[Math.round(fundings.length / 2)]);
      console.log('Average funding: ', Math.round(totalFunding / fundings.length));

</comment></comment></comment></comment><comment><USER21> If you're a startup founder accepted into Detroit Tech Stars (or even a YC) who lives in a foreign country, there should be a policy in place to give you an accelerated visa to work / live in the US provided you base your startup out of Detroit. Could be a good policy experiment on urban renewal.

</comment><comment><USER22> This is great news!

Though, I'm surprised they aren't coming to Ann Arbor- the real startup hub of Michigan.

<comment><USER17> I live in Ann Arbor, and I've worked at a start up in Detroit, in what world is Ann Arbor the start up hub?

Detroit has far more start ups and venture capital firms...mostly owned/invested in by Quicken but the point stands.

<comment><USER23> If you worked at a start up in Detroit, you were defacto a part of the Gilbert Mafia. I don't say that disparagingly, Dan Gilbert crew have done great things for the city, but its a one shop town.

A2 lacks a Dan Gilbert to make all the things happen, but it has a much more vibrant, Bay-like share-and-share alike, encouraging, open start-up culture.

Plug for A2-NewTech, a start-up meetup I'm a huge fan of (I'm not affiliated, just a fan)

<comment><USER17> I'll have to check out A2-NewTech. It's awesome to know I've been wrong about my (new) home town.

</comment></comment></comment></comment><comment><USER24> How do I apply my Detroit area startup? The application on the website is only for Austin.

<comment><USER25> They have rolling applications, so each city has a different application period. Also, they probably won't take applications until the official announcement.

</comment></comment><comment><USER26> Gilbert's plan is working.

</comment><comment><USER27> Does anyone else feel like Detroit is going to be an attractive place for young tech folks to start their businesses in the next 10 years?

Are there any Detroit-centric REITs out there?

</comment><comment><USER28> Hello from the Techstars office, Austin.

</comment><comment><USER29> I wish there was something like this here in DC. Very little startup scene. All I get to see are those sweettalk recruitment shops and those three lettered agencies that I couldn't imagine working for.

Good news for you Detroit!

<comment><USER30> I had the complete opposite experience in DC. There are a TON of startups in DC. Far more than where I live now (Portland OR).

You should checkout über offices. They have 5-10 startups working out of all three locations (most of with funding). On top of the co-working/startup spaces you have other accelerators and funding opportunities like 1776 and Acceleprise.

The DC startup scene is definitely healthy.</comment></comment>


Ask HN: Tax advice for independent contractor - <AUTHOR> I am a software developer getting paid hourly on a W2. I was recently offered some independent contracting work, and am trying to figure out how I would file taxes. Should I create a corporation? Do I need to do anything now, or can I wait until I need to file taxes at the end of the year? <comment><USER2> You don't need to create a corporation, you can get paid via 1099.

Incorporating makes sense when you start making multiple hundreds of thousands of dollars. Until then it would be a massive pain the accounting butt.

<comment><USER3> >you can get paid via 1099.

This. I believe you need to file quarterly.

<comment><USER2> You need to pay estimated taxes quarterly, but file only once a year (correct me if I'm wrong).</comment></comment></comment>


Rails in a week — day 0 - <AUTHOR> http://www.uponmyshoulder.com/blog/2011/rails-in-a-week-day-0/

<comment><USER2> Rails for Zombies is a great resource.

The Rails Guides are your holy grails, <http://guides.rubyonrails.org/getting_started.html>

Read as much of this site on your first day, then go back over it again each day.

</comment><comment><USER3> A webapp like that is possible to make within a day starting from zero Rails knowledge.

You should at least have some persistence to make it interesting, else you'll be twiddling your thumbs for 6 days ;-) and even then...</comment>


There are now more than 6 PR pros for every journalist - <AUTHOR> https://muckrack.com/blog/2018/09/06/there-are-now-more-than-6-pr-pros-for-every-journalist <comment><USER2> Side note: Muckrack has the very best daily news wrap up email, worth subscribing to, for a journalistic and funny take on what's going on.</comment>


Build Web Apps for iPhone using Dashcode - <AUTHOR> http://mobiforge.com/developing/story/build-web-apps-iphone-using-dashcode <comment><USER2> Can you use Dashcode to build web apps that you want to submit to the AppStore?</comment>


An International Update From Hulu in Japan - <AUTHOR> http://blog.hulu.com/2014/02/27/an-international-update-from-hulu-in-japan/

<comment><AUTHOR> I didn't want to change the title so I left it as is. A tl;dr; is that Hulu Japan is being acquired by Nippon TV.

It's a very interesting move as it may indicate that Japanese networks are starting to push more streaming services in the country. Something that wasn't the case two years ago [1]. I speculate that this is partly due to Amazon recently releasing instant video in Japan [2]. I'm also wondering if both of these moves indicate that Netflix is actively working to expand into Japan with Nippon TV wanting to not fall behind. It'll also be interesting to see if other streaming services start popping up and becoming more popular for things like music (Japan is still the land of CDs with regards to this).

[1] [http://www.theverge.com/2012/11/15/3628376/japan-digital- con...](http://www.theverge.com/2012/11/15/3628376/japan-digital-content- ecosystem-hulu-country-future)

[2] [http://www.theverge.com/2013/11/27/5151312/amazon-instant- vi...](http://www.theverge.com/2013/11/27/5151312/amazon-instant-video-now- available-in-japan)</comment>


102KB ought to be enough for any email - <AUTHOR> https://shkspr.mobi/blog/2019/05/102kb-ought-to-be-enough-for-any-email/ <comment><USER2> > We can argue about whether emails should be chonkie-bois or not. But they > are. People want full styling, images, and fancy features - not just ASCII > text and the occasional uuencoded attachment. That's the world we're in now.

Literally the only people effected by this are advertisers. Saying that people want it to be fixed is just not true, almost everyone hates ads especially in their email. If consumers were voting with their dollars on ways to improve email I highly doubt that longer message sizes would be the result.

<comment><USER3> I work with a number of magazine publishers who have very strong newsletter subscriber bases (city and regional magazines especially). Staff at magazines take a lot of pride in layout, content, imagery, and attention to detail.

Saying that only advertisers care is untrue.

<comment><USER4> Sounds like email might not be the best medium for them. Every email client sanitizes email a bit differently, and images are often omitted, so I cannot imaging how anything but the most basic layouts can work.

<comment><USER5> Maybe you're underestimating the popularity of newsletters? People like getting useful stuff in their inbox, and RSS really isn't a thing for non- technical users. Getting regular "deliveries" of a newsletter/magazine is ideal for a lot of users, even if it makes life hard for those "delivering".

As far as layouts, you can actually do a whole lot these days, depending on how far back you're willing to go, in terms of compatibility. There are a variety of tools designed to help you build a widely-compatible layout, and then confirm that it looks correct in your target email clients. And it's largely a "do once, then re-use" task, which is great.

</comment></comment></comment></comment><comment><USER6> The use patterns of email in the HD readership do not mirror the world at large, & are especially at odds with the corporate world. I mean, 20 years ago I fought the "email should be plain text only!" battle, too, but it's time to move on. We lost -- and, moreover, we were wrong.

Formatting in email is valuable.

Being able to include an image as part of the email (vs. just as an attachment) is valuable.

I use both features many times every day.

Now, the issue in the article doesn't seem to come up for me because I don't use Gmail at all, and most of my interlocutors don't, either. But that doesn't change the fact that the behavior in question is bone stupid.

</comment><comment><USER7> The thougts on this article should not be about necessity of big e-mail messages, but rather on the heavy-handed and flat-out broken way Gmail truncates the messages.

I mean, really, cutting right through HTML structure? That's just one webbrowser bug away from a security vulnerability exploitable by a well- crafted e-mail.

<comment><USER8> Surely it has no effect on security - if a truncated message triggers a bug, then the sender can just... send that message to start with? No GMail truncation required.

<comment><USER7> Not if the bug happens only when the truncation happens at the "right" place. As far as we know, no other e-mail client truncates e-mails exactly like Gmail.

<comment><USER8> Erm. I don't quite know how else to put this... what stops the malicious sender from sending an email "pre-truncated"? Emails are plain text underneath. Gmail's truncation contributes nothing that couldn't be accomplished on the sender side anyway.

<comment><USER7> You are right, it would probably be a long shot.

I am basing this on some assumptions, such as that the truncation happens after Gmail's content sanitizing has already happened, not before.

But even omitting the security aspect, such rude truncation is something I would have expected on some low-budget webmail app done as a high-school student's IT class project, not on a polished offering of a multi-billion company.

<comment><USER9> No, you are quite right about the security risk. It creates ambiguity, and ambiguity is just one step away from an exploit.

</comment></comment></comment></comment></comment></comment><comment><USER10> > The latest Android phones tend to have 6GB. A 32 times increase in a decade. > Laptops have also leapt forwards in speed and memory. Sadly, no one on the > Gmail team has noticed.

yet the average 350€ retail laptop still has 4gigs of RAM and a 1366*768 screen.

<comment><USER11> And i hope this will be the case for a long time, as at least this give _some_ incentive for people to care a little about their software and sites -barely- working on what would be a supercomputer 20 years ago while barely doing anything more sophisticated than a midrange machine of that time.

<comment><USER12> well 1366*768 is such a shitty format. So I hope they go away, pretty soon.

<comment><USER13> Depends on budget so also were in the world the device is brought.

768 panels are cheaper than 1080 panels so are often found in the lower end devices.

While the gap between 768 and 1080 is slowly decreasing 768 is still the dominate screen res in the worldwide stats [0].

But in Europe[1] and US[2] 1080 has overtaken 768, but 768 is still widely used. We will be coding for 768 panels for a long time to come (esp as the mobile vs desktop race seems to be tied for now[3]).

[0] - [http://gs.statcounter.com/screen-resolution- stats/desktop/wo...](http://gs.statcounter.com/screen-resolution- stats/desktop/worldwide)

[1] - [http://gs.statcounter.com/screen-resolution- stats/desktop/eu...](http://gs.statcounter.com/screen-resolution- stats/desktop/europe)

[2] - [http://gs.statcounter.com/screen-resolution- stats/desktop/un...](http://gs.statcounter.com/screen-resolution- stats/desktop/united-states-of-america)

[3] - [http://gs.statcounter.com/platform-market-share/desktop- mobi...](http://gs.statcounter.com/platform-market-share/desktop-mobile- tablet)

<comment><USER11> I should note that in my case i sought after the 768p panel (see my other comment for reasons) and the price wasn't much of a concern. In fact i ignored some cheaper 1080p monitors since i wanted a VA panel due to its better dark colors than TN and IPS (which i've grown to dislike for its washed out blacks).

</comment></comment></comment></comment></comment><comment><USER14> I love this feature. It's made it easy several times for me to convince the creators of overly-long newsletters to shorten things. These are newsletters that I need to be subscribed to for work because they have things like important policy changes that affect me but they often balloon with press releases and excessive formatting.

As for the marketers that might pad things out so that an unsubscribe link isn't visible, the Report Spam action works pretty well for finding a hidden unsubscribe option, or blocking the sender if not.

</comment><comment><USER15> Just to put that in perspective the snippet of Romeo and Juliet where it truncates is a bit over halfway through the play.

<comment><USER16> I... Am not sure how this is a useful perspective?

<comment><USER15> I just noticed the author used Romeo and Juliet in the screenshot and was curious how far through the play the truncation happens. It can be useful for some to put sizes like this into another more familiar form, for example the famous Bill Gates CD ROM photograph. Obviously this comparison only makes sense if your email is in plain text, something which is often not the case.

</comment></comment></comment><comment><USER17> My issue with this article is the narrative: That the truncation technique is applied for the benefit of memory management on the device. What about network throughput? Many of us have the privilege of blazing fast connections, both wired & wireless, but the same cannot be said for other locales.

<comment><AUTHOR> That's true... to a point. There could be a "load more" button - rather than taking users to a new mail view. There could be a "plain text" mode. There could be a "turn off images" option (there is, but it is hidden well).

There are lots of ways of making things faster for people with slow/expensive Internet connections _without_ degrading the experience for everyone else.

</comment></comment><comment><USER18> _Worse still, marketing emails know that if they pad out their messages, they can hide the unsubscribe link!_

I'm pretty sure no-one with any sense chooses to take advantage of this. People just hit their Mark as Spam buttons which is basically like a death sentence to people sending mass email. _(I send 450k+ legitimate, wanted, double opt-in mails a week and spam reports are basically our kryptonite.)_

</comment><comment> GuB-42 Looking at my work inbox, 80% of my email is under 100k, attachment included. And in almost every case, the attachment (usually a document or screenshot) is what causes it to go over the limit.

I have specifically chosen my work inbox because most of it is actual useful, work-related conversations and not spam.

So yeah, 102k is fine, and I prefer to click on the occasional "View entire message" rather than sacrifice performance because of a few bloated messages.

What the article complain about is that it is not enough for well-styled newsletters and stuff like that. But I call it a feature, not a bug. These mails are definitely not a priority, let them be truncated. One interesting point is that it can hide the "unsubscribe" link. Google already addresses that by providing an "unsubscribe" link right on top if you do things correctly, and if you don't, then you are a spammer and you will get blacklisted soon enough.

</comment><comment><USER19> For emails, the asteroid to kill this dinosaur is still in orbit.

</comment><comment><USER20> What on earth is the body of an email like if it is more than 102KB? That's about 30 sides of A4 normal text!

<comment><USER21> Add some inline images and a bunch of layout and you can easily hit that.

And yes I'm happy to argue about the evils of HTML in email and how I can't read your email in pine, just like I was in 1997. And I'd still lose the argument just like I did back then.

</comment></comment><comment><USER22> IMHO we need an e-mail client with Markdown support, HTML excluded.

<comment><USER23> Perhaps only a subset of Markdown.

<comment><USER9> What subset would you like? I work on email, a startup in private beta.

<comment><USER23> The same subset that is used by Discord, and Slack. So mostly blockquotes, code, lists, bold, strikethroughs, and italics come to mind.

<comment><USER9> Thanks, that's the subset we have been wanting to add, along with links. Markdown support in email clients has been a long time coming.

</comment></comment></comment></comment></comment><comment><USER24> I wish I could send invoices from my office without having to split pdfs in to chunks due to download size limits. It almost as ridiculous as having a fax machine in 2019.

<comment><USER25> What if that file could be transparently uploaded to an s3/gcp bucket and the URL placed in the email? Better or worse?

I believe the main reason that there is a 10mbit limit is that if it's much higher then you have two consequences:

1) Mail in transit (and queue buffers) are going to be very heavy

2) Inbound mail being very large could cause you to exceed your storage limit and hamper the deliverability.

Point 2 is mostly mitigated now with the advent of cheap as chips storage, but point 1 is going to hurt mail relays.

<comment><USER26> I believe there is already some kind of integration between Gmail and Gdrive. You can attach files from your Google Drive and what really gets sent is a link.

<comment><USER27> This integration exists, but it's a choice for the sender and it's not transparent for the receiver.

As a sender, when you select a file from Drive, it defaults to sending a link, but you can change it to send as a normal attachment.

As a receiver, I believe you will see a Google Drive link, not a normal attachment.

</comment></comment></comment></comment><comment><USER28> >People want full styling, images, and fancy features - not just ASCII text and the occasional uuencoded attachment

Which people? I don't, my parents don't, and apparently, everyone who would like to unsubscribe from ads also doesn't wont, as it's harder to find unsubscribe link. Go away with your 5Mb emails, send me plaintext.

</comment><comment><USER22> Note the link to a 4 year old post by the same author complaining about Google+ and saying that "It's time to start moving away from Google."...

(And I share the opinion, but it's impressive how HARD it can be to change your habits.)

<comment><AUTHOR> My personal stuff has moved away from big G. But my work stuff hasn't.

</comment></comment><comment><USER29> Just ditch gmail and send plain text email.

</comment><comment><USER30> >This is annoying for people sending newsletters - even the mighty MailChimp can do no more than offer some tips to shrink your latest newsletter.

I'm so sad that you can't send me more elaborate ads :'( :'(</comment>


Mobile Phones Offer a New Way for Afrika's Students to Learn Programming - tefo-mohapi http://www.iafrikan.com/2017/01/24/mobile-phones-offer-a-new-way-for-afrikas-students-to-learn-programming/ <comment><AUTHOR> That's k!ever</comment>


Big data is our generation's civil rights issue, and we don't know it  - <AUTHOR> http://radar.oreilly.com/2012/08/big-data-is-our-generations-civil-rights-issue-and-we-dont-know-it.html

<comment><USER2> It's possible that the invocation of "civil rights" is going to make some people roll their eyes at what sounds like a race-baiting headline. But this was one of the best arguments I've read about being cautious in the era of big data. As always, the issue is not that data itself is bad, but what small- minded people who have control of the data wil do with it. And the OP makes a strong case that minorities (whether racial or of any other kind) will be the first to be screwed.

<comment><USER3> Agree - and this is where technology really erases some of the fences that existed by accident when things were not so connected.

Worse, some people may end up with this knowledge and others not.</comment></comment>


Dont Follow Your Passion, Follow Your Effort - <AUTHOR> http://blogmaverick.com/2012/03/18/dont-follow-your-passion-follow-your-effort

<comment><USER2> I don't think I quite agree what he's getting at. You can put effort in to anything, but unless it's something you care about (are passionate about), you're not going to want to maintain that effort and actually get good at it. That's where his argument falls apart - the idea that expended effort leads to being good at something which then leads to being passionate about it only works if you expend enough effort to actually get good at it. If you don't care about it, you're likely to quit before you get good.

The idea of "follow your passion" means you should start expending your effort into something you're passionate about. The problem is that many people don't actually know what it is they're passionate about - and those that do don't understand how to turn that passion into an actual sustainable career.

So, I disagree. I say follow your passion.

</comment><comment><USER3> <http://news.ycombinator.com/item?id=4635187></comment>


How the United States Created Vladimir Putin - <AUTHOR> https://www.youtube.com/watch?v=8X7Ng75e5gQ <comment><USER2> Really insightful, explains the current situation.</comment>


Ask HN: What are the differences between people with high and very high I.Q - <AUTHOR> What in your opinion are the differences in the level of thoughts and imagination(to computer science and programming in particular) between people with intelligence quotients in range (125 - 134) and people with intelligence quotients in range (135-144), i understand that above those quotients lies the genius range(145-200), and i can at least imagine what it means but i have never been able to imagine the differences in level of thinking between those ranges stated above. <comment><USER2> IQ tests only measure a very portion of what constitutes intelligence in our society. In other words you could score high on an IQ test and yet be an "idiot savant" or score low on IQ and be the go to person for solving tricky mechanical problems.

Since you ask about thoughts and imagination in a CS context, I can only guess that you are asking about abstractions. In that case, there is a massive difference between being able to understand an abstraction that has been codified or to create a new one. For example, it takes most of us quite a bit of effort to get our heads around the abstraction used by, say Haskell. But to create a new abstraction that renders computations in a new area feasible, e.g. neuromorphic inference, requires a totally different way of thinking and I doubt that IQ tests can differentiate between the two.

In my experience, many genius programmers have very good recall of masses of detailed information. Which is similar to the skills of top litigation lawyers. Yet, when faced with a practical problem, like diagnosing and fixing a corrupted notebook computer, they both call in somebody with better analysis and deduction skills and most likely unable to recite masses of memorized material.

</comment><comment><USER3> It is near impossible to understand how anyone thinks more than two standard deviations above or below you, and most of the time even a one standard deviation difference is difficult.

</comment><comment><USER4> I don't believe in IQ as a measure of anything so anything I say has to be read in that context.

I am probably in the lower set. I struggle with abstraction, I struggle with retention of key mathematical concepts like the application of Compositions of functions, or lazy evaluation or partial function application or lambda calculus.

All of these I judge people probably in the higher-est set, to show signs of fluency and understanding in a deep sense.

Tl;Dr you can't actually take it til you make it, in maths,and if you believe compsci is maths..</comment>


Addicted To Authority - <AUTHOR> http://www.powerfulnonsense.com/addicted-to-authority/

<comment><USER2> Honestly, who would want to read this drivel?</comment>


Fake the backend while you develop the frontend - <AUTHOR> http://jsonstub.com/

<comment><USER2> Cool tool but I'm not sure I agree with the premise.

If a project is big enough that I need to show / give my client access to the backend while its in development, it can't very well be faked.

Their going to input data that may take months and that backend needs to be as real as the front end.

If this is for a startup and your just trying to get a backend up and running so you can start inputting test data or see how things look - ok - but for any client work, this would never fly - IMO.</comment>


Ask HN: What do you physically bring to and from work? - <AUTHOR> I started a job, and I was told that I couldn't leave my laptop on my desk for security reasons.
I find this strange, since you need badge access to get in, there's security cameras, the hard drive is encrypted, the OS is password protected, etc. It seems redundant.
It made me curious - what does your work let you bring in and bring out of the building? <comment><USER2> One of my clients discovered some things were going missing from their dev's desks. They installed a camera and on the very first night they discovered one of the cleaning staff rummaging through the desks, which instantly raised the threat level from "petty theft" to damn near espionage. They were clever enough that even in the video it was hard to tell what actions were cleaning, and what actions were searching for things to pilfer.

Of course that person got fired. My client subsequently enacted the same type of policy you are asking about. The staff there know exactly what happened, so there is very good incentive to simply follow the policy - nothing that isn't outright owned by the company stays within the company after hours, and everything that is owned by the company has strict handling procedures.

Security happens in layers. If you leave an opening, someone will eventually exploit it.

</comment><comment><USER3> macbook, phone charger, napkins, external battery, id, glasses case, ipad, house keys, wallet, phone, airpods, badge and some other temporary items(depending on weather, mood etc)</comment>