3,991 karma · joined October 8, 2009
Working on ZJIT & TruffleRuby at Shopify.
I hadn’t had any experience with the new platform prior to this upgrade and I skipped over the MK4, but the 4S upgrade is a significant step up over the 3S/3S+. I wouldn’t necessarily recommend the upgrade kit — that took much longer than expected to complete (about two days) and I regret not buying a new printer instead. But, I have a 3S I plan to upgrade to 3.5 just to get the new electronics; that upgrade is far less intensive.
If you haven’t tried out a 4S you might be pleasantly surprised by how much nicer it is than the 3S+.
The article states “… and I captured two drivers ripping through red lights in that short span.” I suppose “ripping through” can be left up to interpretation.
However, in the video the author says “that person just ran a stop… a red light right in the middle of me filming.” Then the other he says: “I bet this guy runs the light. Yup, see, this person ran the light, too.”
“Running” a red light is an illegal act.
I think in both cases the cars should have slowed down and had plenty of time to stop before entering the intersection. But, evidently that’s legal in California, while the author indicates otherwise.
I don’t think I was a particularly aggressive typer, but I was accustomed to one key travel distance and then it changed significantly. Nowadays I need a keyboard with pretty good key travel. That basically limited laptop options to certain Lenovo models until Apple started increasing the distance with the M1 redesign.
FreeCAD isn't as refined as Blender, but it also hasn't had the same level of support. I've found the maker community particularly critical, often in uncostructive ways, around OSS CAD tools like FreeCAD or SolveSpace. It's hard to compete with commercial offerings that have full time designers working on them. To get there we need volunteers to work on the project and/or folks willing to fund development. Ondsel demonstrated how well that could work for FreeCAD. But, the maker community has largely been unwilling to contribute either in terms of cash or time. And many take to publicly bashing the tools, which doesn't exactly entice those volunteering to go out of their way to help.
We could have the Blender equivalent of an OSS CAD package, but people are going to need to step up and contribute. I appreciate that you often have a time sensitive task and going with a commercial tool is more expedient. That's fine, of course, but that also isn't going to help advance any of these OSS tools. Just also be aware that you're at risk of losing your design as well since commercial licensing can change on a whim (e.g., Fusion 360 preventing STEP export for free accounts -- this decision ended up being reversed, but should be concerning).
It’s particularly frustrating that they give their own WARP service a pass. I’ve run into many sites that will block VPN traffic, including iCloud Privacy Relay, but WARP traffic goes through just fine.
It’s been several years since I’ve run a business, but I had moved from AWS to a colo ESXi setup. I saved a bunch of money and got a better product. My costs were fixed, the hardware was better, the VM sizes more configurable, and I had high availability. I wasn’t spending anywhere near 10h / week to keep it running. Linux and most daemons are pretty robust.
I’d gladly acquire and exercise general sysadmin knowledge over some vendor-specific thing. AWS may run fine if you have a light load, but their API docs can lie, they have hidden constraints, and many apps end up using the wrong service or architecture and need to go through costly migrations. It’s hardly set it and forget it. There’s a ton of services and constraints to learn. There’s time involved in learning the tooling, the API, and the invariable bugs integrating with the devops tool of the day.
Then you need to factor in the time spent trying to speed up your app to compensate for the slow cloud machine you’re running on. You can choose beefier machine types, but you’ll pay through the nose. Performance can be wildly inconsistent if you’re on an oversubscribed host. So, you can get a cloud bare metal machine, but that’s even more money and good luck getting the spend approved. To get out of that hole teams will often layer in brittle caching that would be otherwise unnecessary.
These costs rarely get mentioned when we talk about cloud vs bare metal. That was a substantial time sink for the startups I was at. Large companies have whole teams dedicated to devops, which isn’t far off from having a traditional ops team.
https://rubyonrails.org/2024/9/27/rails-8-beta1-no-paas-requ...
I also don’t follow how paying union dues is a problem if they’re going to get you a 25 - 40% raise whereas you’re unlikely to get anything on your own. I get not everyone likes unions, but you’re making a pretty compelling case for them IMHO.
I had an iPhone before IAP. There was a marked shift in the type and quality of games once IAP took hold. I suppose we can argue that the app store was in its infancy, but as a consumer I've never liked IAP. It was pretty clear to me it was a very easy way for company's to not be forthcoming with their pricing. Sometimes they want to exploit the sunk cost fallacy. In the mobile gaming space, it's often more nefarious. And we know it's by design because these companies hire psychologists specifically to find new ways to get people to part with their money.
The fact it's so easy and you never have to open a wallet also makes impulse purchases way more likely. And, unlike physical goods, there's no room for buyer's remorse. No returns, no refunds. You can try to do a chargeback, but say goodbye to the rest of your Apple account and enjoy owning a brick. Sure, for some people making instantaneous digital purchases it's a way to shave 30s off an infrequent activity. For many people it takes away their ability to consciously push back on impulses.
I don't think it's a given these sorts of games would have just happened without Apple making it so easy on devices people are already addicted to. We've had decades of popular video game consoles of all sorts -- computers whose only purpose is to play video games -- and this was not an emergent phenomenon. It seems to be pretty unique to mobile phones. It hasn't stopped game publishers from trying to port similar tactics to consoles, but it also largely hasn't taken root there despite their best efforts.
Undoubtedly, some people spend hundreds on skins and it may not be money they have, but I'd argue even that digital good is better than P2W mechanics like needing to buy hearts just to beat a level. A level that's impossible to beat otherwise, but the game will waste your time and build up your frustration thinking you might be able to do it. I think it's ugly and unethical. Apple makes a boatload of money from it and it's one area where Apple really hasn't stepped in to protect their customers. Meanwhile they've fought hard against alternative app stores and sideloading under the guise of protecting their customers.
FYI, Google's not immune from any of this criticism. They just were followers in the whole thing so I fault Apple. Google failed as a competitor to provide a better alternative and settled into also raking in 30%, enjoying the privilege of a duopoly.
Apple created a race to the bottom and created the environment for these predatory games to take root. By pushing IAP and making the prices hidden for so long, it made it very difficult for games to make money on an up-front sale. Not having the ability to demo further pushed companies to a free download with an unlock later on. For a long time those prices were hidden, now they're just really annoying to find. To this day you can't tell what's going to be locked or not until you play the game for a while.
By hiding the prices up front and making transaction seem small and making the purchases incredibly easy to make, they encouraged developers to exploit human psychology in negative ways. Apple isn't particularly incentivized to fix it because they get to take 30% of all those whale purchases. And no one is going to dump their phone for a portable console and Android isn't any better, so they have a very captive market.
Many of us are addicted to our phones and/or need them for other things. They don't need to be great gaming machines. Game console manufacturers, on the other hand, need to ensure quality games or people just won't buy or use them. That market is seeing microtransactions creep in -- I think largely because of the profitability of mobile gaming -- but Nintendo/MS/Sony won't allow their platform to get flooded with garbage; it'd be the death of the brand.
I think Apple realized they could set the rules for this form of gaming, too. Plenty of people that wouldn't ever play a game on a console download games on their phones because it's convenient. They have no expectations of what a game should provide or how it should be priced. Free in attractive to everyone, even if the game turns out to not really be free. Every iPhone release Apple touts the latest GPU improvements and how it'll unlock 3D gaming, but they all but killed the market for console-like games. The reality is most gaming on their platform is some variation of a Unity slot machine.
Besides the exploitation, it's just flat out ruining gaming. The top games on iOS and Android are just IAP-laden garbage designed to manipulate people into making progress and then locking them out. But, since every company is supposed to maximize profitability, they all end up gradually adding similar mechanisms. The market can't push back in any meaningful way. Sure, you'll see some games have to backtrack (Battlefront II) or some flat out fail (Concord), but mobile is a different beast than console (for the time being, at least). And I think this is an area where regulation is the only thing that can make a level playing field.
Not to mention the F2P games arguably engage in price dumping. Consumers in all markets will gravitate towards the lowest cost option. Here, a game doesn't have to be particularly good or even good for the player, it just has to be cheaper than other games. It's making it harder for there to be a legitimate video game market. I really think Apple did the world a disservice with iOS purchase policies. IAP makes it way too easy to hide the true price and for years you couldn't even find the price until you used the app (now it's hidden away, but accessible, on the store page). It predictably led to a deluge of free apps and games that made it much harder to engage in what I'd consider more ethical commerce. Hell, I've purchased apps and still had functionality very unexpectedly locked behind IAP.
If F2P games can't find a way to profitability that doesn't rely on exploiting people, then so be it. I don't think anything is truly lost. Societal productivity would very likely increase because people wouldn't be grinding for hours just to get to that next level.
While my signature is fairly consistent with key parts looking similar, I almost never end up with duplicate looking signatures. An expert could probably identify them as being from the same person. A layman could almost certainly challenge the signature and win.
I hadn't really thought about the side-by-side window thing, though, so I'll keep that in mind when debating vertical tabs. I usually run with a multi-monitor and while I do side-by-side with i3, that's on a large monitor so screen real estate isn't a problem.
Absent that, it’s considerably easier to leave the tabs open. The tree will even be restored when the browser starts should I need to reboot.
The bigger problem with bookmarks for me is the inability to manage relationships. With the Tree Style Tabs add-on in Firefox and vertical tabs in Orion, child tabs are opened in a tree. It codifies my search context and makes tab management quite easy. The analog in bookmarks is using folders, but they’re rather tedious to create when bookmarking and I can’t think of any browser that will auto-create nested folders when bulk bookmarking tabs.
I very much appreciate the startups pushing to extend the exercise window out to 5 - 10 years, but that's far from the norm. I've debated this with a couple of investors and their stance is if you leave the company then you're not committed enough and shouldn't receive anything. I think that's quite debatable, but that's certainly not the case when folks are laid off. And we commonly discuss people thriving in one particular phase of a company. If you're not in that phase, it's no good for either the company or the employee to continue the relationship just to defer having to exercise options.
I've been using a Linux desktop since 1998 and while other distros have their benefits, I choose to use Ubuntu Desktop for a whole host of reasons. This bloat is a non-issue (granted, I'm not running on a netbook). If I were to help someone switch to Linux, it'd definitely be either on Ubuntu Desktop or Linux Mint.
I see this argument a lot, but I'm not sure how it detracts from their continued development. Oracle funds many engineers working on OSS and, despite having CLAs in place, retain the permissive license for most of them. In some cases they've acquired closed source software and made it open source (e.g., JRockit stuff). They're a major contributor to OSS.
Do you have a suggested naming convention to follow? There's a rich history of alternative language implementations following the convention you dislike, but I think those involved would be open to an alternative.
git-crypt allows me to protect sensitive files while still tracking them in a git repo. I don't think I'd rely on it for shared projects, but it works well for me.
Running the original fib benchmark (i.e., without the author's technique to eliminate the array allocation) on an M1 Pro, I see:
CRuby 3.3.1:
2.058589000022039
CRuby 3.3.1 w/ YJIT:
1.4314430000958964
TruffleRuby 24.0.1 (Native):
0.20155820800573565
TruffleRuby 24.0.1 (JVM):
0.1336908749944996
I took the best time out of three for each implementation, but there wasn't that much variance over all. Standard caveats about benchmarking on an actively used laptop apply.Running the new prime_counter benchmark that the crystalruby author mentions in another thread¹, I see:
Crystal 1.12.1 (LLVM 18.1.4) w/ crystalruby 0.2.0 in CRuby 3.3.1:
0.34096299996599555
CRuby 3.3.1:
2.9615250000497326
CRuby 3.3.1 w/ YJIT:
1.640430000028573
TruffleRuby 24.0.1 (Native):
0.2504862080095336
TruffleRuby 24.0.1 (JVM):
0.25282600001082756
YJIT and TruffleRuby make different trade-offs, so I'm not trying to say the latter is necessarily better. But, I think the TruffleRuby numbers show what are possible in terms of Ruby optimization. Unfortunately, there's currently an issue in TruffleRuby with one of the crystalruby gem's dependencies³, so I had to extract the Ruby benchmark out to a separate file. incompatibility.¹ -- https://news.ycombinator.com/item?id=40153218
² -- The method_source gem used by crystalruby catches exceptions and matches against the message² for some conditional handling. TruffleRuby 24.0 now uses to Prism as its parser and Prism has an exception message with slightly different wording from CRuby. Consequently, method_source's handling doesn't work with Prism. It's hard to say where the compatibility issue lies, since exception messages aren't stable APIs. We'll get it sorted out.
³ -- https://github.com/banister/method_source/blob/06f21c66380c6...