380 karma · joined April 18, 2020
That said, the Sega CD was reasonably successful for what it was, and I don't think it contributed much to Sega's downfall (if anything, it helped Sega foster an impression with customers of being on the cutting edge of things back then). Far more egregious were the 32X, since it confused customers about the company's direction after the Genesis and was abandoned so quickly, and the Saturn's architecture being so much more expensive and complicated than the PlayStation, especially for 3D games. The cost let Sony undercut them because they knew Sega couldn't match them without losing money on each console, and the complexity was such a hurdle that even Sega's first-party developers had trouble figuring it out (they had to release "do-over" ports of Virtua Fighter and Daytona USA because the first versions were so rushed and buggy). Sega of America also pulled the plug on the Saturn way too early (because of Bernie Stolar's infamous interview where he said the console wasn't the company's future, which caused third parties to immediately cancel their releases for it), which left the company with basically no presence in their biggest market for about two years.
> @LGB actually in V8 (JS engine used by google chrome) you need to jump through a lot of hoops to get switch case optimized: All the cases must be of same type. All the cases must either be string literals or 31-bit signed integer literals. And there must be less than 128 cases. And even after all those hoops, all you get is what you would have gotten with if-elses anyway (I.E. no jump tables or sth like that). True story.
In the case of this emulator, it wasn’t being optimized because it had more than 128 cases.
https://segaretro.org/Kinetic_Connection
“Game 3” is the mode that rotates rows and columns like a Rubik’s Cube.
There are probably earlier examples, but that’s the one that I’m familiar with. I imagine a clever person could adapt it into a simple word game as well. Old computer and console games are a gold mine for ideas for simple puzzle games.
Guess what, you’re not that much better than everyone who disagrees with you.
The script, for whoever's curious: https://gitlab.com/jcfields/shell-scripts/-/blob/master/cdf
Back when I used Windows, I actually used the New > Text Document item discussed in the article all the time. It created an empty, 0-byte file, so I'd rename it to whatever file extension I needed. There was a folder that contained the templates for this menu so you could add or remove blank files for any type, but I only ever used the .txt file one.
python
irb
php --version
tclsh
For PHP, it also shows up in Apache's server string:
Apache/2.4.46 (Unix) PHP/7.3.24-(to be removed in future macOS) mod_perl/2.0.9 Perl/v5.30.2 on hostname
Personally, I've been hoping they'd do this for a while since it's annoying having two versions of each interpreter installed (the system one that can't be updated and the one I installed myself via Mac Ports). Anyone who uses these languages much probably already has a package manager installed. I think they should leave Perl, though, since it's as much as Unix system utility like awk or sed as a programming language.
It didn't work perfectly (obviously the site is still highly opinionated in favor of certain things, like Linux and free software), but it also wasn't the smooth-brained hivemind that Reddit comments sections are. I can't think of another site that's even tried to come up with a better moderation system than simple up/down votes. At best, there are some behind-the-scenes algorithms that decide how exactly to prioritize comments based on the voting, but that's derived from popularity as well. An immeasurable side effect of this is that many heterodox comments simply aren't posted at all since people know they're going to be downvoted to oblivion anyway.
For example, you can delete or rename procedures on the fly, including built-in procedures. So you can rename a built-in like puts to something else, create your own puts procedure, and then call the old one (under its new name) in your new procedure (in case you wanted to override it to do some pre- or post-processing each time). You can even redefine procedures within themselves.
You can use variables in variable names (PHP does this as well).
The comment character # is a valid name for a variable or a procedure.
"Everything is a string" extends to even lists and code blocks.
Even though we've moved away from the hyperflexibility of languages like Tcl and Perl, they certainly served their purpose, and a lot of their better ideas were refined in their more orderly successors.
People on WSB had some arbitrary price targets in mind and are in denial that the stock hasn't squeezed yet because they haven't hit those (completely made-up, with no basis in anything) targets.
(Over the summer, I made a command-line [https://gitlab.com/jcfields/versions] and a GUI program [https://gitlab.com/jcfields/restore] for accessing this system outside of the standard UI, if anyone's interested, though the binaries are not notarized so the OS will show a scary warning the first time you use them.)
Granted, it's not exactly the same thing since you're not making commits at discrete and meaningful points like in a software version control system and since it works on an individual file level, which might not be ideal for every workflow, but it's still really useful when you realize you need to roll something back to an earlier state.
I think modern versions of Windows use the Volume Shadow Copy service to store backups of files at given snapshot points (such as when your computer runs a scheduled backup or creates a System Restore point), which can be pulled up in the file properties. I use to use NTBackup to do basically the same thing in a more crude way back in the Windows XP days. This isn't as nice as the Mac Versions feature since it requires setting up periodic backups, but it's something.
I'd be curious if any of the free desktops have come up with a simple and user-friendly solution to this. I feel like this is an area where there's a lot of room for improvement, since the majority of users would probably benefit from these systems but most aren't even aware they exist.
It looks like 10.9 (released in 2016) was the last release on https://opensource.apple.com/ that included launchd. The original author left Apple in 2014, so maybe it had something to do with that (similar to why they abandoned MacRuby and CUPS), though one would think that they still update it internally.
> If you’re not versed in legal matters, that probably seems like an odd restriction. By rejecting JSHint, are people admitting that they want to do evil? And is that clause actually enforceable, anyway?
> The answer to the second question is “no,” and that helps answer the first question. Legally-conscious objectors aren’t betraying their own dastardly motivations; they’re refusing to enter into an ambiguous contract. Put differently: they’re not saying, “I’m an evildoer,” they’re saying, “I don’t understand what you want.” This consideration disqualified JSHint from inclusion in all sorts of contexts.