OS Tryouts 1: PC-BSD

PC-BSD

System Setup

The PC-BSD initial setup was pleasant enough, there was only brief exposure to the horror of the console as cryptic text scrolled past. I can imagine consumers panicking when they see these sorts of screens, pages of text they can’t comprehend without a solid understanding that much of it really is meaningless unless the system doesn’t work, and then it rockets from being worthless to priceless. Generally when I think of designing operating systems for consumers, you want to suppress this behind some pretty pictures or a progress bar, which is a clearer representation that everything is proceeding according to plan. Even when everything is working properly in systems like these you can spy error reports in the startup console text screens. The developers either don’t care or expect the errors and they are “worthless” issues because the system starts up normally. To consumers, if they are reading along and have a little bit of training about what they are looking at, they could be unsettled by a line that looks like an error even if it’s a throwaway warning.

After the initial setup, the standard installation questions are rather straightforward. Language and locale settings, however it is good to note that these days the really good systems automatically fetch much of this material from the indigenous Internet address. I would argue that if the IP is in the United States then it’s likely English, and if you know the IP, then you know the location, so time zones are easily set as well. The hostname selection is always different from system to system I’ve found. Some systems are computer-before-person and some are person-before-computer. Since you can set this to whatever you like, it’s not really a quibble.

PC-BSD does a very good job at clearly separating the difference between root access and user access. You create the password for the root account, and then it automatically leads you to create a user account afterwards, with the option for encryption presented immediately, which is a nice touch.

First Login

I was presented with a login dialog box, I selected my window manager to be Cinnamon as it was an installer option when I set up this system. The system attempted to start X Windows and then the desktop manager crashed. I tried to restart it twice and then when that wasn’t working I clicked Cancel and the system started into X Windows without a desktop manager. There are no clear ways on the display to proceed forward unless I wish to use “AppCafe”, “PC-BSD Control Panel”, or the “PC-BSD Handbook”. I tried to use the magic keyboard combination of Control-Alt-Backspace to exit out of X Windows to no avail, the key combination does not work. I then inserted Control-Alt-Delete which reset the system and led me directly back to the login window. This time I selected the default window manager, of KDE and logged in. The system did at this point proceed properly.

I tried to start a basic application, in this case I wandered through the applications and selected “Marble” in the education category. The app failed silently. After that I went to system update and started the update search. The wait for progress was rather long at about five minutes, but I did see there were “Base System Updates” available, what they are is not stated, but I elected to install them anyways. The progress bar does not really fill up in the way that a consumer would expect, but rather as a quarter-inch blue rippled box that bounces slowly left and right.

Generally when the system is installed and updated it seems to be competent. The fact that you can’t really stray from the KDE interface is a little bit of a concern, but generally not a huge problem. I would say that PC-BSD really isn’t ready for prime time consumer use yet. Then again, no Linux OS is, at least yet.

I say hello, I say goodbye…

For a few months I’ve used an app called Platypus on my Mac to create a pseudo-app that bundles a bash shell script which instructs my Mac to open various applications that I want to use during the day. What I want is very specific, I want to be able to login quickly to a idle Mac, but I want to have one icon to click on to start an entire host of applications, if I want to. The overall solution would of course be to mark every app as “Open on Login” but I don’t want them all to open each and every time I log-in, I’m picky. The bash script uses the open command to open applications. This command works well enough, but it leaves my screens littered with open application windows. This is not exactly what I want. I want all my applications to be opened, then I want them to be hidden. Cake and eat it too.

This morning, on a lark, I investigated alternatives to using Platypus. I know there is AppleScript, but I never really delved very deeply into the language. A little browsing and some tinkering and I have exactly what I want:

tell application “Mail” to activate
tell application “Firefox” to activate
tell application “iTunes” to activate
tell application “/Applications/Yahoo! Messenger.app” to activate
tell application “Stickies” to activate
tell application “Remote Desktop” to activate
tell application “Server Admin” to activate
tell application “Evernote” to activate
tell application “iCal” to activate
tell application “iChat” to activate
delay 0.5
tell application “Finder” to set visible of process “Mail” to false
tell application “Finder” to set visible of process “iTunes” to false
tell application “Finder” to set visible of process “Yahoo! Messenger” to false
tell application “Finder” to set visible of process “Stickies” to false
tell application “Finder” to set visible of process “Remote Desktop” to false
tell application “Finder” to set visible of process “Server Admin” to false
tell application “Finder” to set visible of process “Evernote” to false
tell application “Finder” to set visible of process “iCal” to false
tell application “iChat”
set minimized of window “bluedepth@gmail.com” to true
set minimized of window “andymchugh@atlas.dev.wmich.edu” to true
set minimized of window “AIM Buddy List” to true
set minimized of window “andy.mchugh@chat.facebook.com” to true
end tell

This script, shoved into an Application icon opens up every app I want in the morning, then hides them, except for iChat, it minimizes every window but my Bonjour list. I discovered that if I accidentally have a volume open when I run the script and there is an application in the volume and I ask that it be activated, the Mac is confused and asks me to pick the application from the list – so for Yahoo I had to explicitly state which one I wanted. Not a bug, just me being lazy.

The flipside of this also occurred to me. In the evenings I want to close all my applications. I could of course rely on the log-out procedure to do all the mopping up but there are some apps I use, like GroupWise and VirtualBox that can upset the log-out sequence. This script unmounts all volumes and then quits all open applications. That way I close all my apps before I log-out. Again, with the lazy:

tell application “Finder”
set bootDisk to name of startup disk
set otherDisks to every disk whose (name is not bootDisk)
repeat with myDisk in otherDisks
try
eject myDisk
end try
end repeat
end tell

tell application “System Events” to set the visible of every process to true
set white_list to {“Finder”}
try
tell application “Finder”
set process_list to the name of every process whose visible is true
end tell
repeat with i from 1 to (number of items in process_list)
set this_process to item i of the process_list
if this_process is not in white_list then
tell application this_process
quit
end tell
end if
end repeat
on error
tell the current application to display dialog “An error has occurred!” & return & “This script will now quit” buttons {“Quit”} default button 1 with icon 0
end try

Yay for Lazy! 🙂