There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

programmer_humor

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

xyguy , in Scott reviews the perfect browser extension

Wow this music player app is simple and does everything it should.

Random Commenter: why won’t it play video?

MBA: Why isn’t this a subscription service?

smashboy , in I like seeing the numbers go up

This is me, watching my model train and watching the loss go down at every epoch.

ReCursing ,
@ReCursing@kbin.social avatar

Oh, train is a verb not a noun here! I thought you meant a toy train set, and was very confused for a moment

flambonkscious ,

Me too! We’re witnessing a change in language, here

smashboy ,

Oh!! Haha I didn’t realize that until I read it again 😅 That’s a confusing sentence if you read it the other way. I wonder if there’s a name for sentences that change meaning as you read/hear the later part of the sentence.

ReCursing ,
@ReCursing@kbin.social avatar

They're sometimes called garden path sentences because they lead you up the garden path. Some more examples: https://www.apartmenttherapy.com/garden-sentences-262915

Cowbee , in What I want to become Vs What I do
@Cowbee@lemmy.ml avatar

Do you… do you think we don’t have Civil, Mechanical, Electrical, or Computer Engineers anymore?

RubberElectrons ,
@RubberElectrons@lemmy.world avatar

Right? I do both electrical and mechanical in my daily, besides some meh quality C code haha.

Cowbee ,
@Cowbee@lemmy.ml avatar

I get it, haha. I know this is a programmer community, but it’s funny to me to think of programming as a progression beyond traditional engineering disciplines, rather than along side them.

RubberElectrons ,
@RubberElectrons@lemmy.world avatar

Don’t worry, someone else over here was saying programming is “the pinnacle” of engineering… Really hard not to disembowel a statement like that lol.

I think programming is both an art and a science, like all engineering disciplines.

doctorcrimson ,

I think they’re outnumbered by desk jockeys without a math degree.

Socsa ,

I mean these days the average EE is a software engineer who is good at math and bad at software.

Donkter ,

I’m in engineering school and the ethos definitely is “engineers write bad code but it’s for simple tasks involving complex math.” As the world of engineering steers more and more towards coding we’re definitely going to be expected to write applications instead of simple Matlab scripts and there’s no way it’s going to be pleasant.

doctorcrimson ,

I believe that if an Electrical Engineer has qualification as a programmer then the two fields become the higher discipline “Computer Engineer.” At least most universities arrange their classifications as such.

I_Has_A_Hat ,

Comp Sci is not engineering. Programming is not engineering. I don’t mean this in an elitist way, it just flat-out doesn’t fit with other engineering fields. It’s firmly in the T area of STEM, not the E.

pixeltree , (edited )
@pixeltree@lemmy.blahaj.zone avatar

Computer engineering is not comp sci lol

Computer engineering is the hardware level of designing and building computers, it might involve firmware depending on the job and the area but it’s way closer to electrical engineering than software engineering. Software engineering is also very different than computer science.

Software engineering is called that because it is the equivalent of engineering in software. You are engineering and designing a product/system. Computer science is more of the theoretical side, more detailed study of algorithms and math, etc.

What do you think of electrical engineers? Is that “real” enough to be called engineering?

Cowbee ,
@Cowbee@lemmy.ml avatar

Computer Engineering is hardware engineering for Computers, with some programming. It’s a child of Electrical Engineering, just like Electrical Engineering is sort of a child of Mechanical Engineering.

I_Has_A_Hat ,

And at what point in Computer Engineering do you require a fundamental understanding of Physics like every other Engineering field?

Cowbee ,
@Cowbee@lemmy.ml avatar

The part where you have to fundamentally understand how hardware actually works, ie how transistors, integrated circuits, and logic gates actually work on a physical level.

You’re thinking of Software Engineering, and even then you’d still be off.

hips_and_nips ,

The point where I was using my master’s in computer engineering to design physical chips? You know, using my fundamental understanding of electricity, magnetism, and the physics that come along with it.

UNWILLING_PARTICIPANT , in I like seeing the numbers go up

I’ve even made little scripts to beautify and parse the output into metrics it’s so fun haha

Landless2029 ,

We are not alone…

chinstrap , in What could go wrong trying to solve AoC in Rust?
@chinstrap@lemmy.ml avatar

Java 2. World is full of wonders

crispy_kilt ,

Java 2 didn’t have streams nor iterator combinatorics, not sure what you mean?

chinstrap ,
@chinstrap@lemmy.ml avatar

i didn’t mean as a version. I meant as overuse of streams

crispy_kilt ,

How would you have preferred to solve it? Using for loops?

AVincentInSpace ,

Python style iterator comprehension

(wonder if someone has made that into a macro. if no one has I will)

crispy_kilt ,

I don’t think it would be readable. Too much going on. You’d need an outer iter over lines, an inner over words, a check for number and a conversion. And there would be zero error handling.

AVincentInSpace ,

No less readable than half the Python comprehensions I’ve written.

zero error handling.

Not necessarily. The macro could look for a ? at the end of the final expression (the bit that comes first in a comprehension) and return a Result.

crispy_kilt ,

Right, of course, I meant no error handling in the Python impl

xmunk , in I like seeing the numbers go up

Honestly it’s like video game credits. You built a complex system and it worked… bask in your achievements!

RacoonVegetable , in Scott reviews the perfect browser extension

Fair

m_f , (edited ) in What could go wrong trying to solve AoC in Rust?

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>
MaliciousKebab OP ,

Yeah I was trying to do something like reading the first line by getting an iterator and just looping through the other lines normally, since first line was kind of a special case but it got messy quick. I realized halfway that my collects were redundant but couldn’t really simplify it. Thanks

sukhmel ,

Also, anyhow::Context provides a convenient way to turn Option<T> and Result<T, Into<anyhow::Error>> into anyhow::Result<T>

Like this:


<span style="font-weight:bold;color:#a71d5d;">use </span><span style="color:#323232;">anyhow::Context;
</span><span style="color:#323232;">
</span><span style="font-style:italic;color:#969896;">// to my understanding it's better to 
</span><span style="font-style:italic;color:#969896;">// specify the types when their names 
</span><span style="font-style:italic;color:#969896;">// are the same as in prelude to improve
</span><span style="font-style:italic;color:#969896;">// readability and reduce name clashing
</span><span style="font-weight:bold;color:#a71d5d;">fn </span><span style="font-weight:bold;color:#795da3;">main</span><span style="color:#323232;">() -> anyhow::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;">context</span><span style="color:#323232;">(</span><span style="color:#183691;">"No first line!"</span><span style="color:#323232;">)</span><span style="font-weight:bold;color:#a71d5d;">?     </span><span style="font-style:italic;color:#969896;">// This line has changed
</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>

Edit: line breaks

Schmeckinger , in What could go wrong trying to solve AoC in Rust?

You can’t really blame that on rust.

MaliciousKebab OP ,

Yeah ngl it’s very ugly. But hey as long as it works it’s not stupid amirite?

xlash123 ,
@xlash123@sh.itjust.works avatar

Rust borrows a lot of it’s design from functional programming languages like Haskell, which has its good and bad. You could also choose to implement this behavior iteratively like typical C programs, but that tends to be ugly in other ways.

Personally, I’ve grown fond of the functional style. You see it in other places too, like the higher order functions in JavaScript. What’s good about them in Rust is you still get amazing performance due to zero-cost abstraction. Trying to implement it yourself would likely be slower, so use them any chance you get.

drew_belloc , in I like seeing the numbers go up
@drew_belloc@programming.dev avatar

I miss my server full of garbage scripts that i lost hours writing to use once and forget about it

neidu2 , in I like seeing the numbers go up

Not only home server… this gif is 50% of my job description.

xoggy , in I like seeing the numbers go up
@xoggy@programming.dev avatar

It’s about the journey not the destination.

SkybreakerEngineer ,

Journey before pancakes, gancho

RacoonVegetable , in I like seeing the numbers go up

All of those pretty colors and magical words 😍✨

gandalf_der_12te ,

I have the suspicion that many LGBTQ-people are more inclined to colorfulness than non-LGBTQ-people.

Trainguyrom , in I like seeing the numbers go up

When I had a ceph cluster setup with a star network of routed gigabit connections between servers I was giddy with excitement watching the throughput, and even more excited when I spotted one of the cables was bad and only able to pass traffic in one direction but the routing protocol still used the available bandwidth and work around the bad link in the opposite direction.

otter , in I like seeing the numbers go up

!bikinibottomtwitter

(Just crossposted)

Dasnap OP ,
@Dasnap@lemmy.world avatar

Gotta spread the love, mate.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • [email protected]
  • random
  • lifeLocal
  • goranko
  • All magazines