Monday, July 26, 2010

SIM Lock Breaking Now Legal In The US

Copyright is quite an interesting legal system, especially in the United States. Our copyright system is possibly one of the most intricate such system in the world. As you may know, one of my hobbies is to study copyright law; the encroachment of the extent of copyright law on the freedom of people to use copyrighted works for otherwise legal purposes has gotten to the point where it verges on the very point of being draconian. One of the most dangerous and impacting copyright law in effect today is the Digital Millennium Copyright Act, Public Law 105-304 (1998), added a new Chapter 12 to title 17 United States Code, and is commonly known by it’s initialism, DMCA.

For example, the DMCA makes it illegal to circumvent any form of encryption/content scrambling system, even extremely weak and obvious-to-decode ones. It makes it illegal to modify scrambled media/signed media systems to accept non-scrambled/non-signed media. Specifically, Title 17 USC § 1201 provides that "No person shall circumvent a technological measure that effectively controls access to a work protected under this title." However, there are some exceptions to these rules, and today, the Library of Congress is required by 17 USC § 1201(a)(1) to publish a new set of exemptions to the DMCA every three years. Today, they published the new exemptions for 2010.

Now, before we get into detail, let me give you a little backstory that shows the effect of one of the new exemptions.

I recently purchased a Nokia 6620 off of eBay. When I got the handset, it was locked to the old Cingular/Pacific Bell network, which has since been acquired by of AT&T. I promptly took the liberty of using a tool called “NokiaFREE Calculator” to disengage the phone’s carrier lock, known as a SIM lock, which would prevent operation of the phone when a Subscriber Identity Module (SIM) card from any carrier other than the carrier it is locked to is inserted into the phone. I did not know this at the time, and if I had, I wouldn’t of cared anyways, but such an act was a violation of the Digital Millennium Copyright Act. However, I need not worry, as the exemptions published today make such an act legal. For the sake of the legally-inclined reader, I have included below the official Statement of the Librarian of Congress Relating to Section 1201 Rulemaking, with the particular exemption that makes such SIM lock removal legal highlighted in bold.

Statement of the Librarian of Congress Relating to Section 1201 Rulemaking

Section 1201(a)(1) of the copyright law requires that every three years I am to determine whether there are any classes of works that will be subject to exemptions from the statute’s prohibition against circumvention of technology that effectively controls access to a copyrighted work. I make that determination at the conclusion of a rulemaking proceeding conducted by the Register of Copyrights, who makes a recommendation to me. Based on that proceeding and the Register’s recommendation, I am to determine whether the prohibition on circumvention of technological measures that control access to copyrighted works is causing or is likely to cause adverse effects on the ability of users of any particular classes of copyrighted works to make noninfringing uses of those works. The classes of works that I designated in the previous proceeding expire at the end of the current proceeding unless proponents of a class prove their case once again.

This is the fourth time that I have made such a determination. Today I have designated six classes of works. Persons who circumvent access controls in order to engage in noninfringing uses of works in these six classes will not be subject to the statutory prohibition against circumvention.

As I have noted at the conclusion of past proceedings, it is important to understand the purposes of this rulemaking, as stated in the law, and the role I have in it. This is not a broad evaluation of the successes or failures of the DMCA. The purpose of the proceeding is to determine whether current technologies that control access to copyrighted works are diminishing the ability of individuals to use works in lawful, noninfringing ways. The DMCA does not forbid the act of circumventing copy controls, and therefore this rulemaking proceeding is not about technologies that control copying. Nor is this rulemaking about the ability to make or distribute products or services used for purposes of circumventing access controls, which are governed by a different part of section 1201.

In this rulemaking, the Register of Copyrights received 19 initial submissions proposing 25 classes of works, many of them duplicative in subject matter, which the Register organized into 11 groups and published in a notice of proposed rulemaking seeking comments on the proposed classes. Fifty-six comments were submitted. Thirty-seven witnesses appeared during the four days of public hearings in Washington and in Palo Alto, California. Transcripts of the hearings, copies of all of the comments, and copies of other information received by the Register have been posted on the Copyright Office's website.

The six classes of works are:

(1) Motion pictures on DVDs that are lawfully made and acquired and that are protected by the Content Scrambling System when circumvention is accomplished solely in order to accomplish the incorporation of short portions of motion pictures into new works for the purpose of criticism or comment, and where the person engaging in circumvention believes and has reasonable grounds for believing that circumvention is necessary to fulfill the purpose of the use in the following instances:

(i) Educational uses by college and university professors and by college and university film and media studies students;

(ii) Documentary filmmaking;
(iii) Noncommercial videos

(2) Computer programs that enable wireless telephone handsets to execute software applications, where circumvention is accomplished for the sole purpose of enabling interoperability of such applications, when they have been lawfully obtained, with computer programs on the telephone handset.

(3) Computer programs, in the form of firmware or software, that enable used wireless telephone handsets to connect to a wireless telecommunications network, when circumvention is initiated by the owner of the copy of the computer program solely in order to connect to a wireless telecommunications network and access to the network is authorized by the operator of the network.

(4) Video games accessible on personal computers and protected by technological protection measures that control access to lawfully obtained works, when circumvention is accomplished solely for the purpose of good faith testing for, investigating, or correcting security flaws or vulnerabilities, if:

(i) The information derived from the security testing is used primarily to promote the security of the owner or operator of a computer, computer system, or computer network; and
(ii) The information derived from the security testing is used or maintained in a manner that does not facilitate copyright infringement or a violation of applicable law.

(5) Computer programs protected by dongles that prevent access due to malfunction or damage and which are obsolete. A dongle shall be considered obsolete if it is no longer manufactured or if a replacement or repair is no longer reasonably available in the commercial marketplace; and

(6) Literary works distributed in ebook format when all existing ebook editions of the work (including digital text editions made available by authorized entities) contain access controls that prevent the enabling either of the book’s read-aloud function or of screen readers that render the text into a specialized format.

All of these classes of works find their origins in classes that I designated at the conclusion of the previous rulemaking proceeding, but some of the classes have changed due to differences in the facts and arguments presented in the current proceeding. For example, in the previous proceeding I designated a class that enable film and media studies professors to engage in the noninfringing activity of making compilations of film clips for classroom instruction. In the current proceeding, the record supported an expansion of that class to enable the incorporation of short portions of motion pictures into documentary films and noncommercial videos for the purpose of criticism or comment, when the person engaging in circumvention reasonably believes that it is necessary to fulfill that purpose. I agree with the Register that the record demonstrates that it is sometimes necessary to circumvent access controls on DVDs in order to make these kinds of fair uses of short portions of motion pictures.


If you are wondering, the third exception, although worded quite cryptically, can be taken to read “If there is a software lock of any form on a cellphone that locks the usage of the phone to one operator’s network, it is now legal to circumvent this lock to allow the phone to be used with another cellular network.”

In short, if you don’t like AT&T’s service, you are free to break your iPhone’s SIM lock to use your iPhone on T-Mobile, but you may not be able to use their 3G UMTS due to frequency differences.

Edit: Although now with AT&T buying T-Mobile, it is likely AT&T will just retune all of T-Mobile's UMTS/HSPA+ network to AT&T's UMTS/HSPA+ 850/1900MHz system.

Friday, July 09, 2010

Introducing Facebook Like

(Note to those reading this as a note pasted on Facebook: This is actually a blog post on my blog, NOT a Facebook note posting. Facebook automatically republished all of my blog posts as notes under my account. My blog is so go there before complaining that I’m talking about a feature that already existed. Being forewarned, if you elect to complain anyways, I take no responsibility for the consequences of your own stupidity.)

Recently, I added support for Facebook’s “Like” button onto my blog. As you can see from the top of the blog post, there’s a new “Like” button.

The Facebook “Like” button is not a standard Blogger feature. To add it, you need to edit your blog’s template. If you know what HTML and CSS is, or at least have enough brains not to get scared simply because you have to sift through a lot of cryptic text, then (hopefully) this will work for you. I’m going to assume you’re using one of Blogger’s standard templates, or a slightly modified one, as some fully custom templates are really different in design and these instructions may not work with them.

First, log into Blogger, and go to the control panel for your blog. From the “Design” tab, select “Edit HTML”. Under the “Edit Template” section of that page, there is a checkbox labeled “Expand Widget Templates”. Check this checkbox if it is already checked (The page will reload when you check it).

Now, in the template code box, locate a line of HTML that says “<div class='post-header-line-1'/>” – as a hint, press Ctrl-F and give Find “post-header-line-1”. Below this line will be a “</div>”. Create a new line between these two lines and paste in this code:

<iframe allowTransparency='true' expr:src='&quot;; + data:post.url + &quot;&amp;layout=standard&amp;show_faces=false&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&quot;' frameborder='0' scrolling='no' style='border:none; overflow:hidden; width:450px; height:40px;'/>

If you cannot find the “post-header-line-1” code, look for a line containing “<data:post.body/>” and put the code above BEFORE it.

Volia! Now all of your blog posts on your Blogger blog will now have a Facebook “Like” button at the top of the post!

If you want to put the button at the bottom of the post instead of the top, place the button’s code after the line “<div class='post-footer-line post-footer-line-1'>”. If you had to follow the instructions right after the button code, then it’s already at the bottom and you do nothing.

Now, it’s only time until people start “liking” my blog… Muhahaha….

Saturday, June 12, 2010

A Discussion on Keyboard Layouts

Recently, I've taken a look at my keyobard, and realized I wish it had more keys. More function keys.

First, let's take a look at the standard US 104 key QWERTY keyboard. This is the keyboard that virtually every American knows (and knows no other).

Here's a diagram of the standard US keyboard layout. Virtually every American keyboard looks like this, if not exactly like this (Click on the images to see more than just the left-hand side):

This is derived from the IBM 3270 terminal keyboard layout, here's a picture:

Notice the extra row of function keys at top, as well as the ten command keys to the left.

Sun's US layout of their workstation keyboard is extremely similar to your standard US PC keyboard, adding volume control keys above the number pad, as well as taking the 3270's lefthand command keys and adding a big "Help" key above it, to the left of the Escape key.

While these are good keyboards, as a programmer, I want lots of keys. I want to bind the leftover keys to various functions of my editor, or OS - for example, a dedicated key for search-and-replace, instead of a keystroke involving shift keys (e.g. Control-F or Control-Shift-F).
Also good would be more keys for typing in extended scripts, as to use Greek symbols, or advanced mathematical symbols. A good keyboard that comes close is the "Space Cadet" keyboard that was popular at MIT a long time ago; it was used on Lisp machines running MIT's "Incompatible Timesharing System", an early mainframe OS. The keyboard they used:

If you look at the Space Cadet keyboard, there are multiple shifts, labeled "Shift", "Greek", and "Top", enabling at least 5 symbols per key. The "L" key, for instance, could produce both upper- and lower-case Roman letter L, as well as upper- and lower-case Greek letter Lambda, and finally, a double-arrow symbol if used with the "Top" key.

Combining the extra typography features of the Space Cadet keyboard, with the familiarity of the US keyboard, and adding features of the Sun and IBM terminal keyboards, leads you to what I believe is the ultimate keyboard layout for programmers accustomed to the US keyboard layout:

If you look at this final layout, it have the left-hand editor keys of a Sun keyboard, as well as the shiftable modes these keys provide on the 3270 keyboard, as well as the Sun "Help" key, the full Greek and mathematical character set of the Space Cadet keyboard, as well as the Space Cadet's full shift key set - "Control", "Meta (Alt)", "Super", and "Hyper", as well as a "positive" and "negative" diamond key - usually used as "Meta" on Sun keyboards, the full 24 function keys of the 3270 keyboard as well as it's adjusted directional keys that no longer look like a Tetris piece, as well as your common PC editing keys - Insert, Delete, Home, End, Page Up, and Page Down are all in their typical places. Also, the number pad has extra keys to make entering formulas and other mathematical errata much easier. Also, of note, that this keyboard's keys have all the symbols for the various keyboards it is derived from - for example, the "Super" key - which is what X11 maps the Windows key - has the Mac "⌘" symbol on it's front side - which is also good because the Windows key maps to this key on Mac OS X (when using USB keyboards). Note that the left-side command keys have all the Sun command labels, as well as some of the 3270's labels on the front side of the keys, that there is an Alt Gr on the right, that the left Control is labeled "Reset" on it's front-side, matching the key on the 3270's keyboard, as well as other front-side etchings for 3270 compatibility.

One key that I find unusal is the angle-bracket key. I've seen it once on a French keyboard I once had, being between "Z" and the left "Shift", but it's addition here would be quite useful, especially when writing SGML-derived markup.

In all, this ultimate keyboard has 148 keys, and while I do not believe that it has ever been manufactured, I would be willing to pay for it if it were to be made. This is one impressive layout indeed.

Thursday, June 10, 2010

Android Market: Security through Obscurity?

While I haven't taken a good look at any Android devices that have the Android Market installed (instead using unofficial builds without it), I've come to the conclusion that the Android Market's client software probably implements part of the Market paywall - that is, were it open-source, it would be too easy to get software that costs money, without paying for it.

While this is just speculation, I see no reason that Google doesn't open source their Android Market client software - after all, many other companies have good and solid paywalls that haven't been defeated by fully modifiable software - I can still buy things on Amazon using a modified copy of Firefox, with a patched Gecko engine, and I still have no access to the content until I pay.

Yet, why can't Google do the same? Is it because of the multiple Android Markets, one per nation? Are they afraid that someone's going to simply patch the part of the code that says to connect to, oh, the Belgian AM server to instead connect to the US AM server? Google runs AM, so why the hell don't they solve THAT issue by using IP-Geolocation? It's difficult to fake an IP address. Of course, Google will argue that people will go to different nations to get apps only available there.

In that case, take a hint from the Portal developers. "In the case that skipping ahead arguably takes more skill than solving the puzzle proper, we let the ninja solution stand." - that is, if someone would fly overseas just to get apps from the US Android Market, just let them do it - they already spend $1000 just to get here.

Wednesday, June 09, 2010

McDonalds Don't Want To Hire You

Today, I tried to apply for a job at McDonald's, as I'm fucking desperate, I have no real qualifications for anything, and my computer skills are self-taught (read: as far as an employer is concerned, I don't have them, as I have no certifications to prove it.)

However, McDonald's outsources their electronic employment system to a company called Aon Corporation. Going to their website, I find their self-description, which reads as follows:

Aon Corporation is the leading global provider of risk management services, insurance and reinsurance brokerage, and human capital consulting. Through its 37,000 professionals worldwide, Aon readily delivers distinctive client value via innovative and effective risk management and workforce productivity solutions.

The only one of their listed services that would have anything to do with employment is "human capital consulting", which sounds quite ill-defined to me.

Anyways, McDonald's has a main landing site that you start off your job search at... it's, which lists all fifty states in a list, each one being a link to a new site, with names like and, each proving essentially the same page, just tailored to each state - that being a list of municipalities for each state listed in the bottom-right. On an interesting note, they list both "Gainesville" and "Gainsville" as cities in Florida - the second one is merely a typo of the (correct) first. Goes to show that they don't even do basic fact-checking when compiling these lists.

After finding the location matching where I am at, I am taken to a page listing all the openings in my area - sadly, only a crew member position at the only McDonald's in the area - but that's fine. Clicking on it brings me to a page where I am also shown that openings for crew member are also at locations in areas right next to but otherwise outside my own (and my own area is only about 6 sq. mi. - 10 km2).

Each store shown on this page has two links - the store home page (which is just a generic info page), and an "Apply Here" link. The "Apply Here" link for each store contains an extra identifier to uniquely identify the store at the end of the URL, and takes you to a page that automatically redirects you to Aon's application system. The problem here is that the same identifier is again passed via URL token, and sometimes the Aon system doesn't even get the store-identifying token. This leads me to a page where I'm asked to enter a promotional code, which I was not given, and nor is one pre-entered into the entry box provided.

After going through the system a few times, I finally got to a page where I can actually fill out an application, which didn't last long as poor JavaScript on the page caused Firefox to hang and peg the CPU with 100% constant CPU usage, leading to me eventually killing it.

Worse of all, the Aon site is extremely slow to load, on the order of nearly 30 seconds per page. I am not using mobile broadband or a poor internet connection - I have a good broadband cable connection, with 10 megabits down and 1 megabit up - and nothing is using the network aside from the browser, as my router has a page where you can monitor network bandwidth in real-time, and it indicates less bandwidth usage than available on any dial-up connection - the slow Aon site loads slower than dial-up's max speed (56 kilobits per second).

I can see no real reason for this. This is 2010, I'm using Mozilla Firefox 3.6.3, and I cannot possibly see 10,000 HTTP requests against their server each and every second - nothing less than this would slow a decent redundant server system with a 100MBit symmetrical connection - the minimum standard for medium-ticket websites.

Obviously McDonald's doesn't care at all about potential customers, nor does it care to find a new business partner to handle their employment application system, since their current one is providing unacceptable service. I guess they'd rather me work at, oh, Burger King or Taco Bell, instead of at McDonald's.

Saturday, May 29, 2010

The End of an Era

Well, guys, looks like this is it. As many of you are well aware, it is next-to-impossible to purchase an x86 PC that is purely 32-bit. The only success you will have in this endeavor is if you buy an older, used PC or a netbook/nettop.

Which brings me to this point: The next major releases of the big two OSes, Windows and Mac OS X, will more than likely have dropped support for 32-bit hardware.

In a way, that's not too bad, the last time 32-bit only x86 hardware was sold as a serious desktop was three years ago, back in 2007. Pure 32-bit x86 processors these days are limited to Atoms and embedded chips. But, there's a downside. For example, Asus is selling a nettop based on the Eee PC netbook hardware called the Eeetop. It contains a 32-bit processor, and although it sits shiny on store shelves today with a fat $699 pricetag, when Windows 8 comes out around 2013 or so, forget about upgrading to it - you'll find the Eeetop's 32-bit Atom unable to run the 64-bit Windows 8, which for all likelyhood won't be produced in a 32-bit flavor.

Before you say that this seems unlikely - think again. Microsoft's server and enterprise OSes have always set the trend for their consumer-class releases. Windows NT eventually replaced the classic Windows line starting with Windows XP, and as another sign of things to come, Windows 2008 Server R2 has already dropped support for 32-bit x86 processors, being available exclusively for 64-bit x86. Microsoft has been providing 64-bit versions of Windows since Windows 2000 for the Intel Itanium processor, however, it wasn't until Windows XP that 64-bit x86 builds were shipping.

And don't think that the Hackintosh will save you. I don't expect Mac OS X 10.7 to ship with 32-bit support, aside from user-mode backwards-compatibility (although it's likely that it can be hacked to run on older 32-bit hardware, since it will without a doubt contain 32/64 universal binaries of pretty much the entire operating system for the sake of backwards compatibility.)

However, I highly doubt that any of the major open-source operating systems will be dropping 32-bit x86 support anything within the next 15 years. In fact, I wouldn't be surprised if the announcement that support for i386 branch is being dropped in Linux arrives sometimes after 2070, with NetBSD following suit sometime around 2100.

Compare that with Microsoft, who, as I said before, seems to be dropping 32-bit x86 as early as 2013.

Wednesday, May 26, 2010

Quick Note: Information about Aerial TV reception

I was recently looking the 'Net over for information about receiving broadcast television, and the best type of aerial antenna to use. After a bit of searching, I found the information at ATV (Aerials and Television) to be quite in-depth on the matter, as well as full of rich British humor that I can't get enough of.

Although their information mainly caters to UK residents, such as the terminology used, the information on choosing an aerial antenna and how to place it, etc., will remain valid everywhere on Earth - the laws of physics do not observe your local laws, no matter how fucked up they might be.

"Name changing bollocks," I can't help but to laugh while I learn...

Tuesday, April 20, 2010

Why RuneScape's Graphics Suck

If you ever wondered why RuneScape's graphics sucks, it's because it's graphics engine can easily be made to do this:
If you ever wondered why RuneScape sucks, it's because it's graphics engine can easily be made to do this:

Sunday, April 11, 2010

Maybe There's Something Better Than The iPad After All

Well, when everyone found out that the iPad was NOT going to be Mac OS X on a tablet, they were hugely disappointed. Hell, even Hitler was disappointed. Instead, they're given the same iPhone OS that on the iPod Touch and the, well, iPhone. But to us that were looking for OS X on a tablet, don't fret, it might be possible after all. A German consumer electronics start-up named Neofonie has announced a new tablet called the WePad.

And here's the bit that will really get your hopes up. This bad boy comes with an 11.6" display (1366x768), a 1.66GHz Intel Atom N450 processor, GMA3150 graphics... wait, stop right there... An Intel Atom? But that's an x86 chip! And, earlier versions of this chip (N270, for example) has been known to run Mac OS X and Windows XP - The Acer Aspire One AOA150 can run Mac OS X and it has an Intel Atom N270 and the Intel GMA950 GPU, a predecessor to the GMA 3150. Well, back to the specs... It also features a built-in webcam, two USB ports, a SD card slot, integrated 3G, and a a battery that'll last long enough to watch Stephen King's The Stand without interruption - A full six hours.

Aside from that, the tablet runs Google's Android operating system, which has popularity as the OS of the HTC Hero, the Motorola Droid, the Samsung Galaxy, and even Google's own Nexus One. The WePad has integrated stereo speakers, 16GB of flash memory built-in with an optional upgrade to 32GB, a SIM card slot, access to Google's Android Market and the WePad App Store, and the major deal-breaker, full Flash Player and Adobe AIR support, bringing thousands of popular Flash web apps and games to the WePad - a big plus for, e.g. Facebook users that play FarmVille, who found out that they can't tend their farms from the iPad due to a lack of Flash.

Since this tablet is not too far off from a netbook, in terms of hardware, it is more than definite that the OSx86 crew will get Mac OS X running on this tablet, possibly even make Hitler happy. If Mac OS X isn't your thing, well, I can't see any reason why you couldn't run Windows XP or Windows 7 on this thing - Especially with Microsoft's push of Windows 7's new Windows Touch APIs for tablet computing, which isn't actually anything new, since Windows 3.1 had an optional API, Windows for Pen Computing, as did other Windows releases.

Finally, remember, that the Android operating system uses the Linux kernel at it's very heart, and is more-or-less fully open source, so if this thing runs Android, you bet it'll run Linux like a dream.

Primary source:

Saturday, April 03, 2010

Upgrading the Pentium 4

Well, here at whatever organization this is, we run on a slim technology budget. To be more forthcoming, we get $0 plus whatever spare equipment we can dumpster-dive for.

So I decided to see how far I can upgrade my desktop. It's my newest machine and it's still too old to be useful. It's an HP dc5000 SFF, and it has an Intel Pentium 4-HTT Processor @ 2.8GHz. This rig is old, so it has a Socket 478 processor.

For what Google tells me, I can try to get a slightly faster Pentium 4. Like that's going to boost my PassMark scores much. But wait, what's this?

A Core 2 Duo that will run in my machine?

I don't know what to make of this, but according to the product listing, and the photography, this appears to be a Core 2 Duo that I can drop in a Socket 478 motherboard, although it costs almost the price of a good low-range PC.

But at the same time, then my desktop would perform about as well as a good low-range PC. Except the graphics, of course, there's no real fix for the onboard Intel 865 chipset. There's only PCI slots, and my PCI GeForce 2 MX 400 isn't going to help.

Tuesday, March 23, 2010

Blizzard and the iMac G3

I managed some time ago to get a iMac G3 Rev. B machine from my neighbor, who was simply going to junk the machine. I thought that was a horrid idea, so I took it off their hands.

After getting the machine, deciding what to do with it was a little tricky. It's more than a decade old. It has less than 2.5% 2010-era RAM. It's processor runs about 1.25% the speed of a modern processor. And I don't mean processor clock speed. Let me explain this:

The iMac processor is a 233MHz PowerPC 750 (a G3). This processor is about 10% the computational throughput of a 2.8GHz Pentium 4 HT (before "HyperThreading technology" was initialized as HTT). Same P4 chip is about 10% the computational throughput of a modern Core i7 processor, ergo, the iMac is 1/100th the speed of today's machines

The machine, when I got it, only had one upgrade from stock. It had an additional 32MB RAM card installed, which I replaced with a 256MB PC133 card. too bad only 128MB is detected, leading to a current usable total of 160MB. The machine is meant for PC66 RAM, which may explain the partial RAM incompatibility.

Now, I tried to install Mac OS X 10.1 a few months ago. As I had lost my Diablo II CDs, I instead gave Blizzard my CD-Key to enable digital downloads for that title. After downloading the D2 netinstall for Mac, I was prompted by the Installer to run 10.2. Ok, no big deal.

Wait a few months, decide to try again, and now I find out that Blizzard updated their netinstalls for their digital downloads. Now, the bare minimum is 10.3.9 (as their installer depends on libstdc++.6.dylib). The games themselves likely have much lower requirements, but the installer went from minimum of 10.2 to 10.3.9 in just a few months.

According to this article on Low End Mac, I should stick to Mac OS X 10.2.8 (what I have now). But this means no Blizzard games! I can easily pirate the game .iso discs, but I want to try to do this 100% legal.

Currently, I'm burning Mac OS X 10.3 CDs, and in a little while, I'll upgrade to 10.3.9, and see if the Blizzard Downloader will work then.

Sunday, March 07, 2010

StarCraft II: Wings of Liberty Beta

So, a couple of days ago, I received an invite to the StarCraft II Beta. I thought the whole thing might be fake, but the email said that I would have StarCraft II on my page.

So, I go to check my account, and sure enough, I'm invited.

Monday, March 01, 2010

1943 Walking Liberty Silver Half-Dollar

I was recently sorting amongst some materials in my home, and I came across this coin: A 1943 Walking Liberty silver half-dollar.

For your enjoyment, here are some high-res scans.

Head side:

Tails side:

Sunday, February 28, 2010

Microkernels vs. Monolitic kernels - What's The Difference?

I was recently asked to explain the differences between a monolithic kernel and a microkernel. Here I will discuss the pros and cons of both. I neither advocate one or the other, so those of you who are looking for support in your holy war (yes, that means you, Andrew Tanenbaum).

To start things off, let's discuss monolithic kernels.

A monolithic kernel is the traditional kernel of the days of ole. All the drivers and system services exist in one big binary blob, sharing code and data.

Now, the pros and cons of this are:
  • Pros: Code runs much faster. Most, if not all, system services run in kernel mode, so there is no need to perform costly context switches between user mode and kernel mode. Only two context switches are needed for most syscalls, one from user to kernel on invocation of the syscall, and another context switch from kernel mode back to user mode on syscall return.
  • Cons: Bugs in the kernel have a high chance of bringing the entire system down. Also, some kernels must be recompiled to add or remove drivers.
Common systems with a monolithic kernel would be Linux and FreeBSD. Note, however, that more specifically, these systems have a modular kernel, that is, a monolithic kernel that supports having parts of it loaded sometime after kernel boot, and possibly also removed as well. Also note that it is also possible to configure the Linux and FreeBSD kernels to be fully monolithic, without module support.

Microkernels, on the other hand, only have a very small portion of their code that runs in kernel mode, that is, has unfettered access to the full system hardware. For the most part, the portion that runs in kernel mode is a mere message marshalling system. All other system services, such as the filesystem, network stack, tty driver, etc., all run as user mode daemons known as "servers".

The pros and cons of this approach is this:
  • Pros: If a bug crops up in a system service, and crashes that service, it is very unlikely that the system will crash with it. Usually, the system will merely restart the service. Depending on the system, there might be slight side effects from the service crash. For example, if the network stack crashes, applications might find all of a sudden that their socket handles are all now invalid. Sometimes, this can be made transparent to the applications, e.g. if the filesystem driver crashes, the libc could transparently detect this and reopen all file handles that were made invalid in the crash. Also, adding new drivers and system services to the system is as simple as starting the respective servers for them.
  • Cons: Your system runs terribly slower than a monolithic kernel. A write() syscall to a tty, for example, will go to the filesystem driver first (as /dev/tty is filesystem), and then the file system driver would then call upon the teletype driver, and so on and so forth. It may take hundreds, if not thousands of messages to complete one traditional syscall, each message requiring two context switches each, one to kernel mode and one back, and each context switch may take thousands of CPU cycles to complete.
Common examples of microkernel-based operating systems include QNX and Minix. Note that QNX's microkernel architecture is advanced enough to allow network-transparent message passing - allowing you to, for example, directly access hardware in another machine as if the hardware was in your own, much akin to Plan 9.

In short, each type of kernel has it's advantages and drawbacks. I am not trying to say that one is better than the other, or anything like that, but each one has it's merits, and I leave it up to the reader to determine which is better for any given situation.

Friday, February 05, 2010

FreeBASIC on FreeBSD

A few days ago, I built a full installable package of FreeBASIC, for FreeBSD 8.x. The pacakge includes a FreeBSD-tailored, modified from the Linux one.

It seems to work good, except I forgot to add in the graphics library!

Either way, you can read about it, and find download link at

Friday, January 29, 2010

PsyMP3 1.2-RELEASE is, well… released!

I am proud to announce that I have finally gotten the PsyMP3 codebase to a point where I am proud to announce a new stable release that is suitable for mass consumption.

You can get it at the PsyMP3 project page, always at

Also, I’ve decided to use a new high-color icon. While the classic Windows 3.1-esque icon is nice and familiar, it’s not in modern style and I’ve decided to upgrade to a new icon.

Here’s what the new icon looks like:


Kudos to Agamemnus of Freenode’s ##freebasic for making the icon

Wednesday, January 27, 2010

Devices in Review: Augen Eclipse 2GB

Today, I was given a new mp3 player made by a company right here in Florida, called Augen. This device is called the Eclipse, and it is rather much a simple, cheap ho-hum Chinese-build player with Chinese-coded firmware.

 This is an cheap Chinese knock-off of the iPod Nano with a video camera, circa 2009.

The first thing I did when I first got the Eclipse is tried out it’s FM radio. After a few minutes figuring out the controls, I managed to get it to work. The control set is rather annoying, and leave a lot to be desired, and can be at times be difficult to use.

As for the FM radio, it’s piss-poor. I was only able to pick up 4 stations which I could understand the sound being broadcast, and only one station out of all those being broadcast in my area was even coming in clear as day. I get better reception with a cheap 50¢ micro FM radio.

The device does support displaying text files stored in it’s memory, but the feature is an utter joke. It does not understand newlines, nor does it know how to intelligently wrap text. Also, the text display is a monospaced, bitmap font that is very similar to the classic Courier font. Worse yet, it only has a text display that is 15 characters wide. If you are imagining this in your head, this must look rather hideous.

Picture 120 A close-up of the screen, giving you an idea of how the interface looks. That spectrum analyzer display is fake as fuck.

The Eclipse has the capability of playing back your common audio formats, such as Windows WAVE format, ISO/MPEG Layer-III Audio (commonly known as MP3) and Windows Media Audio.

But what’s this? Look closer at this icon.


No, you’re not misreading that, that plainly does say “OGG”. In the cheapest and utter shittiest of mp3 players, the Augen Eclipse boasts support for the patent-free Ogg Vorbis format.

For video, this device supports the wholly shitty AMV video format. AMV is a cheap and overly simple audio/video format, designed to be decoded by firmware for S1 MP3 players, which are powered by an 8-bit Zilog Z80-compatible processor.

AMV is basically 12 or 16 FPS Motion JPEG video with a fixed quantitizer and a crappy IMA ADPCM variant for audio.

Well, that it. If you want to find more information on this device, I can’t help you. The company that makes this thing doesn’t even have an email address.

My rating: 4.1 / 10 (and 2.5 of that is purely because it supports Ogg Vorbis)

The Porn Of PETA

It’s time again for PETA’s “State Of The Union Undress”! That’s right, our female narrator will strip down to nothing, leaving both the hoo-hoo and the ta-tas exposed bare for all to see, all in the name of animal rights!

Check out the video at

And the embedded version below:

PETA's 2010 State of the Union Undress

Thursday, January 21, 2010

Of Window Managers…

I have always been a nomad, going from window manager to window manager, across systems and networks, from the classics, such as twm, fvwm, mwm, to more modern and contemporary WMs such as Enlightenment, KWin, Metacity, IceWM, Fluxbox, BlackBox, Openbox, AfterStep, Ion (and Ion 2 and Ion 3), etc., and I have not found a WM that works quite like what I want without all the extras that I didn’t.

Until matwm.

I know this Belgian guy names Mattis that wrote a window manager named matwm. Originally, it was a fork of evilwm/yeahwm, but that didn’t last. Only one release was ever made, matwm-0.0.1. Enter matwm2. A from-scratch, brand new window manger that is EWMH-compatible and ICCCM-compatible.

For several months now, Mattis has been working hard now, refining matwm2 to a wonderful state. Only recently has he declared a 0.1, after almost 100 0.0.x releases, and even the 0.1 prereleases feel like a stable 1.0 release!

UPDATE! Screw what I said about prereleases, 0.1.0 stable has been cut out, and you can get the code from

It is known to work on the following OSes, and should work on far earlier releases than tested:

Linux 2.4 / glibc 2.3 or later on x86

Linux 2.6.27 / glibc 2.8 on PowerPC

FreeBSD 6.2 and later

NetBSD 5.0 and later

OpenBSD 3.6 and later

Microsoft Windows Subsystem for Unix-based Application version 5.2, 6.0, and later. Should work on earlier Interix 3.5. Unsure about 3.0 and earlier.

Minix 3.1.3

Solaris 10 (from the Solaris Express Developer Edition 09/07 DVD)

Since I took too much of your time with useless details above, here’s a video of a fat boy running into a fence and knocking it down: