Tagged as: Rant

Linux of the 90's
September 27, 2012 by Noah
Let's look at some very, very old* desktop environments, which lack in some features we've had for at least a good decade now.

Gnome Shell

What sorts of things does this clunky old desktop environment not allow us to do, which every other desktop does (and has for a decade)?

  • We don't have a customizable panel. There's a panel on the top, and it stays there; can't be moved, hidden, changed in any way...
  • We can't change the widget (GTK) themes on the fly. The desktop environment itself provides no way of changing the theme at all, and changing it via a third-party tool requires you to log out of your desktop and back in for the change to take effect. How old school is that!
  • The same goes for the window manager theme. Every other window manager in the history of ever lets you re-theme it "live" without logging out. Not good old Metacity, though!
That's enough ragging on this one, let's look at another one!


This one is based on Gnome Shell. Some people didn't like Gnome Shell and they wanted to make it look and feel like a more functional desktop environment known as Gnome 2. So let's compare it to that!

  • Oh no. The panels aren't hardly configurable. You have 3 options: one panel on top, one on bottom, or both. And changing that setting requires you to log out and back in. How ancient.
  • Panel applets? I hope you only want one of each applet, and that you're fine sticking them into pre-designated slots on your panel. You can't customize them beyond that. The applets don't even have their own settings--your app menu will say "Menu", and you can't change that.
  • Metacity strikes again! You can't change the window manager theme without logging out and back in.
Wait, what ever happened to Gnome 2, anyway? I used to like that guy!


*These desktop environments aren't very old at all. They're current. Gnome Shell is the default desktop environment of Fedora, and Cinnamon is one of the defaults of Linux Mint. And who's really at fault for these two desktop environments being so 1995, anyway? The GNOME dev team of course!

Gnome Shell is just so, so awful that Cinnamon was spawned as a way to get a more traditional (read: Gnome 2-like) desktop environment out of the utter mess that is Gnome Shell, except that Shell's bad design decisions are rotten to the very core and Cinnamon has to suffer for it as well.

Just to pick on one specific problem, Metacity no longer supports re-theming the window manager without logging out and back in. How many window managers in the world follow this behavior? Let's count them:

  1. Metacity 3.x
Oh? And which window managers do allow being re-themed live?
  • Metacity from Gnome 2 and back
  • XFWM4 (the window manager for XFCE)
  • KWin (window manager for KDE)
  • OpenBox, Blackbox, Fluxbox, FVWM, . . .
That's right, damn well every single one of them.

I was very impressed with the MATE desktop environment when I tested it on Linux Mint... it is the exact same Gnome 2 that I used to love. The panels behaved the same way (read: fully effing configurable and requiring no log-outs to see your changes take effect), it had all the same applets and didn't come with the high-and-mighty "we know better than you and you may have ONE of each applet at most" attitude that Cinnamon has... and it doesn't use Metacity 3 so that all kinds of theming takes effect immediately.

So there's MATE, XFCE, KDE, LXDE and a good handful of window managers that exist here in the 21st century, and then there's Gnome Shell, and by extension Cinnamon, stuck back in 1995 which is the only place that their lack of features can possibly fit in.


Tags: 3 comments | Permalink
Chrome's Omnibar
June 28, 2012 by Noah
I don't understand why people all over the Internet like to talk up the omnibar in Google Chrome and say how much better it is than everything else out there (the omnibar is Chrome's address bar). They say it's better than Firefox's, and I'm absolutely sure that everybody who thinks so has never used Firefox. Here's why.

What does Chrome's Omnibar do for you? It lets you type in URLs to websites like any other address bar, and it lets you search Google by typing in a search query instead of a URL. Oh and when you're typing the URL to a page you frequently visit, it auto-completes it for you. Is that all?

Well, Firefox's AwesomeBar (their word for the same feature) does all of the above just as well, and then some. Want to search Google? Just type in your search query. It all works exactly the same way as Chrome. Firefox has been doing this before Chrome even existed. Auto-completing URLs? Firefox does this too.

But then Firefox goes way beyond. You saw a post on Reddit 5 months ago, and you know it's somewhere in your history and you wanna find it? Just type one or two words that appeared in the page title. Firefox's AwesomeBar will show suggested results as you type based not only on the URLs, but also on the page titles. Bam. You can find any page in your history just by typing a word from the title. With Chrome, the only way to find an old page is to begin typing its URL out. This requires you to know a lot more about the link than you need to know for Firefox.

For a Reddit example, say you want to look up a post you saw recently about the Galaxy Nexus Android phone. Was it posted to /r/android? Or was it /r/technology? Maybe it even was mentioned on /r/apple? You don't remember, you just remember the post was about the Galaxy Nexus. Just type "galaxy" in your AwesomeBar and you'll probably find the link in 2 seconds or less. With Chrome, you'd have to begin typing out, "" and try all the various subreddits that it might have been posted to. You're better off opening the history window and searching for it. There's just no easy way.

Firefox 1, Chrome 0.

Tags: 1 comment | Permalink
Please Don't Use Emoji
July 22, 2011 by Noah
Update (4/4/2013): Linux distros don't support Emoji very well by default, but you can simply install the Symbola font and that will make Emoji just magically work.

Apparently, Mac OS X Lion supports Emoji icons like iOS does.

Please, nobody get in the habit of using these. Anywhere. Unless you're talking specifically to other Apple users.

Nobody else supports Apple's particular variant of Emoji icons as well as Apple does. For Linux and Windows users, all your Emoji icons you paste in Twitter updates don't work. Most of the icons will be completely broken for these users (rendering as a block character), and the few icons that do render, won't look nearly as good as on Apple devices: they'll just look like Unicode characters, i.e. using the same black-and-white font color as everything else. Not full color icons.

It's already bad enough that cross-platform mobile apps (iOS and Android) have idiots using Emoji icons everywhere (which do not display on Android at all, but show as broken block characters), but for desktop Apple users to be able to paste Emoji icons everywhere else is just the most terrible news as of late.

Don't use them. Period.

Update (2013-01-08)

I took screenshots from several popular operating systems showing an iTunes page that embeds a handful of Emoji icons to show how exactly the icons render on various different systems.

The album is here:

  • Ubuntu 12.10 -- the most popular Linux distribution today -- fails to render most of the Emoji icons at all. Fedora 17, a bleeding edge Linux distribution, also fails to render most Emoji icons.
  • Windows XP fails miserably to render ALL of the Emoji icons, and most Unicode symbols besides. This is still a very popular Windows OS despite being so old.
  • Windows 7, Windows 8, and Android (tested on 4.0+) all show the Emojicons reasonably well, but what they don't do is render them with shiny, colorful Apple icons like Mac OS X does. You have to squint to see the Emojicons rendered in any reasonable font size. Android 2.2 and older don't render Emoji icons and show block symbols instead.
Tags: 21 comments | Permalink
Zenity and GNOME 3
July 18, 2011 by Noah
Another mini rant about GNOME 3.

To add to the reasons why GNOME 3 impacts other areas of the Linux ecosystem in ways I wish it wouldn't, they have changed the behavior of zenity and removed a feature just because it no longer makes sense for GNOME 3.

Zenity, btw, is a command line program for displaying simple dialog boxes and things that may be useful for bash scripts. It can pop up alerts, progress bar windows, open/save dialogs, etc.

One feature it used to have was --notification, which let you put an icon in the Notification Area ("system tray") on your desktop. But now, since GNOME 3 doesn't have the same concept of the Notification Area as other desktop environments, Zenity's --notification option no longer puts an icon in the Notification Area.

Now it uses GNOME 3's style of notification... which is, the same behavior as notify-send - it pops up a Growl-like black bubble in the corner of your screen with a temporary message (like "New updates are available").

This sucks.

I was playing with writing a desktop Google Voice app for Linux, which would have an icon in the Notification Area and notify about new texts and things. I was going to just use Tk for the GUI (even though it's ugly as sin on Linux) and use Zenity only for the notification icon. But I can't do that now! Now I might as well make my GUI in GTK+ so I can use the Gtk2 module for the notification icon.

GNOME developers, the universe does not revolve around GNOME. If Zenity's --notification is just going to duplicate the functionality of notify-send, you might as well just have switched to notify-send and leave Zenity how it was before.

More Bad Changes

Today (8/14/11) I discovered something else GNOME changed in Zenity.

I'd written a Perl script a while back that would act as a super simple front-end to Mednafen, an NES and GameBoy emulator. It just used Zenity to open a file select dialog to let you browse for a ROM to load.

But now, Zenity's file selection dialog doesn't have any way of letting you specify which directory it should look in by default. It used to start in whatever the script's current working directory was, but now it ignores all that and always starts in the "Recently Opened Files" list.

Do we need to fork Zenity now? This is so ridiculous.

Tags: 3 comments | Permalink
Soccer Mom Brigade
June 28, 2011 by Noah
The latest US news is that California attempted to ban violent video games, and instead, video games are now protected under the First Amendment.

I love it when the law blows up in the face of the Soccer Mom Brigade.

"Soccer Mom Brigade?" It's a term I made up to describe the sort of person who complains about this sort of thing. Dumb people (usually overbearing parents who don't know anything but think they need to have an opinion about their kids' lives, hence, "soccer mom") find something--no, they seek out something to bitch about, and they write angry letters to whoever they need to in an attempt to get the thing banned for everybody.

If the target of the complaints doesn't ban it straight away, the soccer mom goes on a crusade, gathering up all the other soccer moms in the neighborhood and forms the Soccer Mom Brigade, where they become very loud, very obnoxious, and make their point heard across the country, usually getting the media involved. And then stupid stuff gets banned for stupid reasons.

Example I can think of offhand: the Pokémon episode "Tower of Terror" (where they visit the Ghost Pokémon Tower in Lavender Town), because the Soccer Mom Brigade thought their little 5-year-old would relate the title of the episode to the September 11 attacks. And they succeeded. Bullshit.

Tags: 0 comments | Permalink
The AI in Pokemon is a Cheating Bastard
June 27, 2011 by Noah
I've been playing a lot of Pokemon SoulSilver lately and feel like ranting about how the AI in the game is a cheating bastard.

First of all, I don't believe the AI in Pokemon has any reason to cheat. Pokemon battles are by default completely fair. Every Pokemon owned by the enemy trainer is a Pokemon you could also go out and capture or trade to get. And all the moves their Pokemon knows are moves you could teach to your own Pokemon.

But regardless the AI feels the need to cheat. Some examples I've seen:

It knows how many turns Sleep and Confusion will last for.

When a Pokemon is put to sleep or confused, the game internally decides how many turns it will last for. Nobody should be able to see this number, the player certainly can't, but the AI does and it uses this to its advantage.

How it cheats: it knows exactly which move your Pokemon is going to wake up on, and it will use Sleep Powder or Sing on this turn to put your Pokemon back to sleep (these moves would fail if your Pokemon is already asleep).

Evidence: the AI fails sometimes. If the enemy Pokemon is too fast, it will use Sleep Powder, it will fail because your Pokemon is already asleep, and then your Pokemon will wake up. This happens all the god damn time. You can also confuse the AI by using an item on the turn your Pokemon is about to wake up on (but, this is all down to chance, since you don't know which turn it will wake up on).

It knows in advance how much damage its attack will do

I had a Gyarados, which has high defense so most attacks to it will do less damage than expected. Regardless, the AI knew my Gyarados had only 14 HP left (yes, it cheats and sees how much HP you have, while you can't see the enemy's HP at all). It knew a Quick Attack would deal exactly 14 HP damage, taking into account the defense of my Gyarados.

But I foiled its plans by healing my Gyarados. It followed up with a Quick Attack which did exactly 14 damage.

It knows what move you're about to use

I was battling Bruno of the Elite Four, and he has a Forretress that knows the move Protect.

Protect always goes first in the turn it's used, and it prevents the opponent's move from hitting.

Bruno's Forretress is a cheating bastard though, because it only uses Protect when you're going to use your most powerful move. Forretress is weak to fire, so I used my Typhlosion's Blast Burn move, which is a very powerful fire attack. Forretress used Protect so it failed; I tried again, it used Protect a second time. Tried again, and this time it hit, because Forretress knows that Protect can't be used more than twice.

I battled Bruno later with my Umbreon. I used Dark Pulse, the most powerful move my Umbreon knows, and Forretress used Protect to block it.

I figured Forretress was gonna use Protect again, so I used Faint Attack instead. This hit. So I tried Dark Pulse again -- Forretress used Protect and blocked it. I tried again, Forretress tried Protect again, but it failed (you can't use it more than twice). So, I confused the AI there.

Anyway, I just think this whole thing is ridiculous. The AI has no reason to cheat. It wouldn't be that hard for Nintendo to program the AI to pretend it doesn't know all this stuff that it shouldn't know about the battle (hint: they just don't need to program it to look). There's probably logic in the code like, "if the player chose the player's most powerful move, and protect hasn't been used twice in a row now, use protect". Nintendo should just NOT write that code. Pokemon battles are fair by default.

Tags: 105 comments | Permalink
Thoughts on Eclipse IDE
May 26, 2011 by Noah
This is a little rant about the Eclipse IDE for Java (and other languages, but it's mainly a Java IDE).

I hate it.

I have to use Eclipse because my current project at work is a Java project, with a massive amount of source code, and I have no idea how I'd compile and run the project except with Eclipse. Also, there's a significant amount of source code managed by CVS in a hundred different projects, and authentication is made complicated by a VPN and I have no intentions of trying to manage CVS via command line.

Eclipse creates more work for me just by being Eclipse. The CVS system on it is broken, and I frequently get CVS conflicts on files that I didn't even touch between updates, which cause syntax errors, some of which aren't immediately obvious (sometimes they cause runtime errors instead of compile-time errors).

Then, Eclipse likes to just crash from time to time with no explanation. I ended up jury-rigging a chain of shell scripts just to start Eclipse to try to minimize how often it crashes, and catch the errors (if any) when it does.

Namely, I needed to use ulimit to increase the number of filehandles Eclipse can have to keep it from crashing. Only root can do this, though, and I don't want to run Eclipse as root, because I don't want new files coming in through CVS to be owned as root and make my job more difficult.

So, just to start Eclipse, I had to set up /etc/sudoers to not require a password to use sudo, and allow sudo to run without a TTY (these are both bad security practices, btw), and to sudo execute this script as root:

$ cat

# increase fileno limit
ulimit -n 50000
sudo -u kirsle "./" &
This uses root only to increase the filehandle limit, then it switches to kirsle (my user) so nothing further runs as root, and runs, a Perl script that attempts to catch errors when Eclipse goes down like a cheerleader at homecoming:
$ cat 
#!/usr/bin/perl -w

my $out = `./eclipse 2>&1`;
if ($? != 0) {
	$out =~ s/\'/\\'/g;
	system("zenity", "--info", "--text", $out);
Ugh. I strongly prefer a plain old text editor like vim or gedit.
Tags: 0 comments | Permalink
GNOME's Impact on Everything
May 25, 2011 by Noah
Today, Fedora 15 was released, so naturally I installed it right away. Despite a couple small bugs, it's working pretty well so far. However, I have yet another small rant to make about GNOME.

I've been very sceptical about GNOME 3 and gnome-shell (as I've talked about here, here and here). So, I had jumped ship to XFCE a couple years ago and will not be a GNOME user in the foreseeable future.

Now that Fedora is finally shipping GNOME 3, though, the GNOME dev team has again impacted me in ways I wish they wouldn't.

GTK2 Themes and GTK3 Themes

GTK is the widget toolkit used by GNOME and XFCE, and a lot of applications such as Firefox. GTK themes therefore are responsible for styling up the buttons, scrollbars, and other GUI elements in any GTK app.

The first impact of GNOME on the rest of the software ecosystem is that they moved to GTK+ 3.0 and everybody else is still catching up. How this affects XFCE?

  • XFCE is still using GTK 2. Whatever, this is up to the XFCE team to work on.
  • There is an extreme lack of GTK 3 themes. Fedora always ships with a dozen themes, but, only the default theme has a GTK 3 version. This means that under XFCE and all other GTK 2 desktop environments, themes work as they have before, but all the GTK 3 apps are broken now.
Screenshot of two XFCE apps (GTK 2) compared with two GNOME apps (GTK 3).

Setting any custom theme in XFCE makes all GNOME apps look ugly because there is no matching GTK 3 theme. Oh well, you think, just don't run GNOME desktop apps in XFCE?

The problem is that Red Hat and Fedora drink so much of the GNOME kool-aid, that all their other apps that aren't GNOME specific are also using GTK 3. This includes: the Network Manager (seen in the screenshot), and all the PackageKit GUIs (for graphically installing updates). There are probably other things too. This means that, to use XFCE or basically anything besides GNOME, you have to deal with ugly themes on a lot of "core" Fedora GUIs.

This problem should hopefully go away in the next release or two of Fedora, as XFCE and other apps are updated to GTK 3. I just hope Firefox doesn't decide to make the switch too early, though... that would drive me nuts if Firefox started looking this ugly.

My temporary hack of a workaround is that I made a symlink for gtk-3.0 for my current theme that points to the default theme's gtk-3.0, so at least GTK 3 apps don't look ugly... but they still don't "fit in" with my GTK 2 apps.

Volume Control Applet

GNOME's volume control applet used to be a program that puts an icon in your Notification Area to control your volume. This was cool: you could click the icon and it would pop down a slider for adjusting the volume, and if you went into the volume settings GUI you were able to adjust the volume up to 150% if you wanted to.

This is all gone now.

Why? Oh, because GNOME Shell has its own volume control icon built right into the desktop GUI directly, and it therefore has no need for a Notification Area based applet anymore. Never mind that other desktop environments like XFCE would find such a thing useful. Now I'm forced to go back to the old school "Mixer" applet in XFCE, which is nowhere near as elegant as the GNOME volume control applet used to be.

I'm tired of this "the whole universe revolves around GNOME" mentality that the GNOME developers exhibit. Most other desktop environments play nice with each other, most try to follow standards, but GNOME... GNOME wants to be your desktop environment; it wants to be your entire operating system.


It seems GNOME 3 does still have a Notification Area based volume control... they renamed the command from gnome-volume-control-applet to gnome-sound-applet, provided by the package control-center rather than gnome-media. Right-clicking the icon to go to the Sound Preferences brings up a GTK-3 GUI that includes a volume slider that goes to 150%.

So all hope is not lost, yet.

Tags: 12 comments | Permalink
Brief IE 9 Review
March 26, 2011 by Noah
I'm typing this blog post from Internet Explorer 9 on Windows 7. Here is my brief review after using it for just 5 minutes on a couple of my websites.

Microsoft STILL doesn't get it!

It appears that IE 9 now, finally supports rounded borders via CSS (border-radius), and they finally support the box-shadow in CSS too (adding shadows or glows around a block-level element like a div). But know what they still don't support? text-shadow - adding shadows or glows to text.

So, looks a bit nicer on IE 9--because the round borders on my site's panels works now. But the glowy effect I have behind my headers doesn't show up. How could Microsoft finally add box-shadow support but not add text-shadow?

Oh, and that border-radius support? It seems that it only works when all four corners have a radius. If you only want a radius on 1, 2 or 3 corners and leave the rest square, IE 9 won't play ball. All corners are square in this case.

This is far from the promise that "Internet Explorer 9 will be a modern HTML 5 capable browser just like all the other ones out there that don't suck."

Microsoft just needs to throw in the damn towel already. They are horrible at making web browsers. Give up already.

Tags: 2 comments | Permalink
Really Serious Bullshit
March 6, 2011 by Noah
This is a rant about what I think about my fellow gays on gay social networking sites.

They're way too much drama.

It seems as though every single guy I meet on any such gay website, automatically seems to assume that I'm going to hookup with them, or date them or be with them forever and ever or something stupid like that. Never mind that I explicitly spelled out that I'm only after friends and chatting on the site in question.

And then they get all stupid and insecure about whether or not I'm interested in them. This happens all the time but here's the last example that really pissed me off.

This Brandon character I met from who-knows-what gay site, I had him on my Yahoo! buddy list and on Facebook. He IM's me on Yahoo saying, "so do you not want me to talk to you". I wonder for a second who this is, and check my chat logs, but this is a new computer and I have no prior chat logs. I say I don't remember him, and he tells me we're facebook friends, so I go check. Not remembering still I just reply, "I have no reason not to want to talk to you."

I then notice I had an older chat open with him from Facebook where, the conversation ended with him saying,

(08:35:56 PM) Brandon: not interested in me?
(08:38:45 PM) Brandon: guess not

Yeah, I forgot to reply within 3 minutes and he assumes an answer already. I had seen this earlier, thought it was bullshit (I hate when random strangers on the Internet already start getting this insecure on me), and just ignored it. But now I put two and two together and saw that this is who I'm chatting with now on Yahoo.

So I add, "but I do wanna say I'm not looking for a b/f or a hookup or anything, only friends, is that okay?" -- and he apparently got his ego bruised by this, and tries to attack me, and say "did i ask for any of that? /ok sorry / i wont talk to you anymore / dont assume people wanna hook up and marry you"

I didn't assume. I had his Facebook chat log from earlier in the day. I tell him what he said earlier and how it looks like he wanted to be more than friends, and I paste him the chat logs. He says nothing further, and just deletes me from Facebook.

This is the sort of stupid gay drama bullshit that I do not have time to put up with. Other examples of this is when some guy wants to meet me very quickly, and I reply back saying, "I need to get to know you first before I meet you." If their response to this is, "well what do you want to know?".... this is not the correct answer. That's NOT what I meant. And I'll quit talking to him at this point.

Another example is when a guy starts getting all insecure on me and says something stupid like, "I guess you're not into me, I'll just leave you alone then." Good. If you're gonna act like a little bitch, I didn't wanna talk to you in the first place.

The annoying part about all of this is how widespread it is. It seems that every single guy I chat with on any gay website behaves this way. I don't have the time to put up with this sort of stupid bullshit.

As for the subject of this blog post, it's a joke from the IRC room I've gone to since I was 12 as I was ranting about this exact thing.

[Kirsle] I don't have time for this kinda bullshit
[Kirsle] seriously
[Kirsle] any ONE guy from any site is so much high maintenance and stress
[Kirsle] tons of guys from tons of sites is just too damn much
[Admin_Todd] what kind of bullshit do you have time for?
[Kirsle] more serious bullshit Todd, not this stupid stuff :P
[Admin_Todd] oh ok
[MattB] lol
[Admin_Todd] Big Bro give Casey some really serious bullshit
* Big_Brother gives Casey some really serious bullshit :P
[Kirsle] :P
[MattB] haha
Tags: 2 comments | Permalink