Dec 8

My Five Points of an Ideal OS

Category: Software, Thoughts

So there are plenty of operating systems out there and more are gaining ground.  OSX and Linux are really starting to punch holes in Microsoft’s to-date stranglehold on the consumer/business desktop OS market, but these OS’s are not without their own problems.

First OSX.  Everyone knows I have a problem with Apple.  Not everyone knows what it is though.  So lets step through my issues with OSX step by step.  First is that OSX is based on BSD-UNIX (and the Mach kernel), namely FreeBSD, a operating system family emphasizing F/OSS, and while this in and of itself is not a problem, what Apple did with it, is.  OSX was turned spawned out of not only BSD-UNIX but also numerous other F/OSS projects that then formed a good portion of the basis for OSX.  Apple then essentially threw a pretty GUI on it, and made it so it will only run on their proprietary hardware.  That’s what OSX is in my eyes.  I know there are other aspects of OSX, but I cannot get past this part because it totally circumvents the entire F/OSS model and philosophy.  Second, Apple’s OSX is horribly insecure.  Yeah, few virus’s exist for OSX but that’s because it’s more obscure than anything else.  Heck Vista was called more secure than OSX and you may be asking why this is.  Well, a lot of the open source codebase that comprises OSX hasn’t been updated in huge amounts of time.  Furthermore, OSX doesn’t do any modern sort of heap/stack/library protection or randomization.  It inherits a lot of UNIX’s security, but its legacy security.  It really needs to be brought up to date.  Finally, my last problem with OSX, is that Apple doesn’t contribute any F/OSS back to the F/OSS community.  I would be a hell of a lot less critical of Apple Computer if they simply contributed back to the F/OSS community.  It could be anything really, from simple tools to make life easier on UNIX, to open-sourcing their filesystem, to even making OSX/UNIX application interop easier, but none of this has ever come to fruition.  Plus, it seems like in general, Apple users have something crammed up where the sun doesn’t shine about F/OSS (example).  This isn’t always the case but seriously, loop-holing around BSD style licenses is one thing, but flat out ignoring the GPL is just not cool.

That being said, I’m also having some issues with the Linux license.  Story time kids, Sun Microsystems has pretty much Open Source’d everything in their software product line, with very few exceptions.  It was at this point that Sun Microsystems rocketed up to my list of favorite companies.  One of the rocking things that Sun also open sourced with everything else was their ZFS file system which, if you don’t already know about ZFS, you need to take some time to read right now.  Basically ZFS is a totally rocking, next-generation file system that has all the features and performance to please both end users and ultra-high-end SAN box admins.  However, the FSF considers the license under which ZFS was released (CDDL) to be incompatible with the GPL (under which the Linux kernel is licensed) because of some of the clauses the CDDL inherits from the MPL, which I think is a crying shame.  The GPL used to stand for freedom and extensibility and a lot of me want to believe in it but I really think the GPL has turned into an anti-corporate “screw you” license.  However, because of this confliction, ZFS can never be ported to the Linux kernel as long as both pieces of software remain licensed the way they currently stand.  Now I know there exists a ZFS FUSE driver for Linux but I think by running the filesystem in userspace, a lot of the extensibility and performance of ZFS is going to be inhibited, not to mention that this completely misses the point that a programmer should be Free to put said ZFS code into the Linux kernel should he so choose (you know, the founding basis of the GPL movement).

Plus the Open Source Business Model, as its currently known, just isn’t working to the extent that it should be (though I wouldn’t say it’s totally broken).  Companies backing Open Source and GPL can be a very good thing, lest we forget about the invaluable contributions that Red Hat, Google, and Sun Microsystems has made to the F/OSS community.

Which brings me (finally) to my five points about operating systems.  This is a bulleted list of objectives that I would like to see an OS strive for as well as what I think the Free software movement should be striving for.

  1. A commercial OS is ok, provided that, it has UNIX-like functionality, is polished and ready to meet the consumer end of the product (meaning keeping up with security patches, has a nice GUI, and stays innovative)
  2. It needs to be kept up to date.  If it does use F/OSS software, keep it up to date.  Better yet, help the projects or at least some of them with security patches, bugfixes, and otherwise
  3. It needs to be an open OS.  If you want to charge for binaries and installers, fine, but being able to acquire the source code for the OS, so the users of said OS can make changes to it as well as publish said changes, needs to be a priority.  It also needs to be free of strict licensing that could cause conflicts with other open source licenses and even some proprietary licenses as the case may be.  Also it needs to be able to run on non-vendor-specific hardware.  Don’t make an OS for one specific hardware platform.
  4. The company publishing the OS should contribute back to the open source community.  It’s important that whatever is taken out of the Open Source community, needs to be put back in.  If you take significant amounts of code out of the F/OSS community, put back in significant amounts, whether they be code, bugfixes, innovative programs, useful programs, paradigm shifts, or otherwise.  Be a responsible company.
  5. The OS should not be just a hotch potch compilation of F/OSS software.  It should strive for some sort of innovation and conform to some principle.  Whether this is meeting the needs of a niche market, or just making UNIX a more user friendly OS, its important to actually crack open an IDE and get some stuff done.  Also, it’s very important that, while maintaining a level of independence, that cross-platform compatibility be either maintained, or be made easy to maintain (such as open sourcing your package management system or better yet using a currently existing one)

These are my 5 points about operating systems as I would like to see them exist.  I doubt I’ll ever SEE this but one can dream, can he not?

I have high hopes for operating systems like OpenSolaris and Linux.  While these operating systems have their problems, they seem to be striving for these goals as listed above (the prior moreso than the latter).  However they really lack polish and a few other things at this time, but I’m really excited to see their development moving forward.

Anyway, I hope you’ve found this article at least interesting and that you can take something from it.

Ping this! No comments

Nov 19

Linux suspend to disk issues

Category: Uncategorized

So the other day I hit suspend to disk in one of my classes when I was getting ready to move from one to another.  I run Ubuntu 8.10 Intrepid Ibex on my laptop just for ease of administration and such, my laptop uses the crazy Broadcom bcm43xx wireless chipset.  But after trying to RESTORE the PC, it would not come back online.  So I did a hard reboot, at which point the X server would not come back up.

After investigating farther I noticed the problem was due to a single line in the fstab file under /etc/fstab.  Basically this file is a descriptive table of the layout of your filesystem (hence fstab)  The line of code in question was “errors=remount-ro”.  This was tagged onto my main root filesystem (mounted at /), and basically means that if the system detects an error, to remount the file system as read only.  X11 won’t work under read only mode apparently.

The way to fix this is to run fsck, you can boot into the recovery kernel and run it from there.  This basically replays the journal (if you’re using a journaling file system) and corrects any discrepancies.  I personally also removed the “errors=remount-ro” portion of that line.  I understand that this could lead to data corruption in the future, and you should realize this too if you use that line.  Basically my mounting it as read only, it prevent any further entries into the journal before you can get a chance to run fsck.

Now the permanent fix as I’ve come to find out, has to do with swap space.  From what I understand, in order for suspend to disk to work, you need at lead the amount of RAM you have available in the swap partition.  Most people have double the amount of swap that they do of RAM but I have 2GB of RAM so I only have 1GB of swap.

That should fix the problem.  I haven’t attempted it personally but I do believe this is the problem from the things I’ve been looking at.

Ping this! No comments

Sep 28

Utilizing the internet as a modern student: Tips from a Master Googler

This is an article in two parts, the first explains search engines and searching, while the second explains actual tips about searching, skip to the second part if you don’t want to read about search engines and searching.

Part 1: Understanding the Google Algorithm and computer searching

The internet is a big place.  What amasses in the petabytes (1 petabyte = 100,000 Gigabytes; possibly even larger) of information, culminates one of the largest data archives in the known universe, and best yet, it’s actively archived by search engines such as Google, Microsoft Live, and Yahoo.  However, in it’s initial days, search engines were loaded down with poor information and bad sorting algorithms.  Fortunately, this is no longer the case.  Ever since Google came into being, the original revolutionary search engine sorting algorithm, pretty much everyone has updated their algorithms to be more efficient, and thus more useful.

However, despite this, the ever growing Google index can be difficult to navigate and find useful information.  With literally trillions of entries (link) in the index, searching through it to find anything from a niche topic to the latest big news article can be an absolute nightmare (and just imagine what it’s like to INDEX all of this).

First however, you need to understand a little about searching.

For the most part, computer search programs index information based on key words.  Indexing, is the action of taking significant (important) information, id est, key words, and adding the key words plus their location to a massive database called an index.  Like the index cards at your local library, the index contains significant information and it’s location, along with some other information (Google actually keeps a cache of the sites the crawl, id est they keep a copy).  However, unlike your index cards, indexes can span trillions of entries across terabytes of drive space.

Computers, however, are able to take this information and process it based on rules (aka an algorithm) and update the index with this information.

This introduces a couple of problems.

First two are technical.  The first of the two is searching.  Its extremely inefficient to just go from A->Z on the index list.  Computer’s on their own are incapable of just "skimming" through the index like we are to find the information they’re looking for.  Therefore more efficient sorting algorithms such as Binary searching are used (although I highly doubt Google uses this mechanism, binary searching is a lot more efficient than "linear" searching, but is still inefficient in it’s own respect, id est serving up the kind of traffic Google serves).

The second is keeping all of this information up to date.  Sites, such as this blog, are constantly updated with more or less of a frequency.  Wikipedia for instance gets updated very rapidly, as do popular forums.  Other sites, such as the W3C’s site or a personal "about" page, are updated less frequently.  There are quite a few initiatives working to resolve some of these issues but more often then not you’ll notice it takes a few hours/days/weeks/months for you to see changes in a search engine’s index because of the time it takes to "crawl" (crawling is a term used to indicate what search engine "spiders" do, they’re computer programs that crawl the web parsing information and updating the index) your site.

The third is probably the most obviously and also arguably the most important.  How do you group all of that significant information together in a way that makes sense and is easy to use?

Google pioneered this thought with their revolutionary algorithm, of which the byproduct is a "Page Rank".  Google’s method was to use both the archaic method of taking your keywords and finding the site with the most of those keywords (however this resulted in quite a few "spam" sites), with a new method that measured how many sites linked to that given site with the given key words.  Exempli Gratia; say LifeHacker links to an article on Gizmodo with the key words "cell phone".  This increases Gizmodo’s "Page Rank" because another site linked to it with given key words, so that when you search for "cell phone" you’re more likely to be linked to Gizmodo than some other site with just the key words "cell phone" and no site linking to it with those key words.

Confused yet?  Well it gets worse.  In this given example, LifeHacker has a high Page Rank, and thus it’s link to Gizmodo has more "weight" (id est, influence) on the Google Spiders than say if you opened a site on Geocities and linked to another site with the key words "cell phone".

Short little trip off the path.  You probably are thinking "can’t this be exploited?" and the answer is yes.  Exploiting the Google algorithm is called "Google Bombing" and was very prominent in the 2004 US Presidential election (search "failure" or "waffle" and you’d see George Bush’s website and Michael Moore’s website linked to the prior and John Kerry’s website linked to the latter).

Now for a little more information.  Google has recently started keeping a history of your web searches (and web history if you use Google Toolbar or Google Chrome).  This adds to a decent level of personalization in your search results as Google "learns" how you search (how you phrase your search terms) and what information you look for.  However the extent to which this is effective is rather debatable.

Now that you have a better understanding of how Google sorts its data, lets work into part 2, which explains more of how to fully utilize the algorithm to find information.

Part 2: Utilizing the Google Algorithm (aka, good searching techniques)

First off, most common mistake is to ask Google a question.  This theory is due to A.Natural habit (you have a question, we’re all trained to ask it a specific way) and B. Ask Jeeves, which is (misleadingly) getting users to ask it questions.  Google is smart enough to omit some of the commonly used "question keywords" such as "how do I ___?"  It will extrapolate that phrase and guide you to a site that has instructions on how to do whatever.

However, a better method is to completely remove the "how do I?" part, and just go with the ____ part.  Exempli Gratia, if your question is how do I register to vote you’d enter register to vote in Google and it will likely lead you to a site that has registration information.  Also, this search is further enhanced by adding your state of residence, such as register to vote Texas.  Also keep in mind that Google does not keep your search terms linear unless you specifically ask it to.  So register to vote Texas is the same as Texas register to vote which is the same as register Texas vote to.  If you want to signal Google to keep all search terms (not omit any search terms that you inputted) and in that specific order, use quotation marks around your search term.  Keep in mind that this will seriously hamper the amount of search terms returned, and while useful for honing in on specific things such as quotes, will be a lot less useful for generic information because other people might have phrased their information differently.  Also keep in mind that words like "to" and "for" and words like that are largely unnecessary in a search, but can sometimes be helpful if you need to reference back to that search later.

Second is probably isn’t what a lot of you are going to want to hear, but, while decent search terms yield decent to good answers, great search terms will often times lead you to exactly what you want.  Great search terms often times require research, unless you already know about the given topic.

Like the Substitution Method in Integral Calculus, finding great search terms is more or less a trial-and-error process, all the time while you refine your search terms.  On average, I usually do 3-4 searches in Google before I find the information I was looking for.  Good search terms will often lead you to sites with good information that helps you refine your search terms.

However, I will most often (probably 95%-98% of the time) find my answer (or information to refine my search terms) on the first 2 pages of search results.  The thing about the Google algorithm is the information grows more irrelevant as you proceed farther down the search results.

This can usually be a huge time saver for those of you used to pouring over all those pages of miscellaneous and seemingly irrelevant information (often times it is).  If your top results are irrelevant to your topic, chances are you need to change your search terms.

But what is a good search term?  Well like I said, it’s largely a trial-and-error method, but once you get used to doing it you can usually come up with good to great search terms off the top of your head in seconds.  It also has a lot to do with how much you know on a given topic.

However lets take an example.  I know a lot about Windows Mobile, media formats (such as H.264), and the AT&T Tilt.  Someone asked me a question about H.264 playback on the AT&T Tilt.  Personally I had never tried this (I usually use my laptop for video playback if it’s necessary), so I have no idea what techniques work and which don’t.  However, I know that the Tilt in all logic should be able to run SD H.264 videos with decent framerates.  I searched "Windows Mobile H.264" (because Google handles search terms based on key words, not on the actual question), and then scanned through the search results.  Turns out my answer was the fourth link down "Hackzine.com: HOWTO - iPod and PSP movies on Windows Mobile".  I happened to know this was correct information because I know the iPod and PSP use H.264 as their primary codec.  I also checked the description of the link which read "Last week I mentioned that you can use TCPMP on Windows Mobile Smartphones and Pocket PCs to view H.264 encoded MP4s".  Notice how my search terms are bold-faced?  That description was exactly the information I wanted or at least had further information on it within that link.

How do you refine your search terms though?  This can sometimes be more ambiguous but will often times require you to read an article.  However, reading entire articles can be lengthy and time consuming, something we as students have very little of.  So I’d like to introduce you to a keyboard shortcut.  I know this works in Firefox (my favorite method) and in Internet Explorer (a more annoying version with a popup box).  Ctrl+F.  This is the "find" shortcut (you can go into your toolbar, and Find is usually under "Edit", sometimes called "Find in this page" or "Where is") and can be a life saver.  Remember how I referenced the link descriptions in Google?  How they bold-face your matching search terms to the key words on that page?  Well this is where that comes really in handy.  Typically you can see a short preview of the information on the page before you even enter it, allowing you to discern if it’s even worth looking at, but sometimes you need to read that entire paragraph of information in order to comprehend what it’s talking about.  So you enter the page, Ctrl+F, enter your search terms that were bold faced on Google, and this will take you directly to the location of those keywords in that page.  Keep in mind that, while Google’s search tool is not linear, Firefox’s search (and probably all of them) ARE.  So in Firefox, Windows Mobile is not the same as Mobile Windows, yet they will yield the same results in Google if you search the two.

So once your search terms are highlighted in the page (you may have to hit "Next" a few times to find that paragraph, but you may also need to find further information in that page) you can read up a little more information and may even be able to refine your search topic, or even find your answer.

Now I know that sounds like a lot to learn and practice.  It does take quite a while to learn well.  I’ve been using Google for years and years, and it’s taken a long time to work out my technique.  However, with all the searching we do as students, you can work out a method rather quickly.

Ping this! No comments

Sep 24

Pidgin problems with Vista 64-bit

Category: Tips

Been a while since I last posted but I think I have the problem with Pidgin crashing every so often in Vista 64-bit figured out.  My guess is that it has to do with UAC (User Account Control).  Disable this and it seems like it’s a lot more stable.  I haven’t totally tested this theory yet but I’m going to do some more research on it and see if I can isolate it.  And no, silent mode of UAC doesn’t help matters either.

Ping this! No comments

Aug 28

Pidgin skins

Category: Tips

Little known secret about Pidgin that I can’t seem to find anywhere but that I somehow figured out.

Obviously it uses GTK for it’s window engine.  Logic tells us that it would use GTK themes in the same way.  This is correct.

You can grab your themes from Gnome-Look (only from the GTK 2.x category) and then extract them.

One you have your files, grab the folder that contains a folder with the name “gtk-2.0″ (id est, you would find the “gtk-2.0″ folder then hit “go up one level” one time, and then take that folder) and put it under C:\Program Files\Common Files\GTK\2.0\share\themes or C:\Program Files (x86)\Common Files\GTK\2.0\share\themes if you’re on 64-bit Windows.

This is the default location of GTK, if you installed it to a different you’ll need to go under /Share/themes from the root GTK install directory.

Then go to your start menu, find the GTK+ folder and launch “Theme Selector”, select the theme you chose from the “Global” list, hit ok, and now restart any GTK applications (like Pidgin).  You should have your new theme.

Ping this! 1 comment

Aug 27

Finally

Category: Apple Lunacy

Finally, someone’s doing the right thing with all of Apple’s garbage.

Apple’s gotten away with anti-trust for way too long.

Ping this! No comments

Aug 25

Utilizing the Internet as a modern student: Part 1

Ok so this is probably going to be the first in a series I do on utilizing the internet as a modern student, making use of all the different tools we have in modern times to better ourselves.

What prompted this is I was never taught Algebra properly (and never really listened either to be bluntly honest), so I’m terrible with Algebra.  However, if you’ve read my About page, you know I’m also an engineer.  Math is essential to my degree, including a bunch of Calculus courses.  I happen to be in Calculus 2 (or Integral Calculus, it differs at different colleges) and I’m having a time with all the Algebra tricks required to solve a bunch of these equations.

In the old days I could go for tutoring, get a lot of help from my professor, or review through the book.

But this is the Information Age, what can I do now that doesn’t inconvenience the tutor (they have lots of other students to help out), inconvenience my professor (he’s busy enough as it is), or make me want to pull my hair out in a generally ineffective manner?

If you’re not familiar, a lot of colleges have been putting some of their courses online.  MIT, U/C Berkeley, Stanford, etc.  All of these and many more have been initiating free courses (called courseware) to be downloaded and viewed on demand to whoever.

So, as bad as a taste that this leaves in my mouth, I launched iTunes and went to the "iTunes U" category in the iTunes store, then scrolled down to mathematics and found a College Algebra course with ~35 lectures for download from Florida Community College at Jacksonville.  Perfect.

I also found differential and integral calculus courses from MIT which will be great for review throughout the days.  Plus I can have the MIT training in Calculus and other courses.  It may be beneficial in an interview to say "yeah I took  the course at my own college but I also took MIT’s course via their OpenCourseware service, so I have both my college’s training and MIT’s training"

So time to begin the review, aka totally retaking the course but I can’t think of a much better way to do it.

Ping this! No comments

Aug 23

JSP on IIS 6 and Apache with TomCat

Category: Tips

A note for those of you who followed these instructions on getting JSP to run transparently on IIS 6.

This method, in my experience, would only function if IIS5 Isolation Mode was enabled.

I’m not sure why but the ISAPI plugin started up just fine after enabling IIS5 isolation mode.

Check this thread out.

Microsoft has this to say about the modes of operation.

Here’s how to enable IIS 5.0 Isolation mode.

If you’re not into running Isolation mode (I wasn’t) I setup Apache 2.2 on a different port specifically to run JSP apps.  Instructions after the break…

Read more

Ping this! No comments

Aug 22

Severe Disappointment

Category: Thoughts

[rather scathing rant]

So I just got back from a Cyber Security Club meeting at my school.  I decided to sign up and attend a meeting, expecting maybe 10-15 really nerdy people like myself that live, sleep, eat, and breathe computers, or at least a healthy population of people who know about computers.

I can say I was severely disappointed.

I went in and there were probably 60 people in the club, I can point out maybe 10-15 of which qualified under my expected population.  The rest of the group were people that I’m familiar with the type.

I must give an example.  This woman WAS here this evening too mind you.  This woman was in the Cyber Security Program and was in a Java class I took last semester.  Java…as in the programming language that’s excellent for programmers but a hit to take for non-programmers.  There were no prerequisites for this course.

So this woman is in a full blown programming course and we’re maybe 2-3 weeks into the class (maybe it was prior but I think it was like 2-3 weeks in) and she turns and ASKS THE PROFESSOR HOW TO SAVE A FILE!!!!!

IS THIS THE KIND OF PERSON THAT’S GOING TO BE RESPONSIBLY FOR NATIONAL INFRASTRUCTURE SECURITY?!?

And worse yet, aside from the 10-15 people that I pointed out, the rest qualify either under the same classification as this woman or just the hyper students that aren’t really into computers but are just there to play video games.

Ok so maybe they want a job change.  Frankly I think if you haven’t had anything to do with computers up until this point that you shouldn’t be going for issues of national security, but maybe I’m missing something.  I’ll give them at least the benefit of the doubt.

So they were also electing club officers and one of them noted how he was in the club last year and they talked about cyber security but they never actually did any of this (he wanted to setup a lab, which I agree with), but really, is the cyber security club just a couple of talks and a lot of people playing video games?

I came to the club because the description was (and I quote):

Inspires learning of all things technological through trial and error, reverse engineering and professionals within the field.

And none of this was even apparent that they did any of this.

Maybe I’m missing some huge fact but really…..this is absurd.

[/rather scathing rant]

Ping this! No comments

Aug 19

How to flash a Tilt video

Category: Tips

I create a video for TiltMobility.com that explains and shows how to flash a ROM to your AT&T Tilt, check it out.

IMPORTANT! Flashing your ROM is a potentially dangerous activity and I take NO responsibility for you messing up your device or anything else.

Please read this post on TiltMobility for important information about the video prior to flashing your ROM.

Ping this! No comments

Next Page »