Natural Language for Developers - <AUTHOR> https://wit.ai/ <comment><USER2> In it's current implementation, Wit.ai is broken.

I built a bot recently on it and it was one of the worst experiences I've ever had integrating into a third party API.

By a long shot.

1) chat logic is declared on their buggy web platform, which is inconsistent if you use multiple tabs, and doesn't actually indicate current system status. I had a number of "bugs" whereby my "story" was correct, but attempts to test it failed and only after I gave up and let it be for a few hours did it start to work. Meaning stories that were broken would all of a sudden be marked green after a few hours. Flows that failed would start to work given some unclear quantity of time. Oh yeah, and the opposite too: things that worked while futzing around with their interface would potentially break after a few hours. Delightful.

2) Documentation is horrific. It's not clear from any of their examples how to build anything other than a toy to turn on and off lights. If you can figure out how to build a "yes-or-no" entity that follows two different paths from their "recipes" I will buy you a drink ($10 USD and for the first five people). Just provide proof and a BTC address.

3) Flow control is next to impossible to implement, and when you do, it's totally opaque as to why the bot actually chose one flow over the other.

4) can't currently version your stories, which means you can develop new features without breaking production.

6) their support is horrendous. I have four outstanding questions, all unanswered after, oh, two weeks?

The combination of all of the above means it's INCREDIBLY brittle, hard to reason about and extremely time consuming to develop against.

If Facebook wants people to build bots for their messenger platform, open source wit.ai, and then pay people to develop it. This current state of affairs is untenable, morally questionable for all of the reasons outlined elsewhere in the thread (which have gone unsatisfactorily answered by apparent Facebook employees who should know), and fundamentally broken.

</comment><comment><USER3> So, the site has this demo: [https://wit.ai/getting- started](https://wit.ai/getting-started) First two queries it shows are "Turn on the lights" and "Open the door please!" showing how nice the response is. If you combine them in "Turn on the lights and open the door please!" then the reponse ignores the door part completely: { "_text": "Turn on the lights and open the door please!", "confidence": 0.94, "intent": "lights", "entities": { "on_off": [ { "value": "on" } ] } }

<comment><USER4> "wash the car" , "feed the cat" results in

      "intent": "tv_onoff",

seems wrong for such simple example.

<comment><USER5> Similarly, when I input "make me a sandwich", I got "tv_onoff" as the intent.

I am assuming however, that you can "train" the AI to suit your particular syntax depending on your app and bot's intended purposes. No doubt as more scenarios are fed into Wit's database, the parsing and intent selection will get better?!?

<comment><USER6> I typed "Translate how much does that cost to French", which was one of the examples it showed me on the front page (under "Intent Parser", exactly as shown, no quotes), and it still gave me tv_onoff.

And "Turn on the TV please" is interpreted as "Turn the TV on to channel 'please'".

And don't invite any physicists round, because "Set the temperature to 293 K in my bedroom" results in a "temperature" value of 293000.

Still, the docs do indeed say you can train it (for sentiment and yes/no queries, at least, and hopefully other things too).

</comment></comment></comment></comment><comment><USER7> It seems like Facebook built this so they can feed the data from people using their api to train their eventual messenger AI/assistant.

<comment><USER8> I don't know why you are being downvoted, but this reminds me that thing about facebook/google/etc. that if there is no product you are the product. It also came to my mind that they may be after your users data for their own models..

<comment><USER9> They "may be"? As far as I heard, Google is pretty clear about using spoken language input for their voice recognition API for precisely this purpose.

</comment></comment></comment><comment><USER10> Correct me if I am wrong, but this approach essentially recognizes entities and matches it to a rule. This is naive ! There are better approaches which work based on parse tree structure or use a PCFG to encode rules

<comment><USER11> Can you link to these better approaches?

<comment><USER9> PCFGs are about the first thing that I learned about in my Stastical Machine Translation course. It's like a regular context-free grammar (see Wikipedia if you're not familiar with these), but each production is assigned a probability, such that all productions from the same non-terminal sum up to probability 1. Then you can assign a probability to a parse tree by multiplying the probabilities of all productions that were used (the model assumes that all productions are mutually statistically independent).

After a proper training run, you have your ambiguous grammar which, given an input sentence, will produce a set of parse trees, and assign a probability to each of them. You will typically choose the most probable one.

The Wikipedia article on PCFG is surprisingly biased on RNA/protein analysis and does not go into much detail on how to train these PCFGs. But it's basically just an EM algorithm using inside-outside weights. See for example [https://link.springer.com/chapter/10.1007/978-3-540-78291-9_...](https://link.springer.com/chapter/10.1007/978-3-540-78291-9_7)

<comment><USER11> This requires defining matching patterns, like a word-based regex though, right? Houndify uses that approach because it is easier to integrate with speech recognition, but it is very cumbersome to use and maintain and doesn't allow learning new utterances.

I don't think Wit.ai works as simply as you believe - it isn't merely matching keywords. Unfortunately I haven't been able to find out exactly how it does work. Alexa, and Nuance Mix work the same way as Wit.ai. In my experience it is the superior approach.

Viv is also one to watch but they haven't really said the NLU works yet.

</comment></comment></comment></comment><comment><USER12> I've been using Wit and enjoy it. The site could improve in terms of usability and performance. It definitely feels buggy at times.

I'm not using their story framework though. Just their intents parser. Using wit entirely for the conversational layer doesn't seem like a good way to go about things.

Overall I'm happy though.

\- I wish I could download my data set at will.

<comment><USER13> We will be releasing an import/export in the next 2 weeks

<comment><USER12> Wonderful! Thanks!

</comment></comment></comment><comment><USER14> I've used nlp-compromise.js for building an ecommerce shopping assistant bot. It's a bit rough around the edges but works most of the time.

Demo: [http://nlp-compromise.github.io/website/](http://nlp- compromise.github.io/website/)

Github: [https://github.com/nlp- compromise/nlp_compromise](https://github.com/nlp-compromise/nlp_compromise)

<comment><USER15> You seem to have commited a merge conflict in [https://npmcdn.com/nlp- email@example.com/builds/nlp-syllables....](https://npmcdn.com/nlp- email@example.com/builds/nlp-syllables.js)

Library looks fantastic!

</comment></comment><comment><USER16> I have been using this with [https://jasperproject.github.io/](https://jasperproject.github.io/) on a raspberry pi to make an open source amazon echo type device. It works pretty well for controlling basic things around the house.

</comment><comment><USER17> How does wit.ai make money?

<comment><USER18> Wit.ai has been around for a while now, and used to charge a monthly fee for some private models. It was then acquired by Facebook and made free for all uses.

<comment><USER17> I guess it would really improve peoples' trust in wit.ai (and thus the number of users) if they would declare their plans for monetization or policy otherwise for the future. Otherwise developers might not want to see their work become invalid when the platform suddenly costs money, or something.

<comment><USER19> It's owned by Facebook.

What part of their monetisation plan (privacy whoring to sell ads) is not apparent to anyone who cares to look by now?

<comment><USER17> That would be rather short-sighted. Different platforms should be monetized differently, and Facebook has shown that it is willing to do this, such as with WhatsApp, which isn't filled with ads: [https://www.quora.com/How-does- WhatsApp-make-money-especiall...](https://www.quora.com/How-does-WhatsApp- make-money-especially-in-India)

With wit.ai, I would be surprised if they decided "privacy whoring to sell ads" is the right way to go.

<comment><USER19> From that very page

> Instead, the company said it will explore ways businesses can use WhatsApp > to connect with individuals, and will introduce new ways for users to > communicate with businesses and organisations that will pay the company to > target relevant communications with customers.

>> __organisations that will pay the company to target relevant communications with customers __

So, their plan is more targeted advertising in the form of "offers" or "deals" etc.

<comment><USER17> Ah, I think you may have misunderstood. Below those lines, the examples given on the Quora link are:

> A bank could use WhatsApp paid account to communicate with its customers > about recent transactions and necessary fraud warnings.

> An airline could use WhatsApp paid account to contact its passengers about a > delayed schedule or cancelled flight.

I would argue that these do not seem like ads.

<comment><USER19> Right. Just like my telephone company says it might want to send me SMS notices about when a bill is due, and then actually sends me SMS notices about every fucking promotion under the sun from their sister companies, in a language I can't read.

I honestly do not understand the logic of people who look at a company, wholly owned by Facebook, and give them the benefit of the doubt when it comes to business tactics, privacy, etc.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER20> Would never use that. It's free of charge, so how is it financed? Right, its Facebook owned and just like every product of (Google, Facebook, Apple, whatever) if if cannot pay for it I won't use it, they eventually stop offering the service someday because they change their plans. Don't want to be forced to rewrite my app because of their change of mind.

<comment><USER5> These are my fears too. I've been looking at this over the weekend as a possibility to embed a 'bot like feature into my web app, but I would hate my users to get used to it, then have Wit go away like Parse did. Much harder to develop an AI engine from scratch myself than an authentication/database engine.

<comment><USER21> As far as I've seen, this isn't anything you couldn't do with basic classification and NER passes in OpenNLP. Straightforward, even trivial, stuff as far as existing NLP toolsets go.

<comment><USER18> Wit seems to be heading towards more conversation-oriented (ie multi-message) approach to NLP which is something existing NLP toolsets don't make straightforward. For example, predicting the next action a bot should take based on conversation history is a bit different than just classifying an utterance. There are hints at how to do this in literature, and Init.ai (disclaimer: I work there) is working on it as well, but it's not widespread.

There's also more to this type of slot filling than just NER. Again, the necessary techniques are available in academic literature, but not necessarily turn key. Plus, you need to handle parsing after locating the slots. For the parsing, you can take a look at Duckling ([https://duckling.wit.ai/](https://duckling.wit.ai/)) which Wit did open source.

Both on the classification front and the slot filling, open source toolkits might get you part of the way there but not all the way.

Having a training and management UI is also a substantial value add once you use it.

</comment></comment></comment></comment><comment><USER22> What we now need is a real AI engine.</comment>


Software Engineering (1968) [pdf] - <AUTHOR> http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF <comment><USER2> This is a classic report covering the NATO conference on "Software Engineering". EVERYONE involved with computers and computer systems would benefit from reading it. The authors did more than compile the papers presented, they captured comments and observations made outside the formal conference, and then created an integrated report. Even today, decades later, the report seems relevant and fresh. And somehow it seems that the attendees were smarter and more prescient that attendees today.

</comment><comment><USER3> One part that interests me is the discussion about simulation testing in "4.3.3. FEEDBACK THROUGH MONITORING AND SIMULATION" (p. 31 in the PDF).

Alan Perlis says:

      "I'd like to read three sentences to close this issue.

        1. A software system can best be designed if the testing is interlaced with
           the designing instead of being used after the design.

        2. A simulation which matches the requirements contains the control which
           organizes the design of the system.

        3. Through successive repetitions of this process of interlaced testing and
           design the model ultimately becomes the software system itself. I think
           that it is the key of the approach that has been suggested, that there is
           no such question as testing things after the fact with simulation models,
           but that in effect the testing and the replacement of simulations with
           modules that are deeper and more detailed goes on with the simulation
           model controlling, as it were, the place and order in which these things
           are done."

What happened to that technique? I tried to look at the papers that cite Brian Randell's "Towards a methodology of computer systems design" paper, which is the basis for the discussion (and which you can find later in the same PDF), but couldn't really find more than a couple of papers and they didn't go so deep into the details.

It seems that simulation testing only recently resurfaced with Will Wilson's 2014 Strange Loop talk about how FoundationDB is tested. In fact they seems to have done exactly what Alan Perlis said in 1968, but they never mention any source of inspiration/prior work. Was the technique independently rediscovered, or had they in fact read the (in)famous 1968 NATO software engineering report?

<comment><USER4> Isn't this just "agile" and TDD; 40-odd years ahead of its time?

<comment><USER5> TDD- Test Driven Design, yes

</comment></comment></comment><comment><USER6> A classic reference, which used to be included in [http://sunnyday.mit.edu/16.355/](http://sunnyday.mit.edu/16.355/) if I recall correctly.</comment>


Free Podcast Mastering Service - <AUTHOR> https://sone.app <comment><USER2> If the product is free then somehow I'm being monetized...

How is this free?

<comment><AUTHOR> It's a private non-profit side project. Just want to help people to get a better sounding podcast :)

<comment><USER2> Awesome! Well kudos I'll share it on my Twitter</comment></comment></comment>


Ask HN: Recommend software to record browser screen and produce video? - <AUTHOR>

<comment><USER2> Screenflow</comment>


Ask HN: What is something you do for clients that consistently blows them away? - <AUTHOR> <comment><USER2> Most of these seem to be very on the side of "I'm a company", so as a sole developer what I like to do for clients is implementing sockets into their apps.

Adding sockets for, say, the 3 newest logs they get in real time. Or if they have anything that maps to a graph/app-overview just make sure that will always update in real time. It's not a huge time investment for me. Customers usually never request it specifically. But I've found they are blown away when they see how everything is updated in real time. It just makes the whole thing feel 'alive'.

Another thing which I don't personally love, but I do because I understand industries have differences is just exporting whatever can be exported into .csv files or .xls files where applicable.

All in all, I work in consulting. The code I write is meant to make the life of people easier, I want to make sure they get that when possible. A big part of why I'm able to do this is that I have a lot of creative freedom to do whatever I want so long as I'm getting stuff shipped. So huzzah for comprehensive management as well!

<comment><USER3> How would you export it to xls? ActiveX Excel controller ("in my time this was called COM", etc)? Open source library?

<comment><USER4> tablib[0] is one option for Python. There are quite a few libraries that handle export. Excel files (and other Office) file formats are just zip files containing XML. For a while now, this has been an open standard[1].

[0] [https://github.com/kennethreitz/tablib](https://github.com/kennethreitz/tablib)

[1] [https://en.wikipedia.org/wiki/Office_Open_XML](https://en.wikipedia.org/wiki/Office_Open_XML)

<comment><USER5> I've found the Python pyexcel library to be the most flexible option to read/write Excel files. [https://pypi.python.org/pypi/pyexcel/0.0.9](https://pypi.python.org/pypi/pyexcel/0.0.9)

<comment><USER4> Curious if you've tried tablib. I haven't used either, but knowing kenneth_reitz tablib is quality :)

</comment></comment></comment></comment></comment><comment><USER6> Whenever I find myself at my desk not knowing what to fill the next few minutes with, I tend to call a more or less random customer - the ones who USE our products, not the ones who procure them - and ask them what they think suck about our current offerings.

Most educational, and it has resulted in a number of improvements to our product line (subsea handling equipment - used for deployment and maintenance of subsea wellheads, submarine communication&power cables, &c, &c.)

They all expect you to ask what feature they like best; they're always baffled when you rather ask where we've screwed up - and more than happy to help! :)

This is very cheap and effective market research.

<comment><USER7> I used to work with this programmer who would get free beta testers by doing this.

Set up a meeting with endusers in one of our training labs and tell them they can complain about whatever they want. Then walk them through a 15-minute set of steps for whatever change we're going to roll out.

Not only do you get great feedback on the product as a whole, they'll inevitably find ways to break your new thing within five minutes. Literally a few hours of two analysts' time and you might avoid dozens if not hundreds of man hours spent fixing things. It was beautiful. And just like you said... the customers are amazed that you _want_ them to complain. They love it.

<comment><USER8> In my business line, we have two kinds of users: the competent ones who have useful complaints but never seem to break anything and the incompetent ones who break everything and have no useful complaints. I try to get a mix when I want feedback on an upgrade or new tool or for more formal UAT. The former group shows me flaws in the data model and UI, the latter shows me the flaws in the business model.

</comment></comment></comment><comment><USER9> My answer here is more relevant to an e-commerce company but the basic idea can be adapted to any company.

So, back in 1994, my dad and me started an ecommerce company (bikeworld.com) that sold bicycle parts online. It was an extension of his brick-and-mortar bicycle business and I took a couple of years leave from college to help him build it.

He did one thing early on that generated amazing word-of-mouth support: send a little treat in every order box. Our company was based in San Antonio, TX and Dad decided to include a little local flavor with each order to make us stand out from the few competitors we had back then (incumbent mail order outfits). At every good Mexican restaurant back home, they sell Mexican chewy candies at the cash register when you pay after your meal. My dad and I loved these things so he went to the manufacturer in town and bought a few cases of them. They were really expensive, like $0.50 each, and it became a big expense but the customers went nuts. Dad printed up a little card that he put in the bag with the candy, explaining the tradition and thanking them for their business. It worked well--we quickly became one of the largest online bicycle stores of the late 90s.

<comment><USER10> Thanks for the story. Advanced Circuits (aka 4pcb.com) includes a package of microwave popcorn with every prototype order—since they know you will be up all night when the package arrives.

<comment><USER11> They used to (maybe still do) have a pizza & pop special for students. It was something like $199 to print 4 copies of your PCB and you get a large pizza and 2L of pop from Domino's Pizza. I got it as an engineering student in Canada, and was disappointed to learn upon delivery that the coupon could only be used in the USA. I had to wait to use it til my next climbing road trip to Red Rock Canyon.

</comment></comment></comment><comment><USER12> We call them back.

I run The Human Utility (formerly the Detroit Water Project) and we help folks with their water bills. When they reach us, they're used to dealing with other social service agencies that aren't very responsive and don't do something as basic as ever calling them back. We do and we find that people are grateful even for that.

Edit: People are happy to hear from us regardless of whether we actually help with their bills. If we say we can't, at least they know to try elsewhere and can do so fairly quickly.

<comment><USER13> I have to +1 this. Whilst I have never specifically dealt with Human Utility. A couple of times when I had an inquiry or an issue, I have been offered to be called back later rather than wait and eventuall call back myself. Each time I appreciated the phone call.

Something so simple, yet great for customers!

</comment></comment><comment><USER14> When I did freelancing, I charged a bit more than I felt I should... but went above and beyond. My hourly rate may have been high, but I spent many "non- billable hours" making sure everything worked great and any changes (their fault or mine) were accounted for.

I did a few jobs where someone else controlled the billing, and kept us on a tight schedule. Every hour was billed. We were "fired" (AKA contract not renewed) every time. Yet when I went above and beyond, I had no problem getting and maintaining awesome clients.

As someone on the opposite side now (hiring freelancers), I've realized the thing I value most: the freelancer gives me less work, not more. It may seem obvious, but when I was on the other side, it wasn't. When I hire freelancers now, I value one overarching quality: to make my life easier. I don't care about price or hours (within reason), I care about not having to think about it.

<comment><USER15> I'm going to print that on a tile: "The freelancer gives me less work, not more."

</comment></comment><comment><USER16> I never disagree with a client. Even if I internally feel it won't work in reality, I always start my response with "That's an excellent idea you proposed, let me try if it works and get back to you". I come back after a day or two as to why the proposal won't work (if it was a bad idea to begin with) with sufficient data. Client is happy you that you considered his proposal and you've avoided a potential standoff that could've existed for the same duration !

<comment><USER17> Interesting. We usually say that a good consultant should be senior enough to stand up to the customer and at least be able to inquire the basis for something. And also disagree when the customer is clearly wrong. But your way of doing it clearly removes the initial head-on.

One could always reason about things. But to promise to investigate (and then deliver) looks (and is) professional.

But I will never say yes when a customer suggests to "encrypt dsta using the cipher md5". Yes it has happened. More than once.

<comment><USER18> So, to follow the diplomatic approach here:

Client: "Encrypt our data using the md5 cipher."

Consultant: "I will investigate the feasibility of this."

... two days pass ...

Consultant: "I have considered your proposal. I believe we should encrypt your data with SHA-256. md5 is insecure, here's several references. SHA-256 is much more secure and more popular. It is a NIST standard, and just as cheap."

Client: (probably) "OK, if it costs the same and is more secure, sounds good to us."

<comment><USER19> Except you can't encrypt with a hash function.

<comment><USER17> Actually you can use a cryptographic hash function such as SHA-256 (or MD5, but lets not go there) as the core of a stream cipher. Basically stick a seed (key) combined with a counter as input to the hash functiom. Use the output as the keystream. Stream ciphers such as ChaCha are basically block based PRFs that operates like this.

Of course the performance would be silly compared to dedicated functions. ChaCha20 has less than a third the number of iterations compared to SHA-256. And each iteration is much faster.

Good thread: [http://crypto.stackexchange.com/questions/48/is-it- feasible-...](http://crypto.stackexchange.com/questions/48/is-it-feasible-to- build-a-stream-cipher-from-a-cryptographic-hash-function)

</comment></comment></comment></comment></comment><comment><USER20> Here's an internal facing one: We send an automated greeting from the CEO as part of onboarding, but he actually sees and replies to every customer response, in both english and spanish, and forwards the more heartwarming ones on to the entire office.

It's pretty cool to get a handful of emails every day from actual customers who are very grateful for the work we do.

It also changed my opinion on the "canned CEO greeting". As someone who knows how those are built, they always struck me as annoying and disingenuous sales gimmicks, but our customers are significantly less tech savvy, and a huge number take the correspondence at face value and actually start a real conversation with the CEO.

<comment><USER21> I generally respond rather negatively to automated emails or chat messages that seem human but are not, and I've been thinking of how I would approach this if I had a company big enough that automatic greetings are 'necessary' (or desirable, at least).

Perhaps one solution is to use a clearly non-human company 'avatar' character specifically for some of these interactions? A robot or pet character?

<comment><USER22> How about a clip?

<comment><USER23> only if it has giant eyeballs and doesn't disappear no matter how hard you try to make it go away... Otherwise, it just seems disingenuous.

</comment></comment></comment></comment><comment><USER24> I do hardware engineering work for hire and one of the things that always works is having some documentation ready at _the first_ formal meeting.

Specifically, I have a skeleton requirements document that I put together from our previous correspondence (there's always a phone call, few emails, etc.) trying to flesh out their project needs. It doesn't matter if this is incomplete, inaccurate, or any other in-word. It shows that I'm a professional who has tried to understand the problem, the business case, possible solutions, will approach it methodically and like a real engineer, and that I know what I'm doing.

Those 10-15, printed, very real, pages, mostly just ?-marks, have written me more contracts than I can count. It takes about 1-2 hours of work to write things up, but I've never - not once -, had a potential client fail to notice and be impressed when I show up and have a presentable document already underway.

<comment><USER25> This is generally the way to win contracts, grants and impress people. Going over their requirements carefully, whether written or verbal, and gearing your proposal directly to what they say always impresses. That's why changing project managers at the beginning of or before a contract starts is a big problem.

</comment></comment><comment><USER26> If there's a Tarsnap outage because I screwed something up, I give Tarsnap users a credit to their accounts... without waiting for them to complain.

Apparently this is unusual. I can't imagine doing it any other way; I mean, who wants to deal with thousands of emails from customers who are owed account credits?

<comment><USER27> It is wonderfull product, I love simplicity of it.

One question though, why don't you allow me to set up recurring billing? Eg. if credits go below 10€, charge 10€.

<comment><USER28> Storing credit card numbers is annoying (unless you don't care to do it right, but it's pretty clear he does care). On the other hand, there are payment processors that will handle that sort of thing for you, for a fee.

<comment><USER29> Typically you're going to be storing tokens from e.g. Stripe these days, and not raw cards. Major card carriers provide the same service too. Still worth doing well and securely, but much less risky

</comment></comment></comment></comment><comment><USER30> Consistent updates(mostly daily) on email with screenshots and quick short screencasts. A lot of times a particular feature takes more than a day to complete and be pushed to some server for client to actually see what it looks like. But if I create in progress screenshots and videos from my dev machine it always impresses my clients.

<comment><USER31> Yeah, always taking screenshots + Screenflow (on Mac) or Camtasia / SnagIt (on Windows)

<comment><USER32> Appreciate the recommendations. For Windows I recommend ShareX: [https://github.com/ShareX/ShareX](https://github.com/ShareX/ShareX)

Tools like these also make it easy to create documentation that is a step-by- step walkthrough of each process.

There is also an entire class of tools designed to screenshot automatically to track work: [http://alternativeto.net/software/timesnapper/](http://alternativeto.net/software/timesnapper/)

</comment></comment></comment><comment><USER33> These are a few things that have gotten me praise over the years:

1) Keep emails short. I set a 200 word max on all emails. If you can't say what you need to say in 200 words, schedule a meeting to discuss. If you have to send long documents, send a 2-3 sentence summary. Tell them what you're going to tell them, tell them, tell them what you told them... in 200 words. (=

2) Keep detailed time records and make them available to the client on-demand. They paid for it, might as well show them what they are getting. Be honest... if your team wasted 4 hours trying to make sense of a BS email from the client... make sure they understand that.

3) Being on time and inclusive; inviting them to daily standup meetings with the team, and posting notes from those standup meetings in case they (or anyone else) can't be there. Easy with a Google Sheet to just type a few notes each day during standup. I don't have any tools for the team that the client can't access, or hasn't been given a rundown on how we utilize it.

<comment><USER34> I like the 200 word thing. I'm gonna give that go. :)

</comment></comment><comment><USER35> Call them out when they're wasting money on marketing. This has been in my "blog post drafts" folder for a while, but the short version is: One of the first things I do on new projects (I'm a customer acquisition consultant) is review the running campaigns and their results from the past few months. Not clicks—which is what all the dashboards show you—but actual results like signups and new customers.

Almost always I find money being drained away. There was the time when a company targeting Python developers was losing its AdWords budget on snake enthusiasts. Another time a mobile analytics company was spending thousands on people searching for free apps. In another case a company whose ads went to a 404 page and nobody realized. Also recently I found that an SEO agency was falsifying results to one of my clients (the contract was quickly terminated).

I don't know if "blown away" is the correct phrase. It's more like a brief moment of embarrassment followed a huge sense of relief that a budget leak was found and plugged.

PS - The companies described here have successful products made by brilliant people. This is more a symptom of hiring the marketers who don't have the skill (or intention) to demonstrate the results of their efforts.

</comment><comment><USER17> One thing we did a few years ago when we found that a customer didn't use revision control was to bring in a server. A small PC with Linux, Subversion and Trac. We not only could explain the benefits of RCS, but the customer could see changes, att issues, get them resolved etc. When the job was done, the customer kept the machine.

I occasionally bump into old customers and many still run the same server. All of them are today using revision control systems.

So basically we didn't just provide a tech solution, but also brought in methodology and free tools to implement that methodology.

<comment><USER36> Do they have a backup of it? :-)

<comment><USER37> The client accepted a faustinian deal there! :p

<comment><USER17> ;-)

I hope and don't think so. Demanding them to use ClearCase, that would however been pure evil.

</comment></comment></comment></comment><comment><USER38> Lower their prices, without prompting. At Flexport we sell logistics services. The price of ocean freight is highly variable (less dynamic than, say, the stock market or airline seats, but still fluctuates a ton). We make money by brokering these services. In some cases, the price of freight drops in the time between customers when contract us (and agree to a price) and the service gets executed (when we contract with the asset owner). We pass those savings on to the customer and let them know. This usually results in big joy, all around.

<comment><USER39> Interesting, if the price rises do you pass that on to the customer too or do you take the hit?

<comment><USER38> Depends on the situation. Our rates have expiration dates attached to them, so if the price went up before our negotiated rate expired, we will eat it. If the rates expired, we leave it to the judgment of their account manager on what to do.

<comment><USER40> just out of curiosity - the value that your customers see...is it actual cost + your fee? (hence you can collect the fee even if the actual cost reduces?)

<comment><USER38> Yeah, classic brokerage biz model. We contract in bulk with asset owners and sell piecemeal.

</comment></comment></comment></comment></comment><comment><USER41> Generic company sysadmin.

I have a rotating list of power user tips. I'll pick one to show someone during a trouble call (provided no one is in a huge hurry). It has to be something cool that I can demonstrate/teach in seconds. Examples:

Snipping tool. Rather than writing down error codes.

Windows key + start typing the program name. Rather than navigating the start menu.

Piles of excel tricks. (everyone loves excel)

The big thing is knowing your audience. People enjoy _participating_ in something, not just being shown things they can never accomplish. If you make it something they can't understand it will just make them feel stupid or frustrated.

<comment><USER42> I'd love to learn more excel tricks. Any resource you'd recommend?

<comment><USER43> Joel Spolsky has a surprisingly entertaining video about excel features: [https://m.youtube.com/watch?v=0nbkaYsR94c](https://m.youtube.com/watch?v=0nbkaYsR94c)

</comment></comment></comment><comment><AUTHOR> I'll add one here from my own business, which is customer care outsourcing. The outbound call. Basically it comes with the territory when things go wrong. But when you call the customer before they realize things have gone wrong they are always, always grateful and impressed. Same thing goes for a "just checking in to see you are enjoying the service" call. Since we have agents sitting around all the time anyway this is time that can be used to call up customers and impress them.

<comment><USER44> Yes, this is true. We have set up a ping to all our clients external ip. If they go down, we know immediately. Client never fails to be impressed.

<comment><USER45> Yep. we do this too. Whenever we develop a web service for a customer, we set up uptime monitoring on the server where the app is hosted, but I also set up ping uptime checks on most of their other server infrastructure as well.

Just last week, I was alerted at 5am that a client's email server had gone offline. Nothing to do with us, we don't look after their emails at all, but I immediately texted their IT guy to let him know.

He texted me back at 6am - their own uptime monitors somehow failed to detect the DNS issue. He managed to fix it before their staff got to work that morning, and was extremely grateful that I had given him advanced heads up on something that was totally outside the scope of what they had engaged us for.

<comment><USER46> Perhaps this is just a product of working at a very privacy-centric company, but I would be _super_ creeped out by that...

<comment><USER45> Context: We've worked with this client for 10+ years, I know their IT team really well. They are not a super huge organisation, and we are a tiny (read: 3 man) operation too, so the reliance on each other's services is something we consider important to keep everything moving forward.

</comment></comment></comment></comment></comment><comment><USER47> Look at how many of the answers in this thread are simply about communicating effectively.

That mirrors my experience when I was on the service provider side, and as someone who is now consuming those same services, I can confirm that I am most impressed by my providers when the communications are focused, helpful and timely.

<comment><USER48> >>> Look at how many of the answers in this thread are simply about communicating effectively.

spot on

</comment></comment><comment><USER49> Respond to requests right away.

A lot of the time, when a client has a request, they are thinking out loud in the moment. Even if I can't pick up the phone, I'll send a short email straight away to let them know that

1\. I got the message 2\. Timeframe when I can action

<comment><USER31> I do this all the time. "Got the message" \+ please allow some time...

</comment></comment><comment><USER45> 1\. Deliver just a little more than they expect. Most times when we write a web app for enterprise customers, we try and give them a little bit of extra functionality than they ask for. One example is the user profile settings for their sign on to our web apps - most customers are only bothered with having a username and password, but we often incorporate things like ability to choose avatar images or upload their own images against their profile.

We did this on one education site we developed, and also gave them the ability to choose from about a dozen 'stock' cartoon style avatars if they didn't want to upload their own images. The users were impressed at the handover training session we ran, but I overhead one guy (who was indigenous Australian aboriginal descent) jokingly remark that the stock avatars didn't have a person of indigenous culture represented.

I took note of that, and when I returned to the office, we added a handful of indigenous avatars as well within the hour. Client was happy that we went the extra mile to take their offhand comment seriously and deliver on it.

2\. Saying 'No' to 'easy money' projects. We've worked with some of our clients for over 20 years now. Mainly because often when they come to us to add on features to their custom written apps, we often say 'No', along with some valid data to explain why we thing the $$$ sunk into the added feature are of very little benefit.

This has lead to them trusting us a LOT more when we go the other way. Real world case study - we had one client, whom we developed a short term loan application for, ask us to add a Monday morning report with customer mobile numbers so they could do a ring around check for customers who were about to default on their loans.

I said 'Sure, but lets go one better'. I said that along with the report, it wouldn't take much extra work to actually have the system send out an SMS message to all those clients as well, with details on their upcoming defaults, and what they needed to do to fix the issue.

They were delighted and said to go for it. Well, that was two years ago, and it turns out that the SMS messages by themselves have reduced their default rate by an incredible amount, and they are FAR more profitable as a result. Hmm, maybe I should have asked for a percentage of profit increase as my payment! :)

</comment><comment><USER50> Something we were doing when I had a web design agency was to have awesomely beautiful and detaild proposals where we summed up the context, constraints and goals of the project. We considered them as our first deliverable and spent time creating beautiful indesign templates. It allowed us to stand out from the start. Another thing is while our competitors were usually not showing anything yet at this bidding stage, we were already delivering some high def mockups, sometimes within the weekend. Last thing, we didn't have any sales people. Meetings with leads and customers were directly being handled by tech leads and lead designers, who were not there to sell, but to advise and find solutions with the client, explaining and integrating the client within the process from the start. All in all, we won all the biddings at the time despite being usually 30% more expensive. Something we were doing also is to include free perks that didn't cost us anything and was making a lot of difference for them ( free access to our email marketing platform, server monitoring, etc... ).

<comment><USER51> This is so important.

We had this experience (as a client) when we went around to find a venue for our wedding (100 people).

The restaurant that got the bid wrote us a personalized letter, included information on the town and hotels that would be available for guests nearby, etc etc..

The rest just sent short notes.

As a leader in an IT department, I asked for proposals for a 40K software review.

All of them responded with no-brainer copypaste letters. All but ONE, who took their time to make a good, detailed offer.

They called me, we met for an hour with their experts, THEN they made a thoroughly thought out offer.

Guess who got the job?

</comment></comment><comment><USER52> I discuss wit a client about some data they collect using an Excel form. Prototype quickly under one hour a small CRUD app based on Django and set Django Import-Export [0]

Get an easier Excel sheet containing data. They're gaga about that. I've won contracts just by showing them that they will get all the data in an Excel sheet.

[0]: [https://github.com/django-import-export/django-import- export](https://github.com/django-import-export/django-import-export)

<comment><USER53> Sweet move. A lot of stars on Github tells me you are spreading lots of joy to your peers all over.

</comment></comment><comment><USER54> My business develops mobile apps for clients. They love when I analyze major announcements from Apple / Google and explain how the new features may apply to their apps. They feel they have a partner, and it typically results in new development for us.

</comment><comment><USER55> Tell them the truth, even if it means fewer projects/billable hours for me.

Every single lead I've talked out of working with me, has referred me to another customer and/or came back weeks-years later with a bigger project that did make sense to pursue.

Choice quote: are you allergic to money?

<comment><USER44> i would say about half of the leads i talk into trying someone else send a referral, but that isn't why i do it. Our field is so large. It's important to not get distracted. Of course, this assumes you have a plan.

</comment></comment><comment><USER56> I am a developer and usually writes web scrapers or automation tools most of the time beside typical web development. A couple of things I did and worked for me.

\- I offer them more than what they expect. At times scraping additional info which I think is useful but they did not realize I extract that too. Sometimes they ask for the script or data, one of them and I just offer them both and they appreciate it lot. Though that _script_ is not helpful for them and they eventually come to me but it's just increase their trust.

\- It sounds silly and dangerous but often I don't ask advanced payment from clients and prefer to show off some skills, mostly it was quite helpful and they worked me on other projects as well.

<comment><USER57> How did you get into doing scraping contracts? I often write web automation scripts and scrapers for gathering research data, but have never figured out a way to get contact work.

</comment></comment><comment><USER58> Anticipate their emergency procedures, and ship them a binder wrapped with dire warnings should it be removed from the data center. Multiple customers have said this has saved their bacon.

<comment><USER59> could you please elaborate? What's in the binder?

<comment><USER58> Emergency procedures for administrating the network gear. There's two sections: 1) symptom->fix procedures, and 2) how to rebuild everything in the network from scratch in case it got wiped.

The reason it's in hardcopy is because you can't look stuff up on the Internet if the Internet is down.

</comment></comment></comment><comment><USER60> Build much better UIs than my competition. It's a known issue, we developers rarely take the time to bother with UI and it's a shame because it makes all the difference in the world, especially in web apps. Clients can't tell technical superiority, they can only judge from what they see and if your UI is stellar you'll make selling a lot easier. And you know, judging from the fact that so many of us are afraid of the sales side this could be a lifesaver. Build better UIs to counteract the fact that you suck at sales.

<comment><USER61> Portfolio, please.

<comment><USER60> Most of my projects are subscription based SaaS web apps specifically aimed for a local (non-US) market. Showing them wouldn't do you any good because you'd need an account to view the service and it would attract unwanted attention. Contrary to the prevailing HN mentality, I prefer to fly under the radar.

<comment><USER62> I think he just wants to see screenshots...

<comment><USER61> If that's all I wanted I can go to Dribbble or Behance. Was genuinely curious...

</comment></comment></comment></comment></comment><comment><USER63> My rates! Seriously. That's how high they are and that's where I want them.

But because I pick up the phone when they call and I seem trustworthy, they pay it. Also, I take my work very seriously, and they get what they pay for.

Contrary to what I read here, I put me first, my company second and the client third. I think that in consulting, this is the only way to stay sane and deliver on time and to spec.

</comment><comment><USER64> I work in a large health organisation right now and the thing that seems to blow most away is just saying yes.

I don't work in the IT department and they basically say no to everything. Regardless of business value or difficulty.

I work in the chief executive office and numerous departments will be amazed when I say yes... Let me look into that.

Recent example was a publicly facing, real-time waiting time tracker for the city's A&E (as well as two walk in centres). Each solution I thought of had compromises but they chose the one they could live with.

<comment><USER7> Healthcare IT is one of the most backwards areas of IT to work in, I think, in large part because of the legal red tape around everything clinical. So you get a lot of people that say no automatically.

Additionally, I think you get a lot of people that don't really have an "IT mindset." I don't know about where you work but in my neck of the woods we have so many people in programmer positions that can't even write a three line script. They're great at clinical stuff because they came from there (e.g. nursing) but have no technical background...

<comment><USER65> I have a different theory: For many IT applications you can tell users to conform to the system's needs or take a hike. With healthcare (and some other government type services) you don't get that option.

If I'm Amazon and you don't have a computer? Sorry, come back when you do. No e-mail address? Sorry, come back when you have one. No credit/debit card? Sorry, come back when you have one. Don't know your postal address? Sorry, come back when you know it. No phone that can get SMSes? Sorry, come back when you've got one. Don't speak any of the languages we use? Sorry, come back when you do. Unable to pass a captcha? Sorry, come back when you can. Bad at reading and can't navigate our site? Sorry, come back when you can. Blind and your screen reader doesn't work with our site? Sorry, come back when you have a different one. Child that doesn't know their own name? Sorry, come back with a grown-up. No address because you're homeless? Sorry, come back when you've got an address.

Companies that can decline service for such people can make many simplifying, cost-saving assumptions in their IT systems.

If you can't decline service (Hospital, voting etc) you need to deal with such corner cases - and combinations of several. I can understand how getting that right would raise costs substantially.

</comment></comment></comment><comment><USER66> I don't know if these things "blow them away" but I do think they are differentiators:

\- I bring homemade cookies to our first meeting and if the client likes them, to subsequent meetings. The first time I did this for purely selfish reasons; I like cookies but I'll eat the whole batch myself unless I get someone else to "take a cholesterol bullet" for me.

\- I'm extremely honest and forthcoming. I tell them that it may sound like I'm trying to talk them out of hiring me but what I'm actually trying to do is make sure we're a really good fit. I tell them even the non-flattering data about my capablities or lack thereof i.e. I've told more then one potential client "I can _spell_ 'SQL'" when they tell me they'd like to incorporate a data base in the product they want me to make. (But my wife is an expert and she'll help me out.) I tell them my estimates are usually off by a factor of 4X. You know what is worse than not getting a contract? Getting a contract where you can't make the client happy.

\- I tell them that they can probably do the job without me - and I mean it. "Here's how I would do this. ... That part might be tricky, I can't remember off the top of my head but I'll look it up and send you some links on this.. Buy me lunch and you can pick my brains."

\- Communicate even when there is no news or it's bad news. "I still haven't received your hardware but I wanted to call so you'd know before you left for the weekend. I'll call the vendor on Monday."

<comment><USER67> Looks like a good strategy to find the job you're going to enjoy, but is it working well for you in the long run? Or you just have enough savings at bank to not rush until you find a good position?

Since I wish to find some non-freelance job in future, but requirement of bullshit talk scares me. And few times when I attempted to act similar to what you posted I just bumped into a wall of misunderstanding.

<comment><USER66> I'm hard wired for the "honesty thing" but started going out of my way a few years ago after a bad experience.

I interviewed with a company for a contract and I had told them I only had 5 days of experience in technology X. They hired me and then let me go after a week because they needed a true expert to fix something in time to ship. I said them "I _told_ you I only had 5 days experience with technology X, why did you hire me when you needed an expert??!"

The manager responded "We just liked you so much!"

After that experience, I would tell them [interviewers] right at the beginning of the interview that I was going to try my best to "open my mind and let them peek inside" and give them any data they might need to reject me. I'd tell them, "It's going to sound like I'm trying to talk you out of hiring me but I'm really just trying to make sure we're a good fit." Somewhere in there I'd tell them the above story so they'd know why I was taking such an unorthodox approach (and offer them another cookie).

I'm a freelancer with multiple clients now. I have too much work so I guess I have the luxury of not taking jobs that aren't a good fit. That said, being so confident that you can be radically honest with a potential client or interviewer, also signals competency. A desperate person doesn't behave that way.

</comment></comment></comment><comment><USER44> Answering the phone when it rings. Not so much old clients, but new clients are consistently impressed with this. A lot of our competitors don't answer and some don't even have voice mail.

<comment><AUTHOR> I like this one. I'm a bit biased because I run a customer service business so that's a big deal for us, but even I am impressed when someone just picks up.

</comment></comment><comment><USER68> Show them how to do it themselves, and teach them "why" I do things the way I do them. I write resumes for clients and do them in Google Docs, and I invite the client into the doc from the very start. They can actually watch (in real- time, if so inclined) the work being done at all stages in the process.

Lots of them will ask why a certain decision was made that seemed unusual, and sometimes the dialogue gets into some rather detailed nuances of how readers interpret bits of information and how it's delivered. I came to resume writing after ~20 years in recruiting, so I am able to provide insight into what the audience for their resume is thinking.

Clients say they like the collaborative approach and appreciate that they learn things that they can apply next time (and not have to pay for the service again).

</comment><comment><USER69> We clean devices, such as notebooks and keyboards, before returning them to our internal customers/users.

<comment><USER7> That's a very nice service but I'm not sure I'd like to do it.

When I did support for a university we very specifically could turn down items (mostly laptops) that were too grody to work on. Most of the techs used their own keyboards and mice regardless but still... some people are pretty abusive to their hardware (gunk, stains, very clear food spills, etc).

Though I guess the SOP wasn't to say "ew get that out of here" but rather "here's some wet wipes can you please wipe it down we make everyone do this" which wasn't even remotely true.

</comment></comment><comment><USER70> I'm partner of a B2B business.

We send cards and/or gifts on Christmas for every client. I and my partner write all the cards. We always thank the client for being with us another year and we ensure them we will do everything possible for the next year to be even better.

We haven't lost a client in the past two years. We have about 30.

</comment><comment><USER71> Using web dev tools / inspector during a screen cast demo, either to modify a style or to show a site/app's responsive behavior. Simple, I know, but it comes off as some form of wizardry to many clients.

<comment><USER72> I think you want to be careful with that - you don't want to make the magic that we do look too easy. "Can you just quickly change all the fonts on our massive, complex site to Comic Sans? I saw you do it in the demo the other day and it looked like a two second job..."

<comment><USER73> Then just explain to them, why it won't be so easy.

"Comic Sans is licensed by Microsoft and can't be used on the web" "When we build websites, we first write it in another language and then pass it through a program that translates it so that browsers understand it. Adding Comic Sans would require us to make changes deep in the 'translator' program that is supplied by a third party." "Comic Sans is cancer, see these links. Designers all over the world hate it. If I had a site with Comic Sans on it in my resume, I would seem very unprofessional to a lot of potential clients."

I usually explain them the problem I'm facing in non-technical terms.

Of course, and I bill my time spent doing this.

<comment><USER73> Ad quote 2: When I showcased it to you, I edited the code for browsers directly.

</comment></comment></comment></comment><comment><USER74> Build a rudimentary CI pipeline that automatically runs some kind of test.

Don't roll your eyes. You might live in a JS filter bubble but there are a lot of impoverished developers working in software engineering ghettos.

</comment><comment><USER75> Our clients tend to be blown away by map widgets. If we showcase an application and then bring up the embedded Google Maps view, e.g. with different kinds of overlays, most clients are completely blown away.

</comment><comment><USER76> I am in a pre-sales position so I am already typically on the clients shit list. Unlike most of my counterparts, I have lived in the world of ops and development and know how fun it is to get a call at 3am when something is down. I use my past experiences to explain to the customer why I would do things a certain way or why I think something might not be a good fit. I listen to what the customer has to say (something many in my field seem to not understand) and try to come up with something that fits well for THEM, not for my bank account. I have had multiple people from various companies I have worked with tell me that they really appreciated my honesty and I typically get great customer satisfaction reviews, even if the project doesn't go that well.

To me it really is as simple as don't be a dick.

</comment><comment><USER77> As a consultant and advisor, I add value in the sense that I move my clients forward very fast, whatever they need at the stage they are. Need strategy? We devise a plan together. Need sales? We make calls together. Need r&d? I have a network to rely upon. Need introductions? We have a look at the sector and agree the approach. Need a deliverable? We have a look at capabilities and try the shortest path to put out something for sale. Need services? We test the market together. Blowing away = moving forward efficiently, safely and as soon as possible. That said, the ultimate problem everywhere is sales, so just help clients sell their sh*t and they will be happy, very happy, very very happy.

</comment><comment><USER78> Hand written christmas cards are always a big hit.

</comment><comment><USER79> I am the web developer/web designer that usually picks up where other web designers left off or "disappeared". They usually leave without a trace or they leave their client with a broken website. I also take them from being charged a fortune down to being charged a much fairer price. I know I could probably continue to charge them a fortune, but I just don't do that to people. I tend to go after people who are on a "shoe string" budget. I mean.. I charge them enough that I'm being paid for my time, but I am willing to work with their budgets.

I also offer something that I find most web people don't: I offer them good customer service. I answer my emails within 24 hours and I pick up my phone usually when they call or I get back to them asap. I try to give them a reasonable price and I expect payment upon delivery of my invoice.

I have just a few clients, but I've never had issues. And most of the time that is what my clients have confirmed that I have offered that no one else offers: customer service. It's just being extremely supportive. They want to know that someone is there when there is a problem. There is nothing worse than the feeling of running a business.. and knowing that you are screwed or worse -- you have to pay someone you don't know a fortune in an emergency situation.

</comment><comment><USER80> On our real estate listing / brokerage site, we have a "GET MORE INFO" button on every property. When a user hits that they'll get an automated response with a title report, but then our agents will follow up the same day with a short note about the property and any additional info we can find. The human follow up tends to be a magic moment and if our agents are able to provide some juicy info, the customer usually sticks with us for their purchase.

</comment><comment><USER81> Mobile app development - releasing a binary download (MVP) in a few days which delivers the bulk of the clients required functionality.

Somehow, at least for (native?) mobile, the spec to implementation transformation still seems magical to many of our clients. I personally think it's the rapid turn around. It seems there's an expectation still that the development will take longer and thus the reaction?

<comment><USER82> I do this as well. Simple, rudimentary prototypes can be made in relatively no time flat. And it's never really that ugly anyway.

</comment></comment><comment><USER83> I spend a lot of time picking up existing and 'legacy' platforms, and it consistently seems to impress my clients when I'm able to implement automation, even on so called 'un-automatable' platforms.

I also think it's the ability to understand that the business and the technical elements may not always work in lockstep, and being able to translate the needs of one to the other.

</comment><comment><USER44> Obviously anything non-trivial. Lately i've been mixing version control with various things that haven't gotten that feature yet.

<comment><USER84> Could you elaborate on which various things? Interested to know

<comment><USER44> Another was version control for bom/assembly processes. They wanted a visual tool for showing the differences. Sort of like a diff tool, but all the files were shown instead of just two at a time. Also, who made the changes.

<comment><USER85> As an engineer currently migrating decades old paper records to an entry level ERP, this would be an amazing killer feature that would blow my non-engineer co-workers away.

Basic version control on product data without shelling out for a massive overkill PDM/ERP/CAD integration would make me pant with hot joy.

</comment></comment></comment></comment><comment><USER86> Overcommunicate. Even when things are going wrong.

<comment><USER87> *especially when something goes wrong

</comment></comment><comment><USER88> I wouldn't say "blows them away", but apparently, customer service is generally bad enough that these things often provoke a pleasantly surprised reaction:

1\. Make it clear that solving their problem is paramount. Not your policies, not getting off the phone ASAP. Sometimes it's something you can help them with directly with your product, sometimes you can't, but just treating them like a person you want to help instead of someone to hang up on is apparently unusual. (This is also a good fit for a lot of the techie folks on HN.)

2\. Send a handwritten note. My handwriting is terrible, practically illegible, but people like that I took the time to write to them with pen & paper. Ironically, I didn't do this for a long time, because I thought it would look cheesy, but I gave it a shot and realized I like the little bit of gratitude it brings into my day-- that's really why I do it.

</comment><comment><USER89> Not a developer but love technology: I began my organization skills by deconstructing simple BASIC games when BASIC was around as a pre-teen. Now, I'm hired to organize physical and electronic records, establish filing systems, workflows, and make physical records match the electronic records.

Create presentations that gather audiences' attention while not taking over from the speaker.

Desire to break into business analysis and have performed the work but not enough to make it official.

Past life created billing reports and client bills for a law firm. That took their THREE day billing process to less than one day on a sneakernet Access DBMS I designed.

Have also created feasible project and organizational budgets for humanitarian nonprofits.

Created an ad-hoc computer class for uneducated adults. Was told, "I've learned more with you in 15 minutes than a whole week at the community college." I purchased those computers for $4.00.

</comment><comment><USER90> Onsite engineers for UAT and rapid bug fix turnaround. Most bugs reported from customers, during UAT, are fixed by the next morning for another round of testing. This is not always the case, but for most issues, we turn them around in less than 12 hours and the customer is blown away.

This happens ~4 times/year for major releases.

<comment><USER91> Used to do the same for customer deliveries. At the beginning, it was embarrassing to even have issues come up at all. But then we realized that there was no way we were ever going to completely duplicate their environment, and something would always come up. We'd have to resolved by the next day, if not the same day. That's when you learn that customers don't care that there are problems; they care that there are solutions and that you are there to provide them.

</comment></comment><comment><USER92> Documentation.

I'm a sort of internal consultant in my company who often interfaces with external customers. I've repeatedly heard that no one else provides as thorough yet easily understood documentation. They value the results, but value truly understanding them and being able to follow how I got them almost as much.

</comment><comment><USER93> I get marketing, developers, content-people, biz-dev, product, higher management, middle-management ... in one room ... and after 2 days we produce a prioritized roadmap on how to move the company forward. Plus: No dead bodies, they actually liked beeing there.

Most of the time they can't believe it either. It's fun.

<comment><USER94> That sounds awful. How do you avoid dead bodies?

<comment><USER93> establish a framework of thinking that is outside of their usual modus operandi / way of thinking. so they are all fish out of the water .... together.

</comment></comment></comment><comment><USER95> At my last company, when someone sent a solid bug report, made a good pull request to our docs, or asked for swag, I'd send them some gear with a handwritten note and my card.

People went _crazy_ about the handwritten note and got thank you notes for the note! I think it was so different that it was a cool surprise.

</comment><comment><USER96> Wake them up from their general anesthetic. Never fails.

</comment><comment><USER97> Speaking as an independent IT consultant: Listening and trying to truly understand the problems they have (at least I try to do that as much as possible). Then solving those problems in perhaps unexpected ways. It might sound a bit trite but from my experience business software development often tends to get stuck in a rut and less than optimal or even harmful practices are perpetuated because "it's always been done this way". Cargo cult is an eminent problem in business IT processes that goes unchallenged far too often.

Effective knowledge transfer is another aspect. Not just coding up a solution but teaching others how to solve specific problems by themselves is highly valuable.

</comment><comment><USER98> Requirements analysis in UML blows a lot of my clients away, it lets them see the world in a different way for the first time. I don't think I'm great at it, shows how rarely this is really done for large institutional customers.

</comment><comment><USER99> What a great question. I find it's always the little things that do the trick!

Here are my top 2:

I have a simple motto: I aim to save my clients money. This can work in lots of different ways, shaving a day off development here or there, coming up with cheaper solutions, even outsourcing little tasks to UpWork or automating them via an existing web service.

#2: At the end of each week, I like to send a quick summary email. I got that tip from another freelancer. Even though clients have access to online project management, it gives them additional reassurance and they go into the weekend with a sense that you're doing good work on their behalf.

</comment><comment><USER100> When they send us an email, even a reply to a mass email, a real person reads every message and follows up. Simply thing, but people are routinely surprised.

</comment><comment><USER101> Organizing their 4,000 pg VA claims files that are essentially their last 30 years of private and VA health records (usually already organized by facility though), military service, military medical, and the VA claims process

The longer a claims file, the more I get excited because the chance of a VA error is already very high - in a 4,000 pg file I can guarantee at least one big one

</comment><comment><USER102> Ask them the questions (about the project/problem) that they never asked themselves.

</comment><comment><USER103> Tableau vizs

<comment><USER104> DATEPART("weekday",...) is my best friend here. Usually sales, etc. on mondays are similar to other mondays and so on...

Maybe I am overly used to this; but customers are astonished seeing that kind of stuff...

</comment></comment><comment><USER105> Build better products and gracefully handle every scenario. I was always blown away by the attention to details Apple gives to its products compared to others. For eg. Just a video on stress testing water proof behavior of Apple watch

</comment><comment><USER106> I do bespoke personal support. I always solve their oddest problems. There's always a way, somehow. I'm available 24/7, for those 4am calls from Singapore. In return, they are very loyal.

Sounds like I'm bragging - maybe I am.

</comment><comment><USER107> I have created an app and site where they can see when I arrive.

I have a big success rate in winning bids. I'm not a sales man, I can help them and a proposal is discussed immediately and i just start

</comment><comment><USER108> The funniest thing I got in a package was a pair of earplugs that Moog Music included in their Minitaur bass synthesizer's box.. I found it hilarious

</comment><comment><USER109> Show that you care and build trust. If you are looking for hacks then knowing everyones names before an important meeting is efficient.

</comment><comment><USER110> Listen to them. As a consultant this is the key, understand the customer first to provide them unique, tailed answers.

</comment><comment><USER111> Installing Adobe Reader.

I'll see myself out.

<comment><USER40> do you install google ultron as well?

<comment><USER112> Chromium Portable will work as Google Ultron in a pinch, the blue icon really seals the deal.

</comment></comment></comment><comment><USER113> Finish on time and under budget

<comment><USER114> all that tells me is that you're not charging enough and you're working too hard. (KIDDING! KIDDING!!! ... or am I?)

<comment><USER113> Oh no I'm not working too hard, that's for sure. I'm half retired by now.

And getting it done early - means they're very happy and send more work my way. I have more work than I can do.

</comment></comment></comment><comment><USER115> Consistently deliver things quickly and for less effort than competitors.

</comment><comment><USER116> Listen.

</comment><comment><USER117> Reply to their emails in an timely manner.

<comment><USER118> We're not setting the bar here very high are we?

<comment><USER119> It's a little thing, but it's surprising how many people don't - if you've got a lot of work on and a someone's emailing you about something that isn't a priority at the time it's far too easy not to bother replying immediately. It's much better for your client if you just take 20 seconds to shoot back an email to manage their expectations explaining that you've seen the email and you'll aim to take a look and get them a response in the next x days/hours/etc

</comment></comment></comment><comment><USER120> Fix bugs in under 2 hours ...sometimes

</comment><comment><USER121> Use CloudFormation to do anything.

<comment><USER122> Hey, you should check out Terraform ( I am not affiliated, but a happy customer)

<comment><USER121> I have, it's great. Both are things that customers find amazing. :)

</comment></comment></comment><comment><USER123> WE DOCUMENT OUR API'S

<comment><USER124> Not all in caps, surely?

</comment></comment><comment><USER125> Sounds vulgar.</comment>


JavaScript is the future - <AUTHOR> https://www.facebook.com/notes/ch%C3%A2u-h%E1%BB%93ng-l%C4%A9nh/javascript-is-the-future/10155185629657871/ <comment><USER2> Typical rant. I doubt that guys has real computer science education. If he had, he would know it's not about language. You can write terrible and beautiful code in any language. Maybe he is just jealous that languages like js opened door for many new programmers.

</comment><comment><USER3> That article was pretty terrible even if English isn't the author's first language.</comment>


Deis announces Docker Swarm technology preview - <AUTHOR> http://deis.io/deis-1-6-docker-swarm-tech-preview/

<comment><USER2> It is really exciting to watch the evolution of Deis. Been following since around 0.8. I value the way you guys interact with the community and hope projects like this continue to help shape the way we use containers.</comment>


Rounds aims to expunge 'offensive' Native American laws - <AUTHOR> http://www.washingtonexaminer.com/rounds-aims-to-expunge-offensive-native-american-laws/article/2613604 <comment><USER2> I would expect many department heads and politicians are taking inventory of obsolete or outdated laws and regulations that can be repealed aor taken off the book. Federal agencies in particular, in compliance with the "add one, remove two" EO on new regulations must be compiling exhaustive lists of regs that can be served up to "pay for" new regs.</comment>


The Endurance Running Hypothesis - <AUTHOR> http://seedmagazine.com/content/print/the_running_man_revisited/

<comment><USER2> Life of Mammals persistence hunt: <http://www.youtube.com/watch?v=9wI-9RJi0Qo>

<comment><USER3> Amazing. It's also notable how most natural hunters almost always pay respects to their prey.

</comment></comment><comment><USER4> > but in order to accelerate, a deer goes anaerobic, while the man remains in > an oxygenated jogging zone.

Anaerobic exercise is where you get close to red-lining your body's limits.

The Ironman is arguably one of the most difficult single-day athletic event an individual can participate in. Training for the Ironman (2.4 mile swim, 112 mile bike ride, 26.2 mile run) requires at least one year of up to 20 to 40 hrs of concentrated training every week. The whole point of the training is to build your body's endurance such that when you do the actual race you do not go anaerobic. Even the people winning the race in 9hr times do not venture into the anaerobic zone while racing. Once you go anaerobic (lactic acid), your ability to complete the race (or even continue) goes seriously downhill. Going anaerobic is also the reason why most people cannot swim more than 100m without training (simply put - their technique is so bad that most of their energy is expended and wasted into fighting the water - so it's like running 100m sprints).

Also, check out the Marathon Monks of Japan. 84km/day for 100 days.

<http://www.howtobefit.com/tendai-marathon-monks.htm>

<comment><USER5> As a three-time ironman finisher (Wisconsin '04, Lake Placid '06/'08) this is spot on. The key is long, slow, boring training, keeping your eyes glued to your HRM to stay <zone 4. It's also why a lot of first time ironman racers don't do as well as they trained for since they tend to get caught up in the moment and go too hard, go anaerobic, and spend the rest of the race paying for it.

</comment></comment><comment><USER6> A friend of mine who keeps a small flock of sheep as a hobby swears by the run-them-down technique. He doesn't have a sheepdog and sheep can be difficult to catch for a human. But he says that if he is prepared to chase one sheep round the field for 45 minutes or so, then it will give up, even though he can never catch it in a sprint.

<comment><AUTHOR> _he says that if he is prepared to chase one sheep round the field for 45 minutes or so_

Your friend must not be a programmer. If he were a programmer, methinks he would just get a sheepdog, and save the 45 minutes.

<comment><USER7> Of course, he would also maintain the dog for two hours a day...

</comment></comment></comment><comment><USER8> If endurance running has significantly affected human evolution, why are there not more pronounced differences between men and women? Anthropological evidence is unequivocal, I thought, about the fact that men hunted far and women gathered nearby. So you would expect men to have evolved much higher endurance running traits that women, if their primary hunting technique was running animals down. Yet many of the modern ultra-distance runners are women, and last I checked my toes were shorter than most men's :-)

Yet bipedalism has effectively made human reproduction a nightmare (due to the orientation of the pelvis with respect to the birth canal). So if there is an evolutionary reason for bipedalism I would expect it to apply at least equally if not more to women. Naively, anyway.

<comment><USER9> Men and women have a lot more similarities than the males and females of some species, and we'd hardly be the first species where a genetic trait hurt one gender but helped the other.

</comment></comment><comment><USER7> The first thing that comes into mind is old Roman military. Infantry and long marches - on a regular basis they could out-march cavalry.

<comment><USER10> The same was true 100-150 years ago in the US. The US Army Infantry routinely marched 35-40 miles per day, seven days per week for weeks on end. The cavalry simply could not maintain that pace; it killed the horses.

</comment></comment><comment><USER11> Keeping track of where your prey has gone suddenly becomes a matter of putting pieces of evidence together to tell a story that is quite a bit more complicated than simply seeing them directly and running them down. If we are going to have physical adaptations, we should also expect cognitive ones.

<comment><USER12> [http://www.oreillynet.com/pub/a/network/2000/01/31/hacktrack...](http://www.oreillynet.com/pub/a/network/2000/01/31/hacktrack/)

</comment></comment><comment><USER13> This is intresting, since some health or fitness advocates has been saying that "no-one should run a marathon" (eg. Art De Vany: <http://www.arthurdevany.com/2005/08/top_ten_reasons.html>)

Still it isn't clear that marathon or any massive repentive excercise is ultimately good for you, but if humans are built for running, it might change my mind a bit towards running.

<comment><USER14> Top ten _excuses_. I'll tell you this for free, runners have longer, happier lives than couch potatoes.

<comment><USER13> There is quite a lot of space between being a couch potatoe and a marathon runner, on both cases probably the extreme is bad for you. Professional athlethes tend to have severe problems, injuries, joints operated once or several times by the time they retire in their forties. It's a hazard of the job, but should try to achieve the same hazards? I wouldn't.

People tend to think that primitive hunter-gatherers had so good health since they were excercising or were on the run all the time, but it isn't necessarily true. Hunter-gatherers actually had leisure times to sit by the fire telling stories, creating art or tools. Some todays tribes actually have lower or the same activity levels than us westeners(some studies: [http://wholehealthsource.blogspot.com/2009/01/exercise- and-b...](http://wholehealthsource.blogspot.com/2009/01/exercise-and- bodyfat.html))

<comment><USER14> Oh I agree, but most Marathon runners are doing 1 Marathon a year, if that. For many people a Marathon is a once-in-a-lifetime thing that they do and move onto the next challenge or goal. That list is ridiculous, you could make a list of worst-case risks for any activity and not do it.

The top athletes in _any_ sport won the genetic lottery to be well-adapted for that sport. Basketball players don't _train_ to get that tall... It's not reasonable to compare their training and competition volumes with average people. Even a full time professional Marathon runner only competes a few times a year.

Incidentally, if you show up to a Marathon (or a half-Marathon or even a 10k) and look around you, you'll see that 99% of the crowd look perfectly ordinary. If you saw them (us!) in street clothes, you wouldn't think they were anything unusual, certainly not super-athletes. A Marathon is not at all out of reach for the average person.

<comment><USER15> Some run far more than a few times a year... for instance Dean Karnazes. He once ran 50 marathons in 50 days as a promotion for North Face. <http://www.wired.com/wired/archive/15.01/ultraman.html>

<comment><USER14> Karno has amazing endurance and recovery but he's not a competitive Marathon runner - his best Marathon time is 3:00:30, compare that to Haile Gebrselassie in 2:03:59. Geb competes once every couple of months on average.

</comment></comment></comment></comment></comment></comment><comment><USER16> Another good book is _Why We Run: A Natural History_ , by Bernd Heinrich, a biologist who studied insect physiology, wrote many books about natural history, and held several American ultrarunning records. The book is half memoir and half natural history, and it's a quick and fascinating read.

</comment><comment><USER17> And yet all this research and hypothesizing doesn't end with grabbing one of these super marathon runners, taking him to the wide open plains of Utah, and asking him to bring back a dead antelope.

<comment><USER18> "grabbing one of these super marathon runners, taking him to the wide open plains of Utah, and asking him to bring back a dead antelope."

you might need a tracker for when the antelope goes over the horizon/out of sight. Most ong distance runners would be clueless about tracking prey. Maybe the tracker can drive/cycle alongside the runner in a hypothetical experiment.

<comment><USER17> I suppose darting the antelope first and attaching a radio direction beacon would be cheating.

<comment><USER18> "darting the antelope first and attaching a radio direction beacon"

well, If you don't want to model how much the hunter recovers during periods of relative rest ( slower-than-running-time-spent-in-tracking this would be additional resting time for the prey as well I suppose) you could do it that way.

Does anyone in HN know of what kind of mathematics would be needed to set up a simulation like this?equations for rates of exhaustion/ speed loss over time etc?

<comment><USER19> You can easily model something like this with regular old ordinary differential equations in Mathematica or MATLAB. The hard part would be gathering the data to design realistic equations.

</comment></comment></comment></comment></comment><comment><USER20> It seems that Mr. Hawks, the critic toward the end, is somewhat confused about evolution, expecting traits to disappear once they become no longer useful.

His second assertion, from the finding that toe length does not affect walking, strikes me as completely nonsensical even considering the above confusion.

<comment><USER21> I thought that was strange too. But even more strange is his job description: "researches the acceleration of human evolution since the advent of agriculture".

Acceleration? I was under the impression that once the food problem was solved, evolution slowed dramatically. In fact I thought it had basically stopped thousands of years ago, apart from obvious things like "impotence is selected against", or "luxury evolution" like selecting against extreme ugliness.

It makes no sense. Tools and farming remove selection pressure _per se_ , and if that's gone we just stay as we are, not slowly "revert", or whatever he's imagining.

</comment></comment><comment><USER22> One of the basis of evidence for this about spear use is very misleading. We have no idea how long humans have been using wooden spears since they don't preserve. But since chimps do, it is possible we have been for millions of years. [http://www.washingtonpost.com/wp- dyn/content/article/2007/02...](http://www.washingtonpost.com/wp- dyn/content/article/2007/02/22/AR2007022201007.html)

</comment><comment><USER23> Amazing!</comment>


Convert first month sales  - <AUTHOR> http://www.taptaptap.com/blog/convert-first-month-sales/

<comment><USER2> So 100000 people _need_ a unit converter on their phone? Seriously? I "need" one perhaps once a year, and then I just use Google (which would be available on an iPhone, too). (Need as in "hmm, gee, I wonder what x is in y", not as in "oh my god, I need to know this ASAP!!!").

I think there is another story hidden there - taptaptap has become so famous that people just buy whatever they put out there. Good for them, but hardly something to draw parallels from.

<comment><USER3> Only being 99c helps. Who cares, if it is only 99c, you probably spent more on coffee in the last hour, or at least a lot of people have.

I think the big attraction is the great design. it is a beautiful looking app. There are plenty of free apps that do the same thing, but loop rubbish. People pay for beauty, otherwise that $10 hooker down the road would be laughing.

</comment></comment><comment><USER4> I think this is the first time I've understood some of the path to profitability for the iPhone App Store. It's not about making a great app and keeping it up forever. It's about having a hit, milking it for all it's got, then moving on to another app. Even if your app barely took off at all.

For another example, look at Tapulous. They started off with a bunch of small apps, and one of them, Tap Tap Revolution, took off. They've turned that into quite an app with numerous versions. Note that it's not just updates to the app but a bunch of more limited, artist/genre-focused apps. This kind of stuff is the key.

<comment><USER5> I think having the right PR chops is a huge benefit - visibility is so difficult. Building product anticipation is the key there I think. It is really hard to time things right with the app store approval process so I'm curious if they got their apps approved first and delayed the release date until building enough interest.

Regarding the milking/moving on - one of the most frustrating parts of iphone app dev is the incredibly long feedback loop. The app store means you aren't agile and can't respond to customer feedback as fast as you'd like. I think you're dead on with the model Tapulous used - cast a wide net, nurture what works, and milk the living hell out of it until it dies.

<comment><USER6> Surely you could use ad-hoc beta for feeback loop?

<comment><USER5> 100% Yes you can and should use ad-hoc testers. I think the real problem isn't in finding bugs, but in changing direction/adding value which isn't always surfaced in QA.

The hard part is that if we assume the "live fast/die young" model it becomes increasingly difficult to change/grow the further we get from launch since we are falling further below the more recent apps, below more recent items on blog, social bookmarking, and pr sites, and our buzz is wearing off. Unless we can re-invigorate the buzz the work put in to updating the app might be better spent creating version 2 (w/ it's own buzz and launch) six months down the road.

</comment></comment></comment></comment><comment><USER7> I agree with you Tichy, it often seems hard to believe that what people spend their money on, but the numbers are nothing to scoff at. I'd be interested to know if the sales numbers for a hit and run product cycle are linear or asymptotic, as in, will they get $130k, and then $110k out of it in months 2 and 3, or will the falloff be much sharper, say $100k, $70k, $20k etc etc? It seems like if revenue diminishes rapidly, it's an absolutely brutal and cutthroat market, not one that I'd like to be in. However, if marketing efforts can keep the app riding high for a few months, the proposition looks a lot sweeter.

Regardless of the sales falloff, nice work guys, and congratulations.

</comment><comment><USER8> Good article, I remember seeing these guys awhile back with their first couple apps. They definitely have it down, useful tools with user friendly designs.</comment>


Introducing the Open API Initiative - <AUTHOR> http://swagger.io/introducing-the-open-api-initiative/ <comment><USER2> Do API docs actually provide much benefit in practice? Does anyone actually use Javadocs, for example? The problem with documentation at this level is that it's too low level. It useful, maybe, as a quick reference once you already know the project.

</comment><comment><USER3> How does this compare to JSON API? [http://jsonapi.org/](http://jsonapi.org/)

Is this a competing standard? I'm getting fairly nervous about the rise of competing "standards" with APIs.

<comment><USER4> I'm less familiar with JSON API, but at first glance it looks like a standard around JSON response bodies for APIs.

Swagger's standard API definition is external of your actual API responses and is used primarily for API docs and can be used for auto generating API client libraries/SDKs.

Here's an example:

[https://github.com/OAI/OpenAPI- Specification/blob/master/exa...](https://github.com/OAI/OpenAPI- Specification/blob/master/examples/v2.0/json/petstore.json)

</comment></comment><comment><USER5> Relevant XKCD: [https://xkcd.com/927/](https://xkcd.com/927/)

<comment><USER6> Except this is not a new standard. OAI is swagger, converted into a more open standard than before.</comment></comment>


Compress Objects, Not Cache Lines: An Object-Based Compressed Memory Hierarchy - <AUTHOR> https://dl.acm.org/citation.cfm?doid=3297858.3304006 <comment><USER2> Any chance to see this work to be included into OpenJDK ([http://openjdk.java.net/](http://openjdk.java.net/))?</comment>


LG and Wikitude team up to launch 3D augmented reality browser - <AUTHOR> http://www.androidcentral.com/lg-and-wikitude-team-launch-3d-augmented-reality-browser

<comment><USER3> Glasses-free 3D as per the Nintendo DS works well enough, I guess - <USER2> viewing angle and all that. When it comes to augmented reality, though, it's not really what you want.

A _real_ innovation would be to bring glasses-only 3D to market - ditch the phone altogether. You could still project a phone-like interface onto the palm of your hand (or a piece of paper, or...), but I imagine eye-tracking interfaces would win over pretty quickly.

Come to think of it, why haven't eye-tracking interfaces made it on the phone already? I suppose dragging might be hard, but it'd beat a touch interface hands-down (hmm) for simple pointing and clicking.</comment>


How Al Gore Got Romney-Level Rich - <AUTHOR> http://www.bloomberg.com/news/print/2013-05-06/gore-is-romney-rich-with-200-million-after-bush-defeat.html

<comment><USER2> Hunting Man-Bear-Pig is a profitable venture. Who knew!

</comment><comment><USER3> "Romney rich"? Seriously?</comment>


TheRealURL: URL Un-shortening Web Service With JSON/P Support - <AUTHOR> http://therealurl.appspot.com/ I built it initially as a joke, but perhaps it might actually be useful in some cases (eg, Twitter clients). Would love to hear HN feedback on possible applications etc. <comment><AUTHOR> I built it initially as a joke, but perhaps it might actually be useful in some cases (eg, Twitter clients). Would love to hear HN feedback on possible applications etc.

<comment><USER2> Are you storing the results in the Datastore?

<comment><AUTHOR> Right now, its all live. I'll probably add it later on, if it gets enough use that it makes sense. I wonder Google App Engine supports output caching, that might be even better performance-wise.

<comment><USER3> I believe GAE only supports caching on static directory resources. [http://code.google.com/appengine/docs/python/config/appconfi...](http://code.google.com/appengine/docs/python/config/appconfig.html)

<comment><AUTHOR> I just added it lookup caching - ended up using memcache, turns out GAE supports it pretty nicely: [http://code.google.com/appengine/docs/python/memcache/overvi...](http://code.google.com/appengine/docs/python/memcache/overview.html)</comment></comment></comment></comment></comment>