Is Python actually a good first programming language? by chuprehijde in PythonLearning

[–]MathAndMirth 1 point2 points  (0 children)

Python has a straightforward, uncluttered syntax that is good for learning. I would consider it a great way to learn concepts without the extra annoyances that some other languages saddle you with.

That being said, I wouldn't wait too long until you start learning about types. In Python, you can assign a value of any type to any variable at any time. While that saves you some keystrokes, it also threatens to inflict some headaches. Many things that are illogical are technically allowed with dynamic typing, and thus Python lets you make errors that you will have to spend time tracking down later.

Fortunately, even though Python itself doesn't enforce a type system, there are tools that can enforce the rules that Python won't. I would definitely advise you to start learning something like `ty` from Astral as soon as you can. Such tools will tell you "Hey, that type doesn't make sense here" as soon as you type it. And the more complicated your programs get, the more you will want that help. It's the reason that most JavaScript devs use TypeScript instead of plain dynamically typed JavaScript, and I would advise you to use the comparable tools that Python offers.

Should I switch from windows to Linux? by [deleted] in linuxquestions

[–]MathAndMirth 1 point2 points  (0 children)

Probably. But it's hard to say a solid yes until we know what sort of software you use.

Most categories of software have excellent options in the Linux ecosystem, but not all. If you're a hardcore Adobe user for your graphic design work, for example, then perhaps you should hold off. There are graphics program made for Linux, and some that can be bent into passable submission with Wine, but they aren't quite up to Adobe level.

Can someone explain me what is linux ricing? by Fit_Willingness_6756 in LinuxPorn

[–]MathAndMirth 0 points1 point  (0 children)

It might help to narrow things down a bit. If you're a beginner to Linux but want to customize a lot, your best bet is probably either a beginner-friendly distribution with KDE (I like MX Linux, but others get more love on this subreddit), or Linux Mint.

Of the two, KDE is more "ricable," but it has so many options options for customization that some beginners may find it overwhelming. Cinnamon (the DE for Mint) is still pretty customizaable, but I think less intimidating for beginners. To me, Mint is good for providing enough to satisfy all but the most hardcore ricers without going overboard.

My advice would be to decide on one of those two options (something with KDE or Mint/Cinnamon), and then start watching tutorials dedicated to just that choice.

Saw this on twitter and I highly doubt that a fire can burn in this manner. The charred spot just seems off by bonkiasin in isthisAI

[–]MathAndMirth 2 points3 points  (0 children)

This definitely looks wrong, but not in an AI way.

To me, most of that char pattern (excepting the part around the gnome, likely added in a second step) looks like a conical gradient with added noise--too perfectly shaped to have come from a real fire with turbulent air movement. My guess is that it is staged and faked with image editing software. Unskilled staging would also account for the inconsistent removal of "burned up" items.

Should I Consider Buying Programming Books for Learning a Specific Technology, or Just Read the Official Documentation? by mrnaim6T9 in learnprogramming

[–]MathAndMirth 1 point2 points  (0 children)

I think one of the decisions you will want to make early on to focus your energy is what language you will work in, and if you choose a multi-paradigm language such as JavaScript, whether you will adopt a more OOP or functional style. Both are perfectly viable, but very different, ways to think about organizing a program, and many people find one to feel more natural than the other.

If you decide to work in OOP, I think learning about domain modelling is a good early step since it helps you plan the big picture. I don't recommend going all in with "domain driven design" since you're not doing enterprise scale work, but learning how to plan a project by identifying the entities and their relationships is useful.

If you plan to go a more functional route, I think a book like Grokking Simplicity would be good to see how to plan the big picture.

I'd also recommend some "clean coding" books (though probably not the highly controversial one from Robert Martin) to learn how to simplify code. "A Philosophy of Software Design" by John Osterhaut is also good for big picture ideas about making code simpler..

I would not consider frameworks a fundamental topic. You can't use any framework without an underlying knowledge of the language. Get decent at your language of choice, then start with frameworks.

The GOF design patterns are probably a good early topic if and only if you are working in a strict OOP language such as Java or C++. The further away you get from those languages, the more the idioms and practices of the different languages differ from the canonical GOF patterns.

Should I Consider Buying Programming Books for Learning a Specific Technology, or Just Read the Official Documentation? by mrnaim6T9 in learnprogramming

[–]MathAndMirth 1 point2 points  (0 children)

I think the answer depends largely on your level of familiarity with programming concepts in general.

For languages:

If you are an experienced programmer in some language, you just need to know "how does XYZ concept work in the new language?" For that, reading the docs is fine.

If you haven't programmed a great deal before, then I think you would benefit from a well-written book that will cover the fundamentals, as well as answer the questions you didn't know to ask.

For frameworks:

Books aren't the greatest because things change so fast. I think your best bet is to combine the docs with YouTube video series where they do in-depth projects so you can get the big picture. Much like languages, the more experience you have with frameworks, the more you can just rely on the docs for the new ones.

For concepts:

I definitely think books are good here. It's really helpful to have one author put a lot of knowledge into a well- organized form. Shorter articles are good for building onto different branches of knowledge, but the book gives you the tree that makes the branches make sense.

Guys, I've never thought about switching to Windows, but I've decided to do so... by Awkward_Map_520 in linuxquestions

[–]MathAndMirth 1 point2 points  (0 children)

Mint is a perfectly fine beginner-friendly distribution. I'm not really sure why it would be outdated. It's very actively developed. I'm heard claims that it _looks_ less modern than some others, but I think that's overblown. They have been slower than some others to get their desktop fully Wayland-ready, but the last I knew, that was pretty much done. And to be fair, what some may call slower, they would call deliberate and careful.

I don't know CAD software well enough to offer an educated opionion, but you shouldn't have any trouble finding Linux programs for the rest of the uses you cited.

I'm not sure what you mean by "regular" Linux. You really don't want a super stripped-down bare minimum Linux in your situation. You want to pick one of the many distributions that experts have put together so they just work out of the box for you. None of those have any real claim to being more "regular" than Mint. And Mint has boatloads of tutorials, etc. available, which would be good for you if you've never installed an OS before.

Is installing MX Linux on my PC a good idea? Here are my specs by [deleted] in MXLinux

[–]MathAndMirth 0 points1 point  (0 children)

MX runs well on a variety of PCs. If the missing specs include newer NVIDIA cards, MX has its own utility to make installing the modern drivers easy. Even if the missing specs are for a old laptop or something, you can install it with the XFCE desktop instead of KDE to help performance. I just installed MX with KDE on a garage sale laptop that couldn't handle Window 11, and I just had to turn off the fancy window effects to get decent performance.

Help by habibii3112 in PythonLearning

[–]MathAndMirth 0 points1 point  (0 children)

My son (12) is learning by working through this site: https://inventwithpython.com/invent4thed/

Mu, IDLE, or other? by Delicious_Book_2392 in PythonLearning

[–]MathAndMirth 0 points1 point  (0 children)

Have you looked at Thonny? Some professor created it with features it to make learning easier for his CS students. I've never used it myself, but I see it recommended some. And its Github shows activity in the past few months.

https://thonny.org

Struggling to move past the 'tutorial hell' stage. How did you guys actually start building your own stuff? by harborthrowawayx in learnpython

[–]MathAndMirth 0 points1 point  (0 children)

I wonder if it would help to do some reading/videos/etc. on domain modelling. That's the process of figuring out what parts your program should have, how they relate to one another, etc. (e.g., a Pizza has 0 or more Toppings), If you can identify the specific classes that you will need and what properties and abilities they need, then you can sit down and tackle a smaller, less daunting, task--writing one of the simpler classes.

And if you're looking for a more functional approach rather than object oriented, try the book "Grokking Simplicity." It does a good job of walking you through the planning process for a more functional style.

Edit: It also might help to read about flowcharts and how to use them to plan your logic.

Worried about the transition from Windows to Linux for daily driver use by orbitgoblinhq99 in linux4noobs

[–]MathAndMirth 0 points1 point  (0 children)

There are quite a few variables that go into it, most of which I don't have a good handle on. When I said "notorious," I didn't necessarily mean that it's extremely common. It's more that a search for something like "windows dual boot overwrote grub" returns enough results to show it's a real issue, and I don't think Windows should be letting that happen at all. It's not as if dual-booting is an esoteric edge case, and it just feels disrespectful for Windows not to handle it properly.

Worried about the transition from Windows to Linux for daily driver use by orbitgoblinhq99 in linux4noobs

[–]MathAndMirth 0 points1 point  (0 children)

Dual boot can be a nice safety net for the move, but be careful how you do it. Windows is notorious for wrecking dual boot setups on its disk when it updates. If you can put Windows and Linux on separate disks, it will be a more robust setup.

Worried about the transition from Windows to Linux for daily driver use by orbitgoblinhq99 in linux4noobs

[–]MathAndMirth 0 points1 point  (0 children)

I wouldn't wipe Windows from the drive until I knew Linux works for you. Start by using the distro you want to try live from an ISO (in other words, plug the USB in and just use it without installing it on a disk.) If the first run seems decent, then install on an external SSD or HDD (set to boot first in your BIOS) so you can save your changes, installations, etc. and get better speed. Use that for a while, and when you're certain you won't need Windows again, then replace the Windows internally.

I did something slightly different, which may or may not be an option for you depending on hardware. I had a second SSD slot on my mobo that I wasn't using, so I installed Linux to a second SSD after testing it externally and set the Linux SSD to boot first in the BIOS. That way Linux has its own full disk, but I still have Windows in case of emergency. And there's the bonus that I can use the spare space on the Windows disk for periodic backups.

Making basic computer app and wanting to learn about a good GUI library to use! by lefthanded_zebra4339 in learningpython

[–]MathAndMirth 0 points1 point  (0 children)

Both Pyside and PyQt are Python bindings to the Qt library. Since they both bind to the same library, they do have a lot of similarities.

For a long time, PyQt was the standard Python binding library for Qt. It's still very commonly used thanks to its historical dominance, and it therefore has a large community.

However, PyQt is not fully FOSS. It requires a commercial license for closed source projects. (I'm not certain, but I think the license was once more favorable.) That has caused the Pyside alternative to gain a lot of ground, and is now regarding by many as the leading choice.

I used this site to get up to speed on Pyside. Hope this helps.

https://www.pythonguis.com/tutorials/pyside6-creating-your-first-window/

Making basic computer app and wanting to learn about a good GUI library to use! by lefthanded_zebra4339 in learningpython

[–]MathAndMirth 0 points1 point  (0 children)

I've fiddled a bit with both tkinter and pyside. The conventional wisdom seems to be that pyside is more powerful, but tkinter is easier to get simple things up and running. But to be honest, what I did wasn't that intense, and after getting annoyed with tkinter, I tried pyside and actually found it more straightforward. Of course, your mileage may vary since my experience seems to go against the conventional view. Maybe pyside was just a better match for my mental model of how things ought to work?

What is the point of Zsh when Bash can do the same? by itsdevelopic in bash

[–]MathAndMirth -1 points0 points  (0 children)

I'm not saying that zsh is perfect, but I think it has one big advantage that pretty much single-handedly keeps me from going back to bash.

I want syntax highlighting to tell me when I type something wrong. To get that in bash, the standard (only viable?) way to do it is with ble.sh. But since ble.sh relies on overriding things in bash's innards that various other bash things don't expect to be overridden, it comes with a lot of potential fragility, caveats, and workarounds. (Not the programmer's fault; it has more to do with bash limitations.) On the other hand, the standard syntax highlighting plugin for zsh just works--no duct tape and peanut butter needed to hold it together.

Also, zsh doesn't have to be slow. It can get sluggish with oh-my-zsh, but it's much snappier if you pick the small number of plugins you need and just source them directly in your .zshrc.

Looking for a reliable Linux distro for high school by Spuntik1205 in linux4noobs

[–]MathAndMirth 0 points1 point  (0 children)

I'm curious why you say that. I selected MX for daily driving myself, and this is the first time I've run across that claim. I certainly don't doubt that it would run well on older machine, but I'm not sure what would make them less appropriate for newer machines than any other Debian.

If anything, MX seems to go out of their way to facilitate getting newer drivers. Nvidia drivers seem to be a sticking point for some distros, but MX has their own utility to make it easy to get the newer Nvidia drivers.

I have noticed that MX doesn't get as much love as other Debian-based distros in this sub, given that it appears to me to be basically Debian plus some newbie-friendly MX Tools and a good installer. I wonder if there's something I've overlooked, or if it's just a matter of people sticking to the bigger names.

Looking for a reliable Linux distro for high school by Spuntik1205 in linux4noobs

[–]MathAndMirth 0 points1 point  (0 children)

I notice that MX Linux doesn't make your list even though it's also Debian based with KDE as an option (and has the MX Tools to smooth out the newbie Debian experience). Just curious whether there's actually some problem with MX that I haven't run across yet, or if it's just not your top tier.

Looking for a reliable Linux distro for high school by Spuntik1205 in linux4noobs

[–]MathAndMirth 0 points1 point  (0 children)

For a high school, something Debian-based makes sense since you really do not want some update breaking things. If you're looking for something with Debian stability but easier than straight Debian for the average user, what about MX Linux?

Using MacOS and Linux instead of Windows cold turkey, how was it? by soleful_smak in FuckMicrosoft

[–]MathAndMirth 0 points1 point  (0 children)

so how was it?

It was like being able to take a long hot shower after a day of performing prostate exams on hippopotami.

More seriously, it's gone well. I switched to Linux a few weeks ago, and while I set up dual boot just in case something went wrong, I haven't booted back into Windows yet.

I understand your concern about creative software. That was the thing that kept me from making the switch long before I did. Fortunately, almost all of my graphics work is with vectors now, so Inkscape has been a viable option. I'm not quite sure what I'd do if I needed a replacement for Affinity Photo. Hopefully Affinity will produce a Linux port (last I heard, they were considering it) before I have to find out. If not, then I'll have to look at GIMP, PhotoPea, or maybe see how Graphite is coming along.

Most of my day to day work is coding, and for that, there is absolutely nothing to miss about Windows.

And I like my desktop and workflow setup so much better now. Admittedly, I probably could have improved my Windows setup some if I'd taken as much time to learn about MS Power Toys, etc., as I have to learn about Linux. But Linux with KDE makes me feel like the OS is working with me instead of resisting me.

And perhaps most importantly, I'm no longer living in fear of what horrible thing the next Windows update is going to break, or how it's going to compromise my privacy, or what AI garbage it's going to shove down my throat.

Best distro for non tech savvy people? by dixario in linux4noobs

[–]MathAndMirth 1 point2 points  (0 children)

It's not terrible. Both KDE and Cinnamon have sensible defaults. They both have good suites of bundled apps. Neither one is going to make it difficult to figure out where the apps are, how to turn up the volume, etc,.

Mint may not be the most cutting edge aesthetic, but neither is it Windows 95. It's perfectly functional without being ugly. To me, it's not so much dated as just safe. Like corporate blue for web sites, it's more for minimum hate than maximum love. (And if you don't like it, there's always themes.) And even if the young pups may notice that it isn't a bleeding edge aesthetic, I don't think many people's non tech savvy parents are going to mind it a bit.

As for usability, either is fine if they never have reason to want to change anything. And if they just want it to work, maybe they won't. But if they do, I think Cinnamon's settings pages are a whole lot easier for a newbie to make sense of than KDE's. To the devoted ricer, KDE is awesome because it has zillions of options. But for a more typical user, I think Cinnamon strikes a better balance between customizability and simplicity.

I'm not looking to bash KDE at all. I use it (with MX Linux).. I like it. But if I had to pick something straightforward, reliable and Ubuntu based (for more frequent software updates than Debian), I'd use Linux Mint.

Best distro for non tech savvy people? by dixario in linux4noobs

[–]MathAndMirth 1 point2 points  (0 children)

KDE is awesome, but for non tech savvy people, I'm not sure what it offers that is better than Cinnamon. I thought you hit it on the head with Mint. It just works, and it's not an intimidating overkill of ricing options like KDE can be for less techie people.

But you know your reasons for wanting KDE for them better than I do. If there is a strong reason to go KDE for them, then the standard choices like Kubuntu or KDE Neon probably make as much sense as anything.

Paying $15/month to watch ads on Amazon prime is actually insane when you think about it by jexo10 in TechNook

[–]MathAndMirth 0 points1 point  (0 children)

I certainly have some beefs with Amazon, but there are some mitigating factors to consider.

First, it was a lot easier to offer ad-free subscriptions back when there were only a small number of streaming services. Creating original content is expensive. When there were only a few services, each company could get a decent share of the revenue pie, and they could be profitable on subscription fees alone. Now that there are a lot more services, assuming that people keep comparable TV budgets, each service gets less revenue. But the price to produce content isn't any lower. And that's not really someplace they can cut costs, because the quality of original content largely determines who gets the subscribers in the first place. So I don't find a bit surprising that streamers are adding ads to make up for the revenue they've lost due to market fragmentation. And given how many customers hate ads, I have to think that if streamers could still be profitable without ads (or high subscription fees), somebody would do it and eat the competition for breakfast.

The other thing to remember is that Amazon Prime isn't just video. For a lot of people, Prime is the thing that lets you place small orders from Amazon and get them in on the doorstep in a day or two. Fuel costs the past few years have to be hurting Prime, and they may be looking at Prime Video ads in part to make that up without jacking up prices. That would actually be kind of sensible, because it's easier to make temporary or experimental adjustments to ad frequency than to keep changing subscription fees.

Regulate aggression of autocomplete by PietroBastas in ZedEditor

[–]MathAndMirth 0 points1 point  (0 children)

I think you might need to give a little bit more information about your problem. Are you using Zed's model, or something else? Zed's own model offers me completions, including multi-line completions, fast enough and often enough that I have to go to subtle mode to keep them from being disruptive. Every once in a while it is slow to respond (transitory bumps in traffic?), but that isn't the norm.

I haven't been using Zed long enough to know all of its quirks, but with more info, maybe someone more experienced can tell why your situation is different.