Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)SD
Posts
4
Comments
953
Joined
2 yr. ago

  • Once again, the opposite of “live service” is not “single player”.

    Thank you. As someone who loves multiplayer games, I like that I have had a lot of options lately. But, this whole "live service" crap needs to die. Sell me a game and then go away. If you want to release an expansion and sell me that, great, I'll take a look. But, quit trying to sell me a subscription.

  • Studio execs look at the mountains of money which have come from online games like WoW or Fortnite and get gold fever. They dream of having a permanent siphon attached to their customers' wallets and so will ignore any warning signs that their ideas suck and keep chasing the subscription model. And, in the end, it's not the execs who really suffer when these things don't pan out. They blame "market forces" and "soft demand", fire the development team and then spin up the next stupid idea, either at the same company or at a new one.

  • Kinda "meh" on this one. Sure, attackers will use other formats to spread malware. But, it's not like thy haven't been successful enough with zip files. If anything, it might mean that Windows Defender actually has a better chance to analyze the contents, before they execute. Though, whether or not Defender will actually block the execution is open for debate.

  • The fact that Trump was successfully impeached for inciting an insurrection is enough. The Senate’s failure to execute its duty does not erase reality.

    Do you actually understand how impeachment works? The House passing articles of impeachment means very little. For a legal equivalent, it's like the grand jury agreeing to indict. Should we be punishing criminals just because charges were brought against them, even if they were acquitted? Of course not. While the House has the Power to Impeach:

    The Senate shall have the sole Power to try all Impeachments. -US Constitution, Article I, Section 3, Clause 6

    The reality of the situation is that the Impeachment of Trump isn't a factor in the 14th Amendment barring him. Had the Senate convicted, it would have been a cut and dried situation, but that didn't happen. Were Trump convicted for insurrection for his actions on January 6th, it would again be an easy situation. The reason there is such an interesting conversation, and not much else, around the 14th Amendment and Trump is that the legal situation isn't clear. Lots of folks have said that Trump's actions were an insurrection, but he hasn't actually been convicted of it. Congress could probably bar him from holding office, but that hasn't happened.

    I'd also point out how insane it would be for the House's Power to Impeach to become the de facto bar for executing the 14th Amendment's bar on holding office. This requires a simple majority in the House. Really think that one through. You want the House to be able to bar any person from holding Federal Office, based on a simple majority vote? The level of chaos that would create would be insane.

  • This is not speculation. Donald Trump was successfully impeached for inciting insurrection.

    Did you stop reading your link at the title? Literally the third sentence:

    On February 13, 2021, the Senate voted to acquit Trump on the article of impeachment.

    If you want to dig into the arguments about what is and isn't legally insurrection and if the 14th Amendment is self executing or not, that is an interesting discussion. But, don't lead with a "pants on head" stupid argument that the House passed Articles of Impeachment, for which the Senate acquitted him, as evidence that the 14th Amendment applies. Just fucking no.

  • My all time favorite was Robotech, though it has not aged well.
    I also went through a lot of Disney in my youth:

    • Gummi Bears
    • Duck tales
    • Darkwing Duck

    And then there was the smattering of others:

    • Dungeons and Dragons
    • Thundercats
  • First off: time you enjoy is not time wasted. So, while gaming and watching TV (not just sports) may not be activities which provide some sort of self-improvement, they can be useful activities in providing for relaxation and stress relief. Humans generally don't do well when forced to be "on" every waking minute of the day. We need downtime to decompress and allow our brains to relax. "Play time" is a useful thing. Don't just abandon your enjoyed activities because they are looked down upon by some segments of society. Like all things though, they can be taken to an extreme. If you find that those activities were interfering with work, socializing or getting things done, which need to be done (e.g. home maintenance, self-care, etc.) that's when you should start worrying about addiction.

    That said, if you are looking for other "play time" activities you can take up in the comfort of your own home, there are quite a few:

    • Reading - find books you enjoy and read them.
    • Model building - hit a hobby store and find models you find interesting, buy and build one.
    • Model rocketry - Similar to model building, but you get to shoot them into the sky.
    • Home brewing - It's like chemistry, but you get to drink the end products. Check your local laws before starting.
    • Home distilling - As brewing, except the results are even more fun. Again, check you local laws.
    • Painting/Drawing/Art - Why not make something you like to look at?
    • 3d Printing - Learn to hate first layers. Maybe make something cool.
    • Wood working - Build stuff, enjoy the smell of sawdust.
    • Metal working - Whether blacksmithing or welding.

    If you are willing to get out and "touch grass", instead of watching sports, you could do some. Though, this often costs money and means dealing with people. On the upshot, you might meet some nice people and improve your health.

    In short, find something you enjoy doing and don't be ashamed of doing it. Just don't let it interfere with the things in life you need to get done.

  • Whether anyone likes it or not, Trump will be the US President for the next four years. For businesses, especially large ones, that means they will need to deal with his shit for the next four years. They can either take a "principled stand", which will likely hurt profit and not gain them anything tangible (read: money); or, they can suck up and try to get in on the grift gravy train which is going to be running out of the White House for the next four years. This has a much better expected value. So, the choice is pretty clear. Businesses are amoral and only care about profit, don't count on them to do anything which runs contrary to that motivation.

    For politicians, especially those on the right, the calculus is about the same. Trump has basically been the flag bearer for the right for the last decade and will continue to be the center of the right for the next four years. Where is a GOP politician is going to seek electoral support? No one on the left is voting for a GOP candidate, swing voters are damned near a myth at this point in history; so, that leaves seeking votes from the right. Which brings the politicians right back to Trump. Not sucking up is political suicide for a GOP politician right now. Expect more DeSantis style embracing of Trump and more Susan Collins "I'm voting with Trump, but pretending I won't just long enough to keep my seat in Maine".

  • Aesop's fable of the sour grapes seems fitting here.
    If you regret the dreams of your youth, it may just be that you failed to achieve anything and are unwilling to accept your failures. So instead regret ever having dreams.

  • Yes, as soon as we actually invent AI.
    The Large Language Models we have now aren't really it. When we have programs which can come to a well reasoned decision and actually explain the logic of said decision, then we'll start having something approaching AI. For now, it's just a well directed random number generator.

  • The kids are over the moon with their gifts. Ma's in her bath tub and I'm in my cups. And I'm about to settle in for a long evening of Nethack. So ya, I'm feeling pretty good for Christmas evening.

    I hope everyone here who is feeling down finds something in the new year to make them happy.

  • I'm sure there are several out there. But, when I was starting out, I didn't see one and just rolled my own. The process was general enough that I've been able to mostly just replace the SteamID of the game in the Dockerfile and have it work well for other games. It doesn't do anything fancy like automatic updating; but, it works and doesn't need anything special.

  • I see containers as having a couple of advantages:

    1. Separation of dependencies - while not as big of issue as it used to be, just knowing that you won't end up with the requirements for one application conflicting with another is one less issue to worry about. Additionally, you can do anything you want to one container, without having an effect on another container. You don't get stuck wanting to reboot or revert the system, but not wanting to break a different running service.
    2. Portability - Eventually, you are going to replace the OS of that VM (at least, you should). Moving a container to a new OS is dead simple. Re-installing an application on a new OS, moving data and configs can be anywhere from easy to a pain in the arse, depending on the software.
    3. Easier fall back - Have you ever upgraded an application and had everything go to shit? In my years working as a sysadmin, I lost way too many evenings to this sort of bullshit. And while VM snapshots should make reverting easy, sometimes it just didn't work out that way. Containers force enough separation of applications that you can do just about anything to one container and not effect others.
    4. Less dependency on a single install - Have you ever had a system just get FUBAR, and after a few hours of digging the answer seems to be, just format the drive and start over? Maybe you tried some weird application out and the uninstall wasn't really clean. By having all that crap happen in containers, you can isolate the damage. Nuke the container, nuke the image, and the base OS is still clean.
    5. Easier version testing - Want to try out upgrading to version 2 of an application, but worried that it may not be fully baked yet or the new configs may take a while to get right? Do it off in a separate container on a copy of the data. You can do this with VMs and snapshots; but, I find containers to be less overhead.

    That all said, if an application does not have an official container image, the added complexity of creating and maintaining your own image can be a significant downside. One of my use cases for containers is running game servers (e.g. Valheim). There isn't an official image; so, I had to roll my own. The effort to set this up isn't zero and, when trying to sort out an image for a new game, it does take me a while before I can start playing. And those images need to be updated when a new version of the game releases. Technically, you can update a running container in a lot of cases; but, I usually end up rebuilding it at some point anyway.

    I'd also note that, careful use of VMs and snapshots can replicate or mitigate most of the advantages I listed. I've done both (decade and a half as a sysadmin). But, part of that "careful use" usually meant spinning up a new VM for each application. Putting multiple applications on the same OS install was usually asking for trouble. Eventually, one of the applications would get borked and having the flexibility to just nuke the whole install saved a lot of time and effort. Going with containers removed the need to nuke the OS along with the application to get a similar effect.

    At the end of the day, though. It's your box, you do what you are most comfortable with and want to support. If that's a monolithic install, then go for it. While I, or other might find containers a better answer for us, maybe it isn't for you.

  • I'm not going to defend everything the TSA does. And they do have a lot of problems. But, the lines at the checkpoint are the result of trade-offs in security. For all things security related, it's about managing risk. You will never eliminate risk, so you need to pick and choose where to apply controls to reduce the worst risks and accept some risk in other areas.

    Think about the possible outcomes from terrorist attacks on airports. There are several possible scenarios:

    1. The attacker kills a few people in the airport using a direct weapon (gun, knife, etc.)
    2. The attacker kills a lot of people in a small area with a area weapon (bomb, gas, chemical, etc.)
    3. The attacker destroys an airplane in flight, killing everyone onboard.
    4. The attacker hijacks the airplane and takes everyone onboard for ransom.
    5. The attacker hijacks the airplane and uses it as a weapon, killing everyone on board and more people on the ground.

    We could probably come up with other cases, but I think this covers the bulk of it. So, let's dive into managing these risks. What are the effects of such attacks, if successful?
    Looking at case 1, how many people are likely to be killed? Well, that depends on the police response time and the effectiveness of the attacker's weapon. But, based on other mass casualty events, this probably falls into the range of 10-30 people. It could move outside this range, but this is pretty typical of such situations. To pick a number in the middle, will say they the expected loss for such an attack is around 20.
    With Case 2, again there is variability. But, it's also something we have analogs for and may be able to put a range of casualties on. The Boston Marathon bombing in 2013 killed 6. The attack on Kabul Airport in 2021 during the US evacuation killed 182, though that also included multiple gunmen attacking after the explosion. Let's put the loss rate around 50 for as single bomb, assuming a very packed area and a very effective bomb.
    For Case 3, the numbers are a bit easier to get a handle on. Typical airliners carry anywhere from 100-200 passengers. The 737 MAX 8-200 is designed for 200, while the Airbus A200-100 carries around 100 passengers. We'll pin the loss rate here at 150, as attackers are likely to target larger aircraft for this sort of attack.
    Case 4 is basically Case 3, but with an optional loss of only money. For that reason, I'm going to remove this case, but wanted to mention it to avoid the "well akshuly" crowd, since this is a historic problem.
    That leaves Case 5. And it's Case 4's situation, plus some number of people on the ground. Certainly, not every such use of an airplane as a weapon will be as successful as the attack on 9/11. And that also involved multiple successful attacks. But, let's assume that such attacks will hit populated buildings and cause significant damage. We'll pin the expected loss at 200, This is 150 for the airplane and 50 on the ground, somewhat equivalent to Case 2 with a bomb in a crowded area.

    Ok, so we have expected losses, now lets talk about how often we expect such attacks to happen? And yes, this is a rough guess. But, since terrorists are unlikely to publish their plans, it's the best we can do. We also face a difficulty in that these are still (thankfully) pretty rare events. And trying to extrapolate from a small set of data points is always a fraught exercise. So, fell free to quibble over these numbers, but I don't think any numbers which fall into a reasonable range will change things much.
    Case 1 - This attack as a pretty low barrier to entry. If a person can be found to perform the attack, arming them isn't terribly hard. So, we let's assume we get 2 of these attacks a year. I don't think we're actually getting that, but out goal is just to get into the right ballpark.
    Case 2 - This attack takes a touch more work, bomb making isn't that hard, but making a really effective one isn't easy either. This type of attack does have the advantage that it doesn't always require the attacker to die in the process. So, it might be easier to find someone willing to engage in such an attack. Let's call this 1 per year.
    Case 3 - This also requires a bomb, but it may not need to be quite as big to be effective. Granted, modern aircraft can be amazingly resilient (see Aloha Flight 243). This attack also results in the attacker dying, so that can be a bit harder to source. So, lets say this happens once every other year, or 1/2 per year.
    Case 5 - So, no bomb this time, but you have to have an attacker not only willing to die in the process, but also go through enough flight training to fly the aircraft to it's target. And you need the training itself. Plus, the attacker needs to get a weapon onto the aircraft. And since they need to overpower 100-200 people who might just take exception to the hijacking, you probably need multiple attackers willing to die in the attack. This is a pretty high bar to clear; so, let's say that these attacks happen at a rate of 1 every 5 years.

    Ok, so let's consider our Annualized Loss Expectancy (ALE) with what we have:

    CaseLoss ExpectancyFrequencyALE
    120240
    250150
    31500.575
    52000.240
    Total--205

    Alright, so lets start talking about controls we can use to mitigate these attacks. By raw numbers, the thing we should care about most is Case 3, as that has the highest ALE. So, what can we do about bombs on airplanes? Making them more resilient seems like a good start, but if we could do that, the military would have done it long ago. So, really the goal is to keep bombs out of airplanes. And that's going to mean some sort of screening. We could just say "no carry on, period" and move the problem to the cargo hold. This would reduce the frequency of Case 3 and Case 5, as it would be much harder to get a bomb or weapon onto an airplane, without a bag to hide them in. But, travelers are not likely to give up all carried on bags. So, that really leaves us with searching bags and controlled checkpoints to do it. Of course, as has been noted, this would likely mean that Cases 1 and 2 become deadlier. Let's put some numbers to it. Let's say that checkpoints reduce the frequency of Cases 3 and 5 by a factor of 4 and increase the Loss Expectancy of Cases 1 and 2 by 1.5.

    CaseLoss ExpectancyFrequencyALE
    130260
    275175
    31500.12518.75
    52000.0510
    Total--163.75

    And we could push the numbers around for the effect of the checkpoints. And we could look at other controls or controls in combination. But, this is the sort of risk analysis which would need to be done to make such decisions. And, ideally, the numbers chosen would be done with a bit more care than my rectal extraction method. Can I say that anyone at the TSA/DHS/etc did this sort of analysis? No, but I suspect there has been some work on it. And it probably does lead to the conclusion that the expected loss is lower for airports with checkpoints than airports without. Though, that doesn't excuse the TSA's abysmal track record for tests done by the FBI.

  • My list of items I look for:

    • A docker image is available. Not some sort of make or build script which make gods know what changes to my system, even if the end result is a docker image. Just have a docker image out on Dockerhub or a Dockerfile as part of the project. A docker-compose.yaml file is a nice bonus.
    • Two factor auth. I understand this is hard, but if you are actually building something you want people to seriously use, it needs to be seriously secured. Bonus points for working with my YubiKey.
    • Good authentication logging. I may be an outlier on this one, but I actually look at the audit logs for my services. Having a log of authentication activity (successes and failures) is important to me. I use both fail2ban to block off IPs which get up to any fuckery and I manually blackhole entire ASNs when it seems they are sourcing a lot of attacks. Give me timestamps (in ISO8601 format, all other formats are wrong), IP address, username, success or failure (as a independent field, not buried in a message or other string) and any client information you can (e.g. User-Agent strings).
    • Good error logging. Look, I kinda suck, I'm gonna break stuff. When I do, it's nice to have solid logging giving me an idea of what I broke and to provide a standardized error code to search on. It also means that, when I give up and post it as an issue to your github page, I can provide you with some useful context.

    As for that hackernews response, I'd categorically disagree with most of it.

    An app, self-contained, (essentially) a single file with minimal dependencies.

    Ya...no. Complex stuff is complex. And a lot of good stuff is complex. My main, self-hosted app is NextCloud. Trying to run that as some monolithic app would be brain-dead stupid. Just for the sake of maintainability, it is going to need to be a fairly sprawling list of files and folders. And it's going to be dependent on some sort of web server software. And that is a very good place to NOT roll your own. Good web server software is hard, secure web server software is damn near impossible. Let the large projects (Apache/Nginx) handle that bit for you.

    Not something so complex that it requires docker.

    "Requires docker" may be a bit much. But, there is a reason people like to containerize stuff, it avoids a lot of problems. And supporting whatever random setup people have just sucks. I can understand just putting a project out as a container and telling people to fuck off with their magical snowflake setup. There is a reason flatpak is gaining popularity.
    Honestly, I see docker as a way to reduce complexity in my setup. I don't have to worry about dependencies or having the right version of some library on my OS. I don't worry about different apps needing different versions of the same library. I don't need to maintain different virtual python environments for different apps. The containers "just work". Hell, I regularly dockerize dedicated game servers just for my wife and I to play on.

    Not something that requires you to install a separate database.

    Oh goodie, let's all create our own database formats and re-learn the lessons of the '90s about how hard databases actually are! No really, fuck off with that noise. If your app needs a small database backend, maybe try SQLite. But, some things just need a real database. And as with web servers, rolling your own is usually a bad plan.

    Not something that depends on redis and other external services.

    Again, sometimes you just need to have certain functionality and there is no point re-inventing the wheel every time. Breaking those discrete things out into other microservices can make sense. Sure, this means you are now beholden to everything that other service does; but, your app will never be an island. You are always going to be using libraries that other people wrote. Just try to avoid too much sprawl. Every dependency you spin up means your users are now maintaining an extra application. And you should probably build a bit of checking into your app to ensure that those dependencies are in sync. It really sucks to upgrade a service and have it fail, only to discover that one of it's dependencies needed to be upgraded manually first, and now the whole thing is corrupt and needs to be restored from backup. Yes, users should read the release notes, they never do.
    The corollary here is to be careful about setting your users up for a supply chain attack. Every dependency or external library you add is one more place for your application to be attacked. And just because the actual vulnerability is in SomeCoolLib.js, it's still your app getting hacked. You chose that library, you're now beholden to everything it gets wrong.

    At the end of it all, I'd say the best app to write is the one you are interested in writing. The internet is littered with lots of good intentions and interesting starts. There is a lot less software which is actually feature complete and useful. If you lose interest, because you are so busy trying to please a whole bunch of idiots on the other side of the internet, you will never actually release anything. You do you, and fuck all the haters. If what you put out is interesting and useful, us users will show up and figure out how to use it. We'll also bitch and moan, no matter how great your app is. It's what users do. Do listen, feedback is useful. But, also remember that opinions are like assholes: everyone has one, and most of them stink.

  • I think it depends on what you want to print. Personally, most of my prints fit within a much smaller footprint. So, I don't usually need my first layer to be perfect across the full bed. However, when trying to print something larger, I can absolutely tell how terrible my first layer is. It sucks to end up reprinting the first layer half a dozen times, because one small area keeps failing to adhere.

    A large part of my issue is the printer I have just isn't all that good. And, when I get less lazy, I'm going to just build a Voron. At that point, I'll probably be one of those folks tweaking it until I get a perfect first layer. Because I want to be able to start a print and not spend the next hour fighting first layer problems.