You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ and live coded on Twitch: https://www.twitch.tv/simuleios.
15
15
If you would like to communicate more directly, please feel free to go to our discord: https://discord.gg/Pr2E9S6.
16
16
17
17
18
-
Note that the this project is essentially a book about algorithms collaboratively written by an online community.
18
+
Note that this project is essentially a book about algorithms collaboratively written by an online community.
19
19
Fortunately, there are a lot of algorithms out there, which means that there is a lot of content material available.
20
20
Unfortunately, this means that we will probably never cover every algorithm ever created and instead need to focus on what the community sees as useful and necessary.
21
21
That said, we'll still cover a few algorithms for fun that have very little, if any practical purpose.
Copy file name to clipboardExpand all lines: contents/gaussian_elimination/gaussian_elimination.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -211,11 +211,11 @@ Here I should point out that Gaussian elimination makes sense from a purely anal
211
211
For small systems of equations, it's relatively straightforward to do this method by hand; however, for large systems, this \(of course\) become tedious and we will need to find an appropriate numerical solution.
212
212
For this reason, I have split this section into two parts. One will cover the analytical framework, and the other will cover an algorithm you can write in your favorite programming language.
213
213
214
-
In the end, reducing large systems of equations boils down to a game you play on a seemingly random matrix where you have the following moves available:
214
+
In the end, reducing large systems of equations boils down to a game you play on a seemingly random matrix with 3 possible moves. You can:
215
215
216
-
1.You can swap any two rows
217
-
2.You can multiply any row by a non-zero scale value
218
-
3.You can add any row to a multiple of any other row
216
+
1. swap any two rows
217
+
2. multiply any row by a non-zero scale value
218
+
3. add any row to a multiple of any other row
219
219
220
220
That's it.
221
221
Before continuing, I suggest you try to recreate the row echelon matrix we made above.
Copy file name to clipboardExpand all lines: contents/git_and_version_control/git_and_version_control.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -276,12 +276,12 @@ The easiest way to do this (in my opinion) can be found here: [https://help.gith
276
276
Note that there are a lot of good tools for this and everyone has their favorite choice.
277
277
I don't expect for too many users to run into merge conflicts while working with the Algorithm Archive, so I will omit much more discussion here, but let me know if you think I should cover this in more detail.
278
278
It's an incredibly difficult aspect of using git and will drive you nuts the first tie you see it, but after that, it will be much more straightforward.
279
-
Also: let me know if there's any tools you like, and I'll add them to this guide here.
279
+
Also, let me know if there's any tools you like, and I'll add them to this guide here.
280
280
281
281
### Interacting with GitHub
282
282
283
283
To this point, we have introduced the concept of `remote`s and how to set them up, but we have not discussed how to interact with them.
284
-
For the most part, there are only a few commands to keep in mind. the easiest one to explain is
284
+
For the most part, there are only a few commands to keep in mind. The easiest one to explain is
285
285
286
286
```
287
287
git push
@@ -349,14 +349,14 @@ One way to reverse the commit completely is with
349
349
git revert commit
350
350
```
351
351
352
-
where`commit` is whatever commit you want to undo from your `git log`.
352
+
Where`commit` is whatever commit you want to undo from your `git log`.
353
353
Assuming you are working with a small team and don't mind having a somewhat dirty commit history where your mistakes haunt you forever in your `git log`, this is fine; however, if you want to remove the commit completely, you might need to think about using another command:
354
354
355
355
```
356
356
git rebase
357
357
```
358
358
359
-
the problem is that `git rebase` is complicated and could potentially destroy your codebase if it's used inappropriately.
359
+
The problem is that `git rebase` is complicated and could potentially destroy your codebase if it's used inappropriately.
360
360
Because of this, I often just live with my mistakes; however, in rare cases, having a clean `git log` is incredibly important.
361
361
I am not a git magician (yet), so I will not delve into what is essentially black magic to me. Instead, I'll link a guide: [https://git-scm.com/book/en/v2/Git-Branching-Rebasing](https://git-scm.com/book/en/v2/Git-Branching-Rebasing).
Copy file name to clipboardExpand all lines: contents/my_introduction_to_hobby_programming/my_introduction_to_hobby_programming.md
+5-5
Original file line number
Diff line number
Diff line change
@@ -20,19 +20,19 @@ Remember how I said I couldn't get the virus software to work on my computer? Ye
20
20
21
21
I don't remember the exact order, but I knew the key players were there: Ubuntu, Mint, Fedora, Debian, and Arch. Now, here's where my years of gaming experience came in. I personified each distribution as a class in a game world. Ubuntu was the easy to use axe-wielding warrior that would get the job done. Fedora was the Archer in the back with a feather in his cap and a quick quip for everything. Debian was the grandmotherly spellcaster just trying to keep everyone alive. Then there was Arch, the one who rushed into combat without any armor and uses only the environment as a weapon.
22
22
23
-
Which one did I choose? Arch. I've always been a fan of playing the underdog characters. In fact, when I looked up what made Arch Arch, I found the [Archwiki](https://wiki.Archlinux.org/), which was absolutely beautiful and filled with any information I could ever want to know about the distribution, including a page on ["The Arch Way"](https://wiki.Archlinux.org/index.php/Arch_Linux#Principles) -- Which now redirects to a page about Archlinux principles instead. After reading through it, there was not a single shadow of a doubt in my mind. Arch was the distribution for me.
23
+
Which one did I choose? Arch. I've always been a fan of playing the underdog characters. In fact, when I looked up what made Arch Arch, I found the [Archwiki](https://wiki.Archlinux.org/), which was absolutely beautiful and filled with any information I could ever want to know about the distribution, including a page on ["The Arch Way"](https://wiki.Archlinux.org/index.php/Arch_Linux#Principles) -- Which now redirects to a page about Archlinux principles instead. After reading through it, there was not a single shadow of a doubt in my mind. Arch was the distribution for me.
24
24
25
25
In hindsight, this could have been the most disastrous decision of my life. I hope that at this point, you understand how bad I was with computers, and a slow internet connection didn't help. The next day, I went to the store and bought a 25 pack of writable DVD's. So now for the hard part: Installation.
26
26
27
27
#### Step 1: Burning to a disk
28
28
29
-
Now, I know many of you reading think this is an easy thing to do. In fact, I also currently think it's an easy thing to do. Back then, though, it was nearly impossible. I wasted 3-4 DVD's backing up my Windows set-up, just in case. Then I wasted another 15 trying to figure out what to do. At first, I just copied the Archiso onto the disk. That obviously didn't work. It took me ~5 hours to realize that *burning* to a disk was different than simply dragging and dropping files. I then needed to figure out how to do the burning with Windows Vista. By the time I figured this out, nearly my entire stack of DVD's was gone. Oh well, lessons learned, right?
29
+
Now, I know many of you reading think this is an easy thing to do. In fact, I also currently think it's an easy thing to do. Back then, though, it was nearly impossible. I wasted 3-4 DVD's backing up my Windows set-up, just in case. Then I wasted another 15 trying to figure out what to do. At first, I just copied the Archiso onto the disk. That obviously didn't work. It took me ~5 hours to realize that *burning* to a disk was different from simply dragging and dropping files. I then needed to figure out how to do the burning with Windows Vista. By the time I figured this out, nearly my entire stack of DVD's was gone. Oh well, lessons learned, right?
30
30
31
31
#### Step 2: Just type "root"
32
32
33
33
After the disk burning fiasco, I thought to myself, *Alright. It'll only get easier from here, right?* Nope. I booted up the Archiso and up popped a prompt talking about how to install Arch. I don't remember what it said exactly, but I know it mentioned that if you wanted to install Arch on a "kerosene-powered cheese grater" that you should consult the wiki. Now, here's the thing: for anyone else, this would just be an idle quip -- something to chuckle at before moving on, but I was not able to move past this prompt. Right under it was a rather surprising adversary, the phrase `Archiso login:` with a blinking cursor.
34
34
35
-
In my head, I knew what this meant. I needed to create my username, right? So I tried putting in what I wanted my username to be. No luck. I tried any number of different combinations of letters and characters. I even tried our wifi password. Nothing. I tried re-burning the disk a few more times, but I was still completely lost. What did they want? What was I supposed to type to move forward with the installation? I couldn't figure it out, and after hours of sitting there, looking at a blinking prompt, I started wondering if my computer was actually a kerosene-powered cheese grater and consulted the wiki, but even that wasn't particularly clear. So I googled some more, and then some more and more. Somehow, I stumbled onto a page that gave me the answer -- the magical password that would allow me access to the Arch installer:
35
+
In my head, I knew what this meant. I needed to create my username, right? So I tried putting in what I wanted my username to be. No luck. I tried any number of different combinations of letters and characters. I even tried our Wi-Fi password. Nothing. I tried re-burning the disk a few more times, but I was still completely lost. What did they want? What was I supposed to type to move forward with the installation? I couldn't figure it out, and after hours of sitting there, looking at a blinking prompt, I started wondering if my computer was actually a kerosene-powered cheese grater and consulted the wiki, but even that wasn't particularly clear. So I googled some more, and then some more and more. Somehow, I stumbled onto a page that gave me the answer -- the magical password that would allow me access to the Arch installer:
36
36
37
37
**root**
38
38
@@ -50,7 +50,7 @@ Truth be told, I learned a lot at this stage of the installation, including moun
50
50
51
51
In the middle of the installation, when all the packages were popping up, I remember getting a very particular error under the acronym DRDY. I didn't know what this meant. In fact, I don't think very many people did. The error said it was fatal, so I restarted the install from scratch. I got the same error, but this time in a different place, so I did the install again. And then again. And then again. I repeated the installation so many times that I had memorized every last part from start to finish. I had read all the guides online, and yet I was still getting that darned error! DRDY. What could it mean?
52
52
53
-
Well, I didn't know, but at that point, it was late at night and I was a bit delirious. I phonetically sounded out the error and realized it sounded like the word "dirty." I figured this meant that the hard drive was dirty, so I unplugged it, blew on the socket, and plugged it back in. No more error.
53
+
Well, I didn't know, but at that point, it was late at night and I was a bit delirious. I phonetically sounded out the error and realized it sounded like the word "dirty." I figured this meant that the hard drive was dirty, so I unplugged it, blew on the socket, and plugged it back in. No more error.
54
54
55
55
To this day, I don't know how or why this worked.
56
56
@@ -64,6 +64,6 @@ Blitz login:
64
64
65
65
The same as I saw in the installation before. Except this time, I didn't sit there waiting for hours, trying to figure out some password to enter my system. I simply entered my moniker and got to setting up my system.
66
66
67
-
I'll be honest, even though this happened almost a decade ago, it is burned into my head as one of the best learning experiences I have ever had. I am sure many, many people would have found it incredibly frustrating. They would have thrown their computer at the wall, exclaiming, "What am I supposed to do?" For me, though, it was captivating. I would never see my computer in the same way again and to this day when I pop open a terminal, I cannot help but smile a little bit.
67
+
I'll be honest, even though this happened almost a decade ago, it is burned into my head as one of the best learning experiences I have ever had. I am sure many, many people would have found it incredibly frustrating. They would have thrown their computer at the wall, exclaiming, "What am I supposed to do?" For me, though, it was captivating. I would never see my computer in the same way again and to this day when I pop open a terminal, I cannot help but smile a little.
68
68
69
69
Basically, since the first time I was able to directly interact with my computer, I have been captivated with the idea, and though I was not able use the knowledge until much later in my life, it stuck with me and definitely shaped my perspective of the world.
0 commit comments