• 0 Posts
  • 524 Comments
Joined 2 years ago
cake
Cake day: June 9th, 2023

help-circle




  • If you go somewhere where the main language isn’t English, you should make an effort to learn the local language. Yes, there are places like the Netherlands where virtually everybody speaks English well, but not putting in the effort means you’ll always be an outsider.

    Things are smaller outside the US: vehicles, apartments, kitchens, refrigerators, etc. It can take a while to get used to not having the same space you’re used to. Also, some devices like clothes driers are rare.

    Europeans take recycling seriously. In some places you have to pay to throw away garbage, while recycling is free. But, recycling is sometimes a real effort, like there’s not a “glass and plastics” box, you have to take the clear glass to one place, the brown glass to another, etc.

    Tipping mostly doesn’t exist. That means that if you go to a restaurant you don’t normally have one assigned waiter. Whoever is free will help you, which tends to speed things up a lot. OTOH, since they’re not working for tips, the waitstaff don’t feel the need to fake a smile, pretend to be your friend, etc. Some Americans think that comes off as unfriendly.

    Electricity is more expensive (part of the reason for the smaller appliances) so sometimes will completely unplug things that an American would just turn off (like a TV).

    Businesses don’t have the same convenient hours as in the US. In some places, like Switzerland, they almost completely shut down on Sunday. 24 hour places are much more rare.

    The European take on freedom of speech is different. You are simply not allowed to say certain things. Some things, like libel laws, are much more friendly to the person who is the target, rather than the “free speaker”.

    Oh, and smoking is still much more common in Europe, and it can be pretty disgusting. In the US it has been largely eliminated from public spaces, and smokers are confined to small smoking areas. Even in private homes people will often smoke outdoors either to be considerate or because their landlord doesn’t allow smoking indoors. In Europe, smoking is still common indoors in many places, and… ugh.





  • I believe that, because test scripts tend to involve a lot of very repetitive code, and it’s normally pretty easy to read that code.

    Still, I would bet that out of 1000 tests it writes, at least 1 will introduce a subtle logic bug.

    Imagine you hired an intern for the summer and asked them to write 1000 tests for your software. The intern doesn’t know the programming language you use, doesn’t understand the project, but is really, really good at Googling stuff. They search online for tests matching what you need, copy what they find and paste it into their editor. They may not understand the programming language you use, but they’ve read the style guide back to front. They make sure their code builds and runs without errors. They are meticulous when it comes to copying over the comments from the tests they find and they make sure the tests are named in a consistent way. Eventually you receive a CL with 1000 tests. You’d like to thank the intern and ask them a few questions, but they’ve already gone back to school without leaving any contact info.

    Do you have 1000 reliable tests?


  • That’s the problem. Maybe it is.

    Maybe the code the AI wrote works perfectly. Maybe it just looks like how perfectly working code is supposed to look, but doesn’t actually do what it’s supposed to do.

    To get to the train tracks on the right, you would normally have dozens of engineers working over probably decades, learning how the old system worked and adding to it. If you’re a new engineer and you have to work on it, you might be able to talk to the people who worked on it before you and find out how their design was supposed to work. There may be notes or designs generated as they worked on it. And so-on.

    It might take you months to fully understand the system, but whenever there’s something confusing you can find someone and ask questions like “Where did you…?” and “How does it…?” and “When does this…?”

    Now, imagine you work at a railroad and show up to work one day and there’s this whole mess in front of you that was laid down overnight by some magic railroad-laying machine. Along with a certificate the machine printed that says that the design works. You can’t ask the machine any questions about what it did. Or, maybe you can ask questions, but those questions are pretty useless because the machine isn’t designed to remember what it did (although it might lie to you and claim that it remembers what it did).

    So, what do you do, just start running trains through those tracks, assured that the machine probably got things right? Or, do you start trying to understand every possible path through those tracks from first principles?




  • Yes, my point is that they don’t have a political ideology.

    Like, the IRA was bombing things because the goal was Irish independence. They wanted the UK out of Northern Ireland.

    Al Qaeda was bombing things to get the US out of the middle east. They wanted no US troops on Arab soil.

    Boko Haram wanted an area to be fully under Muslim law, with no western books or education.

    That’s the normal definition of terrorism, a group that’s terrorizing the population in pursuit of a political aim of some kind. It isn’t normally considered terrorism if there’s no ideology involved, and it’s just in defence of a criminal enterprise.

    In the case of the narcos, I don’t know of any political aim. I don’t think they have any particular ideology, other than “we want to keep making money selling drugs to Americans”. To a certain extent, I can see how they could be considered terrorists because they’re terrorizing the population, the courts and the government to get their way. But, in the past there has normally been a line drawn between a terrorist organization and a criminal organization.


  • Terrorist / Terrorism seems to be a magic word in US law and policy.

    If a country has organized crime in their country it’s no big deal. If there are close ties between the rulers and the criminals, that’s unfortunate.

    But, if the criminals are now labelled as terrorists, then you get to go on the state sponsors of terrorism list, which comes with all kinds of sanctions and restrictions.

    If you look at so-called “terrorist” organizations, there’s almost always elements of “terrorist” activities, but also evidence of other random criminal activities, and often legitimate political activities too. Take Sinn Fein, the political arm of the IRA. Some of their funding came from fuel and drug smuggling. So, where you draw the line between a “terrorist” group and a criminal group is pretty arbitrary. I think most people would say that the Mexican cartels are primarily criminals though. While they do kill people in ways that are intended to send a message, the message is generally “don’t mess with our profits” rather than some political ideal.

    Every country has some corruption, definitely including the US. So, what happens if a Mexican politician was accepting bribes from Narcos and passing legislation favourable to them? When does that become the state sponsoring terrorism?

    Putting the “terrorist” label on Mexican cartels seems like a prelude to doing things that violate Mexico’s sovereignty. If the cartels are merely violent criminal organizations, it’s a problem for Mexico’s government. If they’re “terrorists” then the US can lob missiles into Mexico, because it has a long-standing policy of violating the sovereignty of countries that “harbor” (i.e. contain) terrorists.


  • Yeah, I love that one.

    “Try” is too hopeful. “fuck_around” makes it clear that you know what you’re doing is dangerous but you’re going to do it anyhow. I know that in some languages wrapping a lot of code in exception blocks is the norm, but I don’t like that. I think it should be something you only use rarely, and when you do it’s because you know you’re doing something that’s not safe in some way.

    “Catch” has never satisfied me. I mean, I know what it does, but it doesn’t seem to relate to “try”. Really, if “try” doesn’t succeed, the corresponding block should be “fail”. But, then you’d have the confusion of a block named “fail”, which isn’t ideal. But “find_out” pairs perfectly with “fuck_around” and makes it clear that if you got there it’s because something went wrong.

    I also like “yeet”. Partly it’s fun for comedic value. But, it’s also good because “throw” feels like a casual game of catch in the park. “Yeet” feels more like it’s out of control, if you hit a “throw” your code isn’t carefully handing off its state, it’s hitting the eject button and hoping for the best. You hope there’s an exception handler higher up the stack that will do the right thing, but it also might just bubble all the way up to the top and spit out a nasty exception for the user.