Archive for the ‘Technology’ Category

imac

This last week, I got an iMac. One of my comps (my server) had hardware in it from about 2001 (it had the very first Athlon XP in it right when they just released, when the chips were branded with the string “Mobile Athlon 4″ before they were officially named Athlon XP) and the hardware was starting to give errors and crash and show its age. So I got an iMac as a new desktop, made the old desktop my server, and retired the 6 year old server.

Anyone who knows me knows I’m a hardcore Linux geek, and is probably astonished. Well, the intel imacs can triple boot OSX, Linux, and Windows, so your point is moot. Macs are essentially PC’s in pretty cases now.

However, I did decide to switch to OSX as my operating system. I will deal with that aspect in another post; this post is specifically for the hardware aspect of the iMac.

This is one of the new Aluminum/Glass iMacs that was released earlier August. In fact, I specifically waited for the refresh before buying. It’s a 24″, 2.8 core 2 duo, 4Gb ram, 750Gb hard drive (because I definitely need that to store all the stuff I had on the 3 320Gb hard drives in the old desktop).

It is a triple boot system – OSX, Vista, Linux. Well, it will be; I have it partitioned to support all three, but I only had the time to install Vista alongside OSX. Getting Linux working on the intel mac hardware is not 100% straightforward, so I decided to save that for when I had more time (i.e. not packing at the same time). Most people don’t like Vista (myself included), but I don’t have any more valid keys for XP, and I don’t really want to have to reinstall if/when vista becomes standard and XP is obsolete. Besides, I only use it for games anyway.

The form factor is nice, for a 24″ computer. It’s cool that there isn’t a separate tower, but that doesn’t really make a 24″ screen any easier to carry around.

The 24″ screen has a native resolution of 1920×1200, which means it supports 1080p. I’ve only seen very minimal stutter on certain 1080p anime rips, and none on others. For example, a 1080p rip of an episode of Moetan (a magical girl anime) doesn’t stutter at all because it’s only 2d animation. A 1080p blu-ray rip of Ghost in the Shell 2: Innocence (which has tons of detailed 3d graphics) skipped a little bit during the really detailed 3d parts. Then again, there are other factors involved there, such as cpu power for decoding the h.264 encodes, video card power, etc.

It’s really quiet, which is a far cry from all my other computers, which sound like turbines. However, with so few fans, it makes me wonder about the lifetime of the computer, or, more specifically, the lifetime of the hard drive. The thing runs fairly hot, because there’s not much cooling (fans, airflow, etc). And, as most overclockers know, heat is a computer’s worst enemy. It will cause CPUs to miscalculate and cause kernel panics, damage hard drive platters and eat data and cause bad blocks. I can put my hand on certain spots of the computer and have to take it away after a few seconds because it’s so hot. I can feel the ambient heat of the machine when I put my hand a foot away from it. And this makes me uncomfortable because the hard drive is dead smack in the center of everything. CPUs can survive some heat, you just let it cool down again. But once a hard drive develops bad blocks, they never go away. I have learned my lesson from failed laptop drives, though, and have backup scripts that keep copies of my data on my server, so it’s not as big of a worry as it would have been without. However, I haven’t played any games yet. I will eventually, but I’m afraid of how the load will bake the internals of the computer.

The video card: All of the new imacs besides the lowest model come with the ATI Radeon HD 2600. Mine has 256Mb VRAM; I think most of them have that. Unfortunately, this is the budget $99 ATI Radeon that gets half the benchmarks of the equivalent line of NVidia Geforces. They don’t allow any video card upgrades in the imacs. I don’t play that many games, and when I do, they’re usually not the top-of-the-line games, but still, it would have been nice to have been able to get a more powerful card. Then again, it goes back to my concerns of baking the internals with heat; more powerful video card means more heat.

The remote: useless, as far as I’m concerned. I’m rarely ever not at the computer, or doing anything in the room but away from the computer that would necessitate a remote.

The camera: also useless, as far as I’m concerned. I’m not so self-obsessed that I would take pictures of myself, and I don’t video chat with anyone (and don’t really want to), and I’m not an online webcam whore, so I don’t use it for anything.

The disc drive: it’s a dvd burner, but I do everything by network, so I don’t use discs at all. The slot loader is kind of cool though, and saves space.

The keyboard: this is the flat laptop-like silver and white keyboard. I got my keyboard and mouse wired because I wasn’t entirely sure if Linux could support bluetooth peripherals (especially during install, you can’t exactly install without a keyboard). Plus, the wireless version of a keyboard doesn’t come with a numpad, which is just stupid. It’s not a freaking laptop keyboard, it’s a wireless desktop keyboard. I’d also be afraid of knocking the mouse off of the desk and losing it under the couch or something if it wasn’t connected to anything.
I like the way the keys feel like a laptop’s. I’ve been using laptop keyboards and ultra slim laptop-like desktop keyboards for a long time, so I’m right at home with it. I’m a bit afraid of popping the keys off and rearranging them into dvorak as usual because I’m afraid I’d break them, though.

The mouse: I hate this thing (the Mighty Mouse) and want it to die a painful death. I’m using it because it’s new and it came with the computer, but that doesn’t mean I don’t think it sucks. For anyone who doesn’t know what a mighty mouse is, it’s a mouse with one mouse button that pretends to have more buttons (more on that below) and a scroll ball in it to scroll in any direction.
Pros: The scroll ball is cool. First mouse I’ve had with vertical and horizontal scrolling. Though sometimes it feels like you’re rubbing a nipple.
Cons: It’s a one-button mouse. Now, here’s the thing – Apple couldn’t abandon their one button mouse ways, but wanted to support right and left click. So instead of the obvious way of making two mouse buttons, what do they do? Have a touch sensitive system that detects whether you’re pushing the right or left side and reacts accordingly. What the fuck is this shit? Now, if it was actually clicking the left side or the right side and reacting accordingly, I could even believe that. But when you press the button, it detects whether your left finger is touching the mouse – if the right finger is touching the button but the left finger is not, it’s a right click. Otherwise, it’s a left click. Now, here’s the problem – when you have both fingers on the mouse, and you right click, you have to lift your left finger up while you press your right finger down to click. How counterintuitive is that? And when you want to middle click, you also have to lift left finger off the mouse and push the middle (scroll ball). Sometimes I feel like my grandfather, whom I just taught how to use a mouse for the first time a couple years ago, who lifts his entire hand off the mouse and pokes the button when he wants to click. Congrats Apple, you’ve created the bastard love child of a one and a three button mouse. And the touch sensitive technology is probably several times more expensive than three buttons.
There are also two side buttons (which are actually buttons and not a part of the main mouse button amalgamation), for activating Expose. The one on the right is not reachable by me, and is obviously symmetrical for left-handers. The left, on the other hand, is not really under my thumb. So I kind of have to reach up a little awkwardly to reach it. My hands are not really big, but they’re not really small either. (If I had to describe them, I’d describe them as slightly larger than average, and slightly chubby) But the other problem (which will hopefully fade with time) is the fact that the side buttons require a fair amount of pressure to activate. Now, when you’re clicking them, you need to put pressure on the other side of the mouse to keep the mouse from sliding. So, due to the asymmetrical nature of your 4 fingers vs your thumb, where does the rest of your hand logically put pressure? On the right mouse button (or where the right mouse button would be). So when you try and push the thumb button, sometimes you accidentally right click. I learned this one the hard way: I was filling out a form in Safari, and tried to activate expose by the thumb button. I accidentally right clicked. When there are no pages to go back to in the current window, the top menu option is “Reload”, which is what was accidentally selected. It reloaded the page, and wiped all the form data I was in the middle of typing.

But other than the mouse sucking my balls, and the video card being kind of weak, the machine is pretty cool.

if (("$Linux" > "$Windows")) { return true; }

So I've been asked in a post about Windows vs. Linux.

I've actually been asked numerous times about this – being the only Linux advocate that I know, and having converted a couple people, I've had to think about this a lot. So I'll just dedicate this post to that topic. There's nothing else really going on anyway; just studying my ass off for finals.

There are quite a few key differences between Windows and Linux that need to be brought to light. I realize that I'm jumping around between pros and cons, so you have to read it all. However, I don't believe that a simple pro-con list proves very much.

Linux is open source, and Windows is proprietary. This is one of the primary draws of Linux – it's free. You can grab any Linux distribution for free, install it, and run it, for no cost. (Well… maybe the cost of a blank CD or two) Most of the software on Linux also follows this philosophy – you can download, install, and run the software at no cost. I haven't bought a single application since I started running Linux.
A lot of people, however, claim that because Linux is open source, no one manages it. There is no support – a very important factor for businesses, especially large ones. But there are quite a few vendors that sell "Enterprise versions" or some equivalent. In this case, you're not paying for the software; you're paying for the support that you get from that company. So businesses can buy Red Hat Enterprise Linux, and call up Red Hat's support anytime there's a problem.
And best of all… even if you pay for enterprise Linux w/ support, it's still cheaper than if you had gone with windows.

Windows owns over 90% of the market share. There's really no way around this. The percentage of people in the world that run Linux is… well… in the single digits. This means that all the companies developing really good applications, games, whatever, are going to do it for Windows – they want to sell it to as many people as possible. A lot of applications have clones/equivalents: For Winamp, there's XMMS. For MS Office, there's OpenOffice.org. For Excel, there's Gnumeric. Etc. In fact, there's a decent table of Linux equivalents here: http://linuxshop.ru/linuxbegin/win-lin-soft-en/table.shtml . However, there are those certain exceptional programs that really don't have an equal – there's no way to replace Adobe Photoshop. The Gimp is a decent equivalent, but it's not nearly as powerful as Photoshop. Propellerhead software's Reason virtual audio rack / tracking system? No equivalent. There aren't exactly 3D modeling programs that can measure up to 3D studio max. And, of course, it's not like you can really trivially write a clone of a game like Halo or something.
Fortunately, there are a couple game companies that are pro-Linux. John Carmack of Id Software is very pro-Linux – in fact, I think he codes his game engines in Linux and then cross-compiles or ports it over to Windows. And so, quite often, Id will post Linux binaries of their game on the ftp or something, which you can use with a copy of the game to play. Since the code is written on Linux originally, a lot of times, I've seen Id games running better on Linux than they do on Windows. And they've released the source code to a bunch of their old games – doom, etc. And Unreal Tournament and it's sequels have Linux binaries.
But these are exceptions – most games will not make it onto Linux. Not only that, but a lot of times, companies don't like to support Linux drivers as much, since they don't see a point. Nvidia is one of the few companies that develops/releases Linux drivers in parallel with their windows drivers. ATI, on the other hand, has crappy Linux drivers.
If you're a person who plays games or has need for a certain program with certain capabilities, you might want to stick with Windows, or at least run a dual-boot system with Linux and windows. Hell, even I still have a windows partition that I use for games.
But in most cases, there are Linux equivalents that are as good as, if not better than the windows programs. I mean, it's not just a farce that over half of the web servers in the world run the Apache web server, which runs on Unix/Linux.

Linux is more secure than windows. I mean, come on. Unless you've been living under a rock for the past 5 years, you know about windows' virus and worm history. Not only that, but Microsoft is really negligent in providing patches / fixes. Look at the number of security holes that are _still_ open in windows. All that invasive spyware and adware. And I think Microsoft decided to release patches once a month, so lazy system administrators don't have to update all the time.
Linux, on the other hand, has not had nearly as many issues. Plus, the security fixes are quite fast, once the person(s) running the project are aware of the hole. I remember one time when a security hole was found in KDE, and the issue was fixed in less than half an hour.

Decentralization. Linux is not run by any one company. It is fueled by volunteer programmers all around the world. There are a couple advantages to this:

Freedom of choice. People are writing different programs that do the same thing in Linux – and so, you have different projects to choose from. Need a GUI/window manager? You don't have to use one GUI created by a company. (And in my opinion, the windows interface is bloated and ugly). You've got a choice – you can choose from Gnome, KDE, fvwm, fluxbox, icewm, ion, ratpoison, aewm, afterstep, amiwm, blackbox, enlightenment, ctwm, evilwm, gnustep, metacity, openbox, pekwm, sawfish, waimea, windowmaker, xfce, xpde, etc – the list goes on. And each one has its own features, drawbacks, properties, etc – you can choose which one suits you the best. This applies to many other aspects, too. For example, filesystems. In Windows, you can choose between FAT32, which has no journaling at all, and NTFS, which only has very basic metadata journaling. Your File Allocation Table will be correct, but there's no guarantee on the integrity of the data. Compare this to the choice of filesystems on Linux. Reiserfs, which is extremely fast, especially dealing with small files (Good for the system install). Ext3, which is quite stable, backwards compatible with Linux's original ext2 filesystem, and has various journaling options for data stability/integrity – metadata journaling, ordered journaling, and full data journaling. XFS, a mature filesystem from SGI designed to handle extremely large files. JFS, a filesystem from IBM that I can't say much about, since I've never used it. Reiser4, a new (in testing, soon to be released), extremely fast filesystem with advanced features like fully atomic writes (meaning no corrupt files… the write either happens, or it doesn't), using files as directories, etc.

Quality. Windows is written by paid programmers, while Linux is run by (mostly) unpaid volunteer programmers. The motivation is different. Paid programmers usually just want to get their job done and get their money. Volunteers, on the other hand, write their code for free because they genuinely have an interest in what they're writing/contributing to, and want to make it better. I'm not saying that Microsoft's programmers are poor – quite the opposite, in fact. You don't just pull an OS like Windows out of your ass. That definitely took some skill to make. (And, if you've seen the leaked windows source code, you can attest that it's not just a bunch of crap. Err… not that I have, or anything… *looks around suspiciously*) However, Linux programmers do it… err… 'for the love of the code,' I guess. There is more dedication to the code they're writing.

Innovation. In a given group of people, only certain ideas are going to form. The Microsoft programmers are only going to come up certain ideas. Some things just won't occur to them – whether it's way of thinking, experience, whatever. (Not that Microsoft innovates – they steal all their ideas, anyway) Linux, however, has a group of people all over the world that contribute to it. Not only that, but anyone can contribute at any time. Some Linux developer, in some random place in the world, has an idea, writes the code, and contributes it. Linux is able to grow with new features and additions all the time. Linus Torvalds, the man who wrote Linux, once likened it to a system in nature. To paraphrase: in Linux, new code is being added all the time. It's much like adding variety into a family tree, by introduction of genes from someone not related. New features, development, etc. Microsoft's code, on the other hand, is constantly evolving within itself, without adding outside elements. That's inbreeding.

There are a couple other points that don't really fall under any specific category:

Programming. One time, on a message board, someone posted that Linux was not good for programming at all, and that its users are just playing at being computer scientists. I replied and tore his argument apart.

Any Linux distribution that's worth a rat's ass comes with gcc, the gnu compiler collection. It has compilers and handler libraries for C, C++, Objective-C, Fortran, Java, and Ada, and can be extended to handle a bunch of other languages. Almost every text editor beyond the most basic have syntax highlighting. There are also several powerful IDEs you can install. Once again, this is all for free – how much would you have to pay for CodeWarrior?

Learning curve. Granted, Linux has a learning curve. No one said it was easy. Windows is geared towards the average Joe user who knows shit about computers.
There are a few user interfaces that make things easy for the user (Gnome and KDE). However, at the heart of Linux, it's a command line. This can be very awkward for a person who's never used anything other than windows or mac. (My first computers were DOS, so I was right at home) However, once you learn the command line, you will find that it's extremely powerful – much more powerful than a GUI. And the commands you're executing can be tuned a lot to match your liking. For example, take a look at this line:

for i in /storage/flac/*.flac;do filename="`echo ${i/flac/ogg} | sed -e 's/_/\ /g' | sed -e 's/\.ogg/\ -\ converted-from-flac\.ogg/'`";oggenc -q 8.5 -o "$filename" "$i";mv "$filename" /storage/ogg/;rm "$i";done

Look confusing? It is, if you don't have any experience with the command line. But what it will do is for all the FLAC files in /storage/flac, generate a target filename with the .flac extension replaced by .ogg and all underscores converted to spaces and with -converted-from-flac appended to the name (so Artist – Song – converted-from-flac.ogg), convert the flac to ogg vorbis at quality 8.5 with the output being the new filename; move the new ogg to /storage/ogg, and remove the original flac.

Piece of cake. Just one line. How much more work would that be in windows?

I've also received complaints from the other side; that there's too much coding, and it's causing a headache. No worries. Some of the user interfaces are designed with ease-of-use in mind. For example, GNOME and KDE both have a start-menu-like menu in the lower left corner. Konqueror, the browser that comes with KDE, operates both as a web browser and a filesystem browser, just like internet explorer. You can very well have a system set up where you don't ever have to see a command line at all.

There are a couple compatibility issues. If you write a program with a Linux-specific graphical toolkit (toolkit for the buttons, windows, text boxes, etc), you won't be able to use it on windows. However, one solution is wxWindows – it's a toolkit that works cross-platform. If you compile and run the program on a windows box, it will use the windows native graphical widgets. If you compile and run it on a Linux box, it will use the GTK+2.0 toolkit.
And the other compatibility concern is that if you're designing a web page, you'll be testing it in mozilla (netscape) or opera or something. While you can make it work under these browsers, you can't test it with IE, which over 90% of the world uses, since there's no IE on Linux. However, IE breaks standards all the time, so if it works in mozilla, it probably works in IE.

If you like programming and fucking with source code, then Linux is suited for you since all the software's released as source code.

I could go on forever about Linux. However, I'll stop now and make changes/additions later on. Hope that answers questions.

Return top