m_f

@m_f@midwest.social

This profile is from a federated server and may be incomplete. Browse more on the original instance.

The sublinks mess makes me want to leave Lemmy

Already using a .ml account, and have seen divisive toxic negativity that has me ready to pack it up and delete it all. Everyone that I enjoyed interacting with is missing in post comments already. It feels dead, like the death blow to what was already struggling. I guess this is my litmus test post, despite knowing the probable...

m_f,

What sublinks mess? I’m out of the loop on that

m_f,

Hadn’t read this before, link for anyone else interested: georgerrmartin.com/notablog/…/trial-of-seven/

Jaimie besting Rand doesn’t really make sense there tbh, even with the conceit of taking away Saidin

"X couple" with DALL-E (midwest.social)

Inspired by the recent news of Google’s Gemini and race issues, I wanted to know how some basic queries would work with DALL-E. This was completely unscientific and just what I thought of off the top of my head, but I thought it was mildly interesting. The above picture is what happened when I asked ChatGPT to “Draw a...

m_f,

This is a great place to post it IMO. Helps keep the community active

m_f,

Huh. Has the piano ever made another appearance? Jon doesn’t seem the type to own one

m_f,

That was quick, thanks! Clearly, Jon realized he’d never play the piano and stored it away in the attic, where it dropped through the ceiling in the 1985 strip.

m_f,

I just had a POS machine recommend 20%, 25%, or 30% for percentages. It seems like it’s increasing

m_f,

What parent is likely referencing

TBH I wonder if the current Microsoft is capable of executing that here. I don’t believe in a “changed” MS, but Linux is eating the world, and MS doesn’t really care about Windows much anymore. Azure happily runs Linux VMs

m_f,

Using it in pipes looks cool. IMO the usage in writing git commit messages is actually not useful. Almost always you should be writing the why, not the what. Same thing for comments. Unless the code has a good reason to be written inscrutably e.g. for performance, write simple code and comment why you’re doing something as necessary. Which is not to say “the code comments itself”, but the “what” comments should be higher level at a function or file level

m_f,

There’s at least one example you can look at, the Jenkins CI project had code like that (if (name.startsWith(“windows 9”)) {):

issues.jenkins.io/secure/…/PlatformDetail

Microsoft, for all their faults, do (or at least did) take backwards compatibility very seriously, and the option of “just make devs fix it” would never fly. Here’s a story about how they added special code to Windows 95 to make SimCity’s broken code work on it:

Windows 95? No problem. Nice new 32 bit API, but it still ran old 16 bit software perfectly. Microsoft obsessed about this, spending a big chunk of change testing every old program they could find with Windows 95. Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here’s the amazing part: On beta versions of Windows 95, SimCity wasn’t working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn’t free memory right away. That’s the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95.

m_f,

Double curly is pretty common IME, but I have more experience in backend which is less likely to be involved in an error like this. Off the top of my head, handlebars, django, and jinja2 all use that style.

m_f,

That looks like a pileup waiting to happen if one of the bikes in front crashed

m_f,

You’re not getting past this bouncer

https://midwest.social/pictrs/image/9504a00c-765d-4942-ba19-fe30b9a52f6c.webp

PromptChatGPT came up with the punny name on its own: A large, heavy animal, resembling a buffalo, dressed as a bouncer at a cyberpunk-themed nightclub in an all-animal world. The club, named ‘Byte the Dust’, showcases a grungy, cyberpunk aesthetic, with a neon sign that’s bold and futuristic. The buffalo bouncer is wearing high-tech, neon-lit glasses and a distinctive cyberpunk mohawk. The outfit is a rugged, cybernetic ensemble with metallic accents. It stands imposingly at the club entrance, which features rough textures, rusted metal, and dimly lit neon lights. The buffalo’s expression is tough and unwavering, in harmony with the gritty cyberpunk theme. The artwork should be in a realistic style, highlighting the formidable presence of the buffalo and the intense, neon-tinged atmosphere of ‘Byte the Dust’.

m_f,

In case anyone hasn’t seen it yet:

neal.fun/infinite-craft/

It’s pretty fun. Similar to OP, I was able to get all the way to crafting specific Mario Kart DS courses.

m_f, (edited )

The collect’s in the middle aren’t necessary, neither is splitting by ": ". Here’s a simpler version


<span style="font-weight:bold;color:#a71d5d;">fn </span><span style="font-weight:bold;color:#795da3;">main</span><span style="color:#323232;">() {
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">let</span><span style="color:#323232;"> text </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#183691;">"seeds: 79 14 55 13</span><span style="color:#0086b3;">n</span><span style="color:#183691;">whatever"</span><span style="color:#323232;">;
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">let</span><span style="color:#323232;"> seeds: Vec<</span><span style="font-weight:bold;color:#a71d5d;">_</span><span style="color:#323232;">> </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> text
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">lines</span><span style="color:#323232;">()
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">next</span><span style="color:#323232;">()
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">unwrap</span><span style="color:#323232;">()
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">split_whitespace</span><span style="color:#323232;">()
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">skip</span><span style="color:#323232;">(</span><span style="color:#0086b3;">1</span><span style="color:#323232;">)
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">map</span><span style="color:#323232;">(|x| x.parse::<</span><span style="font-weight:bold;color:#a71d5d;">u32</span><span style="color:#323232;">>().</span><span style="color:#62a35c;">unwrap</span><span style="color:#323232;">())
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">collect</span><span style="color:#323232;">();
</span><span style="color:#323232;">    println!(</span><span style="color:#183691;">"seeds: </span><span style="color:#0086b3;">{:?}</span><span style="color:#183691;">"</span><span style="color:#323232;">, seeds);
</span><span style="color:#323232;">}
</span>

It is simpler to bang out a [int(num) for num in text.splitlines()[0].split(’ ')[1:]] in Python, but that just shows the happy path with no error handling, and does a bunch of allocations that the Rust version doesn’t. You can also get slightly fancier in the Rust version by collecting into a Result for more succinct error handling if you’d like.

EDIT: Here’s also a version using anyhow for error handling, and the aforementioned Result collecting:


<span style="font-weight:bold;color:#a71d5d;">use </span><span style="color:#323232;">anyhow::{anyhow, </span><span style="color:#0086b3;">Result</span><span style="color:#323232;">};
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">fn </span><span style="font-weight:bold;color:#795da3;">main</span><span style="color:#323232;">() -> Result<()> {
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">let</span><span style="color:#323232;"> text </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#183691;">"seeds: 79 14 55 13</span><span style="color:#0086b3;">n</span><span style="color:#183691;">whatever"</span><span style="color:#323232;">;
</span><span style="color:#323232;">    </span><span style="font-weight:bold;color:#a71d5d;">let</span><span style="color:#323232;"> seeds: Vec<</span><span style="font-weight:bold;color:#a71d5d;">u32</span><span style="color:#323232;">> </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> text
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">lines</span><span style="color:#323232;">()
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">next</span><span style="color:#323232;">()
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">ok_or</span><span style="color:#323232;">(anyhow!(</span><span style="color:#183691;">"No first line!"</span><span style="color:#323232;">))</span><span style="font-weight:bold;color:#a71d5d;">?
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">split_whitespace</span><span style="color:#323232;">()
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">skip</span><span style="color:#323232;">(</span><span style="color:#0086b3;">1</span><span style="color:#323232;">)
</span><span style="color:#323232;">        .</span><span style="color:#62a35c;">map</span><span style="color:#323232;">(</span><span style="font-weight:bold;color:#a71d5d;">str</span><span style="color:#323232;">::parse)
</span><span style="color:#323232;">        .collect::<Result<</span><span style="font-weight:bold;color:#a71d5d;">_</span><span style="color:#323232;">, </span><span style="font-weight:bold;color:#a71d5d;">_</span><span style="color:#323232;">>>()</span><span style="font-weight:bold;color:#a71d5d;">?</span><span style="color:#323232;">;
</span><span style="color:#323232;">    println!(</span><span style="color:#183691;">"seeds: </span><span style="color:#0086b3;">{:?}</span><span style="color:#183691;">"</span><span style="color:#323232;">, seeds);
</span><span style="color:#323232;">    </span><span style="color:#0086b3;">Ok</span><span style="color:#323232;">(())
</span><span style="color:#323232;">}
</span>

Generic Typing with `Iterable[str]` or `Collection[str]`: Should you use it?

I often find myself defining function args with list[SomeClass] type and think “do I really care that it’s a list? No, tuple or Generator is fine, too”. I then tend to use Iterable[SomeClass] or Collection[SomeClass]. But when it comes to str, I really don’t like that solution, because if you have this function:...

m_f,

If you’re writing code that generic, why wouldn’t you want str to be passed in? For example, Counter(‘hello’) is perfectly valid and useful. OTOH, average_length(‘hello’) would always be 1 and not be useful. OTOOH, maybe there’s a valid reason for someone to do that. If I’ve got a list of items of various types and want to find the highest average length, I’d want to do max(map(average_length, items)) and not have that blow up just because there’s a string in there that I know will have an average length of 1.

So this all depends on the specifics of the function you’re writing at the time. If you’re really sure that someone shouldn’t be passing in a str, I’d probably raise a ValueError or a warning, but only if you’re really sure. For the most part, I’d just use appropriate type hints and embrace the phrase “we’re all consenting adults here”.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • tacticalgear
  • DreamBathrooms
  • InstantRegret
  • magazineikmin
  • Youngstown
  • everett
  • cisconetworking
  • slotface
  • GTA5RPClips
  • rosin
  • thenastyranch
  • kavyap
  • mdbf
  • Leos
  • modclub
  • osvaldo12
  • Durango
  • khanakhh
  • anitta
  • provamag3
  • ngwrru68w68
  • cubers
  • tester
  • ethstaker
  • megavids
  • normalnudes
  • lostlight
  • All magazines