How I almost made a huge mistake in an exit interview - <AUTHOR> http://www.joshdoody.com/2015/02/how-i-almost-made-a-huge-mistake-in-an-exit-interview/ <comment><USER2> At every opportunity to burn a bridge, don't do it. That bridge might be rickety and you'd never cross again but it is a possible path in the future or maybe a recommendation that brings in some other bridge to cross.

Exit interviews just gracefully decline or say the good things that happened at work, I am sure over time there was some gained experience.

If you truly don't like the place and they did things that will lead them to their ultimate ends, just let them. You are leaving, you are free, it isn't your problem, you tried to help when you were there. Nothing amazing will happen with words if you couldn't change it with actions in possibly years of work.

</comment><comment><USER3> The most important thing you can learn about working in a big company is that HR exists to work for management, not you.

So take the exit interview (and all other HR interactions) with that in mind.

<comment><USER4> You are precisely correct. Said another way, HR exists to protect the company from you.

One of the hidden purposes of an exit interview is to "lock in" your story before you leave. For example, if you say in your exit interview you are leaving because the commute is too long it will be harder for you to credibly say a year from now that you left because your boss was sexually harassing you.

</comment></comment><comment><USER5> One place I left I "named names" during an exit interview. I know it didn't help right then, but I also know I wasn't the first, and I told colleagues that I named names. After a couple more people left, they also named the same names. Many months later, there was a bit of a cleanup, and the named names were dealt with. I almost wanted to go back because by all accounts it was a much healthier environment after the named were let go.

<comment><USER6> There are at least ten great engineers who've left my current company at least partially because of a single toxic individual.

Every one of them decided to be 'professional' to not 'burn bridges' and they did not name names. The toxic individual is still there. He is still incredibly powerful, and he is still destroying value left and right.

I really, really wish they'd named names. Right now management knows that they had ten undesirable voluntary terminations. They don't realize that they all have a single primary contributing factor. As such, there's no possible way the problem will get fixed.

<comment><USER7> Is that person a manager? If not, how doesn't his manager not notice his impact on other individuals to a point where ten people leave the company?

<comment><USER8> The toxic person was hired by the CEO and predates his manager.

The toxic person was likely valuable early in the company's history (he's great at throwing together prototype-quality code), and that reputation makes him hard to fire.

</comment></comment></comment></comment><comment><USER9> _Well, that could've been awkward. If I had written what I really wanted to say in the exit interview, our final conversation could have gone much differently._

So? Leaving a company is always uncomfortable. And you're _leaving_. Who cares if your parting conversation with your ineffectual boss is a slightly worse experience?

 _If I had been harsh in my exit interview, what could have happened? What might my old boss say if he was called to verify my previous employment?_

This seems like much anxiety over theoretical possibilities.

It seems to me that people's attitudes toward hiring would utterly doom anyone who has ever had an incompetent, a-hole boss. Personally, I've found that employers who actually want me will hire me on the spot. Ones who want to dink around with references and confirming employment history have proved to be wishy-washy and overly cautious in everything. If someone wants to chat with your last employer, expect them to be reluctant to approve that new machine you've been asking for all year.

<comment><USER10> I agree with saying it as it is. Also: don't you think that this "system", whereby nobody is supposed to say what they really think, either in these interviews, or in giving references, is deeply counter-productive and demeaning to all concerned? Things did not always used to be this way.

I don't care for the high sounding "rights" justifications. What about the most basic right of everyone to speak the truth as they see it?

Clearly, it is better not to needlessly exaggerate any criticism. Nevertheless, it works both ways. If a leaving employee has only positive things to say, I know he is being disingenuous - and if some friends ask about him/her, I would actually be far less likely to recommend such an "a.se licker".

<comment><USER11> A lot of the hiring process seems to be about making sure you'll write/say the correct lies.

Look at common intro paragraphs for résumés. They're horse shit, and everyone knows it, but deviate much from the usual "dedicated team player who blah blah blah" and it goes in the bin. Doesn't matter that it's horse shit—it matters that you follow convention.

"Where do you see yourself in 5 years" -> honest answer in 99% of cases is "I don't know, but odds are it'll be more or less the same place as now but slightly richer and fatter". You cannot say this. Doesn't matter that it's true.

"What makes you want to work at our company?" -> honest answer in 99.9% of cases is "it pays enough money and seems less awful than my other options for performing activities that pay similar amounts of money". You _really_ can't say this, and even a heavily buttered-up (that is, coated in bullshit) version isn't likely to pass muster. Lie or GTFO.

Not telling the expected lies is a great way to end interviews, or never get them in the first place. The only actual purpose it can possibly serve, that I can think of, is to weed out some of the crazies and eccentrics very quickly. Someone more conspiracy-minded might come up with a bunch of stuff about how it ensures the applicant is sufficiently cowed by this horrible economic machine we all serve, but I suspect the situation is more of an accident than anything with much intention behind it.

Yes, yes, there are exceptions, but this is the reality that the mass of employment-seekers face most of the time. Tell the right lies or go in the bin. One of the more shocking and difficult-to-cope-with elements of adult life if you're brought up to value honesty. Try to talk to people about it and many seem to become confused. "But that's just what you put on it. Here, you need to add something about how you're a self-starter." Sigh.

[edit] I would add that the "why do you want to work here?" question carries the bonus stupidity/uselessness-factor in that no place where someone wanted to work for reasons other than just money and it being less shitty than the other options would _ever_ feel the urge to ask it. SpaceX doesn't have to ask. They launch fucking rockets in to space. You sell ( _e.g._ ) Point of Sale software, so you ask because there's no obvious answer other than "you pay money, I want money". It's a question dripping with insecurity.

<comment><USER12> > "Where do you see yourself in 5 years"

My stock answer to this is to quote Carl Sagan and say that prophecy is a lost art.

Maybe if enough people start giving that answer, employers will stop asking this incredibly stupid question.

</comment></comment></comment></comment><comment><USER13> Is there any point in doing an exit interview? It feels a lot like Miranda rights - "anything you say can and will be used against you". Note: not for you.

If you work somewhere good, then you will presumably have tried to change things before leaving. If you work somewhere with issues, then the exit interview won't change anything.

<comment><USER14> I think it's an opportunity to cast your employment in a good light, leave on a positive note (maybe that's even true in a lot of cases), and maintain your relationships.

I certainly don't see any value in venting or burning bridges - you've already quit, now let it go; ranting doesn't do you any favours, even if it feels great.

<comment><USER13> I meant the alternative of not doing one at all. As opposed to venting, or trying to change things. Even if you try to be positive it is problematic.

Firstly if you are so positive, then why are you leaving? Secondly even only being positive means you leave things out. How is someone going to feel when they read it, and see you don't mention them or mention them enough.

The good light/positive leaving can be better accomplished by your farewell email, as you get to choose who it goes to (most likely far more people than just the exit interview) and you can put in it whatever you want.

</comment></comment></comment><comment><USER15> I disagree quite a bit with the advice left at the bottom. It seems many people equate "being honest" with "being a jerk".

You can still provide very honest and valuable feedback when you exit a company, without being a jerk. If the move is really about you, and nothing that the company can or should change, then that's fine.

But if there are things that the company did to cause you to leave, or if a once great company changed directions and started diverting from what you considered an awesome place to work, then you are only hurting those you leave behind when you "focus on yourself" and not "focus on others or the company".

If you're exit interview is with HR, then it may very well not do any good. But if you're tactful and constructive with your feedback -- even if it is about things the company could change -- then it _shouldn 't_ hurt you. And if the interview is with someone above you -- or if it falls in their hands -- then it could very well benefit the company and the people you leave behind.

If I were your ex-coworker, I would be disappointed that you didn't take the opportunity to help improve the culture I'm still a part of. If I were your manager, I would want you to be honest so that I can improve the culture to attract better talent going forward.

If the company/people you work with don't handle constructive feedback very well, then that's their problem and not yours.

My advice: Be honest, but professional and constructive about it.

<comment><USER16> > You can still provide very honest and valuable feedback when you exit a > company, without being a jerk.

You could also spruce up the decor a bit before you walk out the door for the last time. But, why?

<comment><USER17> Because it is a frighteningly small world?

<comment><USER18> It's small if one is geographically constrained or one has risen up to a certain point on the promotion ladder.

Beyond those factors I am skeptical that it's worth worrying about whether a past manager will have anything bad _or_ good to say about a person.

Even if the chance were worth considering, I think one would do better to view it as a negative signal if a company makes the decision to not hire based on one bad or negative reference. It means the company was looking for _any_ excuse to not hire the candidate, and it seems very likely in that case there wasn't _really_ a good fit. This of course assumes that negative experiences are (relatively) rare. There are people who just can't help but torch the place everywhere they go, but no advice really applies in such extreme cases.

</comment></comment></comment></comment><comment><USER19> I think if you treat this situation like the lords and serfs, then yes, you should probably not be honest with yourself. You should definitely not make any trouble, ruffle any feathers, avoid 'staying foolish'..

But if you think of it in the reality of your life and you are your own master, then you owe it to yourself to be honest and say what's on your mind. This isn't illegal (yet) and yah, you might run into someone who knows someone in the lords network.. But, is that the way to live?

I'm not saying to be rude or insensitive or a jerk on the way out. But once you realize a place isn't for you, then why does it matter what they say or think. Does Mark Hurd care what anyone connected to HP thinks? (Granted, he's an extreme case and if only we didn't have to play by the rules too..)

If you're leaving a place where there were people that were jerks, then sure, it's up to you to tone it down or turn it up. I've seen a lot of both kinds of exits and the people I know that turned it up were never ostracized and denied good jobs later. In fact, most found great jobs that could stay with for a long time.

</comment><comment><USER20> I'm all about not burning bridges. I'm also all about not being afraid of confrontation.

It sounds like this article's main reason to avoid being HONEST is to avoid the confrontation that be a product of being honest. Yay passive aggressiveness!

ZOMG SOMEONE MIGHT READ MY FILE AND BE UPSET BECAUSE I CALLED THEM OUT.

In reality, if you haven't been honest and confronted the negatives in your job by the time you leave, this is actually pretty good advice.

Life is too short to hate where you work, what you do, or who you work with. Not happy? Put plans in motion to change that. Don't hide from reality. Embrace the confrontation, you'll be happier and in a better place because of it.

<comment><USER16> No, it is much simpler: there is no upside, and only downside. This is like saying that when I walk down the street and don't pick fights for no reason, it's because I'm conflict-avoidant.

</comment></comment><comment><USER21> This is so counter to how I've approached exit interviews. I try to give as much concerned criticism as possible. And commendation on the things done well, if course.

Why? To make the place better for the friends I'm leaving. And presumably you like some of the management, so also to help them run a better company.

I can't quite understand the defensively posturing, so I'll assume it's that I've been lucky enough to work in the sort of environments where I feel comfortable saying the things above :)

</comment><comment><USER22> I always conduct exit interviews in person (how on earth would it be possible to conduct an exit interview _anonymously_!?). Often I have to press and poke and ask the same question 10 different ways before I actually get to the real meat of what the person wants to tell me. People naturally want to leave a good impression, they don't want to rock the boat, even if they've had a terrible experience. I don't want to hear your canned responses about getting a better opportunity elsewhere. I want to know why _this_ company isn't that kickass opportunity. I what to know where and when we went wrong so that I can _improve_.

The article mentions

 _" If I had written what I really wanted to say in the exit interview, our final conversation could have gone much differently"_

Yeah! With the sanitized responses, this conversation is just wasting my time. With the _real_ responses, I can actually respond to your feedback and make the job better for the next guy.

<comment><USER23> If an employee is leaving, why should they risk a negative reference in order to be candid with you? There's absolutely nothing that they can possibly gain from participating at all, let alone being honest.

<comment><USER24> Do most people not line up a new job before leaving the last one? And my referees are specific people from jobs, rather than the company at large, and I'd not be asking someone I didn't respect to be a referee.

<comment><USER23> When HR/Recruiters check references, they do not always restrict themselves to the list of people that you give them...

</comment></comment></comment></comment><comment><USER25> The easiest way to avoid making mistakes in an exit interview is not to participate in one. You're not obligated to do an exit interview, and nobody takes it personally if you don't.

<comment><USER23> Agreed. You have absolutely nothing to gain by participating in an exit interview.

<comment><USER26> It has the potential to benefit your friends still working at the company though, right?

Especially if the same themes crop up in multiple exit interviews, hopefully someone in management can change the issues facing people leaving.

<comment><USER25> I think user drawkbox says it best in his post:

"Nothing amazing will happen with words if you couldn't change it with actions in possibly years of work."

This is it. Plain and simple.

</comment></comment></comment></comment><comment><USER27> This really feels familiar for me. I was emailed an "anonymous" survey when leaving a Big Corp, and filled it out honestly and mostly positive.

Of course they bring up my answers in the exit interview, and when I told them "I thought that was anonymous." they told me, "Oh it is, only HR is allowed to see it. We remove the names from the surveys before we send it to [the boss]."

Of course turnover is low enough there that the boss could easily match the responses to the employees. So essentially, the "anonymous" aspect is a giant lie. Wish I could go back and amend the anonymous survey to tell the what I think about companies which lie to their employees, even if said employees are on their way out.

<comment><USER28> You can post a review on glassdoor or similar site.

</comment></comment><comment><USER29> What? At my last exit interview, I told them (HR) that the boss was a poor communicator, incompetent technically, and didn't know how to manage a project.

They asked me if I'd consider working for another team.

I laughed.

</comment><comment><USER30> This logic should also be applied to when past employees call for references. Never give a statement, refer the person calling to your corporate HR department. Your company most likely has a policy for this, in addition if you say something you are not supposed to legally you could open yourself up to a heap of trouble. INAL but I've sat through enough corporate HR presentations to have this hammered home and hopefully can share this with startups who haven't had the benefit of an experienced HR team.

<comment><USER31> Yet companies still ask for references from supervisors, even companies that have this very policy in place.

<comment><USER32> That's because, as far as I know, a supervisor won't get in trouble for saying "Jim was the brightest employee I've ever had, which we could have kept him". And by referring the caller to HR, that is a closet way of giving a negative reference.

<comment><USER18> And if the former supervisor has an axe to grind his implicit negative reference doesn't mean much.

Add to that the fact that employees carefully cultivate positive references and you have just one more reason why references are a poor indicator of basically anything.

</comment></comment></comment></comment><comment><USER33> The standard advise is to _never_ do an exit interview!

[http://www.asktheheadhunter.com/haexit.htm](http://www.asktheheadhunter.com/haexit.htm)

<comment><USER34> That's only half (or less?) the article, the rest is apparently locked away in some "Amazing Secrets of HeadHunting" book that I "must buy". I'm half- surprised it didn't try to tell me about some "Revolutionary New System for Increasing my ..." you get the picture.

No thank you, it was an interesting read while it lasted.

</comment></comment><comment><USER35> BTW - as someone who's in the financial industry (i.e. not software development), it's shocking to me that companies ask for references from prior employers. Positive feedback is obviously helpful, but there's a huge incentive for false negative feedback. It's just really unimaginable why that would be seen as a reliable source.

<comment><USER36> It is pretty standard to give good references to bad employees in order to make one's competitors suffer their incompetence. Likewise all things being equal one does not want a great employee leaving to work for a competitor. Overall this is widely understood so nobody pays any attention to references.

</comment></comment><comment><USER16> I feel it's best to not really say anything of substance. You're not there to proffer advice, and it's not like they are disposed to listen to (what will be perceived as) the disgruntled ramblings of someone who got fed up and quit. To them, when you quit over problems in the organization, it doesn't mean they need to change, it means you "couldn't handle it".

Basically, offer them your consulting services if they are actually interested in fixing their problems (spoiler: they're not). Everything else, keep it super anodyne and say the functional equivalent of nothing.

</comment><comment><USER37> Would it really have been a mistake? Someone who'd lie to you in that way doesn't seem like someone you gain a lot from being on good terms with.

</comment><comment><USER38> Go on LinkedIn and browse through your old bosses' networks. Everyone knows everyone.

Another point: Companies are most willing to listen to feedback from the people they like. If you are a superstar and leave because the work is not challenging then management will take notice. If you whine about the job being boring everyday then management will write you off as a chronic complainer.

<comment><USER39> > Everyone knows everyone.

Oh God, this.

Microsoft stack consultants in New York City. You'd think "a few million people live here..." but if you're in your 50's and have been in this game for awhile, you'll know the heads of your competitors. This is doubly true if you present at user groups or meetups.

</comment></comment><comment><USER40> How can the exit interview be anonymous? It's not like whoever's reading it doesn't know it's you leaving.

</comment><comment><USER41> Atleast your manager did not show up un-announced in your exit interview with the HR! Mine did :)

</comment><comment><USER42> Don't burn bridges, but please give honest, constructive feedback.

A good employee left recently and gave honest criticism to how projects were managed and other deficiencies that meant myself and others still had a lot of room for improvement.

</comment><comment><USER43> The first mistake in an exit interview is taking the exit interview.

</comment><comment><USER44> Never ever under any circumstances whether an employee or a contractor agree to an exit interview. There is nothing for you to gain.

Take the lady's advice and just say NO!

</comment><comment><USER45> "Yes, I could tell you what your problems are and how you could make the workplace better, but then I would have to charge you as a consultant....."

<comment><USER23> My consulting rate is 4 * equivalent_hourly_rate(old_salary) dollars per hour.

</comment></comment><comment> d--b You're right, better do it on the internet and post on hacker news. More impact that way</comment>


Obama to propose plan targeting patent trolls - <AUTHOR> http://www.tuaw.com/2013/06/04/obama-to-propose-plan-targeting-patent-trolls/

<comment><USER2> I like this - it sounds like it's just adding transparency to get rid of the legal mind-games and intimidation. I had feared was that the plan was to effectively stop honoring patents under certain conditions. Although that would certainly be great in this specific situation, it presents a scary idea that rights or property* can be nullified after you've paid for it.

More transparency and openness is good - not only in this case, but in almost all others.

* And yes I know the meaning of the term "property" in IP is frequently debated on HN.

<comment><USER3> IP is a case of the government forbidding you from using the matter and energy you own in certain ways. I never understand libertarians who love government- granted IP rights.

<comment><USER2> As a bit of a libertarian myself, I think I have two points to add. First, IP doesn't (I think) and shouldn't ever stop you from doing whatever you want for yourself. I can infringe all the patents I want if I'm using my matter and energy to make stuff myself. When it becomes commerce, that's when the government steps in. Which brings me to my second and harder-to-explain point. I'm still thinking through this myself so healthy debate is welcomed :) Libertarians generally believe the government should exist enough to protect individual rights. They're okay with the government getting involved to stop one person from destroying another person's life or property. Although I'm all for innovation, I think there's a certain amount of lameness when people immediately steal another person's ideas just to compete directly against them. In such cases, I think a certain amount of IP is inherent and the government merely protects rights that already exist. I certainly agree with you that once patents can be sold multiple times and non-practicing entities can sue, this idea goes right out the window and I would completely agree with you. Even when I think it's just lame to take another's original idea and use it against them, I admit that lame != illegal, which is why I think it's a hard line to draw, and I'm not entirely convinced of my own opinion here - I'm just saying I think the increased transparency would be a definite improvement.

<comment><USER3> Why 20 years? That's entirely arbitrary. Regarding your point about commerce, and the 'lameness' of an arbitrary class of competition, libertarians should encourage economic competition. Why does it suddenly become "lame" when a competitor "steals" someone's idea? Implementation is just as important as imagination. If another guy can beat you to the market even after you have the innovator's head start, you deserve to lose.

<comment><USER4> I think it's because in the modern (say, post 1900) world, many inventions that increase utility (both for individuals and for everyone as a whole) cost a ton of money to research.

If your competition can instantly use that research, you may not recoup your costs, and thus have no incentive to do it in the first place. Drug patents are a clear example of this (although you might argue that altruism can also be a motive for researching drugs, in which case think jet engines or something).

Both individual and global welfare are improved if the drug is researched, but it won't happen without a government incentive; a drug has to be sold well above it's cost to produce + a small margin to recoup research costs, but it's possible for the competition to copy a drug once it's out and sell it for costs + a small margin and make a big profit.

20 years is arbitrary. In theory it's the number that the people come to as the best balance of allowing costs to be recouped without unduly hurting global utility due to monopoly, in reality it's a consequence of where lobbying takes us.

<comment><USER3> In general, I think patents slow innovation. My intuition is trade secrets would work well enough for most industries. It usually takes a significant amount of time to reverse engineer a product, and in doing so one might gain new insights into how said product can be improved. Drugs are an exception, I admit, but I don't think most of the innovation in medicine this century will be in easily-synthesized drugs as we understand them.

<comment><USER4> I think I agree with you, but I'm not so sure on the difficulties of reverse engineering.

Small electronics are a good example to both our points; once a new device hits a factory in china it's as good as pirated (sometimes it's pirated in the same factory after hours!), but that hasn't terribly hurt the companies cranking out cheap USB drives, and companies like Apple have just moved way the up value chain.

I do think they have significant use for things like engines and heavy equipment, where (everything but the metallurgy) is reversible, but they take $BN investments.

Software patents (and really all 'business method') patents are total trash, if only because the USPTO can't possibly keep up with the pace, so people get patents for linked lists (in the 90s!) and shopping carts and such.

</comment></comment></comment></comment></comment></comment></comment><comment><USER5> Anyone else find it ironic that the article opens with Apple being the victim of a broken patent system, when they have a long history of using the same broken system to their own ends?

<comment><USER6> Thus the problem with framing the discussion around patent "trolls" rather than patents themselves.

</comment></comment><comment><USER7> My vote, get rid of utility and design patents. Those are usually used for trolling and killing innovation.

<comment><USER8> Having seen quite a few design patents, and copyrighted designs, I'm not even sure where the line is between the two. Utility patents are the traditional patents in question (software and functional objects). I don't think you can get a design patent for software.

I'm all for utility patents, if the patent examining system is changed to get more help or advice from experts in the field, to more quickly find previous pertinent patents that could expedite invalidation of infringing applications, or decide if it's too broad.

</comment></comment><comment><USER9> I'm no expert on the US IP system, but it seems to me like a big part of the problem is that the USPTO grants patents for ideas which are both obvious and not novel. Some more ridiculous examples are the patents on making toast and the server patent mentioned in "When Patents Attack" where over 5000 patents for "the same thing" were in existence when that one was filed. Even then the patent was invalidated on the basis that the filer failed to mention his co- inventors rather than on the basis of prior art. I'm confused as to how those could ever get through the approval process in the first place, am I missing some finer points here?

<comment><USER10> The Carmack Reverse is an easy example software developers can understand. Paraphrased: "How can something that can be solved by a week of work by a professional in the field be something that can be patented?" Sure it's novel, but it only took an expert a week to re-invent by following a causal chain of reasoning about the problem.

<comment><USER8> This of course violates the purpose of patenting in the first place, to create and market something not obvious to those currently working in the field. The fact that the patent system is that broken is pretty chilling.

</comment></comment></comment><comment><USER11> Is it possible that the 2-part series by This American Life ("When Patents Attack") had a tangible effect here?

<comment><USER12> Not sure if it is what is prompting the Obama admin to issue the executive order, but it is worth a listen to anyone even remotely interested in the topic.

</comment></comment><comment><USER13> Also being discussed here: <https://news.ycombinator.com/item?id=5820657>

Split discussion, both on the front page.

</comment><comment><USER14> as usual, a lot of talking, proposing good stuff but 1% gets done.

<comment><USER15> When he does stuff, it's not enough (Obamacare) and it's too much (Obamacare); when he gets blocked, it's his fault it wasn't closed (Guantanamo) and he's threatening our freedom by trying to close it (Guantanamo); when he withdraws from wars he's cutting and running from our enemies (Iraq and Afghanistan) and he's a warmonger who isn't withdrawing fast enough (Iraq and Afghanistan).

<comment><USER16> To be fair, it's not the same people on both sides of each of your examples. I suspect every politician ever will be subject to completely opposing criticism from both sides.</comment></comment></comment>


RBA not fazed by Australian $50 note typo - <AUTHOR> https://www.watoday.com.au/business/the-economy/no-one-died-behind-the-typo-on-the-new-50-note-20190618-p51yqg.html <comment><USER2> "The graphical software package used by [Note Printing Australia] has no copy- paste mechanism and no spelling or grammar check. The text was manually typed in and misspelt at this point," according to a report into the error from the printing agency, dated January 11 this year."

<comment><USER3> Specialist software for industry can be absurdly shit sometimes. There are seemingly tons of niche software packages used in business that cost thousands per copy and lack even the most rudimentary features normally found in most software.

<comment> mark-r I don't know about other OS, but in Windows it's absurdly difficult to build an input mechanism that doesn't allow pasting.

<comment><USER4> You should try using Citrix remote connection software in a business environment :-)

<comment><USER5> Oh man, I just remembered that day ten years ago when I wanted to kill myself because of Citrix.

<comment><USER6> Oh the hours I spent on [https://www.brianmadden.com/..](https://www.brianmadden.com/..).

</comment></comment></comment></comment></comment></comment><comment><USER7> Not nearly as bad as the Canadian $20 note depicting a Norwegian maple leaf (7 points) instead of a Canadian maple (5 points).

<comment><USER8> Well, that one at least makes sense historically.

After all, we -Norsemen, that is- were there way before the British and French.

[https://en.m.wikipedia.org/wiki/L%27Anse_aux_Meadows](https://en.m.wikipedia.org/wiki/L%27Anse_aux_Meadows)

:)

<comment><USER9> Uhh but weren't the maple trees there before that?

</comment></comment></comment><comment><USER10> Best method I've ever used for spotting misspellings in what I write: read the words you've written from last to first. Reading in this order breaks the prediction your brain does on what it expects to read next and stops you from filling in the words yourself or simply recognizing them by "shape" instead of reading each letter.

Of course this does nothing for grammar or general flow nor does it help you if you've spelled the wrong word correctly.

<comment><USER11> I have text to speech read back what I've wrote. You'll immediately notice incorrectly spelled words and doubled up words.

<comment><USER12> If you have access to a computer, why not just use a spellchecker :)

<comment><USER13> Spellchecking isn't universal, and I've frequently found myself typing completely different words than I had intended, which are not misspellings. That would be picked up pretty quickly.

<comment><USER14> Case in point, it probably wouldn't have picked up this submission's title if 'phased' had been written instead as I commonly see these days.

</comment></comment></comment></comment></comment><comment><USER4> The funny thing is that this typo managed to pass through the inspection/review of so many different people. Related to the "copy & paste" between programs, this depends from which point of view someone looks at it, having to type/input information manually avoids copy&paste mistakes but on the other hand introduces human errors. That's the reason a good company should have reviews and a clear process for its software and documentation.

</comment><comment><USER15> Australian here: I've seen the typo, it's tiny.

It's part of the anti forgery features where they write large amounts of text on a building in the background of the note.

You literally need a magnifying to see this error

</comment><comment><USER16> perfect example of a wontfix.

the error truly doesn't matter.

<comment><USER17> Actually, they are going to fix in the next print run.

</comment></comment><comment><USER18> Unfortunate but at least it's in the minuscule "anti-spoofing" text. Might not even be visible to the naked eye

<comment><USER19> Until some eagle-eyed cashier tries to confiscate someone's "counterfeit" $50 because it has a spelling mistake

</comment></comment><comment><USER20> I love that the follow up email which is trying to figure out the blame of the misspelling has the word "thru".

<comment><USER21> The article's quote of the email is interesting:

> "It is spelt wrong all the way thru [sic] microprint!"

They'll [sic] the "thru", but the article image clearly shows that the sentence in question says "It is spelt wrong all the way thru _the_ microprint!", which has the added bonus of being grammatically valid, unlike the supposed quote.

</comment></comment><comment><USER22> This could be easily solved using the blockchain /s

</comment><comment><USER23> I wonder what graphic design app they used. it's such a common problem with these types of apps.

they never include spelling and grammar features as default options.

I think I lost a job because of this reason. I even had a coworker proof read it. I can't spell :(

</comment><comment><USER24> Once they correct the mistake, those notes will be worth a fortune to collectors in a couple decades. Collectors love errors. And since the history is well documented online you get a bonus of free provenance.

<comment><USER25> They don't plan to recall them. Collectors love errors mainly because they're rare. There's 480 million of these and they'll never be worth much more than 50 AUD.

<comment><USER26> With inflation, they'll be worth less than 50 AUD. :)

<comment><USER27> 50 AUD is always 50 AUD, but it's not necessarily worth the same amount of burgers

<comment><USER28> We should use burgers as currency, then.

<comment><USER25> [https://www.economist.com/news/2019/01/10/the-big-mac- index](https://www.economist.com/news/2019/01/10/the-big-mac-index)

</comment></comment></comment></comment></comment></comment><comment><USER29> This is the appropriate response to an error: "nobody died". I can't help but wonder what would have been the response if this happened in the US? I assume a full news cycle would be taken up with opportunistic politicians trying to score points by ascribing blame to their enemies.

<comment><USER30> I disagree somewhat. US news might laugh about it on morning news coverage. But is it that trivial and a laughing matter? I get it, typos are funny and no one dies. But "nobody died" isn't a valid excuse for mistakes on filing for taxes or legal contracts. Errors do matter, even if no one dies. not to overblow the issue, but governmental trust may require error avoidance for many people.

<comment><USER31> Taxes and contracts can a big impact on the people they affect, though. A typo on a bank note has no direct effect on any users. It's an aesthetic problem, not a functional one.

<comment><USER32> Really? Isn't it going to throw a lot of false positives when people try to spend them and the cashier thinks that the misspelling means it's counterfeit?

<comment><USER33> Did it though? It's been in circulation for years.

<comment><USER32> I thought the version with the typo was recent?

<comment><USER33> Years is probably an over statement on my part. A second read indicates probably a year and half.

</comment></comment></comment></comment></comment></comment></comment><comment><USER34> The article mentions that the banknote passed multiple reviews before release, but doesn't say who had the ultimate responsibilty for its being approved.

<comment><USER35> Does it matter? Who fucked up on a typo of this minor amount isn't a problem - even the Governor of the Reserve Bank (who's signature is on the note) says not to worry.

</comment></comment><comment><USER36> And that's how a new collectors note is born.

<comment><USER37> How collectible is it with 480 million of them out there?

<comment><USER36> Well if they'll recall these they can become pretty rare pretty quickly as all notes returned to a bank either voluntarily or via circulation would be destroyed and exchanged with new ones.

<comment><USER38> The article makes it quite clear that the notes are not being recalled.

<comment><USER36> Not now but eventually they are recalled, notes even plastic ones usually only have a decade or so in circulation in most countries until they are issued a soft recall.

</comment></comment></comment></comment></comment><comment><USER39> WAToday not fazed about headline typo.

</comment><comment><USER5> They also misspelt "emphasize" but no one even noticed. I guess the missing 'i' became the "centre" of attention.

<comment><USER40> Are you saying this is a genuine error, or are you making a joke about spelling in American English diverging from British and Australian English?

<comment><USER41> I would assume a joke based on the scare quotes around the spelling of "centre". And at the risk of killing a joke (which I liked), I found the chart of "centre" vs "center" usage interesting: [https://english.stackexchange.com/questions/87978/how-and- wh...](https://english.stackexchange.com/questions/87978/how-and-when-did- american-spelling-supersede-british-spelling-in-the-us)

<comment><USER5> Yes, it was a joke. Yes, I know jokes are hard to discern without the "/s". Yes, that's why the scare quotes.

</comment></comment></comment></comment><comment><USER42> It could be argued that this is an anti-forgery feature. Or, rather, was, before everyone else caught on to it.

</comment><comment><USER43> A typo in microprint that nobody will notice without looking very hard. So basically clickbait.

</comment><comment><USER44> smh the normalization of deviance

</comment><comment><USER45> isn't this why stuff like grammerly was created?

<comment><USER46> The correct spelling is Grammarly...

<comment><USER47> Guy done need Spellingly

</comment></comment></comment><comment><USER48> Apparently they also lacked human editors with grade-school educations.

<comment><USER49> Can you cite something linking education level with an improved ability to spot typographical errors? According to the psychologist quoted in this article[0]/study our inability to spot typos might be an innate limitation of how our brains process information, rather than a lack of intelligence/education.

[0] [https://www.wired.com/2014/08/wuwt- typos/](https://www.wired.com/2014/08/wuwt-typos/)

<comment><USER48> This wasn't a typo. One person makes a typo. When creating a high-profile physical thing with text on it, there are authors, editors, typesetters (or the digital equivalent), copy editors, and proofreaders involved. If this wasn't reviewed by at least four people prior to printing, and if there weren't then test printings reviewed by additional people, then the entire process is flawed. But it still wasn't a typo. It was a failure in quality control.

My dig about education level was too subtle, so I'll be more blunt: too many stupid people were involved. People who don't know how to spell (barring special circumstances like dyslexia or communicating in a non-native language) are stupid. Everyone makes mistakes, but when multiple people whose job it is to produce something like this fail, it's no longer a mistake. It's because they were unable to review it and notice the problem.

All it takes is five minutes of reviewing Facebook posts or comment forums to see just how pervasive this stupidity is. Hacker News is one of the few forums I participate in, because most of the people participating are intelligent, and reading comments here doesn't make my eyes bleed.

As the sibling commenter stated, no one died, and this isn't a big deal. It's still an embarrassment.

<comment><USER49> > too many stupid people were involved

You've gone from one unconstructive thing ("lacked [a] grade-school educations") to another ("stupid"). My link explains why neither one of these adequately explains why people make or miss these kind of mistakes, rather than just hurling out glib insults as an explanation.

<comment><USER48> I'm going to leave the comment there and own what I said, but it's just grumpy and spiteful so I'll leave it at that.</comment></comment></comment></comment></comment>


GitHub Global Issue Search - <AUTHOR> https://github.com/blog/1408-global-issue-search

<comment><USER2> This is GitHub code search all over again...

[https://github.com/search?q=state%3Aopen+sql+injection&t...](https://github.com/search?q=state%3Aopen+sql+injection&type=Issues&ref=searchresults)

</comment><comment><USER3> This could be fun. [https://github.com/search?q=state%3Aopen+cowbell&type=Is...](https://github.com/search?q=state%3Aopen+cowbell&type=Issues&ref=searchresults)

</comment><comment><USER4> I remember writing to the GitHub guys (and girls?) ages ago about considering leveraging their Issues/Pull Request system to create an interesting alternative to Stack Overflow.

They basically told me to fuck off in polite canned-response manner, but it looks like they are a step closer to what I wanted way back.

If they're smart, they could add a button to each hit allowing you to say "This was relevant to my interests", which could order them based on relevance similar to SO's system.

</comment><comment><USER5> I'm not sure I instantly see the use of this, but I am really impressed about the way GitHub is improving their discovery tools. Every new way opens up new possibilities for collaboration, and I love it!</comment>


Show HN: Metalsmith – A pluggable static site generator - <AUTHOR> http://www.metalsmith.io/ <comment><USER2> I like that static site generators are basically the Cups And Balls of our craft.

It's so well understood and constrained of a problem domain that we can now ignore the practical considerations and go all-out with the art itself. I feel like this design and api is a great example of that, much like Penn and Teller's Cups and Balls with clear cups[1] - wonderfully creative innovation within a completely and totally solved problem domain.

[1] [https://www.youtube.com/watch?v=O_n3Zb3bW3g](https://www.youtube.com/watch?v=O_n3Zb3bW3g)

</comment><comment><USER3> One problem I see. On the one hand you say:

> All of the logic in Metalsmith is handled by plugins.

But on the other hand, you say this:

> Each plugin is invoked with the contents of the source directory, with every > file parsed for optional YAML front-matter, like so…

The YAML parsing should be a plugin as well, some of us have existing JSON front-matter files.

<comment><USER4> A JSON file is a YAML file, so what's the problem?

<comment><USER5> I'm not sure why this is getting downvoted (well, maybe the tone), it's true that YAML is a superset of JSON [http://en.wikipedia.org/wiki/YAML#JSON](http://en.wikipedia.org/wiki/YAML#JSON)

<comment><AUTHOR> That's really cool actually.

</comment></comment></comment></comment><comment><USER6> Thanks. Looking forward to trying it out this weekend. My current generator, which I'm generally happy with, is DocPad.

[http://docpad.org](http://docpad.org)

</comment><comment><USER7> One thing I don't like about jekyll (unless I'm missing something), is that on site generation, the last modified time stamp of the files gets updated too even if the file content hasn't changed. This way a FTP program like Transmit will not be able to synchronize only the modified files.

<comment><USER2> Just about everything that supports ftp supports ssh+rsync. I'm not apologizing for the bug, but rsync+ssh is a sane default for synchronizing everything everywhere these days and sidesteps the problem almost entirely.

</comment></comment><comment><USER8> If this really works, I would love to see it replace the hellish jumble of team-editable documentation. I've seen Confluence, PBWiki, Google Sites, and a smattering of others used to no good ends...can we please switch to this now?

<comment><AUTHOR> I'm actually in the process of converting our Segment.io docs to use it right now :) makes it way nicer for everyone* folks to just be able to edit Markdown, but still have the power to do lots of custom things to make the experience better.

* I was going to say for "less-technical" folks but then I realized that even technical people shouldn't have to be subjected to our current tangle of Jade files!

</comment></comment><comment><USER9> Could be compared to assemble.io and stylistically reminds me of Gulp.

<comment><USER10> Gulp was the first thing I though of when looking through the examples.

Edit: In fact, could this whole thing just be a gulp plugin?

<comment><USER11> I don't see why not. My thought was "why even have this when you could just build the plugins for gulp?".

<comment><AUTHOR> The problem with Gulp is just that it just adds too much extra cruft into the mix that isn't really necessary, mostly around running tasks from the CLI. Our general thought for build tasks is that all of that should be in a Makefile which will nicely handle mtime checks and everything for you, and is available on pretty much every setup out there.

The simplicity is nice because you can read through Metalsmith's source and really understand everything that it's doing very quickly: [https://github.com/segmentio/metalsmith/blob/master/lib/inde...](https://github.com/segmentio/metalsmith/blob/master/lib/index.js)

</comment></comment></comment></comment><comment><USER12> It appears to be indeed both extremely simple, and extremely composable. How well does it handle large collections of files?

<comment><AUTHOR> I haven't tried it on _crazy_ amounts of files, but it's just using node's basic async I/O under the covers, and reading once. If you notice any sluggishness let me know!

It's also greatly impacted by what plugins choose to do. I had an extra clone call (literally cloning the buffers for each file) in the templating plugin at one point that like 50x'd the build time :) Everything I've done so far though has sub-second build times—quick enough that I've been building on every request[1] in development which makes things super simple.

[1]: [https://github.com/segmentio/metalsmith.io/blob/master/serve...](https://github.com/segmentio/metalsmith.io/blob/master/server.js#L15-L18)

</comment></comment><comment><USER13> This is really intriguing. I also recommend HarpJS ([https://www.harp.io/](https://www.harp.io/)) as well, which has some impressive pre-compile features.

</comment><comment><USER14> This looks very cool. I like the focus on plugins, it would be pretty awesome to have a flexible static site generator with an active plugin ecosystem.

</comment><comment><USER15> I like this design. It kind of goes in the same direction as my github.com/andrewf/filtdir while being significantly more refined. This seems to make the whole directory structure available to plugins, while my tool only works one file at a time. It might even convince me to switch.

</comment><comment><USER16> A functional type approach. It will be interesting to look more into it. It would be nice to have a .map, .filter functions (if they don't already exist). So, if you don't want to rebuild everything you could do a .filter(htmlDate < mdDate) type workflow.

</comment><comment><USER17> Not just a nice tool, but a great implementation. Simple, lean code, no promises or anything fancy.

<comment><USER18> The overall structure of the thing looks pretty promise-y to me.

</comment></comment><comment><USER19> How do I get this working on Windows? I've installed it with npm install metalsmith. Now what?

<comment><USER20> You're right, the "Install It" section should make that clearer. Anyway, there is an explanation of basic usage if you follow the link to "CLI" ([https://github.com/segmentio/metalsmith#cli](https://github.com/segmentio/metalsmith#cli)) in that section. It says you can create a `metalsmith.json` file that lists source, destination, and plugins in the described format, and then run `metalsmith` from the command line to build your pages according to the configuration file. And I think you will probably also have to install any plugins you use beforehand. Plugin installation instructions are all in the plugin READMEs – they are basically all just `npm install <some-package- name>`.

But it's harder to figure out how to create my own local plugins and make sure Metalsmith is able to see them. And the documentation should make it clearer how to _use_ the JavaScript API, in the context of a static file generator, where most people are not thinking about writing a program. It took me a bit of thinking to realize that you would have to create a `whatever.js` file inside the directory containing JavaScript code with `Metalsmith(".")….build()`, and then just run it with `node whatever.js`.

<comment><AUTHOR> Sorry about that! Just updated the Readme and website to hopefully make that clearer. And I've added Readme's to all of the examples[1] now too, some of which use the Javascript API and some the CLI.

[1]: [https://github.com/segmentio/metalsmith/tree/master/examples](https://github.com/segmentio/metalsmith/tree/master/examples)

</comment></comment></comment><comment><USER21> Somewhat relevant plug:

I have a similar weekend project that is aimed towards generating static markup. The syntax looks a bit like haml with simple to use mixins, includes, and variables.

[http://rubygems.org/gems/aml](http://rubygems.org/gems/aml)

<comment><USER20> You should have linked to its home page [https://abstractmarkup.com/](https://abstractmarkup.com/). The RubyGems page does nothing to sell me on why I should bother installing your gem.

</comment></comment><comment><USER22> Did anyone else manage to install it? I'm getting a "shasum check failed" error.

The project scaffold generator part sounds pretty interesting because I needed it pretty often and eventually had to build that for myself.

<comment><AUTHOR> Just republished! Can you let me know if you still see it? Sorry about that :$

<comment><USER23> Got the checksum error, too. Successful after the republish.

</comment></comment></comment><comment><USER24> Couldn't choose between Jekyll and Middleman, but now I think I'm going with Metalsmith. No ruby, understandable plugin structure… I'm sold!

</comment><comment><USER25> With sooooo many static site generators (all very well done too), would be awesome to have a side-by-side by-feature comparison table.

<comment><USER25> Apparently there are many aggregation efforts, but no by-feature comparison. [https://github.com/jaspervdj/static-site-generator- compariso...](https://github.com/jaspervdj/static-site-generator- comparison/issues/13)

</comment></comment><comment><USER26> I fail to see the big advantage of this over its competitors.

<comment><AUTHOR> Yeah it depends on what your use case is to begin with. If it's just the simplest blog with a running series of Markdown files, then really any of the static site generators will do. But once you get into trying to implement some more advanced features then you run up against the limitations of most (if not all) of them because they assume way too much up front. A couple real-world examples from us at Segment.io are:

Documentation - for our docs[1] we want to be able to use the same simple static site generator without having all of the blogging logic. Basically the nesting of the files should result in the nesting of the URLs. But we also want to be able to tie in metadata that we have in our database about all of our integrations. And we'd also like to be able to write custom handlebars helpers that turn a simple JSON object into a widget that renders API calls in any of our supported languages.

Academy - for our academy[2] I really want to get to the point where we can generate PDFs for each of our articles and being to re-distribute them that was as eBooks (or potentially for a collection of articles) because that kind of thing appeals to enterprises who are looking for guidance. And we could even end up doing the same thing with our docs pages. And then we also want to have custom handlebars helpers for

Blog - for our blog[3] we want just the most basic implementation, although maybe with some niceties about author metadata to load in avatars and such.

Whenever you try and get into additional features that weren't considered by the original "static site" (or worse "static blog") generators, you usually end up building really cludgey code, if it's even possible.

So with Metalsmith we avoid all of that, because the plugins can do whatever they want, and it's super trivial to add local plugins to the mix if you're cooking up something which you know is unique to just you.

And the last thing was that we were sick of having a Ruby dependency (with all of the associated slowness) just to build our blog with Jekyll. Basically was increasing build times by an order of magnitude.

[1]: [https://segment.io/docs](https://segment.io/docs) [2]: [https://segment.io/academy](https://segment.io/academy) [3]: [https://segment.io/blog](https://segment.io/blog)

</comment></comment><comment><USER3> This is a nit, but non-constructors should be lowercase.

<comment><AUTHOR> It actually is a constructor, just lets you omit the `new` keyword if you choose since I think it's nice not to have to do that sometimes.

</comment></comment><comment><USER27> So simple, yet so powerful.

</comment><comment><USER28> Very nice. Well done.

</comment><comment><USER29> Awesome.</comment>


Ask HN: If you had access to all Gmail and Facebook data - <AUTHOR> If you had access to all Gmail and Facebook data for a user (with consent), what product would you build? <comment></comment>


First Photo: webOS App Catalog Magazine View - <AUTHOR> http://mikecanex.wordpress.com/2011/02/15/first-photo-webos-app-catalog-magazine-view/

<comment><USER2> An added benefit to having a magazine-like view is that it won't be as a big a jump for graphic designers accustomed to print design. Perhaps a plugin for Adobe InDesign could help.</comment>


Facebook's "Evil Interfaces" - <AUTHOR> http://www.eff.org/deeplinks/2010/04/facebooks-evil-interfaces

<comment><USER2> "Although we didn't specifically mention Facebook in our question, by far the most popular suggestions were variations on this one from @heisenthought on Twitter:

"How about 'zuck'? As in: 'That user-interface totally zuckered me into sharing 50 wedding photos. That kinda zucks'"</comment>


Twitter Bots Use Likes, RTs for Intimidation - <AUTHOR> http://krebsonsecurity.com/2017/08/twitter-bots-use-likes-rts-for-intimidation/ <comment><USER2> I've pared down my twitter usage and who I follow, and increased the use of words to mute. I regularly delete old tweets. In a way, the golden days of Twitter occured when we all were on it, the early adopters. It appears to me that the rapid growth of the platform has not been accompanied by a rapid growth in, well, growth management. Spammers, politics, ideological motivated manual censorship / safety council, bots, spam, flame wars etc, It used to be about broadcasting your current status - the status like what you would update on your instant messaging client. The chase to get as many people on it as possible leaves huge holes for bots.

<comment><USER3> I made my first Twitter account shortly after it launched, so there's a good chance I'm an earlier adopter than most people who complain about how it's changed.

Many would, unfortunately, read any of my LGBTQ friends (for example) venting about the harassment they get for who they are as "political." What's political/ideological/junk/whatever to one person is a central and valuable function of the platform to others. This is their "current status," which they broadcast, and it's unavoidably political because certain groups have decided to politicize innocent and harmless attributes.

I would not have met my best friend, who I can talk to about this stuff when Twitter seems inappropriate, without Twitter. For you, it's a place to chill and chat. For me and many like me, it's a lifeline in hostile territory.

<comment><USER2> When did Twitter turn into hostile territory? Or are you saying that the world outside of Twitter is hostile and Twitter is some way of dealing with that in the present day?

I remember when people started being harassed on Twitter, and it wasn't close to the launch, rather it was when it was sometime after it became massively popular. If we can try to remember we will see that it was different back then when we were early adopters.

<comment><USER3> Outside world. You should get to know your LGBTQ and other marginalized friends better if you aren't aware of how bad things are. Twitter may have been the first place they found anyone else like them. Even accepting environments (rare) can be difficult to cope with if you have no one to talk to who really understands what it's like.

</comment></comment></comment></comment><comment><USER4> Easy answer: Stop using Twitter. Stop caring about Twitter. We have the power to kill this nonsense in two seconds -- we only need the will to do so and if we don't we're to blame.

I stopped using Twitter and I'm happier.

<comment><USER5> First Facebook, then LinkedIn, and recently Twitter are gone from my life, and good riddance! Now if anyone wants to figure out what's happening in my life they know how to reach me, and we can both have the pleasure of actual social interaction.

</comment></comment><comment><USER6> It says Twitter doesn't allow automated likes, which is what bots usually do.

[https://support.twitter.com/articles/76915](https://support.twitter.com/articles/76915)

D. Automated actions you take on Tweets or accounts

Automated likes: You may not like Tweets in an automated manner.

</comment><comment><USER7> How difficult is it to detect Twitter bots? I would have thought there'd be lots of obvious signals (who the bot is friends with, what they post, how often they post, how old their account is).

<comment><USER8> It must be relatively easy to find bots, but I imagine Twitter has a decent size ecosystem of neutral / positive bots for various QoL tasks that would be collateral damage as intent is much harder to determine.

<comment><USER9> It feels as though Twitter has a vested interest in making its network seem as active as possible, irrespective of quality of interaction. In a way, Twitter's userbase appears like a captive audience - they've no desire to leave, no matter how bad it gets. Oddly masochistic in a way.

<comment><USER10> You could argue that twitter bots don't do much damage. If you don't want to follow a bot, just don't follow them. They should be easily recognizable.

People who did the auto-follow thing were screwed though.

<comment><USER9> No, that's not how Twitter bots work. They damage the overall ecosystem in both active and passive ways. Of course you can choose to not follow someone/something, but they can still harm your experience as a user.

<comment><USER10> Someone should create a pattern catalog for bots to enable easier discussion about them.

</comment></comment></comment></comment></comment></comment><comment><USER11> Odd place for me to ask this but does anyone know what's with the ring of twitter user wth the usernames ending in gives,gibs, givs as in johnGivs, jasonGives as an example. They all say they will release account "methods" for Spotify, Apple, PlayStation , steam etc for retweets. I came across the pattern a few weekends ago noticing they say to each other they keep their accounts on ghost script and they were all mad it was down one night. Is this just a ring of stolen accounts or stolen account cards?

</comment><comment><USER12> So...someone could write their own twitter bots that trigger these russian troll bots with their trigger keywords. Then the russian troll bots will waste their time trolling the wrong accounts and make themselves look silly at the same time.

</comment><comment><USER13> I made my Twitter account in 2007. Those were the days. Now, the platform is the mostly used for propaganda, perception building, marketing and hate mongering.

Also, there are no friends or foes on Twitter, only interests.

</comment><comment><USER14> What a coincidence, I just saw one today in a highly political thread. Just goes to show I should stay away from political stuff on twitter.

</comment><comment><USER15> Where's the evidence that these are bots?

<comment><USER16> Regardless of motives, I think it's blindingly obvious that getting _500 retweets within nine minutes_ for "wonder whether the use of the @DFRLab handle and talking about a bot attack is enough to trigger one" involves someone or some algorithm triggering a Twitter botnet.

It's not like the original tweet was so entertaining that everybody seeing it would want to share or the original tweeter had more than a few hundred followers</comment></comment>


Kleiner Perkins Shuts Down Its Seed Venture Fund - <AUTHOR> https://www.bloomberg.com/news/articles/2017-07-31/kleiner-perkins-shuts-down-seed-venture-fund-as-partners-leave <comment><USER2> This is not good news for startups seeking seed funding. Odd that all three people working on seed funding left randomly and so close together. Despite these setbacks for startups and KP, I did admire KPs 72 hour turn around response to startups.</comment>


Computers are People, Too: Disney documentary about computer art in 1982 - <AUTHOR> http://motherboard.vice.com/read/how-disney-was-hustled-into-making-the-trippiest-movie-about-computers-ever

<comment><USER2> I wish they had written the names of the people in the short interviews during the interview - especially the guy that snorted who narrated later over the classroom video.

For some reason watching this makes me think that this is exactly what it's like to live in The Culture, complete with the slim blonde and the ship's avatar narrating a retro movie. The video would be even better if you gland some Edge.

Some of the art looked very dated - the 3D shapes, the juggler, airplanes, the 'plastic surgery', but the analog radio wave character and the more abstract artwork still look great - for example, the gray haired guy (again, missed the name) who worked with the antiaircraft gun.

Did Gary Chang invent autotune?

</comment><comment><USER3> I have really fond memories of seeing Michael Iceberg performing at Disney World in the (cough) 1980s.

For a lot of people in the audience (including myself) that had never heard a sampling keyboard before, it was nothing short of amazing.

</comment><comment><USER4> The juggler and 'computer plastic surgery' segments were created by Information International, Inc., the latter being for the movie "Looker".

Information International, Inc. 1982 Demo Reel: [https://www.youtube.com/watch?v=ADF3-6owY0A](https://www.youtube.com/watch?v=ADF3-6owY0A)

A scene from "Looker": [https://www.youtube.com/watch?v=q_wK74Ejnqc](https://www.youtube.com/watch?v=q_wK74Ejnqc)

</comment><comment><USER5> [https://www.youtube.com/watch?v=NWD7iqtOJSE](https://www.youtube.com/watch?v=NWD7iqtOJSE)

<comment><USER6> No trippier than the Windows 386 video [https://www.youtube.com/watch?v=OcjvgxAKiHs](https://www.youtube.com/watch?v=OcjvgxAKiHs)

</comment></comment><comment><USER7> The Vice interview includes some sources, but I'm very disappointed that they did not include the name of the people or the titles of the pieces. I suppose, though, that in 1982 they did not think anyone would care to look it up.

</comment><comment><USER8> >An early demo of a computer-generated character, referred to in the documentary as "mathematical plastic surgery."

A spinning 3D model with textures in 1982? That's pretty impressive.</comment>


Vocali Beta - <AUTHOR> https://www.vocali.online <comment><AUTHOR> Hello Future Vocalist's,

I'd like to invite you to try out Vocali. Vocali is an audio social media app where you can share sound clips with your friends. Simply record, add and image or a title and share! We recently went live on Product Hunt where you can submit any feedback, good, bad or horrible (it's all appreciated).

You can download the app now from our website: [https://www.vocali.online](https://www.vocali.online)

Thanks for your help and support!

Team Vocali

<comment><USER2> The description you wrote here is what should be on your landing page. Right now it's only a picture of a phone that doesn't really say anything at all — even if I really wanted to, I couldn't figure out what the page is about, other than it's related to phones.</comment></comment>


Lisp is Sin (2006) - <AUTHOR> http://www.sriramkrishnan.com/blog/2006/01/lisp-is-sin.html <comment><USER2> Wow, why did this get posted after so many years? It's a bit embarrassing to see my writing from back then. Its amateurish, a bit tacky and I sorely needed to edit it.

As for my opinions now, I think classic Lisp is forever doomed to be a niche language. I think it's legacy will be contribution of ideas to mainstream languages.

Having said that, Clojure is fascinating and could prove me wrong.

<comment><USER3> Actually, I clicked on the link thinking it was by another "Sriram Krishn*":

<http://www.cs.brown.edu/~sk/Publications/Papers/Published/>

I thought Dr. Krishnamurthi finally saw the Dark ;-)

</comment></comment><comment><USER4> Assuming by Lisp we mean either "Common Lisp" or "what somebody would have called Lisp in 2006", there is now an exception to "All roads lead to Lisp" that has moved from total obscurity to all-language-geeks-should-know-about- this: Haskell. You can not take a 2006 Lisp and macro your way to purity. You could build a pure subset, but that would be a new language in every way that matters because you couldn't use non-pure libraries without a lot of wrapping.

You can of course also start a new Lisp-like language with new primitives that do include immutability, but I would suggest that that shows Lisp moving forward by taking a feature from another heritage, which means you've no longer got all roads leading to Lisp/2006, you've got at least one leading away.

If there's anything strange about Lisp, it is that it really was a local optimum posing as the global optimum for so long. We should end up with a few more local optima before all is said and done; there aren't enough yet.

<comment><USER5> The whole point of lisp is that it rolls around picking up new ideas. Haskell was originally implemented in lisp.

Examples: Lexical scoping (ALGOL)

The 'format' macro(I believe Fortran)

The 'loop' macro (COBOL? Pascal? not sure?)

Type systems ala Qi and Haskell (ML and typed lambda calculus influenced)

Optional type declaration are probably to approximate C.

You can implement prolog it...

I believe lisp machines even had GC'd versions of C, Pascal, and other languages written for them.

Personally, when I read "all roads lead to lisp," it is taken with tongue firmly in cheek. Lisp isn't really the 'best' language, it just ends up being able to subsume all of the ideas from them. In RPG terms, Lisp is the red mage.

This is why I like it a lot; given a certain problem domain, you can approximate the global optima that is reached in another language.

<comment><USER6> "The whole point of lisp is that it rolls around picking up new ideas."

Kind of like the Katamari Damacy of programming languages... :-)

<comment><USER7> When I played that game I was ruining and picking up junky city debris! That sounds a scary language.

</comment></comment></comment></comment><comment><USER8> He mentions a lot of LISP dialects, but not Clojure.

EDIT: Ah, there was no Clojure back then ;-)

</comment><comment><USER9> I programmed in Lisp back in 1985 and liked it a lot. Today I consider it too imperative for my tastes, and also too heavyweight. So lately I've been embedding a little interpreter for my Fexl language ( <http://fexl.com> ) into my systems written in Perl. That way I can opportunistically use a pure functional language for script-like purposes such as dynamic web sites and report generation, without committing to rewriting my entire system in another language. The Fexl interpreter is tiny and only has 7 grammar rules, so it's really easy to deploy in very focused areas of the system.

It's going well so far in testing. I suspect that over time I will migrate an increasing amount of system logic out of Perl and into Fexl, so eventually all that remains in Perl is the Fexl interpreter itself. Then I'll swap that out for my interpreter written in C and be done with Perl.

Don't get me wrong -- I've been using Perl for 12 years and I know how to write disciplined code in it, so I am grateful to Perl. But I find the pure functional approach to be liberating, making many tasks seem almost effortless.

In fact, I've even been applying the functional concepts to my Perl code itself, with great reward. For example, when I'm parsing text, I don't use the usual destructive position pointer. Instead, I use a functional representation of the text, with head, tail, prefix, suffix, and such. It's liberating.

Another example: when I use my key-value maps with automatic hierarchical structuring by disjoint prefix, I no longer use a destructive "put" operation to change entries. Instead, the "put" operation in effect returns a _brand new_ key-value map with just that one entry changed. It's amazing how efficient this is because of structure sharing, and it also adds much clarity to the code and avoids a lot of thorny implementation issues (especially because I actually _need_ a super-efficient "virtual copy" of large key-value maps for what I'm doing.)

So my main points here are:

1\. You can deploy a small embedded interpreter for a purely functional language, inside a system written in any language (yes, even Perl). You don't have to rewrite your entire system in a "pure" language all in one fell swoop, or ever. You can just systematically migrate more logic into the functional side, completely at your leisure, in an evolutionary fashion.

2\. You can apply functional concepts and techniques to code written in any language (yes, even Perl). That works even if you don't go as far as using an embedded interpreter.

I am finding both of these techniques to be highly rewarding, and the most exciting thing I've done since I started programming in 1975.

<comment><USER10> Is Fexl open-source, or even available for download? It looks pretty neat.

<comment><USER9> Funny, I was just thinking about that very thing when I noticed your post. Problem is, I'm a little "ashamed" to release the code right now because I'm in the middle of some major revisions:

1\. Use DeBruin notation for referring to bound lambda values positionally, instead of my current approach of actually using the lambda symbol in an associative list. (Don't laugh, it works.)

2\. Change the C implementation so it just uses an array of longs for the whole working space, with integer offsets, instead of node structs with pointers. At that point the whole implementation will be "nothin' but int", and avoid malloc altogether.

3\. Change both the Perl and C implementations so that I supply external function definitions as function _pointers_. Right now when a high-order function is reduced to a normal form (lambda form), I actually look at the _name_ of the external function being called and do a big if-else on that. (Don't laugh, it works.) This will no longer be an option when I go with DeBruin notation. Besides, the function pointer approach will be a lot more solid, serious, and extensible.

Thanks for expressing an interest. When I'm a little more proud of my code and have something available for download, I'll announce it on HN.

<comment><USER10> This is probably a stupid question. If you have Fexl written in Perl now, what are the chances of just throwing a sand-boxed interpreter online for people to play with? I'm thinking just a form with an input field and a submit button which runs the script and displays any printed values.

<comment><USER9> It's a brilliant question, and it's now on my TODO list. I'll aim to get this done by the end of August.

You're right about the sandboxing too -- the Fexl interpreter runs with two limits: the maximum number of cycles, and the maximum amount of memory. If it reaches either of those limits, it halts. So it should be perfectly safe to run it on the public web.

<comment><USER10> I'm not trying to rush you or anything. Just want to let you know that at least one person is still looking forward to seeing it.

<comment><USER9> Actually there's a much simpler metastasis function, perhaps the most evil function of all, namely, the result of applying the Y combinator to the Y combinator itself:

      Y Y

If you expand this function two steps, you'll notice that it equals:

      Y Y (Y (Y Y))

And so you end up with an infinitely left-recursive thing from hell.

Fortunately my implementation of Fexl does not use built-in recursion, which would quickly throw up a segmentation fault due to stack overflow. Fexl does its own stack with a chain of nodes. Also, Fexl runs inside a completely bounded "arena", which is a fixed-size array of machine integers. All node "pointers" are actually just integer offsets into this arena. This makes it possible to increase the size of the arena by allocating a brand new one and doing a mass copy from the old to the new. But I have not bothered with this yet, because I figure that deciding on your upper bound on memory once up front is just fine for now. Note also that my approach allows for nested arenas, so for example you could have a Fexl function which allocates an arena and runs a Fexl interpreter inside there. The whole thing is completely reflective in the most profound way you could imagine, so the sky's the limit. The use of pure functions enables abstractions which are _not_ leaky.

This leads me to my main point. I've decided to stick with the C implementation because it gives me the complete control which I need. When I want to call Fexl from Perl, I will simply fork a separate Fexl process and have Perl pump a Fexl function into its standard input. That initial function can then read any remaining input. You can do any sort of bootstrapping this way, for example the initial function may expect _another_ Fexl function at the head of the remaining input. Any file names on the Fexl command line would simply be treated as if their contents had appeared on standard input first.

The Perl code then reads the standard output of the Fexl process, and that's its answer. On the web, it could connect the output directly to the client socket and be done with it.

One nice thing about this approach is that it's utterly safe. Your code could read the evil (Y Y) function straight off a socket from a known black hat and evaluate it with confidence, knowing that it would simply reach your upper bound on memory -- or cycles, whichever comes first -- and halt in the most ordinary way.

Another nice thing is that I don't have support an endless list of implementations in other languages, or even bindings for other languages. There is one authoritative piece of code written in C and that's that.

If you feel that this approach is too slow, then you can simply move more of your logic from Perl into the Fexl program itself. If you take this principle to its extreme, you would end up with a Perl process which does nothing except feed a program into Fexl -- at which point you would drop Perl altogether. Note that Fexl programs can be extremely compact, and you could even read auxiliary functions from files on demand.

Ultimately the entire API at <https://loom.cc> will be based on Fexl. Instead of doing a bunch of grungy back-and-forth API calls and doing all your branching and looping on the client side, you can just ship an entire Fexl program to the Loom server and have it run there, delivering precisely the answer you want in the format you want. You could even send back a single number such as "42" if that's all you need.

To avoid shipping the same program to Loom repeatedly, you could store the program in an Archive slot once. Then whenever you want to run that program, you only have to send the archive ID.

<comment><USER10> It sounds like you're having a lot of fun with it.

I think a C implementation would be better anyway. C is the common denominator between almost every language. Have you already done the foreign function interface to C?

When do you think we might see either source code or a live web demo to play with?

For a web demo, couldn't you just add a quick CGI interface to your C program?

<comment><USER9> The Fexl interpreter is simple, elegant, and fast. The core "reduce" routine runs about 43.5 million cycles per second on a simple infinite loop. If I set max_cycles to a billion it stops after about 23 seconds.

To test it with something more real, I wrote the "cat" program in Fexl as follows:

      \cat = (get_char \ch eq EOF ch I; put_char ch cat)

Then I pumped 30MB of data into it, which took about 42 seconds:

      time (head -c 30000000 /dev/zero | fexl_cat >/dev/null)

Of course that's a lot slower that pushing the data through the Unix cat program, which only takes about 0.14 seconds:

      time (head -c 30000000 /dev/zero | cat >/dev/null)

But think about all the gyrations happening here:

      \cat = (get_char \ch eq EOF ch I; put_char ch cat)

That is translated into the closed (variable-free) form:

      (Y (S (C get_char) (S (C (S (S (eq EOF) (C I))))
      (S (C (S put_char)) C))))

Then that runs like the wind, applying combinator rules such as these many millions of times:

      C x y = x
      S x y z = x z (y z)
      I x = x
      Y x = x (Y x)

Not to mention that get_char and put_char are handling and building characters one at a time, and the "eq" function runs as a combinator as well.

By the way it is quite trivial to add new combinators written in C. For example, the fabled Y combinator is defined in a single file "type_Y.c" as follows:

      #include "node.h"
      #include "type_Y.h"

      /*
      Fixpoint function (Y combinator):  (Y f) = (f (Y f))
      */
      static void step(void)
          {
          int f1 = pop();
          if (!f1) return;

          set_pair(f1, R(f1), P(L(f1),R(f1)));
          }

      int type_Y(void)
          {
          static int node = 0;
          if (node == 0) node = new_combinator(step);
          return node;
          }

The type_Y.h file just says:

      extern int type_Y(void);

<comment><USER9> The whole thing is about 800 lines of C code so far, and I aim to get that lower. :) For one thing, I'm busy bootstrapping the Fexl parser into Fexl itself. It's really neat to be able to express executable concepts simply and completely like this:

      # Parse a nested parenthesized expression.
      \parse_nested =
        (
        \yes
        \no
        skip_char ch_lparen
            (
            parse_expr
                (\expr skip_char ch_rparen (yes expr) no)
                no
            )
            no
        )

And it's simple to do either-or parsing like this:

      # Parse a factor:  either an id or a nested expression.
      \parse_factor =
          (
          \yes
          \no
          parse_id (\id yes (var id));
          parse_nested yes;
          no
          )

Even such mundane tasks as skipping white space and comments have a satisfying elegance about them:

      # Skip filler, including white space and comments.
      \skip_filler =
          (
          \done
          skip_space;
          skip_comment
              (skip_filler done)
              done
          )

<comment><USER10> Not sure if I am understanding this correctly. By bootstrapping, do you mean C does only the most basic syntax parsing, and then a fexl script (written in a basic fexl subset) does the more complete parsing?

All this stuff is really neat. Your C code interface looks quite nice and clean. I hope you release some source code soon.

And thanks for taking the time to write all this. Even though a lot of it is over my head, it's quite interesting. I'm really looking forward to playing around with it a bit and learning.

<comment><USER9> By the way, the initial release of Fexl will take a very simple form: A Universal Filter. The "fexl" executable will be nothing more than a program which maps standard input to standard output. So it's a filter. But it's universal because it is Turing-equivalent, capable of performing any conceivable function from stdin to stdout.

When Fexl runs, the first thing it does is read a Fexl function from standard input. The Fexl process then "becomes" that function, processing the tail of the input accordingly. Simple!

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> 4 years down the line, sriramk, any updates?

</comment><comment><USER12> "Lisp is like the villainesses present in the Bond movies. It seduces you with its sheer beauty and its allure is irresistible. A fleeting encounter plays on your mind for a long,long time. However, it may not be the best choice if you're looking for a long term commitment. But in the short term, it sure is fun! In that way, Lisp is...sin. " Oh, is it? I think it is exactly the opposite.</comment>


Byteball – Smart payments made simple - <AUTHOR> https://byteball.org <comment><USER2> The technology behind this is really cool. It's based on a DAG instead of a blockchain, which should make this a lot more scalable (no block size limits to deal with) and efficient (no miners, no electricity wasted on PoW).</comment>


Show HN: My Lists - <AUTHOR> http://mylists.apphb.com/

<comment><USER2> Google says:

> Mylists.apphb.com would like to:

> View your email address

> Mylists.apphb.com and Google will use this information in accordance with > their respective terms of service and privacy policies.

Does Mylists.apphb.com have a privacy policy? If so, I can't find it. Sounds like you're probably violating Google's TOS, along with failing to get a sign- up from me. Might want to fix this.

</comment><comment><USER3> i hate to ask... but... why?

List managers (frequently todo-list) are SO common it isn't even funny. They're great learning exercises, especially for finding your way around some new framework, but once you start sharing it with others you have to ask yourself "why?" as in "why should anyone use this instead of the other 4,000 list managers?" I'm not seeing anything that's making me say "oooh, that's different", so... why should people bother with this app? Maybe there is something different about it, but if so it's not being conveyed.

Full disclosure: I'm actually writing a list manager too, but it does have a notable feature that I've not seen in any other app.</comment>


How to Profile and Optimize Ajax Applications - <AUTHOR> http://codinginparadise.org/weblog/2006/08/tutorial-how-to-profile-and-optimize.html <comment><AUTHOR> Going through the thinkature blog found this article. It's related to this article on 'profiling javascript' ~ <http://blog.thinkature.com/index.php/2006/11/11/profiling-javascript- applications-with-venkman/></comment>


Spør HN: Any startups in Norway? - <AUTHOR>

Are there any recently started tech startups in Norway? Is there anyone on HN planning on starting one here? Are there any opportunities for entrepreneurs and startups in Norway? Please let me know what you think! <comment><USER2> Yes many. The problem is that you will never hear about them because there does not seem to be any attractive forum for tech startups in Norway free of dull business types.

Herein lies an opportunity: to create a YC/"Hacker News"-like focal point for entrepreneurs minus the boring "first tuesday"-segment that are only interested in talking about stock options and exit strategies.

If you have some spare time and want to do something about this I can put you in contact with some people in the "incubator" business who might be able to introduce you to useful people.

</comment><comment><USER3> Not norway specific, but checkout <http://www.arcticstartup.com>

<comment><AUTHOR> Thanks for the link! It contains links to a few Norwegian startups, which is at least something.

I was actually hoping to hear from actual people on HN in Norway about their startup plans, though.</comment></comment>


The Moon Is Full of Money: Capitalism in Space - <AUTHOR> http://nautil.us/issue/52/the-hive/the-moon-is-full-of-money <comment><USER2> It would be nice to see actual economic analysis of space economy. Usually you see just the listing of potential resources and their nominal price.

We know delta V's required to reach moon and asteroids. Space also has solar energy. What is needed is basic ballpark analysis based on opportunity costs, EOREI analysis etc.

Currently space based business is mostly satellite TV. Launch services and satellite manufacturing and satellite operators and other services combined are < 20% of what satellite TV revenue is.</comment>