Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Sunday, April 24, 2022

Terraforming Mars (again)

This past week a game called Terraformers, about (what else?) terraforming Mars released on Steam. I've been waiting for its release for a while now, having played both its initial demo for Steam Next Fest nearly a year ago and then the free prologue that came out back in October. It's a neat game, and it's been interesting to see how it developed over time, but instead of telling you about it here, I will link to an article about it which I submitted over at Gaming on Linux, and which came out today. I didn't really plan to write an article beforehand, I just enjoyed Terraformers enough while playing it that I figured the worst that could happen was that it didn't get accepted. If you're interested, check out the article! A hui hou!

(And if anyone's wondering about the closing sentence over there, the other three games I have about terraforming Mars are Surviving Mars, Terraforming Mars, and Ad Astra.)

Monday, August 30, 2021

Happy 30th birthday, Linux!

I'm a few days late for this (much like the last time, five years ago), but it was Linux's 30th birthday this past week! I've been using Linux for a bit over seven years now, though back in 2010 when I was first getting introduced to it I didn't like it very much. Still, just a few short years later and I was installing it on my new custom-built gaming desktop…which I'm still using today, though I'll have to say good-bye to it for a few months in just under three weeks while it's being shipped.

What brought me around to Linux in a few years after such a negative initial impression? I've mentioned parts of it before, and this will not be a comprehensive list, but here's a few things:

  1. Native package manager. The ability to install software with a simple sudo apt-get install is magical and so refreshing after manually downloading installers on Windows and macOS. Being able to update everything with a couple of commands is also amazing after having to manually check each thing I wanted to update and downloading a new version of it. I'll never be able to go back to an OS that doesn't have a package manager again.
  2. I feel like I rave about this frequently, but the second automatic clipboard that copies text you highlight automatically and pastes is on middle-mouse-click is so, so handy. I now get actively annoyed every time I try to use it on another operating system and discover it's not available. (macOS almost has a “worst-of-both-worlds” thing going on, where it is available…but only in the terminal, nowhere else.)
  3. General stability. Crashes are incredibly rare (certainly much more so than with Windows or macOS), and I almost never need to restart my computer. System upgrades happen in the background, with graphics driver updates being pretty much the only reason to restart (and even then I could get around it by restarting the graphical evnironment, it's just less work to restart.) Updates happen when I want them to, and I never have to worry about the things I've heard about Windows 10 choosing to update and restart at the worst possible times for people. Linux comes with more responsibility to manage my own upgrades, but also more freedom to do so. And that's really the biggest draw, though it can be hard to convey: the freedom Linux gives, freedom from corporations intent on getting more money out of you, freedom to set up your computer the way you want, for it to actually be your computer.
  4. Lots of other little convenience and quality-of-life things that I can't think of now, but notice the absence of acutely when using other operating systems.
One of the downsides of choosing Linux back in 2014 was the comparatively limited number of games that'd run on it, at least easily (though still in the low hundreds, even at that point). While you could try using Wine to run Windows software, including games, it definitely wasn't an intuitive or simple process. What I couldn't have foreseen back then was Valve incorporating Wine into Steam via a fork called Proton a few years later, making it trivial to attempt to run a game without a Linux version through Steam. That doesn't mean it'll always work at the moment, but I've been able to play quite a number of games that would otherwise have been unplayable. Valve are also promising that every game will “just work” with Proton come December when the Steam Deck launches, and while I remain a bit skeptical they'll be able to get 100% compatibility any increase they can pull off will be nice. If Valve stopped working on Proton today I'd still have thousands of games available to me, besides all the ones that are providing Linux versions. Basically, I feel like my jump to Linux was unintentionally timed pretty well, and it's looking positive for the future. Here's to the next 30 years of Linux! A hui hou!

Tuesday, August 30, 2016

Happy birthday Linux!

Well I've missed the date by a few days, but the Linux kernel (the most basic part of an operating system, that interfaces with the physical hardware) is now twenty-five years old, making it only a little over two years younger than me.

Amusingly, in the post announcing his new project, Linus Torvalds called his new operating system kernel merely a hobby, not intended to be a professional endeavor. Fast-forward to today, and the open-source nature of the Linux kernel has led to it being used in a host of operating systems from basic consumer-oriented distributions to highly-customized distributions running on the most powerful supercomputers on the planet. Linux-based operating systems dominate installations in pretty much every category except desktop computers.

Writing about Linux here reminded me of how I've been using Windows 8 at work lately, and while I generally prefer to say nothing if I can't say something nice, I feel like venting some of the frustration I've been feeling. I'd never actually used Windows 8 before, merely heard about its shortcomings from other, but I've now experienced it first hand. In no particular order, here are some of the irritants I've experienced in the past few weeks:

  • Random freezes for no discernible reason while doing mundane things. Nothing quite like opening up a new instance of your browser after just starting the computer, opening a new tab, and having it freeze on you. Similar freezes have happened a few times in the past few weeks. I think it's probably happened about that many times in the last year on my computer. I got Chrome to repeatably lockup on a simple Source Forge page that (ironically) Internet Explorer opened with no problems.
  • Things not scrolling when you hover over them with the mouse. It's a little thing, but once you're used to it it really breaks your flow to have to click on different windows in order to scroll them. Especially when it's something like opening up a file-browser window and the focus is on the search field rather than on the file window proper.
  • Not having the secondary cut'n'paste clipboard from highlighting text that Linux has. I didn't realize just how much I relied on it for casual cut'n'pasting until I had to go back to Ctrl-c, Ctrl-v for everything.
  • The Start Screen that replaces the Start Menu in Windows 8, and its atrocious design of flat, bright, primary-color rectangles. I'm not even sure how to open specific programs now, and I never know when something is going to switch to opening full-screen in Metro mode. And why are Computer Settings and Control Panel two separate programs??
  • A “Save as…” menu that always defaults to a fixed set of best-guess folders, none of which are ones that I ever want to use, and which necessitates an extra click just to get to a general-purpose file-browser. Was simply opening to “My Documents” by default too difficult or something?

Anyway, you get the idea. I'm really glad I decided to jump ship when I did, from Windows 7. Despite growing up using Windows exclusively, I'm not happy with how Windows 8 turned out, and having grown to love Linux in the meantime I can't really ever see myself going back to Windows. Linux is by no means perfect, but it's less hassle and frustration for me in general. It's like the old joke that says the best operating system is the one that aggravates you least and stays out of your way the most.

Anyway, these were just a few disparate thoughts about operating systems I had recently—a hui hou!

Friday, April 29, 2016

Getting Custom Compose Key Sequences to Work in Debian: The Odyssey

Having just spent a very frustrating afternoon trying to get custom compose key sequences working on my new Debian install, I figured I would write a quick post to help others who might be in the same boat.

(For those who don't know, the compose key is a metonym for a fabulous system in Linux that lets you easily type thousands of symbols not found on keyboards. It usually has to be enabled in keyboard settings and can be set to a wide number of keys, but usually the right Windows or Alt keys are popular. Once you have it enabled, you can simply type <Compose Key>-^-a to get â. Or <Compose Key>-"-o to get ö. Or <Compose Key>-o-c to get ©, and so on and so on. There are typically hundreds or thousands of such combinations available by default, ranging from letters from common and uncommon languages to all sorts of esoteric symbols and punctuation [such as the interrobang, ‽, Compose Key-!-?]. Many of them are set up with key combinations that sort of make sense based on the component parts so it's often easy to guess without needing to specifically remember all the combinations. However, I digress.)

This all started with my desire to type some Hawaiian this afternoon, and for that I needed an ʻokina, the letter ‘ʻ’ at the start of the word ʻokina (which is not a quotation mark, despite how it looks; it's Unicode symbol U+02BB, “MODIFIER LETTER TURNED COMMA” [‽]). This is one symbol that isn't in the extensive list of default compose key sequences, but it's not too difficult to add your own—by default in Linux Mint Debian Edition (and I'm guessing plain Debian) there's a file in your home directory called .XCompose where you can simply look at the syntax of all the other entries and define your own sequence based on that.

This file came over in my transfer to Debian, and from what I could find it was what you used to define custom compose key sequences there too, but my sequence I'd added to print an ʻokina in LMDE simply wasn't working, nor were any of the additional ones I created as further tests. (Testing is pretty simple because the .XCompose file is read by programs each time they start up, so you can make a change, re-open a terminal or another text editor, and immediately try it out.)

From some more Googling and reading around, I found the suggestion to add the phrase
export GTK_IM_MODULE=xim # Warning, see below.
to my .profile file in my home directory. Now I'm not super-clear on what all of this means myself, but as best I can tell IM refers to “input method,” and xim refers to an older and more limited input method used by the X server that handles graphical things on Linux. GTK is a toolkit (bunch of code) for making graphical user interfaces that underlies quite a lot of software, along with another toolkit, Qt, and they apparently both have their own internal input methods that seem to not allow custom compose key sequences.

Anyway, what I'm actually trying to say here, is that the above code does not appear to work anymore, although it apparently did in the past. With it in place my custom compose sequence no longer beeped at me angrily like it did before, but simply silently failed with no output. After several hours of following comments in Stack Trace and nearly a score of reboots and reloggings in a futile effort to get things to work, I finally chanced upon a comment suggesting the use of “uim” instead of “xim” (‘u’ for ‘universal;’ I think it's a newer input mode with more functionality). This finally worked for me so I've added the following lines to my .profile file (I added the QT one for completeness, though I don't know how necessary it really is):
export GTK_IM_MODULE=uim
export QT_IM_MODULE=uim
Once you've done that, you'll need to make sure you have the actual uim package installed; on Debian, run
$ sudo apt-get install uim
Once you've done that, log out and log back in and things should hopefully work now. Hope that helps! As for me:

◦ Confounding compose key conundrum: cracked!

Tuesday, April 26, 2016

Distrohopping to Debian

Well, after about two months of waffling, I finally went ahead yesterday and installed Debian (short ‘e’ as in ‘bed’ if you're curious) on my desktop like I've been meaning to. And it wasn't even all that difficult, actually!

When I first decided to switch to using Linux as my main operating system over two years ago, I took a look at the dizzying number of distros out there, and…

…actually, let's back up and establish some terminology first. “Linux” isn't an operating system like Windows or Mac OS, per se. It's the name of a kernel—the central core of an operating system, that loads first and handles all the interactions between all of the programs and the hardware. Linux is often used however as a metonym (technically, a synecdoche) for the many different operating systems built on top of the Linux kernel. These usually go by the name distributions, or distros for short. Some popular ones are Linux Mint, Debian, Ubuntu, openSUSE, Fedora, and Manjaro (taken from http://distrowatch.com/). What distinguishes one distro from another could be anything—large things like what kind of packaging system they use (so that software packages created for one distro won't work on another) to cosmetic things like what desktop manager they use (many distros allow you a choice of several) to a million and one little variables that can be tweaked such as the default programs included. There are literally hundreds of distros out there, though the vast majority of them are based on just a handful of main distributions (since it's a lot easier [relatively speaking] to create a new distro by modifying an existing one than it is to create one from scratch). Anyway, back to what I was saying…

When I first decided to switch to using Linux as my main operating system over two years ago, I took a look at the dizzying number of distros out there, and decided to go with Linux Mint Debian Edition, or LMDE. Let's unpack that a bit:

  • Linux Mint (by itself) is a very popular distribution made to be easy-to-use out of the box and good for Linux newcomers. It's based on…
    • Ubuntu, long and widely considered the most popular distribution partly due to a similar reputation, which is itself based on…
      • Debian, one of the oldest distributions, dating all the way back to 1993 and the distribution with the largest number of distros based upon it.
Anyway, as you can see, Linux Mint is basically two steps removed from its original base. A few years ago a new distro called Linux Mint Debian Edition was introduced, based directly on Debian and cutting out the middleman of Ubuntu so to speak. I liked the idea of keeping things simple, and since I was still a relative newcomer to Linux I decided to stick with a distribution with a reputation for user-friendliness.

Fast forward to today, and with a few more years' experience with Linux under my belt I decided to once again ‘cut out the middle man’ and switch directly to Debian itself. I'm no power user, but I know my way around a command line interface well enough, and I feel there's a benefit to using a more widely-used distribution (LMDE was, unfortunately, always kind of a side project to the main Linux Mint version).

Debian apparently used to have a reputation for being difficult to install, but I found the whole installation process for Debian 8.4 “Jessie” pretty simple, even with my setup having root and home installed on different partitions. (Which allowed me to keep all my user data when switching; very convenient!) I had a few wrinkles along the way, to be sure; I've got a separate hard drive for storing all my big files that don't need to take up space on my SSD like photos and music, and had forgotten how my more Linux-experienced friend Graham had mounted and linked it when we first set up my computer (the drive was actually auto-mounted and I could access it, just not the way my shortcuts were set up to expect). Thankfully, Graham was able to swing by after work and get it sorted, and with my current level of experience I think I could duplicate it in the future if necessary. There've been a few more small issues but so far I've been able to solve them all, and it looks like everything is working.

Oh, and to explain the title, it's a tongue-in-cheek reference to “distrohopping,” the practice of trying out lots of different Linux distros, sometimes without any sort of “main” distribution. Obviously, trying a second distro in as many years doesn't exactly qualify. A hui hou!

Thursday, September 25, 2014

PSA: “Shellshock”

PSA: If you use any form of *nix as your operating system – some form of Unix, Linux, or Mac OS X – and you have the Bash shell installed, you may want to see about updating it. This is because of a newly-disclosed critical vulnerability in it (dubbed by some “Shellshock”) that could potentially allow an attacker to execute arbitrary code with a specially formed attack. (If you're on Windows you're probably ok, unless [possibly] you're using something like cygwin, in which case you're probably tech-savvy enough to look up how to fix it.)

It's quite easy to check if your version of Bash is vulnerable: open up a terminal window and run:

> env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

Should Bash be vulnerable, it'll return:

> env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
> vulnerable
> this is a test

If it's not vulnerable, you should just get back “this is a test” and possibly a warning about Bash ignoring an attempted function definition. If it does return vulnerable, you'll want to see about updating your version of it as soon as possible (most [all?] of the major Linux vendors have released patches, and Apple is expected to do so soon). Basically, instead of a harmless “echo vulnerable” (which just prints the word “vulnerable” to the terminal), an attacker could potentially put a much more harmful command in there, which in the right circumstances could do a lot of damage.

One noteworthy feature of this bug is that it's apparently been around for something like twenty years (Bash is fairly old as software goes), so it's expected to be found in as incredible number of devices, including a large number of the servers that host the World Wide Web.

It's still early yet to see what will come out of this, but it's likely to be a serious security issue for quite some time due to the difficulty of getting everything patched.


(I was feeling creative tonight, though I may have been a bit too literal.)

Edit (9/27/14): I wasn't entirely happy with that version so I went back and played around with it some more and made a few more versions (and learned some useful lessons about Inkscape in the process). Here's the version I currently like the most:

Sunday, July 20, 2014

Computer Construction Compendium

This past Friday, as I mentioned in my last post, I put my new computer together. I've been collecting parts for it for over two months, and was quite excited to finally build it (I would have put it together a week earlier except a move and a vacation intervened).

It was a fun experience (if a little nerve-wracking at times), and luckily I had the presence of mind to take pictures throughout the build process. For instance, here's everything involved in the build at the beginning of the process:


Here you can see the gaggle of assorted parts I collected. I'm not going to point them out individually as you'll see most of them further on, so I'll just say that on this table you can see the case, the power unit, the CPU, the RAM, the HDD, the SSD, the video card, the water cooler, the optical drive, the card reader, and the additional fan I got. That's a lot to get through, so to start off with here's a shot of the most fundamental part: the case.


Here you can see the interior of the excellent case I found, the Rosewill Thor V2. There are three fans on the front (to the right), the back (to the left), and the top of the case. There's also a fourth fan in the panel that forms the left side which is off in the picture to allow access to the interior. That nest of wires there connects to things on the front panel like the power button, the forward USB connectors, and the headphone/microphone jacks.

After the case, the next most important part of a computer is the motherboard, which serves as the physical and logical connector for all the other parts of the computer.


This particular motherboard is the ASUS Z97-A. There are a lot of slots and connections on it, but it'll be easier to point them out as I add things to them, so let's move on the CPU, which sits in the square socket in the top-middle of the board. The CPU (which stands for Central Processing Unit, hence why it is also sometimes called the processor) is the calculation center of the computer, and the most important factor in how fast your computer is.


The socket actually comes with a little cover on it to protect the pins inside, which you can't see because I forgot to take a picture before putting the CPU in the socket. Instead of putting the pins on the CPU, Intel switched sometime in the last few years to having them on the motherboard, and having the CPU sit gently atop them (held in place by a little spring-arm). Here's what it looks like with the arm down:

I don't think the white lines do anything, I think they're just decoration.

The gleaming square metal surface there is the interface where the prodigious heat modern processors put out is conducted away by some form of cooler to keep them from overheating. The processor I got (the Intel Core i5-4690K, 3.5GHz) comes with a small fan+heat sink that is meant to sit atop the CPU, but  in the warm climate of Hawaiʻi I wanted to ensure that it wouldn't get too hot running some of the games I like, so I got something a little higher-caliber which you'll see later on.

After installing the processor, I installed the motherboard into the case:


With the motherboard screwed into place in the case, I could stand the whole assembly up and access the back of the motherboard to install the necessary infrastructure to attach the cooler for the CPU:


This backplate (which surrounds the CPU on the back of the motherboard) confused me no end for some time, as it didn't seem to fit the holes in the motherboard. I was worried because the manual for the cooler didn't actually say it was compatible with the CPU socket I had, and I was going off somewhere else I'd read it on the Internet. For the record, yes, the Corsair H90 self-contained liquid cooler does work with Intel LGA 1150 sockets; use the sockets marked 1156, and rotate it until the holes line up. That was what had me confused, as I thought it went on straight and spent some time fiddling around trying to get the holes to line up. Anyway, it did finally go in, as you can see. The rest of the cooler sits on the other side, and we'll see it later on.

Anyway, after that, comes the RAM (or Random Access Memory, the short-term memory of the computer):


The RAM is those two white modules there, next to the CPU. I went with two 4GB modules of Kingston HyperX FURY DDR3 RAM for a total of 8 gigabytes of RAM. I don't do a lot of stuff where more RAM would be useful, and I really liked the look of those particular card - they go very nicely with the white case.

After the RAM, I installed the video card - an NVIDIA GTX 750 Ti, by EVGA -


- and the Power Supply Unit (PSU), a KingWin Lazer Platinum Series 550 Watt unit. The "Platinum" in the name says that it has greater than 90% efficiency in certain circumstance (such as when you're using around 50-75% of its maximum rated power). The PSU is a very very important part of your computer - it's the part that provides power at the right voltage and amperage to everything else, and (in theory) takes the fall if you get a power surge. So don't skimp on it. The high efficiency is also nice as that means less power wasted as heat before it even reaches the rest of your parts.



And here are both of them installed in the case and motherboard:


(The video card is a little hard to see, but it's horizontal directly above the PSU.)

After this I installed the optical drive (a simple DVD/CD reader/writer) and the multi-card reader I got into the front of the case. They weren't anything special, so I just took a shot of them installed in the front:



(Optical drive at the top, card reader in the middle.)

I then installed the hard disk drive (HDD) and solid-state disk (SSD) into two of the bays for them:


For the HDD I got a Western Digital 1 terabyte “Blue” drive (a reliable brand, with tons of space), while for the SSD I got a Crucial MX100 512GB drive, which is pretty much the best price-per-gigabyte SSD out there at the time of writing, while still being large enough for what I wanted. My intention from the start was to install my operating system and programs on the SSD for its much faster loading times, while storing large files that don't need to load super-fast like pictures, music, and movies on the HDD. Having set it up like that, I can say that so far it's working well.

Finally, it was time to install the water cooler. This was tricky, because, well...it's probably easier to show you:


This is the Corsair H90 self-contained liquid cooler. The part that I'm holding sits clamped to the top of your CPU and conducts heat from it into water which a small pump circulates through those rubber tubes into the radiator you see lying on the table. It's a bit tricky to install because that "self-contained" term in the name means that it's all one piece.

This is actually a very useful thing, because liquid cooling used to require that you put it together yourself, buying the pump, radiator, and tubes separately and assembling them (and filling them) yourself. You can still do that if you want to get fancy, but when it comes to water and computers there are far too many things that can go wrong, so I opted for the pre-built system where the water is already inside it and never gets a chance to fry sensitive electronic components.

Anyway, despite wishing I had a third hand at times, I managed to finagle the cooler onto the CPU (using that backplate structure we saw near the beginning), and attach the radiator to the fan on the back of the case. Here's what that looks like:


Pretty slick if I say so myself. At the moment I'm not quite done with this, as at the moment the fan in the case is only pulling air through the radiator. I'd like to mount the fan from the first picture on the side you see here to push through the radiator as well, to get the maximum amount of air through to keep things as cool as possible. I didn't have enough screws to be able to do that, but it's just a matter of popping down to Home Depot and picking up the right ones. Luckily, the liquid cooling is effective enough that heat hasn't nearly been a problem, but I've got the fan so I might as well use it.

Anyway, sans that fan, here's a view of the completed build:



(The other side is a bit of a tangled mess of cables, as I wove them back and forth through the holes in the case to keep as few obstructions for moving air in the case as possible.)

Anyway, with that done, it was time to set the peripherals up and try it out (and boy, what a sweet, sweet thing it was to hear the fans begin to spin up and self-test lights begin lighting up the first time I pressed the power button):


And there you have it. I left the side panel off for this shot, but it's now back on so the attached fan can help keep things cool.

And let me tell you, I set out to build a powerful computer that would have no heat problems, and from what I've seen so far, I succeeded. I can measure the temperatures of all four cores in the CPU, and while idling they run about 30 degrees Celsius, which is just a bit warmer than room temperature (86 degrees Fahrenheit). Even after a few hours of playing something like Civilization V that would have my old laptop running too hot to touch within minutes I haven't seen temperatures go above the low 40's Celsius (~100 Fahrenheit), and the air coming out the back from the radiator is only just noticeably warmer than the surrounding air. I wanted to make sure my computer wouldn't overheat in the warm tropical Hawaiian air, and from the looks of things I've done so very well indeed.

I could write at length about the trials and tribulations I had getting my chosen operating system, Linux Mint Debian Edition, running on such new hardware, but suffice it to say that with the help of a friend from work much more knowledgeable than I we got it working after a few hours. I'm now on Linux, and - unlike when I tried it with Ubuntu several years ago - I'm already thinking of it as my main operating system. Again, I could talk a lot about it, but it's getting late so perhaps I'll save it for another post. Anyway, hope that was interesting for any would-be computer builders out there. A hui hou!

Edit (9/14/14): Just realized that I said I got the Western Digital “Black” HDD when I actually got the “Blue” one, which is one step down in performance and good bit cheaper (it's the consumer-oriented version, while the Black is more server- or enthusiast-oriented). I did originally pick out a Black drive before rethinking it and still had it in my notes.

Also, a few weeks after this post went up I finally managed to find the right screws and installed my Noctua 140mm fan in the case to push through the radiator. Check it out:



Noctua's fans' unique brown aesthetic doesn't really go with...well, anything, but but it certainly lives up to its billing as a quiet, high-quality fan. With that, I now have a total of six fans pushing air through this case and keeping it just a smidgen above room temperature.

I also finally caved and bought myself a second monitor (I'm spoiled from having two at work, with the attendant productivity boost it brings). It just makes it so much easier do certain things, especially thing involving photos (have GIMP open on one screen, file manager or browser open in the other, etc.).

I also had some strange experiences which I was able to diagnose as running out of RAM, which caused the computer to freeze. I found this exceedingly odd, as I have 8 GB in this system, the same as my old laptop, and it never had any problems like this. I then learned that Linux doesn't automatically set up a swap space on disk (something Windows does by default), so I was most likely swapping things all the time on the laptop without knowing it. I was able to set up a swap partition on my own (I was so proud!), but I've decided that since I have an extra two slots for RAM I might as well go ahead and bump the system up to 16 GB to allow me to work on large photo panoramas without having to worry so much about running out of RAM

Tuesday, February 25, 2014

Computer Musings

Last week I realized that I've had my laptop for a little over four years. Apart from a few mechanical hiccups in its first year (thankfully covered under warranty) it's been going strong the entire time. I had some certain things in mind when I bought it, namely, “you get what you pay for” and “don't skimp on quality” which led me to get a powerful (if slightly more expensive) computer that would be relatively future-proof and wouldn't be obsolete in two years.

Four years later, I can say that my strategy appears to have paid off. My computer is still running strong, still quite able to run some of the more demanding games and other programs I've thrown at it, and barring accident I expect it will be running well for several years yet.

Of course, that hasn't stopped me from looking ahead to when I will eventually need a new computer. And with that comes the choice of what operating system to use. A few years ago I wouldn't have hesitated to choose Windows, because that's what I grew up with. I remember using Windows 98 for a little while as a kid, then Windows XP for a couple of years. After some experience with Windows Vista I knew I didn't want that, and bought my laptop with Windows 7, which I've been quite happy with since.

However...many of the reports I've heard of Windows 8 fill me with trepidation. I have yet to actually use it, but I've heard enough to at least give me pause before blindly upgrading. Of course, Windows 9 may be out by the time I'm actually ready to buy a new computer, and there's a bit of common wisdom that says that Windows version run on a good-bad-good-bad schedule, so perhaps Windows 9 will be fine like Windows 7 was.

Even if that's the case (and that's an unknown “if” at this point), I've found myself leaning more and more towards using Linux on my next computer. I now spend more time at my computer at work (which runs a flavor of Linux) than I do my personal computer, and I'm becoming more and more accustomed to it. I wrote about my experience running Ubuntu (a flavor of Linux) as a dual-boot on my computer almost four years ago now. At the time it was a novelty to me, and while I don't come out and say it in the post, I couldn't really see myself ever using it principally over Windows.

A few years and a lot of experience later, and I know a lot more about Linux than I did then. For instance, Ubuntu is simply one flavor (or kind) of Linux; there are many different flavors out there catering to many different kinds of people. Many of the underlying (and most important) features are the same across them, though. I've run across some flavors of Linux that look quite nice, and which I could definitely see myself choosing as my next main operating system (I sometimes find myself wishing for certain conveniences of Linux while using Windows.). In some ways Linux is actually easier to use than Windows (while simultaneously offering more power to power users), but it's just different enough to feel uncomfortable while making the switch.

One thing that has given me pause in my consideration of Linux has to do with games. It has long been true that nearly all computer games are targeted at Windows because it has the largest market share. Sometimes an occasional game will get ported to Mac as well, but that's not exactly common. And Linux? Forget about it. It's only been within the last few years that a small but hopefully significant number of game developers are starting to release games for all three platforms. There are doubtless many reasons for this (including one of the currently-more-popular game-engines making it very easy to make releases for multiple platforms), but whatever the reason it's an encouraging trend, and it will be interesting to see what the game landscape looks like another twenty-four months down the line. I've taken to actively trying to support games that run on Linux, and preferring to buy ones that do in order to future-proof my game library (pretty much any game of any note that runs on Linux also runs on Windows and Mac at the moment, so it's an all-around good way to hedge my bets).

It's an interesting time to be living in, to be sure. People have been predicting the rise of Linux as a serious contender with Windows and Mac for market share for years now, but with the way things are going with Windows recently, who know? It just might finally happen. Or not, and people will continue to predict it. We'll see! Exciting times, to be sure. A hui hou!

Wednesday, September 1, 2010

Linux. Just...Linux.

Have I ever mentioned how much I detest Linux, the open-source operating system? Probably not, but there's no time like the present to start. There is no curse in Elvish, Entish, or all the tongues of Men for this blot on the good name of the human race. A typical session of attempting to install something goes like this:
  1. Download various packages and files.
  2. Begin following instructions provided, typing in arcane and arbitrary commands at the terminal. (If you have no instructions, you are basically out of luck.)
  3. If you're lucky, it will take more than 2 commands before you encounter an error.
  4. Spend anywhere from 15 minutes to several hours surfing the web trying to find out exactly what additional sequence or combination of arcane and arbitrary commands you need to type in to fix the error. Typically these will be scattered across several forum threads a few years in age, and must be pieced together with a care rivaling that of a linguist deciphering Linear B.
  5. Repeat steps 2-4 until you either (miraculously, miracles DO still happen) finish the installation, or realize there are better uses of your time, like counting the number of sand grains on the nearest beach, or watching paint curl.
Linux is like the Gnosticism of computers, as it requires "mystic, revealed, esoteric knowledge", which can only be received from someone who's been working with computers practically since they were invented. As one of the professors here at school put it, "Linux has a trillion commands, and it requires you to know them all". There is no way to learn Linux on your own by trial-and-error -- you must rely on someone else telling you what to do. I mean, it's the 21st century already! We have things called graphical user interfaces and self-installing programs (and they DO exist for Linux, as I've used some in the past). So why can't some of the most ubiquitous and important scientific programs (*cough* IRAF *cough*) of our day actually avail themselves of these marvels of modern technology? The abacus is starting to look more and more like a viable and productive alternative!
.
.

(deep breath)
.
.
As you can probably tell, I just spent the last two and a half hours trying to install a package for IRAF on my Ubuntu distribution, with only marginal success. During this time I overcame exactly two Linux errors (along with a good number of human-caused mistakes). And I still can't get the package to work right. I'm beginning to be worried about the increase in my blood pressure. If you ever need a good argument against going into astronomy, it is the fact that IRAF does not run on Windows (or even Mac).

*sigh* Anyway, now that I have sufficiently vented my spleen, I need to get to bed and get my very-much-needed sleep. A hui hou!

Sunday, March 28, 2010

Spring installing.

As you've probably noticed, I made some changes to the template for my blog today. Blogger just came out with some new templates with more customization options. I'm quite pleased with the new look, especially the way the header turned out.

I spent most of the rest of the day trying to install various programs on my Ubuntu desktop, and learning Sage. Installing on Linux systems comes in a wide array of difficulties from 'one-click simple' to 'mind-bogglingly complex'. It took me several hours to install two programs, and required me to learn and use several new commands.

But, there is a definite sense of accomplishment that comes with having figured out something that complicated which you don't get when installing a program on Windows.

I've actually accomplished quite a few things on my list (and off it) over the last few days, and I'm feeling pretty good about it, although I can hardly believe spring break is almost over. I really need at least another week to get everything done that I wanted to get done.

Wednesday, March 24, 2010

Shadow and flame.

Today I installed Ubuntu on my computer as a dual boot. Ubuntu is a particular flavor of Linux, currently one of the most popular (and also the most user-friendly, or so I've heard).

While part of me is exulting that I have taken a step towards being able to call myself a true computer geek, another part of me is a bit shamefaced because I didn't do a traditional dual-boot routine, where you partition your hard drive, back everything up, and hope nothing goes wrong while the second operating system installs. I used a hitherto-unknown-to-me program called Wubi which makes installing Ubuntu as simple as installing any other program on Windows. You simply download it, run it, follow the prompts, and it sets itself up. You can even uninstall it directly from within Windows, if you decide you don't like. It sounded so easy, in fact, that I was more than a little incredulous when I first heard about it, but after reading reviews from a couple of tech sites I decided to go ahead and try it out.

There were several reasons I decided to install a Linux operating system on my computer. Actually...now that I think about it, they're all pretty much the same reason: certain programs run on Linux, and not Windows. One of those programs is IRAF, and though I already have Fedora (which is another version of Linux) installed as a Virtual Machine in Windows 7, it is way harder to install IRAF on Fedora than it is on Ubuntu. However, it was overshadowed by another program, Sage, that was the main motivation behind my decision. 

Sage didn't make it onto my to-do list a few days ago because I wasn't aware of what it was then, merely its name. Since then, however, it has become of great importance to me to get it installed. Sage is sort of like...how to describe it? It's "a viable free open source alternative to Magma, Maple, Mathematica and Matlab", according to the website. The mentioned programs are all what are known as Computer Algebra Systems, or CAS's. A CAS is your best friend when trying to do most kinds of higher math, because they can do all kinds of amazing mathematical maneuvers. The most amazing part (as reflected in their names) is that they can actually do algebra, a highly symbolic undertaking.

Anyway, these programs are used by researchers all over the world, but they all have something in common: they ain't cheap. Not by most standards, and certainly not by the standards of a poor college student. So you can see why I was so excited to find a free one ("free" as in no cost, and, since it's open source, "free" as in freedom). Also, their use is allowed, and even encouraged, by one of my professors for the homework and tests he assigns (which gives you an inkling of the difficulty level of said homework and tests...).

The really cool thing about Sage is that it's not just one program, it's a collection of a whole bunch of open source and free mathematics programs from all over, all tied together with the computer language Python, a language that I have some limited experience with (so this does fall on my to-do list, in a round-a-bout way!). In fact, when I finally got Sage up and running this evening, I was able to go ahead and write a 'for' loop on my own before getting to that part in the manual, because it uses basic Python for the interface.

So far, Ubuntu has been pretty good. It's definitely a little different from Windows, but not too bad -- I can see why some people would prefer it. Who knows, I may even come to do so myself some day. At the same time, using it today, I felt a strange sense of discombobulation from seeing my now-familiar computer with a different look and feel. It was almost like being away from home, in strange territory. But I think that will pass in time. I'm writing this post in Ubuntu right now, as a matter of fact.

Some of you might be wondering what I like most about Ubuntu so far. Is it the fact that it, like Sage, is open source and free, a common operating system for people who enjoy freedom? That it is stable and new-user friendly? That almost any program that runs on Windows runs on Linux, plus many that don't?


No...(though those are all valid reasons, to be sure)


It's the fact that I found an app that lets you paint fire on the screen with your mouse!

Yes, I just wrote my name in fire. On my desktop.

Yes...those of you who know what a pyromaniac I am will understand. I could hardly stop playing it with for the first few hours after I discovered it. With the touch of a button and a flick of the wrist, you can send surprisingly realistic simulated fire searing across the desktop, then dispel it just as easily. Underlying programs are not affected and go about their business, so if you feel like it, you could write a document while your screen is ringed in flame (and yes, I have tried that).

Anway...it's getting late, and I need to catch up on my sleep from a late night last night. I didn't get around to installing IRAF on Ubuntu today, so that will be a project for tomorrow. A hui hou!