Fundraising Rounds Are Not Milestones - <AUTHOR> https://blog.ycombinator.com/fundraising-rounds-are-not-milestones/ <comment><USER2> Having worked for a couple of startups that raised large Series B rounds early on without much traction to show, I agree with this analysis 100%.

In both cases, the round was raised because the founders were charismatic serial entrepreneurs who knew how to play the fundraising game. Neither company managed to get traction after raising the large round, and I believe that having a lot of money in the bank made the problem worse. When you have a large cushion without product/market fit, there is a tendency to spend money quickly in the hopes that it will somehow lead you down the right track (VCs often encourage this behavior). Both companies scaled significantly without much real revenue and later ended up having to cut back (one managed to cut expenses in time to have runway left, while the other never did and ended up blowing through an enormous quantity of money in record time).

As a startup employee, I would never again use a funding round as a sign of traction. My current strategy is to look at the fundamentals that allowed the company to raise the round, and use those to determine how the company is doing. If things seem too good to be true, they probably are.

<comment><USER3> Sadly the story of my current professional life. Rapid expansion first couple of years, two layoffs, now looking for a buyer.

</comment></comment><comment><USER4> While I completely agree that fundraising itself isn't a milestone, it is often a signal of an internal milestone successfully met. And since startups rarely tell us what is really going on inside, people following along outside report this indicator so that other interested parties can follow along.

One of the unusual ways that playing the card game Bridge is like startup news is that bidding in bridge is saying something which is related to what you have in your hand but not explicitly what is in your hand. And bidding conventions allow the other players to also follow along and guess what you have. So it is with startups and funding. You get a seed round there is enough interest to give you some money, then there is a pause and then either you get a series A and everyone "knows" your basic idea has at least some legs, or you don't and people start to wonder if you're going to flame out. Then if you continue hiring without another funding round everyone gets really excited, but if you did raise the series A people put a pin in the board to check in again with you in a year to 18 months. At which point you're either growing without doing a round, or your out trying to raise a series B. Depending on who you talk to, some folks think series B is the point where you've got a product you have de-risked it to the point where you can get to 1.0. Others think it is the round where you start bringing your vision to market to convince the larger world you're for real. Series C was the "big one" back in the day, that one took you into production and made you a going concern, if you did a series D at that point it was to get ready for your IPO. Series after D were typically "bad" signs of encroaching zombieness or desperation. Not self sufficient, but not clearly established enough that the general public would believe you were going to make it.

So I agree that funding rounds aren't milestones, but they can certainly be interpreted as a count down.

<comment><USER5> I don't follow. You say...

"you get a series A and everyone "knows" your basic idea has at least some legs"

but then you say

"some folks think series B is the point where you've got a product you have de-risked it to the point where you can get to 1.0"

I've been in the valley raising money this last year and what I saw no venture firm will look at you for a Series A before you are on V 2.0 with outsized traction and breakneck growth.

Where are these companies getting Series A money (3 MM+) without a V1.0?

<comment><USER4> First, disclaimer, all generalizations about VCs are wrong, including this one. :-)

I've gone through the process three times (twice as founder, once as executive level employee, web product, HW product, web product) and the commonality of those three times was risk evaluation. There is a ton of stuff written about startups but I think of there being four major phases, Idea Risk, Execution Risk, Market Risk, Capitalization Risk.

Idea Risk is just that, the idea sounds stupid and we're sure nobody wants it. So maybe you get someone who has enough free cash that they throw some money your way as a seed round/party round. There are probably all sorts of questions about the idea and whether or not people will buy it and whether or not it is 'sticky' enough to become part of somebody's daily routine. All basically around is the idea something worth checking out. People get past that in a variety of ways, sometimes it is iterating several times on different visions until they are getting sales for real money or commitments by larger partners in the form of Purchase Orders. Time to move to the next step, execution risk.

Execution risk is that you won't be able to build a team to put all the moving parts together to create a functioning business around your idea. At this point you need to hire some people and actually pay them salaries, and have a health care plan and an actual office (perhaps) to meet with people. That is series A time. Sometimes the investment is modest and this looks like a 'big seed round' sometimes it is a bit larger than that. It is just enough money to put the team in place, show all the moving pieces of the plan.

With the data from that stage you enter market risk. Can you capture people's imagination? Is there a competitor with a better domain name moving faster? Do support costs grow faster than revenue? These are all market fit questions and they need some capital to show how your product moves into the market and starts to grow. This is where you want to raise just enough money to get to the point where you're cash flow positive and banking the training of delivering, developing, supporting, and selling your thing what ever it is. At which point you're primary risk becomes capitalization.

Often times you'll need chunks of cash to grow, add a data center location, hire a support team in a local market, localize your product for international. These thing take 'chunks' of cash to get going and then steadily burn cash afterwards, you need to raise enough cash in your round C to meet those cash crunches and support the growth to meet your revenue and profitability goals.

In the ideal world once you've gone through a series C you have enough cashflow to grow organically and accumulate reserves for those future 'chunky' expenditures.

On the other hand, if this is the nth startup you're doing and the previous n-1 have netted their investors excellent returns, you can say "Hey I need $5M for this next one, who's in?" and a suitcase of money will land in your bank account. Everyone loves a winner.

<comment><USER6> This four step qualification of risk is one of the smartest models I've seen for evaluating/validating startup progress.

I've been through multiple businesses, and seen them fail at all these different hurdles, for the exact reasons you elicit here.

I may have to steal this model for my latest pitch deck.

Bravo.

</comment></comment></comment></comment><comment><USER7> The best advice I got was from a VC -- he said, "I'm a salesman, my job is to sell you money".

If you look at it from that perspective, getting funding should be about as celebrated as the farm that buys a new combine or the factory that buys a new robot. You're celebrating a huge new liability on your books.

VC investment is something you buy that you hope will provide more value to your organization than it costs, just like any other capitol outlay.

<comment><USER8> None of the things you listed are liabilities.

ALOE

Cool quote though.

<comment><USER7> I made the assumption that they all come with loans and interest payments.

<comment><USER8> Gotcha. Assumptions definitely are liabilities ;)

</comment></comment></comment></comment><comment><USER9> > I believe founders, investors, and the tech press should fundamentally > change how they think about fundraising.

This is wishful thinking. The concept of "fundraising rounds as milestones" is an externality of the VC game that no one can control (even YC for that matter).

Tech press absolutely love fundraising numbers. It gets the most views.

People in the "startup world" (especially in SV) socially need a proxy for how "serious" a business is, given that there are so many damn startups now. "Oh you work for a startup, great, best of luck...", "Ya and we're backed by YC and just raised our Series B".. _eyes perk up_. "very interesting...I might be able to help you".

This is simply human nature.

<comment><USER10> It's the closest people get to an internal view of a private company, especially a new and/or small one.

</comment></comment><comment><USER11> Series A/B/C rounds make good headlines because they work mostly the same across companies and the press knows how to report on them. Companies like these because the announcements lead to sales leads & are good for recruiting.

If you are e.g. a Techcrunch reporter, what statistics should you report on instead? Number of users can and is gamed by including fraudulent signups in counts. "X hits 100k revenue" is good but companies usually want to keep it confidential.

<comment><USER12> If you are a startup reporter I think you can get signal from customers/users and you should be writing about features/product improvements instead of funding rounds.

</comment></comment><comment><USER13> I like this article except for the conclusion. Of course you can over-optimize on fundraising. But, you can over-optimize on almost any milestone. The point of a milestone is to communicate to a wide audience that your business has achieved something important, in a standardized way. That is exactly what fundraising rounds do - they communicate to all of your employees, customers, and (most importantly in my experience) potential hires that you have raised more money, with all of the raised expectations that go along with it. So I think the right conclusion is that fundraising rounds _are_ a key milestone, and you should treat them as such, there's just a danger of overoptimizing on them.

<comment><USER12> How do you explain all the situations where companies raise money and no/very little value has been created?

<comment><USER13> Like any milestone, it's possible to get to milestone X but fail to get to milestone X+1.

</comment></comment></comment><comment><USER14> This is great advice—many founders reverse the cause and effect here.

We think of them as milestones in the company's success. For example, as a SaaS company selling to government (often bucketed with enterprise), us reaching "Series A" means we have a repeatable sales playbook and defined customer acquisition funnel. It may be inefficient, but we can say that roughly X dollars in equals Y dollars out.

The funding is a tool that can only be used once we have reached that milestone in our company's maturity. Seed stage companies can't put $10m to work, and shouldn't try to, because they aren't at that point in their development.

</comment><comment><USER15> "[Fundraising] is literally cash."

Right. It's a fancy payday loan. It's cash you owe to other people, often with real fun participating-preferred shares making sure they get theirs before you get yours, and as you get yours.

DO NOT SPEND THAT CASH ON FINE WINE or fancy office decor or other nonproductive stuff.

Making the news for closing a round is (I'm told: I never won the lottery) like making the news for winning the lottery: you'll suddenly have lots of new best friends hoping for some of the money. The difference is, if you give away your lottery winnings, you don't have to also pay them back tenfold to the lottery commission.

Getting a payday loan is nothing to brag about. Getting a round of financing isn't either. It's just a way to fuel your business. Be careful out there.

<comment><USER16> A 'raise' is a huge signal that the company has operated successfully in at least some areas, and some 'intelligent people who should know better' are making a 'big risky bet' on the outcome.

That someone is willing to put $X in likely an entirely unprofitable company is a very strong indicator that they are doing something right.

Think of it this way: if 95% pitches don't get funding, it means that funding is roughly a sign the company is in the top 5% of companies at that stage.

A round A raise means they are the best of those who got seed and didn't get to round A. A seed is for those who made it past Angel, because so many don't.

And - 'money is not just money'. Money is the essential fuel, without which it's nary impossible to build a company.

There are tons of unfunded companies that would be able to be considerably more successfull were they to have 'more money' \- but they just don't fit some investors criteria, or they don't have the right fundraising skills.

</comment></comment><comment><USER17> well, someone should tell Techcrunch this...the fact that fundraising announcements dominate startup/media relations arguably makes fundraising a stage lingua franca for better or for worse.

A few thoughts on fundraising as a milestone - I think it wholly depends. There is no doubt that it is merely the ability to convince an investor that you will make them a bunch of money, but when I see founders that I know raise a round and know that they did on merit, sales, shipment (I am in the hardware world) etc then I think it is a milestone in that its often based on accomplishment. There is another side here though, I have seen a handful of massive rounds raised without anything besides a founder with an idea, and a background. In particular, there are at least a few hardware startups (I won't call these out explicitly) that raised north of 10M simply because their founder was a VC and the old boys club of silicon valley tends to really place a lot of value on trust over execution or at least as a substitute. Similar for founders that have executed in the past. Most of these companies have also downsized and struggled a bit from what I have seen after burning massive amounts of cash. My observation is undoubtedly wildly biased and anecdotal but I have seen a surprising number of companies without a shipping product raise 10M-30M which is seemingly crazy to me.

</comment><comment><USER5> Even back to 2011 I remember reading similar things here on HN about how raising funds isn't something that is a milestone. I think that is a generally good rule when thinking about the question "can this company last long term."

That said, I think this analysis works for companies that do something small to start with, fundraise on fundamentals and grow from there.

Where I think it doesn't make sense is for hard-tech companies that can't "start small" in the same sense and are moonshots from the start. These companies will take years to show an MVP and are actually making new core technologies: SpaceX, Cruise etc...

So having a 100M seed round might be necessary and is a huge win because you can actually hire the people and build the infrastructure you need for success.

Now the big question is, are those the types of companies that can be successful as startups, or (what I often hear) should we just only assume bigco can execute on those?

</comment><comment><USER18> "When a measure becomes a target, it ceases to be a good measure."

\- Goodhart's Law

</comment><comment><USER19> I agree with the core point and it's nice to have YC's vote of confidence on this issue. However:

1) While the value of fundraising is currently overrated, it's important to not go too far in the opposite direction and underrate it.

2) I would have liked to see an objective alternative proposed in this article.

<comment><USER20> RE 2): The article proposes "success". Each company and perhaps founder group will have it's own definition of success, but that's what you should aim for. Do you want to be profitable? To change the world? To be a unicorn? Whatever milestones correlate with that goal - that's what you go for.

<comment><USER19> Fair point, but the author still could have given some examples of common ones.

</comment></comment></comment><comment><USER16> Yeah yeah yeah, I get it. But no.

Raising money is one of the hardest things on the planet to do, right after 'building a great product and getting revenue'.

And you don't get money 'just because you have a good product and company'.

Let's not be naive about that - there is a lot of 'game' to raising money, and to have done that successfully is a huge 'win' for the founders.

So sure, it's 'not a milestone', but really it is. The founders have to put so much energy into it, it's very risky, and since most companies absolutely must raise subsequent rounds after Angel ... it's a _big_ milestone.

You can have a decent company and not raise money. That's reality. So there's 'existential risk' in that part of the process.

Sure, it's by no means an excuse to rest on one's laurels, or to think it equates to success is fine - but - to guffaw founders for exhibiting pride, excitement, and even a 'sense of accomplishment' for having done it is just unfair.

Besides - the mere fact of raising money ups the companies cred quite a lot as well, which is very beneficial outside of simply the financial aspects.

</comment><comment><USER12> Hey folks - new blog post out this morning - happy to answer any questions

<comment><USER21> Hi Michael! How do you (& ycomb) feel about startups that require huge amounts of money to function? Vroom, OpenDoor, etc?

<comment><USER22> Is OpenDoor a startup, or a REIT ?

<comment><USER23> We're a startup that builds software to simplify real estate, and we use capital markets to power that experience. The ability to buy the home directly allows us to put the homeowner in control of their timeline. I like pg's definition of startup here [http://www.paulgraham.com/growth.html](http://www.paulgraham.com/growth.html)

Internally, we talk about fundraises as "moments" but not milestones. Fundraising takes work and is critical to growing our business, so we recognize that effort but don't celebrate rounds as successes for the business or for our customers.

</comment></comment></comment></comment><comment><USER24> So if we agree that rounds are not milestones, then what is some good replacement terminology? Anyone can _say_ they have product-market fit, or that they're "profitable" in some pro forma sense.

It would be great to have some concepts that are a little more verifiable, that provide alternate milestones for folks to talk about. I completely agree that it's silly to rate startups based on what round they've raised, but at the same time there aren't alternative shorthand phrases in the current lexicon.

</comment><comment><USER25> It's become conventional wisdom that fundraising is not to be praised. I would disagree. Having cash in the bank is absolutely critical to building a company and raising money is not easy.

<comment><USER26> Nothing saves a company like cash in the bank, but nothing kills a company like increased burn due to raising followed by the inability to raise the following round.

<comment><USER25> Burn is 100% in company's control, fundraise 100% out.

<comment><USER27> Not true. Certain people have connections and experience as well as reputation to raise money much more easily.

<comment><USER25> Maybe more easily but ultimately 100% someone else's decision. Whereas spending is 100% in company's control.

</comment></comment></comment></comment></comment><comment><USER28> "Using fundraising itself as a benchmark is dangerous for the entire community because it encourages a culture of optimizing for short term showmanship instead of making something people want and creating lasting value."

This.

To be sure, fundraising is a milestone of a certain type -- just never conflate it with an accomplishment. Buying a home is a milestone; it's also a gigantic liability.

TLDR: let's keep our eye on the ball.

</comment><comment><USER29> They _are_ milestones, if your startup is just a vehicle for an investment Ponzi scheme, where the bulk of the management effort is devoted to getting to the next round with a higher valuation, rather than building a lasting business and letting investment flow naturally from business needs. Too many startups today have tipped toward the Ponzi side of the scale.

</comment><comment><USER30> Hey Michael! What do you think about access to capital? Can too easy access to capital actually be a bad thing for the tech world?

I feel like, in the perfect world, there is a balance between making it easy to raise money (for good ideas) but also challenging so founders have to really work for it.

<comment><USER12> Too much capital has certainly harmed companies (of course too little as well).

</comment></comment><comment><USER31> I cynically disagree: when a founder sells 3-15m worth of his equity in an upround, his goal inevitable shifts from achieving the sustainability and profit to "prepping" the stats for a new round...

</comment><comment><USER32> Spot on Michael.

</comment><comment><USER33> Sanity!</comment>


foone: Pictures of Keyboards - <AUTHOR> https://twitter.com/foone/status/1178881417737994240 <comment><USER2> F20 seems useful to me. Well, no, not really. I don't even get why we still have F's at all!

I've been trying out a split, fully programable keyboard as of late, mainly for reasons of wrist pain after heavy use of shitty keyboards. Literally the first thing that struck me was the fact that you can easily have at least two keys for your thumb fingers that can act like Space and Enter when tapped, but as Ctrl and Alt, when held. This was after an hour of use and the natural though came "what the f __* are we still doing with these weird keyboards, and why the hell are the big companies like Microsoft and Dell that sell them by the millions, not able to invest a bit of money even for this smallest of improvements and instead we get wireless junk and pretty audio buttons and in general a cheap product that is bad for your health?! ".

I've also found a nice collection of Lisp Keyboards [1]. It was posted here on HN like a week ago without much success. There is some nice keyboard history in there, too. Hope you'll find it interesting. Thanks for posting this!

[1] [https://deskthority.net/viewtopic.php?f=2&t=98&ok](https://deskthority.net/viewtopic.php?f=2&t=98&ok)</comment>


Joe Rogan Experience #1315 – Bob Lazar and Jeremy Corbell - <AUTHOR> https://www.youtube.com/watch?v=BEWz4SXfyCQ <comment><USER2> A very interesting listen. I'm still not sure if I believe all of his stories.</comment>


FCC: Yup, we're going to stop "paid prioritization" on the 'Net - <AUTHOR> http://arstechnica.com/tech-policy/news/2010/12/fcc-priority-access-deals-unlikely-to-get-past-new-open-internet-rules.ars

<comment><AUTHOR> the only issue that i can see is the exemption of wireless service providers. wireless mobile internet IS the future.</comment>


Computer gamers 'have reactions of pilots but bodies of chain smokers' - <AUTHOR> http://www.telegraph.co.uk/technology/video-games/7808860/Computer-gamers-have-reactions-of-pilots-but-bodies-of-chain-smokers.html

<comment><USER2> As a former 'professional' (sadly I laughed while typing that) gamer, I can attest that most of the competition out there is very much out of shape. Not necessarily overweight, but reliant on junk food and stuck in a chair. World of Warcraft and MMO players are the worst. Generally FPS players tend to have some idea of fitness.

There are the occasional exceptions. For example Sean Fanning (former Napster creator) competed at WoW and moved onto Jujitsu. I do Muay Thai and Jujitsu as well, and have some friends that still compete and work out regularly. Fatal1ty, the 'famous' gamer played tennis every day to keep his muscles sharp.

Sadly, despite my twitch finger/eye reflexes on a controller, I'm a sitting duck when anyone throws a punch at me :( Those reaction times don't really translate to physical reactions.

</comment><comment><USER3> I mean the gamers were compared to athletes that train to be in peak physical form. I wish they compared gamers to the averagely active also.

<comment><USER4> To be fair, "top" gamers were compared to "top" athletes. And "the body of a 60-year old chain smoker" is worse than average.

<comment><USER3> True, that isn't a very flattering comparison and is, I hope, worse than average.

</comment></comment></comment><comment><USER5> "He said: ''Someone of this age should be much fitter, but perhaps this is the occupational hazard of the professional gamer who can spend around 10 hours a day in front of a screen. "

Not the best news for those of us who _work_ 10 hours a day in front of a screen.</comment>


Ask HN: ChatRoulette != FAD? - <AUTHOR>

Please don't hold this against me... but something about ChatRoulette has gotten me very excited over the past few weeks. Before the creator took ownership, I kept telling my roommates that it was going to be some solo hacker who had a weekend project. This application encompasses much of the HN/YN personality, and I am sure the founder does as well. But, the real question is... will it last? <comment><AUTHOR> There is something special there. Over the past week I have shared a handful of hilariously funny experiences with some of my closest friends and coworkers. Stories shared with people close to you end up meaning something. If there is anything that makes ChatRoulette a legitimate product, it is that concept of the "shared experience." My roommates and I are still laughing about the half-hour we spent together last week. It isn't something to be easily forgotten, even with the inclusion of the press echo chamber.

</comment><comment><USER2> return false;

ChatRoulette == FAD</comment>


Linux Foundation head proclaims year of Linux desktop – from a Mac - <AUTHOR> https://www.itwire.com/open-sauce/79948-linux-foundation-head-proclaims-year-of-linux-desktop-from-a-mac.html <comment><USER2> Kind of related: at Google IO this year all speakers were using macbooks, but i have heard that a lot of teams have transitioned to chromebooks.

Maybe macbooks are preferred for presentations as many projector systems have problem with Windows and older Linux?

</comment><comment><USER3> Well, he did say "linux desktop", not "linux laptop" :D</comment>


You can block Donald Trump from your Facebook - <AUTHOR> http://www.thememo.com/2016/10/18/fb-purity-trump-fb-purity-donald-trump-block-donald-trump-news-facebook/ <comment><USER2> How to create an echo chamber: the guide

Why are people so aversive of practical discussion? If not Facebook (which most people use, unlike specific discussion sites) then where? I admit that not all Facebook debates about politics are very productive but they need to be held somewhere.

I understand this article is supposedly aimed at non-Americans, but the point stands. No matter who is elected it will have consequences for all.</comment>


Ask HN: Who wants to start a startup? - <AUTHOR> I'm wondering how many people on HN want to start a startup, but don't know where to start? Maybe you don't know what idea to start it around, or you have an idea but aren't sure if it's any good and don't know how to validate it.
Maybe you feel like you need a cofounder to have a better chance at success but don't know anyone who is interested.
This all describes me. I'm wondering who else out there this describes?
From those who have had these same feelings and started successful startups, how did you get around these problems? <comment><USER2> The same is true of nearly every "glamorous" profession. Actor, performing artist, doctor. In the abstract sense they look exciting, pay great money, but they take hard work to get there. There are far more people who say they want to be doctors, actors, or rock stars than there are people willing to dissect cadavers in medical school, endure endless auditions, or shop demos to record labels.

<comment><AUTHOR> I don't think the doctor comparison is very appropriate to what I'm describing. There is a very prescribed path to becoming a doctor. You go to school, pass some exams, become a resident, etc. You know exactly what you need to do to be successful.

The same is not true as a startup founder. You can read about what other people have some, but you can't do exactly what they did. Your idea will be different, market will be different, timing will be different, team will be different, etc.

Anyway, I'm looking for other people who want to work on side projects/startups but aren't sure how to get started/want to meet other people in the same boat.

<comment><USER2> The doctor comparison is more apt than you may realize, as there are very many specialties and lots of different paths to get there. Especially with the residency match program no doctor can say for certain which program he or she will get accepted to or where he or she will practice.

</comment></comment></comment><comment><USER3> Same here, I feel like I'm just not ready to manage the entire thing, raise money, etc. I've got the tech pretty much worked out, but that's the easy part - the hard part is actually make it scale, deal with customers, money, investors, legal/regulatory issues, etc.

<comment><AUTHOR> I'd love to learn more about what you're doing.

<comment><USER3> Working on a mobile MVNO with good customer service and innovative features (multiple mobile numbers, etc). The main issue is that the industry is a race to the bottom and it's hard to compete with the existing players and their extremely low prices (given that I plan on actually doing things right, so can't just outsource everything to the lowest bidder like the competition does).</comment></comment></comment>


HAProxy 2.0 - <AUTHOR> https://www.haproxy.com/blog/haproxy-2-0-and-beyond/ <comment><USER2> I've always used Nginx as a proxy, but I've seen HAProxy mentioned, what are some of the benefits of using HAProxy over nginx as a proxy or load balancer?

<comment><USER3> What open-source NGINX lacks that open-source HAProxy has:

* ACL rules with full support for logical if statements [1]

* active health checks

* end-to-end HTTP/2 [2]

* Robust logging or a dashboard with metrics

* The ability to read env variables

* session stickiness

* DNS service discovery [3]

These are just things I'm aware of, there could be a lot more.

HAProxy has shown itself to perform better for certain users such as Booking.com [4]

[1] [https://www.nginx.com/resources/wiki/start/topics/depth/ifis...](https://www.nginx.com/resources/wiki/start/topics/depth/ifisevil/) [2] [https://trac.nginx.org/nginx/ticket/923](https://trac.nginx.org/nginx/ticket/923) [3] [https://danielparker.me/haproxy/nginx/comparison/nginx-vs- ha...](https://danielparker.me/haproxy/nginx/comparison/nginx-vs-haproxy) [4] [https://events.static.linuxfound.org/sites/events/files/slid...](https://events.static.linuxfound.org/sites/events/files/slides/DLB- LinuxConf-Berlin.pdf#page=18&zoom=auto,-104,619)

<comment><USER4> WRT > end-to-end HTTP/2 [2]

I think this is supported.

We are using NGINX with its core Stream module to receive HTTP/2 encrypted traffic, and loadbalance it (with random or least_conn) algorithms -- to each of our backends.

Traffic stays encrypted end-to-end, and it remains HTTP/2 (because the Stream module works at TCP level, not http so it does not care http/2 or http/1 is used).

It seems that in the ticket [2] that you mentioned, the commenter at the end is asking exactly for this. And that works well.

It is called often 'pass-through proxy'. The article here explains how to set it up

[https://serversforhackers.com/c/tcp-load-balancing-with- ngin...](https://serversforhackers.com/c/tcp-load-balancing-with-nginx-ssl- pass-thru)

We loose information about the Web-browser's IP address at our backend. For for privacy-enforcement reasons, we actually do not want to have it at our terminating points (our backend apis). And also, if we ever need it -- I thin this can be enabled with the proxy protocol.

<comment><USER3> HAProxy can proxy HTTP/2 at Layer 4 or at Layer 7, to get all the HTTP message data and perform routing based on that, etc.

<comment><USER4> Thx. Yes, NGNIX will not be able to balance HTTP/2 traffic based on HTTP headers. But HAProxy 2.0 can.

In our case, we are not un-encrypting at the load balancer, so we cannot see the HTTP headers anyway. Instead we use NGINX to load-balance based on TCP- level info.

</comment></comment></comment></comment></comment><comment><USER5> Thoughts on HAProxy vs. Envoy, or as the data plane for a service mesh?

<comment><USER6> It definitely depends on your use case, so it's hard to tell what's better for you. HAProxy is solid and doesn't take a long time to get started.

At the same time, some of the HAProxy 2.0 features have already been available in Envoy and tested in production, at scale (if HAProxy provided those features, there wouldn't be a big need for Envoy). For example, Envoy is pretty extensible, has good performance and has good support for dynamic cert management (including service-to-service mutual TLS).

</comment></comment><comment><USER7> PSA: if you are building your own HAProxy binaries, 2.0 replaces the confusing linux `TARGET`s (`linux2628` and the like) with a single target "`linux- glibc`", that name may be even more confusing, as that's the target you need to build HAProxy even if you are using musl instead of glibc.

<comment><USER8> If you're seeing good support for musl, I'd be interested in receiving a patch to add it as another combination. I prefer to keep the libc apart from the kernel (the mistake we made long ago was to mix them) so that we don't have issues anymore when building on other libcs. For example getaddrinfo tends to be bogus on uClibc and must not be enabled there. And threads do not work on dietlibc if I remember well.

<comment><USER7> My experience with HAProxy is limited to maintaining [https://github.com/ricardbejarano/haproxy](https://github.com/ricardbejarano/haproxy), a HAProxy Docker image, which has both glibc and musl variants.

I haven't used HAProxy in any environments other than testing, but as far as I can tell both variants behave equally. In fact, haproxy.cfg for both images is the same, they only differ in their build flags.

<comment><USER8> Oh yes absolutely! For example last time I checked libmusl, you didn't need -lrt, -ldl, -lcrypt nor a few others which I forgot about. It just provides empty stubs for those so that you can use the same build options as you regularly use with glibc. However for me threads were not supported (it was on a MIPS, lacking some 64-bit atomic ops haproxy relies on). So I'd be tempted to suggest having less options by default with musl since it's mostly aimed at embedded systems, and leaving it to users to choose if they want to enable more or not.

Correction: this requires to add -latomic there (just tested). I should mention this in the INSTALL file.

</comment></comment></comment></comment><comment><USER9> This is a list of nearly every feature I've ever wanted from haproxy. Truly wonderful work!

<comment><USER10> Same here, except for a Consul integration, so we didn't have to rely on SRV- records, but I guess you can't have everything :)

<comment><USER3> With the Data Plane API, expect to see tighter integration with Consul. For now, there is this integration [https://www.haproxy.com/blog/building-a- service-mesh-with-ha...](https://www.haproxy.com/blog/building-a-service-mesh- with-haproxy-and-consul/)

</comment></comment></comment><comment><USER11> The conversation in this thread has made me wonder after reading it if anyone uses Apache2 as their webserver anymore.

Edit: seems many still do! I thought it was dying slowly as php popularity was going down.

<comment><USER12> What conversation?

Been using apache2 for like 20+ years now. It is doable to switch to something else, but would probably require effort with various details, etc. It works well for our moderate loads, so not really urgent to change it.

<comment><USER11> No one up till this point ever mentioned using HAProxy with Apache

<comment><USER13> The conversation has mostly been about NGinx vs HAProxy, at the balancer level, has it not?

</comment></comment></comment></comment><comment><USER14> Proper Layer 7 retrying is huge. I've been waiting for this for a while.

</comment><comment><USER15> Is the v1 config backwards compatible with this? I can't see it mentioned anywhere so assume you can just upgrade in place?

<comment><USER16> Apart from a few new warnings for long-deprecated options it is compatible. HAProxy 2.0 is not a major version. Willy apparently just dislikes two-digit versions in the second place.

<comment><USER8> Exactly, I want directory listings to remain alphanumerically ordered, not like when you want to download Git and end up believing 2.9 is the latest one :-)

</comment></comment></comment><comment><USER17> Now that HaProxy uses HTX internally to quickly represent header flags, I wish they'd add that to their "Proxy Protocol". Back in the day, Apache/Tomcat used AJP to transmit parsed HTTP state to backend servers to avoid the re-parsing overhead.

</comment><comment><USER18> email version of the announcement: [https://www.mail- firstname.lastname@example.com/msg34215.h...](https://www.mail- firstname.lastname@example.com/msg34215.html)

</comment><comment><USER19> Some months ago I decided to move every little things running on some VPS to docker (so I could move those apps at will and have apps with incompatible dependencies running on the same VPS).

I looked into Haproxy, set a bunch of rules and fall into static IP management hell. Then I tried Traefik mainly because of the HTTPS auto-renewal feature but the ability to tag docker containers with DNS regex (so traefik knows how to reverse proxy traffic) is a god send.

Is there something like that in HaProxy 2.0 (HTTPS auto-renewal and container tagging) ?

<comment><USER20> I would check out [https://github.com/caprover/caprover](https://github.com/caprover/caprover). You can run multiple apps on 1 VPS and HTTPS renewal is automatic.

</comment></comment><comment><USER21> If I were to use it as a k8s ingress, how would I do OCSP stapling? nginx does that for you, but with haproxy you've always had to hack something together to add a .ocsp file (which has to exist at startup) and reload externally.

I also see no option for client certificate auth or TLS versions and cipher suites in the repo.

I guess it's still better to handle TLS outside of haproxy.

<comment><USER8> Strange that you see no option for client certs because that has been supported from day one. In addition we even support SNI-based client auth even with wildcard certs. Same for TLS versions and cipher suites.

Further, just look at [https://istlsfastyet.com/](https://istlsfastyet.com/) and you'll see that haproxy, H2O and nghttpx are the only 3 implementations checking everything (and haproxy was the one inventing dynamic record sizing).

So it seems your opinion on haproxy's TLS support is not that spread!

<comment><USER21> I know haproxy itself supports that and have used those features with static configuration, but does the k8s ingress controller out of the box?

<comment><USER8> I don't know as I have no use for it. Just check the article, it presents some of the things done with the ingress controller, it should answer some of your questions I guess.

</comment></comment></comment></comment><comment><USER22> Are there any programmble http proxy servers? I write a fair bit of VM/container control software and often need to map URLs to specific entities on the network dynamically. Never found a good programmable proxy with routing table API and always had to hand roll.

<comment><USER23> By programmable you mean configurable via a REST api?

<comment><USER22> Yes, pretty much. E.g. DigitalOcean's online SSH terminal. Programmable routing of websockets code to backend VM.

</comment></comment></comment><comment><USER24> Such a great project! I was a squid guy, then nginx and now since nginx stopped getting new features due to the commercial edition I am switching. Thank you developers for this amazing work!

<comment><USER8> To be fair to squid and nginx, they don't do the same things. Squid is mainly a forward proxy. Nginx is mainly a web server. There's no reason for not using them anymore for these use cases where they excel.

<comment><USER25> I use haproxy as a forward proxy on my personal computers mainly for ability to control SSL options, sniffing SSL traffic and to support non-SSL enabled clients. I do not need any caching so squid seems inappropriate.

<comment><USER25> s/non-SSL/non-SNI/

</comment></comment></comment></comment><comment><USER26> Can HA proxy serve static files like nginx?

<comment><USER3> Although HAProxy is not a web server, it does have Small Object Caching so files can be cached on the proxy. [https://www.haproxy.com/blog/whats-new- haproxy-1-8/#http-sma...](https://www.haproxy.com/blog/whats-new- haproxy-1-8/#http-small-object-caching)

</comment></comment><comment><USER27> Does it have proper support for HTTP/2.0?

Last I checked, only Nginx really did it right.

<comment><USER13> As of last April, several implementations (including HAProxy) were more "right" than Nginx: [https://twitter.com/tunetheweb/status/988196156697169920](https://twitter.com/tunetheweb/status/988196156697169920)

<comment><USER8> I never saw this classification. Since 1.9 haproxy passes 100% of the h2spec tests.

<comment><USER13> Nice work!

</comment></comment></comment></comment><comment><USER28> Sounds like HAProxy 2.0 is Envoy. I would personally (and do) just use Envoy, as everyone else is already using it and the bugs they've found have been fixed.

<comment><USER8> This is a strange assertion. This is not envoy, it's haproxy as you've always known it plus all the features people have been asking for recently, without removing what makes it fast, robust, compact and flexible. From what I've seen you can't for example use dynamic weights in envoy, protect from DDoS, perform queuing to protect your servers, use true leastconn or weighted hash/roundrobin, stick on arbitrary information nor synchronize it between members of the cluster, create complex routing rules, set the source address from headers, perform transparent proxing, etc.

These are two different projects. One was initially designed for the hostile edge and excels here. The other one was initially designed to be used as a side car deep into your infrastructure and excels there. There is obviously quite some overlap between the two, sometimes with different terminology (like "circuit breaking" in envoy that haproxy calls "timeouts" and "queue limits"), and users demands make each of them evolve a bit in the area they are less good (i.e. where the other one excels). But they are still quite different beasts.</comment></comment>


XHTML validation is like English grammar. - <AUTHOR> http://drewyates.net/on-xhtml-validation

<comment><USER2> yeah I believe its a little overated. Great analogy.</comment>


Ask HN: Subdomains you don't want your user to have - <AUTHOR>

For my web app, each user get their subdomains. Are there any list of subdomains that you want to keep for yourself and not have your user to register?<p>Example. blog, mail, www (duh!) ... <comment><USER2> Anything listed in /etc/services.

All 2 letter subdomains (national subdomains), and thus all 1 letter subdomains for consistency.

</comment><comment><USER3> m.example.com --mobile

ns?.example.com --name servers

ftp.example.com --FTP</comment>


Show HN: Hue-Wheel for HTML5 browsers - <AUTHOR> https://github.com/epistemex/huewheel

<comment><AUTHOR> This is a hue/saturation/lightness wheel control, or color-picker if you like. It has plenty of options and can be adjusted in size and appearance. Being able to super-impose it on top of the image being adjusted was a key factor (for design reasons) but not essential for operation. It is licensed as MIT.</comment>


Ask HN: Do you read Medium.com - <AUTHOR> I am attracted to the visual nature of the site and the ease at posting content -- which I do often for Aha.io But the reality is that posts that drive 15K views elsewhere drive 50 there. Do you read Medium.com? If not, why? <comment><USER2> If a link leads to Medium, I tend to avoid the article. Just like Buzzfeed, Upworthy, Forbes, etc.

<comment><AUTHOR> Can you tell me more about why you avoid it? What is it about Medium that turns you off?

<comment><USER3> For me, it's because Medium is frequently poorly researched and/or written blogspam. The URL provides no context about who or what wrote it.

<comment><AUTHOR> Ok, so you perceive it to be more spammy with lower quality content than HN or other sites. What other sites are at the top of your pyramid? Also, are you a dev?

</comment></comment></comment></comment><comment><USER4> Every time I see a medium url on HN I shudder and skip past content that just feels manufactured and forced on us.

<comment><AUTHOR> It's interesting that you think they are manufactured. I find the non technical content on par with what is posted to HN. Can you share more about why you have this opinion?

<comment><USER4> Part of it is volume. HNSearch suggests medium got 425 submissions in the last 4 weeks. That's a higher submission volume than TechCrunch (327), ArsTechnica (193) or the BBC (195) or even The Guardian who broke most Snowden/NSA news (181).

Belying this volume is an almost complete lack of quality. The most popular 10 articles in the last 4 weeks from medium and the above sites:

medium:

        150  136  107   47   32   28   17   16   14   13

TC:

        462  183  175  146  141  120  113   99   80   74

Ars:

        524  316  271  212  183  170  149  122  121  109

BBC:

        915  167  166  123  110   93   81   75   59   58

Guardian:

        388  328  293  185  184  183  182  156  162  149

The best of medium is just not very good anymore and it's a sharp and sudden fall into very forgettable content which makes you wonder why it's even submitted let alone so much.

</comment></comment></comment><comment><USER5> Almost daily. It's like shopping at Marshall's (might just be an East Coast store) - there are some really killer finds amongst the muck, you just need to be aware enough to recognize them. (Particularly since it opened to everyone recently.)

<comment><AUTHOR> Ok, so you actually are a reader. I think your point is true for all news sites. And just fyi, Marshalls is also on the West Coast.

<comment><USER5> Big time reader (and contributor). Fell in love with it from the first day, couldn't wait to be invited. It's certainly gone downhill a bit since it opened up to everyone (spotted spam a few times), but still some great writers that choose it as a distribution platform. And thanks on Marshalls, lol.

</comment></comment></comment><comment><USER6> If a link points to medium.com (such as from HN or twitter or somewhere else) and I intend to read the article, yes, I read it. But I don't goto medium to browse news.

<comment><AUTHOR> I wonder if that is a common theme. I am curious to hear what others say. It might also just be the nature of "news" sites.

<comment><USER6> Personally, the reason I don't go directly to medium for news is I think their content is all over the place. Some articles are about life lessons, some are about programming, some about startups, etc... If I'm reading the news, I tend to look for a given theme at any given time. If I'm working, I'm looking to read about programming stuff. If I'm watching TV and I have a laptop in front of me, I may want to read about current events Going to HN or gizmodo or ... usually presents me with a specific topic. Medium (IMO) does not.

<comment><AUTHOR> Interesting. I just noticed today, while posting an article, that they now have additional categories which further splinter the news. It allows for more specific tagging of content but makes it harder for posters and readers to hone in on what they are interested in.

</comment></comment></comment></comment><comment><USER7> No. It seems they allow anyone to write on medium and most of the authors seem to be pretty bad at providing quality content.</comment>


My Startup, a Retrospective - <AUTHOR> http://www.rdegges.com/my-startup-a-retrospective/

<comment><USER2> Great writeup. I really appreciate when people take the time to do this. And also to risk dealing with the jackass criticism that usually comes from putting yourself out there on the internet.

One thing that was underemphasized: They built in response to actual need, which was great. If you click through to the announcement post [1], he explains that he had spent 4 years doing telephony stuff, and was always bothered by the lack of an API.

Good for them for taking their small proof of need and building small. And then using that to get more proof of need as a way to justify further investment. That's in contrast to a classic startup mistake, which is to jump in and build something you just _think_ other people need.

[1] [http://www.rdegges.com/im-working-on-a- startup/](http://www.rdegges.com/im-working-on-a-startup/)

</comment><comment><USER3> I think that the author is a bit unfair to himself, in the conclusion. He wrote the following:

> _" I think the single largest mistake we made was to not invest more time > into OpenCNAM as it was growing. Instead of devoting time to other projects, > we should have doubled down and focused on developing the product even more, > and made it into the best possible product.

At the time, it seemed like a good idea -- but in retrospect, I believe that if we would have really focused on adding more features to the API service, cleaning up the user dashboard, and fixing some UI elements -- we could have won a lot more potential customers over."_

While he acknowledges that this is only apparent in hindsight, he does not seem to give himself credit for diversifying his risk portfolio at the early stage, when success was uncertain. It may be that doubling down earlier would have put the business in a better situation now, but that does not mean the expected outcome of doubling down was better than the expected outcome of maintaining parallel projects.

</comment><comment><USER4> >>A few weeks after our 'real' launch, we started having issues keeping up with customer demand. The Django site and API service I had built were hacked together quickly, and were not scaling properly

Since they ended up starting their re-write just weeks after launch- This is a great example of how the opposite of over-engineering is not adequately planning for success. Startup teams tend to naturally learn towards one or the other extreme and need to fight for balance. I personally try to remind myself of this fact as much as possible :)

<comment><USER5> But he only did the rewrite after the first version proved there was a demand for the product. Sounds better than spending a few weeks (he did 20h!) on V1, only to find out there is no demand for it.

<comment><USER6> I agree: there's no indication they had any problems serving their customers at any point, nor that they got crushed by hosting costs. I'd contend the "optimisation balance" was just about perfect.

<comment><USER4> >>there's no indication they had any problems serving their customers at any point

"we started having issues keeping up with customer demand"

"To keep things running smoothly, I scaled up our Heroku Dynos, but quickly realized that things needed to be rewritten as soon as possible to avoid major problems."

What you are saying is possible, by the article suggests they either did have problems serving customers or there was major risk of that happening...

<comment><AUTHOR> Author here: we never had any customer-facing issues, but (and a big shout out to New Relic), NewRelic helped us identify that we were dangerously close to a catastrophe if we kept growth steady.

We did the rewrite to avoid problems, and by the time we relaunched our new Flask backend we were struggling to support customer demand. All in all, NewRelic really helped save us here ^^

<comment><USER7> Could your performance problems be closer related to [http://news.rapgenius.com/James-somers-herokus-ugly- secret-a...](http://news.rapgenius.com/James-somers-herokus-ugly-secret- annotated) than the performance of Django or your code?

<comment><AUTHOR> Nah, I've actually written quite a bit about Heroku (I authored a book on it). The issue was us having complex problems with Django and our supporting libraries: we needed to have database connection pooling, we had to rip out the tastypie REST framework due to complications with scaling the user model, and a bunch of other stuff.

Heroku has always been great for us!

I'm always a bit surprised about the RapGenius stuff because their problem is not really a Heroku specific issue, IMO. If you're running code on Heroku (which uses random load balancing), you need to have a proper multi-threaded web server to serve requests concurrently.

In our situation, we were able to service many concurrent requests per dyno, and maintained very low response times (10ms or less), in most cases.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> This is a great write-up. Due to the title, it took me until 3/4 of the way down to realize that your startup did not fail, but actually is succeeding!

</comment><comment><USER9> Django n00bs like me owe a great deal of our learning to Randall. His book, 'The Heroku Hacker's Guide' is an excellent resource for anyone looking to deploy a Django project quickly and cleanly to Heroku.

To that end, he also created a fantastic Django template `django-skel`[0] that uses good industry-standard practices. As a newbie, `django-skel` helped me understand code modularity and the importance of organizing your code in more ways than one.

To top it all, Randall is a thoroughly nice guy to chat with. I'm glad OpenCNAM is growing and I wish it continues to grow for a long, long time to come. :)

[0] [https://github.com/rdegges/django- skel](https://github.com/rdegges/django-skel)

<comment><AUTHOR> Woa man, I'm extremely flattered! Thanks so much ^^

<comment><USER10> I'd like to echo this sentiment. Thanks Randall!

</comment></comment></comment><comment><USER11> I really like to hear success stories from honest people with a real value- adding product. This isn't just some social mobile app or a marketplace for X, you solved a real pain point for a lot of people. Congratulations on all the success and good luck going forward! Thanks for taking the time to break all of this down for HN.

</comment><comment><USER12> I know there's no formula for a successful startup, but if you had to pick one, this would be it: Build an MVP, get product validation, scale, find paying customers, make outside hires.

<comment><USER13> scale before find paying customers?

<comment><USER2> I think you need to find proof of paying customers before you scale. Otherwise you can't justify the scaling investment. But then the order you do them in depends on local conditions, and it's usually a stepwise thing where you alternate some of each.

</comment></comment></comment><comment><USER14> Great article, the explanation of rearchitecting the app left me hungry for more!

I currently work on a Django project and I'm pushing tastypie to its limit as well. Working on switching to django-rest-framework.

At a high level, what does your flask service architecture look like? I dug through your blog but couldn't find much. I'm particularly curious how you handled migrating from a django database and schema to whatever you ended up using.

<comment><AUTHOR> At a high level, the rewrite included the following services:

\- opencnam-accounts (user accounts, and billing API) \- opencnam-www (the public facing site and web portal) \- opencnam-api (the developer API service)

We're currently splitting the backend up into several other components as well, so in the end-game things will look more like this:

\- opencnam-www \- opencnam-api \- opencnam-auth (or possibly use Stormpath) \- opencnam-billing \- opencnam-email (handling drip email, etc.) \- opencnam- logs (all logging information, metrics) \- opencnam-delivery (telco CNAM retrieval stuff) \- opencnam-storage (our CNAM storage product, still in development)

Each of the services basically gets their own Heroku app, their own NewRelic monitoring, and their own resources (cache, database (if necessary), etc.).

I can't even begin to say how helpful having multiple small apps actually is. Our codebase shrunk in size (total lines of code), became WAY more maintainable, way simpler, and way nicer in general.

As a side effect, it's also a lot easier to do teamwork type stuff, since you can have one person work on one service for a while, etc. Makes keeping things running smoothly really easy.

I wrote a bit about this in some other blog posts a while ago:

\- [http://www.rdegges.com/service-oriented-side- effects/](http://www.rdegges.com/service-oriented-side-effects/) \- [http://www.rdegges.com/service-oriented- problems/](http://www.rdegges.com/service-oriented-problems/)

</comment></comment><comment><USER15> Good article. Maybe I missed it, but where did you get the database of number caller ID lookups from originally?

<comment><AUTHOR> We've had to get it from several places over the years. We went from various sorts of telco contracts, to CNAM aggregator deals, to everything in between.

Right now we get CNAM from the authorative telco sources.

</comment></comment><comment><USER16> Your post has a lot of points that lead the way for us who are starting. Very helpful and honest. Thank you.

</comment><comment><USER17> Thanks for the share! Always great to read a post-mortem and glean wisdom and learning lessons!

</comment><comment><USER18> Great work! Thanks for sharing.

</comment><comment><USER19> This looks like it is probably a great lifestyle business (based on the claimed API requests and pricing) but I'm not sure that I would call it a startup. It sounds like it hasn't even had an employee devoted to it until recently. There isn't anything wrong with that at all but for a "startup" this wouldn't be a great outcome.

[http://en.wikipedia.org/wiki/Startup_company](http://en.wikipedia.org/wiki/Startup_company)

<comment><AUTHOR> We didn't need VC or anything like that to get started, so our expenses were very low. It also did (and does) generate quite a bit of revenue, so I'd say it's definitely outside the 'lifestyle business' category.

In the end we had all partners (3 of us), and a full time employee -- so it was fairly big I'd say (all with profitability, etc. from day one).

Along the way we could have definitely hired more engineers and grown the team, but we decided to treat it as a passive business after we got some big successes and didn't think hiring / etc. would be necessary (at least for a while).

If I could go back in time and re-do that, I think the company would be much larger now (and more successful) had we scaled our engineering team early on with the money we got, and tried to shoot for quicker growth.

<comment><USER19> IMHO, your last paragraph really is the difference between a lifestyle business and a startup. I'm not disrespecting the choice at all, just a different set of goals. Based on the set of customers you have and domain expertise I'm not sure why you aren't throwing everything behind this business. Anyway, good luck!

<comment><AUTHOR> We have since changed strategy, and are now hiring / scaling the team / company :)</comment></comment></comment></comment>


Show HN: Lyric Analysis of Rolling Stone's Top 100 Artists - <AUTHOR> http://notrom.github.io/museAck/artistRatiosDrill.html

<comment><USER2> It isn't easy to compare artists at the moment. It would be interesting to be able to select a word and see how frequently all artists used it (as a percentage of all words they used, of course)

I suppose I'd be thinking something like "Eminem always seems to be talking about himself". Let's see if he used "I" and "Me" more often than other artists</comment>


Best toy store ever. - <AUTHOR> http://www.unitednuclear.com/ Unfortunately, posting this to HN might cause the apocalypse. <comment><USER2> from the FAQ:

* Where do you ship?

We do not accept orders outside the United States.

* Why no international orders?

It is expensive and difficult to track international packages.

<comment><USER3> "NOW ACCEPTING CANADIAN ORDERS !" since when was Canada apart of the USA?</comment></comment>


Where Uniqueness Lies - <AUTHOR> http://nautil.us/issue/1/what-makes-you-so-special/where-uniqueness-lies

<comment><USER2> What astonishes me, is lack of syndication. I'm afraid I'll forget this site, though content is awesome.</comment>


Programmer auditions – Actors do it, so why shouldn't developers? - <AUTHOR> https://codequalified.com/blog/2014/09/03/programmer-auditions-actors-do-it-so-why-shouldnt-developers/

<comment><USER2> > Programmer auditions -- Actors do it, so why shouldn't developers?

Programmer auditions that are analogous to what actors do would involve doing actual development work on the actual code based used by the hiring firm (potentially working with one or more other developers, who may either be on staff, hired specifically for the audition process, or also auditioning), the same way that actor auditions involve performing actual scenes from the actual work for which the actor is auditioning.

But, of course, under terms which prevent the hiring firm from making any _use_ of the work product without hiring the auditioning programmer.

But auditions are a fairly expensive tool for evaluating applicants and is generally used for performers when the act of performance is itself the output and is highly specific to the particular work and for which there is no real substitute screening tool (some key points of which -- particularly the high specificity to the particular work and the absence of a suitable substitute -- may well be true of developers, making real auditions as I discuss above potentially useful for them, if quite expensive), but this article _isn 't about auditions at all_, its about selling a platform for automating standard programming interview exercises, but its using the strained metaphor of "auditons" as an attention getter (but nothing in the article even addresses any substance to the comparison to auditions, fairly immediately switching to discussing what this is really about -- making interviewees take a _test_ rather than perform an audition -- and its clear that "developer auditions" is just a a new weird brand name for programming tests with automated scoring that Code Qualified is trying to sell as a service.

</comment><comment><USER3> > Personally, I prefer the "audition" being a problem/task for the developer > to be sent out, allowing the candidate to do the test in the comfort of > their own home, with their editor or IDE of choice, using proper build- and > version control tools[...]

If your test requires the developer to use some version control tools, this probably means that it'll take an extended period of time. At that point, you should pay her or him for that "test".

</comment><comment><USER4> Because programmers aren't performers.

</comment><comment><USER5> The problem is that the "audition" is valuable work product that can be redeployed and has value to the employer whereas if a theatric audition is recorded and ever used in the final movie or anywhere, then that actor will get paid, period.

</comment><comment><USER6> Full face helmets - Race car drivers wear them, so why shouldn't developers?</comment>


Always be the new user - <AUTHOR> https://medium.com/@f055/what-the-new-iphone-taught-me-about-the-most-important-business-practice-for-your-company-or-f72756e4187#.a16j0ah3s <comment><USER2> Sockpuppet votes and comments will get your account banned on Hacker News. Please don't do this again.

</comment><comment><USER3> Good job

</comment><comment><USER4> likes this site

</comment><comment><USER4> saifur

</comment><comment><USER5> Just for my best to do better.

</comment><comment><USER5> It is opportunity to take challenge.</comment>


Ask HN: How do you manage your development team? - <AUTHOR> Hi HN,
I lead a modest team of 4 developers, and our entire company is 7 people.
We use Pivotal Tracker [1] to keep track of bugs and features, and a spreadsheet with a high level roadmap set quarterly.
Monday morning we have a development team meeting to review current/future tasks based on business/dev priorities.
This process is okay, but we find there are ad-hoc, mid-week challenges I'd love to tackle better:
a) How best to triage ad-hoc requests from sales (feature improvements/requests) or customers b) Resolving product bugs/integration issues that may appear and need to be resolved that week c) Responding to ad-hoc requests from BD (eg, produce a report). Google teaches me this is 'toil' and to look towards automating these tasks, which were done, but there are still fringe requests. d) Allow development to work in their own priorities (internal improvements, refactoring, bug fixes, tooling, ...) amongst feature requests and customer-facing bugs that need to be resolved e) Ideally we had someone dedicated each week to resolving issues/bugs, not new features, but never done this.
We have some techniques to address many of these, but I feel we could do a better job so that during the week we are shielded from ad-hoc changes of our priorities mid week.
Any feedback appreciated, thank you! <comment><USER2> So I handle this in one of two ways depending on the needs of my company.

So first, you use pivotal tracker so you can do it the "pivotal way". (* Disclaimer: I am not a pivot but I worked with them for about 2 years as a client in their office.) Basically it's the extreme programming methodology. Have a prioritized backlog. Make sure items aren't too big (pivots shoot for 2-4 items complete per pair per day). Do not plan out a week at a time. Just make sure everything in the backlog is sized and appropriately understood by anyone on the team at all times. When a team member needs something to do, take the top item. It works surprisingly well. If you have a new bug and it takes priority over everything else, it's the top item on the list and the next available person takes it. The most important thing is always the next thing. After a while, you get used to people understanding how the backlog works in the business and if they want new big features, they stop adding requests to the top of the backlog.

Second, the "Basecamp way". Much longer time frames (I use 6 weeks). Buckets of work that are split out. Here's a page that describes it: [https://m.signalvnoise.com/how-we-structure-our-work-and- tea...](https://m.signalvnoise.com/how-we-structure-our-work-and-teams-at- basecamp/)

I've found great success in both. I'm currently using the Basecamp way. I'm very open to questions if you have them.</comment>


Ask HN: I have a 109 pages of HN favorites links where can I import those? - <AUTHOR> <comment><AUTHOR> I did find this python script

[https://dev.to/petercour/web-scraping-hn-with- python-41op](https://dev.to/petercour/web-scraping-hn-with-python-41op)

I think I'm going to do this:

[https://www.benjaminpack.com/blog/flask-on-shared- hosting/](https://www.benjaminpack.com/blog/flask-on-shared-hosting/)

</comment><comment><USER2> I have some JavaScript you can run from your browser that will scrape the HTML, navigate from page to page, and save the results in a CSV file.

Setup and usage instructions are in the file.

Check out: [https://gabrielsroka.github.io/getHNFavorites.js](https://gabrielsroka.github.io/getHNFavorites.js)

</comment><comment><USER3> There are details of an API at the bottom of this page. It might provide a way to import what you need.</comment>


GitHub and BitBucket (2011) - <AUTHOR> http://www.pocoo.org/~blackbird/github-vs-bitbucket/bitbucket.html <comment><USER2> By this article's logic, virtually every Linux desktop environment "stole" from Microsoft for over 10 years, and have spent the past 10 years "stealing" from Apple instead. Hacker News is stealing from a million different old Perl- based forum sites. Sure, you kinda sorta have a point... but it would be very hypocritical for anyone here to care much about that point.

I'm also not sure that I buy the main premise of the article, that GitHub's and BitBucket's "communities" warrant comparison. Of course they don't.

GitHub's pricing model offers you open collaboration for free, and charges you for private repos. Thus it is ideal for open source development, and open community.

BitBucket's pricing model offers you unlimited private repos for free, but charges you by the number of collaborators. It also integrates well with JIRA, a very popular task/bug tracking system in small to midsize shops. In sum, it's not really trying to be an open source "community"... it's trying to compete for the in-house business of small to midsize shops.

If you're trying to draw collaborators to your open source project, then BitBucket is a poor host. Likewise, if your company has one or two dozen developers and a large number of repos, then GitHub makes no sense as a paid host.

All of my personal projects are on GitHub, and my company is all on BitBucket. I'm not so much interested in their "innovation vs. creative bankruptcy" as I am in the choices they've made with structuring their pricing models.

<comment><USER3> We use Bitbucket as primary host for open source projects to avoid fragmenting access control. Proposal repositories need to be private and most coauthors prefer journal article repositories to be private. GitHub's pricing model would encourage us to consolidate these private repos, but each has a small number of different external collaborators, so that would yield undesirable granularity. Meanwhile, all of our software products are open source, with a much larger group of contributors than the union of the proposals/papers. We mirror the flagship project on GitHub, but all of our development is on Bitbucket.

</comment></comment><comment><USER4> To be honest I never understood the value proposal of Github. Ok, you get git repository hosting, and list of projects, and that's pretty much about it, with the ability to browse code online without cloning. Besides, that, I personally find most of the features useless. For example issue tracker is unusable, concept of forks is just a small convinience that doesn't add any real value. And about the most praised feature, like pull request, I find it just annoying and too much work. As a potential committer, it's much easier to me to clone the original repo and send a format-patch set then to bother creating my fork, cloning the fork, creating branch, pushing branch and writing an issue. As a maintainer, I also find it more convenient to just deal with format-patch set or an url to repo/branch than to deal with Github pull request system. And Linus tends to agree with me on this ;)

That all being said, I still use Github for OS projects for visibility, I just don't accept pull requests, and Bitbucket for private projects because of unlimited free private repos. And I find them both useful, just not groundbraeking.

<comment><USER5> First some context - I'm by no means a Git power-user. I learnt it under duress and would have much preferred Mercurial but at that point it was obvious which way the wind was blowing.

Back in SVN days I also used to be quite fond of Google Code as it is was much cleaner and simpler than Github to my eyes (bearing in mind that a lot of Git terminology was unfamiliar to me back then).

But once I learnt enough Git to get by, I started to love Github.

My standard workflow when I need to use a 3rd party app for a project is:

1\. Find the original repo on Github, 2\. Browse the network to see if any of the forks are more actively maintained or have enough additions to be worth considering pulling from. 3\. Fork the best fork to my own account. 4\. Make the changes I need and issue pull requests if I think upstream would be interested.

I've never learnt how to use patch sets. If someone sends me a pull request, it's 2 clicks to merge it. I'm sure patch sets aren't terribly hard but I can't see how they'd be easier than that.

<comment><USER4> > I've never learnt how to use patch sets. If someone sends me a pull request, > it's 2 clicks to merge it. I'm sure patch sets aren't terribly hard but I > can't see how they'd be easier than that.

It's a few clicks if all you want is just to _blindly_ accept and merge it, without having it on your own computer before merging and being able to compile it, run a test suite, or perform some non trivial modifications to patch.

For this purpose, to me is much easier to just apply the patch set in my local tree, or add a new remote and checkout branch then to deal with github pull request.

<comment><USER5> What is this 'compile' of which you speak?

(and slightly more sadly) What is this 'test suite' of which you speak? :-(

</comment></comment></comment></comment><comment><USER6> The only reason why I switched to BitBucket is "free unlimited private repository". GitHub is great, I used to love it as a student, it also was a great asset when applying for jobs. But now, I'm in a company that unfortunately do not allow me to do OpenSource anymore, and bitbucket was a great solution. If GitHub was to offer a few free private repos (other than if you are a student), I believe that bitbucket would be in a bad position...

<comment><USER7> Last year, I switched from Github to BitBucket because of the unlimited free private repositories. Shortly after, I switched back to Github for _everything else Github offers_.

<comment><USER8> Would you mind detailing what that everything else actually is?

<comment><USER9> We (objective-cloud.com) are using Bitbucket for our private repos as well. But once our stuff has matured a bit we open source it as frameworks on github and manage issues/documentation there.

We love open source and want to contribute back. Since most people are on github and not on bitbucket we open source our stuff on github. Just to make it easier for the community.

The missing/invisible bitbucket community is certainly a big thing... :(

</comment></comment></comment></comment><comment><USER10> My company uses BitBucket because of the unlimited private repositories. We are a small company with just a handful of developers, but our existing Subversion repository contains over 200 projects. Most are not really active, as in being developed. But the majority do get the occasional bugfix. Even Github's largest enterprise plan is too small to convert out Subversion repositories, because on Github you pay for the amount of private repositories. With Bitbucket we can use their cheapest $10 plan because they carge by developer, not by repository.

</comment><comment><USER11> If I recall correctly, the author of the article linked here apologized for its tone and removed it from his blog. It seems a bit of a disservice to repost it here without mentioning that context.

<comment><USER12> I googled for a bit, but couldn't find an apology from this author. I do remember a different author writing a similar post, followed by an apology and removal though. I don't think it's the same author.

(edit: here's the apology we were thinking of [http://schacon.github.io/bitbucket.html](http://schacon.github.io/bitbucket.html))

</comment></comment><comment><USER13> BitBucket - Unlimited private repos for free. I don't care of anything else.

</comment><comment><USER14> Bitbucket: unlimited free private repos

GH: popularity

<comment><USER15> Yeah that is about it. My private repos are replicated to bitbucket, with a couple of public ones. Most of my public projects are all on Github.

Github is as you say popular, and has partially become a CV/resume replacement so that it is risky to not have an active account on GH. Also project discovery and sharing on the one popular site is much more likely to happen.

No-one finds my bitbucket projects unless I tell them about it. Perhaps if github extended the fork link for a project to upstream/downstream links to external sites it would get more traffic. But that would probably not be in Github's economic interest.

This is as a person, for a company there might be different scenarios of what is important. If costs are important then bitbucket is probably a better start. However after a while Stash, Github Enterprise, Gitorious, Gitlab etc will be more suitable for day-to-day hosting.

<comment><USER16> "has partially become a CV/resume replacement so that it is risky to not have an active account on GH" \- LOL, where? Do people even have time to check your repos?

<comment><USER15> Obviously 'we' know that most github repos are mostly rubbish experimental garbage (at least mine are), but many startup recruiters that I have met have filtering/scoring on whether a potential candidate has a github account and even a further qualifier if that account is active or dormant.

I don't think they go beyond that as they probably don't have the skillset for that, nor do they check any other code hosting sites.

But for the anonymous early filtering to get your foot in the door it makes sense to have a semi active github account until you get reviewed by/speak to a proper technical interviewer at which point that sugaring is unnecessary.

<comment><USER16> Makes sense. I might add a phrase "I don't use GitHub because I prefer ... instead of GitHub." to improve keyword matching in my CV...

</comment></comment></comment></comment></comment><comment><USER17> I like BitBucket because I like & use Hg. After playing around with both Git & Hg & comparing their merits, I decided, it was Hg for me. What's with all the hate on the author's part?

</comment><comment> james-skemp I'm in a weird position (although I assume I'm not the only one) that's using both services and paying Github for their first level.

There's something to be said about having all my projects in one place, which is why everything is on GH and I'm starting to duplicate private repos to BB.

Competition is fierce in the space right now, but I'd feel better if BB was charging some tiny amount for a year of unlimited private repos (like $5 or $10). I think I'd feel much more comfortable they weren't going to retire it.

</comment><comment><USER18> How surprising that two sites for managing DVCSs look similar when presenting the same information.

</comment><comment><USER19> If you use "Search Term" vs. "Website" you get different results, but for what it's worth: [http://www.google.com.au/trends/explore#q=GitHub%2C%20BitBuc...](http://www.google.com.au/trends/explore#q=GitHub%2C%20BitBucket%2C%20Launchpad%2C%20SourceForge%2C%20CodePlex&cmpt=q)

</comment><comment><USER20> Fun comparison. It seems that Bitbucket was ahead of GitHub, seeing that Github's current look resembles that of Bitbucket 3 years ago.

For comparison's sake it would have been fun to see screenshots of today's products next to the old ones as well.

</comment><comment><USER17> There's an advantage for the end user if the layout of the sites is similar - Intuitive browsing.

Imagine if each email service provider re-invented the layout of mailbox !

</comment><comment><USER21> Git is a product that's really replicable in any space. I for one, use gh when projects are hosted there and bb when they are there. Git makes it trivial to move things around quickly if cost becomes an issue. Also, i generally find working with git through a browser to be tenacious. I find sourcetree to be far more powerful than GH's client but still think all the thanks goes to Mr. Torvald. what a guy.

</comment><comment><USER22> I'm surprised that somebody cares enough to post this kind of article on HN. By the way I feel really sad about BitBucket being so much less popular than Github, while having important advantages (hg + closed repos) over it. I mean I'd rather use mercurial, but I'm using git because repo on github is still so much better for PR purposes. But c'est la vie, so whatever.

</comment><comment><USER23> What I found most interesting is being able to see how much GitHub has changed. The progress is amazing, keep iterating!

<comment><USER24> BitBucket has changed a lot, too. In fact I'd argue certain aspects of its UI are superior to GitHub's.

</comment></comment><comment><USER25> As a freelance developer, GitHub is useless for me as a git hosting service, because with the number of repositories I need to keep up as remotes I would be paying a ridiculous monthly fee.

I like BitBucket's model of unlimited private repos and charging by the number of people accessing them instead.

<comment><USER26> If you have been added to an organization, your fork of their private code—if you choose to do it that way—costs you nothing (that is, it does not add to your used private repo count).

I've only done this because I was curious and had a slot available to waste if it did cause a problem. With the organizations that I've worked with, I've just always been added to their organization and repo and just used local copies with their GitHub repo as origin.

</comment></comment><comment><USER16> How many of those GitHub repositories are actually 10-20 line "Ruby gems" and "JavaScript libraries"?

</comment><comment><USER27> I hope not everyone at GitHub is so afraid of BitBucket that they need to slander it with an article. Don't they know whining gets you nowhere?

I personally didn't see any striking resemblance between any of the pages. Most have obvious content which needs to be displayed (seriously, this guy is complaining about the source code tree being shown the same way? SERIOUSLY? How else do you expect them to display it?).

Probably doesn't help that I enjoy the layout of BitBucket more, but this article has been the kick in the shins I needed to get off of GitHub for good. There's obviously something that BitBucket is doing correctly to warrant this amount of attention from the employees of Github, might as well jump ship before it sinks.

<comment><USER28> The article is from 2011 and the author apparently (see top comment) apologized and took it from his blog. Also look at Google Code, trac, ... there's nothing "obvious" about the layout, there are plenty alternatives.

<comment><USER29> Exactly, in 2014, Github has tons of clones. Lots more sites have reduced visual clutter nice user flows and allow for social interaction. Both in VCS and in general, what Github is doing is not innovative. In that context, yeah this seems pretty dumb.

Github was the first VCS hosting service that took design seriously and kept clutter and bullshit off of all of these different pages (or provided them all). They were the first VCS hosting that realized the power of social interactions around code, before every app under the sun had a social timeline.</comment></comment></comment>


Ask HN: Where to find e-commerce software developers communities? - <AUTHOR> Me and my team are struggling to get more signups to our API platform. So far we've managed to collect ~50. 5 of them tested our software thoroughly and seem to be really interested in buying the subscription. One of the channels that works good for us is just content e.g. on posts Stack Overflow or our profile at Programmable Web. However we get the feeling this is not the fastest way to attract new leads.<p>Now we're wondering how to get in touch with software developers or CTOs at larger scale. We've submitted our product to Show HN, it's even got to the first page but we ended up with poor signup rate. We'd like to ask for feedback on other developer communities related to e-commerce before we start cold emails. Do you know any? <comment><USER2> After reading the question, my understanding is that there have been fifty leads, five prospects and zero sales. I might be misunderstanding.

Looking at the numbers for this pipeline, increasing leads will not increase sales. A higher rate of conversion from lead to prospect will not result in higher sales either.

My advice based on my understanding is to close sales and have actual customers -- have people paying money. Closing sales is key to receiving feedback about what people will _actually_ pay for and help establish a good pricing model for customers. It will help qualify leads into prospects and help narrow the market segment from which leads should be drawn.

Good luck.

<comment><AUTHOR> Yes - we do this. At the same time we think we could collect more feedback in parallel.

</comment></comment><comment><USER3> Is this something you can partner with shopify or something and add as a plug- in. or other type communities? stripe adn others have partner directories. what about zapier and itff? can you get integrated with them?

<comment><AUTHOR> Yes and no. Our product is an API platform for managing vouchers/coupons. Shopify has this functionality. It's probably not that complex as ours but it's enough for basic needs. Yet the idea is interesting. I can think of an integration with Mailchimp.

<comment><USER3> a lot of times the partners are plugins with more complex behavior for companies that want more than basic.

</comment></comment></comment><comment><USER3> you might reach out to ecommerce blogs and offer to write an article for them. [http://pitchbox.com/](http://pitchbox.com/) offers a service to help.</comment>


Visual Studio Code September 2018 - <AUTHOR> https://code.visualstudio.com/updates/v1_28 <comment><USER2> VS Code changelogs are really high quality and show how much effort do they put into each release.

I miss the default JSON settings editor though. The graphical interface for settings looks like a step backwards, although they'll probably improve it in no time...

<comment><USER3> Yeah, I don't understand that new settings panel.

People who use VS Code know and are familiar with JSON and don't need a friendly preference panel, imho.

The only reason i can think of to do it would be accessibility, and I am unsure about JSON accessibility.

<comment><USER4> You can still access the JSON editor pretty easily.

I do like the graphical interface for setting discoverability.

<comment><USER2> CTRL+Space is setting discoverability in JSON editor :)</comment></comment></comment></comment>


What if? Facebook was a non-profit org. - <AUTHOR>

Remember the 'what if?' comic books? Imagine what would have happened if fb was set up as a not for profit company? Makes my head spin. <comment><USER2> Facebook would be run by people who were not money-hungry</comment>


Show HN: Givemeguid.com – CLI/curl friendly GUIDs - <AUTHOR> http://givemeguid.com <comment><USER2> I'm having trouble imagining who would want to use this. What's the environment where you would have curl and a need for generating UUIDs, but wouldn't have access to uuidgen or similar?

<comment><USER3> Maybe a JS App which is made completely out of third party APIs, without anything self-hosted? Not discussing wether this is a good idea or not, though...

I was surprised to see that there is no "built-in" mechanism in JS to generate a GUID. As a C# dev, I'm used to _Guid.NewGuid()_

<comment><USER4> Why would you make an http request if you can just google a 3-line JS solution? You're just generating a large random number and formatting it as a UUID.

[https://gist.github.com/jed/982883](https://gist.github.com/jed/982883)

If you google "generate uuid javascript" you can find approaches from Math.random to node/browser `crypto` module to shelling out OS random.

One of the main benefits of guid generation is that you don't need to synchronize with anything to generate a unique ID, so it's weird to incur an http request, especially to someone else's service. At that point you might as well just phone home to your own service.

<comment><USER5> UUIDs also have a hashed namespace in them, don't they? Not sure if that version implements them.

<comment><USER4> Only uuid v3/v5. Anything is possible if that's what you want. But 128 (or 122) bits of random are usually what you want when you think of guid.

Most people format 128-bit random numbers into a UUID just so it's obvious at a glance what it is: a guid. Even if it's not technically a UUIDv4 because it doesn't have the magic bits.

</comment></comment></comment></comment></comment><comment><USER6> If you use Linux:

cat /proc/sys/kernel/random/uuid

<comment><USER7> This doesn't work on macOS :(

cat: /proc/sys/kernel/random/uuid: No such file or directory

<comment><USER6> I edited, it's a Linux feature.

</comment></comment></comment><comment><USER8> Is this just a "random" UUID or does it meet specs of RFC 4122? I have seen countless times when it was just generated as {8}-{4}-{4}-{4}-{12} with complete random numbers. Well, works for most applications...

</comment><comment><USER9> This is what I use to generate guids with autohotkey: ::;guid:: guid := GUID() StringLower, guid, guid Clipboard := guid SendInput,^v return

GUID() { format = %A_FormatInteger% ; save original integer format SetFormat Integer, Hex ; for converting bytes to hex VarSetCapacity(A,16) DllCall("rpcrt4\UuidCreate","Str",A) Address := &A Loop 16 { x := 256 + *Address ; get byte in hex, set 17th bit StringTrimLeft x, x, 3 ; remove 0x1 h = %x%%h% ; in memory: LS byte first Address++ } SetFormat Integer, %format% ; restore original format h := SubStr(h,1,8) . "-" . SubStr(h,9,4) . "-" . SubStr(h,13,4) . "-" . SubStr(h,17,4) . "-" . SubStr(h,21,12) return h }

</comment><comment><USER10> I will just leave it here: [https://www.uuidgenerator.net/api](https://www.uuidgenerator.net/api)

<comment><USER11> And why would you do that?

<comment><USER12> It looks very relevant and has more features?

<comment><USER11> Well, yeah, of course. The link itself is fine, it's the remark next to it that I find to be in poor taste and uncalled for.

</comment></comment></comment></comment><comment><USER13> I remember several years ago using [https://newguid.com](https://newguid.com) which was pretty much the same thing - no page furniture, just the new guid. Sadly the domain seems to be on sale now!

There's also [https://www.newguid.org/](https://www.newguid.org/)

<comment><USER14> > Sadly the domain seems to be on sale now!

Which is a perfect example why it is bad to rely on a service like this to generate your IDs.

What if I bought it and started emitting predictable IDs? Or non-unique IDs?

</comment></comment><comment><USER15> Usage information in response headers, me like :)

<comment><AUTHOR> Thanks!

</comment></comment><comment><USER7> Nice! I think this will still have a use and is a nice addition to add another alternative way to generate uuids

I use the following alias to generate uuids

       function uuid() { uuidgen | tr "[:upper:]" "[:lower:]" | tr -d "\n\r" }

I then pair it with pbcopy on the mac

       uuidgen | pbcopy

<comment><USER16> one of my most used non-trivial shell commands must be

        uuidgen | awk '{ printf "\"" $1 "\"" }' | xclip -selection clipboard

</comment></comment><comment><AUTHOR> Instructions are in the headers. Query string params for returning multiple GUIDs, and optionally returning JSON.

<comment><USER17> \- [https://www.givemeguid.com/?json=1](https://www.givemeguid.com/?json=1)

\- [https://www.givemeguid.com/?number=5](https://www.givemeguid.com/?number=5)

</comment></comment><comment><USER18> If you use Visual Studio, typing the word (with quotes) "nguid" in the code IDE generates one for you.

<comment><AUTHOR> I spend a fair amount of my day in Visual Studio and didn't know this, thanks!

</comment></comment><comment><USER19> I made one for fun (and as a QA exercise for my GF): [https://aloisdegouvello.gitlab.io/guid/](https://aloisdegouvello.gitlab.io/guid/) GUID as a service. What a time to be alive :)

</comment><comment><USER20> If you need a unique identifier on the command line there are a few ways to do it.

uuidgen is one. My personal favorite is this snippet.

$ id=$(openssl rand 1000 | openssl sha1) && printf "%s${id:0:8}\n"

<comment><USER21> Why would you want to hash random bytes? The only thing you could theoretically achieve by that would be _decreasing_ entropy. Just do openssl rand -hex 20 (or any other number of bytes as needed, or -base64 for another encoding).

</comment></comment><comment><USER22> I have uuidgen in my Mac, but also have a tiny alias:

        alias uuid='python -c "import uuid;print(str(uuid.uuid4()))"'

</comment><comment><USER23> Thanks I'll probably use this. I often want to get a static uuid - usually for adding as static data in a test.

</comment><comment><USER24> Or from PowerShell: [Guid]::NewGuid()

<comment><USER25> Which is in turn, derivated from .NETs 'Guid.NewGuid()'</comment></comment>


Show HN: I´m looking for fiction writers - <AUTHOR> https://purpleprose.ink/submission <comment><USER2> I'm pretty sure "Dystopy" ain't a real word. I'm guessing it has something to do with the word "dystopia"?

<comment><AUTHOR> Woah, how did that escape me AND my auto-correct?

Well, now I'm embarrassed. Thanks for the heads up!

<comment><USER2> Hah, no problem. I'm just glad I'm not having some kind of vocabulary-related stroke ;)

</comment></comment></comment><comment><USER3> This is a really cool idea! I've been interested in getting into fiction for a while. Short stories seem like a great way to do this.

I assume that the submission must be a final draft, right? That is, writers need to bring their own editor and such to make sure it's polished by the time it gets submitted?

<comment><AUTHOR> Yes, we will be reading final drafts, otherwise it would be very hard to keep track of all stories and versions. If your story is chosen, and you give us permission, our editors will "polish it", if that is needed at all.

</comment></comment><comment><USER2> I know the site/magazine/whatever is called "PurpleProse", but...

...does my submission necessarily _have_ to be prose? I like to dabble in poetic verse every once in awhile.

Also, do I get bonus points if my submission is actually purple?

<comment><AUTHOR> Hah, won't hurt to try! Bonus points for purple submissions, definitely ;)

</comment></comment><comment><USER4> This doesn't feel like a ShowHN.

<comment><AUTHOR> Well, the guidelines say:

"Show HN is a way to share something that you've made on Hacker News."

I made this site, but if you're also interested in submitting...

<comment><USER4> But the Show HN rules say:

> Show HN is for something you've made that other people can play with. HN > users can try it out, give you feedback, and ask questions in the thread.

> A Show HN needn't be complicated or look slick. The community is comfortable > with work that's at an early stage.

> If your work isn't ready for people to try out yet, please don't do a Show > HN. Once it's ready, come back and do it then.

> Blog posts, sign-up pages, and fundraisers can't be tried out, so they can't > be Show HNs.

<comment><USER2> I disagree somewhat with the "sign-up pages" restriction, since it's technically possible to try out a sign-up page.

In this case, though, I agree with you. This doesn't seem to be ready to try out for its intended purpose (besides perhaps the submissions process).</comment></comment></comment></comment>


Using memory errors to attack a virtual machine [pdf] - <AUTHOR> https://www.cs.princeton.edu/~appel/papers/memerr.pdf <comment><AUTHOR> I was reminded of this when reading the comments in the "malloc geiger counter" story. Page 9 has a great photo of a computer with a light pointed at the memory to help have more bit flip errors.</comment>


Data General One - <AUTHOR> http://oldcomputers.net/data-general-one.html <comment><AUTHOR> came-up here: [https://autoweek.com/article/classic-ads/1986-mercury- sable-...](https://autoweek.com/article/classic-ads/1986-mercury-sable- futuristic-portable-computer)

>The CPU was a CMOS version of the 8086, compatible with the IBM PC's 8088 except it ran slightly slower, at 4.0 MHz instead of the standard 4.77 MHz.

>Unlike the Portable PC, the DG-1 laptop could not take regular PC/XT expansion cards.

>RS232 serial ports were built-in, but the CMOS (low battery consumption) serial I-O chip available at design time, a CMOS version of the Intel 8251, was register incompatible with the 8250 serial IC standard for the IBM PC. As a result, software written for the PC serial ports would not run correctly. This required the use of software written using the relatively slower and less flexible BIOS interrupt call (014h), or software written exclusively for the DG-1.

[https://en.wikipedia.org/wiki/Data_General- One#Drawbacks](https://en.wikipedia.org/wiki/Data_General-One#Drawbacks)</comment>