Ernst and Young drops degree classification threshold for graduate recruitment - <AUTHOR> https://www.timeshighereducation.com/news/ernst-and-young-drops-degree-classification-threshold-graduate-recruitment <comment><USER3> Kudos to E&Y for taking a radical approach to hiring.

However, as a concerned parent, I hope impressionable youngsters don't mistake this for 'Yay, I don't have to go to college to get a decent job anymore'.

The lifetime earnings for a college degree holder[1] is probably a lot more than for those without a degree.

If you can afford it, go to college. If you can help it, don't drop out. Get that degree. If possible, get a Masters degree. Those six years staying in school getting your undergraduate and graduate degrees, will make a huge difference in the rest of your life

We are not all destined to found unicorns or be an early employee in one. For the rest of us mortals, going to college will make a difference.

Even a Thiel Fellow probably needs to be admitted to a very competitive school to drop out and get the Thiel Fellowship.

[1] Forbes; [http://www.forbes.com/sites/troyonink/2014/05/05/federal- res...](http://www.forbes.com/sites/troyonink/2014/05/05/federal-reserve- college-education-worth-830000-more-than-high-school-diploma/)

<comment><USER4> Does getting that graduate degree help? I stuck it out for the degree (Computer Science), and I don't think it helped much with my job prospects. I get paid the same as my peers who only did undergrad.

<comment><USER5> I think from a strictly economic point of view, a graduate degree is a terrible investment.

Look at it this way - you could spend the 4+ years you spend in grad school working in a high paying job, investing all the difference between grad school stipend and your pay. Once you add all the career progression you can make in the time you spend in grad school - it's obvious that grad school is a net loser, monetarily speaking.

The upside is that, if you pick something that you love, in grad school you get to spend time dedicated to learning and studying something fascinating - and with a good professor, you'll have a pretty fantastic time. In short - <USER2> grad school if you are interested in your project, don't do it as a sort of career investment.

<comment><USER6> If you're doing grad school full time then it should only take 2 years for a Masters.

You can get a Masters in 4 years while also working at your high paying job. That just costs you a night or two a week (and not that much money, depending on the school)

<comment><USER7> He is talking about a phd, a masters is an absolutely terrible investment, and strong negative hiring signal whenever I see it, unless it was done strictly to immigrate to the US.

<comment><USER8> I've worked with so many people that were amazing, and had Masters, and others who were nearly useless to destructive. I don't believe it is a signal at all.

<comment><USER9> Precisely why I did not do a Masters. I found out I learned a lot more (relevant skills in the 'real' world) in my summer internships than I did during the semesters in school.

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> E&Y handled my taxes when i moved countries. They made so many rookies mistakes on both sides i doubted they even required literacy to work there.

<comment><USER3> My reply is not intended to insult anyone associated with the Big 4/5 firms.

In my experience, the model is to get one or two really smart people into the client and then a boatload of rookies to pump up the billing machine.

Every client is a training on the job experience for the rookies.

<comment><USER11> You don't sound particularly impressed. Despite you're misgivings about the rookies, these firms have effectively rolled the old master & apprentice system forward into the 21st century.

The billing machine you mention is also not quite right. In practice the vast majority of the fees negotiated up front (often on tender basis) & driven by hours only on paper. So effectively the Big 4 firm loses money if there are freeloader rookies on board (revenue stays the same, staff costs go up).

<comment><USER3> I can definitely understand the value of a Big 4 firm when it comes to accounting/auditing.

It is the IT Consultancy part that I have concerns with.

I understand the value of the Master & Apprentice model. However I would rather not pay for the Apprentice's training myself.

I know there was a push for separating the Accounting/Auditing side from the IT consultancy side after the Enron and related scandals but they have probably coalesced back together.

<comment><USER11> >However I would rather not pay for the Apprentice's training myself.

No more than any other business model that has people learning on the job - I'm tempted to say less as the process is designed from top to bottom to deal with & compensate for people learning on the job.

The more junior people come with much lower cost so there is actually a lot of pressure on those "one or two really smart people" you mentioned (aka seniors) to drive effective utilisation of the rookies. This also means people start of being told "do this" monkey fashion...but then very quickly (<3 years) progress to a position where you're expected to demonstrate real world leadership over sizable teams in a client facing capacity. Its far from perfect, but its a system that pumps out an incredible amount of young people that went through a trial-by-fire education in real world business & walked away with solid skills.

>It is the IT Consultancy part that I have concerns with.

Not something I can specifically comment on to be honest I've seen fairly little of that (saw some cool real time cyber attack monitoring stuff though - which caught me by surprise). As I see it all the professions (Law, IT, Accounting etc) are always trying to eat each other's lunch so there will be uncomfortable moves into someone else's territory. (And be judged as unqualified by the incumbent)

>they have probably coalesced back together.

It'll depend on the firm in question. From personal experience - on the ground the divisions (Accounting vs advisory) are pretty cliquey in my experience even if they are supposedly "together" from a legal perspective. Kinda like a programmer would have to make a very real effort to get transferred to sales/finance/HR department in the average company...they're different tribes.

</comment></comment></comment></comment></comment><comment><USER12> This is a very long time coming. So extremely talented individuals who had to work through university (and so grades suffered) will have an opportunity to compete on a level playing ground. TBH, this makes sense. Many of the well rounded / think for yourself / independent people I met in university were supporting themselves while in University.

<comment><USER13> Does E&Y really want well rounded / think for yourself / independent people? Or do they want people who will learn the regulations; who will apply them ruthlessly; and who are always acting to maximize the profitability of the company?

<comment><USER12> If it's a matter of doing what you're told, computers are great for that. Complex problems that require human level intelligence require people who can make localized decisions without being hand held all the way through. The problem of new grads that performed well at university is that they are best at solving narrow, well defined problems. If that's all that E&Y is doing, I question whether they are providing any competitive value.

<comment><USER13> Sure, but that requires sufficient hardware and a willing programmer.

<comment><USER12> Yes, one would assume a forward thinking, competitive accounting firm is developing such software / hardware. Who's going to be more successful in the future? The accounting firm with an army of yes men that do what they're told, or the accounting firm with extremely talented / hardworking / creative individuals working alongside computers doing all the grunt work? I think E&Y recognizes that all the assembly line aspects of their job is rapidly vanishing and what's left is the hard part that has no clear, easy answers.

<comment><USER13> One could assume. However, from the article it sounded like this programme was directed at hiring front line accountants.

Don't underestimate the power of an army of yes men. A large enough one could sustain many for several lifetimes.

</comment></comment></comment></comment></comment></comment><comment><USER14> >Instead, the company will use numerical tests and online "strength" assessments to assess the potential of applicants.

I'm not certain that focusing on numeracy tests to assess an applicant is such a great step forward. I get the sense that this will only encourage candidates to "study for the test" and will actually produce more false positives.

<comment><USER12> Numeracy is an important part of accounting :)

</comment></comment><comment><USER15> I think this is a good move, but I'm worried that people will understand it as "education is useless, I should go work".

The problem here is very obviously that most educational systems are completely broken. The american one maybe the most, since it's so "famous".

I come from France, I had a better education than you can get probably anywhere in the world (I went to les Mines de Paris, roughly equivalent to the top 10% of MIT), and EVERYTHING, since I was 5 years old, was free and based on merit. This leads to people with degrees actually being much more performant in the workplace. I am 100% sure this study would have opposite results in France, as it is very easy to look at what the alumni of my school go to become.

People, education is primordial, paying for education is a sin that brings all this shit out. Someone needs to fix this, and probably no one will in my lifetime in america, it is very sad

<comment><USER16> > I come from France, I had a better education than you can get probably > anywhere in the world (I went to les Mines de Paris, roughly equivalent to > the top 10% of MIT)

What is it about French Universities that makes them so exceptional? I ask because I've heard this "I come from a French University, and it is reaaaally good" refrain from a lot of French people – but I haven't seen _that_ many exceptional performance amongst them. [I should say though, I have met some really great and hard-working French university graduates, so the overall level is definitely quite good.]

<comment><USER17> I suspect that, much like the U.S., the French simply have grown accustomed to seeing themselves as having the best education in the world. So when I read comments like this, I just tell myself that this must be what it's like _all the time_ for people in other countries hearing Americans bragging about the U.S.

As for the evidence that one system is better than the other, I think I'll stay out of that one, other than to say that I don't know how you would reliably measure this objectively except by looking at a ranking that attempts capture programs' reputations among employers in the field. Even this will, of course, exhibit some form of national bias, though interestingly the most well-known ranking, U.S. News and World Report ranks many Chinese universities very highly, which might suggest that their national bias isn't _too_ extreme. And then there is the problem of controlling for differences in population, etc.

<comment><USER16> > I suspect that, much like the U.S., the French simply have grown accustomed > to seeing themselves as having the best education in the world. So when I > read comments like this, I just tell myself that this must be what it's like > all the time for people in other countries hearing Americans bragging about > the U.S.

In my experience (not American, though I work in the US), that isn't usually the case in the tech field. I've almost never heard Americans bragging about how good or exclusive their school is.

Now there _is_ a lot of mystique about being from the Ivy League in the US, but it is usually confined to status and social connections _within_ the US ("ooooh, he went to Harvard and the Yale for grad school, must have connections") rather than being compared worldwide. Maybe this is what you mean by "bragging about the US"?

</comment></comment></comment></comment><comment><USER18> Great step! I wonder how it translate into action:

1\. Lack of degree will not be a filter, but you need to be genius if you don't have it.

2\. Lack of degree is a setback, but still can get through.

3\. Just consider skills, interview/internship performance.

<comment><USER19> The big consultancies don't really give a crap what you studied or what skills you have, they just want your intelligence and self-discipline. Now they're dropping the assumption that not having a degree means you're not smart. Nothing more, and nothing less.

(Everything I've ever heard about these consultancies suggest they are very bad places to work, if anyone's tempted)

<comment><USER20> People who join consultancies at the start of their career are normally not doing it because it is a good place to work. Instead, it is a launching point. Experience, money, and the "up or out" management style which means you'll have rapid advancement until you start to stagnate, then you leave on your own personal path. Some will succeed, some will not.

To me, it seems like a path for management-minded individuals that is analogous to doing YC for your startup. Put all your life into it, play the games with the people who have money, most people will wash out early, but a few notables will become wealthy and have a powerful network to continue your career.

</comment></comment></comment><comment><AUTHOR> Maggie Stilwell, EY's managing partner for talent, said the changes would "open up opportunities for talented individuals regardless of their background and provide greater access to the profession".

<comment><USER21> My wife's employer instituted a similar policy: instead of a qualification requirement, they now ask candidates to do a lengthy take-home exercise.

Her experience is that, if anything, it's actually damaging for accessibility, because in practice the candidates who have the confidence (and possibly outside help) to do well are pretty well exclusively the ones with traditional backgrounds, a sense of entitlement, and high grades from good institutions.

</comment></comment><comment><USER22> I'm somewhat shocked. This feels sort of like the Borg saying you don't need to assimilate anymore. Just be who you are! +1 for E&Y.

</comment><comment><USER23> Many, but I'd not say all, blanket degree requirements are a unfair and inefficiency-driving discriminatory practice along the lines of the criminal record check-box.

We need a ban the box campaign for academic credentials so that applicants are judged on their skill and merit and not on too often flimsy credentials.

</comment><comment><USER24> This is a great step. In several cases, degrees can be a good way to filter applicants, but having them as mandatory requirements in these cases can sometimes deny a potentially good candidate an opportunity. For example, I know a lot of great front-end engineers who don't know what Big O is.

</comment><comment><USER25> Good! Having done a lot of recruiting recently I've noticed no correlation between degree classification and problem solving ability. I have a 2:2 myself :)

</comment><comment><USER26> I don't have a degree and I'm glad to hear this, I would rather I be tested on my knowledge and get a job over people who hardly know anything.

</comment><comment><USER27> The title for the HN submission is currently very misleading.

HN headline: "Ernst and Young Drops Degree Requirement for Recruitment"

THE headline: "Ernst and Young drops degree _classification threshold_ for graduate recruitment"

The meaning is very different: the first suggests you no longer need to have a degree at all; the second merely suggests you no longer need to have done well in your degree.

Also worth noting is that Ernst and Young already had a 'EY School Leaver Programme' (5 year training programme for people direct from school).

<comment><USER28> As someone who has earned a top performance award at a big 4 accounting firm, I think they should drop the requirement entirely.

I have an Arkansas high school education. I came to work there through an acquisition.

</comment></comment><comment><USER29> Good choice, but let the crash begin!

<comment><USER30> why but? :)

<comment><USER29> Requiring a degree when the content of the degree is not required for the job is propping up the bubbling education market.

<comment><USER30> yes, "but" just makes it sound like a bad thing. let the crash begin!

</comment></comment></comment></comment><comment><USER31> Boom! This is big.

</comment><comment><USER32> I haven't gotten a clue but why do we need accounting firm in this day and age? Aren't those already automated?

<comment><USER33> Companies like them and Deloitte still offer traditional auditing and accounting services, but their cash cow is mostly in IT contracting for government and Fortune 500-type companies.

<comment><USER34> Not to mention that when it comes to accounting and fiscal advice, they're more tax avoidance companies than accounting companies.

Take away the big four, and I wonder if $tech_multinational would dare to play things like the double Irish for some time. Just as an example, have a closer look at EU commission president Juncker's activities in his former job in Luxemburg, and you'll see what I mean.

</comment></comment></comment><comment><USER35> Well duh. If we don't need degrees to create computer programs, then why would someone need a degree for any other job in the world, which just involve pushing buttons on software programs we create?

<comment><USER36> I really hope this was a sarcastic comment. Personally, I prefer my doctors, lawyers and nuclear physicists to have formal qualifications.

<comment><USER37> > Personally, I prefer my doctors ... to have formal qualifications.

Why? So they can charge you more? You know medical school in the US is pass/fail and has a 96% graduation rate? Its completion at that point is practically meaningless.

And all so I have to pay $50 to get a vaccine administered because nobody is allowed to prescribe one without a $250k medical degree.

<comment><USER38> I don't see an issue with a 96% graduation rate when med schools are incredibly difficult to get in to. Not only that but even within med schools, depending on how well you do you might not get in to specific programs; for example you have to do better to be a surgeon than to be a general physician.

If they didn't have a 96% graduation rate I think we would be screwed because we already do not have enough doctors as it is. And with med schools it's not like you can increase the number of students easily as each student requires a lot of resources due to requiring residency and things like that.

<comment><USER37> The selection criteria for medical school admission has little to do with skill and more to do with how likable you are in your personal statement and interview.

After someone passes that selection criteria (which again, seems to have little to do with being a competent physician), it doesn't seem like enough of them are being filtered out for being bad at actual medicine.

I went to a good school in mathematics and we only had a 70% graduation rate. The people who dropped out or switched majors had passed the rigorous selection criteria just like the rest of us. I'm suspicious the equivalent cohort in medical school just get pushed through and graduate all the same and become bad doctors.

> And with med schools it's not like you can increase the number of students > easily as each student requires a lot of resources due to requiring > residency and things like that.

Most who can't hack it fail in first year. I don't think watching lectures and writing exams in first and second years is all that resource-intensive. And even if it were, they'd be paying tuition to cover it all the same.</comment></comment></comment></comment></comment>


Show HN: DataNews.co, a HN Clone for Open Data and Visualization - <AUTHOR> http://www.datanews.co/

<comment><AUTHOR> This was motivated by an idea from the Open Knowledge Foundation: [https://github.com/okfn/ideas/issues/59](https://github.com/okfn/ideas/issues/59)

It is built with Flask & Backbone/Require. Source is available here: [https://github.com/joehand/DataNews/](https://github.com/joehand/DataNews/)

I mostly built it as a learning opportunity. It is my first major Flask app. I would definitely recommend this type of app as a great learning opportunity once you have a handle on the basics. There is enough complexity to make you think but not too much that its overwhelming.</comment>


Pitching your product in a social setting - <AUTHOR> http://chrysbader.com/pitching-your-product-in-a-social-setting

<comment><USER2> This advice is doubly true for the first words a potential user/customer sees on your homepage.

</comment><comment><USER3> From there, you can get to this piece, which it recommends as a related article: <http://jasonstrachan.com/clients/simpleinvoices/>

In essence, this piece suggests you pitch the problem and then only mention your solution once people are interested. Unfortunately, no real examples are given. So I am having trouble wrapping my head around the idea. Any thoughts? Anyone?</comment>


YouTube Disables Comments for Special Books by Special Kids - <AUTHOR> https://www.dailydot.com/upstream/youtube-disables-comment-special-books-by-special-kids/ <comment><USER2> This is 7 months old.

And still stands, with comments disabled.

But I'm not sure what people want.

It's an awful parent who lets their kids comment on Youtube and it's a awful parent who'd let their kid have comments said about them on Youtube. Youtube comments are not for healthy adults let alone kids.

If you think Youtube should censor and control videos to think of the children (or society), not only is this what you asked for, it's what you asked for.

This is the prime spot to not allow comments. These videos are a danger zone. They only have two creators? to moderate and the people involved are vulnerable on multiple levels.

That they state parents rely on the comments of passed away children, hurts their case. You don't go to Youtube comments to heal.</comment>


Worldwide Slump Makes Nigeria's Online Scammers Work That Much Harder - <AUTHOR> http://www.washingtonpost.com/wp-dyn/content/article/2009/08/06/AR2009080603764.html

<comment><USER2> _But in these tough times, the scammers said, they are relying more on a crucial tool: voodoo. At times, Banjo said, he has traveled six hours to the forest, where a magician sells scam-boosters._

I do enjoy the irony.

<comment><USER3> I'm gonna have to say thanks to their voodoo suppliers, anybody who takes these guys away for from their computers and internet for 6 hours at a time is a friend of mine.

</comment></comment><comment><USER4> I sometimes wonder how I would have turned out had my family not immigrated to Canada. You take a corrupt place where ethics don't quite exist, mix in an aptitude for technology and tremendous social pressure to "make it" (much more than in north america) and I can see myself in their shoes.

</comment><comment><USER5> Interview with a Nigeria-Spammer [http://blog.oliver- gassner.de/archives/3257-Interview-with-a...](http://blog.oliver- gassner.de/archives/3257-Interview-with-a-Nigeria-Spammer.html)

</comment><comment><USER6> recessions force companies to be more efficient even if the business is a nigerian scamming business.</comment>


Node.js stream behaviour illustrated. - <AUTHOR> https://github.com/dominictarr/stream-spec/blob/master/states.markdown

<comment><USER2> Could someone please enlighten me on how to connect both a readable and a writable stream.

For example I want to convert an image and then stream it to S3.

if I use knox <https://github.com/LearnBoost/knox> it has a way to read a stream from a file and then publish to s3.

But how can you take a stream from <http://aheckmann.github.com/gm/> and stream it directly to knox or anything else for that matter?

<comment><USER3> Take a look at the pipe() method. :-)

</comment></comment><comment><USER4> the most misunderstood part of node. thanks for helping make it understandable

</comment><comment><USER5> streams are everywhere! hope all of the streams will be unified by v1.0</comment>


Show HN: A simple WebAssembly game employing the C. elegans neural network - <AUTHOR> https://nematode.farm/ <comment><USER2> This is very cool. They feel so alive.</comment>


New logo for Dropbox - <AUTHOR> http://www.underconsideration.com/brandnew/archives/new_logo_for_dropbox.php

<comment><USER2> I don't particularly like the solid blue, but I think the post is all wrong in it's conclusion " It's just a bottomless box..." that is actually the right metaphor for dropbox, so why would they change it?</comment>


Account Deletion - <AUTHOR>

Can this be done? If not, I smell a big problem. <comment><USER2> \- I recommend sending an email to firstname.lastname@example.com. They've helped me out with problems in the past so if you have one, they should be able to help you out with it.

<comment><AUTHOR> Thanks!</comment></comment>


Technical Debt Doesn't Exist - <AUTHOR> https://thehftguy.com/2020/08/26/technical-debt-doesnt-exist/ <comment><USER2> Technical debt isn't an arbitrary thing; it's a metaphor to try to explain doing maintenance to non technical folk.

The explanation goes like this:

If you have no debt, you can borrow money.

If you have a bit of debt, you can borrow money, but you have to make regular repayments of _maintenance_ to service that debt.

...but when you have a lot of debt, lenders are cautious about lending you money. Will you pay it back? Why didn't you pay back any of your other debts? Can you afford the repayments?

The metaphor isn't perfect, but the point being made is that _maintenance_ is the repayments on technical debt; if ignore it, at some point you are going to end up spending all your developer hours on maintenance, and your throughput for features will grind to a halt.

You "repay" the technical debt by fixing stuff that causes problems, not by randomly rewriting it because you can't be bothered reading the existing source code.

It's not maintenance.

That's a different thing; that's _making changes_.

Technical debt is more like a metric of how prone to failure /what feature velocity your software is / has.

Sure, the metaphor falls over; you can just keep slapping broken features and other crap on top of either other indefinitely if you _dont care_ if your existing features work or not... but, that's a different issue.

<comment><AUTHOR> > You "repay" the technical debt by fixing stuff that causes problems

Well, that sounds a lot like maintenance.

<comment><USER3> As the GP said:

> _The metaphor isn't perfect_

But there's a difference between maintenance that fixes problems expediently and maintenance that fixes problems more permanently. The technical debt metaphor is an attempt to model the cons of doing the former too often (otherwise faster always seems better).

</comment></comment></comment><comment><USER4> Maintentance is not technical debt, and confusing both terms is weird. While there are multiple definitions, I'd say maintentance is the work of making adjustments to keep the software in a working state, say supporting new operating systems, fixing bugs, updating to minor versions of libraries...

Technical debt, on the other hand, is quite literally a form of debt. You borrow time from the future by developing a solution that requires less work now, but that will need to be changed later on because it won't be enough future requisites, and that will create additional work (interest) in the long term while it's present. And every programmer does this, consciously or unconsciously. Say hard-coding some parameters in functions instead of creating user-defined options because it's easier, or writing a specific class instead of an abstract one that can be later extended, or writing a hack instead of refactoring so that new changes fit properly.

Of course, it's difficult to predict the future and some technical debt is never repaid. But it's important to make a distinction and to have in mind the technical debt in your project and when it's worth it to remove it.

<comment><USER5> > Technical debt, on the other hand, is quite literally a form of debt. You > borrow time from the future by developing a solution that requires less work > now, but that will need to be changed later on because it won't be enough > future requisites, and that will create additional work (interest) in the > long term while it's present

It is all just a words game. If there is an issue now, and I do a hotfix and hardcode some stuff that surely will need work later on to keep things working, then:

A) I created technical debt. I took the quick route now, but will have to spend more time in the future if I want to update this code.

B) I did maintenance. A thing was not working and I made it work. This is a simple, small bugfix, a.k.a. maintenance. In the future we might have to spend some time to keep things working in slightly different conditions. We also call that maintenance.

Both ways of phrasing it can help to communicate a message. But there is no use in getting hung up on what to call it. Your job as a developer is to be smart about it and choose the best possible trade-off. You need to do that in both versions equally.

<comment><USER4> Maintenance and technical debt are intertwined, but I don't think it's just a words game. Things without a name are less visible, and maintenance and technical debt are different. There's maintenance unrelated to technical debt, and technical debt unrelated to maintenance. Taking into account the technical debt you have helps you when estimating the cost of maintenance and new features, or to understand the possible problems when new environments come into play.

IMHO, part of being smart about it is having the words to communicate the concepts clearly, it's not a moot discussion.

<comment><USER6> > There's maintenance unrelated to technical debt,

Agreed.

> and technical debt unrelated to maintenance

Disgareed, as you cheerfully indicate yourself in your next sentence.

Technical debt as a concept of "debt" is paid back through maintenance.

What else might it be paid back with?

<comment> what-the-grump Time value of money.

Technical debt it's literally dollars to donuts in time spent getting yourself out of the hole you are in right now.

Maintenance is the cost of keeping the lights on.

I run a two year old system which is now riddled with technical debt. How we got here has very little to do with the technology decision, stack, code, and a lot to do with management outsourcing and cost cutting.

Technical debt is never paid back through maintenance. It's just conceptionally wrong to tie them together. To phase better I can't maintenance my self out of this problem, but I can keep this system running forever with little to no cost.

</comment></comment></comment></comment></comment><comment><USER7> Having done building work in various guises over the years, I've seen is interesting patterns analogous to software development.

Every builder comes in and says the previous guy didn't do it properly, used the wrong materials and overcharged.

Every software project I've been on, someone always comes in and says there's tons of technical debt, we're using the wrong language and the other developers are poor.

There's probably some truth in both statements but it takes experience and knowledge to take things with a pinch of salt.

<comment><USER8> Did you make the switch from software to building? If so why?

Edit. This is genuine curiosity. I've made a slide out of software development into a more hands on role. I've found it rewarding.

<comment><USER7> I just have building projects in a couple of rental properties and my own. Good luck in your building career, it sounds like the "Office Space" story!

</comment></comment></comment><comment><USER9> I completely get where this person is coming from. The distinction between maintenance and producing new features on one side and paying down technical is so strange. It does not make very much sense to start working on a piece of the code that is hardly every touched and that has been working for years to improve it. What one should be doing instead is to make sure that the work one is doing for the purpose of maintenance and creating new features leaves the code base in a better state than it was found in. If one does that it becomes mostly unnecessary to talk about technical debt.

I do think technical debt does exist, though. Sometimes the changes that one wants to do are a bit too big to do right now and one should make a plan to get them done eventually and in small pieces wherever possible. This is called having architectural goals. One should try to be in this situation as little as possible, though.

</comment><comment><USER10> _> Software do not have a technical debt problem, software simply requires maintenance. [...] There is no such thing as technical debt. There is work to do, that we can agree on, but it's not debt payment._

The "technical debt" doesn't have a 100% universal agreement on what it means and apparently the author has only been exposed to one variation of it and that's what he's rebutting.

Another type of "debt" is caused by programmers writing bad/clunky code (often _deliberately_ ) to quickly solve a problem. The wikipedia article mostly talks about this definition of "debt"[1]. The programmers _know_ the bad code will create "debt" that makes future maintenance harder. Example of this tension would be 2 different approaches to adding a feature or bug fix:

\- (1) study the code base carefully -- maybe for hours or days -- and then write the properly architected code that makes _future changes /extensions easy_. E.g. expend the extra brainpower to see if the multiple edge cases or logic spread across files can be unified or simplified.

... or ...

\- (2) quickly find the points in source code that seem "obvious" to modify just change it -- sometimes _copy-pasting code_ and _duplicating logic if if /then/else or switch/case statements_ in multiple files. Yes, now the immediate issue is "fixed" but you've simultaneously created "debt" down the road.

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

first sentence: Technical debt (also known as design debt[1] or code debt, but can be also related to other technical endeavors) is a concept in software development that reflects the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer.[2]

</comment><comment><USER11> Calling tech debt maintenance seems a little odd.

I've always understood tech debt to be the shortcuts we take along the way to ship fast(er). A global variable here, a hardcoded constant there, that copy- pasted-slightly-modified function instead of adding a parameter.

Fixing those things seems qualitatively different from the maintenance examples.

</comment><comment><USER12> Where I work, "technical debt" is a term used by the project management folks whenever they are looking for justification for forcing developers to do something that everyone knows is a bad idea.

No worries, we'll come back to it when we have more time (we never have more time).

<comment><USER13> > No worries, we'll come back to it when we have more time (we never have more > time).

There are only two priorities: priority one, and priority "we will actually never do this, because always something else will be priority one".

But of course, if it makes the engineers happy, we can put "fixing technical debt" in Jira, and assign it any priority between 2 and 99.

</comment></comment><comment><USER14> I agree with this. 'Technical debt' always exists in the heads of the engineers: the rest of the organisation can't see it. It's an invisible problem, imagined by the engineers, and not always in touch with the practical long-term reality.

Software is a tool. Tools that are used often require maintenance, which in itself is not a novel concept.

Whereas saying 'technical debt' is like delivering a dramatically vague House MD diagnosis.

If you must, call it what it is – Maintenance – and let's move on.

<comment><USER15> > Software is a tool. Tools that are used often require maintenance, which in > itself is not a novel concept.

Yes software is a tool, but unlike physical tools, it does not wear out. Running the same code many times won't cause it to slowly degrade.

What does happen with software is that as you adapt it to particular roles, if you're not careful you can make it very hard to re-adapt to new roles. A "new role" doesn't necessarily mean user-facing features. It can be as simple as running on Ubuntu instead of running on RHEL. Or it can involve using a newer (and incompatible) version of some library. It might even be as daunting as porting the software to a new language (eg: from JavaScript to TypeScript).

The common analogy used to illustrate this is that of a car. If you have a typical passenger car and you need to compete in a demolition derby, you can modify that car to be a good demolition derby car. But if you're then asked to modify that car to win a track race, you'll have an easier time starting with a new unmodified passenger car than modifying your demolition derby car.

</comment></comment><comment><USER16> The distinction between maintenance and Tech Debt comes down to whether the choice for an imperfect or expedient way of solving the problem was made consciously. You incur Tech Debt consciously to deliver value in the short term at the cost of not being able to sustainably deliver that value as parameters change.

Maintenance on the other hand is stewardship of a system as both the system(entropic decay) and it's environment constantly change.

<comment><USER17> I found Martin Fowler's "Technical Debt Quadrant" helpful on this - [https://martinfowler.com/bliki/TechnicalDebtQuadrant.html](https://martinfowler.com/bliki/TechnicalDebtQuadrant.html) . He argues you can have deliberate and inadvertent debt, both of which can be wise or unwise - the debt metaphor still works.

</comment></comment><comment><USER18> Technical debt is just business debt, it's risk to the business if people don't understand it or it's hard to maintain.

Technical debt is a terrible term because it implies it's just a technical problem, but it's a business decision.

<comment><USER19> It's a terrible term because the technical people think they are talking to the business people in their terms, but when the business side of the operation hears the term technical debt, they ask some questions and what they hear is that they are issuing non-recourse debt.

What the technical side of the operation wants to say is "We're making short term decision that are going to hurt us in the long term", and what the business side of the operation hears is "This is free money".

</comment></comment><comment><USER20> Technical debt is _not_ maintenance. Except for a very radical perspective: "So you used python2 in 2008 to start your project? Well you obviously knew the language would not last forever, you should have chosen ANSI C99 instead." This argument can be made for any dependency and it contains a grain of truth, but generally it is just too extreme.

</comment><comment><USER21> I sympathize with the author's take that our industry is way too trigger-happy and willing to throw away perfectly working code, but none of this:

> Python 3 changed all the string handling, have to make adjustments. The > build is too slow, should make it faster. Security vulnerability found in > one library, time to update libraries.

is what (most?) people mean by technical debt.

If the build is just slow, but can be improved, that's not technical debt. Technical debt is when the build system is actually a bash script that was written ten years ago because none of the developers wanted to waste time on a proper makefile, and none of the interns knew make (or cmake, or ant, or whatever), and now just _adding_ a new source file takes three hours.

(Edit: oh, or my favourite example, how could I forget this?

I've worked on a very large (MLoC) codebase that used autotools as a build system. Unfortunately, at some point, someone didn't want to learn m4 -- totally understandable -- and committed a manually-mangled configure script and a bunch of generated makefiles...

...and from that point, autotools were eschewed completely, and the configure script, and the generated makefiles, had mangled by hand each time something was required. Adding a new module to that program took 2-3 days of grepping and hunting through a bunch of files, just to make sure you didn't miss anything. That's more than enough time to learn the basics of how to use autotools. Multiply it by several _hundred_ modules and weep.)

If a security vulnerability is found in a library, and that's solved with a library update, that's not technical debt. Technical debt is when message signing is done via MD5 hashes produced by a slightly buggy in-house implementation. You got to ship on time, but not by shipping a functional product -- that's a bug, and it still has to be fixed at some point.

If some stuff is single-threaded and slow, but easy enough to parallelize so that it's faster, that's not technical debt. Technical debt is when there's a single, global object containing absolutely all application state, and splitting an extra thread to do some computation in the background requires four weeks of extra manual testing just to be sure you didn't introduce _another_ race condition.

(Edit: unfortunately, nope, none of the examples above were invented. I had the pleasure of working on a codebase where adding a new thread literally required written approval from the product manager because of the extra testing it required. Calling that "maintenance" is much like calling a bridge collapse a "vertical position readjustment" \-- it gleefully ignores the fact that it was readjusted downwards, through gravity, possibly involving mass casualties, and had to be rebuilt).

Some maintenance work is legitimate and is just the result of normal software progress. But _some_ maintenance work is entirely self-inflicted. Ignoring that is just an excuse for the kind of "first we do git push, then we think about it" crunch mentality that lots of companies encourage, for reasons that have absolutely nothing to do with either productivity or technical excellence.

<comment><AUTHOR> Joking aside, they should have "maintained" they build system before it took 3 hours to do a build.

Things don't go from 1 minute to 3 hours overnight. The company and the developers had to work with it daily and didn't bother to take care of it at any point over 10 years. It's not a technical problem as much as it was an organizational and human problem. Inertia does add though so that's certainly difficult technically to replace now and getting more difficult by the day.

</comment></comment><comment><USER22> Technical debt is not maintenance.

Technical debt is the additional maintenance for which you create a need when, presented with multiple options to implement a thing, you take the quickest and dirtiest one. It compounds the more you make decisions like that, just as compounding interest and capitalization create ever higher amounts of monetary debt.

Also, I found their self-referenced article on how Windows required more work than the pyramids, using man hours as a metric, simply absurd. This strikes me as a mythical man month type fallacy but can't quite put my finger on it.

</comment><comment><USER23> > To make another analogy, when you bring your car to the mechanic to replace > breaks after 80 000 kilometers, he doesn't proceed to warn that the previous > mechanics has left debt'ed break pads all over the place and to question the > person's qualifications.

Good mechanic will refuse to touch your car. If breaks would fail after her fix, she might be liable.

Same apply to coders. If your code is bad, it will be very difficult to find good developer to fix it.

</comment><comment><USER24> It feels to me as though this argument misses the point.

\-- Technical debt is time that you have borrowed from the future. --

That makes perfectly good sense if you need a simple, working system, quickly.

But if you plan on extending it, then the workarounds and shortcuts that you took will need to be replaced, slowing you down in future. Concrete classes where abstractions will be needed in future, hard-coded values, all that stuff. The debt will have to be repaid.

</comment><comment><USER25> _> This is meant literally. Reading existing code is difficult -more difficult than writing code- thus it is a genuine take from the developer that throwing everything away and starting over from scratch is "easier" than continuing on the existing. [Ergo this is flawed for non-small projects because the new development will never catch up with the existing during the tenure of the developer(s).]_

I tend to work alone, so the poor schlub that needs to go in and maintain the code is usually Yours Truly.

That's a big reason that I am pretty obsessed with heavily-documented code. I eat my own dog food.

It is quite painful to review undocumented codebases; even (especially) really well-written code. I write in Swift, and it's entirely possible for an experienced Swift programmer to write highly efficient code that is almost completely inscrutable.

Not sure I'd necessarily call that "technical debt," but it's a real issue.

I've learned to use naive coding (in reality, highly efficient code often doesn't buy squat), and a lot of "this is why I did this" commenting, along with long, descriptive entity names[0]; assuming that it's my goal for my code to be maintained by others, and to not have them constantly pinging me with questions.

I will say that the (fairly ambitious) projects I've done that have grown into large community efforts, have resulted in very, very few questions about the code. It seems that understanding the code I write, isn't an issue, for most people.

I write code for myself, and that seems to make others happy.

[0] [https://medium.com/chrismarshallny/leaving-a- legacy-1c2ddb0c...](https://medium.com/chrismarshallny/leaving-a- legacy-1c2ddb0c8014)

</comment><comment><USER26> Pretty low-quality flaming post. Basically "battle of the word definitions".

Refactoring is observably the best way to get to know someone's code. Refactoring doesn't have to actually change behaviour; in fact, the word itself means "improving the code without changing its behaviour".

Not seeing any value in this post outside of "I disagree with some words, let's use others".

<comment><USER27> This is what I've caught myself doing; instead of reading and trying to understand the code, I scan it and start "fixing" it to make it my own.

Writing and changing code is a lot less boring than just reading it. Focusing on details (formatting, function naming, ordering, files) seems to be a lot more "gratifying" than trying to grasp the bigger picture.

I guess this is why I'll never become a senior developer / architect. Mind you, atm I don't have anyone else working on the same codebase either so it's all me.

<comment><USER26> What's a senior developer? I had zero problems grasping a lot of bigger pictures but since I didn't care much about political and office drama I never was dubbed "senior" while working in offices.

At one point I decided for myself that I am senior by the virtue of being able to quickly understand what's happening in a codebase and where the real value- add lies, plus the ability to integrate it into the bigger ecosystem of deployments that the company practices. And having a good general culture.

So don't you care about "senior". :)

As for the topic -- harmless refactoring is indeed the way to get to know code. This has been said by people like Martin Fowler and Kent Beck so it's not exactly baseless and isn't easily refutable by a flaming post like the OP.

</comment></comment></comment><comment><USER28> Whilst I am sure Debt exists in classic software it is endemic in SaaS. If the truck is travelling at highway speed and you cannot afford to pull over; changing the break pads can indeed cost considerably more then building a new truck.

</comment><comment><USER29> This is all just words and redefinitions, how you choose to slice and label things. Here's the useless reframing:

> Software do not have a technical debt problem, software simply requires > maintenance.

Despite the words used, tech debt does exist. This article doesn't do much to make the task of maintaining software any better. It lumps it all together.

Tech debt, created accidentally or purposefully can be reduced with specific forms of maintenance which makes further changes easier and reducing future maintenance efforts.

</comment><comment><USER30> The principle force of the analogy is the compound interest equivalent cost of delayed update. Jumping over versions can acquire more bugs than you can handle and the cost of remediation en masse under time duress is not the same amortised time as the per increment bugfixing across the versions

I have experienced this and I also work with people who deny it. It's complicated.

</comment><comment><USER31> Technical debt != maintenance.. Maintenance is just maintenance. Technical debt is having to jump through arbitrary hoops to satisfy a code base or piece of technology instead of being able to directly address the problem at hand. With that said, I do agree that all code has some degree of technical debt but that can be limited by good design.

</comment><comment><USER32> What a vapid, shallow and uninteresting article. Congratulations, you just gave technical debt another name. That doesn't mean it doesn't exist.

Maybe you should try reading up on the subject matter next time before writing a blog post so you don't end up rediscovering fire again.

</comment><comment> Fire-Dragon-DoL I think the point might be the term? I read somewhere a suggested alternative: product debt. The technical side is the one that loaned the time in terms if shortcut. Paying it back has always a steeper cost.

Not only that, it also compounds.

</comment><comment><USER33> To me (from an Ops perspective), technical debt is when people who have come before you implemented a setup that is broken at a deep level. A setup which can only be fixed by a complete re-implementation. No amount of maintenance will suffice.

</comment><comment><USER34> I like the debt metaphor, especially because of 1) interest, which costs more the more debt there is and the longer you carry it, and 2) the fact that sometimes it's smarter to borrow than to be debt free.

</comment><comment><USER35> If someone is knowingly building something that wont scale is that not an accumulation of future work? I think the key point about technical debt is that units of work are not all equal in long term outcomes.

</comment><comment><USER36> No it does. You make a point before bikeshedding.

</comment><comment><USER8> It does exist in the form of libraries and language versions that slowly get dropped from modern eco systems.

Each dependency adds a little more debt.

</comment><comment><USER37> Is "technical debt" a term used more by business people/managers or by developers?

<comment><USER38> Personally I (a developer) use it most as a metaphor for business people explaining why we need to schedule time in-sprint for work that isn't explicitly tied to a new feature.

We have debt, we need to service it. Repayments come in the form of developer time. If our debt is well-serviced it enables us to keep up a nice quick pace of feature development.

If a feature is politically important and our tech-debt is under control we can fast-track its implementation knowing that we'll have time to polish it up later and it isn't likely to break too much.

If our debt is too high we can't borrow anymore. Sorry, that super important feature that the board wants by end of sprint simply can't be done. We're at our credit limit and if we try and borrow more to get that done we'll go bankrupt (the product crashes and burns).

All of this is the language of business

</comment></comment><comment><USER39> So there's no bad code, no poorly designed systems? Only "maintenance"?

<comment><USER40> If the code was initially a net positive (i.e. provided a feature users wanted/needed, etc.), then in a way, yes. It might be bad in the abstract in the way patching something with bubblegum is, but if it works at the time--it works.

I think the only way to argue it was wholesale bad is that it immediately and objectively sank future progress (like a fatal wound of sorts). If it made things a hassle going forward, you'd have to argue that it was so much of a hassle that it actually receded things back into a negative. Most companies rarely experience the debt that stops forward progress cold or can prove they'd be making X times more progress if wasn't for such and such debt.

That said, if you could do things in such a way that yields the desired result and causes less (there is always some, and never little) maintenance, that's ideal. The thing is, everyone is trying to code from that place. The only ones who aren't are those who can't (they really are incompetent) or those who have given into utter malaise or malice.

</comment></comment><comment><USER41> Complete nonsense..</comment>


Need a name for your startup? I wrote a domain name generator in Node.JS - <AUTHOR> https://web.archive.org/web/20101108051350/http://impossibility.org/ <comment><USER2> We changed the URL from [http://impossibility.org/](http://impossibility.org/), which currently points to a porn site.

</comment><comment><AUTHOR> This is my first project written in Node.JS. Really cool platform. I'd be happy to answer any questions about the implementation.

<comment><USER3> Where are you hosting this and what type of memory usage are you getting? Thanks, neat site!

<comment><AUTHOR> Node is currently using 32MB, server load is at 0.09, on a Linode 512.

Searches served since posting here 5 hours ago: 21,000 :)

</comment></comment></comment><comment><USER4> I've tried quite a few of these, yours is nicely done. I was surprised at some of the beautiful domain names it generated. Now I just have to control my urge to register even more domain names I'll never actually complete the project for...

</comment><comment><USER5> Thanks, just registered LazySchedule.com for a new service I'm providing for my fellow classmates at PSU.

</comment><comment><USER6> This IS nice. I tried it and does come up with good suggestions. A tool which think does a little better on the semantics side is <http://nameboy.com>. Their problem is that names proposed are often not available (despite) their status at nameboy.com. Your tool seems to avoid that problem somehow. The way you figured out to get your availability info in parallel and with DNS checks first seems very elegant.

I know this market well. if you want more ideas and suggestions for better name generation logic and dictionaries, give me a shout (rastaquere AATT gmail DOTT com). maybe we can work on something together.

</comment><comment><USER7> I totally love this! I had a lot of fun finding domain names. I'm surprised at how good the names are :)

</comment><comment><USER8> I see one obvious potential for improvement. My word was 'treatise' and I asked for prefixes, and I got things like:

hurttreatise.com

but that's not a very good domain name because it's ambiguous when spoken whether both words are fully spelled. I think you should be avoiding duplicate letters at word boundaries.

<comment><USER9> This is already off to a great start, but amassing pieces of simple logic like this will make it unstoppable.

</comment></comment><comment><USER10> I like this a lot. For my current needs, I think this gives the best results of all the tools out there I've tried. I do occasionally get duplicates in the same set of results, but other than that this rocks!

</comment><comment><USER11> Can you create a secret option to list all available domains at once?

</comment><comment> mike-cardwell I'm impressed by the quality of the results.

I don't know why you've made it rely on javascript though. It would have been so easy to make it degrade gracefully... Surely no more than half an hours work?

<comment><USER12> I see this complaint a lot, and agree it is not hard to provide basic functionality without JavaScript. However, I'd be interested to know where in life the JavaScript is lacking. The only place I have ever encountered a lack of JavaScript was the browser on the Nintendo Wii (I was shocked and amazed).

<comment> mike-cardwell I've personally been hit by XSS on Twitter. Millions of other people have been hit by XSS flaws too. The Internet's mostly composed of poorly written websites lacking basic security, so I'm no longer comfortable having JS turned on globally. I disable it and enable it temporarily on a per website basis. Fortunately, the vast majority of websites don't need it to be enabled for them to work. It's just a bit annoying when you come across a website that has no real requirement for JS but wont work without it, so you have to enable it.

<comment><USER13> XSS is a non issue here. There is no user data on this website.

<comment> mike-cardwell That's not really an argument against my policy of globally disabling JS though is it. I have enabled it for this website, but it shouldn't have been necessary.

Besides, who knows what might happen to the website in future? He might add some premium services and require a login?

The important question is this though, how well does this website work with screen readers? I'm guessing blind people are out of look here, but I know there are a few blind people who hang around here so I'm hoping one of them gives it a try and reports back.

</comment></comment></comment></comment></comment><comment><USER14> I know that I'm in the minority, but I hoped that your site worked with scripting turned off.

> This is one of those crazy web2.0 things, so you'll need to enable > javascript. Sorry

<comment><USER15> Why? How would that even work?

<comment> mike-cardwell I find this a very strange question. It would work the same way most other websites work...

You'd enter a domain into a form, hit the submit button, a new page would load with the results.

It would look slightly less fancy because all the results would return at once and there would be no animation.

However, you'd then add some javascript to the page to overload the submit button and make it use js to retrieve the results to get the current effect. So most users would have the fancy bits instead.

<comment><USER15> But then the page would load slowly... and be dependent on the performance of the remote server.

Let's say if he decides to query a bunch of servers to check out uncommon tlds, then his site would have to wait for the slowest link.

<comment> mike-cardwell Hence why this would be a graceful degradation and not the primary interface. You could then change the warning text from:

"This is one of those crazy web2.0 things, so you'll need to enable javascript. Sorry."

To:

"We cater for non JavaScript users, but results will be returned much more quickly if you enable JavaScript"

A much more friendly message.

</comment></comment></comment></comment></comment><comment><USER16> Was I the only one who seriously expected a generator that appended "-ify" to the end of the word?

I do like this, though. I'll be using it in the future. Good job.

</comment><comment><USER17> First of all, fantastic job. Really love how fast this is.

As a user, I think "Don't like any of these? Search again, you'll get something different!" could be replaced with a great button: "Show More" or "Show Next Cycle" or something like that. It'd be much easier to find instead of looking for that text link at the bottom.

</comment><comment><USER18> You forgot to set a Content-Type header.

</comment><comment><USER19> Very cool, good brainstorming tool.

</comment><comment><USER20> Great tool, have been using it extensively today. Thank you for sharing!

</comment><comment><USER21> Fantastic - I actually just found a name for a project using it!

</comment><comment><USER22> This one is awesome, I just used it to buy a domain! Good job!

</comment><comment><USER23> This is pretty nice, thank you. Could you share how you look up the domains? Usually I just go to a registrar and type stuff in.

<comment><USER24> One easy way: On a Linux box you can type:

whois domainIAmInterestedIn.com

</comment></comment><comment><USER25> Great work, thank you. Can you list the availability of the original domain (example.com) as well?

</comment><comment><USER24> Interesting, but tons of competition in this space... Google "domain name generators"

</comment><comment><USER26> Ha! I don't want it, but techimps.com is hilarious. Oh geez, textmama.com.

</comment><comment><USER27> Can you please support other TLD's than .com?

</comment><comment><USER28> Nice!

But since good .coms are taken, allow me to choose the tld like .me .ly .at .co for better results

I bet the same search for .me domains would give even four or five letter domains available.

</comment><comment><USER29> Is the name generation simply list based?

<comment><AUTHOR> Essentially. I went through a dictionary dump of every word with 4 letters or less, got rid of the crappy/obscure words, and then split them up into lists of nouns, verbs, and adjectives.

My goal was to automate my own technique for finding good domains: Pick a keyword, and try to come up with a short modifier that isn't taken yet.

<comment><USER30> You might consider filtering out a few of the more sexual nouns.

I'm not saying frogorgy.com wouldn't be a big hit, but it's a bit niche.

<comment> mike-cardwell Please don't censor needlessly.

<comment><USER7> yeah.... the second and third thing I searched for were sex and porn :)

</comment></comment></comment></comment></comment><comment><USER31> Awesome! Can you please add other TLD's?

</comment><comment><USER32> great tool - but it seems to be returning your raw source code right now vs. delivering the index

</comment><comment><USER33> it took me a few minutes to realize i can get different results each time i click the button.

</comment><comment><USER34> RubyHulk.com is available! :O

</comment><comment><USER35> meowsex.com is available!

On a more serious note, I just registered trynode.com. Great app.

</comment><comment><USER35> Very impressed the the quality of the results. Excellent work.

</comment><comment><USER36> Where are the results? Please post successful name finds if there are any. I'm calling foul. I've written a few months ago that domain name generators are dead.

[http://www.dotsauce.com/2010/09/07/domain-finder-tools-do- no...](http://www.dotsauce.com/2010/09/07/domain-finder-tools-do-not-work/)

I will admit your app functions well and has good intentions. But, the vast majority of good word combinations have been claimed already.</comment>


Forget inbox zero, say hello to follow zero - <AUTHOR> http://www.victusspiritus.com/2011/02/26/forget-inbox-zero-say-hello-to-follow-zero/ <comment><USER2> Congratulations on finding a technical solution to a handling problem.

It seems to be quite common for posters here to invent elaborate ways to limit their environment as a result of not being able to limit themselves.

<comment><AUTHOR> Variation on the string around the finger as a reminder trick.</comment></comment>


Show HN: GO ES –  Golang event sourcing made easy - <AUTHOR> https://github.com/z0mbie42/goes <comment><AUTHOR> Any feedback welcome.

One question for advanced GO devs: Is it possible to refactor the Call function to accept a struct instead of a pointer for the Aggregate parameter ?

Here I wasn't able because Aggregate is an interface and gorm need a pointer. So you can't Save an interface because it's not a concrete type.</comment>


Notch doesn't hate Windows 8, he's just confused  - <AUTHOR> http://www.withinwindows.com/2012/09/28/notch-doesnt-hate-windows-8-hes-just-confused/ <comment><USER2> DEVELOPER: We spent months working on this. Here's your fees: One Arm, One Leg. Certify our app, please!

PLATFORM: Please hold...We're sorry, but your product does not comply with our guidelines. Goodbye!

DEVELOPER: Why are you rejecting our app? We were very careful to do everything you asked us to!

PLATFORM: Your app does not comply with the guidelines.

DEVELOPER: But we think it does!

PLATFORM: But we think it doesn't! And what we say, goes.

DEVELOPER: But what did we do wrong!

PLATFORM: You didn't comply with our guidelines. That's all we can say.

DEVELOPER: Can you at least refund our application fee?

PLATFORM: Doing that would not comply with our guidelines.

DEVELOPER: Do you have any idea how much it cost us to have several developers working on this product for months?

PLATFORM: That's your problem, not ours. Have a nice day!

DEVELOPER: (obscenities)

People who are willing to put up with this kind of garbage are writing iPhone apps. There is little doubt in my mind that the Windows Store will be a similar experience from the developer's perspective.

</comment><comment><USER3> Read part 2 and 3 of the post first. Notch wasn't the one who was confused.</comment>


The Xbox One X: Initial Impressions - <AUTHOR> https://techcrunch.com/2017/06/13/the-xbox-one-x-initial-impressions/ <comment><USER2> You can get "true 4k" out of the console, but rendering at 4K is so taxing you'll chew all the extra processing power out of that GPU. That means that if developers want to increase rendering quality other than spatial resolution, they will probably resort to checkerboard rendering and/or dynamic resolution, which they needed to do on PS4 Pro. Of course, overall, you can probably expect better quality than a PS4 Pro, since there's more power. It's just not very wise to use that to output at 4k, especially when most people will have a hard time noticing the difference at living room distance from their TV.

<comment><USER3> Agreed. They are pushing 4K for marketing, but if developers largely aimed for 1080p, 60fps with HDR, the games would probably look a lot better, especially since most people do not have a 4K TV that they sit close enough to to even tell the difference.

It kind of makes me sad.

<comment><USER4> 1440p might be a nice middle ground for people with 4k TVs. Depends how much antialiasing you can drop when you bump the resolution. Personally I'd be fine with chrckerboard rendering if it looks good in practice and allows higher quality graphics. True 4K could be reserved for VR.

</comment></comment></comment><comment><USER5> I'm kind of amazed this made it to the front page considering there is so little here.

I don't see how MS intends to sell them though. The Xbox One S is currently $200. Even if that's temporary it seems like a lock that they might drop the price again to $200 for the holidays.

A PS4 Pro is $400 assuming no bundles or price cuts.

So how in the world do you get people to pay $500 for the Xbox One X? It's 2.5x as expensive as your previous/current/lower-end console. It's at least 25% more than the competition's high end console.

And that's price, so it doesn't include the ecosystem and software and such.

$500 just seems like a big obstacle to success.

<comment><USER6> Where is it for $200 right now?

<comment><USER7> Yeah, I also want to know the answer to this lol.

</comment></comment></comment><comment><USER8> Xbox = XB Xbox 360 = 360 Xbox One = XBO Xbox One X = XBOX

</comment><comment><USER9> "One X" and "One S", where have I seen that before…

[http://www.gsmarena.com/htc_one_s-4574.php](http://www.gsmarena.com/htc_one_s-4574.php)

[http://www.gsmarena.com/htc_one_x-4320.php](http://www.gsmarena.com/htc_one_x-4320.php)

also [https://en.wikipedia.org/wiki/One-X](https://en.wikipedia.org/wiki/One-X)

</comment><comment><USER10> This is an interesting play, where Microsoft will sell both XBox One S and XBox One X as contemporary devices.

X => $499 (4k native being the prime attraction) S => $249 (Original perf bit less than PS4)

Have to see how Games world would react to the reality of optimizing for two Consoles and Single plat.

Depends on 4K TVs popular uptake. Interesting times!

<comment><USER11> Devs seem to be optimizing for an infinite variations of PCs just fine.

Modern consoles on a hardware level are closer to PCs than they have been in the past. Pick good algorithms, plan ahead to use as much as of the available resources as possible (but no more) and know what variables you can scale on. This is general game optimization for any platform. Only when the profiler's show you issues in one platform and not the will game devs need to break out #ifdefs and write high level game code differently.

This isn't like ye olden time of the original NES where the whole game must be written in handcrafted insanely optimized assembly. There are fewer major architectural decisions to make that are significant between platforms. It used to be that one system had memory dedicate to parallax scrolling and another had memory dedicate to rotating texture in increments other than 90 degrees, now they all do most basic operations pretty well and the expensive things are all expensive in the same way.

</comment></comment><comment><USER12> One of the things that no one seems to notice about the XboneX is hidden down in the spec sheet.

FreeSync. It supports FreeSync. This is weirdly interesting... perhaps an attempt by AMD to push back against G-Sync's dominance.

</comment><comment><USER13> Can someone explain how if the PS4 (without "pro") with its 2 GFLOPS is not able to run complex games at 1080p at 60Hz, while the the XBox One X, with just 6 GFLOPS, is marketted as able to render games at 60Hz in 4K? Note that 4K requires 4 times the fillrate of 1080p, and that the memory bandwidth increase is just about +50%, and the CPU performance increase has been small in comparison.

<comment><USER14> Isn't a lot of the "4k" in consoles really just rendering at a lower resolution and upscaling?

<comment><USER15> Yes, a lot of games target 1800p with checkboard rendering and upscale to 2160p. The PS4 has native hardware acceleration for checkerboard rendering.[1] [2]

[1]: [http://wccftech.com/blow-checkerboard-rendering-ps4pro- isnt-...](http://wccftech.com/blow-checkerboard-rendering-ps4pro-isnt- completely-free-might-better-uses-power/) [2]: [https://en.wikipedia.org/wiki/Checkerboard_rendering](https://en.wikipedia.org/wiki/Checkerboard_rendering)

</comment></comment></comment><comment><USER16> I am expecting a Xbox 3 at some point, so that way microsoft will follow tesla's naming schema Xbox S, Xbox [3], Xbox X Tesla S, Tesla 3, Tesla X

S3X sells.

<comment><USER17> Xbox One == XBO Xbox One X == XBOX

</comment></comment><comment><USER18> I don't really get the argument that not many people have 4k TVs, or wouldn't be thinking of getting one anyway this year.

I've had one for 2 years and I'd hardly call myself an early adopter when it comes to TV.

You can pick up a 49" 4k for considerably less than the price of the X1X these days, hardly a massive commitment to fully appreciate the better GFX

<comment><USER19> Why in the world would you buy a 49" 4k tv. You would need to sit like 3 feet away to even notice a difference between 1080

</comment></comment><comment><USER13> Is the "new Microsoft" going to allow running Linux in that device? I would buy one, in that case.

</comment><comment><USER20> i'm pretty skeptical of this thing. the only people who care about specs are the pc gaming crowd, and the specs are probably still not good enough for them. the software library is also basically a subset of the playstation game library, with hardly any unique microsoft exclusives.

</comment><comment><USER21> tl;dr; It's small and the graphics look nice.</comment>


Overly defensive programming - <AUTHOR> https://medium.com/@cvitullo/overly-defensive-programming-e7a1b3d234c2 <comment><USER2> I would agree if your overly defensive you may get a fail-silent system.

I would say failing fast is good. However, that does not just mean exiting the application or exiting. If you encounter a failure mode you should gracefully fail so the operator knows what to do or if in development know what the heck is breaking.</comment>


Show HN: TakeAim – Expose your team's daily aims - <AUTHOR> http://takeaim.io <comment><AUTHOR> Hey, cofounders of TakeAim here.

We work for a small startup in SF and have been part of its growth from 4 to 40 employees. As it grew, we felt less connected to the company, and had less opportunity to affect various projects and details of the business. We missed that. We went from a single team standup of the whole company to multiple different standups segmented by function. We saw a problem and decided we wanted a solution.

We built a side project within 6 months and got buy-in and usage from our current company. In fact, they ended up paying for it. We couldn't keep up the nights and weekends though and worked on it less and less. While we still had the 1 happy paying customer, we failed to get any more to stick. After a few months of little to no work on it, we decided we wanted to make one more push towards user acquisition. We asked for an 8 week part-time sabbatical and compromised for a 1 week vacation. We are more than halfway through that week and are still struggling to gain traction.

Here is what we have tried:

Cold emailing product managers on LinkedIn Content marketing with a blog post about a common standup Posting in related sub reddits about startups and project management / agile Emailing past users

We don't think we are a simple standup replacement or aid, but most people view us as that. We do support stand-ups and make them better, but does our product do too much? Or did we solve a problem that only exists at our company?

<comment><USER2> A few thoughts:

\- if you can find a way for just a single user to get value out of the product then you don't need to convince an entire team to adopt a new tool all at once. It could happen organically instead and over time. It would also give you a chance to slowly help/sell that team over time.

\- the homepage doesn't really tell you what the product does. After signing up and playing a bit I now understand. Whats your conversion rate like from homepage visit to signup?

\- I'd suggest telling users what the process is like. I didn't (and still don't) know whether everyone on my team gets an email every evening to fill out the info for the next day, or is it in the morning? Do you fill out what you did yesterday and what you plan on doing today?

\- I think every companys process is slightly different, if you are convincing them to use a tool AND change their process you might run into difficulty. Maybe allow for different processes. We built an inhouse replacement for iDoneThis because we wanted something slightly different.

\- The most important question is why do you only have one customer? Do they signup but stop using it? Do you not get enough signups? Do they signup and never invite their team? Have you asked them why? If all of the numbers in your funnel are really small, I would focus on the later steps. Make sure you built a product people want. Once your activation rate is high then start worrying about top of the funnel.

\- forget the LinkedIn cold emailing. You're in the highest density startup city in the world, just walk right into any startup office you see and ask them to use the product

\- Ask your engineer friends and other startups what they use and how you could get them to use your product instead

\- We (Streak) would def use this if you adapted it to our process. I think our needs are very close to what you have. Find more customers like us and build what they need. Ask them to prepay you for 6-12 months for you to custom build whatever they need (we would do this). Reach out to me at aleem at streak.

<comment><USER3> Thanks for the detailed feedback! We cleaned up the homepage a bit and added a bit more of what the product does, but its probably still missing some details.

We will definitely reach out to you soon, thanks for the offer.

<comment><USER4> I thought he posted about the current page, which still isn't totally clear. How does one input stuff, when?

It is even possible it was there, but the cards looks mostly like "testimonials" (which they aren't) so it feels really easy to skim it.

There's also loads of "standup" tools already, which I assume this is. And do people like standups to begin with? I don't. Some of my days are just "still working on X".

</comment></comment></comment></comment><comment><USER5> I think your homepage needs some work. You can't see what the product is actually like, what problem(s) it solves and what features it has.

If I want to "Get Started" I need to sign up, I want to see what it is like first. There are no details of what you do with my email address if I sign up; Is there a trial? What can I do if I sign up but don't pay.

Small point: when I hover over the "cards" on the homepage in Chrome, the cards pop out slightly but the text blurs.

I wish you luck!

<comment><USER3> Thanks for the feedback. We agree the homepage was a bit mysterious and have updated it with some text about our feature set.

PS - We also fixed the hover :)

</comment></comment><comment><USER6> Just an idea (I know, I know, ideas aren't worth shit on HN :) but is this use case possible with what you have:

I'm trying to increase my productivity at the moment, so I'm creating 3 most important todos for the day in the morning. Can I set up a 'what I'm working on' card and have it publicly visible through an URL? So I can send the URL to a mentor, friend etc and they can see what I'm doing without having an account? Like a public view option...

<comment><USER7> Related to increasing productivity and a public view option, one thing that Ricardo Semler brings up in his book, Maverick, that is a big productivity boost for teams is to incorporate regular public mood feedback to allow an individual to communicate how they are generally feeling that day to the whole team. It can put a lot of interactions in context and is something that's been implemented by a number of companies, could be a potentially valuable addition to the product!

<comment><USER3> Great idea -- this is something we have discussed before in the past and its great to hear some positive sentiment around it

</comment></comment></comment><comment><USER8> Mozilla has a somewhat similar home-grown standup tool (Standup) that takes input from an IRC bot. The website lets readers filter by projects, teams, or individuals. I like how TakeAim's cards highlight on people's more recent status, where Standup is more like Twitter, where some people post frequently and drown out others' status comments.

[https://www.standu.ps/](https://www.standu.ps/)

</comment><comment><USER9> No screenshot page. No video.

=> Closed the site without looking further.

Not sure whether the product exists or whether this is only an announce for a future thing they are building.

<comment><AUTHOR> Interesting, thanks for the feedback. The cards pictured are the core of the actual product. Do you think we should make it look more like a screenshot or declare that it is the actual product?

<comment><USER9> I saw the cards.

After 30s I figured that all you have to offer is the ability to write a 3x5cm sticky note. Useless. Ain't paying for it. (not to mention redundant with Trello)

I worked in a 50 people company and I understand the issues with following other people's work. That is a real problem to me. A sticky note is of no help, if there is a workflow around that thing, I don't see it and it's not explained.

<comment><AUTHOR> Got it. There is more to it. We'll work on demonstrating that more on the landing page. Thanks!

</comment></comment></comment></comment><comment><USER10> How do you see this integrating with wider project and issue tracking tools. Most teams already rely heavily on these. Interesting to hear how you see this complimenting already existing project management stacks.

</comment><comment><USER11> Why does the text go blurry for me when I hover over the cards?

<comment><USER12>
      transform: scale(1.01);

Looks terrible in Chrome. Also looks bad in Firefox, but less so.

</comment></comment><comment><USER13> You have linked an http version of your site and your login page doesn't force https.

Even if it's a side project, security matters.</comment>


The Hard Problem of Consciousness - <AUTHOR> http://en.wikipedia.org/wiki/Hard_problem_of_consciousness <comment><USER3> Of course, it only remains a hard problem if it is assumed that consciousness is an emergent property. That is a premise, and the hard problem of consciousness demonstrates that, for the time being at least, it is an unprovable premise.

To put it another way, it could very well be that it is a hard problem because emergence is not true. There is no evidence that excludes the possibility that consciousness is transcendent, rather than emergent. However, that may well be trying to prove a negative, which is mostly fruitless. So, the fact that it cannot presently be proven that consciousness is an emergent property, does not necessarily mean that it is not.

A model for consciousness that separates perception from sensory processing itself would be somewhat akin to saying that the soul is wired into the brain, and receives all of its perceptions from the brain, but that the soul is not the brain. I don't think that this can ever be proven or disproven, because it requires introspection, which is at its very nature subjective.

But what do I know? Let's see where the research goes...

<comment><USER4> That's a great point. I wonder why it gets dismissed so much?

</comment></comment><comment><USER5> Aha! This had been troubling me for some time, but I didn't have a name for it. Now I do. Thank you.

<comment><USER6> If philosophers can't solve any problems at least we can clarify them pretty well.

<comment><USER7> That doesn't show in that Wikipedia article, though. All it contains is some self-referential links. Ie I didn't follow the "qualia" link, but I am pretty sure if I go there, it will just point back to the "hard problem of consciousness".

<comment><USER8> It doesn't - it actually goes to a very long and detailed article.

<comment><USER7> Long, but still it doesn't say anything. Though I admit at least it acknowledges it's own futility.

<comment><USER5> I thought it said plenty. Admittedly I only read the first paragraph and went "oh, I get it". They're just things that are subjective, even if we nominally agree on an objective definition.

Like, we can all agree that a ketchup bottle is red, but what it really looks like to each of us might be totally different. My red might be your blue, but since your blue things are called red, and my red things are called red, we pretend it's just a single color, instead of a potentially infinite number of colors, a different one for each person.

Significantly, this hypothetical becomes real when we talk to, say, a colorblind friend. A ketchup bottle is still red, but it's definitely not the same red-- since it seems "closer" to colors that the non-colorblind would say.

</comment></comment></comment></comment></comment></comment><comment><USER9> The first five sections of Chalmers's paper explain the problem very well:

<http://consc.net/papers/facing.html>

(Chalmers is the philosopher who coined the distinction between "hard" and "easy" problems of consciousness.)

</comment><comment><USER10> Not only is this problem of great philosophical interest, I always find it sociologically interesting as well: people who don't see why there is a "hard problem" are typically entrapped believers in the materialist/deterministic paradigm. I know because I was. :)

Put another way, if free will is an illusion, who is it an illusion to?

<comment><USER4> I think I know what you mean. A while back a saw a "why am I me and not someone else?" type question on Ask Reddit. And everyone had these pre-canned answers they thought were obvious. I got really frustrated that no one seemed to think it was an interesting question.

Or am I the only one who thinks that's a legimate question?

</comment></comment><comment><USER11> Nice writeup. I bought David's book on consciousness after having a long talk with him at a Consciousness and Quantum Mechanics meeting about 10 years ago. I think that this is interesting stuff. Really, why should we have evolved with the kind of inner life (qualia) consciousness? What evolutionary advantages did it give us?

</comment><comment><USER12> here's something that looks like a solution: [http://www.edge.org/3rd_culture/ramachandran07/ramachandran0...](http://www.edge.org/3rd_culture/ramachandran07/ramachandran07_index.html)

<comment><USER7> balderdash

<comment><USER12> What's was so bad in this explanation?

<comment><USER7> For one thing, I am skeptic about the notion of "mirror neurons". Or maybe the name is badly chosen. I think what happens is that certain neurons (or regions of the brain) associate with certain abstract concepts. It is not surprising that the same neurons light up no matter if I kick a stone with my foot myself, or see somebody else kick a stone with their foot. Both times "abstraction neurons" for things like stones, feet, kicking, etc. would light up (and by that I don't mean there is a genetically encoded brain region to encode "stones", I don't think there is). Why not? As an engineer, the concept of introducing specific "mirror neurons" seems unnecessary and too wasteful to make sense. I am not a specialist for his mirror neurons theory, so maybe I am doing him an injustice. As I said, the name could be badly chosen. And what I could imagine is that the brain is prone to make certain abstractions - <USER2> as it is prone to learn a language (it seems likely to me that parts of the brain are structured to facilitate learning languages, or recognizing faces - a bit like there being general purpose CPUs and specialized digitial signal processors in electronics). So in that sense they could be on to something, although I think their way of describing it would be rather misleading.

The main thing is, though, that the question "what is consciousness" does not make sense, therefore if he gives an answer to that, it has to be nonsense.

Now I only skimmed the article, and it might be that he is not actually pretending to give an answer. Rather, he is redefining the problem in terms of his mirror neurons theory. So it would only be marketing (it sure makes for good marketing to pretend to answer the "hard question"), which would be a bit more forgivable, but ultimately still be rubbish.

<comment><USER12> why asking questions like "what is consciousness"/"why does consciousness exist" doesn't make sense ? it seem like many questions being asked in evolutionary biology/biology/neurology.

<comment><USER7> Because nobody can say what they mean by "consciousness". "Why does consciousness exist" implies that "it" (what?) exists, which likely isn't the case.</comment></comment></comment></comment></comment></comment>


Uber Security Flaw allows attackers to by-pass 2FA by entering a random number - <AUTHOR> http://www.zdnet.com/article/uber-security-flaw-two-factor-login-bypass/ <comment><AUTHOR> "The bug allows a hacker to log into an account using an email address and password, then bypass 2fa by entering a random code when prompted."

[https://www.scmagazine.com/uber-says-bug-that-allows-2fa- byp...](https://www.scmagazine.com/uber-says-bug-that-allows-2fa-bypass-not- particularly-severe/article/738639/)</comment>


Lunar Laser Ranging: a continuing legacy of the Apollo program (1994) [pdf] - <AUTHOR> https://www.hq.nasa.gov/alsj/LRRR-94-0193.pdf <comment><USER2> Of course anyone can use these laser reflectors, they're still there, get the "it was all done on a sound stage in New Mexico" crowd to explain that

<comment><USER3> If you try to convince them, you must pick some proof that is actually proof. An automatic lander can do the same job without landing a person in the Moon (unless you think there were some secret cosmonauts visiting the Moon).

From [https://en.wikipedia.org/wiki/Lunar_Laser_Ranging_experiment](https://en.wikipedia.org/wiki/Lunar_Laser_Ranging_experiment)

> _Lasers on Earth are aimed at retroreflectors planted on the Moon during the > Apollo program (11, 14, and 15), the two Lunokhod missions,_ [...]

</comment></comment><comment><USER4> Obligatory Big Bang Theory reference:

[https://www.youtube.com/watch?v=-e5CtbbZL-k](https://www.youtube.com/watch?v=-e5CtbbZL-k)</comment>


Chernobyl zone shows decline in biodiversity - <AUTHOR> http://www.bbc.co.uk/news/science-environment-10819027

<comment><USER2> Why don't they cite the publication? Is there a publication?</comment>


HN: Let's #boycottZynga - <AUTHOR>

Let's give Zynga management a taste of their own medicine. They grew off exploiting the Facebook feed and twitter.
I started #boycottZynga on twitter. Please retweet. If we get the message out and convince people to stop playing before IPO, we can hurt their valuation.
Then they'll realize they can't just bully normal people. <comment><USER2> Honestly, I doubt most people playing Farmville et al. care at all about the politics of Zynga and their questionable virality tactics.

<comment><USER3> I also doubt that m/any people who read Hacker News spend any time playing Farmville and it's ilk.</comment></comment>