Skip to content

fix grammar #302

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 10 commits into from
Sep 15, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ Michal Hanajik
<br>
Bendik Samseth
<br>
mukundan314
<br>
Trashtalk
<br>
Cyrus Burt
Cyrus Burt
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ and live coded on Twitch: https://www.twitch.tv/simuleios.
If you would like to communicate more directly, please feel free to go to our discord: https://discord.gg/Pr2E9S6.


Note that the this project is essentially a book about algorithms collaboratively written by an online community.
Note that this project is essentially a book about algorithms collaboratively written by an online community.
Fortunately, there are a lot of algorithms out there, which means that there is a lot of content material available.
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.
That said, we'll still cover a few algorithms for fun that have very little, if any practical purpose.
Expand Down
8 changes: 4 additions & 4 deletions contents/gaussian_elimination/gaussian_elimination.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,11 +211,11 @@ Here I should point out that Gaussian elimination makes sense from a purely anal
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.
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.

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:
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:

1. You can swap any two rows
2. You can multiply any row by a non-zero scale value
3. You can add any row to a multiple of any other row
1. swap any two rows
2. multiply any row by a non-zero scale value
3. add any row to a multiple of any other row
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We are both technically incorrect here. I should have ended each of my sentences; however, with this new structure, the list is a long run-on sentence. We can change the above sentence to:

"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:"

Then the sentence would make sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

changed it


That's it.
Before continuing, I suggest you try to recreate the row echelon matrix we made above.
Expand Down
8 changes: 4 additions & 4 deletions contents/git_and_version_control/git_and_version_control.md
Original file line number Diff line number Diff line change
Expand Up @@ -276,12 +276,12 @@ The easiest way to do this (in my opinion) can be found here: [https://help.gith
Note that there are a lot of good tools for this and everyone has their favorite choice.
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.
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.
Also: let me know if there's any tools you like, and I'll add them to this guide here.
Also, let me know if there's any tools you like, and I'll add them to this guide here.

### Interacting with GitHub

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.
For the most part, there are only a few commands to keep in mind. the easiest one to explain is
For the most part, there are only a few commands to keep in mind. The easiest one to explain is

```
git push
Expand Down Expand Up @@ -349,14 +349,14 @@ One way to reverse the commit completely is with
git revert commit
```

where `commit` is whatever commit you want to undo from your `git log`.
Where `commit` is whatever commit you want to undo from your `git log`.
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:

```
git rebase
```

the problem is that `git rebase` is complicated and could potentially destroy your codebase if it's used inappropriately.
The problem is that `git rebase` is complicated and could potentially destroy your codebase if it's used inappropriately.
Because of this, I often just live with my mistakes; however, in rare cases, having a clean `git log` is incredibly important.
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).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,19 +20,19 @@ Remember how I said I couldn't get the virus software to work on my computer? Ye

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.

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.
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.

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.

#### Step 1: Burning to a disk

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?
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?

#### Step 2: Just type "root"

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.

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:
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:

**root**

Expand All @@ -50,7 +50,7 @@ Truth be told, I learned a lot at this stage of the installation, including moun

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?

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.
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.

To this day, I don't know how or why this worked.

Expand All @@ -64,6 +64,6 @@ Blitz login:

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.

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.
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.

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.