Hacker News new | comments | show | ask | jobs | submit | kstrauser's comments login

You beat me to it. Having been on the receiving end of emails like this, there's often nothing you can say to dissuade them of the idea that you are personally hacking them and breaking their things.

Be kind, though. This is a real person, perhaps a neighbor, who's scared and confused and who doesn't know where else to turn for help. These emails are annoying, sure, but might be the last-ditch effort of a desperate person. Ignoring them is kind. Putting their post up for public ridicule isn't.

-----


GitLab is a thing, and it's eminently usable: https://about.gitlab.com/downloads/

-----


Damn that's sexy.

-----


I write everything either ISO or spelled out. Your dates would be 2015-06-05 or "June 6, 2015". It's an easy quick that everyone seems to be comfortable with.

-----


> It was Castellan who had made the decision to scupper L’Utile by cutting her rudder in the hope that more men might be saved.

Why would that improve their chances? That intuitively seems like a bad idea, but the people who know what they're doing thought otherwise.

-----


That sentence as written is nonsensical. I think they meant "scuttle" (intentionally sink), not "scupper" (a hole in the side wall at deck level to drain water off the deck).

The principle of scuttling the ship is to remove the buoyancy so that the ship settles firmly on the bottom (which is shallow because it is grounded) and does not get pounded to bits as the waves pick it up and slam it back down. This helps keep the ship intact and allows the people more time to get off.

-----


A contemporary account states "Il y a eu de si violents coups de talon que la barre du gouvernail a fait sauter le tillac de sa chambre, malgré six barreaux en plusieurs endroits, et qui fit déterminer Mr. de Castellan a L’aller couper luy meme." which roughly translates to "There were such violent blows to the rudder, the tiller burst through the deck of its room, despite six bars holding it in place, and Mr. Castellan made the decision to cut it."

(From the document linked at the bottom of this page: http://www.histoire-genealogie.com/spip.php?article1533&lang...)

-----


That makes even more sense. The waves would be slamming the ship onto the bottom which would be attempting to drive the rudder through the ship every time. This would threaten to break the ship up very rapidly.

By cutting the rudder free, it would no longer be breaking the ship up, but it would leave a major hole where the rudder post came in, resulting in scuttling the ship.

-----


I think the part about "scuppering" is just some nautical-sounding nonsense that the author of the article threw in. If you read the account I linked to above, it's saying they jettisoned the masts, then cut the rudder, then threw the cannons overboard, but despite these the ship eventually broke apart. Like you say, it sounds like they were trying to stabilize it to reduce the damage, but my impression is they were trying to make it lighter and less top-heavy rather than intentionally sink it.

-----


In British English if something is 'scuppered (often someone's chances) it is destroyed or sunk. I assume the author was going for this verb usage.

-----


In British English, 'scupper' can act as a verb effectively a synonym of 'scuttle'. The Economist used British English.

-----


> I think they meant "scuttle" (intentionally sink), not "scupper"

When used as a verb, "scupper" means to destroy or thwart.

-----


If it was intended that way it's an extremely poor choice of words given the very likely confusion in a nautical setting.

-----


That makes a lot more sense than anything I could come up with. Thanks!

-----


I think that was meant to provide access to men trapped in the ship, which was not going to go anywhere with or without the rudder.

-----


Because I have no experience with Swift, could someone more informed explain this to me? How would my subclassing an Apple-provided class and overriding its methods affect anyone but me? In Python, if I write:

    class MyRequest(requests.Request):
        def get(self): do_something_stupid()
then my coworkers can still use `requests.Request` itself without getting my bad behavior, and if they find themselves looking at a flaw in my code, they know not to blame the upstream author. What's different about the Swift situation?

I'm kind of horrified at the idea of an OOP language that wouldn't easily let me override a parent class's behavior. If I break something in the subclass, it's on me to fix it. That never reflects poorly on that parent class.

-----


Sure, it only affects you. The problem is that changes to superclass can now break your code.

For example, perhaps right now the function looks like this:

    def get(self, url, method='GET'):
        ...

    def post(self, url):
        self.get(url, method='POST')
You override get, to add some additional functionality. All is fine.

Then somebody realizes that the original code was silly, and rewrites it:

    def get(self, url, method='GET'):
        if method != 'GET':
           print "DEPRECATED!"
        self.request(url, method=method)

    def post(self, url):
        self.request(url, method='POST')
It seems to do the same thing, and probably passes all the same tests. But suddenly, now your code doesn't get called for post requests and your additional functionality breaks in a mysterious way.

Perhaps its still your fault for doing a bad job subclassing, but its going to look like its the fault of the person who fixed the parent class.

-----


> changes to superclass can now break your code

The same exact thing happens when using composition.

-----


When a point release of the operating system breaks your app, the user doesn't care (or understand) whose fault it is, they're just ticked off. Apple cares about that.

-----


How is that different from your code not working because of an Apple bug (which they take months or years to solve in some cases)?

The end result is still a broken app (just due to a different reason), and the user will blame either the third party programmer or Apple, and mostly usually the programmer.

-----


Part of the reason why it's hard to fix bugs that people have worked around is because the fix often breaks the workarounds. Which causes a problem for Apple either way; either they can leave the bug in and let everyone work around it, or they can fix the bug and break all of the myriad apps that use the workaround. Depending on the circumstances, they can actually put workarounds into the frameworks to preserve bugs for apps linked against older versions of the SDK or for apps with specific bundle IDs, but not every fix is amenable to that kind of solution.

Which is to say, there's a good argument for the idea that reducing the ability to monkey-patch framework classes will make it much easier to actually fix bugs in the frameworks.

-----


>Part of the reason why it's hard to fix bugs that people have worked around is because the fix often breaks the workarounds.

That was a problem for Microsoft, Apple, from all we publicly know from their releases, never treated that as a problem. They went ahead with the fixes even if it broke previous workarounds.

-----


If an OS upgrade breaks lots of programs or even one heavily used program, chances are users will blame Apple, not the developers of said apps.

Also, part of the reason that it takes them long to fix certain bugs may be concerns about seemingly internal changes breaking applications. They cannot refactor methods (rename or even change an argument list) in any class they ship because someone, somewhere, might override one of its methods.

In that light, I think the change makes sense. Of course, Apple could just add private/sealed to all their classes, if only just before shipping, but why make the typical choice more work to write than the exception?

-----


>If an OS upgrade breaks lots of programs or even one heavily used program, chances are users will blame Apple, not the developers of said apps.

The user just knows said program doesn't work. And it's not necessary that an OS upgrade will break lots of programs that a user has, it can break this or that program in subtle ways, or classes of programs (e.g. those using the X api) of which a typical user will have only few installed.

E.g. if it breaks third-party camera apps, users might not normally have 5 of those, to see that they all break at the same time, but just 1 additional on top of Apple's (if that).

-----


The user knows the program worked yesterday, before (s)he upgraded the OS. Correlation is not causation, but I think you will get more hits googling "<OS> update breaks <application name>" than googling "<OS> update uncovers bugs in <application name>" for whatever currently used choices you pick for "<OS>" and "<application name>".

-----


Users don't always use all of their apps apps every day. If you go to the app 20 days after updating the OS, good luck remembering the OS update 3 weeks ago and deducing it was that which broke it.

Especially since, with the ability for apps to upgrade automatically, many don't even keep track when this or that app was updated.

Of course it usually is even more obscure, e.g. the bug only affects PART of the app's functionality, a part which you might have not invoked in your last run before the OS update. So, another deduction for many would be that that feature works intermittently because it's not coded well, etc.

Besides, even when the user can deduce that the OS broke the app, they don't complain to Apple, but to the software maker "fix your app", "where's the update release?", etc.

-----


Users even blame us when the App store fails to download updates and leave 1-star reviews

-----


The difference is that in that case the bug never makes it out to the end user.

Apple writes a new API. It has a problem. You try to adopt it, it doesn't work. You don't just ship that, you do something else.

Unpleasant, but doesn't hit the user.

-----


You missed the obvious fact that the bug change might happen to an API you already use. It doesn't have to be a new API -- just a new release of it by Apple.

So the problem remains: you can't easily extend the class with your own fix to bring out a bugfix release for your app.

-----


If you're the final user of an API, then yeah, go for gold and change whatever you want.

But if you're working in a team (or contributing a patch to a Github project), and you override something crutial like String.subtring(), then things could get out of hand.

-----


As pcwalton points out above, allowing (potential) dynamic dispatching behavior for every method is a significant performance drag, especially when (as with Swift) you won't be supplying a JIT to devirtualize and inline at runtime.

-----


Another endorsement from me. We migrated with

    import pymysql as MySQLdb
and everything just worked.

-----


I'm very conflicted:

1) "Innocent until proven guilty" and "wow, that timing sure is convenient".

2) LOL. grabs a bucket of popcorn

-----


If you really are concerned about the due process implications, it's worth reading Ken White of Popehat questioning how and why the time/place of the arrest and "perp walk" was leaded to the press.

From Ken: If Reuters was there through independent investigation, then good for them. But if Reuters was there because of a tip from law enforcement, then I'd like to ask a couple of questions....

Who leaked the time and place of the arrest? Was it an FBI agent, a prosecutor, staff, a coordinating local cop? How high up in the government did the decision to leak the arrest go? Did the leak violate the law? Did it violate the defendant's rights? What was the government's purpose in leaking the time and place of the arrest? How does this instance fit into the pattern of which arrests get leaked and which don't? Which nonviolent defendants without records get arrested, and which get summonsed in (or self-surrender through arrangement with their lawyers), and why? What impact does a font-page picture of a defendant in handcuffs have on the jury pool? Is that impact a feature, or a bug, of leaking it? Was the leak intended to inflict extra-judicial humiliation and punishment on the defendant? If the government lies about whether or not it leaked, would you still keep it secret?

https://popehat.com/2015/12/17/an-open-letter-to-reuters-rep...

-----


I am the only one hoping the judge offers bail, then raises it 5000% over the norm?

-----


No sense giving the defense any more reasons for appeal. Whether the guy is a scumbag or not, whether he has a lot of money or not, the criminal justice system should not be imposing undue burden or punishment based on public opinion regarding a matter that isn't even relevant to the case.

I won't lose any sleep when this guy goes to prison for a long time, but no sense doing nonsense that will only mildly inconvenience him and give potential grounds for appeal.

-----


> I won't lose any sleep when this guy goes to prison for a long time

What is the point of putting someone like this in prison? He wouldn't pose a threat to others if he were released immediately. He should be sentenced to spend his time and energy giving back to society.

-----


any chance he doesn't end up in prison, though?

I might be naive, but I'm under the impression that the book doesn't get thrown at white-collar criminals in the US.

what are the odds he just ends up on probation?

-----


I don't know any of the specifics of the case and IANAL so I couldn't say. My lay understanding is that this is a pretty straight-forward case and he will see the inside of a jail cell.

Personally, I think that impression (which is popular) is largely because A) white-collar criminals can typically afford better representation than someone e.g. accused of armed robbery; B) we're much more likely to hear about someone who embezzled $30 million getting off with a slap on the wrist than we are to hear about someone who broke into an empty apartment building getting a similarly light sentence.

-----


Also, armed robbery is often much easier to prove than more complex securities fraud.

-----


You don't go to prison for white collar crime. That's almost impossible to prove.

You go to prison for getting caught lying during an investigation about white color crime.

-----


It depends on the federal prosecutor, convicting high profile criminals is one of the ways they parlay that in to politics.

It's largely a matter of whether the case is winnable. Then if he acts anything like his public persona suggests, I can't see too many prosecutors going easy on him, if he's abrasive or something? It's entirely possible they give him the Schwartz treatment.

-----


No, you have it wrong. It's not about the price increase percentage, it's about setting the price to what the market is willing to bear.

In this case the Market is Martin Shkreli, and what he's willing to bear is likely everything he owns.

-----


I saw a story that his lawyer did exactly that: http://www.newyorker.com/humor/borowitz-report/lawyer-for-ma...

I really want it to be true...

-----


sadly, borowitz is the new yorker's satire columnist.

-----


And he's just unfunny enough to make you think it's true.

-----


his actual text is hit-and-miss, but his headlines are brilliant.

-----


1) This investigation has been going on for years.

-----


I've had my debit card canceled for fraud three times in the last four years, after only dealing with vendors I'd think would be reputable. I LOVE Apple Pay and similar layers between vendors and my credit card.

On the same note, I will never, ever use something like CurrentC that gives those same vendors a direct line into my bank accounts.

-----


Screw that. Unless I've specifically negotiated otherwise - and trust me, you'd be paying me handsomely for it - my work day starts upon arrival and ends upon departure.

Now, that's not a hard and fast rule. If something breaks at 2AM, call me. If there's an upcoming hard deadline, count on me. I've come up with plenty of work solutions while taking a shower at home. I pitch in extra because I believe in my company, enjoy my work, and want it to be successful. But if you want the right to my out-of-office hours, break out the checkbook. And frankly, you can't (or won't want to) afford that sort of arrangement.

-----


That's pretty much what https://keybase.io does, in a roundabout way. It links your public identity across many social networks to a PGP key, so you could say "let me talk to kstrauser on GitHub" (or on Hacker News!) and it would map that back to my public key.

-----

More

Applications are open for YC Summer 2016

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: