HNHacker News
TopNewBestAskShowJobs

phasmantistes

1,065 karma · joined September 1, 2015

[ my public key: https://keybase.io/aarongable; my proof: https://keybase.io/aarongable/sigs/oit7HOngHV70Q0Mwr_KVNRlABXViS4RP2hyKpeTeLZk ]
submissionscomments
phasmantistes··on Diversity and Inclusion at GitHub
This is just the pipeline argument. And while there are very real aspects to the pipeline -- yes, women and minorities drop out of the tech industry in early education, late education, and on the job -- the problem with the argument is that it attempts to absolve blame.

GitHub is not at the "bottom of the funnel". They're in the middle: people who work there today may go on to wildly successful careers elsewhere. And people who have bad experiences there may not.

So please don't make the pipeline argument. Just because other earlier stages have failed to be welcoming to minorities doesn't mean GitHub shouldn't try, and just because GitHub is a corporate employer doesn't mean their employees aren't still living developing human beings.

phasmantistes··on Jury in Oracle v. Google finds in Google's favour
A short summary:

* Oracle sues Google on copyright grounds.

* Case is overseen by Judge Alsup, who taught himself Java in order to understand the technical merits of the case. Case is split into two phases: copyright and patents.

* A jury finds Google to be infringing on copyright, but deadlocks on the fair-use defense. The jury finds Google to be non-infringing on all patents.

* Judge Alsup breaks the jury's deadlock on copyright by ruling that APIs are not copyrightable in the first place.

* Oracle appeals the patent claim, Google simultaneously appeals the copyright claim (it wasn't 100% in their favor).

* The Federal Court of Appeals (9th Circuit) hears the case due to the patent portion. It overturns Alsup's decision, declaring that APIs are in fact copyrightable. It remands the case back down to Judge Alsup.

* Google petitions the Supreme Court to hear the case instead, but the Court declines the request.

* Judge Alsup oversees a second trial, this time solely on the fair-use merits.

* The jury finds that Google's use of the APIs indeed falls under fair use.

phasmantistes··on Jury in Oracle v. Google finds in Google's favour
As I understand it, she was taking unpaid leave from her day-job at Vice Motherboard (despite then producing full-length articles for Motherboard on the topic).
phasmantistes··on Jury in Oracle v. Google finds in Google's favour
That was from the first time around in this trial, before it was overturned at the Federal Circuit level and sent back to Judge Alsup for a retrial.
phasmantistes··on Jury in Oracle v. Google finds in Google's favour
I'd also just like to give huge props to Sarah Jeong for keeping up such a high-quality live stream of tweets over the course of the entire trial. That's reporting done right.
phasmantistes··on Introducing the 2nd Generation Boosted Board
The primary reason you don't use those large wheels is the same reason that the boosted board has the same range as your monowheel at half the weight: large wheels (especially air-filled ones) with tread have incredibly high rolling resistance, which has to be constantly overcome by the battery.
phasmantistes··on Chrome removes Backspace to go back
Chromium already puts heroic effort into maintaining form state. Note that, a lot of the time, it works great. For example, here on HN, if you enter half a comment, go back, and then forward, your comment will be preserved.

But it is hard. No browser has succeeded in serializing full tab state: dom, forms, js, pending requests, etc. Chromium has been working on it and has large pieces of it but it is very very hard to get even close to fully correct.

You're letting perfect be the enemy of better.

phasmantistes··on Chrome removes Backspace to go back
Those folks are already using Alt+<arrow keys>, because that is guaranteed to work no matter what element is focused.
phasmantistes··on Code reviews aren’t just for catching bugs
Code reviews should be asynchronous. Everyone on your team should be able to be working on multiple small changes/commits/whatever in parallel. While one is out for review, they're working on the others. Different people keep different schedules: I do all my reviews first thing in the morning, to settle in, and then often do another round after lunch. Other people do them at the end of the day, or don't mind the interruptions (e.g. follow a pomodoro schedule anyway) and do them as they come in.
phasmantistes··on Code reviews aren’t just for catching bugs
What? These statements and conclusions make no sense to me.

Code reviews mean that every time I want to integrate with master I've got to 'grab a lock' and schedule and wait for a code review.

You're using a terrible code review system. You should be able to have multiple potential commits out for review at any given time. You should also have multiple pending commits from your coworkers on your queue at any given time. The code review process is asyncrhonous: process them at your leisure (though sooner is better than later, for obvious reasons). Once the review has been approved, it can be rebased onto or merged into master. If the patches you're writing are so far-flung that they don't apply cleanly, break them into smaller pieces.

What typically happens in these code review cultures is you tend to make monolithic commits (to minimize the # of code reviews you have to do) and you also tend to minimize diffs with the code base (to make the CR easier for the reviewer).

These two statements are contradictory. Monolithic commits by definition increase the diff with the codebase, not decrease it. What you tend to see are meaningful commits: commits which do one specific thing, and fully test it, without breaking any other systems.

phasmantistes··on Code reviews aren’t just for catching bugs
Yep, and design docs are the most important part of that planning for change. If you haven't planned the desired design, you can't see how circumstances are forcing you to change it, and what tradeoffs you'll be making to accommodate those circumstances.
phasmantistes··on The Descriptor Protocol and Python Black Magic
Yep, that's right. To lay out the example the way you did in the article, it would look like:

    >>> foo = A.b
    >>> bar = A.b
    >>> hex(id(foo))
    '0xdeadbeef'
    >>> hex(id(bar))
    '0xdecafcab'
    >>> foo is bar
    False
phasmantistes··on Panama Papers affair widens as database goes online
The Offshore Secrets (2013) was a specific leak about British offshore holdings in the Virgin Islands. The Panama Papers (2016) is a specific leak about offshore holdings managed by Mossack Fonseca in Panama.

This database contains data from the Panama Papers and from what the ICIJ is calling the "Offshore Leaks", which is a conglomeration of the Offshore Secrets and other smaller leaks between then and now.

phasmantistes··on The Bug in the Physical Building
It's clearly not just a design error. A conscious design decision was made: build the building with supports in the middle of the sides instead of the corners. This, in and of itself, was not a bug. In addition, a conscious implementation decision was made: hold the thing together with bolts instead of welds. Similarly, this alone was not a bug.

The two taken together hit a corner (heh) case and give rise to a bug.

phasmantistes··on The cryptographically provable con man
Good on Dan for being a voice of reason and collecting the findings of reddit/hn/#bitcoin into a central location. And as he says, good on Gavin for being equanimical despite the vitriol being thrown his direction from some quarters. The only thing to do now is to watch this play out... and I hope it does continue to play out, rather than Craig just going silent again. That would be much less exciting.
phasmantistes··on Facebook rewarded a 10-year-old for finding Instagram security flaw
If you had this exploit, how would you have monetized it? Do you know who to talk to? Do you know where to go on the darkweb to find the people who know the people who have the money to actually pay you for this? Do you know how to negotiate with them to actually guarantee payment? Do you know how much an exploit which can only delete content -- not generate false content, or access ACL'd content -- is actually worth?

Long story short, companies offer guaranteed set-size rewards as a counterpoint to the black market's potential highly variant payouts.

phasmantistes··on If cryonics suddenly worked, we'd need to face the fallout
“You can’t have the technology to wake people up and not have the technology to do a bunch of other great things, like provide abundance to the population.”

Sure you can. Just a couple paragraphs previously, you were making the point that cryonics is "just medicine", and medicine and (for example) agronomy advance at very different rates. I can easily imagine a future in which we have the technology and medicine to revive all of the frozen cancer patients, or all of the frozen ALS patients, but are still struggling with drought, climate change, and widespread poverty.

phasmantistes··on Who Was Ramanujan?
A Beautiful Mind isn't as long ago as you think: less than 15 years. In the space of cinema (which was producing films about famous artists at least as early as the '30s) that's not very long. Takedown and Pirates of Silicon Valley are also a bit different: hacking has been part of "pop culture" since the mid 90s at least, and Pirates is a documentary anyway.
phasmantistes··on Who Was Ramanujan?
You're absolutely right. But the movie is not meant to be a documentary about the math, it is meant to be a story about his life. The same goes for Theory of Everything, Imitation Game, and A Beautiful Mind. The different here is that what math they show is actually correct.

I was also disappointed that the discussion afterwards put so much emphasis on him as a person, and not on the actual math, but I don't hold that against the film itself. Movies about artists and authors have never been about their works of art either: the movies are about their lives, and I think it is appropriate for cinema to be used as a medium for biography rather than as a medium for education.

phasmantistes··on Who Was Ramanujan?
I was lucky enough to see The Man Who Knew Infinity this past weekend at the San Francisco International Film Festival. And I'd just like to say that it is a truly beautiful film, and I encourage everyone to go see it.

After the showing, there was a panel discussion with the director, composer, producer, two actors (Stephen Fry!), and three consulting mathematicians who helped the production. One of the topics that came up was the recent (finally!) interest in Hollywood for making movies about technical people. Since the dawn of cinema, we've made movies about artists, writers, and poets. But it is only recently that we've started making movies about scientists (Stephen Hawking) and mathematicians (Alan Turing).

In my opinion, this movie puts both The Theory of Everything and The Imitation Game to shame. It is much more moving and beautiful than both, and it doesn't fall into the either the trap of overly simplifying the math, nor of overly dramatizing his life. If you have any interest in math, science, or computer science (much of which is underpinned by his work in number theory), I highly encourage you to go see this film.

phasmantistes··on Fingerprints are Usernames, not Passwords (2013)
It's not, not to much of the general populate. This has been reinforced by decades of science fiction in which fingerprints or handprints get characters access to secure resources. It's also been reinforced by Apple's messaging about the fingerprint reader on recent iPhones: it replaces a pin or password, and so people think of it as a password as well.
phasmantistes··on Judge Who Authorized Police Search of Privacy Activists Wasn't Told About Tor
At what point does lack of information disclosure in the warrant application render the warrant itself invalid? Is there any precedent for invalidating warrants -- and therefore any information gleaned from the search, and perhaps allowing suits against the offending searchers -- due to circumstances surrounding the application for the warrant?
phasmantistes··on Squash your commits
Yep, in chromium-land we do something similar:

You can upload multiple different versions of a single code review, and reviewers can diff both against the base and against previous versions of the review. This is helpful for showing "stories", responses to comments, and for "my original commit got reverted, so here I've reuploaded it, and then also uploaded the fix, so you can clearly see what's different this time".

phasmantistes··on Squash your commits
Absolutely. If someone formulates their PR such that every commit in the chain is small, easily reviewable, and passes all tests, that's fantastic! That makes reviewing code, searching history, and bisecting all easier.

Unfortunately, that's not the 90% case that I see. Most of the time a multi-commit PR contains N-1 commits of incremental development and one final one that fixes all the tests and typos and removes debugging print statements. Neither the project nor the author benefit from having those intermediate commits integrated verbatim.

phasmantistes··on Squash your commits
Squashing entire pull requests that change multiple things into a single commit is a bad idea, yes. But uploading and asking for review on such wide-reaching pull requests is a bad idea in the first place.

Using fast-forward without squash is also a bad idea in many cases: the string of commits may contain multiple points that don't actually build or pass tests, even if the final commit in the chain fixes all that. There's no point in landing those broken commits, and doing so will confuse bisection tools.

Fast-forward with squash, and enforcing reasonably sized code reviews as a matter of culture, is the best of all worlds in my opinion.

phasmantistes··on Squash your commits
I actually disagree. Large teams that still have linear commit histories doesn't mean it is a lie. It means that the code review process is more important that the code writing process.

For example: I check out a repository, and create a local feature branch. I create a commit containing the tests for the new feature, then one for the first draft of the new feature, then two or three for bugfixes. Each commit is small, and self-contained, but importantly isn't standalone. If someone checked out the repository in the middle of my chain of commits, they wouldn't have a working product. Then I upload my change for code review. There's no point in reviewing each of my ~5 commits individually: they only make sense to the reviewer as a combined unit. And there's no point in landing them individually: they only make sense for the overall project history as a combined unit.

In a project with many developers (e.g. 1,000 like the Chromium project), every developer has different local practices. Some keep their work based on HEAD of master via rebase, others via merges. Some do test-driven development, some don't. Making the code review the atomic unit of work, rather than the messy string of local commits, helps the project enforce common etiquette, commit formatting, and readable history.

phasmantistes··on GitHub contribution graph can be harmful to contributors
You're presenting a false dichotomy. Yes, it may be true that people whose lives are made worse by their internal need to make their chart all green have deeper problems to deal with. But that doesn't mean that GitHub and the rest of the community have to continue to rub it in their face and aggravate those issues with a constant reminder that they "should be contributing more".

Recognizing that people may have problems, recognizing that the activity graph and streak metric may aggravate those problems, and then saying that the charts shouldn't be removed and the people should just deal with it themselves is not particularly empathetic.

phasmantistes··on GitHub contribution graph can be harmful to contributors
I'm not sure the analogy holds.

Yep, some people have difficulty building boundaries between their work life and their non-work life, or between their coding life and their non-coding life. (Some people don't want to build those boundaries, and that's fine, but some people do want to build them and yet have a hard time doing so.)

But just because they have a hard time doing something other people find easy doesn't mean we shouldn't make it even easier.

Removing the graph or the streaks metric isn't "giving someone a fish". It is realizing that they have difficulty catching fish when they try, and giving them a net to make it easier.

phasmantistes··on GitHub contribution graph can be harmful to contributors
There are actually tangible rewards: multiple people in this thread have talked about how they've had discussions with recruiters who examined their activity history and commit streaks. So maybe having longer streaks helps you get a job, and maybe having shorter ones hurts. It's anecdotal, yes, but it's not intangible.

But I think your second paragraph addresses the real problem: contributing 18hrs/weekday and contributing 5mins/day are both legitimate open source contribution styles. But the "streaks" metric removes all subtlety -- how many contributions are they actually making; are the changes meaty or trivial; do the changes break CI; do the changes address Issues in their respective repos -- and so I don't believe it is a helpful metric to display.

Personally, I believe it does more harm that good, by encouraging people to maintain streaks even if doing so actually decreases their true productivity or happiness. But no matter how much or how little harm it does, I think it is hard to argue that it does much good, since it is such a high-level distillation of complex information.

phasmantistes··on GitHub contribution graph can be harmful to contributors
Because now you're gaming the system. If the incentives put in place by the system are so perverse that the best advice is to -- for lack of a better word -- "cheat", then the incentives need to be changed.
← PreviousPage 3 of 5Next →