title: Put the knife down and take a green herb, dude. |
descrip: One feller's views on the state of everyday computer science & its application (and now, OTHER STUFF) who isn't rich enough to shell out for www.myfreakinfirst-andlast-name.com Using 89% of the same design the blog had in 2001. |
FOR ENTERTAINMENT PURPOSES ONLY!!!
Back-up your data and, when you bike, always wear white. As an Amazon Associate, I earn from qualifying purchases. Affiliate links in green. |
|
x
MarkUpDown is the best Markdown editor for professionals on Windows 10. It includes two-pane live preview, in-app uploads to imgur for image hosting, and MultiMarkdown table support. Features you won't find anywhere else include...
You've wasted more than $15 of your time looking for a great Markdown editor. Stop looking. MarkUpDown is the app you're looking for. Learn more or head over to the 'Store now! |
|
Friday, May 26, 2023 | |
Only Apple brings you amazingly architected solutions like this. This is precisely that "happy path or no path" mentality that I've complained about before. If you were green fielding a new OS, there's no way you say, "I know where we'll put the setting for the default mail app! In OUR email app!" I mean, it makes sense if Mail.app is the only mail handler on your box. I'm guessing I can't delete it even though I don't use it, because if I could I wouldn't be able to select another client to replace it! I also bet the percentage of people using 3rd party email apps for their company email inside of the infinite loops is really low. This is precisely why I wouldn't hate seeing Apple get split into a hardware-and-bios company and a separate software company or, better yet, companies. I don't hold out any hope for that... I think independent competition with OSes only happens if Linux ever finally commoditizes the desktop OS. Which is could do; I use Ubuntu regularly now. Which is also why it probably never will -- it's good enough for its user base, but still obviously not competitive enough for the typical end user. In any event, Apple does a great job defining one clean-room use case for its products and, I assume, efficiently implementing that mvp. But it's not very creative at the next step: Coming up with potential real-world fail conditions once the mvp is running. Labels: apple, apple fail, email, happy-path-or-no-path, macOS posted by ruffin at 5/26/2023 07:02:00 PM |
|
Monday, April 17, 2023 | |
You know what stinks? Sites like the Washington Times that throw so many advertisements into your face that you'll never actually get the information you want. You know what would rule? Being able to have a personal killfile for URLs that stink when you go to a search site. You can do this now on a search-by-search basis. Try this: https://www.google.com/search?q=nationals+barry+svrluga Now try this: https://www.google.com/search?q=nationals+barry+svrluga+-site%3Awashingtonpost.com Very different results. If we had enough people stop using, idk, geeksforgeeks.com (which just asked me to sign in and turn off my adblocker about four times, and not all at once, by which I mean I scroll and it asks again, and I read a while and it asks again; ARGH!!1!) or w3schools.com (which I often get in results when I want MDN... yes, I normally search with MDN in the terms now), maybe Google would learn not to include these things as high in the search rankings. Just an idea. Guess I should write a browser extension. posted by ruffin at 4/17/2023 11:09:00 AM |
|
Friday, April 07, 2023 | |
So you know how to use git. You create a folder, smack in some files, Stop doing that. Well, not not [sic] using a GUI tool. Stop Why? Because then you don't have a linear repo any more. You can start branches that go "backwards", essentially. This may seem insane, but, trust me, someday it will come in handy.
An interesting bit of trivia: Though the SHA of the commit will change from repo to repo, the tree's SHA will always be the same: Labels: git posted by ruffin at 4/07/2023 01:12:00 PM |
|
Saturday, March 25, 2023 | |
From neowin.net:
Omg. They're absolutely right. Be as open to seeing bias as you'd like, you will always have a blindspot. Until today, this was one of mine. Labels: microsoft, microsoft fail, sexism, Word posted by ruffin at 3/25/2023 06:14:00 PM |
|
Friday, March 24, 2023 | |
A couple of things to talk about today. First, the new 16" Framework laptop seems awesome. It includes room for upgradeable discrete graphics and is configurable so you can include or remove a 10-key keypad and recenter your main keyboard if it's removed. The Framework really is about as close to the "let me build my laptop like I want" dream folks like me have had for a while. And they have already delivered. I bagged the old 13" Framework laptop, refurb, for about $600, that comes without OS, SSD, RAM, WiFi card, or a power supply. I pulled those pieces out of the junk drawer from upgrades of other laptops and installed Ubuntu. See? It really is like building your own brandless DIY tower. ![]() My first gen refurb has a nice screen, decent keyboard, plenty fast with the slowest 11th gen Intel i5 Framework has ever sold, but what was most important to me is that I might be able to replace the battery in a few years when it finally dies. Amazingly, starting yesterday, they're selling a better battery with over 10% more power for my laptop. And not that I need to upgrade, but all the new processors fit in my box too (13th gen Intel and AMD 7040s) two years after its release. Small, though not the smallest. High quality components, but not the best (not a ThinkPad keyboard or a MacBook trackpad by any stretch). Not the best battery life, but much better than my gaming laptop's. Clearly privileges repairability above all else, but still does a good job everywhere else -- which is why I'm so impressed by the 16"'s plans for graphics. If you need that much GPU power, and they pull things off as well as they have so far, you should start saving some real dough when you upgrade. What's to hate? The stupid user-configurable ports. They cost $9-19 a piece for USB or HDMI ports. There's a nice group of four refurb expansion cards for $29, but they're $9 to ship. Robbery, I tell you. I get why -- in theory -- "pick your ports" is a neat idea, but get this: The 13" Framework is just a four-USB-C-port box. The expansion cards ultimately plug into USB-C ports. Though you can go directly to the USB-C ports on the motherboard without expansion cards, the "raw" ports are difficult to reach without the cards installed, and I've got one port on my motherboard that's a little loose already. I wonder if they're rated for the same number of usages. Overheard [in my head]:
That said, their "courage" parody showing they'll allow you to install SIX HEADPHONE PORTS on one 16" laptop is hilarious. If you care about repairability and upgradability at all -- no, if you've complained about soldered on RAM and SSDs on MacBooks ยญeven once! -- you owe it to Framework to make it your next laptop. Refurbs like mine have dropped to $599... not a great price for BYO[RAM, SSD, WiFi, and power supply], as you can often buy a completely new gaming laptop with all those things for less (here's today's under $600 example). But find me another well-made laptop with decent battery life that allows you to swap out an internal battery for $60. Second, let me remind myself how to create and apply git patches. From stackoverflow.com:
If things go completely sideways and you're, like me, applying a patch from a thumb drive where there's no internet and no great Plan B, you can apply a patch file by hand even if git gives you the "It does not apply to blobs recorded in its index." error. I really like how git anticipates and supports completely disconnected edits. It makes it really easy to grab a few files, any laptop, take off somewhere to get some work done, and know you can export that work back wherever you started. posted by ruffin at 3/24/2023 09:49:00 PM |
|
Monday, March 06, 2023 | |
I know VIm has multiple registers, but I don't use them enough. I use some clipboard managers that essentially solve the same problem OS-wide (though the solution isn't as slick as VIm's), but there are still times where I need the same level of control with my "intra-vim" clipboards. Here's a great overview from StackOverflow, edited slightly to use register
I think the key for me was remembering that, in VIm-language, That is, the command is:
Labels: vim posted by ruffin at 3/06/2023 01:14:00 PM |
|
Tuesday, February 07, 2023 | |
Let's try to put LeBron's breaking Kareem's career points scoring record into perspective.
And it's not like Jordan stopped early. He took off his 10th and most of his 11th season. Then he took off his 15th, 16th, and 17th seasons, played his 18th and 19th, and took off his 20th. If we add those seasons back, what would we get? Here's a way to unfairly estimate those seasons: We'll take the last "fullish" season before each break and, if it exists, the next fullish season after he comes back and half the seasons' totals. Then we'll pretend that's what he would've scored during the missing seasons -- and for here, we're going to remove his partial 1994-5 season and replace it with this ballpark estimate.
So for 93-4 and 94-5, we're going to add (2541 + 2491) / 2 per season for 5032 points for two seasons. But we have to remove the points from his 17 games in 94-5, which is 457 points. Not fair, I know, but let's do it. Those could've been 17 easy games, or you could argue he could push harder not playing a full season or whatever. Better to use full season estimates. Maybe. All told, that's plus 4575 points.
That 01-2 amount is pretty conservative from the injuries, but let's use this ballpark measurement. That's (2357 + 1375) / 2 = 1866, but for three seasons. That plus 5598 points. Now let's get in that 20th season. This isn't fair the other way (to his benefit this time), but let's say he repeats his 19th.
So that's 4575 + 5598 + 1640 = 11813 points. That gives Jordan 44105 points for 20 seasons. Now that's insane. He's now 5753 ahead of LeBron (and 5718 over Kareem). Once LeBron beats that, you can get back to me on GOAT arguments. (And you'll still lose.) PS I'm sure I've messed up some math somewhere. Sometime I might correct it. Apologies in advance. Labels: NBA, Other Stuff posted by ruffin at 2/07/2023 11:26:00 PM |
|
Wednesday, January 11, 2023 | |
Remember when I said this?
What a naรฏve time that was. Take this seemingly innocuous question on SO:
And then check this answer:
Wha? Luckily (?) one of the commenters asked the same question.
I mean, um, that requires Inception level cognition to understand. ๐ (Okay, actually it's pretty straightforward, but talk about a lack of discoverability.) What's even more interesting is that dev's answer to the original question, which is this:
AsideOkay, before I point out what I want to point out, note that From ss64.com, a common domain when I'm in batchland:
And we're backOkay, now what I'd like to point out here is the Here's some explanation from ss64.com:
EnableDelayedExpansion ย command.Variable expansion means replacing a variable (e.g.ย
And here's a decent example from that page showing how it works in practice.
The output is
Note that the above example has to be in a batch file to work properly. Anyhow, it's an insane rabbit hole that I didn't schedule for this sprint and fell into anyhow. I'm going to cut my losses now that I've warned others who may have been as naรฏve about batch scripts as I was, oh so long (less than three weeks ๐) ago. Oh good heavens. I guess this makes sense. The first example can be taken by itself as a brain teaser, I think. From ss64.com, again on EnableDelayedExpansion: @echo off Setlocal Set _html=Hello^>World Echo %_html% Got that figured out? If not, sit and think about it for a second before reading more. Got it? Good. Clever, huh?
Labels: batch, cmd, development, noteToSelf posted by ruffin at 1/11/2023 12:27:00 PM |
|
Friday, December 23, 2022 | |
Ah, one quick Markdown lesson I learned recently. If you've got Markdown inside of "real" block-level html tags, it's not supposed to be rendered.
That shouldn't be bold. It renders as... This is **some Markdown**.
Unexpected, but (with a hat tip to this SO answer), apparently correct behavior according to The Grubes:
Welcome to the land of unintended consequences. It looks like the deal was "stop adding all these danged There is, however, a non-standard workaround, as described by Python-Markdown's docs:
So if you have
you should have This is some Markdown. ... but I need to add that to MarkUpDown if I want to support it. And since it's not like someone is going to add that that doesn't want it, I guess I should! Labels: gruber, html, markdown, markupdown posted by ruffin at 12/23/2022 08:36:00 AM |
|
Thursday, December 22, 2022 | |
The longer I work in Windows, the more I find myself using Nearly (and maybe even over at this point) thirty years ago I had a guy wisely tell me, when I was considering buying a new Mac or Windows PC, "It's all zeros and ones." Same for script languages, mostly. It might be a pain to learn batch scripting on Windows sometimes, but there's very little you can't do if you set your mind to it. But this is a really neat trick to create "arrays" in batch that I've never seen. I've edited a bit to allow running in a
Clever. While I'm at it, here's a PowerShell script I've been using to approximate grep there. I've dabbled in this problem before, but it's usually a good idea to reduce it to script instead of leaving only human-readable lessons learned:
That captures the Labels: batch, cmd, grep, noteToSelf, powershell posted by ruffin at 12/22/2022 10:21:00 AM |
|
|
All posts can be accessed here: Just the last year o' posts: |
|||||||||||||||||||||
|
![]() |
|
|