this post was submitted on 25 Jan 2024
48 points (94.4% liked)

Ask Lemmy

26831 readers
1628 users here now

A Fediverse community for open-ended, thought provoking questions

Please don't post about US Politics. If you need to do this, try !politicaldiscussion@lemmy.world


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 1 year ago
MODERATORS
 

switch statements

switch statements require you to exhaustively consider all relevant or possible inputs (if you don't rely on default).

Interestingly, the notion that switch statements can require a default is reflective of the truth to the idea that when the stakes get high, we all fall back to our default level of training or function. This has global applications to our functionality and, by extension, the inputs (things,people/their methods,contexts) in our lives as well

all 31 comments
sorted by: hot top controversial new old
[–] sbv@sh.itjust.works 17 points 9 months ago (1 children)

Do the important shit first.

I guess this may be more of a project management thing, but trying to figure out what the most important part of a task is, and getting that done first.

If I'm cleaning the bathroom, I do the sink, because if I have to stop, that's typically the grossest part.

When I'm doing my taxes, I do the stupid parts that I can't afford to get wrong first.

When I'm packing for a trip, I get the stuff I need day-to-day sorted out and in my carry-on.

I don't think these are great examples, but they mean something to me.

[–] zero_spelled_with_an_ecks@programming.dev 7 points 9 months ago (3 children)

Please teach us how to have the sink be the grossest part of the bathroom.

[–] pdavis@lemmy.world 2 points 9 months ago

Fun fact, in a pinch the sink can be used as a urinal.

[–] sbv@sh.itjust.works 1 points 9 months ago (2 children)

It's installed on a slight angle, so water pools in the soap holders and around the back of the faucet. If we don't keep it dry, pools fill with gunge.

[–] nikosey@lemmy.world 4 points 9 months ago

so the toilet isn't #1? is it #2?

[–] acockworkorange@mander.xyz 2 points 9 months ago

You mean like Soundgarden?

[–] psion1369@lemmy.world 9 points 9 months ago (1 children)

Often when I'm working on some code, all my errors are because of something much different than what the error message is telling me. I've learned that often, most problems have a different cause and better solution.

Especially in relationship conversations.

[–] BrianTheeBiscuiteer@lemmy.world 8 points 9 months ago

I'm good at breaking down problems into small chunks and not getting overwhelmed by a big project. Do I have the motivation to finish these tasks? That's a different question.

[–] fubarx@lemmy.ml 8 points 9 months ago (1 children)

That things like tests, inline comments, and READMEs are helpful notes to my future self.

[–] cheese_greater@lemmy.world 3 points 9 months ago (1 children)

I want to (dont currently) live by

don't be a dick to future u

[–] acockworkorange@mander.xyz 3 points 9 months ago

I'll let future me do that.

[–] 1984@lemmy.today 7 points 9 months ago* (last edited 9 months ago) (1 children)

Breaking down problems in smaller pieces you can solve / reason about so they don't feel overwhelming. This is a very good life skill as well.

[–] cheese_greater@lemmy.world 1 points 9 months ago

I like the functional programming approach :)

[–] neidu2@feddit.nl 6 points 9 months ago* (last edited 9 months ago) (2 children)

using regex to find the absolute value of a number:
$number =~ s/-//;

using regex to check if a number is odd:
print "odd!\n" if (($number / 2) =~ /\./)

....and generally ~ab~using regex for weird stuff it wasn't intended for, because the regex engine is surprisingly efficient.

🌼 Just PERLy Things! 🌼

[–] 9point6@lemmy.world 8 points 9 months ago (1 children)

Absolute value: if less than zero multiply by -1

Is Odd: if modulo 2 is 1

At most both of those are a 3-4 (x86) CPU instructions. There's no way any regex engine is going to be remotely equivalent if we're talking about efficiency.

I always had a suspicion you perl guys were crazy

[–] flei@feddit.de 1 points 9 months ago

Absolute value: root of value^2

[–] cheese_greater@lemmy.world 3 points 9 months ago

That is beyond obscure haha! Love it

[–] amio@kbin.social 4 points 9 months ago* (last edited 9 months ago) (2 children)

Appreciating possible failures (pessimism, some call it) and being methodical, even if it's tediously methodical.

Interestingly, the notion that switch statements can require a default is reflective of the truth to the idea that when the stakes get high, we all fall back to our default level of training or function. This has global applications to our functionality and, by extension, the inputs (things,people/their methods,contexts) in our lives as well

wat

[–] cheese_greater@lemmy.world 1 points 9 months ago

Life/abillity to cope = switch statement

Have an effective default response programmed in you cuz sometimes shit be crazy

[–] cheese_greater@lemmy.world 1 points 9 months ago

pessimism

Could this be harnessed for inverse thinking?

[–] xkforce@lemmy.world 4 points 9 months ago
  1. Simplify problems before trying to solve them.

  2. Generalizable solutions are better than ones that aren't.

[–] intensely_human@lemm.ee 4 points 9 months ago

One thinking skill Ive picked up from programming is to really take all the time necessary to articulate a thought using the best words.

Clear communication is worth the time and effort. Using the right word for each concept, learning new words as necessary, makes a positive impact on all the uses of that communication.

[–] cmgvd3lw@discuss.tchncs.de 3 points 9 months ago

No matter how you do, there are always other efficient ways.

[–] afraid_of_zombies@lemmy.world 3 points 9 months ago

So if you have ever dealt with PLCs beyond the basics you know that timing/parallelism is a clusterfuck of misery and pain until you get to the point where you can master it.

I am pretty decent at keeping multiple things going as a result.

[–] conciselyverbose@kbin.social 3 points 9 months ago (1 children)

You might be interested in the book Algorithms to Live By. It's not a masterpiece or crazy deep, but it's a pretty accessible look at a few applications of CS approaches to real world problems.

[–] cheese_greater@lemmy.world 2 points 9 months ago* (last edited 9 months ago)

(1) Optimal Stopping (2) Old people don't lose memory - they have so much of it that it slows their system. (3) Procrastination can be seen as an efficient scheduling problem with wrong priority. (4) Predictive Models - Gaussian, Power Law, Erlang (5) Over-fitting - "It really is true that a company will build whatever the CEO decides to measure". (6) Penalize complexity - Occam's Razor Principle (7) "A bit of conservative, a certain bias in favor of history, can buffer us against the boom and bust cycle of fads"

(8)Over-fitting Examples - Military Training, taste buds (9) Early Stopping - Appropriate for Uncertainty (10) "The prefect is the enemy of the good." (11) Continuous Relaxation for discrete optimization. (12) Lagrangian Relaxation - "You don't HAVE to obey the law. There are consequences to everything and you get to decide whether you want to face those.

(13) Random Sampling - Miller Rabin Primality Test (14) Charity - GiveDirectly uses random samples of review (15) Bloom filters for search engine crawls. (16) Simulated Annealing - Random restart hill climbing. (17) Randomness - heart of creativity? (18) Networking - Circuit Switching -> Packet Switching (19) Exponential backoff (20) AIMD - Additive Increase Multiplicative Decrease, TCP's Sawtooth (21) Game Theory - Price of Anarchy. Selfish routing only has 4/3 as it's price of Anarchy that's how internet is working fine (infact 33% close to optimal).

(22) Price of Anarchy is very high in case of Prisoner's Dilemma. (23) Tragedy of Commons - Pollution, Climate Change, Number of Vacations employees use etc., (24) Game Theory - Information Cascade. (25) Vickrey Auction

[–] pdavis@lemmy.world 3 points 9 months ago

When I start a personal project I create a readme file that has a ToDo section and a Change Log section. Anything I think of that I might want to do I put under ToDo, break it into small chunks and prioritize it. When a task is completed under the ToDo section, I move it to the Change Log section. Easy to maintain, track progress, and documents both a Road Map and Changes all in one place. It also has a section for references to shared assets that need attribution. Actually to keep it simple the same document usually also has an about section, an installation section, and a usage section.

[–] Asudox@lemmy.world 2 points 9 months ago

Some parts in math in high school got easier.

[–] AlmightySnoo@lemmy.world 0 points 9 months ago* (last edited 9 months ago)

Loops and recursion or just thinking iteratively in general. If you get this, then mathematical induction gets much more intuitive if you're studying math.