The Windows process isn't necessarily better (unless your only concern is reliability and you don't have a Brother) but it is certainly different.
896 karma · joined September 18, 2020
The Windows process isn't necessarily better (unless your only concern is reliability and you don't have a Brother) but it is certainly different.
(My own app menu on a 24" monitor at 100% scale has: "LibreOffic..." as well as "LibreOffic..." and the very useful, underrated "LibreOffic...". I also often use "KiCad G...", "KiCad P...", and "KiCad S..." but usually never "KiCad I..." or "KiCad P...")
[1]: https://ometer.com/preferences.html#standing-up-to-user-pres...
If you use an untrusted machine, you either revert to the least secure backup method (your master password in Bitwarden) or don't log in.
If your phone is your trusted device and becomes lost/stolen and then replaced, you revert to the least secure backup method e.g. password, security questions, or even waiting to be manually verified. This can be problematic if your online bank requires 2FA so you can purchase the replacement phone.
The QR + Bluetooth thing sounds dumb as hell.
Kiwi Browser doesn't support passkeys even with Bitwarden on my device. I have to choose between an inferior (for my needs) browser or passkeys.
-----
Rather than passkeys, which always rely on a trusted device, my preference is, "I use a password manager and site-specific generated passwords, and when I try to log in with only a password on your site, send me an email (whether pass or fail), plus never require 2FA except for banking and perhaps to change email/password"
It's unlikely I'll lose access to email notifications at the same time someone tries logging in with a phished password (except, obviously, my email password, which should only be changeable with 2FA) unless I am specifically physically targeted or astonishingly unlucky.
If someone uses a fake website or other MITM method to grab my credentials, I'll be fine because I'll get the "hey PennRobotics you logged in to crabcakes.com just now from a iPhone" message and then immediately triage that unexpected situation.
If I need to log in to a website in private mode or on a different device, it takes an extra 30 seconds to log in to my password manager plus no device dependency.
-----
The passkey problem for me? You need some hardware or else it's glorified 2FA or even (in the case of the Paypal app) 1FA applied twice, and as soon as you lose EITHER the hardware or the "what you are/what you have" part of 2FA you enter a world of trouble.
Also, ToS lockouts happen. When Google terminates your account (for any variety of imaginative or realistic reasons) there isn't really any method to use or export your passkeys anymore.
My "find" is almost always
tree -if | grep "<whatever-pattern>$" | head -1
head, of course, being optionalThe tradeoff is needing to learn regex, which is not any easier to learn than find arguments.
the closely related not-at-all-random fizzlefade from Wolfenstein: https://fabiensanglard.net/fizzlefade/
Except! On the Switch, you can't easily access the save file AND the random number generator is different than on PC. There is a seed cracker that looks at your traveling cart listing and calculates the character seed. Maybe because it's less important and harder to observe, I haven't found any tool to crack the other seed and don't have time to attempt writing it myself.
By inspecting cracked geode contents, you should be able to isolate your multiplayer ID and then predict random events on Nintendo just as PC players have done for the last decade with access to the save file.
The C# code for the game is online and the Switch RNG is known, so you never have to work in the dark. It's three steps: ensure your Switch RNG implementation works by testing against the normal seed, ensure your geode RNG implementation works by testing against the PC RNG, and then apply the Switch RNG to the geode function enough times that only one seed could create your observed sequence.
-----
Two semi-related open questions: Are you able to solve as quickly while starting at ANY geode as you'd be solving from the first geode? Does the RNG eventually repeat, so it actually doesn't matter what your multiplayer ID is as long as you observe a unique sequence, since there will only be one continuation of that sequence?
*shows 4 photos with mopeds and 0 with motorcycles*
My ThinkPad Z13 (aka AMD Carbon) was a piece of garbage: arrived without Fedora fully installed, crashed at least once per week, had GPU and dock and USB and sleep problems, sent back for repairs multiple times. I tried to return it after the multiple failed repairs and they refused. My greatest joy was that insurance covered it being stolen from my apartment in Dublin.
My X1 Carbon Gen 11? Not great. Crashed 7 times in the 9 days I had it. Didn't sleep properly. Ibus and wireplumber would randomly crash. I'd get a glib error if I type an invalid Bash command. I tried Fedora 38 and Kinoite, Ubuntu 22, Debian 12, RHEL 9.2, TUXEDO, Pop, and Tumbleweed. Nobody had the right mix. Red Hat didn't even make it through the installer. Debian overheated rather than suspended when you close the lid. I learned about and trialed all sorts of kernel flags: intel_idle.max_cstate, iommu=pt, Intel_iommu=on, Intel_iommu=pt, usbcore.autosuspend=-1, i915.enable_dc=0, i915.enable_psr=0, acpi.ec_no_wakeup=1, thinkpad_acpi.fan_control=1, acpi_osi, and a few others. Sometimes the 10-second power button shutdown was ignored; you have to use the little reset hole.
I can't even fully blame Lenovo. Their Linux lead puts in a ton of effort to do everything right. BIOS seems to be a major weak point. I'll read BIOS release notes for the laptops I hated, and they'll have a list with e.g. "fixed fingerprint reader problem, fixed hanging after hibernation, fixed hanging after resuming with lid closed, wake now works with any keyboard key instead of just F-keys, fixed issue where computer restarts unexpectedly, fixed overheating while charging, fixed problems related to docking and external monitors, fix sound, fix backlight, fix power profiles, fix slow boot, fixed USB port refusing to charge or enumerate (rarely (yes they actually said rarely in the release notes, this problem affected at least me)), improve lid behavior, fix touchpad ACPI, fix sleep from power button, trackpoint doesn't work if lid closed with suspend disabled (fixed), touchpad stops functioning after restart (fixed), system hangs during Modern Standby (fixed, we hope?), bunch of CVEs, camera shouldn't suck anymore, updated copyright year" This is less than half of the changes and was paraphrased from the actual Z13 release notes.
I mean... G. F-ing D. With so many EC/BIOS problems on nearly every peripheral, I'm baffled that this got released in the first place.
Also, if you're going to sell Linux laptops, at least have Linux support at the service center. On multiple occasions, I got a call, "we ran a Windows USB image, we didn't find any suspend problem."
My X1 Carbon Gen 12? Acceptable. Gets hot easily. Every now and then (twice a month) just stalls, sometimes I can unplug and close the lid and come back later and the OOM killer will finally do its job. I'd put 90 percent of the blame on KDE Plasma and Fedora. I almost blame myself for having too much stuff open at once, but then I recall that "having a lot of work open" generally can be done on older laptops, well-built desktops, and Windows machines.
My X1 Carbon Gen 13? Did not NOT have problems until Ubuntu 26.04. Screen would glitch green, some hardware was unsupported---in particular, wireless---had suspend problems, overly long boot, one CPU would always run at max (gnome-shell at 100% of CPU 0, whole machine at 13%). The biggest problem was learning that full-disk encryption and secure boot don't play nicely with installing the HWE kernel (which I would've needed for the unsupported hardware), requiring a full backup and reinstall while I was trying to start a new project during my probationary period at work. I need Ubuntu for work, and my colleagues were already annoyed that they couldn't find a Legion 5 with ANSI keyboard from a German vendor so that we would all have a common platform. Unfortunately, Rust coreutils and GNOME are still buggy in 26.04 and it affects my workflow, but at least the hardware (finally) works.
Partner's P-series? No problems so far. Coworkers' Legions? no complaints from them. Old-ass X301? Works fine. T480? Nice machine.
Lenovo itself has horrible dark patterns on their website (defaulting to 3-year premium warranty in the EU despite this being an optional upgrade and restoring this default every time you modify the device config from the checkout cart, market-specific pricing and customizations despite all units originating from the same factory such that Linux from another country was a better deal than "No OS" from my own country, basing price decisions on how long you view specific pages). The fact that the website has many glaring bugs (including in the feedback forms to report bugs) is not a great look for a computing company.
My dream machine was the XPS 9370 Developer. Dell went the wrong way for me with the bathroom shower tile keyboard and mostly OLED screens and no more explicit Linux support. If anyone can capture that lightning in a bottle again, I'll buy four.
> same USB C charger that came with your phone
Yeah, you'll need that phone charger for your Lenovo, because the latest few generations of Lenovo chargers break in a way that they'll only charge in one orientation for a while, and then they eventually break completely. Luckily, they do this quickly, so you can replace them under warranty for as long as you're willing to tolerate the issue.
-----
I choose Lenovo because every other PC laptop (plus quite a few Macs) is/are worse, but I can't call ThinkPads "good"
[Sorry, dear reader. This post turned into a rubber duck session at your expense.]
The main peripheral and reason for the PCB is a USB MIDI device with a bit of custom sysex. Modifying an Adafruit was out of the question; the MIDI peripheral powers itself and the microcontroller/host, and the other USB peripheral. (Basically always, the host shall provide power. This USB connector, however, was designed for a proprietary, discontinued, expensive accessory.) I chose STM32 over 8051 or AVR or RP2040 because it's the cheapest dual-USB chip stocked by LCSC with good vendor tool support. I'm writing my own code because there's no ST middleware for MIDI.
The second LED should blink until both devices are plugged in and then remain steady, on. In testing, the LED visibly changes its timing after the second USB attach but doesn't stay on (rather, it blinks at a shorter and shorter period until simply shutting off, at which point the MIDI communication stops; the timing of the shutoff is not consistent) and the USB input events only register 40% of the time until the MIDI shutdown.
The LED is misconfigured intentionally; it's open drain and GPIO while I try to fix the MIDI nonsense. Later, I'll change it to push-pull on TIM2 to support PWM brightness (e.g. to monitor audio levels when not in text entry mode). Changing GPIO to PWM is its own minor pain because the USER CODE lines in the ST USB code are separate from the USB_Init/USB_RegisterClass/USB_Start sequence, so I have to reinsert my MIDI class every time I change something in CubeMX even if I don't change the USB configuration. (The USER CODE sections persist so that you can change the chip configuration and keep your code.)
Open-drain could explain weird LED behavior but not the communication shutoff. The MCU and LDO don't get noticeably warm, so I doubt it's an overcurrent situation.
I suspect D+/D- could be at the wrong level. As most STM32s, the microcontroller runs at 3.3 rather than 5 volts. (I would've loved an atmega32u4 for its 8-bit simplicity and native 5V operation but then the PCB will be double the cost and size as I'd need a pair of MCUs talking to each other with each one having a single USB port or else an off-chip USB host IC etc.) Sure, I can use a cheap multimeter to test the USB data lines, but this tells me the average level and not if the waveform is being clipped on the positive side (which is usually only a problem under 3 volts). Even if it's an electrical issue, an oscilloscope will reveal the cause but still won't provide a solution. It'll be up to me to cobble together more circuitry.
More probable is at least one code mistake, like a stack overflow or buffer overrun or peripheral misconfiguration/failure. I'm registering any expected USB class on both ports: HID and CDC and MIDI. The whole idea of the board is converting arbitrary USB input (PC keyboard, MIDI controller, joystick, etc.) into specific MIDI messages at standard USB data rates e.g. 12 Mbit/s at both ports with a fairly large buffer. The main MIDI device (supplying the power) will drop the connection after a few seconds of inactivity. I'm using an ST-Link V3 MINIE to step through, which is the cheapest I'd go on a debugger. Luckily I added SWO to my debug port and can still get useful debug info without stopping the processor. I also have to snip the power line of an OTG USB cable if I want the second USB peripheral to be a PC, which is a nifty hack you usually don't learn in the one month PCB design crash course.
I have zero visibility into what the commercial USB MIDI device expects (bus speed, signal characteristics) from the discontinued accessory and only knew its connection handshake from a random, otherwise-inactive Github user's single commit.
In any case, the USB algorithms I wrote work when the host is a PC and the code is ported to Python.
I could reroute pins to ADC and roll my own built-in oscilloscope (it's QFP and not BGA chosen specifically that I can solder in a hotfix, because I've done board design before and know it NEVER, EVER, NOT ONCE EVER goes right on the first attempt) but I'd rather spend time with my kids than a choose-your-own-adventure debug hackathon in my disorganized home office, although I did fall into the IDE trap. Every few years, IDEs and toolchains and build systems change, and this project was no different. Rather than STM32CubeIDE, I took a few hours to teach myself to use the STM32Cube Core and marus25 Cortex-Debug extensions in VS Code, as that seems to be the current trend at ST, and I do favor a vendor-agnostic, Eclipse-free workflow.
If this were my first project and I had to buy all of the tools for debugging, it would probably cost 200 euros or more even if I only buy cheap knockoffs. The other commenter suggesting a $10 logic analyzer?? I mean... I do own one of those, but it's barely tee-ball compared to the major leagues of Lauterbach or Rohde & Schwarz or even Saleae.
In any case, I fear I'll need a new revision with its two-week turnaround or at least a manual rewire of this design. It's frustrating... such a simple design, and I've already sunk over 100 euros and at least 10 hours into it and have a bug with odd symptoms. And, as a PCB design tradition, I'll be humbled and humiliated when I discover it's something like a missing switch case or a wrong clock setting or otherwise relatively basic mistake.
I'm not the first to state: There's a reason it's not called easyware.
It will use the part datasheets and decent EE logic to cross reference pins and parts and polarities and generally check that SMD caps and resistors have realistic specifications for their footprint, switching regulators and communication ICs are configured correctly (e.g. when you have resistor settings for an ethernet PHY indicating 100Base-T and RMII, you also won't need TX/RX 2 and 3 and two clocks and a COL net, which it would check), all nets are named and linked correctly, buses have the correct and consistent termination, and so on.
It's game over once AI figures out autorouting.
Amazon should move families.
In the beginning, do it for free or at a reduced cost.
The catch is that they are then allowed to take a full, detailed record of every single item in the home plus a complete data capture of the moving procedure and then use all this data without restriction. (Thus, this scheme would not work in Europe without a great deal of additional thought and lawyering.)
I admit: I know neither how they model amazon.com customers nor the accuracy of their existing customer model. Regardless of how it already works, a handful of complete data points inserted into their model should help sell more products overall.
Suppose Amazon learns that 100 percent of cat owners have a Petmate carrier yet none of those were bought via Amazon. Or that 60 percent of Eames chair owners and 2 percent of non-owners have bidets. Most people would buy one but not the other at the exact same time and place, right? You'd target the chair purchaser with well-placed bidet ads and likely sell a few more of those.
Maybe Amazon can find these fine-grained customer details out via other channels, but nothing will beat self-gathered ground truth data, especially if it's a byproduct of some other service being offered. And sure, the examples are extreme, but---as with stock market arbitrage---any differences found from the existing model (and there SHOULD be many) should be exploitable.
Each moving job can be accepted/rejected/scheduled based on availability (plus whatever they assess as risks), so Amazon makes sure robotics/logistics capital isn't sitting around unused while also not hurting itself by needing to order a new fleet on a business gamble.
A ton of training data for robots is harvested, which can be used and sold.
There's probably a side-hustle with offering moving insurance, and having a video capture of the entire moving process for motion training would also ensure there's very little speculation of events after a damage claim is filed. This puts real monetary numbers into the training cost function, which should speed up improvements in on-the-fly vision-based value appraisal, price-aware object packing, choice of handling algorithm, etc. which are weird little subdomains but all worthy of advancement.
In the end, if Amazon finds it can relocate people more efficiently than existing firms after a few years in operation (mindful that human labor is expensive and eventually replaceable; plus small companies will never have Amazon's economies of scale) raise prices to somewhere less expensive than the competition while also profitable, and capture the entire rational home moving market.
(I also have no idea if this is actually a good idea and what the costs/profits of each factor of this business should be---more amazon.com sales via better ad targeting, the inventory data itself, the robot data, the relocation, the insurance---but my gut says they have the capital to lightly pivot and outmaneuver competitors until they become profitable.)
Where I reside, reverse engineering for interoperability is generally legal, and interoperability (e.g. getting a USB HID and USB MIDI devices or DOS programs to work in Linux/Android) is essentially what I'm interested in.
Prefaced: I respect Mozilla's mission. All of these criticisms ARE overly harsh. At the same time, app UI should be as invisible as possible to the user, and Mozilla's apps are... "loud"
My last installs of Firefox Klar and Developer a year or two ago had the APKs at over 200 MB, no ability to block sound per-site, confusing UI icons (e.g. I couldn't find the forward button after clicking back, abstract shapes for everything), reader mode that doesn't place you at the same place where you were on the original page, annoying gestures that can't be disabled (swiping tabs away UGGGHHHH), Collections which were really quite silly/not my thing, no toolbar customizability like in the desktop app, no WebHID, and data collection on by default.
Today, Firefox is under 100 MB. It has very much bought into Android's overrounded/inproperly-whitespaced/shadow-heavy/unintuitively-animated Material 3 Expressive. Like most Material Design apps, this Firefox is ugly in a way that offers zero usability benefit: Despite the excessive margins nearly everywhere the three dot menu and menu search icon are still too close to the screen edge. I would place extra emphasis on the unused 8 mm above and 6 mm below the URL text, which SHOULD be 2% rather than 9% of my screen real estate.
I have always felt that Mozilla could join Canonical in dumping the Nickelodeon color scheme. (Did the founders of all these plus FedEx go to Clemson or something??) At least respect my device theme (grey) rather than Grimace purple everywhere! It's particularly strange to me that they have 23 different icons to choose from as well as a "Device Theme" setting but no method of deamethysting all the UI elements.
Tab overview and tabs.
Holding a tab selects its checkbox, holding it longer does "something" but it's not clear what, I guess "show full URL" and then eventually "Share"?
The "swipe tab away" gesture is still there.
Closing multiple tabs creates a sequence of "Closed tab (Undo)" toasts, so you aren't actually sure which toast to click that will undo a specific closure. (Coupled with the swipe detail, it becomes annoying accidentally swiping a tab away while deliberately closing others.)
Per-tab disabling of Sound is still missing; this is not the same as Autoplay!
There are prominent features that I'd never use: private mode icon, "grab tabs from any device", "search your tabs", the giant "FIREFOX IS ON GUARD" reminder, a home screen.
New Tab is across the entire screen from the tab overview button, so you either need to enable the New Tab shortcut (which encroaches on URL space) or just live with "tap top-right, tap bottom-right" for every new tab you'll create in your lifetime which is DEFINITELY not nice for one-handed navigation. There was enough space in the tab overview top bar for a "New Tab" button, but then they'd have to ditch the default Jetpack Compose floating action button.
Everything else.
The shortcut to get to Settings is in a different place on each View.
I couldn't find Reader Mode at first. It only shows up on supported pages and is not as customizable as desktop Firefox. Good enough.
Collections still seem dumb as hell. Maybe I need to use them to appreciate them.
I still have to change just about every default setting to match my personal preferences.
WebHID will never be added. There are a lot of passionate opinions on HID/USB in the browser with solid moral stances against its adoption. I get this and generally agree. However. If I want to reprogram a Gen 1 Shure MVX2U with a cellphone---and I often do---my options are writing my own APK or some very quick/dirty Javascript that I can edit/host anywhere. Mozilla takes away the convenient option and leaves only the labor intensive Google-approved technique.
Oh, and I guess there's no about:config unless you re-enable it at chrome://geckoview/content/config.xhtml which is not-at-all memorable. :( about:config doesn't matter much anyway, since I can't find any flag that will improve any one complaint I've listed.
I liken Firefox to mediocre toilet paper. It gets its job done and is certainly better than nothing but can get irritating to use day after day.
It is nuts that they can be fairly transparent how anti-consumer they are while still succeeding. It's really a testament to the quality of their printers, marketing, and long-term strategy.
If you want to print multi-filament without an AMS, it's a massive hassle. You need to insert custom G-code. Even though you can export raw G-code, you can't reimport it. You can insert custom G-code on the layer preview, but they expicitly disable pasting in the entry dialog. Some of the variables from the main G-code aren't accessible to the filament G-code.
The "easiest" way to do this is to insert a G-code pause where you want a filament change (if you use the layer "Pause" you can't control the extruder anymore until the print resumes) and then manually moving the extruder gears (to unload and then again to purge) and then resuming the print manually.
"No non-AMS filament changes" has been a complaint on both GitHub and the Bambu forums. OrcaSlicer doesn't have these problems. Obviously Bambu has an economic disincentive to make easy filament changes without an AMS, but it would be nice to have a good printer as well as intuitive (or at least hackable) software.
I also took an entrepreneurship sequence in grad school. In agreement with PG, we were taught not to hand off large chunks of the business to the MBAs. In contrast with PG: we learned that between team, funding, and product, product is least important while team is most important. If that wasn't true, why would large companies "acqui-hire"? (In fairness, PG didn't say product is the most important thing at a startup, just that it's "hard", and this is true.)
These few courses were also the first taste most students (esp. non-graduates) had of calling subject matter experts and potential customers, meeting real investors for a mock pitch, the various mechanisms/strategies finance professionals use to separate a founder from their profits and/or build an efficient revenue machine, determining actual pre-realized product demand so you can haggle for bulk discounts from suppliers, setting appropriate product margins. These are the tasks I find I'm often doing in between PCB layout and product assembly, so I'm quite glad I took an entrepreneurial curriculum in school rather than a few more ergonomics or RF courses.
I'm sure battery and charging tech has improved in the past two decades as well.
It also would've been nice to have longitude/latitude readout internationally (so: satellite sensor plus support for Galileo and other recent global navigation services). Vibration alarms could have been more convenient than beeping, especially if there's a "stay awake on night post by buzzing every X minutes" mode.
I mostly stopped using these types of apps and switched to F-Droid alternatives.
Concrete example: yabridge is a tool to let Linux users run DAW plugins designed for Windows. Some changes to Wine (yabridge's main dependency) made yabridge stop working in 2024, and those Wine changes are not going to be undone as they advance progress on Wine's own bug list and test suite. When those changes were made, there wasn't a clear way to change the yabridge code to work with the modified Wine functions.
At the very least, if Wine and yabridge didn't keep a history of their code, you wouldn't even be able to download and build Wine 9.21 staging, when yabridge worked.
Every few weeks, a new dev will find this problem and look into fixing it. By having a history, this dev can always look back on the working implementation. Maybe one day there will be a series of function calls in the new Wine codebase that gets the same behavior that worked before? Maybe Wine adds a flag for yabridge that reintroduces the old functionality but retains for everyone else the changes they decided were necessary. Both avenues would fix the bug but from different ends.
(I understand Wine avoiding the flag solution: It's more to maintain just to help a single project, plus it introduces a conditional jump fail in the very active event handler and windowing subsystems affecting nearly every Wine user, and the development of Wine keeps moving, which could make a flag-based workaround redundant in the near future.)
I haven't opened my DAW in a few months. Last I knew, the problem is resolved for most users but not all, and there might have been a major breakthrough in April or May that still hasn't reached end users.
I would be much more comfortable with passkeys and 2FA if there was almost always the option to log in with just a password as long as an email gets sent to me (perhaps relevant that I have paid email, not Gmail) stating I logged in to site XYZ without 2FA. Not a "click button to confirm you want to log in" email, just a "hey this happened" email containing a Shaggy link, "It wasn't me." Bonus points if that site's account settings (e.g. 2FA) cannot be changed as long as I'm only logged in with a password[+].
The odds of me not having a device to receive the email at the same time someone guesses my password and causes rapid catastrophic damage[++]... I would need to be specifically targeted or unlucky beyond the normal expectations of unluckiness. (Much more likely: I'd occasionally discover which sites have bad security practices or that I need to be more resistant to social engineering or more careful in public spaces; guessing a long generated password in just a few attempts when the password is never shown on the screen would be impressive!)
I've lost count of the number of times I need to enter a password using a unknown machine, log into my Bitwarden server, copy/paste the necessary password, ... "okay now you'll see a popup on your Totally Breakable Losable Connectivity-Unreliable Android phone"
-----
[+]: account info can't be changed w/ only password... unless I provide some verification ranging from personally appearing at an office with ID for money-related accounts to verifying ownership from a backup email address for low-stakes accounts like bulletin boards.
[++]: short of guessing my Bitwarden master password, which is one of the carveouts for "always always 2FA" and "several alternative, secure backup login methods, at least one which does not require technology"
- insert mode
- that is a (typed) dash between Ctrl+K and M
- uppercase M (aside: the K can be upper or lower case)Shape "square": still rounded
-----
It's visually creative. At the same time, the reactive animations would bother me (to the point of deeming it unusable) in any production app or website. I'm glad it respects "reduced motion" preferences.