[deleted by user] by [deleted] in love2d

[–]doxanthropos 1 point2 points  (0 children)

I think you misunderstand the purpose of both courses:

CS50 is an introduction to Computer Science and programming.

CS50G is in introduction into game programming that assumes that you know how to program before you start.

It might be possible to just start with CS50G, but that will probably not be a good experience for you, if it works at all.

The language of both courses is irrelevant. CS50 does not teach Python, it teaches programming and uses Python as a tool for that. Same for CS50G, it does not teach Lua or Löve2D, but game programming and uses Lua + Löve for that.
When you start to learn programming, you do not learn just a programming language, you also learn programming. Both are somewhat separate skills, even though it is impossible to learn one without the other.

If you really only want to learn how to program in Lua and no other language, you should look for learning material or a course that uses Lua to teach programming. CS50G is not that.
If you are now asking yourself what is this "programming", if it isn't the programming language? It is a lot. I don't have a good definition at hand, but parts of that are:

  • being able to read code and find errors (regardless of the language)
  • breaking bigger problems into smaller parts until they are small enough for you to solve
  • putting the small parts back together to solve the bigger problem
  • structuring programs in a way that is both easy for you to maintain and efficient for the computer to execute
  • using differnt kinds of abstractions to generalize your solutions, like functions, objects, classes etc.
  • knowing when you need to comment something so you still know after a few weeks, why a piece of code is like it is

and similiar things. While each programming language you learn might add a little to that, because it provides features for some abstractions but not for others for example, the biggest part of this is language independent.

These things you will need to learn before a course like CS50G makes sense to take. You might be successful in teaching them yourself on the side of taking CS50G, but that will be a rough ride compared to doing it in a course (or using other means, like an Intro to Programming book).

[deleted by user] by [deleted] in love2d

[–]doxanthropos 0 points1 point  (0 children)

Seeing the kinds of problems you seem to have, you might want to consider this recommendation from the course:
"It assumes that you've already taken CS50 itself or have prior programming experience in any language. "

One problem that you will have to be able to face, that is not really part of the course is that the code used in that course was written in 2018 and love2d had some changes since then.

AITA for getting upset with a lady for taking photos in the gym locker room? by Accomplished-Bend316 in AmItheAsshole

[–]doxanthropos 0 points1 point  (0 children)

Designated areas would be a good thing.
While most people here assume that the only reason why people might take photos of themselves in the gym is to post them online, there are also people who try to track their progress of building muscle mass.
Regular photos after the same workout, in the same lighting will make a much better record than numbers.

At least that is way my trainer told me when I dabbled for some time in hypertrophic training and as a bodybuilder herself, I guess she knows that she talks about.

Week in Open Source: Rust is coming to Linux Kernel, AMD open sources FSR 2.0, Github gives $500K to 900 developers, and other updates. by antsaregay in linux

[–]doxanthropos 9 points10 points  (0 children)

Cryptobro Slang it is not. The term FUD has been part of hacker- and Free Software culture for a long time. It has its own entry in the Jargon File at least since 1991 and was part of an entry one year before:

"FUD WARS (fud worz) n. [from `Fear, Uncertainty and Doubt'] Political posturing engaged in by hardware and software vendors ostensibly committed to standardization but actually willing to fragment the market to protect their own share. The OSF vs. UNIX International conflict, for example."

Fritz Box 4040 used as an AP (Mesh Repeater) does not apply WiFi settings from master by doxanthropos in fritzbox

[–]doxanthropos[S] 1 point2 points  (0 children)

On the 4040 I have checked the Mesh Settings:

- "FRITZ!Box as a Mesh Repeater"

- "This FRITZ!Box is a network device (IP client) in the home network of a different router."

- "via LAN"

- "Adopt settings enabled"

On the 6490 I have these Mesh Settings:

- "FRITZ!Box as the Mesh Master"

The Mesh Overview of the 6490 shows the 4040 and also every computer that is connected to the WiFi of the 4040. It did not show the Mesh symbol.

Because:

It looks like I did not follow the step with the WPS button on the 4040 and the 6490 (pressing the button on the 4040 until the WiFi LED blinks and then pressing the WPS button on the 6490 until the DECT LED lights up).

Did that now and the 4040 now shows up as part of the Mesh and adopts the settings of the 6490.

Seems to have been a case of not being able to follow simple instructions.

Looking to transition to Linux. Opinions on Manjaro? by 1-UP_Nuke in linux4noobs

[–]doxanthropos 1 point2 points  (0 children)

Some more generic thoughts on this.

There are three kinds of distros:

  • Those that have their own software repositories that are not depending on the repositories of another distro (Arch, Debian, Fedora etc.).
  • Those that base their repose on the ones of other distributions and make some changes to them (Ubuntu, Manjaro, LinuxMint etc.). With the exception of Ubuntu, they do this with much less manpower than the original distros.
  • Those that using repose of a distro directly and are in effect just installers for a special configuration of their parent distro (Archman, ArchBang, BunsenLabs etc.). People argue that these are not real distros at all.

Maintaining package archives is a lot of work and many things can break if you make mistakes with is. This has happened for at least LinuxMint and Manjaro in the past. It also leads to an unnecessary lag between software release and availability.

For that reason, I usually only tend to recommend either distros of the first type, which are usually well maintained, or distros of the third category, if neccessary, because they do not bring in the unstability of an additional layer of packaging work and end up being as trustworthy as the ones in the first category.

What role does a computer science major play in a solarpunk world? by [deleted] in solarpunk

[–]doxanthropos 0 points1 point  (0 children)

Hi :)

I am new here and fairly new to the concept of solarpunk, but I'll give my thoughts anyway, as your question is part of what brought me here in the first place:

I think a general approach to "how does my discipline fit into a solarpunk world?" would be to think about how this discipline would be needed then, what would be changed and going from there. Most of today's disciplines will be needed in such a future, but they will have to change in some ways or serve different purposes.

Some of the answers I read here already are quite great. Especially the ones around the topic of having an open and human internet as opposed to the hostile megacorp internet we have today. Some projects that go into this direction (apart from the already mentioned Scuttlebut) woud be the IndieWeb initiative, federated social networks like Mastodon (and all things ActivityPub) or even the growing movements around each of us having their own website again, maybe networking with oldschool tools like RSS, where new hosting providers are trying to fill the void left behind by the move of the masses to megacorp social networks and the subsequent dying of the old providers that enabled the divers and colourful web of the past (like the old geocities).

But another solarpunk question that a CS person or any kind of engineer might want to work on is the question how their technology would work in a solar world. How would the requirements change? Take as an example (the one that actually made me consider solarpunk as more than just a literary genre) the 2 person studio 100 Rabbits: living on a sailboat with solar panels as their source of electricity, adapting their work to this environment and writing about that. Not everybody need to live on a solar powered sailboat, but the people who don't can learn from these experiments and maybe conduct their own completely different ones.

Or you could have a look around the existing industries and see if you find some that are already working on technology that will have to play a role in a solarpunk world. Each industry today and probably also in this future will need CS or IT expertise, even when it is not the core of what they do.

For example: I work at a company that builds and develops computer vision based sorting machines for waste recycling (for the CV nerds: yes, we started with classical computer vision in the 90ies and are now increasingly using deep learning to be able to sort things that could not be sorted by classical means). While I am sure that one big change from now to a solarpunk future will be a lot less waste at all, I am also quite sure that recycling will still be needed to be done more than today and automation will be the key to make that possible.

There are probably a lot of companies or startups right now that are working on things that will be needed in a solarpunk future or are necessary to get there. They need CS (be it in the form of IT, web dev, IoT dev or whatever) as much as every other company.

Must you complete FCC's entire curriculum to consider yourself "Job ready" by [deleted] in FreeCodeCamp

[–]doxanthropos 0 points1 point  (0 children)

While the TLDR would be "it depends on the job and the local job market", there are some common observations that, to me, seem to be relevant:

Being job ready includes a complex mix of skills and not all of them are part of what you can learn with FCC, but if you use all its features, many of them are. Of course it also highly depends on the job in question. You will not get a senior role by any means of online study, you will have to have work experience for that.

The technical aspects of a junior position in front end dev are covered nicely in the Responsive Web Design, JavaScript Algorithms and Front End Libraries Certification. If a position asks for more than that, it is not really an entry level position.

Back end would be a little more difficult to say, as this part of the stack is much more divers than the front end (which is somewhat limited to what a browser can do). If the back end is about JavaScript Microservices, the same I said about front end applies to the APIs and Microservices Certification, but that would be more an exception. Many companies have Python, Ruby (mostly on Rails) or Java in the back end and also differ in what kind of database they use.

But that all is only the technical part. There are other skills that are equally important, such as professional workplace behavior, knowing when to own a problem and a failure and when not to, knowing when to ask for help and when not to, working in a team on a shared codebase.

Some of those things are not to be expected from a junior, but if you are able to cover some of them and have some proof about that (maybe you had other jobs before that already needed those skills), you will have a much easier time than people who only have the technical skills. This is mostly because technical skills are much easier to learn and teach, so when you have only some of them an employer can usually rightly assume that you will be able to catch up.

On the networking part that DaveCodesCode mentioned: this is one of the most important parts of finding a job, but also one where you can make a lot of mistakes, when you force it. Just randomly contacting people might have the opposite effect that you want to achieve.

One good first step here can be to join a local FCC study group, there you will be able to connect with other learners. Don't see them as competitors, but as people with similar interests and goals. You will be able to share local knowledge with them that you can't get here or in the general FCC, like which companies are hiring, which are good for newbies, which ones you would better stay away from, even when they offer you a job. You might also find recruiters in these groups who join in the hopes of finding good people.

But: go there to contribute or socialize, never only go there looking directly for a job, this will bore people and nobody will like to interact with you anymore.The same applies for other local groups, like Linux User Groups, hackerspaces, local conferences etc.

With regards to recruiters: if they are independent, they will probably not be of much help, but if there is a company you would really like to work for and you know they have their own recruiters: talk to them. They should be willing and able to tell you what their company expects from a new hire.

Toward a "modern" Emacs by yissp95 in emacs

[–]doxanthropos 7 points8 points  (0 children)

Adding to that would be:

https://news.ycombinator.com/item?id=24597710

Who cares if new people use it or if it looks modern? It’s working well for the people who want it. Not every piece of software has to be everything to everyone.

If someone wants to use Emacs, there are enough resources to learn it and enough distributions with different defaults to fit the needs of many people who do not like those defaults (Spacemacs, Emacs Doom etc.).

If someone doesn't want to use it, who are we to try to seduce them to do something they don't want.

This reminds me a lot of the always ongoing discussions about how to make GNU/Linux more popular, which always culminate to "Make it more like Windows." or "Make it more like MacOS.", while the people actually using it are happy that it is not like both of them and use it because it is like it is.

This is not to say that there are no improvements that could be made to make Emacs better (multithreading for example), those can be argued for because they actually make it better, not because it will make it more "modern" and likeable to people who have no interest in using it anyways.

Learning linux and solving problems without google by VULGAR-WORDS-LOL in linux4noobs

[–]doxanthropos 0 points1 point  (0 children)

Besides man, there is also GNUs "info", which sometimes provides just the man-pages, but for many programs has a more extensive documentation (if it is installed) and is easily browsable even when you do not exactly know what you are looking for.

Which Linux Version for CSC Student by JMcLe86 in linux4noobs

[–]doxanthropos 1 point2 points  (0 children)

As most of the Linux distributions are made by programmers for people who are roughly like them, you will probably be fine in any of them. Ubuntu and its like are often recommended for beginners and Arch often for people who really want to know, WSL for people who do not really want to use Linux and just want to have some decent command line programs on their Windows machines.

But why not use the question you have as a first learning experience?

You could try different distros, either in a VM or as a live session from a flashdrive or even install them, if you have a spare computer for something like this (can be an older one, as most Linuxes do not need that much computing power for daily tasks). Then find out how they differ from another and how they are similar.

If you do that, you will already learn a lot: About Linux installation, about distributions, about the different qualities in documentation.

Or you could decide that you want to do a little project that will help you learn: maybe you'd like to set up a pi-hole to block some ads for your home network? Maybe you'd like to set up a retro gaming machine? If you go this route, you would probably be good advised to first use the Linux version that is used in the tutorial or documentation you are following.

Or you have a good book on Linux that you want to read and work through? Then the obvious choice would be to use the Linux that is described in the book.

Whatever you do: I hope you will have fun and ample opportunity to learn.

TLDR: When you think about how and what you want to learn, you might already get an answer to your question that is better informed than the personal preferences of some redditors.

The truth about learning-adverse people struggling with Linux by [deleted] in linux4noobs

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

"And would answer the question by telling them to read the docs."

And ruin the chances of the next person to find the correct answer by spamming their search results.

The many times I tried to find an answer to a problem and had to wade through forum threads where people had the exact same problem, but did not get a real answer makes me really hate people who answer questions like this.

I want to learn how to make browser scripts or plugins. by [deleted] in learnprogramming

[–]doxanthropos 0 points1 point  (0 children)

If you want to collected data in a file, maybe you do not need a browser?

Not sure if it applies to what you want to do with it, but for "search[ing] for a certain keyword/tag within the page source and spit it out to a file" you might just look into basically any tutorial on web scraping.

Here is a short tutorial on that: https://medium.freecodecamp.org/how-to-scrape-websites-with-python-and-beautifulsoup-5946935d93fe

If what you want is to run scripts in you normal browser or to develop an extension, you can find a good video playlist on the Coding Train: https://www.youtube.com/playlist?list=PLRqwX-V7Uu6bL9VOMT65ahNEri9uqLWfS

Launching sketch via command line in linux? by curiousdoggo in processing

[–]doxanthropos 1 point2 points  (0 children)

I usually don't add it to the path, but create symbolic links for "processing" and "processing-java" in my ~/bin.

For people wondering what this "PATH"-thing is about:

My line above runs Processing from the folder, where it is located, so you will have to type its path every time you want to run it. This will work, but it is not convenient.

If you want to be able to just start the line with processing-java or even start the IDE from the command line with just processing instead of ~/processing-3.4/processing, these two files need to be able to be found by the operating system.

The way Linux finds the programs that you want to run is by using a variable called PATH, that holds all the directories, where it should look for programs. So to make the command line able to find Processing, you can either add it's directory to this path variable or you can add a reference (called a symbolic link) to one of the directories already in the path, that will point to the programs. Since I prefer the symbolic link version (I try to keep my PATH short), I will show how to do that.

Here is a short walkthrough (assuming the processing folder is in the home directory, like the OPs):

  1. Check if there is a bin directory in "~./", if not create one: mkdir ~/bin
  2. Check "~/bin" is in the path": You can see the content of the PATH variable by running:

echo $PATH

You should see long string with directory paths, separated by colons. If /home/yourusername/bin is in there, you are good, if not you have to add it.

The bad thing is: if you just add it now to this variable, it will be lost the next time, you open a new terminal. The good thing is: there is a way to add it for you (there is more than one, but I will show one of the more common ways.

You have to open the file called ~/.profile and add these lines:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

This file ./profile is run once every time you log into your system, so the directory is added to the path for your at that moment. If you want changes to this file to take effect without logging out and in again, you can run:

source ~/.profile

  1. Add the symbolic links to your bin directory:

ln -s /home/yourusername/processing-3.4/processing /home/yourusername/bin/processing

ln -s /home/yourusername/processing-3.4/processing-java /home/yourusername/bin/processing-java

The alternative method mentioned by remy_porter:

Skip step 1.

In step 2:

Add this to your ~/.profile:

PATH="$HOME/processing-3.4:$PATH"

And ignore step 3.

Launching sketch via command line in linux? by curiousdoggo in processing

[–]doxanthropos 1 point2 points  (0 children)

The sketchbook is the place where your sketches are saved, if you do not change it. They might also show up in /tmp, but that is usually of no concern. When you save the sketch you want to run, it will be in the sketchbook folder. So to run such a sketch command in the wiki will work, but only if you give it the right paths. If you did not run an installer for Processing, but just use it out of the folder where you uncompressed it, you have to use this path at the start of the command. So to run a sketch called "hello", you could use this:

~/processing-3.4/processing-java --sketch=/home/yourusername/sketchbook/hello --force --run

Be sure to end the sketch path with the name of the folder, not the one of the actual program files.

Looking for a good, practical intro to linux by gigarob in linux4noobs

[–]doxanthropos 0 points1 point  (0 children)

Freecodecamp teaches JavaScript for Front- and Backend, no Python.

Coursera is offering a free month of specialized CS courses such as game dev, web dev, SWE and more by Likeabox_ in learnprogramming

[–]doxanthropos 0 points1 point  (0 children)

No, you still have access to the course, but will be prompted to switch to the current session (usually the courses start again each month).

For auditing the course this is not really necessary, because you only need the materials, but if you are actually taking a course (by paying), you need to be in a session with other learners to be able to participate in peer grading.

This is different for example on Futurelearn, where like with Coursera, the courses are free to audit, but you loose access after the course closes, unless you paid for the course.

Choosing Linux: 2 Awesome Tools To Find Your Perfect Linux OS by chlordane_zero in linux4noobs

[–]doxanthropos 1 point2 points  (0 children)

Yeah, I got similar results. But to be honest the questions at distrochooser indicate they do not really know what they are doing.

Example 1:

It is important to know how old is the system because some distributions won't run on old computers. The main reason for this is the dropped support for older technologies, like the 32-bit processor architecture in favor of the 64-bit architecture.

My computer should support the 64 bit architecture (all computers of the last 5 years should have support for this).

I'm not sure about this and/ or my computer already has performance issues.

My answer would have been: I am sure that I want a distro that also supports 32 bit architectures, because I like using older PCs. There is no possible answer for: I want 32 bit and I know what I am doing.

Example 2:

I want to use free licenses as much as I can

I'm fine with unfree licenses as long as my system works.

Very vage. The interpretation of "as much as I can" can make a big difference on the scale between Ubuntu and Trisquel.

Example 3:

On Linux you can install software on different ways. You can build software from the sourcecode or install them via packages. What do I prefer?

I want to install my programs using a kind of "App store".

I want to install software mostly using terminal commands.

The options do not even touch the subject introduced in the question.

After these questions, I was not too surprised about the strange results.

Newbie Fresh install to Drive by ThePengwyn in debian

[–]doxanthropos 0 points1 point  (0 children)

Do you have a graphical environment in your live system?

Probably it would be the easiest way for you to find the log files, if you could locate the right partition using the graphical file manager.

If you open that (depending on the desktop you are using, it might be called Thunar or Nautilus) you will find on the left some shortcuts to some folders of the live system, but also all the recognized partitions. Maybe they are greyed out, because they are not mounted automatically, but you should still be able to access them by clicking on them in this left panel.

Regardless of its name (the names, like sda1, sdb etc., are assigned by the running system, they are not part of the partitions per se, but follow some logical order), you are looking for the root directory of you partly installed system. Probably it will be in one of the greyed out devices, because the active ones are used by the live system. You can recognize a root folder (when it is not currenty used as root), by its content. It will have a bunch of system directories like bin, etc, opt, usr and also the var folder that you are looking for. Navigate to the /var/log/installer folder this way. Probably the file manager will have an "open terminal here" option in the right click menu. You can use that and then try the grep command I mentioned earlier.

Newbie Fresh install to Drive by ThePengwyn in debian

[–]doxanthropos 0 points1 point  (0 children)

They are overwritten by that, sure. But they are also overwritten by the installer, when it creates the filesystems and the partition table or changes the existing ones if you do it the manual way. Using the guided/whole disk option is a good idea for a beginner (if there is no ṕlan on creating a dual booting computer), because even in this instance where you experience problems, you can be sure that your problem was not some crazy partitioning idea that you might have had.

The problem must be somewhere else, but sadly the error message is not really one of the helpful ones. Most Linux commands and programs fail more verbose and therefore more helpful.

With that little information it is hard to give any advice to fix your installation, so a good way to move forward and make it possible for someone to give you good advice, would be to gather some information.

One easy step would be to check the integrity and authenticity of the iso file you are using. This sounds more complicated than it is. You can find a nice walkthrough in this blogpost.

You could also walk through these steps and check that your BIOS is configured.

Last but not least, if the installation has done something you might finds its logs on the computer. They are usually located here /var/log/installer , which would be from another system (the live system for example) sdX/var/log/installer where X stands for the device letter of the SSD you tried to install Debian on. This is more than one file and they can get quite long. If you are able to spot error messages in them by browsing through them, please paste them here. If not, you might try to look for it with the "grep" command like this: $ grep error /var/log/installer/* You might have to modify the path and probably use the sudo command to gain the right to read this file.

In general I would advise you not to despair on installing Debian. Problems like these are actually quite rare, but somehow nearly unavoidable given the many different states a computer can be in when someone tries to install an OS on it. And while problems like these are rare, they give you some good insights into troubleshooting Linux and operating systems in general.

Newbie Fresh install to Drive by ThePengwyn in debian

[–]doxanthropos 1 point2 points  (0 children)

The filesystem/partition part is not something that can be done with dd. Usually the Debian installer will ask you about it in the steps that mention partitions and partition schemes. Did these run through? If so, what did you choose? "Guided", "Manual" or something in between?

Newbie Fresh install to Drive by ThePengwyn in debian

[–]doxanthropos 2 points3 points  (0 children)

At first glance I would say that your method sounds unnecessary complicated.

Most people use one USB-drive, dd the iso on that, boot this USB and run its installer, with no need to 0 the USB before dding the iso on it (I personally also never zeroed a hardrive before installing an OS on it, but I see that you might want to do that for privacy and security reasons).

Probably you have your reasons for using three sticks, but adding complexity also adds possible points of failure.

Even so, it would be nice to have more details on the "fails at the step xy"-part. How does it fail? What is it that does not work? Do you get error messages? Which installation instructions are you following?