Day-to-day thoughts, technical information, a random grab-bag of thoughts, discoveries, and interesting little tidbits.

Sunday, August 12, 2012

Back with Some Thoughts

Time to clean off the cobwebs, I guess.



What was originally a mild interest into using my voice professionally, combined with my usual interest in advocating Linux as a cheap recording solution, has made some very big strides into my new site, The Penguin Producer.  It has eaten up a huge amount of time over the last year, but I find the process rewarding; I now have a good bit of reference material to check on when doing things, and I like that some of my articles are being used elsewhere.

However, in the interests of keeping that site completely focused on the topic at hand, and because I am interested in opening up a broader dialogue, I'll get back into personal blogging here, as well as the occasional foray into deeper things. Probably more of the former than the latter; I do not have the free time I used to have in coming up with this stuff, and most of that time has been spent on the Penguin Producer.



I've had some interest in doing podcasting, but have been uncertain exactly how to approach the process.  I tried with a friend, but the whole thing felt wrong; I'm not really comfortable talking about stuff informally, as I tend to prefer explaining how things work, and how to do things, rather than just saying that this thing is good, and how I'm looking forward to that thing, and while I'm good at faking it; I just don't understand how to be a "fan" of anything, unless that something has a specific tangible usefulness.

Which is pretty ironic considering how determined I am to learn how to create something as completely intangible as media.  What is its purpose?  Why am I so crazy over the idea of making drawings, podcasts, videos, and other projects.  And if I'm really so all-fired interested in these other areas of endeavor, why am I not also interested in music?  It's frustrating.



Recently, the Mint guys have come out with a fork of the Nautilus file manager for their distribution, and they are calling it "Nemo."  So far, every podcast seems to associate that name with the clownfish from the movie, "Finding Nemo."

What the hell, folks?  Have none of you read the book "20,000 Leagues Under the Sea?" The "Nautilus" was the name of the submarine, and Captain Nemo was its inventor and pilot.  Where the hell does clownfish come into this?! 

Yeah, it's probably a pretty stupid point, but it's annoying to hear people wondering about how they came up with the name; I don't know if its elitism, but even if you've never read the book, there are still the movies based off of the book.



Finances have been difficult for me, and now they've reached a point where I'm about to move in with a friend in order to split costs.  Up until now, I've been living alone, content that no matter what I do, nobody will be there to watch; I can relax and enjoy whatever I wish, and nobody could interrupt it... and if it's an embarrassing little pleasure, there'd be nobody to pass it on.

I'd be lying if I said I'm looking forward to it.  The very idea that I won't have complete control over my environment is a terrifying thought, mainly due to the idea that uncomfortable truths about me will be seen and passed on by my potential roommate... I've spent a lot of time and effort keeping my self to myself... I do not like being embarrassed.

Saturday, December 24, 2011

Ron Paul's Newsletters and Response

I am a supporter of Ron Paul.  I do enjoy his current position, and I do see him going further as time goes on.

However, I have seen, both in this presidential run, and the last one, comments regarding a set of newsletters.  These newsletters contained articles that had racist, anti-semitic, and other really nasty things.  A popular example used is the following quote:

"Order was only restored in L.A. when it came time for the blacks to pick up their welfare checks three days after rioting began"
Now, this sort of thing should have been caught.  Ron Paul has acknowledged the issue, and has both apologized for the oversight, and disavowed the statements. Certainly, no new articles have appeared to demonstrate that he has let the issue continue.

But there are those who won't stop asking about them.  They argue that he knew these comments were in the articles, because he knew details about the newsletters' content when he advertised them.  They claim that these prove that the congressman is a bigot and an anti-Semite.

First of all, the advertising clip demonstrated he knew the general content of the newsletters.  He did come up with them in the first place as a means to educate the public.  Second, it is well-known that many of the articles were ghost-written.  Third, he was busy operating his medical practice at the time.  Fourth, he has not located and outed the guilty party.

When talking about the advertisement, keep in mind, that he did not give the hint of bigoted talk you would hear from a typical racist; he extolled the virtues of the free market, and talked about the faulty policies he did not believe in.  In fact, in absolutely none of the videos I've seen with him talking has he ever taken such a stance on race, or even quipped wise against specific races.  In fact, even attempts at wisecracks (such as the one regarding Bachmann) don't seem to slip very easily from his mouth.

I don't care how well-schooled you are, or how much self-control you possess, sooner or later, comments will slip.  And considering how hesitant and sputtering his speech can be at times, I can't really believe he's THAT good at public speaking.

There are two reasons why he would withhold the name of the ghost writer.  First is the possibility that such a person is a friend; in fact, some have stated a likelihood that the guilty party is Lew Rockwell.  Yes, such friends can be bad for you, but at the same time, we all have at least one friend we would vehemently disagree with, but would still help in hard times.  That's just human nature.  And you don't throw friends under the bus because it suits you.

The only other reason I can think of is that he really doesn't know.  This is a less likely scenario, I'll grant you, but these letters are at least 2 decades old.  If there was a guilty party, they may be harder to track at this point.

As for the negligence, how many stockholders owned stock in Enron or Haliburton?  How many of them take a personal interest in these projects?  At the time of these newsletters, Ron was a doctor, not a politician; he was not thinking about political office, and likely trusted the people who were maintaining the articles, and besides, they didn't say (theoretically) anything he didn't already understand.  In this case, we know what happens when you assume.

This is a lot of rambling, but here's the point:  I hear a lot of "he has to answer for these newsletters," but apparently, the answers he gave for them are apparently not satisfactory.  So I pose to you, media and questioners: what exact questions are you asking?  What specific information will you accept as sufficient from him?  Or are you unwilling to accept anything other than confirmation that he is a horrid, bitter man with bigoted stands toward his fellow man?

Friday, December 9, 2011

The Before-Death Experience

The Hitchhiker's Guide has this to say about the before-death experience:

It is said that before you die, your life passes before your eyes. This is, in fact, true; the process is known as "living."  This is a horribly tedious process, sometimes pleasant, such as times when one is enjoying tea and fairycake, and other times, less so, such as when attempting to explain to the Vogons just why their planet should not be demolished to make way for a hyperspace bypass.  And less so when listening to the reaction on the part of the Vogon who, in a fit of inspiration, decides to share a poem about the types of muck found between their toes one midwinter night.

Some people will seek to shorten this process, especially when listening to said poetry, in order to be on time for tea in the afterlife; fairycakes optional. Others, unwilling to experience the unpleasantness of "dying," particularly those who have not yet heard a Vogon reading poetry, will do everything in their power to extend the period, only to discover just how tedious the whole "living" process really is, until they can no longer stand it, and die anyway, usually in the middle of a dream of tea in the afterlife.  Of course, these people tend to become confused as to whether they will ever wake up on time to have their morning tea, and then decide that it's not important, as there's a perfectly good cup in front of them.

Sunday, August 14, 2011

Linux Creativity Podcast

Here I am, preparing to begin a podcast from Linux.  There are a few things I am sure I want:
  • I want the podcast to sound professional, as if it was syndicated as part of a larger network.  Even if it's not, it definitely gets the attention of someone who might otherwise just ignore it.  This means that the podcast will need to have:
    • Opening Music for the intro, small riffs for the bumpers, and closing music for the outtro.  I'd consider creative commons, but I'd be leery of non-commercial or share-alike licenses.  Attribution won't be a problem, though.
    • Discrete sections, including the opening, commentary, news, main topic, mail, tip, conclusion, and closing.
    • A steady release rate, preferably weekly.
    • An easily-remembered name.
    • A primary domain name (something.com).
    • A content-managed website, preferably with a forum and a show notes section.
    • Co-hosts with some experience in the fields I'll be covering (dialog sounds more natural than prepared scripts, and it would help to have someone coming from a creative background, as opposed to my extensive Linux background.)
    • Consistency.
  • I want to focus on the audio technologies in Linux.  I am comfortable with:
    • Jack (for sound channel manipulation)
    • Ardour (for recording and mixing)
    • LADSPA, LV2, and VST plugins (for audio filtering)
    • Jamin (for mastering the final).
  • I want to cover topics regarding the professional creative use of Linux.  There are a lot of podcasts out there that cover Linux for technicians and business people, I want to focus on the creative tools of Linux.  At first, I intend to focus on audio production (such as creating podcasts in Linux... how's that for meta?), but I have spent time getting comfortable with programs in other fields of creative endeavour, such as writing, computer graphics, and video.
Now, it really doesn't matter to me what momentum this podcast will create.  I am not an expert in any of the fields I want to cover.  I just want to get Linux to the attention of the creative types who are not aware that it can be used in place of the massively-expensive suites provided by the likes of Adobe, Apple, and Avid.  Additionally, this will also give me practice in both Linux audio production as well as voice work to add to a future demo... never mind the ability to say I participated in a professionally-produced podcast.

Friday, July 8, 2011

The Simple Linux Desktop

These days, there are a number of major desktop environments out there that can make the Linux desktop behave like a Windows or Mac desktop.  This is a good thing, where people from those environments are concerned, as they won't have to do a lot of learning right away.  Everything they expect, such as icons, the taskbar, desktop menus, and other common items are right where they would normally look for them.

But what about those of us who prefer the spartan way of computing?  Those who find the window manager shouldn't have gained any more features than drawing borders around windows, and where the desktop is just the screen where windows appear often finds the presence of start menus, taskbar, eye candy, and icons an unnecessary distraction, while the number of programs required to run in order to produce those visual elements robs the simple performance of whatever app is being used at the time.

In an effort to remove the complexity of the desktop environment, I've found the use of several tools work just as well for a desktop, provides a flexible user interface, and still gets the work done.

One thing I would like to note: originally, I cursed the existence of the "useless" Windows key, but since working on this desktop project, I've  come to love it for its one major benefit... the very uselessness I originally hated it for.  Since it's useless, I can make a use for it, and not have to use any of the other keys that more frequently already have uses in other software packages.



Before we begin, I will make a point of noting here: This is an advanced setup process.  Compiz will probably be the easiest part to set up due to its graphical setup and reasonable defaults once the plugins are enabled.  The rest of the tools, while having GUI tools for setup, are much better handled in their text configuration files, where the flexibility of this desktop will shine.

With that being said, however, keep in mind that once the tools have been configured, they don't need to be modified again unless you plan to redecorate. Constant tweakers need not apply, this is for those folk who just want a simple desktop to set up and use without worries that it's going to change on them.



The Desktop

The desktop itself needs to have all the elements necessary to create windows, borders, and just enough interaction to do things with those windows and borders.  Older hands prefer classic window managers like twm, fvwm, or *box, but we can actually have a lot of eye candy from a much more flexible (and potentially-pleasing) window manager, Compiz.

Unlike the classic window managers, Compiz lacks most of the desktop elements one would expect with a window manager, such as desktop buttons, icons, or even a root menu (a sort of "start menu" that appears when clicking on the wallpaper).  Any additional features will need to be added by other specialized programs later.  But don't think this makes it too simplistic.

Compiz has a configuration program called "ccsm", which means "Compiz Configuration Settings Manager."  This application has a GUI interface to a whole host of settings, which include both special effects, such as the desktop cube and wobbly windows, as well as the more important stuff, such as which keys and mouse buttons can affect windows in which ways.

To save you some trouble, here are the basic Compiz plugins to activate to have a completely usable standalone desktop with Compiz:
  • In the "Effects" section:
    • "Window Decoration" actually draws the window borders.  Yes, you really do need a plugin for that feature.
  • In "Window Management":
    • "Application Switcher" allows the standard ALT-Tab window-switching behavior.
    • "Move Window," which allows windows to be moved around on the desktop.
    • "Place Windows," which determines where brand new windows appear on the desktop.  I prefer "Smart Placement," which places new windows in areas with little window covering.
    • "Resize Window," which allows windows to be enlarged or shrunk.

Now, I would be lying if I said I didn't want some of the more awesome effects of such a nice window manager, and since I'm saving massive amounts of resources by not using a full desktop, I can have several extra toys running:
  • In "Desktop:"
    • "Desktop Cube," which is like virtual desktops on steroids.  Despite the name, it does not necessarily need to be a cube; the number of faces are actually flexible, although they all need to be placed in a horizontal arrangement... no complex "desktop multihedrons" unfortunately. 
    • Rotate Cube, which allows you to switch "faces" on the cube using the mouse and/or the keyboard.
  • In "Effects:"
    • "Animations;" opening, closing, minimizing, maximizing, restoring, and shading windows all have special effects assigned to them.  If you have a task bar, they usually interact with that.  If there is no taskbar, windows usually "disappear" into the mouse, regardless of its actual location on the desktop.  It looks pretty slick to watch windows just get "sucked" into the mouse pointer.
    • "Animations Add-ons" add more animations for the windows to perform.
    • "Wobbly Windows" can give the windows a stretchy, rubbery feel.  Also, if you hold down Shift while moving a window, it will snap to the nearest window or desktop border.
  • In "Extras:"
    • "Screenshot" is a useful option; instead of taking a full-screen snapshot, you can hold down the Windows key, drag the mouse using the left mouse button, and the screen will show an outline.  Let go of the mouse button, and everything in that line will become a screenshot in the chosen directory, and can even be shown in your preferred image program.
  • In "Window Management:"
    • "Group and Tab Switcher" essentially allow you to "glue" windows together.  Grouping windows will mean that if you move one window in a group, they will all move as one.  Tabbed windows are even slicker; if you set up a group of windows into a tab session, then holding the mouse over the border will show all the tabs in that group; clicking on any of the tabs (or using Windows-Left or Windows-Right) will cause the window to visibly "flip over," revealing the desired window on the back of the previous window.
    • "Maximumize" works similar to "maximize," but instead of the window filling up the whole screen, it simply grows to fill the available unused space it's in.  Unlike Maximize, however, it does not return to its original size; "Minimumize" will simply shrink the window down to its absolute minimum size possible.
    • Shift Switcher allows Windows-Tab to change windows, but unlike the Application switcher, which treats the windows like a slide show, this one shows the windows as if you were flipping through records.

Desktop Components

Now that the window manager is active, let's next focus on the visual elements of the desktop.  The basic tools are the toolbar and the task tray; items that are needed for one to be able to switch between windows, and to hide items that don't need to be displayed to function.  Additional items can be found in simple notification widgets, such as a system monitor.

Task Bar

Tint2 is probably the most lightweight and simplistic taskbar I could find, especially as it includes a task tray, doesn't include a start menu, and even has a clock included.  Additionally, this toolbar has alpha blending, meaning it can be translucent without being transparent.  Finally, it does not interact with windows on the desktop, which means it isn't going to reduce the desktop size one iota (toolbars should only be seen when needed).  If you activate the "Widget Layer" feature of Compiz, you can then set a hotkey to show it only when you actually need it, leaving the desktop entirely empty for other uses when you don't.

System Monitor

Conky  is a system monitor widget with a lot of optional extras, from temperature monitor, to music player information, to RSS Feed reader.  In my case, I just use it to function as a desktop clock, performance monitor, and disk space notifier.  It sits in the background, translucent, and doesn't interfere with the rest of the windows, which works for me.  Some tips: enable argb_visual features to allow Conky to interact with Compiz's transparency, enable double-buffer to prevent the annoying flickering seen in the default setup, and browse other peoples' configurations via Google for ideas on how you can use it.

Launching Applications

Of course, a good-looking desktop that is unusable is a waste of time and effort, right?  Of course.  Two tools will be useful for launching applications.

Keyboard Launcers

xbindkeys is a simple tool with a simple purpose:  Wait for special keyboard combinations, and then run the specified program.  This allows me to set up Win-F1 through Win-F12 (and combinations including Win, Alt, Ctrl, and Shift) to launch programs.

Now, there is not a lot of documentation regarding which codes are assigned to which keys.  However, if you launch xbindkeys with the "-mk" switch, the program will sit and give you the exact keypress names it expects as you press the keys themselves.  This can be a boon to making the configuration files as needed.

The only downside to this program is that it does not also detect mouse activity.

Mouse Menu

Some people prefer the old start menu.  Nothing wrong with that, although it seems like more trouble than its worth... but that's just me.  For those who really need a good standalone root menu (remember, Compiz does not have one), there is myGtkMenu.  This program is simple: it reads a text file you make, and shows a menu.  The configuration file is just a list of three-line entries, separated by spaces, consisting of item name, program to launch, and path (if any) to the program's desired icon (or else just NULL).  Submenus can be created, all you need is a name, and the icon name, following which all items in that menu have an additional tab before they're entered (if you're familiar with Python, this should be pretty simple to understand).

Now, keep in mind that XBindKeys won't detect mouse presses, but Compiz will.  If you plan to set this menu up, you can use the "Commands" plugin in Compiz settings to add the command to open the menu, and assign a key/mouse binding for it.



Now, it wouldn't be much of an explanation without some screenshots, would it?  So, here are two.



The first one is a screen in normal mode; note that aside from the browser, there is no task bar.



Now, we see the window is darkened, and the task bar is present.  The screen is in "Widget Layer" mode, which is what the task bar is assigned to.



At this point, I've described my own desktop (plus the menu; I prefer using xterms to launch programs). It's simple, but immensely flexible, and I doubt I'll be seeing it mucked about by upstream authors anytime soon, so I can forget about fighting the interface, and just use my computer as I want to.

I hope you enjoy this, and find inspiration with it!

Saturday, June 12, 2010

Giving Microsoft Windows the Linux Desktop

I am a Linux user.  I am such mainly because I'm most comfortable with the way Linux does things, and there's absolutely no limit to the customizations I make.  As a result, I've become comfortable with the interface I've grown accustomed to.

In my case, window focus follows the mouse, clicking on a window does not cause it to pop to the top, covering other windows, and moving or resizing said window is simply a matter of holding Alt and dragging (left or right, respectively) in it.  Additionally, I use a trackball, and in Linux, I configured it that holding one of the trackball buttons turned the trackball into a scrollball, and releasing the button would immediately return the trackball to the normal mousing mode.  And finally, I use an extremely spartan desktop; I run Compiz standalone (meaning that I don't have a desktop environment), with xbindkeys and MyGtkMenu working as hotkey controller and desktop menu, respectively, GKrellm as the system clock and status tracker, and stalonetray as a tray tool.

This kind of interface does not exist in Microsoft Windows, as the click-to-focus-and-raise model is pretty much standard.  And while there's a vague imitation of focus-follows-mouse in the accessibility options, clicking in a window still activates and raises said window.

Given that my current job, which is a work-from-home kind of dealie, requires me to use Windows, I felt the need to modify it to more closely behave like my Linux desktop.  Given the lack of customization options available for Windows, this seemed like a pretty daunting task.
I eventually discovered tools, however, to make the Windows desktop function almost perfectly like my Linux desktop.

First, I want to get rid of all the extra baggage that comes with a Windows desktop, so I want to get rid of the taskbar at the bottom.  All of it.  Nothing visible but desktop, perhaps with  the exception of the system tray.  So, I download and install the Emerge Desktop, which is a minimalist and modular shell replacement for Windows.  It has a system tray program and a task tray program which do the work I want; I can now have nothing but process icons lining the bottom of the desktop, at 16x16 resolution, with tasks on the left, and the tray on the right.  Nothing else.  This may be too minimalist for some, so there are other shell replacements for Windows as well; a popular one is bblean, a replication of the Fluxbox environment for Windows.

Second, I use gkrellm on Linux, and by gum, there's a Windows port of it.  This is a good thing, and something I take full advantage of.  Now, I have a system clock.  I've yet to muck about with the other krells, but time will bring opportunities for experimentation.

Next, sloppy-focus.  Windows is notorious for its click-to-raise tendencies; and I always preferred the stacking order to remain until I consciously decided to raise a window, regardless of whether I'm typing in a window, or clicking on window elements, such as buttons, menus, or a scroll bar.  Windows does have a focus-follows-mouse feature, but clicking in a window still follows the original click-to-raise model.  Enter True X-Mouse.  This tool causes Windows to perform the focus-follows-mouse action correctly.  It also introduces Linux-style copy/paste to Windows (highlight to copy, middle-click to paste), but this interrupts the middle-click features in Firefox, and even in Linux, I tend to use the Ctrl-C/Ctrl-V model, so in HKEY_CURRENT_USER\Software\<appro@fy.chalmers.se>\TXMouse, I create the strings "ExemptedClasses" and "ExemptedModules", setting them both to "*".  At this point, I have focus-follows-mouse, and no middle-click paste, which works for me.  (If you don't see the above key, you can make it).

Next, I want the ability to move or resize windows using the left and right buttons in combination with the ALT key; this means I can move or resize a window, even if the appropriate titlebar or border is not onscreen.  So, we make use of another utility that allows this: Win-X-Move.

At this point, mouse-based users are done; the desktop heavily resembles and behaves like a Linux desktop.  However, I still am using a Logitech Marble trackball with 4 buttons; two big, two small.  My Linux configuration makes the left small button a "scrollball emulator"; holding the button causes the trackball to simulate a scroll wheel that can scroll both horizontally and vertically.  The small right button is meant to be a middle button.  However, the SetPoint software does not quite meet the needs; universal scroll is a press-to-engage, press-to-disengage process, and the right-hand small button cannot be programmed to be a middle button.  So, I replace SetPoint with X-Mouse Button Control, which is a much more flexible mouse button remapping tool, and Marble Mouse Scroll Wheel, which sets the scroll functionality to perfectly match the linux variety.

Now, onto the virtual desktops.  True, Emerald Desktop has its own virtual desktop manager, but it's relatively anemic, and doesn't work with Vista/7 without administrator rights.  So, instead, I installed VirtuaWin,  a tray app that will handle multiple desktops without much difficulty, and has an incredible flexibility with the use of hotkeys. 

Finally, we come to the shortcuts.  I tend to use F1-F2 in combination with Win, Win-Ctrl, Win-Shift, and Win-Alt to launch programs.  There's enough of a space (48 combinations) there to handle the bulk of the applications I use on a regular basis, and then some.  I also use Win, Win-Shift, Ctrl, and Ctrl-Shift with the number pad to quickly access the various websites I use on a regular basis (36 combinations).

For the above combinations, I found that AutoHotKey not only fits the bill, but also provides the ability to use "hotstrings," which replaces something you type in with something else, either for the purpose of a correction of a misspelled word, or also for the expansion of acronyms/keywords.  This tool also allows me to make executables that will launch whole groups of applications simultaneously.

Well, that's my Windows desktop.  I still don't have Alt-Click to raise/lower, snap to edge, desktop cube, or wobbly windows, but this is a lot closer than I started with.  If anyone knows a way to accomplish these from Windows, I'd certainly appreciate the suggestion.

Tuesday, December 15, 2009

Sounding Off

I finally got around to learning how to use the JACK Audio Connection Kit, which, as far as I'm concerned, is easily a contender against the big names like Pro Audio, Cubase, or any sound program by Adobe.  Sadly, Audacity doesn't cooperate with the virtual patch panel, but the Ardour DAW seems to fill in the gaps quite nicely.  Combine this with Jack Rack (a tool to integrate various sound filters into the patch panel) and Jamin (a audio mastering interface), and there's a nigh-professional sound editing system at my fingertips.  And if I need to do some post-processing, well, Audacity will fit the bill quite nicely.

I could use this to produce some interesting things; I have had some recent interest in performing audio theatre podcasts, perhaps do some voice-over work in the longer-term future... who knows?

Jack Audio Connection Kit
Audacity Sound Editor
Ardour Digital Audio Workstation
Jack Rack Audio Effects Toolkit
Jamin Audio Mastering Interface