Ask HN: Why hasn't Google Wave caught on? - <AUTHOR>

<comment><USER2> I was an early adopter and I actually saw quite a few non-techies in my circles want invites right away, because it was seen as the next Gmail.

Except it delivered none of the "wow!" that Gmail did. It was slow, didn't really seem to have an immediate purpose (where as when Gmail came out, most people I knew had hit some sorta inbox-size limit before and knew that pain point)

and so on.

</comment><comment><USER3> I played with it some, and besides the fact that only a few geeks were using it, the UI was terribly frustrating: it was slow, and had just enough "desktop app" functionality to put you in that mindset, but not enough to actually behave like you expected (kind of an uncanny valley sort of thing)

</comment><comment><USER4> Well besides the fact it was closed down, Google was trying to "replace email". That was just too big of a step to attempt in one go with drastic changes in interaction.

That coupled with the fact you could only communicate with other Wave users made wide-spread adoption impossible.

<comment><USER5> Your argument is flawed.

Facebook users can only communicate with other Facebook users, but wide-spread adoption happened.

</comment></comment><comment><USER6> I don't even know what it is, I think that's probably at least part of the problem for people.

<comment><USER7> This. i signed up for it too. I wasn't sure what I was supposed to do with it (between Chat and Email, what was it?)

</comment></comment><comment><USER8> It kind of did, but in another form. Google took their tech and what they learned and implemented live, multi-person documents in Google docs.

Maybe the idea for wave to replace email was flawed, but it works well for specific documents and folders like in Google drive.

<comment><USER9> I am pretty sure shared docs with Google came quite a while before Wave, no?

</comment></comment><comment><USER10> I used and liked it, but imo it was more an experiment for google and they had no real use-case/focus.

</comment><comment><USER5> Searching for Public Waves on various topics was amazing, and it was a feature that not even hardcore Google fans knew about.

It was like Tweeting hashtags combined with Google Docs. It was very immediate, and you'd see people showing up to discuss in realtime.</comment>


.XXX Domain Approved: Now Begins The Era Of Meaningless TLDs - <AUTHOR> http://www.zdnet.com/blog/perlow/xxx-domain-approved-now-begins-the-era-of-meaningless-tlds/16385?tag=mantle_skin;content <comment><USER2> Oh I don't know, there are already some pretty odd TLDs: [http://en.wikipedia.org/wiki/List_of_Internet_top- level_doma...](http://en.wikipedia.org/wiki/List_of_Internet_top- level_domains)

Why do we even have ".biz"? And why do such arbitrary things as ".museum" exist, when there's no ".fruitstand" or ".bodyshop" (much less the fact that non-English speakers would probably hate to have full English words stuck in their domains)? It's that kind of hacking of the DNS that makes me wish someone else was in charge.

Even country codes are somewhat meaningless, now that people have managed to repurpose things like Tuvalu's domain (".tv"; gee, never saw _that_ coming).

In other words...even though certain domains are supposed to be used for certain things, you really _can't_ depend on that anymore because there are exceptions for whomever has enough money. It might as well be "www.mycompany.sdfdsfsdfds" for all the good it does.

At this point, I honestly think it would make much more sense to create TLDs that are a single letter (in _any_ language) that indexes every site starting with that letter. So "apple.a" gets you to Apple, "microsoft.m" gets you to Microsoft, and "ébb.é" might get you to École Bilingue de Berkeley. This also implies that the TLDs don't have "owners"; there's nothing special about any of them so they are registered implicitly, and no one can set any rules because any site that starts with "b" goes in ".b", etc.</comment>


If Carpenters Were Hired Like Programmers - <AUTHOR> http://www.dawood.in/if-carpenters-were-hired-like-programmers/ <comment><USER2> Original discussion to the original article posted by Jason Bock (which was merely copied by Dawood Sangameshwari without proper attribution [1]):

[https://news.ycombinator.com/item?id=7819413](https://news.ycombinator.com/item?id=7819413)

[1] There is some attribution a the bottom of the page, but it isn't proper. It contains neither the original author's name, nor is it a clickable link. It's just a plain text URL. Better than nothing, but still the most shabby way of "attribution" I've ever seen.

<comment><USER3> At the top of [http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa650...](http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa6506e2f35eaac) Bock says _I didn 't write this, so I can't take credit for it_ so I'm not sure failing to include his name or clickable link really qualifies as "shabby" attribution.

<comment><USER2> At least James Bock added a (clickable) link to the closest source he could find. Dawood Sangameshwari could have taken at least that one.

</comment></comment></comment><comment><USER4> Man this is the strangest thing to me. I used to be a carpenter. I would show up at your job site with my tools, you might ask me a couple questions, I've had guys ask me to lay out a wall or two off the prints. Call a reference to see if I show up to work. Then I get the job. Usually, doing something myself or my boss never had done before, and we would figure it out off the prints, and build it.

I just go turned down for a job I was perfectly qualified for because I 'didn't seem eager enough.' Other notes from the interviewer said 'I'd be ready to go day one' and 'seems easy going and easy to get along with'

What the fuck is wrong with people? When did working at your shit company have to be my passion instead of my job?

<comment><USER5> And the real kicker is that no company really gives a shit about anyone. The expect complete loyalty, but they have none in return.

<comment><USER4> Yeah, that kinda bums me out.

</comment></comment></comment><comment><USER6> This is so true. I see a lot of job ads that seem to require very specific experience, but where anyone in that field could do the job.

If you just make up eg 4 different types of technology, and put a few things in each bracket:

[SVN, Git, Mercurial, CVS] [MySQL, PostgreSQL, Oracle, MSSQL] [AMQP, MQTT, STOMP, RabbitMQ] [Java, C#, C++, ObjC]

Now if someone came along and said they'd solved a domain problem (eg trading systems) with one of each of those, I would more or less believe they could do it with any of the others, with a bit of time to get used to things (particularly c++).

But if you don't believe that, ie if you decide the person must have a specific combination, then you've just shattered the potential pool of applicants into 256 little pieces.

The other thing that annoys me is the pettiness of the interview questions. So many things that you could easily google can be used to stump anyone. What's the default implementation of GetHash() in c#? I actually got asked this once.

Then there's the other way to do things, which is to do an online coding assessment. I guess this gets rid of the FizzBuzz failures, but it tends to be a problem that's too small to see if you're about to dig a hole.

<comment><USER7> _What 's the default implementation of GetHash() in c#?_

I actually like this question (not that I've ever asked it before), because it teases out how well someone knows .net and C#.

The specific implementation of GetHashCode isn't what's interesting. It's whether you know that .net implements reference vs value equality by default, whether you know you really do need to override GetHashCode if you override Equals, testing if you know the fundamental requirements for objects you might use as keys in a Dictionary.

The specific number returned and its relationship with the identity of the object - that's not important, and is truly not something you could be expected to know. But you're ability to think things through, and know the environment - yes.

<comment><USER8> Bull. It teases out if someone happens to know the GetHash() implementation in C#. Their knowledge of .NET and C# can, in no way, be determined by one stupid question about the implementation of a specific function in C#. Evidence of that fact is in your actual response: I could now answer that question, having never used .NET or C#.

<comment><USER9> I would go so far as to say someone with that kind of encyclopedic understanding of a language is a negative indicator. People with an 'deep' understanding of a language like to use said knowledge to create 'Clever' code. 'Clever' code is generally more buggy, harder to maintain, and basically never needed.

PS: And yes, I have been burned by this in the past often enough so I will now pass on a few marginal people that happen to know a language 'deeply'.

<comment><USER10> Here's my exact train of thought while reading that:

 _GetHash? What the frack? Isn 't that on object somewhere? Right, object handles all the common copy semantics and so forth. Use the hash to check for equality; things on the stack instead of the heap, yadda yadda..

Dang, here the guy is going into detail why this is so important. Ah yes, value versus reference semantics. Boxing and so forth. Tiny trivia around how the CLR works. I remember those days well. Would make for a great Nerd Jeopardy question.

But who cares about all of that? I'll look it up if I need it. As far as memory usage, I worry about that by using pure FP and being careful what kinds of data structures I use. Problem solved._

Encyclopedic knowledge is great, but the real trick is dumping everything possible offline and then knowing how and when you should get back to looking at it.

<comment><USER11> While in the general case I would agree with you and I try very hard to dump as much stuff offline as possible, I would argue that this is one of those things you _cannot_ look up "if you need it", similar to the difference between 'class' and 'struct' in C# or the difference between 'class' and 'case class' in Scala (the C# one being a runtime implementation difference, the latter being a fairly large OO design difference). It's something you need to internalize to do well in the language and the environment.

C# (and similarly Java) are so tightly coupled to their runtime languages that, personally, I do feel like I need to understand stuff like this at an intuitive, not-even-thinking-about-it level to be able to write good, fast, clean code.

<comment><USER10> I do not think we disagree.

My point was understanding the stack and heap, boxing and unboxing, were great to know general purpose knowledge about how type systems are created and used in modern languages, whether Java or .NET

If you know what it is, and you know why it is important and when it is used, then any detail you might miss or mangle really isn't that important.

In a similar fashion, I can describe in general terms how a virtual lookup table is fashioned, and how method signatures work in OO linkers. I'd probably miss 90% of the details, but I retain enough of an overview to correct myself when required. I can know something in general terms well enough to know where to go when I dive deep. That's the goal.

You have to internalize struct and class. Not so much on the relationship between the built-in hash function and the rest of it. You start using structs and classes, you start extending the type system, badda boom, badda bing -- you end up in the same place. No need to be able to give a lecture on it. Just be able to do the work :)

</comment></comment></comment></comment></comment></comment></comment><comment><USER10> It's worse than that.

The CHAOS study, among others, shows that 80%+ of all software projects are viewed as failures by the people who pay for them.

Meanwhile you come onto boards like HN or reddit and instead of talking about how to establish and keep trust with the folks writing the checks, everybody's talking frameworks and tools.

So picture a subdivision where 80% of the houses are broken down, priced too high, incomplete, or put together haphazardly. Now stop at one of the houses where the building crew is still there and watch them spend all day talking about the nail-o-matic 200psi nailgun or the robot auto-roofer that the carpenters in the next town are using.

The situation is sad from every angle.

<comment><USER12> A: "Dude, have you seen this Nail-o-Matic 2000 nailgun?"

B: "No. It looks totally awesome, it's so shiny and chrome..."

A: "Yeah, it's the latest thing, I picked it up last night. Let's see how it does on this roof..."

 _A puts a shingle down and shoots a nail in. The nail rips through the shingle, blasts a 2-inch diameter hole in the roof and embeds itself firmly into the floor of the second story._

B: "Whoa, that's AWESOME! Can I try?"

 _BLAM! BLAM! BLAM! BLAM!_

A: "Dude, this ROCKS! Hey, boss!"

C: "Yeah?"

A: "Good news, we're going to finish this job in record time!"

C: "Whoa! Where'd you score a Nail-o-Matic 2000!?! That's _awesome!_ I've heard all sorts of great things about how powerful it is!"

 _Nail-o-Matic 2000: Because More Power Is Always Better. Always._

<comment><USER10> A. You know? What we really should do is get that new Blast-O-Matic bulldozer I have parked outside and tear all this crap down and start over! I saw a video on YouTube last night that said if we built houses using silly putty that they were impermeable to weather!

B. That's a great idea. Does it work with the Nail-o-Matic?

A. I don't see why not. They are both made of atoms.

C. Hang on guys. That's not going to work. What am I thinking?

A. What do you mean?

C. Dude. We have to draw pictures of the house first! I mean without pictures? We're just throwing stuff together. Our problem all along is that we haven't drawn enough pictures.

B. So if we draw enough pictures, then can we use the Blast-O-Matic, the Nail- O-Matic, and the silly putty?

C. Sure! I don't see why not. If we spend enough time drawing diagrams, dang near anything should be possible. At least on the diagram. Let me just pull out this circuit diagram for the Pentium CPU and we'll see how it relates to the average density of silly putty over time...

(B runs out and begins bulldozing house while A and C huddle over a blueprint with their slide rules)

B. Hey guys! You're doing a great job! Let me know when you're ready. I'll just go ahead and get started with the bulldozing.

<comment><USER13> So do I understand correctly that in this metaphor the poor quality of software is mostly because the practitioners are morons? I need to revisit the creeping complexity in my own projects and try to understand where I used the wrong nailgun, because this seems like a super productive analogy.

<comment><USER10> The joke is that nowhere in this picture is the actual guy who is receiving value from the work, the guy who keeps saying in survey after survey that our work sucks -- the guy paying for the house. We distract ourselves by everything under the sun from the continuous conversation and relationship management with the value receiver necessary to make sure we're doing something that the guy writing the check likes.

Sometimes we're distracted in an angry way "Guys! We need to straighten up and do X!" Sometimes we distract ourselves just because of bright and shiny objects "Wow! Take a look at that!" Sometimes we quibble over seemingly insignificant items. Sometimes we take things that should be important and elevate them to the highest level possible.

But the overall pattern is clear. We want to do anything and everything -- except be joined at the hip into the value stream, which is exactly what our job is.

This was the hard lesson that startups taught me: lots of stuff can be neat, valuable, or worth consideration. But a true professional knows that whatever he is doing, he is doing for another human being - and so he seeks to befriend that person, have a trustworthy relationship, and look out after that person's best interests.

That's not nearly as much fun as flipping bits, and it deals with a lot of messy social and human things.

</comment></comment></comment></comment></comment><comment><USER14> "Well, I'm a carpenter, so I've worked with all kinds of wood, you know, and there are some differences, but I think if you're a good carpenter …"

In my experience, a good programmer in one language is very likely a good programmer in another language as well. There are a lot more commonalities than some people realize. That's the reason why I'm sceptical of claims such as "the programmer knowledge half-life is X years".

More in "Programmer Knowledge" [http://henrikwarne.com/2014/12/15/programmer- knowledge/](http://henrikwarne.com/2014/12/15/programmer-knowledge/)

<comment><USER15> I'd rather hire a programmer that knew many languages than one who only knew one language really well though. Once you've learned a few frameworks and languages, you get much better at picking up new ones quickly because you've seen the same concepts somewhere else already.

<comment><USER16> I've always gone for the ones who really knew one language inside and out. The reason is actually very simple, they have demonstrated exceptional skill to dive deep into one language, so they should be able to do the same in another language.

The jack-of-all-trades people usually are much riskier hires as they don't always understand how deep they can go in any particular language, thus are unable to fully assess what they don't know, and require much more guidance as a result.

<comment><USER17> That's how I find myself conducting my own personal development. The deeper I dive into Ruby, the more I find myself able to hold my own in conversation with my friend the graybeard C++ guy whose been doing it longer than I've been alive. He'll describe something he's trying to do and I'll be able to immediately find an analogue in Ruby. I'll get a sense for how Ruby exists in the general evolution of programming languages and what it tries to solve. The experience makes me more aware of the problems that Ruby tries to solve so that I can use it better.

I see a lot of people who know three or four languages, but don't understand any of them really well or the underlying concepts. Or they'll focus over- heavily on the algorithmic side of the craft and neglect maintainability and readability. I see a lot of Ruby that looks like C.

When I finally do start branching out and learning new languages, it will be on a totally different level. I'll be diving into the entire ecosystem of the language and not just struggling at the surface.

But before that, I want to learn how Rails really works. I think I understand the difference between a library and an application, now I want to understand what a framework is and how one is built and maintained.

<comment><USER7> _now I want to understand what a framework is_

I'll short-circuit that one for you right now: you call a library, a framework calls you - it figures out how by some combination of convention and configuration. Libraries put you in control, frameworks make you cede control. You can usually mix and match libraries, whereas you can only use one framework at a time comfortably.

<comment><USER17> So is jQuery a library or a framework? I've seen it called, and used, both ways. It's not a hard and fast definition, and that's what I mean by "really understanding" something. I want the things I build to be able to be used in any way that it would be useful. It's the fractal landscape at the boundary between the definitions that I'm interested in.

I find myself refactoring code a lot, pulling pieces out and putting them elsewhere. Sometimes I think, "this piece would be better as a gem", or that "this gem needs to be its own application.

When I think about the overall thrust of what I'm doing, I get the sense that I'm building a framework. I need to be able to work web applications into the framework, and the only framework worth really using in this fashion is Rails. But Rails isn't intended to be included as you would a library. I need to understand it better if I'm going to be able to work it into my own framework.

<comment><USER18> I believe that jQuery is neither - it's a collection of tools to assist with programming webpages in whichever paradigm is appropriate for that particular task.

This approach gives the advantage of ceding ultimate control back to the programmer, at the cost of some internal inconsistency.

<comment><USER17> That's an interesting view. I can't think of jQuery as a tool. I have a collection of tools I use, I find a tool to be quite different from an application, a library, or a framework. Sublime Text is one of my tools. So is git. I also consider Ruby a tool. My laptop is a tool. I have some git-x commands that I've been slowly building on that I use collectively as a tool.

To me a tool is an extension of one's mind or body that goes into all projects that you work on. I can give away an application or a library. I can't give away a tool, or at least, it wouldn't really make sense to. I want to use all my tools to build a project, all my projects to use the same tools. That's why I stick to Ruby rather than bouncing around. I use Coffeescript/jQuery on web projects but I consider it a kludge, though not as much of a kludge as using Opal would be. I'd want Ruby integrated tightly into the browser before I'd prefer it over Javascript. I don't mind Coffeescript because I find that if you stick to a certain convention, Coffeescript is as easy to maintain as Javascript and I prefer the terser syntax.

My ultimate goal would be to be able to hack on all my tools like I hack applications. For example, I'd love to be able to replace Sublime Text with redcar, an editor written in Ruby, I've taken baby steps in that direction with my git scripts. I haven't decided if it would be better to write my own editor though. I'm probably at least a few years from that being able to integrate that into my workflow.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> Stolen from [http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa650...](http://www.jasonbock.net/jb/News/Item/7c334037d1a9437d9fa6506e2f35eaac)

<comment><USER20> The source is listed at the end of the joke so at least there was some attribution.

<comment><USER21> I find that in this age of no one reading past the inferred end of the article, it's best to put attribution at the top so as to avoid this very confusion. Just my two pennies.

</comment></comment></comment><comment><USER22> Accurate, but missed the part where the carpenter is asked to build a cabinet by drawing it on the whiteboard.

<comment><USER3> The point of whiteboarding isn't to "build" correct/functional code - it's to get an idea of your thought process and how you go about solving a problem.

It's not perfect (and there are both advantages and disadvantages to using a computer instead of a whiteboard) but when done correctly it gives a lot more useful insight than sitting there asking questions about their past the whole time.

<comment><USER22> Which would be perfectly valid if software developers spent their entire day solving problems on the whiteboard. But we don't.

<comment><USER3> Imagine you were in charge of casting for your community theater's production of _Hamlet_. How would you decide who to cast?

I'm guessing you would find it sensible to hold auditions. Does an audition perfectly mimic what they would actually spend their time doing come showtime? No. There isn't an audience, the lighting and acoustics are different, nobody is wearing costumes, everyone is standing in the same place instead of moving around, people are reading from scripts instead of having lines memorized, etc.

The audition isn't intended to mirror a performance - it's intended to give some insight into how someone may perform. Likewise, whiteboarding isn't intended to replicate a typical day in the life of a software developer. It's intended to give a glimpse into how you solve problems.

As I said above, it's not perfect, but it's far more useful than hiring someone _without_ any coding exercises and basing your decision just on how well they answer questions or what their background is. In fact the whole point of the post you're commenting on is to point out the foolishness of basing hiring decisions solely on having X years of experience in Y technology.

<comment><USER23> >As I said above, it's not perfect, but it's far more useful than hiring someone without any coding exercises

Whiteboarding vs no coding exercises is a false dichotomy. There are ways to test coding in a 45 minute interview that don't involve standing in front of a whiteboard, writing with a marker.

<comment><USER3> > Whiteboarding vs no coding exercises is a false dichotomy.

Sorry, it wasn't my intention to suggest those were the only two options (I was attempting to comment on the benefits of coding exercises, regardless of method).

Using a computer is certainly as good or better than a whiteboard. Though one of the bigger downsides to using a computer is there's generally this expectation you need to write "real" code that actually compiles and runs and so the focus becomes as much on writing syntactically correct code as about how you solve the problem (when only the latter has value).

</comment></comment></comment></comment></comment></comment><comment><USER24> I like the metaphor and style, but I think he left some good parts out. Such as (and yes I was asked these):

\- The ridiculously broad yes or no honor question (e.g. "So are you familiar with data structures and design patterns?")

\- The ridiculously specific-to-the-company question (e.g. " Here is a batch of the data our systems generate. How would you process it for triggering of requests to our api?")

\- The vaguely worded trick question: "OK that looks good... But how would you do it if you didn't have all these nice Java objects and methods?")

\- The Prove-it Take-home that doesn't change anything. "We use ruby and you've mostly used Java, do this ruby take home assignment." Two days later. "Your assignment looks great but we're really looking for someone with more Ruby experience."

\- The post-coding interview, resume-based rejection AKA "why the fuck did you ask me to come in in the first place?" rejection. (E.g. "Your coding interview went well but you've jumped around to different projects and we're not sure you wouldn't leave us if given the chance.")

\- The didn't drink enough kool-aid rejection. "Don't know the CEO's full bio? Don't know the intricate details of our public API? Didn't read our blog post from this morning? For shame."

</comment><comment> V-2 This answer on Programmers Stack Exchange sums the problem up very nicely:

[http://programmers.stackexchange.com/a/1847](http://programmers.stackexchange.com/a/1847)

> A common HR thing that drives me nuts when I'm job hunting: the implicit > assumption that all coding skills are language-specific, that there is no > software engineering expertise that transcends command sets. That ten years > experience in Java and another five in Perl mean you'd be completely useless > on a project that uses, say, C#.

> "Yes, there's a learning curve. But I've made harder transitions than this. > I'll make you a deal, pay me 80% for the first month and at the end of that > time if I'm not ... oh, wait, we're not actually having this conversation, > because your HR monkey simply deleted my application."

<comment><USER25> I think that's why a lot of companies are now doing contract-to-hire. First they let the contracting agency do the pre-screening, and if the employee doesn't work out the contract just doesn't get renewed.

Only problem is for the employee -- it is difficult during the contract phase, if they don't get any feedback if they will be converted to an FTE, and the lack of benefits. So for the hiring company, they will no be able to steal away any good developers who are currently fully employed.

</comment></comment><comment><USER26> This actually will happen if you speak with an HR rep for insurance predictive modelling:

-So do you have experience with SAS?

-Yes, but mostly I model in R. They are sister languages.

-So how much SAS, how much R?

-Mostly R as it is widely held to be a superior language

-But SAS you can do more with!

-Ahh, if Big-Famous-Tech-Company-X wanted to do stat modelling they use R, not SAS. Again, anyone who does statistical modelling knows this.

-But we pay for SAS

-Yeah, sorry about that...

<comment><USER27> If they want SAS that is their choice.

It's like asking a carpenter to built a cupboard and he answers: "I'd rather build a shelf, it will hold your dishes just as well."

<comment><USER28> No, it's more like asking a carpenter to build a cupboard, but when he brings a hammer to the worksite you ask him to use a rubber mallet instead. Sure, one _could_ drive nails with a rubber mallet—but who'd want to?

Likewise, who would want to use an inferior language or library when superior ones exist?

<comment><USER29> > Likewise, who would want to use an inferior language or library when > superior ones exist?

My guess is that the existing codebase is in inferiorLanguage, and it would be a massive pain in the ass to rewrite it in superiorLanguage.

The carpentry analogy doesn't really work here because you can stop using the rubber mallet at any time. You can't just switch frameworks or languages when you feel like it.

</comment></comment></comment></comment><comment><USER30> Are interview questions this irrelevant? Because there are relevant questions you could ask a carpenter in an interview, like if they've worked with I-joists, whether they know what a nailing schedule is, whether they're familiar with a "California corner", their health and safety knowledge, etc.

<comment><USER31> I would say that passing interviews is a separate skill, different than doing actual work. They are not _completely_ different, of course, but different. This implies that the irrelevance is pretty high, otherwise you would not need to prepare specifically for interviews.

<comment><USER32> That is a serious flaw in the typical interview process. An interview is supposed to screen people based on whether or not they can do actual work. If you are really screening for some parallel skill, then your hires are going to be a crapshoot.

</comment></comment></comment><comment><USER33> As someone who occasionally has hiring responsibility I sympathise with both interviewer and interviewee. It is extremely tricky to determine if the person you have interviewed is going to fit the bill. I've hired people who I thought would be a great fit for permanent roles but turned out to be the worst kind of procrastinating, one trick ponies who caused more problems than they fixed.

In a recent situation I had a very specific set of requirements for very specific reasons. The company is .net all the way and has a couple of permanent developers who know only VB and have no C# experience. Because of a large influx of work, these developers needed some additional resource for a short period of time. I wanted to try and increase the skill level of the permanent developers as they are not very familiar with design patterns and 'modern' techniques. To this end, I wanted C# developers with familiarity with design patterns and modern best practice to come in and develop in VB. I didn't care if they hadn't used VB recently at all. But I did care that they knew .net. I don't have time for them to learn .net. So I can't have someone from the Java world, it would just take too long. But at the same time, I'd rather not have a VB only person, as they tend (and I am generalising, I know) to not understand much about design patterns and they don't tend to have broad programming knowledge.

When interviewing for a specific role, you have to think very hard about what it is you are trying to do - and don't just fall back on generic cut and paste questions.

<comment><USER34> > When interviewing for a specific role, you have to think very hard about > what it is you are trying to do - and don't just fall back on generic cut > and paste questions.

I think this is true, but it raises a question about "hiring for a specific role."

I find that when companies do this, they're in a reactive mode. Which of course is going to happen from time to time, but the reason memes like the OP get born is because many companies are habitually reactive when it comes to hiring.

I don't follow a lot of sports, but I follow NFL football. Each year, the teams get to "draft" (a/k/a hire) incoming players from college. When it comes to the NFL draft, there are two prevailing philosophies: "Draft for Need" and "Draft Best Player Available". Without question, teams that stick to more of a BPA approach tend to have longer term success. Teams that draft for need _sometimes_ get that player that helps them get over the hump and win a championship, but more often they're trading away long-term greatness for some short-term pain relief.

I think hiring for software teams (and just about anything where there is a lot of variance in depth and breadth of skill) follows the same pattern. Hiring for a specific role is an antipattern (albeit sometimes a necessary one). If you have a very specific role to fill, perhaps a freelancer or a consultant might be a better fit for easing the short-term pain. Then you let them go as soon as they're no longer needed.

<comment><USER35> This is a really, really cool idea. I think the danger with BPA is that if you're hiring them way too early (like... a year before they'd be firing on all cylinders), then you risk them disengaging and churning out. NFL teams have a constant amount and kind of work that's predictable every season that prevents them from misallocating investments like this - and prevents players from misallocating their labour. Software teams, on the other hand, risk building the wrong thing, and hiring people for problems that won't come about until they build the right thing. Which usually means that those people get antsy (I definitely had this experience, but in a marketing role, which is even more stage-dependent than working dev positions, so I'm probably a little more sensitive to the chance and impact of being hired too early).

<comment><USER34> This sounds reasonable, though if you hire the Best-Programmer-Available regardless of the presence of a specific technical skill, I'd be surprised if they really take a year to get firing on all cylinders. Maybe a month or two at most would be what I would expect in the sorts of places I've worked.

Sure, some places (especially in startup land) can't even afford to wait even a month, but that doesn't make the dynamic any less of an antipattern. Instead it's just one of the painful tradeoffs people make while they need to manage their runway extra closely.

</comment></comment></comment></comment><comment><USER36> Then it means that you are applying to a wrong company (already consumed by bureaucracy, with little tech value or understanding)...

I remember my programming interviews as the most meritocratic ones (much more than e.g. in academia, where there is a problem that one is have too low high, or different official credentials).

</comment><comment><USER37> To all my friends here on Hacker News: Over a few years, I prepared a FAQ document on company hiring procedures for questions that come up here on Hacker News all the time about legal and effective hiring procedures. Most companies use lousy procedures for hiring workers, and that throws away competitive advantage. There is an optimal way to hire, and a century of research on what it is. Rather than repeat all my previous keystrokes here, I'll just link[1] to an earlier version of the FAQ. If you don't want even to follow a link to a very popular comment, let me just pass on here the summary of the FAQ:

EXECUTIVE SUMMARY: If you are hiring for any kind of job in the United States, prefer a work-sample test as your hiring procedure. If you are hiring in most other parts of the world, use a work-sample test in combination with a general mental ability test.

[1] [https://news.ycombinator.com/item?id=4613543](https://news.ycombinator.com/item?id=4613543)

I'm happy to answer follow-up questions about this. It's better for companies and it's better for capable workers for companies to learn how to hire smarter.

</comment><comment><USER38> Last June I started work with a software engineering company that was using meteorjs heavily for their new product and php and java for their main product. Front end was standard jquery. At the time of joining, I had only ever used java, and that too in university for a project on multi threading/parallel processing. In about half a month I was acquainted with the basics of meteor and node js, and within a month I was completely up to speed with the intricacies of the development enivronment. (not all of them. By up to speed I mean, I had figured out where to look when I hit a gotcha). This included mongo db which I had never used till I joined.

I then shifted time to working both on the new product and the backend of their old product. I was using PHP and a framework (I can't remember which one) that I had never touched before. Took me about a week and a half to get up to speed before starting to work on the actual product.

This isn't some display of talent. I believe that any engineer who understands the fundamentals would do exactly what I did. (Provided they are willing to read documentation without skimming through it).

The point here is, I left that company in October. And they've just reopened the position I left vacant. Looking at the list of qualifications and experience required on that list, I couldn't help but think, I would have never thought myself adequate for the job if I had looked at the ad posted since I had never touched any of the stuff they required. Turned out, when it actually comes down to it, it really doesn't matter.

This analogy is actually spot on. Languages really do become another shade of paint at some point. And I never really believed in that till a couple of weeks ago when I saw that job posting. Pretty crazy that as an industry we still believe in this kind of hiring process.

<comment><USER39> I think you have a great point, although some people are able to do what you did and some are not. Even if some people can do fast just-in-time learning there is value in expertise of the sort described in [0].

[0] [http://norvig.com/21-days.html](http://norvig.com/21-days.html)

</comment></comment><comment><USER40> A clear difference between a carpenter and a programmer is the liability inherent in the work. A carpenter can't just produce a minimum viable product that just happens to break down as soon as a bird land on it, or leaks water as if it was constructed like a sieve. Hiring a carpenter is a comparable safe thing to do, as the worst thing a lawful carpenter can do is overcharge his clients/employer.

A programmer on other hand is not liable for anything. If it breaks or leaks information at the easiest provocation, then its not the programmer who might loose money. All risk is put on the employer or customer, and as such, it becomes their responsibility to identify and test a programmer before spending money. As a result, you get questions which are mostly irrelevant to the task at hand, but which might sorts out high risk vs low risk.

If I hired a carpenter under those conditions, I would ask what brand of paint they buy. If its an expensive one, it might hint towards a professional.

<comment><USER41> Your logic makes sense, but it seems like every high school I've ever been in or heard about that had just recently been built leaked rain like a sieve.

<comment><USER42> That's because of flawed design usually. Architects cook up these lovely stylish renderings that the school boards find inspiring (particularly since it isn't their cash), which often involve flat or complex roofs.

Fast forward to the post-construction era, and that inspiring building now has 10 inches of water or ice on the roof. Water being water, it eventually gets in, usually around flashing.

</comment></comment></comment><comment><USER43> I really enjoyed the post. I reminded me a lot of this Youtube video([http://youtu.be/BKorP55Aqvg](http://youtu.be/BKorP55Aqvg)).

I understand this is a comical post but as the son of a carpenter and understanding the profession decently well I would say these are none of the questions that would be asked of a carpenter.

There are however many important questions a person would need to answer to be hired as a carpenter or more likely be able to join a union. There they would be able to get experience and training. Then the company the union carpenter work for already knows the skills and abilities they have and there is really no need for any interview. Any GC or sub asks for guys to do a job. The local sends them the qualified guys. Pretty simple actually.

<comment><USER44> "...these are none of the questions that would be asked of a carpenter."

That's exactly the point. But it parallels the useless questions so often asked of the general computer programmer by the Corporate HR Recruiter Drone .

</comment></comment><comment><USER45> They forgot to ask about the deeply theoretical questions that the carpenter wouldn't actually use at the job.

"Now could you whiteboard for me how a table saw is built?"

"I've never had to build a table saw."

"I just want to see how you think."

</comment><comment><USER46> ...and architects sometimes have to go to great lengths before they are allowed to work on your castle:

[http://www.fotolibra.com/gallery/698061/hiorne-tower-nr- arun...](http://www.fotolibra.com/gallery/698061/hiorne-tower-nr-arundel-west- sussex/)

...and for sci fi fans who think the Tower looks familiar:

[http://www.doctorwholocations.net/locations/arundelparktower](http://www.doctorwholocations.net/locations/arundelparktower)

</comment><comment><USER47> I came across this [1] job posting last week. Made me realize how ridiculous the knowledge and experience expected of a web developer has become. I particularly like bullet 6, "Team-oriented, flexible, and able to work in an ambiguous and/or changing work environment." Really?

[1] [http://jobs.hbispace.com/web/95148/job_2-15.html?cacheBuster...](http://jobs.hbispace.com/web/95148/job_2-15.html?cacheBuster=6420099)

<comment><USER48> DHTML? I haven't heard that term used in a while. I think can translate that job posting as such: "In order to save costs, we've trimmed all developer positions except one. You will be the sole developer responsible for everything we do. You will always need to be on-call to work, even if it's formatting a Wordpress post for an editor on a Saturday night. You will work long hours but we'll only pay for 40/week, no overtime. Your salary will be peanuts and will not cover the cost of living in Washington, DC. Be a team player and join us."

</comment></comment><comment><USER49> I have read this before, and I see the source is attributed. If so, why is this link on HN and not the original. Seems a way to gather some page hits.

</comment><comment><USER50> I think it's a really compelling and quite funny article but to actually make a difference you need the translation. You need the side-by-side comparison and I think people would sit up and go 'ah' and it will change hiring for them.

Can someone write this with the real-world situation so 'brown' isn't a guess at [framework/language/methodology]

</comment><comment><USER51> Depending on the job; i find the deeper somebody knows his/her special field the better he/she can adapt to another field.

I.e. if you really know the ins/outs of the Java, the VM, changes of the language over time. You will be able to pick up C#, python f.e.

</comment><comment><USER52> Love it :) Sad thing is that it hit the nail on the head so accurately (pardon the pun)

<comment><USER21> You really rocked it there.

<comment><USER53> Very piercing commentary.

</comment></comment></comment><comment><USER54> Seems like this is the original: [http://www.jasonbock.net/jb/Default.aspx?blog=entry.7c334037...](http://www.jasonbock.net/jb/Default.aspx?blog=entry.7c334037d1a9437d9fa6506e2f35eaac)

<comment><USER3> How can it be "the original" when it states in the opening paragraph _I didn 't write this, so I can't take credit for it_?

</comment></comment><comment><USER55> Given that both articles on that site were swiped from elsewhere without attribution, perhaps that particular "carpenter" should be asked about theft.

(well ok, one does mention a link to a 404 error)

</comment><comment><USER56> of course, this happens, but when it happens just end the interview.

would you like to work in such a place?

</comment><comment><USER57> ouch! As someone who's been on an 8-month long job hunt, this hits too close to home.

</comment><comment><USER58> No mention of H1Bs in this hiring related post?

</comment><comment><USER59> I will attach this to my resume.

</comment><comment><USER60> Just great!

</comment><comment><USER61> Gold.

<comment><USER62> I find it a bit less shiny every time I see it.</comment></comment>


Show HN: Codea Scratchpad - <AUTHOR> http://codea.io/scratchpad/

<comment><AUTHOR> Some explanation.

This is a completely free version of Codea. It's quite powerful — though missing some advanced features. My hope is to bring creative coding to more people.

I have no idea how it will affect sales of the full version of the app (if at all). I hope it increases them; but would just be just as happy with the app being used by more people.</comment>


The Tragedy at Tofino, B.C.: Inside the Sinking of Leviathan II - <AUTHOR> https://www.macleans.ca/sinking-of-leviathan-ii/ <comment><USER2> I live in BC and work for an organization that regularly responds to maydays. These things happen all the time. It is rare for so many deaths to be involved, but I hear the story of a small boat suddenly overturning on a weekly basis. The BC coast is littered with islands that make waves do strange things. We aren't Alaska, but the water is still cold and help is always far away. There are airforce helicopters in Comox and Victoria, but they are at least an hour away from most of the BC coast.

Don't go out in a small boat unless you are ready to fall off that boat. Either put on an immersion suit (the big yellow drysuits used by the fast whale watching boats) or make sure you have and know how to use a 6/10-man inflatable raft. Even then, take a plunge. Go to a polar bear swim (new years day in canada) and get a feel for real ocean water. And learn to swim. Not splashing around in your neighbour's pool. Imho if you cannot do a hundred meters in a lap pool you shouldn't be in any small boat. In rough seas that 10-15 feet to the raft, and then hauling yourself into the raft, isn't easy. If you are in your 80s and want to see sea lions up close, get a big TV and download an Attenbourough documentary.

</comment><comment><USER3> Two things stood out to me from a radio/communications point of view:

First, that a vessel carrying that many people wasn't required to be equipped with AIS, and indeed was not AIS-equipped. There are a number of water taxi and small ferries in BC which are smaller than this which _are_ AIS equipped, such as the water taxis you can hire to go from Vancouver to Gambier Island and other locations in Howe Sound.

Second, this part from the TC report, which seems to indicate that the government is taking more seriously the concept of requiring EPIRBs on this class of passenger vessel. Since modern EPIRBs are a lot less costly than they used to be, I don't think it's a huge burden for operators.

"In response, TC has proposed to expand requirements to carry an EPIRB. At the national Canadian Marine Advisory Council meeting in April 2016, TC updated industry on the proposed Navigation Safety Regulations, which are expected to be completed in 2018. Under the revised regulations, which would consolidate the Ship Station (Radio) Regulations 1999, among others, vessels would be required to carry EPIRBs when operating outside of sheltered waters if the vessel is more than 8 m in length, is carrying more than 6 passengers, or is a tug/tow boat."

<comment><USER4> I just got back from a week on my sailboat in Barkley Sound, which is the sound just to the south of Tofino on the west side of Vancouver Island. Maybe it is a local culture thing, but I was very surprised by how few boats had AIS transponders on the west side of Vancouver Island, especially now that the price of a transponder is well below $1000.

Then again, while AIS and EPIRB can save your bacon, they can also give a sense of false security especially if help is more than an hour away. Self- reliance comes first on the water.

<comment><USER3> Absolutely, I have only ever thought of modern aids like AIS and satellite EPIRBs as part of a belt + suspenders approach to safety and planning.

</comment></comment></comment><comment><USER5> The Transportation Safety Board report is at [http://www.bst- tsb.gc.ca/eng/enquetes-investigations/marine/...](http://www.bst- tsb.gc.ca/eng/enquetes-investigations/marine/2015/m15p0347/m15p0347.asp)

They recommend improved safety planning requirements and automated beacons for such commercial vessels operating outside sheltered waters.

<comment><USER2> Automated beacons are great, but nothing would have gotten rescuers onto this scene any faster. Thirty minutes or an hour is an amazing response time. Unless you are 10-15 miles from Comox, even an airforce helicopter could not have gotten their any faster.

<comment><USER6> The "Findings" section of the report indicates 45 minutes elapsed before authorities were aware of the capsizing. In this case, a beacon may have cut that time down.

In a location where hypothermia is a risk, this is important.

> _Approximately 45 minutes elapsed before search-and-rescue (SAR) resources > became aware of the capsizing, as the crew did not have time to transmit a > distress call before the capsizing, nor did the vessel have a means to > automatically send a distress call._

<comment><USER7> the temperature-to-survival time table:

[http://www.ussartf.org/cold_water_survival.htm](http://www.ussartf.org/cold_water_survival.htm)

In this case water was 14C, so while such water may be very unpleasant (depends on overall weather - on a nice summer day it is very nice to go into water at Half Moon Bay where water today for example is 14.5C, and where i originally come from we have 17C, at best, water in summer and everybody enjoys it immensely), it isn't such an imminent danger on its own if one has flotation vest on, as one can survive for several hours in it, yet unfortunately most people wouldn't be really able to actively maintain flotation on their own without the vest, less swim, for duration longer than may be 10 minutes. Basically having vest on or off is the critical juncture.

</comment></comment></comment></comment><comment><USER8> For anyone interested in maritime tragedies: [https://www.vanityfair.com/news/2018/04/inside-el-faro- the-w...](https://www.vanityfair.com/news/2018/04/inside-el-faro-the-worst-us- maritime-disaster-in-decades)

Spoiler alert: it's a sad story and no one survived.

</comment><comment><USER9> I have nothing to add to this story but I've been on this boat many years ago. Tofino and Ucluelet were my second homes for many years.

Cheers from Bulgaria.

</comment><comment><USER10> I (with my family) lived 5 years on a 13 m sailboat. I added AIS and EPIRB to the boat as we had many off-shore passages. AIS (class b) costs about $500 (US $). EPIRB is about $400 with a $200 every 24 month cost.

</comment><comment><USER11> What I take from this story is that I should always carry an inflatable life vest when boating about. There are some small models that wrap around your waist and don't get in the way until you need them.

</comment><comment><USER12> A story I kinda wished I hadn't read, 7 days before heading out into The St Lawrence, Q for a whale-watching trip (gulp)

</comment><comment><USER13> Something about the pagination of this story was awful.</comment>


Problem Solving with Algorithms and Data Structures - <AUTHOR> http://interactivepython.org/courselib/static/pythonds/index.html

<comment><USER2> This is really one of the coolest interactive tutorials I've ever seen. Embedding interactive code onto the page that can be played with in the middle of the tutorial provides a huge improvement to the overall learning experience.

</comment><comment><USER3> I love this, thanks a lot!</comment>


We're building a product and sharing everything we learn - <AUTHOR> https://medium.com/@tamas_19368/behind-the-scenes-this-is-how-were-building-a-product-%EF%B8%8F-e95511c17381 <comment><AUTHOR> The link might be broken, here is the working one: [https://medium.com/@torok_tomi/behind-the-scenes-this-is- how...](https://medium.com/@torok_tomi/behind-the-scenes-this-is-how-were- building-a-product-%EF%B8%8F-cbf841cb440d)</comment>


The Long-Awaited Promise of a Programmable Quantum Computer - <AUTHOR> https://www.technologyreview.com/s/601099/the-long-awaited-promise-of-a-programmable-quantum-computer/ <comment><USER2> related to the 5 qubit quantum machine mentioned.

[https://news.ycombinator.com/item?id=11241194](https://news.ycombinator.com/item?id=11241194)

[http://science.sciencemag.org/content/351/6277/1068](http://science.sciencemag.org/content/351/6277/1068)

[http://arxiv.org/abs/1507.08852](http://arxiv.org/abs/1507.08852)

[http://arxiv.org/abs/1601.06819](http://arxiv.org/abs/1601.06819)

[https://news.ycombinator.com/item?id=11235186](https://news.ycombinator.com/item?id=11235186)

</comment><comment> cat-dev-null Has anyone worked out an estimate for when prime factorization of 4096-bit RSA pks will be viable, either by govts or corporations with substantial resources?

<comment><USER3> According to NIST, researchers are suggesting that a quantum computer capable of breaking 2048 will be available for less than a billion dollars within the next 15 years:

[http://csrc.nist.gov/publications/drafts/nistir-8105/nistir_...](http://csrc.nist.gov/publications/drafts/nistir-8105/nistir_8105_draft.pdf)

Also relevant is Frederic Jacob's analysis of the NSA's relatively sudden shift towards post-quantum cryptography:

"[It] says that it takes up to 20 years for algorithms to be fully deployed on NSS, and the equipment is often used for 30 years or more. NSA refers to "many experts" that predict a quantum computer capable of effectively breaking public key crypto within that timeframe and that it is important to address that concern."

[https://www.fredericjacobs.com/blog/2016/01/27/NSA- QC/](https://www.fredericjacobs.com/blog/2016/01/27/NSA-QC/)

</comment></comment><comment><USER4> Does anybody know if any decent resources exist on how to program for a quantum computer?

<comment><USER2> The paper is linked at the bottom of the artice:

[http://arxiv.org/abs/1603.04512](http://arxiv.org/abs/1603.04512)

" _Demonstration of a Programmable Quantum Computer Module_ "

Abstract:

>" _Quantum computers can solve certain problems more efficiently than any possible conventional computer. Small quantum algorithms have been demonstrated in multiple quantum computing platforms, many specifically tailored in hardware to implement a particular algorithm or execute a limited number of computational paths. Here, we demonstrate a trapped-ion quantum computer module that can be programmed in software to implement arbitrary quantum algorithms by executing any sequence of universal quantum logic gates. We compile algorithms into a fully-connected set of gate operations native to the hardware. Reconfiguring these gate sequences provides the flexibility to implement a variety of algorithms without altering the hardware. As examples, we implement the Deutsch- Jozsa (DJ), Bernstein-Vazirani (BV), and quantum Fourier transform (QFT) algorithms on five trapped-ion qubits. This small quantum computer can be scaled to larger numbers of qubits within a single module, and can be further expanded by connecting many modules through ion shuttling or photonic quantum channels._ "

ADMISSION_OF_IGNORANCE: I haven't read the paper yet, but it looks fascinating and it's definitely on my must-read-quickly list. At present, I don't know if any of their code is available publicly.</comment></comment>


Security researcher defeats Windows 8 secure boot - <AUTHOR> http://arstechnica.com/business/news/2011/11/security-researcher-defeats-windows-8-secure-boot.ars?comments=1#comments-bar

<comment><USER2> The citations in the article don't talk about secure boot at all. Windows 8 is perfectly able to boot from BIOS or UEFI without secure boot, and given that the context is a bootkit that works on Windows 2000 to Windows 8 it's entirely possible that it doesn't have anything to do with secure boot.

</comment><comment><USER3> Here's the link to the researchers website, which has more information: <http://www.stoned-vienna.com>

PS: The url of the submission points to the comments. Please edit.

<comment><AUTHOR> Oh. Sorry about the submission URL. Yes, it would be great if a moderator could fix it.

</comment></comment><comment><USER4> From what I understood this could attack systems using the MBR, non UEFI systems or using an hybrid approach, which is not encrypted nor protected, thus the program can rewrite it and it fits within its boundaries. As it is run before control is passed to the OS, the OS can't do anything at all. If the attacker has physical access and can write the MBR or if there's a privilege escalation good enough to grant itself access to the MBR, you're powned. But I couldn't tell if UEFI protects its partition table in some way.

<comment><USER2> UEFI doesn't execute anything from the partition table. The firmware reads files from the filesystem and executes them. If it implements secure boot, it validates a signature on the binary first - failing to validate means it won't execute the binary. So there's no protection of the partition table, but the only thing you can do by attacking it is to render the machine unbootable. Attacking secure boot involves elevating your privileges within the UEFI environment.

<comment><USER5> I came across this while trying to understand the significance:

[http://simonhunt.wordpress.com/2009/08/04/truecrypt-vs- peter...](http://simonhunt.wordpress.com/2009/08/04/truecrypt-vs-peter- kleissner-or-stoned-bootkit-revisited/)

So if it's doing the same thing and needs administrator access in the first place is the problem for secure boot that it can't recover itself as it's supposed to be able to?

As truecrypt were dismissing this as insignificant on earlier versions of windows. Is it different for win 8?

<comment><USER2> It's no different. If it's still an MBR-based attack then it's completely irrelevant to UEFI-based Windows installs.

</comment></comment></comment></comment><comment><USER6> Here's the Peter Kleissner latest comment on it (from his twitter feed): No it's not attacking UEFI or secure boot, right now working with the legacy BIOS only (details will be in the paper)</comment>


Fruit fly nervous system: new solution to fundamental computer network problem - <AUTHOR> http://www.kurzweilai.net/fruit-fly-nervous-system-provides-new-solution-to-fundamental-computer-network-problem?utm_source=KurzweilAI+Daily+Newsletter&utm_campaign=d5f5bc2866-UA-946742-1&utm_medium=email

<comment><USER2> Adjacent cells might self-select, but you can adjust the probability of self- selection to lower this risk as much as you like. Once selected, the cell owns the adjacent cells, by inhibiting their self-selection. (Maybe the inhibitor spreads further over time?). As self-selection continues, any gaps are filled in.

It reminds me of git's hashes. There's no absolute guarantee that different objects will have different hashes (since there are more possible objects than hashes), but it's pretty good in practice (and I guess/hope git has a secondary check for collisions). I really don't like these kinds of algorithms - they are just _wrong_ \- but I have to admit they work pretty well, by taking a likely guess instead of working it out exactly. eg ethernet also uses randomnness.

<comment><USER3> This claim of wrongness is a pretty large claim. Care to back it up? (e.g. define wrong)

<comment><USER2> It's not meant to be a claim at all: the italics were meant to convey a sense of wrongness, that it feels wrong, not that it's actually wrong. Like noticing that a dog's "knee" bends the "wrong" way (that joint actually corresponds to our ankle). Or like fractions of bits, as in Arithmetic Coding. It's just _wrong_. How can you have a fraction of a bit!? Ridiculous! (note: my masters involved arithmetic coding; I actually do understand it). Another one is an existence proof, as opposed to a constructive proof (ie. where you demonstrate that something must exist, without actually constructing it).

joeyo's right: non-deterministic. It doesn't actually _nail_ the problem, it just "usually" works out "OK". Although, you can prove things about it, like how often it works, and how well. And that's very useful. Actually, I think it's to do with the algorithm not embodying a perfect solution, but rather a method for arriving at the solution. It's an engineering "how-to" hack, rather than a science "what-is". _EDIT_ ie. a _heuristic_

Note my explanation of the algorithm, including a way to "lower this risk as much as you like", which is saying that it does work, within tolerances. Any interpretation of "wrong" could take that context into account.

<comment><USER3> Well, that is much clearer, thanks :)

</comment></comment></comment></comment><comment><USER4> Here is the original story from Carnegie Mellon University on the topic:

[http://www.cmu.edu/news/archive/2011/January/jan13_fruitflyn...](http://www.cmu.edu/news/archive/2011/January/jan13_fruitflynetwork.shtml)

</comment><comment><USER5> Here's the paper's abstract: <http://www.sciencemag.org/content/331/6014/183.abstract>

Here's the supplemental materials: <http://www.sciencemag.org/content/331/6014/183/suppl/DC1>

Does anyone have a link to the actual paper?

</comment><comment><USER6> This article desperately needs a diagram.

</comment><comment><USER7> Requires all selection to be synchronized - may be difficult to implement in a dynamic evolving network e.g. the internet.

</comment><comment><USER8> Cool algorithm. Does it produce as effective an MIS?</comment>


Is HN suddenly blocking Tor nodes? - <AUTHOR> I've had issues viewing comments sections over the last few days. The page returned is simply blank. Creating a new circuit, and thus changing the exit node repeatedly, eventually allows me to view the comments. Does anybody know anything about this or have the same issue? <comment><USER2> I think they have some measure to block spam from Tor, perhaps they changed the setting. Try contacting the mods email@example.com</comment>


Understanding How Apache Pulsar Works - <AUTHOR> https://jack-vanlightly.com/blog/2018/10/2/understanding-how-apache-pulsar-works <comment><USER2> Pulsar and DistributedLog solve two serious problems of Kafka:

1\. Parallel recovery when a node fails

2\. Limited read capacity of multiple consumers reading different parts of the log.

Log Device from Facebook also addresses these issues.

</comment><comment><USER3> I found this blog post to be a higher level, and slightly clearer, overview of Pulsar vs. Kafka:

[https://streaml.io/blog/pulsar-streaming- queuing](https://streaml.io/blog/pulsar-streaming-queuing)

<comment><USER4> This is analysis is for people who want to understand the internals of Apache Pulsar, rather than a high-level overview of how to use the technology and how it compares to Apache Kafka.</comment></comment>


$300 A day business but no idea how to market it - <AUTHOR>

Hi Folks. I am new here and I've spent the past couple of weeks just reading through all the insightful posts. The reason I am posting here is because I need help and I think you all are the right folks who can help me.
Two years ago, I created a balloon distribution business that was earning me upwards of $300 per day every day, but last November, I got into a terrible accident that has disabled me temporarily and I have not been able to do the work.
So I decided to write an 18 page report about my business and sell it on the Internet for a nominal price and also offered money back guarantee. I had someone setup a nice website that was linked to my paypal account and I placed ads on Google, Yahoo, and Facebook to attract customers. I spent $100 to advertise on each site and after my $300 was used up, I had received only 11 orders. Not only that but Google suspended my account for violating their terms of service.
Since then, I have tried various online marketing methods and sold over a 100 copies of my report but I feel like the amount of time I spend marketing the business simply does not justify the returns.
That's why I turn to you. For many people on this forum, marketing their skills and products online is a major part of how they earn their money so I am really hoping you all can shed some light.
Thanks -Samir <comment><USER2> Hi Samir. Saw your site just now and I have a few comments from my side:

1\. I have seen many popular book/product sales sites and usually it is a one page site which pitches the idea and shows through testimonials what can be done. You could use a similar format for your site.

2\. The copy writing on your site needs some work. It's a sales pitch so it's gotta be convincing.

3\. As @djb_hackernews pointed out in his comment, ebooks usually work out for bloggers or 'celebrities' who already have a following. Perhaps you could start a blog about your ideas [since you mentioned you have worked on many other ideas before]. This way you would slowly but steadily get some regular readers. Also this would help in future ebooks you would like to sell.

4\. You have displayed a couple of testimonials on your site. Maybe you could have some of your customers who have actually implemented the business to post some photos/videos talking about how your ebook helped them. This way your testimonials become engaging.

And BTW, the site definitely needs an overhaul.

<comment><AUTHOR> Thanks for the pointers.

1\. The design of the site was actually done by a well wisher/professional web developer.

2\. I definitely need to work on the copy.

3\. Blogging is definitely an option I am considering. I am also looking into providing a private forum to people who have purchased my ebook.

4\. I had not thought about adding photo/video testimonials but that definitely sounds like it would be helpful.

Thanks for your suggestions! -Samir

</comment></comment><comment><USER3> Looks like you've created a franchisable micro-biz. The book is in effect the "operations manual" (Ok, I haven't bought nor read it).

You could add value to the book and create a franchise. For example add starter stock, etc and sell the package for say $99.

You would need to identify the sorts of people who are most likely to be interested and motivated to run such a biz, maybe part-time and then target them specifically.

Or, you could sell a master-franchise to a balloon manufacturer or distributor as a way for them to increase their sales.

<comment><AUTHOR> I have been thinking about adding/selling a starter kit as it will definitely help me raise the price of the ebook and I also have a pretty good idea of the type of people to target but how to target them is the big challenge.

</comment></comment><comment><USER4> Hey Samir, what do you mean by balloon distribution business? Like big balloons that go on top of retail buildings, those get well balloons or just regular sized balloons.

</comment><comment><USER5> Not to offer any actionable advice, but $100 on adwords won't cut it for marketing campaigns and I suspect the same goes for Yahoo and Facebook.

If you can, I'd up your marketing budget.

Also, ebooks and the like really only work if you already have a reputation, either through blog followers, newsletters etc. There is a sea of how to make money on the internet type ebooks, so it's that much more difficult to market.

<comment><AUTHOR> You're right, it's very difficult to market the 'make money' type of ebooks and it seems that offering a money back guarantee is not enough. I am a nobody on the Internet but my business is solid and I just need to figure out how to convince people that I have a real proven way of making money.

</comment></comment><comment><USER6> If your business really works that well, start hiring people to replicate versions of it in their local area. Most people say they want to start a business, but very few are actually risk-tolerant enough to do it. So expand by hiring employees, rather than selling the dream.

<comment><AUTHOR> I tried hiring people and even paid them well but couldn't find reliable people with decent customer service skills and this is the type of business where a small mistake can cause you to lose your client.

<comment><USER7> You couldn't find any reliable people with decent customer service skills? Soemthing seems off about that. Maybe you should get someone to help with hiring. If the actual business made that much, then why not run it instead of selling the idea?

<comment><AUTHOR> I definitely plan on running the business again as soon as I have recovered from my accident, but until then, I was hoping the ebook would help keep me busy and earn some income.

</comment></comment></comment></comment><comment><AUTHOR> Hi BasilAwad...these are simple balloons that you can carry in your hands, not the big ones that go on top of retail buildings.

thanks -Samir

<comment><USER4> The reason I was asking was to see if there are any unique sites or online communities you could target yourself, but I'm still not sure which ones those would be. That type of advertisement costs money as well, but maybe there would be a higher click and buy rate.

Is there any way you could create a brand and make it a franchise? Then you could list it at franchise listing websites and maybe take a small royalty with a fixed payment.

If there any way you could structure your balloon selling expertise as a quasi employment/entrepreneurship opportunity, you could post job ads, which can be free (for example, my university job board is free). If this business is not very time consuming, maybe you could target college kids looking for good side money.

<comment><AUTHOR> The idea is actually so simple, it would be difficult to turn it into a franchise or a quasi employment opportunity. The secret behind the business is What type of balloons to sell and which businesses to sell them to.

<comment><USER4> I read your about page and it looks like you would be privy to such a solution _but I still think_ people really value branding, deliverables and personal training because of risk-aversion. If the idea is so simple, that's perfect. You could decorate it a bit and sell your support. Your experience selling balloons is probably much deeper than two sentence that share why type to sell and which businesses to sell to. And I'm sure you can think of a number of conveniences and types of support you would have valued in the beginning. And you don't have to share your secret upfront. You could probably get a down payment higher than $10 and then share.

Just because you wouldn't take the franchise or quasi employment opportunity (you've been doing small businesses since college!) doesn't mean the vast majority of people are like that.

<comment><AUTHOR> I was hoping to actually create a brand out of a whole bunch of "easilydoable" ideas but even with this being my most successful idea, I am having so much trouble marketing it that it's truly frustrating.

</comment></comment></comment></comment></comment><comment><USER8> Link us to the website

<comment><AUTHOR> Here you go:

<http://www.easilydoable.com></comment></comment>


Oracle's now dumping Java crapware bundles on your Mac, too - <AUTHOR> http://www.engadget.com/2015/03/06/java-adware-mac/

<comment><USER2> I tried to install the JRE from java.com in a clean OSX 10.10.0 VM, and I didn't actually get any ask.com crapware. Has it been disabled, or is it a staged roll-out, or do they do some VM detection shenanigans?

Anyways I hope Apple revokes their code signing certificates and adds the appropriate XProtect signatures.

</comment><comment><USER3> It was insulting enough having this on Windows even if this sort of thing is appallingly commonplace, but most applications for OS X are held to a much higher standard.

I'm expecting Larry's going to get a phone call from Tim about this in short order.

</comment><comment><USER4> This affects me since I use Lucene/Solr in development. Are there any OpenJRE/OpenJDK builds that aren't hosted/built by Oracle?

<comment><USER5> Zulu: [http://www.azulsystems.com/products/zulu](http://www.azulsystems.com/products/zulu)</comment></comment>


Web based business ideas - <AUTHOR>

Please give me any web based business ideas if you have <comment><USER2> I think what would work better would be to share some of your own ideas for feedback from others. The best idea(s) will be the ones you get excited enough about to follow through with.

</comment><comment><USER3> Web-based business idea generator site ;)

</comment><comment><USER4> e-commerce</comment>


BIO Farming Manager - <AUTHOR> https://www.indiegogo.com/projects/bio-farming-manager

<comment><AUTHOR> DONATE and/or share to HELP us launch a free web/mobile management app for organic farming !

<comment><AUTHOR> [https://www.indiegogo.com/projects/bio-farming- manager](https://www.indiegogo.com/projects/bio-farming-manager)</comment></comment>


Copying and Pasting in JavaScript - <AUTHOR> https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/

<comment><USER2> I wish more websites would do this properly

<comment><USER3> Yeah, and I wish it was easier to do properly. This looks like a great resource to help with that.</comment></comment>


BBC micro:bit website launches - chestnut-tree https://www.microbit.co.uk <comment> chestnut-tree Some more information about the website launch is in this BBC blog post

 _Introducing the BBC micro:bit website in beta_ [http://www.bbc.co.uk/blogs/aboutthebbc/entries/6fb0dc17-4a70...](http://www.bbc.co.uk/blogs/aboutthebbc/entries/6fb0dc17-4a70-4a4d-bd10-0589cf7da007)

Accoring to the blog post, this initial beta launch is focusing on teaching material for teachers. There's an online simulator of the micro:bit that let's you start coding straight away. The currently available editors are Microsoft Block Editor and Microsoft Touch Develop Editor. Coming soon is Code Kingdoms JavaScript editor, and a Python editor from the Python Software Foundation.

We tend to gripe a lot about the BBC here in the UK (with justification sometimes), but this is a really excellent initiative that deserves a lot of praise. Only a public service broadcaster like the BBC could marshall together so many resources and collaborators for a project like this. I hope it's a great success.</comment>


Experienced Developers in Texas Needed - <AUTHOR> I am looking for an experienced technologist in Houston, TX. I want to discuss a start up I am working on and I am looking for some guidance. <comment><USER2> Could you tell us a little more about your idea? Nothing too specific obviously but at least what industry your idea is for and a little more background would be nice. I'm based out of Austin and have tons of friends in both Austin and Houston that have worked on a lot of really awesome projects in the past. Maybe I could help, but would like some more information :)</comment>


Hacking the Smart Grid - <AUTHOR> http://www.technologyreview.com/computing/25920

<comment><USER2> Quick correction: Mike Davis did a lot of fundamental research on the platform IOActive attacked for Black Hat in 2009, but my understanding is that Travis Goodspeed wrote the actual exploit code used in the demonstration.

I point this out not to diminish Davis' work, which I'm sure was great, but to illustrate the extent to which "smart grid" attacks are in vogue right now in vulnerability research. There were, I believe, at least 4 talks on it at Black Hat this year. Every software security consultancy in the country has done multiple projects targeting "smart grid" components in general and automated metering (AMI) in particular.

Smart grid components are interesting to me not because they're a vector for flashy (and horrific) real-world attacks, but because they demand a different strategy for mitigating attacks.

In conventional software, dev teams can rely on a "get it right and then patch what breaks" approach. While updating software is notoriously difficult, it is at least a plausible response to a serious security flaw.

When you deploy 100,000 smart meters running RTOS's on TI microcontrollers, this strategy doesn't work. Anything straightforward you do to make those meters feasible to update is going to blow up in your face. And this is an extremely unforgiving place to deploy security countermeasures; you face not only strict code-size limits on the meters themselves, but also RF protocols that need to squeeze every bit out of every message.

I think the winning strategy for the "smart grid" is, like Blu-Ray, renewability. Instead of trying to train 500 microcontroller realtime C devs in secure code and crypto protocols, people should sit down and devise mechanisms to recover from security flaws. Things as simple as protocol versioning, or the ability to shun/revoke specific devices, or the ability to fault to manual reads are like to make a bigger difference than whether the devices are using truncated SHA1 vs. SHA256.

</comment><comment><USER3> This has been a point of discussion for at least half a decade. The article has nothing that hasn't been posted to HN before. My take on a the playing field: Smart grid stuff has a weird confluence of stuff going for it, which is bad for security, but not as bad as the doom-and-gloom-for-profit folks say it is.

* Very legacy systems are very much in play, and compatibility is a requirement -- replacement and modernization is extremely expensive and time consuming.

* Old school engineers who hang on to "the power grid is different, we need specialized, non-standard it systems" mentality. This is partially true, but to the point the make it.

* A general distrust of power grid engineers (including software) of anyone claiming that "evil hackers are everywhere". They don't understand certain software issues, like once an exploit is found it is essentially free to take advantage of, which is the exact opposite of may real-life security issues.

* Utilities that view security as a matter of procedural compliance with some set of rules.

These combine for a bleak picture, the tempering tho comes from:

* vendors and regulators (doe, nerc, ferc) are very concerned with security at all levels.

* researchers are starting to show how real, physical damage can be caused by cyber-security problems (not just hypothetical, but demonstrable, bottom line affecting issues).

* recognition by the more pragmatic older engineers that today's "kids" are maybe on to something using commodity communications and software instead of custom everything. This has inherent security benefits in many places.

All that being said, this is a giant field, and the "smart grid" is not one thing (in fact, if you have n people talking about it, (n-1)^2 definitions of smart grid will usually emerge) -- security for the grid is an exciting and interesting place to be.

<comment><USER2> It's going to be "custom-everything" for the foreseeable future, since the grid operators want (need) to deploy this stuff in a tower-and-mesh topology. Even if you managed to build a system out of "COTS" technology (say, GSM and IP multicast), you'd still be working with technology that gets virtually no ongoing scrutiny from software security teams.

Unfortunately, I think software security expertise is going to be relegated to nipping at the edges of this problem, which the vendors and grid operators appear to be delegating to the "national labs" like Sandia and Idaho.

<comment><USER3> Meshing is the only reasonable way to network the meters and related communications (collectively AMI), but at the substation level (for distribution and transmission networks) you can realistically start using cots. People like Schweitzer who are already entrenched may try to keep the custom everything model, but there are serious efforts to at the very least use a single standard stack. Big pushes for 61850 in the substation and a common wide area solution for utility-utility and utility-reginal coordinator communications are happening right now.

They may be somewhat custom, but they are more cots/standardized than previously. Further there are several FOAs right now that require a built-in security component. These FOAs fund next-gen technology development, so I am not sure how you see this as only an "edge problem".

<comment><USER2> The systems I've worked on are all COTS from the tower on back (but then, they're all custom apps back there too, so it's not like there's a lot of safety to be gained from being on an IP network).

But who cares what they're using at the tower? Breaking into the distribution layer is a vanity attack if you can wreak havoc with 100,000 meters.

People who see "security" as a "component" of a software/hardware solution typically don't actually "get it"; these are the people that just can't get their heads around the fact that attackers will rip meters off walls, crack them open, JTAG them up and use them as modems. It always sounds so self- aggrandizing to say this, but you have to do security pervasively, from design to implementation to testing, to make a dent in the problem.

<comment><USER3> I think we are speaking past each other. You are talking about the problems that arise from crappy meters. I don't deny this. Further, the security needs in those meters is high. I say this from a consumer protection and a grid protection point of view (as in part of a larger defense in depth framework). And, the meters should be as secure as possible from general principle too.

However, my point is that the doom-and-gloom type scenarios, of "OMG the meters are insecure, now they own the power grid" is not realistic. There are other systems on other networks that can isolate and/or shut down places that have misbehaving meters. This is a result of grid operators being very paranoid about malfunction -- and at the level you are talking about, this looks to the grid like a malfunction. There are billions of dollars of infrastructure to protect, and from that point of view, they have already made some good moves from security standpoint -- a coordinated effort on many levels is required to get the grid to a failure state.

Again, I agree that security must be part of the entire process, however there is the other, equally valid point, which says "at some point, there will be always cheaters, and as a result this must be dealt with in a cost/benefit context". In many ways it could be cheaper to go with a fairly insecure smart- meter and just look for evidence of tampering with statistical comparisons and the occasional man in the field to look for physical evidence of tampering. I think this is particularly notable, as there is no good way to prevent people from getting physical access (security kiss of death) to the meters anyway.

<comment><USER2> I don't think we're talking past each other. You and I appear to disagree about the value of a region-wide compromise of smart meters; you point out that at least the grid operator hasn't lost its distribution network when that happens, and I point out "so what? attackers are still randomly cutting off everyone's power!"

The big gap between where you are and where I'm at is that you're operating under the assumption that all the meters do is count stuff. No.</comment></comment></comment></comment></comment></comment>


Doom Eternal – Graphics Study - <AUTHOR> https://www.simoncoenen.com/blog/programming/graphics/DoomEternalStudy.html <comment><USER2> And with enough processing power, you can get a computer that does all of this 1,000 times per second!

[https://slayersclub.bethesda.net/en/article/48xD6yVj0VsulONX...](https://slayersclub.bethesda.net/en/article/48xD6yVj0VsulONXKAnr7n/doom- eternal-overclocked-at-1000-fps)

I work with computers every day and I still just have no concept of how powerful they really are.

<comment><USER3> Computers are powerful enough to host exactly one Wordpress site serving a few dozen users simultaneously.

(Point being, any extra computer power is wasted by software until it performs no better than a computer from 20 years ago)

<comment><USER4> > any extra computer power is wasted by software until it performs no better > than a computer from 20 years ago

The existence of Doom Eternal disproves this.

In domains where high performance is important to the product's success, such as graphically impressive video-games, computational power isn't wasted. Bloat is tolerated in many other domains, though. Anything made with Electron, for instance.

</comment></comment></comment><comment><USER5> A few thoughts on this from someone who happens to work with graphics programming.

Mega textures: I always thought their insistence on this technique was weird and was never quite convinced by it. I used to have a colleague who praised it to the skies and swore everyone would be doing it in a few years. It's interesting that they've moved away from it now.

Forward rendering: It's fascinating that they're going this way. I feel like everyone is all in on deferred rendering nowadays, except when targeting mobile. I wonder if this is because they want to target older systems and Nintendo Switch. I have heard that Doom Eternal renders surprisingly well on older systems and my own experience optimizing for Switch is that it's not worth it trying to deferred rendering to work efficiently on Switch.

Shadow mapping: the use of simple 3x3 PCF makes me feel a bit sad that variance shadow mapping never really took off. I remember reading about it and implementing my own version in 2010 and it seemed like the future.

Uber shaders and draw call merging: I really like this from a technical standpoint, but I wonder how it affects artist workflow. I know a number of artists who love using special crafted shader graphs for everything.

Reflections: I wonder if this was just an optimization for memory bandwidth, as suggested, or a compromise to allow to go fully forward rendering.

<comment><USER6> Out of curiosity, have you played the game itself?

I played both the predecessor Doom 2016 game and Doom Eternal on the exact same hardware, and I was blown away by the performance _and_ quality difference.

Never before have I seen a game crank up the graphics quality this much _and_ improve performance to this extent without requiring a hardware upgrade.

To put things in perspective, I had to play Doom 2016 at 1080p on an NVIDIA RTX 2080 Ti for acceptable framerates, but I played Doom Eternal at 4K and it produced a silky smooth 60 fps throughout.

Whatever they're doing... it's _working!_

<comment><USER7> What they are doing is: they got help from google to optimize shit out of the game for stadia. (online streaming service for games)

<comment><USER8> Such problems are not solvable with money or manpower, and I don't think the Id team depends on Google engineering knowledge for GPU optimizations ;)

</comment></comment></comment></comment><comment><USER9> All that super complicated math to produce incredibly immersive graphics but you still can't jump or walk on an elevator while its moving (I still love the game, just find such thing amusing).

<comment><USER10> Game physics are hard.

</comment></comment><comment><USER11> Serious question: what is the value in an in-house engine these days? Performance? Ease of use? Profit margin?

I don't know anything about game dev, but the cost of maintaining an engine sounds very high, and the benefits seem unclear. I imagine that Unreal is more advanced than these homegrown engines, and the engineering cost of constantly upgrading a homegrown engine with new algorithms and such must be staggering.

What's the value?

Ps: Doom Eternal runs really great, but I'm sure with tuning Unreal can produce similar results, right?

<comment><USER12> I don't write in-house game engines, but I do write in-house devops tools and I assume the reasons are similar. Instead of reaching for things like Jenkins, Docker, Kubernetes, et. al., we developed a unified software solution that ties all of these concerns together in a way that aligns perfectly with our business objectives. Our biggest concern has always been the turnaround time of our software changes. We are at a point of doing multiple builds per day per customer, and pushing further into this realm requires some machine assistance.

For me, having 100% visibility of the entire vertical in code is the most compelling aspect. I can set a breakpoint somewhere in business logic and then step into the low-level if I need to. This sort of approach makes it really easy to spot things that are conceptually tricky. E.g. After stepping into an internal library method you discover that you are using ASCII and not UTF-8 encoding which is resulting in loss of fidelity of persisted business data. If this library method was in some external source you have no control over, it would either be entirely invisible to you, or taunting you with its unchanging gaze. For us, we simply edit the low level problem, push a commit, and its done. Knowing that we _can_ step into the lowest level code encourages us to do so. F11 takes us all the way to the bottom of the rabbit hole. Debugging is a lot easier when you have confidence that you are passing the correct byte sequences into database/os/framework libraries. This also means that stack traces are very useful since you can view the source behind everything.

There is obviously a cost associated with maintaining this solution. We have found that it is substantially more expensive to maintain than just using a set of existing tools. For our case, 1 full-time developer is approximately what it takes to maintain all of this infrastructure. However, there is also the angle of opportunity and efficiencies. With the custom tools we have built, we are now able to cycle our software development process 4-5x faster than before. Our project managers can click a few buttons in a web UI to trigger a build of our software followed by automatic packaging and scheduled release to selected customer environments. This also includes the ability to review all errors (fully-automatic reporting) combined with snapshots of business state at time of stack trace generation. We have the ability to click on a commit hash and see a list of all errors which occurred on that tree up to that point in time. All of this links back into our source control tool. I would say that our devops process is ~95% full-auto at this point. I have not seen anything like what I am describing offered in any public marketplace.

Sometimes if you want something really nice, you are just going to have to build it yourself. Many times, the cost of in-house custom will not be justifiable at face value. You have to look beyond this and consider the higher-order consequences of your decision over longer time frames. Our solution started out very humble and gradually grew into the comprehensive monster that it is today. If we hadn't taken the leap away from Jenkins 3 years ago in favor of implementing the build logic in code, we would have never had the opportunity to incrementally add all of the other amazing stuff that we did.

<comment><USER13> Sorry to say, but this was the completely wrong approach and I'm amazed the business let you do it.

Some poor bastard is going to have to undo all your mess down the road, I hope you buy them a beer if they ever track you down. I mean, at what point do you make the call that writing your own in-house copy of _DOCKER_ is a smart move? Let alone Jenkins.. The 'magic' abilities you describe this platform as having are utterly standard features and are yours as soon as you install e.g gitlab...

Of course, you actually have to spend some time and learn them and how to use them properly, but that time is VASTLY less than learning how to implement them badly and minuscule compared to the amount of time it's going to take to migrate off your in-house pile..

<comment><USER12> We did not write a 1:1 replacement for docker. We made technology choices which allowed for us to completely sidestep the conversation.

See: .NET Core Self-Contained Deployments and the inherent advantages of SQLite.

Just because we don't use a particular vendor's product does not mean that we have made the decision to re-implement 100% of their feature sets.

</comment></comment></comment></comment><comment><USER14> Can anyone tell me how one dan get multi pass screenshots like this ? I am aware of RenderDoc. Does it allow this or there is a different tool ?

<comment><USER5> You should be able to do this in any competent rendering debugger: PIX, RenderDoc, Nvidia's graphics debuggers

</comment></comment><comment><USER15> iD has done excellent work with id tech and I'd love to actually play it, but the Denuvo scandal leaves a bad taste in my mouth. I want to reward good industry behavior. I'm not sure if excellent technical advancement, competent design, and alluring art outweigh hostile behavior. They probably do on a 50% sale.

<comment><USER16> Didn't they back out Denuvo in the end? It seems fair to choose not to purchase a game if it has DRM, but conversely, if the company responds to the community by removing it, that seems like "good industry behaviour" worth rewarding :).

<comment><USER15> They did, but they also did add it suddenly, without notice, two weeks after the game launched (after return periods of day one sales expire). Pivoting to save face does not nullify that bad behavior. They'll do it again and will only back out if they get caught.

</comment></comment></comment><comment><USER17> I feel that Doom Eternal is a bit slow/unoptimized for the actual visuals you get. Love the game though

<comment><USER18> Really? My gaming rig is over 7 years old now. While it was pretty decent for it's time, it's definitely due an upgrade.

But I was still able to run D:E @ 1440p and get a respectable framerate with decent visual quality.

Compared to most other games, I think it's extremely well optimised.

<comment><USER17> Yeah it runs fine, but not great. I was also put off by this demo (rtx 3080 4K maxed out) [https://youtu.be/A7nYy7ZucxM](https://youtu.be/A7nYy7ZucxM)

<comment><USER19> I think the exact opposite from that demo, they chose Doom Eternal for the first showing of FPS from the 3000 line precisely because it's the best looking title they could get to run at 4k 120+ on the card not in spite of its looks.

Perhaps you just don't like the art style or prefer something that's prettier at low framerates than decent looking at high frame rates? I mean when it came out there were articles literally written about how optimized it is for the quality [https://www.tomshardware.com/features/doom_eternal- graphics_...](https://www.tomshardware.com/features/doom_eternal-graphics_cpu- performance-comparison). I'm not saying it's the best optimized game of all time but it certainly is in the top quartile.</comment></comment></comment></comment>