Was it ever frustrating though trying to figure out why my network would randomly decide to just crap out.
556 karma · joined December 24, 2020
Was it ever frustrating though trying to figure out why my network would randomly decide to just crap out.
I eventually realized I was running into a bug in my build environment. It wasn’t detecting the library had any code changes so it was “optimizing” my build by skipping that library. It was one of a dozen or so dependencies so it wasn’t immediately obvious. Eventually, I set a breakpoint somewhere else in the library code and realized it wasn’t being hit because the source code didn’t match the symbols!
I felt pretty dumb once so figured this out even though rationally I know it wasn’t my fault.
Contemporary GM solenoids were integrated into the starter motor and were a real pain to get to. Certainly not impossible to do the screwdriver trick but far less convenient with needing to crawl around on the ground and all. Being located right next to the exhaust headers also meant they were easily susceptible to heat soak problems which would cause a failure to activate - especially if you have a hot-running high performance engine. It was actually a pretty common and easy mod on those GMs to use a Ford solenoid and bypass the one on the starter motor.
For instance, I keep hoping for an updated USG3 given the current one hasn’t changed since 2014 and can’t do IPS without throttling speeds to 80Mbps which is simply unacceptable these days, but all they seem to be doing is focusing on big and expensive 1U hardware which I just don’t have room for.
I could build a low-spec PC with a cheap case, slap a bunch of drives in a JBOD configuration, install the backup agent on all my machines and things just worked. Restore files from a few months ago? Go for it. Do a full-metal restore over the network? Sure, why not. It had many ahead of its time features like media streaming, health monitoring, and could act as a remote access gateway. It never failed me and was almost zero maintenance.
I was very saddened when it went end of life but the writing was on the wall when the follow-up “Vail” release was announced. It essentially took away nearly everything that made the original so good - no more media sharing, JBOD support was out, and it ended up being little more than a super watered down Windows Server 2012.
Literally every other backup product I’ve tried for Windows - from paid commercial offerings from Acronis and too many others to name, to the built-in File History never failed to let me down when I really needed it. File History in particular has been a constant disappointment - it’s just shockingly terrible and I have absolutely zero trust for it. It can just go for months not backing up files and never even bother to alert the user. Unacceptable.
It's easy to point out the consistency issues -- and yeah, they are really bad, and everywhere making Windows 11 feel like an early beta, not a full fledged release. More than anything even basic stuff that's worked well for years or decades has regressed to a point where so many things are barely functional or even recognizable anymore. It's like some designer had MacOS described to them verbally and decided to redesign Windows to look similar. Unfortunately, the latest versions of MacOS aren't all that awesome either when it comes to consistency or usability. In so many ways the design decisions in Windows 11 feel like solutions in search of problems -- they certainly don't make my experience using it any better -- all they do is make me appreciate Windows 10 more than ever (never thought I'd have that sentiment). I keep hoping Windows 11 will get better but even on the latest Insider builds I see very little in the way of improvements to things I really care about so it gives me little confidence.
The article brings up a some great points about how there's no "one" UI framework and the difficulties for developers to make their applications look consistent -- and this is totally true. There's so many different UI frameworks from Microsoft with different levels of maturity, abandonment, usefulness, usability, and use. I'm a big fan of WPF and I think it's one of the best desktop UI frameworks out there -- and sadly it's largely been left to rot which is a real shame and it doesn't support many of the newer aspects of Windows without a lot of hacks. UWP is simply awful -- I swore it off after using it for one project. WinUI and MAUI have huge problems of their own and still feel beta. It makes you wonder what are you supposed to use for new projects when you're stuck with either a great framework that seems dead , or a bunch of new ones that don't feel production ready. This nearly 20 year old blog post from Joel Spolsky is just as relevant and prescient as ever: https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost...
When possible, I also encourage the use of better types than simple integer values, (like TimeSpan if .NET) as these further reduce ambiguity and the potential for mistakes.
This is such a simple thing to find and fix but it definitely helps in the long term.
It also has many footguns — especially how easy it is to make a seemingly asynchronous action blocking, and ‘async void’ can be a big bag of evil if you’re not careful.
I also really wish that chaining things together with ContinueWith wasn’t so clunky.
I’m working on a C# project right now where default interface implementations would save me thousands of lines of kludges with extension methods and duplicated class code. Sadly, it’s stuck on .NET 4.8 and can’t be migrated to .NET 6 right now.
The real version of MacPaint can be found here: https://archive.org/details/mac_Paint_2 but it’s not particularly mobile friendly.
In many ways it’s pretty good, but there’s some omissions and other behaviors that I find simply astonishing.
Why can’t I view two code windows side-by-side? Why can’t I dock the controls library so it’s always visible? Why does the documentation view always have to be on top of everything else? Why can I zoom the Interface Builder when building iOS applications but not Mac applications? Why do things just kind of stop working and require restarting every couple of hours?
In many ways Xcode just seems to lack a lot of the polish and capability Visual Studio has.
I tried playing with Visual Studio and Xamarin on my Mac to see if it could accelerate development by allowing me to leverage my familiarity with C# and found it to be so cumbersome (change to Xcode and mess around with IB, switch to VS, switch back to Xcode…ugh) that I just ditched that flow completely and went all in with Swift/SwiftUI/Obj-C instead.
Every so often for my day to day job I need to work with some really old and crusty MFC-based UI code and while Visual Studio still technically supports MFC, in practice it seems to be basically unusable. I doubt anybody at Microsoft actually tests this functionality because much of the time it fails spectacularly for me - even the templates don’t even really work. So this means I need to struggle through manually messing around with impenetrable machine-generated code files and hope for the best through extensive trial and error.
Basically, I find it very distracting when typing something and then seeing something else appearing around my typing. Ligatures definitely fall in that “distracting” realm for me. It may not be as pretty but I like the symbols showing exactly as I typed them.
I don’t begrudge others who like these —- it’s their preference. I just prefer non-ligatured versions of coding fonts.
I’ve said before that Swift is a relatively new language to me. I’m not up to date on its many “evolutions” or particularly familiar with its history and nuances. I am not even sure what Swift version I’m on right now other than “whatever the latest version of Xcode uses”. I’m just trying to learn the Swift/SwiftUI stack by writing some code for MacOS and iOS as part of a hobbyist project that I’m working on during my downtime.
When I was trying to do something that’s worked fine in many other languages the Swift compiler literally told me “no” because it had been removed from the language in version X. I mean whatever - I found how to work around this - it was a kind of clunky and overwrought one versus the simplicity of the original code but it met my needs and it was a teachable moment.
My overarching point originally wasn’t meant as a hard criticism of Swift. I’m fact I quite like it. It was an observation that Swift is unlike other languages I work with regularly where it’s rare that language features are ever removed (or at worst hidden behind compiler or feature flags).
Swift’s designers clearly think it’s ok to remove things they don’t like or they don’t think meets their vision. That’s fine and valid. My point was that as a result of this stance that means tutorials and samples can become stale in a way that I don’t see with the other languages I work with where you’re more likely to be using old methodologies or obsolete APIs - that can/should emit compiler warnings or IDE refactor hints - but otherwise won’t fail to compile because something was removed completely.
It’s a beautiful representation of a 555 timer in discrete component form - and functional too.
The 555 timer itself is a pretty simple IC since it’s just a few dozen transistors and resistors at its core.
There were plenty of alternative ways to accomplish my scenario but they ended up being pretty clunky and overly expressive for what I was trying to do at the time.
It seems like the Swift language designers have no qualms about removing language features and breaking old code as a result - which is certainly their prerogative but it’s not something I’m accustomed to.
For contrast, Swift will drop support for features that can render old code samples useless. I’ve written code fails to compile with an error literally saying what I am trying to do was removed from the language in version X. Things like that can be aggravating for a newbie like me to deal with.
I eventually found a package on GitHub called WrappingHStack that did exactly what I needed but this struck me as odd that something like this wasn’t out of the box functionality.