Sunday, February 19, 2012

Shoutout #2: TeraCopy

Something I have been very, very bad at thus far is donating to free software services, not because I do not want to give the money, but because I am forgetful. So to help, I'm going to try to write a blog post for each project I donate to, which (A) will help motivate and remind me, and (B) helps get the word out about software I love. And these are going to be the pieces of software that I love; I am not being paid by them to praise their software, I am paying them and praising their software. A very small price to pay for how often I have used these programs and how much they have helped me. This certainly doesn't mean that I won't ever donate to a project more than once, but I would like to donate to all my favorite projects before I double back.

So without further ado, I introduce TeraCopy: my lifesaving tool when I am on Windows. It's really kind of hard to describe what makes TeraCopy so great because it just works. Which is much more than can be said of the built-in Windows Copy system. They sound like small features, but TeraCopy implements them wonderfully:

Pause a copySuch a handy tool! If you need to access your disk for some other reason, or maybe you want to make sure that you are copying the right thing.

Skip files when errors occur instead of stopping
I'm not sure if Windows 7 added this support natively, but back in Windows XP, it was a major lifesaver. If a program is using a file, no sweat, skip it and then you can try again later, instead of stopping mid-job and trying to figure out what was copied so far without having to re-write everything again.

File list/Queue
This really helps you keep track of where you are at! Instead of just "Copying " you get every single file you are going to copy, its size, and location in the list. Now if you are wondering how long it will be until a certain copy is filed so you can begin working on it, you don't have to wonder anymore! Such a lovely feature.

On top of everything else, TeraCopy claims to be faster, and I have to agree. Ever since I switched to it, I felt like my copy and move operations were given fresh energy.

There's not much else to say. After getting fed up with the default Windows copier, I switched to TeraCopy and will never ever look back. To be clear, TeraCopy is free, and even portable; CodeSector (the authors) offer a Pro version for businesses and with a few more features. The nice thing about the TeraCopy license is that it is a lifetime license, which means that if you say "thank you" to the developers, you get lifetime updates to an awesome product.

Check out TeraCopy!

Possibly funniest joke ever (IT Crowd)

I have no clue why I haven't mentioned it already, but The IT Crowd is absolutely hilarious, and while it really isn't that nerdy or techy, it's still funny in its own goofy way.

They did make one nerdy, awesome joke that is one of my favorite scenes in the show, and...well, I don't want to ruin it for you, so click here, or check the embed below.


Tuesday, February 14, 2012

Burning Question #1: Partition vs Filesystem

I'm going to try something new. There are some things that I do not know that I call "burning questions", because they are things that I may see day-to-day, but I never take the time to research them to find the answer. Starting today, I'm going to try to research and answer one of those questions every month.

First off, I know the general function but I've never understood, what is a partition? And more specifically, how is a filesystem different than a partition? When using tools like Gparted, you usually just select "ext4", press a button, and you have a usable partition. But when using tools like fdisk, you have to create the partition, then use a tool like mkfs.ext to create the filesystem. So my real question is, what specifically is each, how are they different, or are they the same?

First off, "A partition is a contiguous set of blocks on a drive that are treated as an independent disk. [1]" I've never heard it said so concisely, so it's nice to get that out in the open. Because of how the partition table is set up, there can only be a max of 4 primary partition at a time. The way around this is to use one of the slots for a primary partition as an extended partition, inside which you can create logical partitions to a theoretically limitless degree when it comes to the disk, but usually limited in operating systems (63 total partitions in Linux).

(I am just now realizing that back when I was trying Project vOmniMachine, I didn't realize that the physical limits for logical partitions was limitless, and also that Linux will boot fine with more than 63 partitions, or rather GRUB will boot any of them fine. They just won't be able to see all of each other.)

Anyway, on the difference of a partition to a filesystem:
"When a hard drive is partitioned, it is mapped into sections, but the sections are empty. It is like a newly constructed library; shelves, signs, and a card catalogue system must be put in place before the books are put away." [2]
I love analogies to explain stuff, so if you want a really nice analogy, check out an awesome post by gjc on MetaFilter.

[SPARK!] I think I'm going to include little "sparks" of information that I learned, but are only semi-related. For example, right now I learned what an inode is (though I had my suspicions), but more specifically, that the name for a file is not in the inode, but it's instead stored in the folder. [3]

I think one of the things that confused me is that you mount a partition, not a filesystem. So you say "That partition is mounted at /mnt/disk"....well, that doesn't really make sense to me, because you can't mount a partition, at least from my understanding. There's nothing to mount. It's just a bunch of caution tape telling you where something could be that you could mount.

The ambiguity must come partially from ignorance, mostly newbs, but also just for shortness. For example, you'll often hear "NTFS Partition", but that doesn't make sense; it stands for "a Partition with NTFS on it." Likewise, saying "That partition is mounted at /mnt/disk" is shorthand for "That filesystem on a partition is mounted at /mnt/disk". It actually does kind of make sense, just like if you say "a Linux partition", what you mean is "a partition with Linux on it".

Lastly, to clear up some more confusion, a Partition Type/ID/Identification has little to do with the filesystem. Those two digits are meant to help identify what is on that disk or partition, but does not dictate at all what filesystem can be on it.....I think. At very least, it can be said that it does not necessarily "specify a specific file system" [4].

Hopefully that info is correct, or at least more correct. It's all really fascinating to me, and I still have a lot to learn about filesystems, like how they differ in storing data and what journaling is exactly. There are a few other things I would like to get going every month, so eventually I'd like to have one post scheduled for every week, of 4 different types. I'll see if I can handle this one before taking on another.

Saturday, February 4, 2012

The fix? A blanket.

Business with Qweex has not really been that booming, and I've been ok with that since I've been trying to focus on school and work recently, but yesterday I got a call from a fellow that I ride the bus with every now and then. His laptop was exhibiting a very strange effect: dividing the screen into 8 "mini-screens" and not booting into Windows properly.

In the end, I learned that this was due to the soldering on the graphics card wearing down and the best way to fix it was to take out the mobo and re-solder it, but another method I found and tried was to simply wrap it in a blanket for about 20-30 minutes until it shuts off from overheating, in the process re-soldering the problem points. It worked! Well, I had to manually shut itself off, but the graphics problem went away and Windows booted fine.

Yesterday, while I was talking to the guy about the problem, he watched me boot into the BIOS, and asked what that was, and how I knew to get into it. I shrugged and said, "I guess you just pick it up along the way." Which made me realize how good it felt to know more than him. I know that sounds snobby, but that's not at all what I mean. I spend quite a lot of time on my computer, messing with stuff, constantly breaking and then fixing stuff. I realize that in the grand scheme of computers -whether it be software or hardware related- I really know what-almost-always-feels-like nothing. There is so, so much left for me to learn, and part of me is excited, but part of me is disheartened.

So when I run into somebody that needs help on their computer and I know all this stuff that I can use to help them, it makes me feel good to know that all of my tinkering was not for nothing. It's basically seeing the fruits of my labors. I don't at all feel better than them; I've come to learn that not everybody needs to know how to use computers, and few people even ever need to boot into the BIOS. I just happened to be more interested in computers than them, so I spend more time on them and I naturally pick up more. But that tiny amount of affirmation -that I know things about my focused area of interest- really is just refreshing, as is using that to help somebody.

That's not to say I'm off the hook at all. I definitely don't push myself as hard as I should sometimes. I still have yet to finish that Linux book that I bought last April, or the HTML book that I started over Christmas, and I'm still messing around in Autohotkey even though last year I was hoping that I would be fluent in Python by now.

The funniest thing that occurred to me about this whole thing is that I realized that I probably learned about the BIOS and how to tweak it when I had some kind of problem, googled around, and then found somewhere to enter the BIOS. Then I probably googled "what is the bios", and went from there. The point is, I probably know at least 85% of what I know from problems. Problems are when you must turn to research, even if it's not something severe.

If you would like me to spend 3 hours backing up your data then wrap it in a blanket for 20 minutes, check out my website.

Friday, February 3, 2012

"So What's Linux?"

Quite a while ago, I thought up an idea to start a wiki for Linux newbs. The main goal of it would be not to necessarily be a vast array of information, but rather just a simple definition of terms. Imagine somebody coming in fresh, hearing about Qt and GTK and Ubuntu and kernels and distros and fstab and man and....well the list goes on and on and on. And while a lot of these can be answered by Googling, it's usually rather difficult to find a succint answer to what it is, not what it does. For example, if someone did not know what "root" was, they might come across this definition on, which might be technically accurate, but if someone does not know what "root" is, I doubt they will know what "file permissions" are. Basically, it's too technical. What about the newb?

I started creating a very, very basic wiki called "So What's Linux?" using Wiki-on-a-stick (which is, coincidentally, licensed under the GPL). The idea behind it is not to be a complete compendium of man pages and definition of the GPLv2 vs the GPLv3, but rather answers to a question who might ask "So what's linux?". The idea is to create a succinct, (mostly) correct definition on each page that a user can understand without having to follow a ton of links to other pages.

It's (kind of) a work in progress, partially because I myself don't know everything, but also because it's just hard to THINK of everything. I don't know the best way to make sure I get everything other than just create entries as I come across them in day to day use. Otherwise, I guess someone could e-mail me, or leave a comment below, or even try to collaborate with me; I'm open to any of those.

To give an example of an entry, here's a sample page:

So what's Linux?
Official pronunciation: "LINN-ucks"
Other pronunciations: "LEEN-ucks", "LINN-icks"

Linux is an operating system, just like Windows or Mac OS, only instead of being owned by one particular entity (like Microsoft or Apple), it's developed by people all over the world. The way this is possible is that Linux is open source, which means that its programming code (or 'source code') is "open", meaning that anyone can look at it, modify it, and do almost whatever they want with it. This leads to people and companies all over the world creating their own varieties of Linux (commonly called "Linux Distributions" and also helping to contribute to the development of the Linux kernel itself.

Many times you might hear about the "Linux kernel." A kernel is the part of the software that deals directly with the hardware; it tells the hardware how to act, down to what bytes to use in the RAM. The software you run (like Mozilla Firefox) talks to the kernel, and the kernel in turn talks to the hardware, like "Use this section of RAM" or "Read these bytes off the hard drive". (Every operating system has a kernel, including Windows and Mac OS.) Even with all of the different distributions out there, they all use the same Linux kernel. While "Linux" as we know it today includes more than the kernel, it could be said that the Linux kernel is Linux, literally.

The kernel is only half of the Operating System though. In addition, you need software. Much of the fundamental software that is core to Linux was developed by The GNU Foundation. The Linux Operating System would not be possible without the contributions of GNU, so formally Linux is called GNU/Linux or GNU+Linux. But that's rather a mouthful, so most people just shorten it to "Linux."
A very brief history lesson 
Back in the day, before Windows, before Macintosh, and before personal computers even, there was an operating system created in 1969 called UNIX. As it got more and more popular, people began to make their own versions, including BSD, but many of them were very expensive. Finally in 1991, a Finnish student by the name of Linus Torvalds tinkered around and ended up semi-accidentally creating a new kernel, and thus Linux was born. To this day, Linus still is the main overseer of the Linux kernel.

Torvalds has an autobiography titled "Just For Fun: The Story of an Accidental Revolutionary" that tells more about where he came from and his actions behind writing Linux, as well as his reactions to the revolution it started.

Things to remember about Linux
  1. Linux is an open source operating system
  2. Linux has many different 'flavors' called "distributions"
  3. The Linux kernel is synonymous with "Linux"
  4. "Linux" is really "GNU+Linux"
  5. Linus Torvalds created Linux