The Blog of Tom Webster

Chronic Ranter, Reviewer, and Developer. I speak only for myself, opinions are my own.

An Academic Waste of Time and Money: College

  2011-03-24 11:48:00 PDT

I posted a Twitter update and would like to expand on it for a bit...

"On the top ten list of worthless things I have done with my life, college is quickly nearing the top."

I feel like I really am pissing away time and money and getting nothing in return. I wish there was a 'college' for people like me, where you go to a place, socialize, drink, party, network, but none of the class bullshit. The people I've met in college are fucking great, the networking is brilliant, the experiences I've had outside of the classroom setting have taught me more than any parent ever could. But what I'm actually paying for... what I'm actually buying here... I get nothing out of it. At all. The course material is a joke, the professors are comedians, but at the end of the day, I'm left with an empty wallet and not nearly enough laughs to make my night worth it.

If I wanted to sit in a room for a few hours having some idiot recite shit out of a book that will never pertain to any facet of my life: I'd go to church.

Its like going to a comedy club to drink really good beer. What you're paying for isn't what you're there for. I've been told that this is the college experience, this is exactly what it is designed to be, but I don't really buy that. In my mind, college should be there to expand your mind and get you thinking differently about what is possible and how the world currently works, then should work. I've never had this experience in class. Ever. Instead, I've had these grand experiences in my interactions with others at college. Not in a class, but at a party, hanging out playing games, or standing around in a hallway, just being bored. Why do I need professors, grades, classes, or textbooks when they have done nothing for me? I could have gotten the same experience by just hanging out at a college, without the added burdens of paying an ungodly sum of money for fairly good academics (from what I have been told).

Maybe I'm an outlier. I've always been better at learning on my own and teaching myself things. I've done my own research, processed, then came to my own conclusions. I expand my mind regularly with topics outside my comfort zone, I don't need a person biased in staunch bureaucracy telling me what I should learn and what I should not learn. Academia as a whole is frustrating. From my time at college, I've never learned anything truly useful in a class. When it comes to my career (entrepreneurship and technology), college has taught me nothing useful. To this day, in each job I've held, every contract that I've worked on, I have never used anything I have 'learned' in college. When I walk into a tech or business class, most of the time, I end up teaching the professor. I know how that sounds, everyone knows that guy who fights with the professor about everything, but I don't mean like it like that. I end up bringing up new concepts and ideas that are fairly standard practice in the tech industry, but are brilliant breakthroughs in the world of academia. For a tech guy, walking into a modern college course about technology is like walking into a technology museum.

Academia, for the most part, is in its own little world. Business practices, current research, the very latest and greatest that computers and the internet have to offer aren't being taught in colleges. What's being taught in a high-level management course at my college is this: "Employers who want to maintain a stable working environment and want to posses a good relationship with their employees should avoid yelling at or taking things out on them." Yes... that was an entire chapter. For one entire week, my business class discussed why we shouldn't scream at the people working for us. Brilliant.

To sum up plenty of other examples in a sentence: Academia tends to be 10-15 years behind the curve, no matter what the subject.

Sadly enough, I've come this far, so there isn't much point in quitting now. From what I'm looking at, I've got a year left of school. I already have the well-paying job, I have the lifestyle, I have the job experience, I might as well relax as I work my way through the rest of this degree. One thing is for sure, though, I will never view the academic side of college as an investment after my experiences, I will always look down on it as waste of time, energy, and money.

Bing: Powered by Google - Stolen Search Results

  2011-02-01 08:42:00 PST

Breaking tech news today! It has been uncovered that Bing has been poaching Google search results! Here are the cliff notes:

So what exactly does this mean for Bing? Microsoft is holding a search event later today (which is why Google could be unveiling this now), and Matt Cutts is on a panel with them later today, so I expect we will hear more then.

The original tweet is here: http://twitter.com/mattcutts/status/32459370511994880

Check out the very thorough and awesome analysis of the situation by Search Engine Land.

I think search is going to get very interesting over the next couple of weeks...

Cloudbound: Java?

  2011-01-17 13:16:00 PST

One of the problems I've run into with Chrome OS is the apparently lack of Java. It kind of perplexes me that I hadn't considered Java to be a core web technology before my addiction to Minecraft reached epic proportions, but it also perplexes me that Google didn't consider it a core web technology either. When I try to load up this Java applet on my CR48, I get this error message instead:

Missing Plug-in. Java does require local system support for applets to load, and it would make sense for Google to want as few attack vectors as possible for Chrome OS, but it still is a bit annoying. Not that my CR48 would have the power to run Minecraft, anyway. The system only has a 1.6Ghz Atom processor, I'm pretty sure it wouldn't run very well if it did. I could edit the root file system in DEV mode and install Java, but I'd like to keep this system as clean as possible. Just an interesting notion, nothing more.

Server-Bits #10: Subversion

  2011-01-17 08:42:00 PST

Subversion! One of the best ways to keep track of versions for code, homework, various essays, you name it. If it changes and you want the ability to roll back changes, Subversion is for you. In reality, Subversion is one of many types of versioning software out there, but its the one we are going to cover in this tutorial. If you're really interested in the alternatives, Google around for: Git, Mercurial, among many other smaller projects.

Why would anyone want to set up a software repository? Easy answer if you're a programmer of any sort. I'm a hobbyist programmer, and I constantly break my own code and projects when trying new things. I wanted an easy way to roll back any changes that I had made, while still retaining a history of some sort. I initially did this by copying different versions of the code into different folders, but this proved to be unmanageable in the long run. At the time, I was using 6 different computers to write my code, depending on which location I was in during that day. Manually copying this folder to a USB stick, then re-syncing the changes became a major hassle. Subversion allows you to create a repository in a folder and commit changes to it. Want to update a particular machine with the latest version of the code? Easy, subversion has an update feature that only pulls down the changes of the file since you last synced. Easy stuff, and I'll show you how to build your own subversion repository.

The very first thing you need to do is install subversion.

sudo apt-get install subversion

Yea, that easy.

Second thing, choose a place where your code will live. This shouldn't be your working directory at all, as you don't really directly interact with the subversion repository. I've made a directory inside my home directory called "SVN", and that's where all my projects live. The project I'm working on is called "Hax", so I'll create the Hax repository.

svnadmin create hax

Now I have a directory called 'hax' on my system. If you browse to that directory and look around, it appears a little strange. That's because subversion creates a database system of sorts to manage, store, and compress your code. Again, you will not be interacting directly with this folder. You will write code elsewhere and commit (upload) the code to the repository.

Next, you need a username and password to be able to checkout (download) and commit code. Navigate to your repository/conf. So, in my example, I'd navigate to hax/conf/. Use a text editor to edit the passwd file. The default file should show you how to enter users. I'll go ahead and create my username and password:

tom = password

NOTE: Since this file contains all of the usernames and passwords to access your repository, make sure only you have access. You don't want people commiting code as you. Now, I have a user, tom, and his password is password.

The next file you have to edit is: repository/conf/svnserve.conf Scroll down until you reach the part of the file that lists:

#anon-access = read
#auth-access = write

You want to change this to say:

anon-acces = none
auth-access = write

One last line to change, find the line:

#passwoord-db = password

And change it to:

password-db = password

The first changes you made told subversion that no one should have anonymous access to your code, and authenticated users should have write access to the repository. The second change you made is to let subversion know that we will indeed be using that password file to store users and passwords.

Now you have successfully configured your subversion repository. The next thing we need to do is get your server publishing your repository so you can access it from anywhere. The command for this is svnserve. You can use man svnserve to see all of the options. The easiest way to get your SVN server up and running is:

svnserve -d -r /home/username/path-to-repo

The -d option sets svnserve into Daemon mode, so it will accept TCP connections automatically. The -r option sets the path you gave as the root of the SVN server.

If you want, you can make one directory to house all of your projects. This way, you can commit code to server.com/project1 and server.com/project2, all by running one instance of svnserve. Experiment to figure out which works best for you. For myself, I have one directory act as the root for svnserve, then all of my projects are then organized by category.

Now... This is how you use subversion to checkout and commit code:

To checkout your code:

svn co svn://hostname.server.com/project1

To add things to be committed:

svn add filename.txt

To delete a file (and delete it from the commit):

svn rm filename.txt

To commit your code to the repository:

svn commit -m "Comment your changes!!"

Now, a few lessons you need to take away from this:

  1. You must manually add files to be committed. Just committing code won't do anything unless you tell subversion that a file must be included in the commit. You only have to do this once per new file, after that, subversion remembers that this file is to be included in the commit.
  2. Likewise, if you would like to remove a file and have the repository reflect those changes, you must tell subversion that you are removing the file. Just deleting the file will leave it intact in the repository.
  3. When you use the commit function, please use the -m flag. This will allow you to comment your changes, this is important because if you ever want to roll back to a previous version, you can look through the svn log and see exactly when you made a particular change. To view this log, use the command svn log when you are in your repository. Now you have a basic understanding of subversion and how to set up your server to be a versioning repository. Have fun and happy coding!

If you want to pull your code into Windows to work on it, commit, and other SVN goodies, use the open source TortoiseSVN, it gives you access to all of the SVN power on your right-click menu. Enjoy!

About Server-Bits:

If you've ever wanted to get started building a server, right in your own backyard/kitchen/closet/mother's closet/mother's basement, then this is the read for you. Aimed at the not-so-technical-but-willing-to-learn, this will give you everything you need to build that monster-server you've dreamed of. My goal: To give you a working server, for free, that you can use daily.

Cloudbound: The CR48 (Part 2)

  2010-12-21 06:28:00 PST

The CR48 notebook itself is sleek, simple, and unbranded. Completely unbranded. No logos anywhere. Just a matte black notebook with a rubbery feel. To be honest, reviewing the hardware doesn't really make much sense. The purpose of this pilot program isn't to review the laptop that some company made on contract, the point is to review and bugtest the software. But the readers want to know, just how is the CR48? In a word: Amazing. Like the Nexus One, the CR48 embodies the essence of what Google thinks is possible with a Chrome OS notebook. Simple, from the keyboard to the case, the CR48 is the essence of software driving hardware. Not one logo is shown on the device in any form. Not even an informational sticker or set of warning labels. This is a tool for developers through and through. Honestly, I wish all notebooks were built this cleanly.

A small compliant so far, the battery doesn't quite fit 100% snug to the bottom of the case on one corner. Not a deal breaker by any means, but this shows that the company Google hired is still working out the kinks in the manufacturing process. Granted, this is alpha-hardware, and never meant to be sold to the general public in this form, so I really have no reason to complain. All in all, I really love the simplicity, long battery life, and light weight, easy to carry shape of this build. If this is the template for Chrome OS notebooks, its about to be a very good year for Google. The next post I have lined up is a general overview of Chrome OS, then feature highlights and more in-depth views, including bugs. Stay tuned!

Page: 22 of 32