Interesting post but was really hoping to understand why some of my saves wouldn't transfer to other 360 consoles. Back when the "red ring of death" was more common, I would be issued a replacement console. When I snapped my hard drive back in and turned on Ninja Gaiden 2, I wouldn't be able to continue my progress. I had the unfortunate luck of this happening several times to me and I eventually quit playing that game.
Years and years later, I worked with someone who used to be at a gaming company and he claimed that apparently it was a quality assurance requirement from Microsoft in order to be published..
Good to know! Back in the days my friend and I figured out that if we bought Xbox Live Arcade games on someone's console with the other person's account, both would effectively own the full game and could play it (albeit not at the same time). We used this scheme to share account passwords and get more Gamerscore out of some titles. My then 14-year old self was quite disappointed to find out he lost all shared games when his console was replaced after a RRoD. I guess these games weren't transferable.
You're not wrong. However, even if you make an all-cash offer and remove every single contingency, you're still looking at roughly 2 weeks minimum to close. You're making the assumption that title companies are competent (they are not) and move quickly (they do not). Wire transfer takes a few days, need to find a notary to sign all of the closing docs, and title companies are slammed with all of the other home purchases happening as well.
Like most things, it depends what your web application is doing. I've been working in Erlang professionally nearly 6 years, and I'm not super convinced it's great for building web apps. If you want to utilize the Erlang VM, many people have found Elixir/Phoenix to be super helpful in building their web apps. I encourage you to check that out if it piques your interest.
> and I'm not super convinced it's great for building web apps.
It boils down to the complexity that it saves you from. Webapps eventually grow to need caches and queues. That means external infrastructure dependencies on things like RabbitMQ, Kafka, Redis, Elasticsearch, etc. That also means managing the lifecycle of this infrastructure in your application and building robust systems to do maintenance, etc and not fail.
Erlang provides enough of the basic building blocks to trivially implement these features on BEAM in code, as I'm sure you already know. Then all you're doing is message passing with Erlang.
That's the secret sauce. The language features itself don't make it any better at solving the webapp problem than say Rails, etc...it's all of the ancillary problems of scaling webapps that are solved by everything just being code running on BEAM.
As a seasoned Erlang developer, it's really foreign to me that people can go so far as to never need a GenServer since they are everywhere in Erlang. Have you had any experience with ramping up an Erlang engineer to use Elixir? After interviewing an Elixir dev for an Erlang position, it was interesting that so much of what they used in their day-to-day abstracted away the components of OTP and the Beam. Didn't really have a firm grasp of supervision trees, process linking vs monitoring, etc.
Elixir gives you Task for one-offs, which is a superior abstraction over proc_lib, and has seamless integration with OTP things like supervision trees, which you will have to roll by hand and probably mess up if you use proc_lib.
For just stateful data, ets is much better performance-wise than a GenServer (with the tradeoff being complexity in understanding matchspecs and the like), and Agent is much simpler for dumb state and leads to better code (though I basically never use Agent).
Honestly, I think the GenServer behaviour is awful (not GenServers, themselves, they are great), because it does not engender writing well-organized code. Dave Thomas' empex talk about it is really eye-opening and you will understand the internalized pain. (I don't like his specific recommendations, and I think the ship has sailed on Elixir reimagining how GenServers are organized).
So yeah. My philosophy is don't write GenServers, unless you are really sure you need them (like maybe collaborative state for games; to wrap a stateful communication protocol, like http tcp, or an application layer over udp; or to to model something IRL or remote, e.g. browser state as in liveview, or as I have in a previous gig, qemu VM state). And even for some of these you're probably better of with a gen_statem or the like.
> supervision trees, process linking vs monitoring
you still need to understand these to use Task correctly, or gen_statem, but those are really advanced topics. It's crazy, but you can get really really far without those (even if it's not, strictly speaking best practice), and it's not like once you learn about them it's hard to change your code to start using those correctly.
I've also seen the bait-and-switch with recruiters. Many years ago when I was young in my career, I decided to respond to a recruiter who worked for a recruiting firm. We had a good talk and there was a company he was working with that I expressed interest in and felt I was qualified for.
Nope. He kept pedaling this small, 10-15 person startup to me that I clearly wasn't qualified for and honestly was not interested in as there were some red flags. The commission must've been fat cause he didn't pitch me any other company and kept "circling back" if I changed my mind about them.
I've seen "The Go Game"[1] work really well amongst teams within my company. I am in no way affiliated with this company, just heard good things. They have a variety of activities like trivia, puzzles, and some others.
I felt the same way when I read they waited for 20 minutes. Unfortunately, it doesn't seem to be stated if the cops initially showed up with vests and guns drawn or if more showed up after failure to comply. If it was the former, I could understand the shock and cloudy judgment experienced by the scientist when you've realized your house is under siege.
That's pretty significant when you see that median household income across the nation ranged from $38,000/yr - $68,000/yr [1]. 5% - 13% of your paycheck going to a war
What was particularly fun for me as a kid, regarding video game rentals, was that consoles like the N64 and SNES had saves on the cartridge and sometimes you'd pick a game with a save slot where someone already unlocked a huge chunk of the game. Hitting the "jackpot" with a cartridge that had everything unlocked made the game even more fun. Suddenly that one level I was stuck on in Donkey Kong Country has been passed and I'm on to checking out other levels..
Yes, I've seen this as well and from my observation, it seems to boil down to company culture and a lack of product direction. A company that refuses to accept that errors and faults happen tends to permeate into the code. A lot of people that work on the product side will say "I want us to have no failures" without understanding that things simply WILL fail at times and we need to understand what the user experience should be if this were to happen. This is especially true of external services that you have no control over (i.e. the usage of a push notification system).
Years and years later, I worked with someone who used to be at a gaming company and he claimed that apparently it was a quality assurance requirement from Microsoft in order to be published..