Hacker Newsnew | past | comments | ask | show | jobs | submit | RealDinosaur's commentslogin

How long would it take to spin up an injection molding line?

Aren't there parts that exist that are easier to 3D print, due to overlapping elements or internal geometry which require additional manufacturing steps when using injection molds?


Within 48 hours or less if there is a national emergency calling to get it done. The main time sink is CAD work to get the part designed, and then designing mold cavity and runners and getting the EDM die made, and running the EDM process to create cavity. The injection molding machine if run by a competent expert team - they already know most pitfalls of things such as rib/wall thickness, shot weight, run time and temperature for a particular type of plastic. You can run test shots and optimize the injection molding parameters in a very short time.

Alternatively, its possible to just use Aluminium molds for upto 10k parts.


I found it hilarious when a LA based startup compared their pricing structure to a 'nice meal' (50-100$)

Not only did it insult my definition of a 'nice meal', but also made me not want to give them any more money for 'nice meals'. A nice meal is 700 calories from healthy sources. An extravagant meal is the price they quote.

Similarly $5 is not the price of a coffee... It's about 30p.


I used to see older relatives post photos of very fancy meals they ate, and I thought they were being irrational/foolish. Then I had kids and realized that if you only eat out with your spouse (and no kids) 2-3 times per year, spending that much is not so crazy. If you have a babysitter, that will easily run $50, and it seems odd to spend more on that than the food/experience at the restaurant.

But to be clear, when people refer to a "nice meal" costing $50-100, they're talking about an evening of being waited upon, not just the food. What you're paying for is service, ambiance, and restaurant location (overlooking a beach? at the top of a skyscraper?). It's not crazy for someone to decide to choose to indulge by buying nice food bundled with a relaxing experience, compared with buying nice food separate from a relaxing experience (going on vacation, going to a sporting event, having a massage).

But for the record, I agree that $50-100 is an extravagant meal. I think they chose the euphemism "nice" to make it sound like the tradeoff was for something not so extraordinary.


That's exactly why targeting people to pay $5.00/mo for software as a service is a mistake. At that tier SaaS gets people who complain about $5.00 cup of coffee.


Wouldn't that normally include drinks, tips, possible desert and service. With all that, 50$ to 100$ is common in big cities.


I've never spent more than $35 on a meal in my life, and I like to think I've had some mighty good ones!


Even in big cities I have trouble spending more than this on a single meal. If I'm covering a date or sharing a bottle with the table that changes obviously, but unless you're going to a suit and tie or otherwise haute kind of place then $50 is absurd.


I think the catch all term for that is YAGNI.


YAGNI is about not adding functionality until it's needed. DRYing code isn't adding functionality.


I think GP is implying the thing you're not going to need is a generic solution to the repetition. i.e: DRY is in fact a feature.


DRYing existing code to handle exactly what is needed to support the current uses with no additional axes of variation isn't adding functionality (well, if it handles more than the existing values in the existing axes of variation, it's adding some but arguably de minimis functionality.)

Building code with support for currently-unused variation to support expected future similar-but-not-identical needs, that is, pre-emptively DRYing future code, is adding functionality.


WET - Write Everything Twice


What is YAGNI?


You Ain't Gonna Need It


I agree, especially for signage.

Although don't most university's encourage the opposite?

Also short comments seem unconstructive online.


Oh, it's not just Avid. Some audio production software such as ReFX Nexus still uses a USB dongle. There is no way to use the software without it plugged in.

It also has a policy where if you damage the dongle, you have to buy again and get a 10% discount off the FULL price of the VST.

In the age of people gigging on laptops, I'm not entirely sure how they think they are gonna sell any more of them. I fancy it myself as it has quite a few 'familiar' sounds on it, but not with all the downsides.


The problem is, there are some industries where the piracy rate would be 100% if it weren't for dongles. Music production software, for one. And another surprising one is church software! (They feel they shouldn't have to pay because they're a "church" and serve a higher purpose.)

I go to the NAMM (musical instrument manufacturers) trade show every year and work with music, sound, and church software vendors.


Embroidery software is another ( https://www.wingsxp.com/ )


To add to that, it's not just media production.

In the medical field, almost all software for performing and analyzing EKGs, X-rays, MRIs etc. comes by default with some sort of dongle-based protection. Apparently, it's not enough that you need the biggest dongle in the world (i.e. the machine itself!) to use the software. Some vendors do offer alternatives if you fight them hard enough but the default still is a trip to dongle town.


Ah, but they need to control that CD recording device on the workstation, just in case you're handing out CDs to your patients WITHOUT A CD RECORDING LICENSE. They have the weirdest licenses.


So there is software on a medical device concerned with users copying a Billy Joel CD?


They sell every functionality as an aditional "license" or "plugin".

So, for example, it's not unusual that, by default, your half a million USD scanner, that includes a powerful workstation to control it (the one the technician uses behind the window) will only let you write CDs (for example, to give your patient a copy of his/her scan) if you pay an additional "CD Writing license"

Now, with PACS and centralization that have changed a bit, but still...


Thanks for the explanation. Still gross but not as bad as RIAA checks being performed somehow.


> In the medical field, almost all software for performing and analyzing EKGs, X-rays, MRIs etc. comes by default with some sort of dongle-based protection. Apparently, it's not enough that you need the biggest dongle in the world (i.e. the machine itself!) to use the software.

Actually, it's not.

Some idiot will get the idea that they can just "transfer the hard drive immediately" because they didn't pay enough money on their support contract to get 4 hour response rather than 48 hour response. The dongle prevents that.

Medical devices are certified for the entire device--that includes the specific PC and the specific version of operating system running on it.


Apparently, it's not enough that you need the biggest dongle in the world (i.e. the machine itself!) to use the software.

Same for a lot of other industrial equipment. In my (admittedly limited) experience, they get cracked pretty quickly by the owner, either before the factory ever gets any downtime, or right after the first time.


This is fascinating, thank you for sharing it. Medical technology fascinates me, but I am nowhere near the industry. Same with things like CarPlay et al.


I used to work with cat scan machines a lot, and I found out how to emulate their dongle - you just returned 0 when it called for the check...


> There is no way to use the software without it plugged in.

This is only true if the software hasn’t been crack?


Thing is, the majority of iLok protected software has never been cracked, or if it has been cracked, only very old versions that aren't exactly relevant anymore.


Ah, right, fair enough :)


I've written tests before, but there ain't no way I'm writing unit tests for a throw away coding exercise that used 4 hours of my time already.


> but there ain't no way I'm writing unit tests for a throw away coding exercise

I would, if whoever gave the exercise told me they want unit tests.

Not telling that, and then failing people for the lack of tests is fucking stupid imo. At that point it's just rejecting them for not having the right (secret) religion.


usually for a coding challenge i include in the instructions to add unittests. ;)

since I consider the ability to write well designed unittests as crucial.


Just writing a unit test for an existing code would actually tell a lot more about the applicant's skills than a coding interview with vi. Or a task like "here is 100 lines of code, there is a bug there, show me how would you look for it". I wish more companies were doing these kind of coding tasks. Instead, all we get where I come from is "write a simple todo list application in your free time".


The amount of time required to 'learn' the Google interview would be time that could be spent learning more universally applicable skills.

Is it true that an experienced developer would not be able to pass the interview without studying using a similar guide? If so, then the interview process is... fubar.


A perfect job interview could be defined as an interview for which the best study technique is to become a better choice for the role. Studying skills that would not directly contribute to job performance would not change the result of a perfect job interview in any way.

In that sense, it's probably a good indicator for Google that the interview advice includes "practice writing code", "make it a habit to validate input", and "learn about data structures", and it's probably a bad indicator for Google that the advice includes "practice writing syntactically correct code on a whiteboard" and "practice solving problems with a 30 minute timer."


I'm in the interviewer pool @ Google.

> practice writing syntactically correct code on a whiteboard

This probably differs from interviewer to interviewer as to how strictly it's adhered to, but it's not really a hard and fast rule. I'm sure there are some interviewers that will ding you on a forgotten semicolon, but I suspect that most would not.

Personally I look for code that isn't so far from syntactically correct that it's clear you are trying to BS me. I'll even accept pseudocode for the most part. But I've had candidates that try to make up language features, and that doesn't fly with me.

> practice solving problems with a 30 minute timer

I only give my candidates 30 minutes. The whole interview is 45, I spend 5 minutes introducing myself and setting up expectations, 30 on the question, and 10 on answering their questions (after all, they're also interviewing us).

You can tell pretty early whether they're on a solid trajectory, and I'll offer the occasional hint to keep someone on track, or ask tangential questions if they're doing well on time. Not finishing isn't a deal killer, provided you had a solid approach and weren't just running in circles. But a good candidate will finish in about 25 minutes and we can spend some time talking about alternate approaches. Sometimes I'll show them the optional approach and see how that conversation goes.

Nine times out of ten a candidate scores low because they overlooked an infinite loop or code would crash on boundary conditions and candidate wasn't able to realize that even with hints.


>Nine times out of ten a candidate scores low because they overlooked an infinite loop or code would crash on boundary conditions and candidate wasn't able to realize that even with hints.

I guess this depends on how you run the interview but one of the things that frustrates me about whiteboard interviews that focus on the coding rather than the design is that I have to step through test cases (especially edge cases) like this manually, which is tedious and not at all how you do things in real life, where you just run the test cases and see what happens instead of having to run your own code on a whiteboard.


My question is about walking around a data structure. Most candidates choose to represent it with arrays.

I agree with stepping through code being lame. If a candidate has tried to do some sort of boundary condition check and mentions a test that'd catch it, then I'll give them a pass. If a candidate just blows past the code without any attempt whatsoever to check that they're in bounds on an array, then I'll ding them for that. You have no idea how often I see code like...

    Node neighbor = data[x+1][y];
... without any check at all to see if x+1 is in bounds for data.

The infinite loop in my question is fairly obvious (because it involves walking around a data structure iteratively). Candidates either see it right away and handle it as they solve, notice it halfway through and crowbar it awkwardly in, or don't notice it until asked to walk through a specific test case, or don't even notice it while walking through the test case.

Ultimately, if the code looks correct to me, or even close (I mess up occasionally) then I'll just ask what cases they would test.


There are however cases where

    Node neighbor = data[x+1][y];
does not require an index boundary check when you know that 'x + 1 < length(data)' for any 'x'. This could be due to the iteration of 'data' excluding the last element or any other condition that's always hold.


I'm like you in that I used to code "against the IDE and test cases" by basically rapidly iterating and kind of refining as I go along. Always fast to compile and see what happens.

Learning to write code on paper for exams and on white boards for interviews actually improved my skills a lot. Maybe not everyone coded like I did, "against constraints", but having to slow down and take into account the constraints mentally led to making better code.


> But I've had candidates that try to make up language features, and that doesn't fly with me.

This piqued my curiosity. Can you give an example?


I'm still floored by how many candidates I've talked to that assert with great confidence that the local variables they declare will still be there with the same values when they call the function recursively.

And most recently, when iterating over a string's characters the underlying string methods KNOW that the string is being iterated and will pick up at the current iteration point. For example, you've got the string "5432112345". And via iteration, you're currently pointing at the first "2" at index 3. The candidate asserted that if you call "indexOf('2')", it would return 6 because "indexOf" knows that it is iterating and should start 1 beyond where it is pointing at.

And my favorite - once had a candidate that misspelled a function name while coding in Ruby. I didn't ding them for it. But I pointed it out because it just bugged me. And the candidate then swore to me that Ruby will automatically call the correct method if there was only 1 candidate based on the misspelling. You know when you do things like "git inti" and it says "did you mean init?". The candidate swore that Ruby would just call "init" for you because it knew what you wanted.


https://github.com/yuki24/did_you_mean#installation :

    Ruby 2.3 and later ships with this gem and it will automatically be required when a Ruby process starts up. No special setup is required.
It doesn't call the method for you, but it does do the did-you-mean automatically if you misspell and it's close enough.


Maybe this what they meant? I dunno. I can see this being helpful in irb/pry.

In the end, we did end up making an offer to this candidate. They did well on everything we asked them. This was the only "brain fart" they had.


I once passed a whiteboard interview just calling random made-up operations on generic java arrays, like Array.flatten().

I was relatively new to programming and had been practicing in Java but didn't know how to execute a lot of map/filter/reduce operations off the top of my head like that. I did, however, know that my interviewer was a Python programmer that probably didn't know much about Java language features.


I thought you were allowed to assume functions you needed in the interest of a modular solution. Array.flatten is an obvious “assume I have this, I would write it anyways.”

I think most decent interviews will give you a pass on an enhanced standard library.


When doing an interview at Google in C, I asked if I could assume I had a hashtable implementation with so-and-so interface, and the interviewer said no ¯\_(ツ)_/¯


This depends on the question but I assume that in this case the interviewer wanted a different solution than one using a hash table.


Ouch. Well, most hashtables in C are custom, I guess.


If you can explain what it is supposed to do, I don't care a whit if you make up a method that probably exists in a standard library somewhere (Guava / Apache Commons, or wherever). If it's slightly more obscure, you might have to write pseudocode to show you know how it might be implemented.


This one candidate had been allowed to skip the phone screen, and phone screens would likely have filtered them out. Candidate used Java and claimed to be deeply familiar with it. Obviously this isn't exact, but the result looked something like this:

    public isTheFooBarred(class Node { int[][] positions, int size } node, int x, int y, Set visited = new HashSet(node.size)) {
      // ...
    }
The first parameter to the method had an inlined class definition, and the last parameter was optional. We discussed this and the candidate claimed that this was legal vanilla Java. In the case of the last parameter, the candidate claimed that the compiler generated every possible combination of methods including and excluding each of the optional parameters (so, 2^n methods).

I really tried to give the candidate the benefit of the doubt, and asked if there was some sort of annotation processor or code pre-processor that they were using, but they were adamant that it was plain old vanilla Java. I'm pretty sure that they were using some in-house built thing, but their solution had significant problems, so it wasn't the only reason I was against the hire.


I've had people interview for a Java job who didn't realise strings were immutable.

The question asked was a very short multiple choice; only two of the answers were possible under immutability.


That doesn't sound like a good question at. It sounds like you're looking for "Java programmers" instead of solid engineers.

When I interviewed for my current job using Java, I had been programming in Ruby and JS for the better part of a decade and had to refresh my Java syntax fairly quickly. I know I made some dumb syntax mistakes in my phone interview, like instantiating collections totally incorrectly. I distinctly remember one of my in-person interviewers saying "well, in Java it's boolean, not bool, but sure...". More semantically, I may very well have messed up mutability of collections and primitive conversions and boxing and such.

Enough of my interviewers saw through all of this that I got the job. Now people on my team come to me and say, "hey you're a java guy right?" and ask me questions about this stuff. I wasn't a java expert when I interviewed, but now I am, because that's what my job required, so I learned it. That's what my interviewers were looking for, to the company's benefit.


You're right that it is not disqualifying even if the Java expertise is essential for the job and the candidate describes themselves as a Java expert. This was a single short question among many though. And it's pretty fundamental to Java methinks.

BTW, they still got hired and proceeded to be a solid productivity reducer and all round waste of time.


> Nine times out of ten a candidate scores low because they overlooked an infinite loop or code would crash on boundary conditions

Why does this even matter? They're writing the code on a whiteboard, without being able to compile or debug, in 20 minutes. Does Google really expect code to be correct and production ready in 20 minutes?


> ... and candidate wasn't able to realize that even with hints.

He said why. Why did you misquote?


That is why they were "dinged".

Not why those things matter in whiteboard coding.


The standard solution to my problem is on the order of 12 lines of code. I don't expect it to be perfect or "production ready", but the infinite loop should stick out like a sore thumb. I do expect candidates to demonstrate that they recognized that problem, and to at least make some attempt to check that they didn't overrun the bounds of an array in the 30 minutes they have.


Hard to even get the interview. I've applied a few times as a senior Dev and was rejected based solely on my cv with the feedback of "work on your algorithms"...

Based on their perception of my algorithmic experience from my CV? Google's a weird one.


I've seen so many awful standards in my time when it comes to comments. Most of the time it's NIH syndrome, or people who love arbitrary rules. People love to make/follow rules, but comments are too nuanced for absolutes.

I've seen the following... These are all sins in my eyes.

    // This code is the property of Blamo inc.

    // Returns the result
    return result;

    // The name of the entity
    public string Name;

    // author: @author
    // Date last changed: DD/MM/YYYY

    /* 
    / public property Name
    / The name of the Entity
   */
    public string Name { get; set; }
I always try to tell people. DRY also relates to comments.

Also if you are going to supply me with badly written inconsistent style guide that was cooked up internally with no references or reasoning. I'm just going to download a popular one from github, and have all the tooling sorted out-of-the-box. I don't negotiate with terrorists or religious nutcases.

You need a pretty damn good excuse to deviate from industry standards. Most of the time it is personal preferences and a need to be in control.

AKA. I care about standards, I just don't care about your standards.


I'm completely the inverse, the ordering is the most convenience part of shopping already, the hardest bit is taking delivery.

Me. I order my Queal (powdered soylent) in massive quantities. I've actually got a year ordered already, which ships quarterly. Before I tried to order a month or two at a time, not only as it's easier to manage delivery, but you get good bulk discount deals.

So for anything I order a lot of, I'm already trying to make it easier than a button press, or I want something that fits into my schedule easier than taking delivery (EU, we don't really leave things on porches).


Don't try to use logic against hardcore environmentalists. Plastic == bad.

This is a bad website to be honest, as ordering consumables off Amazon least environmentally friendly ways to distribute them. Far better to ship via pallet to a local supermarket.

Or... Eliminate the need entirely. We need to change our entire way of thinking from 'buy and throw away', to 'invest and re-use'.

I had an environmentalist complain about a leather guitar strap I've had for 10 years, and that I should throw it away and get one made from an eco-material, such as recycled denim.

The leather guitar strap was ...

* More durable than any other guitars strap I've ever had

* A by-product of the huge meat industry (I'm a veggie myself)

* In my possession and functional

A lot of the buzz around small changes to help the environment, but the real change needs to happen to the consumer lifestyle we all seem to have. There is no quick fix.


Sadly, I think you're right. The Penn & Teller: Bullshit! episode on recycling showed some pretty good examples.

I'm an environmentalist, but only with a little e.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: