HNHacker News
TopNewBestAskShowJobs

lmitchell

242 karma · joined May 10, 2015

submissionscomments
lmitchell··on The Lyttle Lytton Contest
Hey now, don't make me sad. In my heart I still like to pretend that Discworld will always have more books to read :'(
lmitchell··on The Lyttle Lytton Contest
This feels spectacularly Pratchett-esque. I would not be surprised to see this as the first sentence of a Discworld novel :P
lmitchell··on How much free time do you have?
> Part of the message, aside from just quantifying how limited time is, would be to find enjoyment where you can in your 'mandatory' activities too as they'll represent the bulk of your life.

I wish I could give this comment more upvotes. I'm slowly learning this lesson in my personal life - I wish I could learn it faster, but the goddamn brain is just too much more insistent than the body..

lmitchell··on Rust – Compile Time Memory Safety
The only thing 'unspecified' guarantees you in this context is 'safe to destroy'. It specifically does not guarantee the safety of any other member functions - only the destructor. So either push_back() or pop_back() could potentially cause UB here (specifically, it's quite possible that the move swaps some internal pointers for nullptr, so you end up dereferencing null here - but morally, it's just never okay to continue using a moved-from object).
lmitchell··on Creeping on You in the Cold Drinks Aisle
Right, this is what I was alluding to with 'choosing what to feature'. But I honestly am not sure whether a line should be drawn here, and if it should, where it should be drawn. I know that one feels distinctly creepier than the other, though, so I'm sort of hoping someone chimes in and can clarify my thoughts better than I can :)
lmitchell··on Creeping on You in the Cold Drinks Aisle
Aren't they different, though? When I go into a grocery store, the deal is, they put out a selection of things, I pick the ones I want, then I go home. This is actively trying to manipulate me personally into buying something that is not one of my original desires.

I mean, I guess grocery stores already do this in some ways, in choosing what to feature... they do effectively 'advertise' certain products. But this seems more like it's trying to manipulate my behaviours, rather than trying to fulfill my desires as well as possible. I'm not sure how different it is... but it feels a lot different to me.

lmitchell··on Show HN: The operating system I built as my high school project (2016)
'Ultron is designed with OOP in mind and has not failed to live up to the promise at all possible places.'

Would that more professional programmers had this humility. :)

lmitchell··on Show HN: I taught my little brother JS, and he made this videogame in a week
I... definitely did not just watch this play itself for like five straight minutes...

I think I need to get more fresh air or something.

lmitchell··on What If Amazon.com Actually Is a Horrible Website?
Presumably 'developer experience', given how it's used in conjunction with 'user experience' for a developer-focused product :)

Admittedly not the most easily understood acronym, and I'm sort of guessing.

lmitchell··on The Hair of Physicists (2012)
I was convinced it would be something about realistic hair simulation and/or rendering.

I was surprised, but I was not disappointed.

lmitchell··on An OCR cliche: Into his/her anus (2009)
Not gonna lie, I still can't parse what this is supposed to be after a number of readings. What's the actual sentence? I'm so curious :P
lmitchell··on Let's remove Quaternions from every 3D Engine
Thank you for posting this, I found it both very enlightening and a pretty fun internet-drama read :D

Interesting that the original complaint of that article/thread and this one are both the same - ie. quaternions are 'too hard to understand', and people 'use them without knowing how they work'. With this being posted so soon after https://news.ycombinator.com/item?id=18310788 , I feel like that complaint is less valid now than it ever has been, but it's kind of interesting to think about why quaternions in particular draw so much fire when, honestly, I found matrices to be equally challenging at first. Is it just an education thing, since matrices are generally taught much earlier? Or is there some intuition in matrices that isn't present in quaternions? Both of them seem to be just 'do this math, then magic happens' unless you think about them a fair bit, and that was pretty challenging for both the first time round imo.

lmitchell··on Version Control Before Git with CVS
So I've actually thought about this a fair bit recently, since I'm making some changes to C++ code that touch a lot of files in reasonably straightforward ways. The changes should be possible to merge conflict-free in basically 100% of cases, but since so many lines are touched, no VCS merge tool can manage it. Most of my changes are just typenames, so I figured, you could do some sort of AST-based merge to allow those changes to merge with semantic changes to the surrounding code.

But this has a lot of problems. Namely - most of the time, when two people change the same line, the changes really do conflict, and someone really does need to manually merge them. In fact, sometimes even when your VCS merges things happily, it still gets them wrong because two changes conflict semantically but don't touch the same lines.

So I guess I would say, I think merging is an impossible problem to 'solve', and going to a more granular merge strategy is actually a move in the wrong direction. You could maybe fix my particular case by 'whitelisting' those typename changes, and saying 'these are allowed to merge with anything else', but at that point... the effort required to specify that unambiguously and make it work properly is probably higher than just merging the changes.

lmitchell··on Amazon device recorded private conversation, sent it out to random contact
I really really hope this was a joke, because it was incredibly funny if so and terrifying if not.
lmitchell··on How to Adopt Modern C++17 into Your C++ Code [video]
Shameless plug: At EA we've open-sourced our C++ standard library implementation that focuses on games. While it's not necessarily focused on embedded development, you might be interested in checking it out - it provides a number of fixed_* containers (fixed_vector, fixed_set, etc) which can be configured to use stack allocations only, among some other things you might find interesting :)

https://github.com/electronicarts/EASTL

(In case it wasn't obvious, disclaimer: I work at EA, and frequently do work on EASTL, though I'm not the primary maintainer.)

lmitchell··on Who controls glibc?
This ignores both the fact that RMS is much more than just the maintainer of glibc, and the fact that 'just forking' glibc doesn't stop the maintainer from having a significant amount of public influence.

The problem is not anything to do with glibc - it's the conduct of someone who, like it or not, is a role model for a lot of people in the community, and has taken on a very public role.

lmitchell··on Who controls glibc?
I guess I understand the downvotes here, but I really do think you've hit on at least an issue. Maybe not the issue, but it's a pretty big problem.

RMS's conduct here is just... pretty inappropriate. Jokes about abortion, rape, race, sexual orientation, etc, etc, are not something you should be touching as the maintainer of a public project, no matter what your opinions are or how strongly you hold them. The glibc maintainers (completely reasonably) decided that the man pages weren't a good place for potentially-charged jokes like this, and removed it. RMS overruled them in a pretty childlike and insensitive fashion, and that's not appropriate when you're the public face of anything.

I don't give a shit about the politics of glibc - but I do care that someone who is a role model and a public figure acts like this.

lmitchell··on TinyVM – A small and easy to understand virtual machine in C
I dunno, I find it pretty easy to understand... seems like the main instruction loop is in tvm.c, in the function tvm_vm_run(), which is exactly the first place I looked and seems totally sensible to me.

  for (; vm->prog->instr[*instr_idx] != -0x1; ++(*instr_idx))
    tvm_step(vm, instr_idx);
lmitchell··on What can we learn from how compilers are designed?
Not quite. Multiple dispatch (as mentioned in sibling comments) is basically 'virtual on both object and argument types', so like:

  class Vehicle {
    virtual void Collide(Vehicle other);
  }

  class Car {
    void Collide(Truck other) { /* hit a truck */ }
    void Collide(Car other) { /* hit another car */ }
  }

  class Truck {
    void Collide(Truck other) { /* hit another truck */ }
    void Collide(Car other) { /* hit a car */ }
  }

  Vehicle c = Car();
  Vehicle t = Truck();

  c.Collide(t); // with multiple dispatch, calls Car::Collide(Truck)
lmitchell··on Key Git Concepts Explained the Hard Way
I moved from git to perforce when I switched companies, and even though I actually really like git and consider myself reasonably proficient, I don't mind perforce.

My one real pain point with it isn't so bad, but I dislike how perforce tends to work at a file level instead of a commit level. It's hard for me to make several related changes which all touch the same files, like a series of patches which all refactor the same area of code, but which I would like to review and discuss separately, and potentially revert some/all of.

It's hard to manage this with shelves, because perforce can't handle unshelving the same file in two different CLs. I could submit all the changes to a separate stream, but perforce streams just don't usually work well for us, and it's still hard to experiment by constantly making and rolling back changes.

I guess I'm probably only used to this workflow because I have experience with git, but this is the time when I really miss the granularity of a git commit (and I'm doing a pretty gigantic refactor right now... so it's hitting me quite hard).

lmitchell··on Flicks – A unit of time defined in C++
Diminuitive of 'nope' :)
lmitchell··on DOJ: We Want Martin Shkreli’s Enigma Machine, Wu-Tang Album, and $7.3M
I think the relevant quote from the judgment is: 'criminal forfeiture serves no remedial purpose, [and] is designed to punish the offender...'

So they don't actually care about compensation, they just have the right and want him to bleed.

lmitchell··on Understanding Transducers (2014)
And I'm lucky enough to have clicked on the comments first, otherwise I would have been #6.
lmitchell··on Comparing C and C++ usage and performance with a real world project
You might be looking for the term 'SOLID' ;)

e: it may be worth noting that I can't for the life of me remember what the I and D stand for... clearly I am much more of a KISS kind of programmer.

lmitchell··on Launch HN: Guilded (YC S17) – Power-Ups for Gaming Teams
I knew I recognized your name from somewhere! Presumably you are the iEchoic of http://wiki.teamliquid.net/starcraft2/IEchoic_Build_(vs._Ter... fame? :)

Never knew you personally but I spent a lot of time lurking on TL after SC2 release, and further on into the Dota days, congrats on the launch!

lmitchell··on How I learned to code in my 30s
I've been clicking on your 'hacker news best comments' button for like twenty minutes now... you weren't kidding when you said 'basically a time waster' :P

Seriously, really good looking stuff for your early projects! I'm not surprised someone picked you up :)

http://www.opusnota.com/hnbc

lmitchell··on Ask HN: Women in tech, how do you find non-toxic work environments?
I know this is a bit irrelevant... but did you mean 'bonhomie'? (I only think that because I was really, really confused by that sentence - then I realized I had been mispronouncing 'bonhomie' in my head this whole time, quite badly. I guess I learned it by reading and you learned it by speaking :P)
lmitchell··on Progress on the Gilectomy
I don't even think it's about pretty code - I think it's more related to what one sibling of the post you replied to mentioned, which is that there are tons of communities (among them machine learning, but including tons of stats-heavy academic programming) which would REALLY like to do some extremely heavy work in Python, not because it's necessarily the best, but because it's what they know. Academics in particular (not CS academics, but stats and experimental sciences people) can be forgiven for wanting to stick with Python - they aren't programmers, they don't want to waste time learning programming language skills that are largely irrelevant to their job. All they want is to pick up an easy language and be able to do their work in it, but once their work gets heavy, the language starts to fight them. And that's a really popular use case for Python, I think.
lmitchell··on A year of digging through code yields “smoking gun” on VW, Fiat diesel cheats
Inasmuch as I want everyone to be guided by their moral convictions, yes. I mean, even if I don't agree with them, I'd much rather an engineer's decisions be guided by 'what they feel is right' rather than guided by nothing at all, which seems to be what parent was implying.

Also, this is why we have engineering codes of ethics, at least in Canada and the US (and while I'm not familiar with elsewhere in the world, I would assume similar things hold in most first-world countries). We don't necessarily have to agree on everything, but there is a baseline for what we consider ethical, and engineers are expected to uphold that baseline, otherwise they are not permitted to practice engineering. Unfortunately the line between 'engineers' and other practicioners isn't as well-defined for software engineering as it is for most engineering fields - but that doesn't mean we should ignore it completely.

lmitchell··on A year of digging through code yields “smoking gun” on VW, Fiat diesel cheats
'Once the rockets go up, who cares where they come down? That's not my department! says Wernher Von Braun.' https://www.youtube.com/watch?v=kTKn1aSOyOs

I really really really strongly disagree with this. As the ones who are most knowledgable about the systems they're building, I definitely think engineers have a moral responsibility to make sure they're at the very least following applicable laws and regulations - I would argue that we have a moral responsibility to act ethically even in cases where it's not covered by laws or regulations, but I'll admit that's a bit more controversial.

Page 1 of 3Next →