Pages

Saturday, April 2, 2011

101st Post OStravaganza

Disclaimer: I forgot Blogspot counts drafts in your total, so this isn't actually the 101th post.

Okay, that last post was just to let off the 100-posts pressure. Maybe I'll do something really cool at 150, or 200. Anyway, on to the topic I really wanted to discuss: operating system wars!

As a computer science major who went to an all-Mac high school, I've had plenty of exposure to all three major OS families: Windows, Mac OS, and Linux. It's something I've thought a lot about, since your OS can drastically affect how you compute. I've also read a fantastic essay by Neal Stephenson, In the Beginning Was the Command Line, on the subject as well as the command-line-versus-graphical-interface question. I recommend this book to everyone (especially to my fellow nerds, but it's not too hard for non-technical readers). I'll lend you my copy if you want; it's a fairly quick read. I don't think I can improve on anything he said, but here are my few cents.

When I say "operating system", I'll probably evoke a few different responses. Most of you, I think, will recall familiar features of OSes--the visual design of Mac OS X or constant crashes of Windows, for instance. Maybe some of you will remember a specific incident that caused you to switch, or at least changed your opinion of your chosen OS significantly. You might call to mind the iconic companies behind the software and their media coverage. Computer science majors, at least those of us who have studied operating systems, will also realize all the behind-the-scenes tasks operating systems have to perform to connect software with the underlying hardware smoothly.

I'm still learning about this underlying implementation, and I don't think there is too much concern over the low-level differences between OSes.  (Except to the extent that it's affected by higher-level decisions I'll get to later) This post is mostly going to address the parts of operating systems that the user can see (which is all most people are aware of anyway).

Let's start with the philosophies of the three main OS families. (Overgeneralization ahead!) As far as I can tell, Microsoft markets Windows as a functional, all-purpose OS for the masses. Considering its market share, this makes sense. And on top of that, Microsoft has mindshare on its side. Hate it or love it, Windows has become the default choice for most users. Virtually all non-Mac computers come with it installed, and most people don't care enough to change it. It's become a fact of life for individuals and even more, I think, for businesses. The continuing existence of Internet Explorer 6, a nearly ten-year-old browser that came with Windows XP, is still a powerful influence on web design. (Even Microsoft wishes its users would upgrade) For people who are used to it, they don't even have to ask "why Windows?", but rather "why not Windows?" In his essay, Neal Stephenson writes that besides an OS, Microsoft is selling users the idea that they are "getting something for their money, engaging in a respectable business transaction."

On to Apple. Mac OS is the operating system I have the least experience with; nearly all the computers in my high school were Macs, but I've barely touched one since. Still, they're a constant presence on campus and in my classes, gleaming silver and white slabs of technology marked as "not Windows" by the logo on the back of their screens. (A quick aside: the "Mac vs. PC" debate, as it stands, is meaningless; "PC" simply stands for "personal computer", so a Mac, a Windows machine, and my laptop are all technically PCs.) As Stephenson writes, when Apple started out with the first graphical operating system in 1984 it took the computing world by storm. It was elegant, revolutionary, and just plain "cool"; Microsoft, with its primitive-by-comparison MS-DOS, was reduced to catching up. Of course, things have shifted considerably since then as Apple fell behind, then become "cool" again with the release of Mac OS X and its constantly-updated lines of gadgets. I'm going to avoid the separate issue of the slavish buying behavior of some Apple fans for now and focus on the company itself. In my experience, while Windows has been marketed as an all-purpose, workhorse OS, Mac OS is especially pushed towards creative, nontechnical types who aren't afraid to "think different", armed with a simple, attractive interface and a suite of applications to assist creative work.

And then, there is Linux, the oft-ignored third OS (or rather, family of OSes). Part of my inspiration for this post was a Facebook poll repeating the ancient question, "Mac or PC?", to which I responded "No Linux?". For those who aren't familiar with what Linux is, it's originally a kernel (the underlying, hardware-software interface part of the OS) written by Linus Torvalds and some other hackers in the early 90s to imitate the classic Unix operating system. This kernel and the various applications surrounding it (all free and open-source) are packaged and distributed by both individuals and companies, either free or for a nominal fee for support. Of course, since the source code is all freely available, support is easy to get from the hacker community. The decentralized, non-corporate nature of Linux is radically different than Microsoft and Apple's approaches. It is cooperative rather than competitive, and in the world of bits where the only limiting factor is ingenuity, it works and works well.

Anyway, this post is getting surprisingly long and I should get to my actual impressions of the operating systems. I've been using Windows basically as long as I've been using computers (I may have some early memories of MS-DOS, but I'd have to ask my dad) For most of that time, I've had nothing to compare it to (except an earlier Mac OS at my cousins' house, which I mostly remember for the single-button mouse and the "close window" button being in a different place). When I used Macs in high school, it was mostly for schoolwork and once I got over the two Ctrl buttons(!?) and single-button mouse (again), I was able to do what I needed on these computer and didn't think too much of them. I affected a disdain for Macs, but I couldn't really have backed it up if questioned.

So it wasn't really until I got to college and got into my computer science major that I started to care about the differences between operating systems. The required programming made me quite well-aware of how frustrating programming on Windows is. I've had bad experiences with IDEs, so I got by programming on Notepad, which didn't work terribly well. And installing a new programming language was an ordeal. I became increasingly aware of the usefulness of the ITLabs computers, which mostly ran the Ubuntu distribution of Linux. They had lots of useful free software I already used, and programming was easy since they had every language I needed.

Eventually my interest led me to get a second hard drive for my desktop so I could install Ubuntu on one and try it for myself. Programming and testing my code was made much easier by being able to remotely access lab computers and work from them. Then during Christmas break, I made Ubuntu the only operating system on my laptop. Not even exaggerating: it has changed my life. It has allowed me to work on my research anytime, anywhere. As I learn more about the command line and other Unix tricks, it's almost intoxicating to see what cool stuff I can do. Where I used to get distracted in class reading random articles or something, now I struggle to keep focused rather than obsessively coding or writing more shell scripts. Closed-source operating systems put limits on what you can do in the guise of being helpful and avoiding confusions, but Linux has no limits, besides your skill. There's also the fact that my computer boots up in less than a minute rather than Windows 7's 5-10, that the OS uses about a fifth as much memory as before, and that I have never had a crash or any serious problems with Ubuntu since I've started using it.

I would call Ubuntu and other Linux distributions "white box" operating systems. Everything in their functionality is open to the user; you can do practically anything if you know what you're doing. Of course, this doesn't mean they're user-unfriendly; Ubuntu has a simple, yet powerful interface for files and applications, makes it much easier to change settings than Windows, and has its own "app store" for getting software (only all of it is free). Using it has been an absolute joy and I recommend that everyone at least give it a look. (You can even put it onto a bootable flash drive without affecting your current OS)

Mac OS X, on the other hand, is more of a "black box" (ironic given the casing of all Apple's hardware). Just like the computer it runs on, it is hermetically sealed, its inner workings hidden from the user under slick interfaces. And for many people, this is okay. Not everyone has the time or the interest to master Unix. Even Neal Stephenson admits to sometimes wanting an OS that hides its underlying complexity and makes some difficult decisions for him--and since he wrote his essay, Mac OS X has become that operating system for him. Though I certainly don't agree with all their business or technological practices, I'll admit that Apple certainly seems to have succeeded at making a computer (or tablet or whatever) for non-techies who want to work on real problems, not on the technology.

I would describe Windows, on the other hand, as the "grey box" of operating systems. It attempts to get out of the way and hide its complexity like Mac OS does to allow users to work on the problem, not on the computer, but its frequent problems and failures force users to gain a working knowledge of its hidden workings anyway. And with the closed nature of its software, help is harder to come by for it. I still keep Windows around for compatibility with Office documents, games, and iTunes, but I dream of a day when I can leave it for Linux entirely. (Especially when Windows 7 just hangs and does nothing for several minutes)

Ultimately, I hope more people will become aware of Linux and the existence of a completely free, easy-to-use, powerful OS. Ignorance of Linux is a key factor in Microsoft's dominant "mindshare" of the market. I also want to raise awareness of current issues with OSes and what goes on "behind the GUI", so to speak. Please post comments!

100th Post!!1!1!!!

Woo, 100 posts of randomness! We made it happen, interlunk! I'm feeling some pressure to post on something awesome. Too much pressure, in fact. Instead, here is a quick comic of some philosophical Goombas I drew on my Wacom tablet. Enjoy.

Thursday, March 31, 2011

Belief and Assumptions, part 2

Well, my previous post caused quite a Facebook debate! I was certainly hoping to start discussion, but I hadn't planned on that much! Now that I have a bit of time, it's time for some more ramblings. I'm not nearly finished yet.

So: last time, I argued that no one's worldview is free of assumptions. There are some basic ones that we either make or act by that are essential for functioning in society, and beyond that peoples' diverse assumptions shape their passions, their politics, and their religion. That was the first part of the point I was trying to make, but I neglected to bring out the second: that holding these assumptions is not necessarily a bad thing, or something we should try to sweep under the rug. Rather, I think they should be brought out and discussed; it would likely be more productive than the endless debating of the ramifications of these assumptions that we get instead.

I think this second point proceeds pretty easily from the first. If there is a way to logically derive every part of a complete worldview, no one is anywhere close to finding it. These assumptions have to be made. Often we don't even think about it. And since we all do it, it doesn't really make any sense to look down on someone for holding assumptions if they are brought into the open. Whether these assumptions are true is another story.

Of course, if one of your assumptions is that truth is relative (in its more logically sound form as stated last time), then this doesn't matter. But if you hold this belief, then what anyone else believes doesn't matter, and I haven't met anyone who doesn't care at all what other people believe.

That's about all for now. Next I'll think about why people hold some of the assumptions they do.

Friday, March 25, 2011

Belief and Assumptions

I'm going to take a step back from some of the particular topics I've been discussing in this blag to get at something I think lies underneath them all. Lately I've been occupied with the question, why do people believe what they believe? If we all live in the same objective reality, how can a belief system seem obvious to one person and unbelievable to another?

What brought my attention to this question was a talk last night on truth and relativism. The speaker presented the same disproof of relativism that I'd heard so many times: the statement 'All truth is relative' is an absolute statement, but it says that there is no absolute truth and refutes itself. Since I've studied apologetics and this was a familiar argument to me, I guess my mind kind of wandered and I started wondering, in light of this proof, why do so many people still adhere to a relativistic worldview?

Of course, the hole in the assertion of relativism is easy enough to patch: just change it to "All truth is relative except this statement." Or, to put it another way, "There is no absolute truth except this one." Not so easily disproven, but perhaps even more difficult to prove. As far as I can imagine, this is an impossible task. This statement, if believed, must be believed by blind faith--and, quite honestly, I think it raises more questions than it answers and is in fact quite difficult to believe. So why do so many people believe it?

Another example: the theories of relativity and quantum mechanics have been commonly accepted among scientists for the better part of a century and have been tested and proven many times. Yet I don't believe them and think there has to be another explanation, because they violate my belief in a rational, logical universe. There's a slim chance at best that I'm right. But I still believe I am.

I think that every one of our worldviews is based on these unproven assertions, often several of them. For instance, though some would claim otherwise, virtually everyone lives from the assumption that we are able to perceive and interact with an objective reality, not a dream. Similarly, to function in society you are practically required to hold the assumption that the basic laws of logic work as commonly believed. You might hold more mundane assumptions, like that a certain political party knows best or that your favorite sports team is the best. All these things cannot be proven--or if they somehow could, it would have to be on the basis of some deeper assumption which would itself have to be proven. You see where I'm going with this. In the search for truth, we have to start somewhere.

I think these assumptions are closely related to faith. There might be no difference. I don't think it's possible to prove there is or is not a God (which is probably an assumption itself); people hold to either of these assumptions on faith. They might find considerable evidence to back up their faith, but at some point a logical leap has to be made to believe an unprovable statement.

One other assumption that has been on my mind: the Bible tells that in the days after His resurrection, Jesus appeared bodily to hundreds of people. Defying all explanation, a man who had been unmistakably dead was unmistakably alive and performing miracles. In light of this, the religious leaders come up with an alternate explanation and bribed some soldiers to spread it. They tried to start a hoax that someone was dead when He was, in fact, still alive and being very public about it. That's a pretty big denial.

I'm going to keep exploring this topic. I hope you'll follow with me. Until next time, what unproven assumptions hold your idea of truth together?

Sunday, March 20, 2011

Cyclopath

As I've mentioned to many of you, I'm doing research this semester via UROP at the University of Minnesota. However, I haven't told many people much about what exactly I've been doing. This post aims to clear up the confusion and (hopefully) convince people that what I'm doing really is cool!

I'm working on a site called Cyclopath. It's been live for years--go ahead and check it out. It's a geowiki--a map of the Twin Cities that anyone can edit and contribute to--made for and by cyclists. You can add paths if hey don't exist, tag points of interest, add notes on routes ('Lots of potholes here!'), or rate the bikeability of a path. It aims to be a valuable resource, a place for bikers to share information about navigating the cities by bike. Pretty cool, huh?

Now try finding a route. Unlike with Google Maps, where you just enter a start and end location and hit enter, Cyclopath gives you some options. You can tell it whether you want a route that's more direct, or easier to bike. You can also rate tags--different traits of roads, like hills or bike lanes--to tell Cyclopath whether you want it to favor or disfavor them. All this information goes into the customized route that it gives you after a few seconds. This is all well and good; go and enjoy the route, and maybe rate it afterwards or tag something cool you saw.

But how do you think Cyclopath comes up with this route? Technically it uses the A* algorithm, a graph-search algorithm that finds the lowest-cost path between two nodes. In this case, "cost" refers to how bikeable (or not) a path is, and how long it is. Cyclopath tries to find you a route that provides just the right balance between distance and bikeability (a balance that you can adjust, as mentioned above). But this relies on knowing your bikeability rating for every edge, so it can run calculations on it. But clearly no one rates every edge; in fact, many edges haven't been rated by anyone. (One of the biggest problems facing Cyclopath) But clearly it has to be able to recommend any edge, so it can provide routes from anywhere, to anywhere. So it needs a way to know, or guess, how you would rate a given edge even if you actually haven't. That is the focus of my research.

Reid (the now-departed doctoral student who founded Cyclopath) has already done research into different 'predictors' (different methods for guessing how users will rate edges). Some simply consider factors like the type of road and presence of bike lanes; others categorize the roads and assign default ratings to each category. Still others average how other users have rated an edge and predict the average. And, most interestingly, some predictors take into account how a user has rated other edges. Reid implemented a few dozen of these algorithms and tested them to see how accurate that are and how often they agreed with one another on which edge to choose. But that was as far as he got; his thesis left open the question of whether different predictors really mattered in recommending routes.

That's where I came in. This semester I've been testing the most promising predictors to see if they came up with different routes. Ultimately we were hoping to learn how to improve Cyclopath by personalizing the route recommender, so it could give users routes that they would really enjoy. I did this pretty much by brute-force. I randomly pulled 500 saved route requests from our records, fed each of them into the predictors I was testing (this took about 12 hours total), then compared the different routes generated by each predictor. This let me find some interesting things like how often the predictors gave the same route, and I was able to group them together by which ones usually agreed. But things got better last week when I figured out how to turn the results into cool pictures.


This is a rather epically long route from Jordan to north St. Paul I tested. The three colored routes are the different options the ten predictors came up with. The blue and green paths are pretty similar; the red one is quite different. I have ways of measuring this, but it's very helpful to be able to see them. The next step is looking for tangible patterns in the routes the predictors give, including surveying bikers to see which ones they prefer. I hope this sounds at least kind of interesting. I'd love to talk more about it!

Wednesday, March 16, 2011

Sacrifice


Sorry if starting my post with a comic is all cliche and such, but I'm home for break this week and saw it in the paper this morning. It reminded me of a topic I've been meaning to blag about lately...

As many of you may know, it's Lent season, the 40 days (I think) before Easter. This time of year I'm always hearing about various things my friends are giving up for Lent--sweets, favorite foods, Facebook (a popular one these days), even spending money. My family has never followed this tradition (we're from a Presbyterian background), and personally I'd never understood it. As the comic demonstrates, it often seems forced--sort of a 'oh, it's Lent again; what am I giving up this year?' mentality. I've also been baffled by people who give up vices for Lent--if you realize it's a vice, it's rather inconsistent to give it up for 40 days, then go right back, isn't it? If you feel you need to give something up, why wait until Lent? Of course, this is all my outsider's perspective; I'd love to hear from others on their reasons for observing it.

Anyway, rather than conduct a survey or something, I acted on a calling and tried giving up something I enjoy. Last Wednesday night (which I'm pretty sure was Ash Wednesday), I shut down my my iPod Touch (which I consider my second brain and is usually attached to my belt) and  tucked it in the back of my desk drawer. Since I'd recently lost my 80GB model (see my previous post on materialism), I was now iPod-less. And this right before a half-hour walk to Bible study.

The walk was actually pretty nice. I didn't notice how much time walking around gives for thinking until I got rid of musical distractions. (I still wear my headphones as earmuffs) And without the constant possibility of checking Facebook/E-mail or playing games wherever I am, I've been more able to focus on more important things. I wasn't planning on giving my second brain up for all 40 days, but I might just see how long I can keep it going.

More than a loss of distraction, though, shelving my iPod reinforced the lesson that losing my other iPod (it's already starting to seem ridiculous that I had two iPods) had taught me. You don't know just how attached you are to something until it's gone. Temporarily giving up something that isn't necessarily harmful lets you test what's really important to you. Far from feeling like I've done my 'Lenten duty' for the year, I'm beginning to think about what else I could give up!

Are you too attached to anything? Are you sure? There's an easy way to find out.

Saturday, March 12, 2011

The Politics of Ideologies

After the rather surprising conclusion to the Wisconsin union debacle, it seems another quick political post is in order (don't worry, I'll try not to let this become a political blog). At least one side is satisfied with how it all turned out. Republicans: enjoy your divisive legislation you pushed through the system with sheer force. Democrats: please go home. It's over. You're just embarrassing yourselves. Democracy is decided by numbers, not who can shout the most.

And now for some more of my cents. Liberals have been saying that Gov. Walker's bill isn't about money, it's about power. I would modify that statement slightly.  I think this struggle has been motivated less by power and more by clashing ideologies.

What are three topics Americans can never seem to agree on? Religion, politics, and sports. In what three topics  are we guided by deeply held beliefs? Religion, politics, and sports. (There might be more) Buried beneath how you approach any of these three subjects is an axiomatic set of ideas. Unless you really know what you're doing, these ideas are probably unfounded assumptions. For example: where did the founding fathers get "democratic ideas" like innate human rights and the classic life, liberty, and the pursuit of happiness? Not a philosophical treatise deriving the importance of these things from first principles; they "hold these truths to be self-evident", in essence daring someone to try and disagree. Should we be surprised that virtually no one has?

These ideas just seem to make sense to us, but I'm not sure why. In a perfect world we would be able to come up with a common-sense, undeniable worldview and then derive important things that everyone would agree with like the laws of mathematics and the duties of government from it. But of course this isn't a perfect world, and we can't know everything so clearly, and everyone knows that a philosophy degree doesn't pay well, so people cut some corners and build their ideologies on assumptions. (In a religious context, this is known as "faith")

But which assumptions to use? I suspect that they are formed largely by a person's culture, education, position in life, and perhaps their nature. One assumption that leads to a lot of others is, "government should look out for me and my interests." This may be why so many students and professors are Democrats, and so many businessmen and gun owners are Republicans. And of course each political party is built on a different set of these assumptions about how big government should be, what kinds of things government should do, how much influence it should have on people, etc.

In light of these things, the Wisconsin conflict (and 'conflict' is an understatement) makes more sense. By introducing this bill, Gov. Walker, even more than asserting his power, is asserting the Republican ideology. Since it agrees with their ideology, Republican lawmakers support it. Since it clashes horribly with their ideology, Democrat lawmakers flee the state to avoid voting on the bill; protecting their idology is literally more important than doing their job. Similarly, Wisconsin democrats drop out of school or jobs and flood the capitol for weeks in unending protest of this attack on everything they hold dear. Neither side is willing to back down or compromise because, by assumption, they are right and the other is wrong. If only they would realize they are wrong!

I saw this dynamic in action when I suggested that the parties need to compromise in a Facebook comment discussion between some liberals. Though they were mostly polite to me, they explained that Republicans were the ones that needed to compromise. I think one quote demonstrated my point: "The Republicans are wrong. Period." Indeed.

Right now my build-it-from-scratch political ideology needs some work. Mostly it consists of "partisanship in politics should be avoided at all costs." But then, the most effective figures at ending partisanship in history have been dictators, so clearly I need more to go on. Hopefully I can hammer something out by 2012. Stay open-minded, my friends.