Tuesday, September 30, 2008

Is Auto-Hiding THAT Hard?

For Blod's sake, why can't anyone make "auto-hide" work on task bars. It hasn't worked well on any version of Windows from '95 through Vista. The Downloads window in Firefox or IM notifications in MSN Messenger, as for-instances, will not allow the task bar to auto-hide properly - it'll just sit there, unhidden, waiting for you to figure out which window is trying to notify you of something or other that you don't care about.

I happen to like the task bar to be on the top of the screen, so when it doesn't auto-hide, I lose the tops of any windows up there which usually means I lose the ability to easily move them around and such. This happens to me every single day in Vista. Right now it's up there not auto-hiding and I have no idea which window is causing the problem, and whether it's just a matter of giving the offending window focus, or completely closing it to regain auto-hide functionality. I've got 3 SSH sessions via Putty, one instance of Word, three file explorer windows, one remote terminal, two Windows shells, one instance of FreeCommander, one instance of Notepad, one instance of Eclipse, an instance of Sage MAS90, 14 Firefox windows, and Outlook all running and I'll be damned if I'm going to start closing them all until the stupid Task Bar starts working right again.

This happens to me with Gnome panels also, but thankfully they do such a terrible job of "hiding" that I rarely use that feature when I'm running a Gnome desktop.

Friday, September 26, 2008

Top 10 Linux FOSS Keys

Linux and FOSS "top whatever" lists are all the rage these days on the blogoweb, so I figured I might as well cash in.

I've been using Linux and Free Open Source Software for many years now, and have developed my own set of preferences and tastes in this regard that work well for me. I thought I'd share some of them in hopes of helping out newbies or perhaps even inspiring some of the old-timers.

Specifically, I'd like to talk about some of the keys available on Linux. I realize that many of these keys might also be available on other operating systems, and I should also note that I haven't used every single key -- so if I miss an important one, let me know.

  1. The A key.

    Not the most important key, surely, but a big dog no less. The king of the alphabet. The first letter of "Alphanumeric" and "A-Team". When used in conjunction with the CTRL key it will Select All in most of your favorite FOSS programs. Without the A key, there's no way you could view processes belonging to All users using `ps aux`, or see All sockets using `netstat -a` -- hell, you couldn't even spell netstat.

    The A key. With it we can achieve the center, the essence, the heart of `man`.

  2. The Semicolon (;) key.

    Ah the semicolon, a personal favorite of mine. With the semicolon key I can look grammatically smart to people more stupider than I; of whom are many. Without the semicolon key getting a C or Java program to compile would be a miserable experience, and you can forget about your cute little PHP app with the Javascript front-end.

    The semicolon key -- keeping FOSS lovers' right pinkies in shape for over 30 years. Or more, or less. I dunno, how old are keys?

  3. The Backtick key.

    Oh! the anguished, misunderstood, misrepresented backtick key. Ask a typical Windows user to press the backtick key and you'll have a good reason to chuckle arrogantly to yourself, just loudly enough so that they'll see it. "Why would I ever use that", they'll ask, full of stupid.

    Often overshadowed by the tilde who found fame in mathematics, the backtick waits patiently on your FOSS keyboard, just above the Tab and just to the left of 1 -- waiting for you to need to exec something in your scripting language. Or waiting, perhaps, to be used covertly in a parameter sent to your poorly-written PHP script... but let's not generalize, not all backticks are bad just because most of them are.

    Oh backtick, you kick so much ass!

  4. The Backspace key.

    The cleaner. The remover of bad. Where would be without the backspace key? We'd be arrowing around and using the delete key, that's where we'd be. What a nightmare! The delete key is one of the most overrated, poorly conceived keys on your FOSS keyboard, yet somehow it has historically taken precedence over backspace, who in some circumstances is reduced to coughing out a bunch of useless ^H^H^H characters.

    Without the backspace key I wouldn't be able to remove the mistake I'm about to make.

  5. The Spacebar.

    Perhaps the spacebar should have been at the #1 spot on my list. After all, it's freakin GIGANTIC! It's so god damned enormous that it's not even called a key -- it's called a BAR. And it's a bar because it's so dang useful. Here's how your code might look without the spacebar:

    intmain(){return1;}

    Compile THAT! Ha!

    And what a perfect name, rich with double meaning. When future earthly entrepreneurs start opening merry little establishments on space stations around the universe, you can bet there will be more than a small shake of cool joints called "The Space Bar."

  6. The ellameno keys.

    Reduced to a single letter in the minds of many by an unfortunate, cruel children's song, the l, m, n, and o keys deserve a mention. Thanks for the ls, the more, the nslookup, and the almost-middle letter of the acronym FOSS.

  7. The Print Screen key.

    A dumping ground for homeless functions, the Print Screen key has remained a part of FOSS-compatible keyboards since its early beginnings when it would actually "print the screen." Now nobody really knows what to make of it. It might take a screenshot, sure, that's cool. On some non-FOSS keyboards it might INSERT, causing your cursor to type over everything in front of it, and I guess that's manageable. But what if it SysRqs???? What the hell is that? What if it SysRqs whiles taking a screenshot of your cursor changing behavior!?

    Typically located near the Scroll Lock and Pause / Break keys, the Print Screen key is made even more ominous by the unsavory company it keeps. They're there, they're proud, and it's best if you just leave them the hell alone. But if you get yourself in with this selective crowd, they might just open up a whole new level of functionality that you never knew existed. But I dunno, I don't push on them.

  8. The Esc key.

    Let's face it, the escape key is losing relevance. Rarely does the esc key actually perform any useful function -- just what does it mean to "escape" in a modern operating system anyhow? Richard Stallman completely redefined the key when he wrote Emacs, turning into some kind of freakishly meta bastard, and nobody even noticed! Nobody stopped to think, "hey, if I press M-c, an awesome feature to capitalize the first letter of a word, won't it cause me to 'escape' from Emacs?" No, no it won't.

    Look, the esc key might not have any functional relevance when it comes to your FOSS software, but it does have one very important function in the physical world. It gives you something to beat on when your FOSS programs that aren't supposed to crash suddenly stop responding. As if it were the controls to a time machine, we beat the hell out of the escape key every time something goes wrong. It is the avenue through which we allow our abusive tendencies to escape.

    Escape key, I salute thee.

  9. The Arrow keys.

    "Hey, we're hear to stay, so just use us already!!"

    Poor arrow keys. Everyone always hijacking other letters or even the number pad to perform the function that the arrow keys were specifically designed for. Twenty years ago it wasn't a given that a keyboard would have arrow keys, but now-a-days I challenge you to find one without. So knock it off with this Num Lock crap and forget about your WASD and HJKL. We're never going to convince our proprietary brothers and sisters to make the switch to FOSS if we can't even reduce ourselves to using keys with arrows on them to move things in directions.

    Arrow keys. Easy is good.

  10. The Windows key SUCKS.

    In blog-style top-ten FOSS fashion, I completely bail when I run out of ideas and add something completely irrelevant. Open-Apple and Closed-Apple are stupid too.

Thursday, September 18, 2008

Viewsonic WPG-150 "Wireless Presentation Gateway"

"Hey, I thought this blog was about software, what gives?"


Well, Mr. Anonymous Strawman Setup Guy, it is.  This post is about the Viewsonic WPG-150 Wireless Presentation Gateway -- a little box that allows a person to connect wirelessly to any VGA projector.  I'm not going to focus on the WPG-15o's hardware, as it seems to work just fine;  its firmware on the other hand...

The way the WPG-150 works is this: it broadcasts its SSID over wireless which you connect to via your Windows-based PC or laptop.  Once connected, you simply open a web browser and you'll be instructed to download the software required to actually send video to the device, which it then sends out via VGA to the projector.  The client software consists of video and audio capture drivers necessary to send your display to the WPG-150, and a simple control-panel type application.

All that crap works just fine.  No issues whatsoever.  The problem is this: "what if I want to connect to the network while I'm making my presentation?  What if my presentation involves showing a live website?"  Hey, have no fear, the WPG-150 solves this problem for you as well by including a network jack allowing you to plug the device into your network.  It's then smart enough to handle your network requests while still projecting your display.

Here comes the FAIL!

The wireless adapter inside the WPG-150 is hard coded with an IP address of 10.0.0.1, and the device has a built-in DHCP server that will assign the computer that connects to it an address of 10.0.0.2.  Interesting choice of IP addresses there, since 10.0.0.0/24 is a common subnet used in private corporate networks, and 10.0.0.1 and 10.0.0.2 are very likely to be used by gateways or servers.  Can you guess my network configuration?  Yup.

The WPG-150 only allows you to change the LAN IP, so using it on a 10.0.0.x network would require the additional purchase of a router.  The website BCCHardware.com has a review of the WPG-150 in which they seem to imply that the 10.0.0.1 address can be modified via the default web page that the device serves up when you connect to the device without the client software.  I was able to locate an embedded Java control on this page, but it errored out with a class not found exception.  I even rolled back to Java 1.4 and used several different browsers.  My hunch is that this is a left-over from a previous incarnation of the device.

So I emailed Viewsonic technical support via their online support form.  No response for over a week.

So I broke down and called them up.  You can get their tech-support phone number after going through a little online support questionaire in which you click "no this did not solve my problem" about fifteen times.  Thankfully I was able to speak with a representative within a few minutes of making my call.  I made the mistake of trying to explain why the device wasn't working on my network, which just seemed to confuse the matter.  Finally I just flat out asked, "just tell me this: how do you change the 10.0.0.1 address on the wireless interface?"

"You can't.  It's hardcoded into the firmware."

"Is there an older version of the firmware I can roll back to or something?"

"No."

"Fail!"

"huh?"

"Nevermind.  Thanks."

I called up my favorite sales rep and setup a return for the device, and at the same time put in an order for the InFocus LiteShow II, another Wireless Presentation Gatway that's a few dollars more expensive.

When the LiteShow II arrived I felt a little pang of panic as the device looks almost identical to the WPG-150.  It even comes configured with the wireless interface set to 10.0.0.1!!  Clearly there is an outfit out there private labeling these things.  The firmware, to my relief, is not a copy of the WPG-150 and has several networking options available.  I was able to configure the device in Access Point+ mode (or something) which basically turns the thing into a router.  The LiteShow documentation sucks, so it took a while to figure this out, but essentially I was able to give the hard wired LAN interface an IP on my private network, and the wireless interface an address in a different range and it routes between the two successfully.  WPA (TKIP or AES) encryption and RADIUS support on the wireless interface makes it a useable access point in a corporate setting.

Wednesday, September 17, 2008

Linux Action Show's Host to Produce Non-free Software

So I'm a regular listener of the Linux Action Show, a podcast devoted to news and commentary about -- you guessed it -- Linux.  The "action" part of the show is that they talk loudly.  For the most part I've always found the show to be interesting and insightful without being overly preachy, as Linux advocasy often is.  Essentially: Linux is good but needs work and we can put up with a few proprietary drivers even though we hate them.  Knowing of the show's pragmatic stance on free software, it still came as quite a shock when co-host Bryan Landuke recently announced that he is going to be producing commercial, closed-source applications exclusively for Linux.


By no means do I subscribe to the FOSS evangelist "philosophy" perpetrated by Richard Stallman.  In fact, I rather enjoy poking fun at it.  But there is one area where I do believe that FOSS values are not only appropriate, but necessary: free operating systems.  Linux, of course, being one of them.

The hosts of the Linux Action Show have long held the belief that in order for Linux to become "mainstream", it has to look right.  I agree with this wholeheartedly.  If a Linux distribution doesn't look as professional and asthetically pleasing as its commercial competition then the mainstream consumer is not going choose it over a proprietary system.  Another idea often emphisised by the Linux Action Show is that Linux is lacking high quality consumer / end user applications.  This I also tend to agree with.  Aside from a few shining examples like OpenOffice.org, many Linux applications are very lacking in ease of use, documentation, and overall visual appeal.   Great, so these guys are on the same page as me and they're all ramped up to actually do something about it!

The solution?  Make more proprietary, non-free, closed-source applications for Linux that look really nice.

ZZZZzzzttt!  Hold it right there.  This makes no sense.  I actually had to rewind the podcast a little bit to make sure I was hearing things right.  I was.  Unfortunately.  

After hearing Bryan's entire spiel about the two applications he'll be launching (some kind of e-readers...I don't really do much e-reading) I quit listening and almost decided to go unsubscribe from the podcast.  Then I realized that unsubscribing would involve work, and that unsubscribing from a podcast to convey my righteous dismay was about as lame as starting an internet petition to save the world from global warming, so I decided to remain a listener.  (not to mention it's like the only quality Linux show left now that LUG Radio called it quits)

The problems with Bryan's assertion that Linux needs more commercial applications are many.  Let's think about this.

It is true that the state of desktop computing today has a lot to do with commercial vendors licensing closed applications as a business model.  A paid software engineer will produce more code than a non-paid one, and the money has to be made somehow, right?

Well, yeah, but that's besides the point.  Windows did not become the market force it is today because a whole bunch of developers decided that they would make money by licensing software on Windows.  This egg comes before the chicken.  Developers chose Windows because Microsoft made it into the gorilla it has always been by sheer business force.  Windows is where the customers are, and that's why it's where the developers are.

Producing closed-source commercial programs on Linux to demonstrate that it can be done successfully in the hopes that others will follow suit is fatally flawed.  As we just implied, Linux doesn't have the market share to support a large number of niche closed-source developers, so all that will be proven is that it can't be done.  But just for fun, let's assume that Bryan does pull it off, and he sells enough copies of ones and zeros to pull in the necessary income to replace a regular W2 job in the industry (assuming this number is in the range of $60-100K for a man in his 30s, plus enough to cover the self-employment tax burden... that's a lot of shareware to sell).  What will this do for Linux?

It will do absolutely nothing for Linux except, perhaps, gain it a few properietary niche applications.  Will anyone switch to Linux because they can buy a comic book reader for it?  I think not.  Even if Adobe released its entire Creative Suite on Linux it still wouldn't make people switch.

OOOh, I can almost hear your grunts and groans!  But I'm right.  The person who would switch from Windows to Linux because Creative Suite ran on Linux is somebody who is ALREADY RUNNING LINUX.  That person just also happens to be running Windows or OSX too.

To be frank, Linux is not as polished or easy to use as Windows or Mac OSX.  The devil is in the details, and while some Linux distributions like Ubuntu work great overall, it's the little things that hurt.  Why don't those extra buttons on my laptop do anything?  Why isn't my wireless card working?  Why is it so hard to use a projector?  Why the hell are all the fonts so damn big?  Which of my smart-ass younger relatives can I call when I suddenly can't change my desktop resolution?

No, Linux's value is not in its polish, that's Mac OSX.  Linux's value is not in its giant install base, that's Windows.  Linux's value is that it's free.  Free as in beer and free as in libre.  I can install Linux almost anywhere, for any reason, without having to worry about licenses or activation schemes.  I can use my Linux applications freely knowing that in general they support open standards, have long lifespans, aren't tied to a specific machine, and don't force me to upgrade every six months.  That is the value of Linux, which is the value of FOSS itself.

Nobody is going to make the switch to Linux because they can buy more commercial software for it.  They're already getting their properietary operating systems for "free" with the machines they buy anyhow, and they have no trouble buying commercial software for them.  Adding commercial software to Linux won't fulfill any real need. 

And what happens if Bryan's plan does work, and work better than he ever dreamed?  What if we had scores of closed-source applications on Linux making Linux more comparable to Windows or OSX?  What would we have gained?  Better DRM support?  Less control over our data?  Applications that phone home to activate?  Fun and exciting commercial EULAs?  Wait, why were we using Linux in the first place?

Here's a suggestion, Bryan:  create awesome looking, feature-rich applications for Linux and give them away, source and all.  Pick a modern business model that doesn't involve artificial restrictions and show us how you can make money at it.  Show us that open-source software doesn't have to suck because we aren't paying for a license.  This would impress me.  This would be good for Linux.  

Until then, I'll be self-righteously thinking about unsubscribing from your show every time you mention your plan, but then not actually unsubscribing.  (It's my protest and I can conduct it on any scale I choose, thank you very much.)

Wednesday, September 10, 2008

Damn you nano!

GNU nano is a pico clone text editor for Unix-like operating systems, and I like it because it's quick and reminds me of using Pine for email in the good-ol' days when an inbox was full of messages from actual human beings.  Anyhow, that's besides the point.  Let me just say that I use nano frequently throughout the day.


The problem with nano is that the "search" or "find" feature is bound to ^W (as in "Where is", sheesh), which also happens to be the same key combination to close the active window in Microsoft Windoze (as in "close Window", double sheesh).  

Every single day I'm in a web browser or some other application on Windows and I'll hit ^W on accident when trying to search for some text.  *blip* there goes the window.

I thought I'd blog about it because you look bored.

pfSense Captive Portal with Firewall Schedules

Today's sad story:


So I'm looking for captive portal setup for my company's guest internet access and initially came across Monowall which seemed to fit the bill.  (I think you're supposed to spell it mOnOwall, but I'm not 16 years old.)  While Monowall was a minor pain in the butt to install to the hard drive of the old machine that will be acting as my router for this project, it did work and worked well.  However, I found it a little bit lacking in both the features department and the 'let's develop new features' department.

While browsing various forums for information about Monowall, I found a couple nods to pfSense, which turns out to be a fork of Monowall with many more features and a snappy interface.  Not only that, but pfSense is distributed as an ISO with no-nonsense installer that can actually install the software to a hard drive without the extra steps required by Monowall in this regard.  Yay.

So I was really only interested in two features.  I'm not too particular.  (in fact, it seems like most of my rants involve the need for two related features that no one piece of software can manage to provide)  The features are: 

1) A captive portal.
2) Scheduled firewall rules.

pfSense has both, but of course, as I'm sure you guessed, that's right, it wouldn't be my life if this wasn't the case, THEY DON'T WORK TOGETHER.

Enable a scheduled for your LAN->any firewall rule and your captive portal will no longer function.  In fact, I had to delete the schedule I created and completely restart pfSense before the captive portal came back online.

Why would these two features be mutually exclusive?  What if you want to provide guest access via Captive Portal for normal business hours, and no access during non-business hours?  I don't think that this is a terribly odd request.  If you're providing Wifi access you certainly don't want to worry about some jackass out in the parking lot in the middle of the night trying to hack on your portal.  Access to any portion of a network should be off when you know, for sure, that it does not need to be in service.  Sure I could enable encryption on the access point, but in this case I'm looking for ease of use over security -- but not completely.  After all, I have some control over my parking lot during business hours.

What bothers me most is that a Captive Portal should be on conceptually on top of the firewall, and a firewall schedule should just fire rules at defined times.  If you defined a rule that completely disabled access through the firewall at 5:00PM, yes your Captive Portal would stop working -- but so what, that's sort of the point.

Friday, September 5, 2008

3Com Baseline 29XX Switch Password Lameness

Change the admin password on your 3Com Baseline Switch?  Can't login anymore?


Here's what I figured out through a bit of guesswork:  passwords must be 8 characters or less.  The web-based control panel will allow you to enter passwords longer than 8 characters, and will simply truncate your password without warning.

So if you entered as a password: IAmADickensFan

You can login using: IAmADick

Thursday, September 4, 2008

Ubuntu Hardy Screen Resolution Hell

Ubuntu Thinktank: "How can we make Ubuntu easier to use?"

Satan: "Well, you could completely automate screen detection so people don't have to manually configure xorg.conf. In fact, you should just stop using xorg.conf. You might also get rid of the Screens and Graphics tool replace it with a single dialog box that allows the user to view his screen resolution and pretty much not do anything else. After all, an automated solution that works for all is the best solution."

Ubuntu Thinktank: "Interesting... but should we really believe that our one solution will work for every hardware scenario? I mean, easy is great but what about the people for whom it doesn't work right, won't they be..."

Satan: "SILENCE FOOLS! ONE WAY FOR ALL IS THE WAY AND IT IS MY WAY FOR I HAVE SPOKEN! (Just make sure it works on my Compaq laptop or there'll be HELL to pay. Hehe, I kill me.)"

-----

So this morning I boot my Ubuntu Hardy machine and behold: 640x480 awesomeness. No real reason for it that I can think of. It's kind of odd because I have a similar problem with my Vista machine "forgetting" it's screen settings, but at least in that case I can CHANGE THEM BACK.

Seems like this is a common problem. Here are a couple reference threads: http://ubuntuforums.org/showthread.php?t=766879 , and http://ubuntuforums.org/showthread.php?t=771810 .

I have a Geforce 6200 video card in the machine and a pretty basic 1024x768 LCD. Not an abnormal configuration by any means. I'm using the proprietary nVidia driver.

I installed nvidia-settings and ran it, but guess what? It's not usable at 640x480. How about that! To all you designers at Gnome who thought: "hmm, is there any way that we can make buttons and stuff like that bigger?", go to hell.

I manually edited xorg.conf to add a line forcing the display to 1024x768, and the display came up at 800x600. That was pretty awesome.

Finally I read a post about adding "Screens and Graphics" back to the main menu. Apparently they didn't get rid of it, they just hid it because the devil made them do it. Running Screens and Graphics I was able to change my monitor type and get back to 1024x768. (Note that if you add Screens and Graphics, it will show up under "Other", and if you run the menu editor at low resolution you'll have to use the tab and arrow keys to move around because the mouse will just scan around the virtual screen instead of clicking on what you want to be clicking on)

Oh, I should note that you can edit your menu by right clicking on it and choosing Edit Menus. I believe it should be the Applications menu that you right click on, but I can't remember. My menu is just a little Ubuntu icon because I couldn't stand all the space the default menu took on the panel.

As I wrap this up, I'd like to offer a bit of advice to the Ubuntu Thinktank:

There are two things that I need more than anything out of an easy-to-use graphical operating system:

1) The ability to enter stuff into the computer with the keyboard and mouse.

2) The ability to see the stuff I entered.

Any sort of screwups in those regards are showstoppers. Don't take away the user's ability to easily make changes to his configuration. You want to automate things? Cool. Do both.