|
|
Computersmiscellaneous thoughts from the bytestream Thank You Derek CrudgintonTue, 22 January 2008 11:52 in Computers This is exactly what I needed to know:
Essential Software List 2007Sun, 20 January 2008 14:08 in Computers Time for a round-up of the Free and/or Open Source tools I've been using on my work laptop. 1. Eclipse 3.3 (IDE, Java and generic) I've been dipping into various versions of Eclipse for Java development for years. Its plugin architecture is brilliant (see below). Out of the box it handles Java development as sweetly as any "Professional" edition out there. It also has a built-in editor for Ant build files (an XML dialect) which I'm finding particularly handy right now. One feature I really appreciate is the ability to create a "generic" project that basically just lists all the files in a directory, regardless of what type of file they are. Very handy for my current work which involves a series of versioned directories containing various flavors of text files. Which brings me to: "Afae" stands for "Another Freebooter's All-purpose Editor". It doesn't appear to be under active development and has stalled at version 0.9, but don't let that stop you from using it. It adds a TextMate-flavored text editor to Eclipse that allows me to edit .sh, .bat, .sql, and other types of files in syntax-colored goodness. It has a bunch of other features that I'm not using (such as a "post to blog" button on the toolbar?) but I've found the text editing to be solid. 3. DiffMerge I've mentioned this before. Since then it is up to version 3.1 but it is still free, and although other file comparison tools probably have more features, I've grown to like this one. 4. AstroGrep I have long ago given up on making Windows Search find anything on my file system. How I long for the File Manager applet in FoxPro for DOS 2.0. That thing was fast. AstroGrep is a GREP utility for Windows, with a simple UI on top. It's fast, and I can search the contents of text file with regular expressions. On my latest project I have found it invaluable. My Office BookshelfMon, 07 January 2008 13:12 in Computers
Those of you curious about what I've been up to lately regarding my working day may be interested in perusing my office bookshelf. This is a lot of fun. Advancing BackwardsSun, 04 November 2007 22:27 in Computers I've posted a new article on the Spacefold site: VFP 9.0 Reporting System Fundamentals. (I couldn't let L have all the fun.) In other news, I've un-installed Office 2007 (Word, Excel, and PowerPoint) and reinstalled the 2003 versions. Ah, it feels so good to go back. So much snappier. Enterprise-readyFri, 07 September 2007 08:40 in Computers So, what makes an "enterprise" application architecture? As far as I can tell, it's the 'eee's after the dollar sign. DiffMergeWed, 15 August 2007 12:48 in Computers DiffMerge is a tool recently made freely available from SourceGear. If you are not a programmer then you probably have no need of this, but if you do find yourself needing to compare two different versions of source files, then I recommend this tool I used WinMerge for a while, but the other day I needed to do the file comparison thing and I found that on my laptop, not only had I not installed WinMerge, I didn't have an installer conveniently located in my c:\downloads folder either. Since I regularly read Eric Sink's Blog, I knew about DiffMerge, and so I gave it a try. It's excellent. It blows WinMerge out of the water. Recommended. Expression Web vs Visual Studio 2005Sat, 07 July 2007 10:24 in Computers I'm happy to know that Visual Studio .NET 2008 ("Orcas") is going have the HTML designer from Expression Web built-in. It's much better than the editor in VS 2005. Unfortunately my copy of Expression Web appears to be missing the third checkbox in the CSS options dialog, shown below:
Can anyone tell me where to find it? Putting it all together (V)Thu, 05 July 2007 18:27 in Computers, Studio This series of posts began here. Previously I covered the design of some standard controls for virtual hardware. Now let's put them together into a mockup of a software synthesiser. I chose to revise Arturia's CS-80V because it's the greatest synth ever. Here's the controls for one voice module: Things to note:
That's all I planned to say for now on this topic. If I think of anything else I'll continue the series. Thanks for reading. Postscript: I implemented the mock-ups using Visual FoxPro 9.0. The controls are more-or-less fully functional (even if the control panel itself doesn't do anything!) If you would like to experiment with the controls, you can download the VCX library here. The Toggle Button (IV)Wed, 04 July 2007 16:41 in Computers, Studio This series of posts began here. Last time I looked at the design of a value slider control. Another useful control that should be made a standard UI component in virtual hardware is the toggle button. This should be substituted for situations where checkboxes and option buttons (radio buttons) are space-consuming or aesthetically displeasing:
Toggle buttons can be clicked to switch between "on" and "off" states. If you group two or more of them together, you can use them to switch between many options. This design allows for color to be used to highlight contols that are related in function, and it shoulb be obvious what state the control is in and whether or not you can change the value. Next, we'll put it all together in a mock-up of the CS-80 voice control panel. The Value Slider (III)Mon, 28 May 2007 09:36 in Studio, Computers This discussion began here, and continued here. A modest proposal: Virtual audio hardware manufacturers should define and agree to use some additional standard controls for their user interfaces instead of inventing their own widgets. It's Anarchy in the UI out there... the causes for it are reasonable: 1) the standard dialog controls specified by OS vendors such as Apple and Microsoft are boring, incapable, or not compact enough; 2) they are trying to distinguish their products from others; 3) their intent is to make their software mimic the UI of the original hardware that they are modelling. This discussion is an attempt to address reason #1. I think reason #2 is not valid. Guys, make your products excellent and usable, and believe me, you'll be distinguished from those that don't. One way of making your products usable is to use standard controls in your editing interfaces! Arturia's CS-80V is a case in point for reason #3. The software mimics the original front panel of the Yamaha CS-80 synthesiser religiously, and looks great. Except when you try to edit a patch, and then it's horrible. There's a fourth reason: multi-platform support. It is very hard to use standard UI widgets when you are also trying to write software for Macintosh, Windows, and perhaps Linux as well. Much easier to roll-your-own controls. That's no excuse to ignore standard behavior, though. I think there is room for a middle ground, where virtual hardware interfaces can be designed to look good, resemble the source hardware where appropriate, but use standard controls to improve usability. All we need is a couple more standard controls: a Value Slider, and a Toggle Button. In this post I'm going to look at how a Value Slider control could express the principles of UI I established last time. Later on I'll look at the toggle button. The Value Slider Sliders already exist in most standard GUI toolkits, but they are not ubiquitous, and I don't want to be constrained by their default specified appearance. So here's ours:
It consists of four main visual components: a perimeter rectangle; a colored bar proportional to the value of the control; a handle widget to grab with the mouse pointer to set the value; and a label that displays the value in text form.
When the slider is adjusted with the mouse, I recommend that a tooltip or similar metaphor is used to display a more precise value (see above). So the control expresses its value in three increasing levels of detail: 1) the size of the colored bar; 2) the value displayed in the control, and 3) the more precise value displayed in the tooltip. Color and Clarity
We can use color to relate and distinguish controls. We are also not limited to a horizontal orientation:
Here I am using the red and green color to distinguish between the level of high-pass filtering applied, and the amount of resonance in the filter circuit. The slider on the right is an experiment to see how it handles the concept of +/- deviations from a center value. This is an important type of value editing in virtual audio hardware and our control should be able to express it clearly. State
The difference between disabled and read-only is subtle. Both states are not editable, and the control should express this fact clearly so that a user is alerted to it and doesn't attempt to change the value. However a read-only control is allowed to receive the keyboard focus (more on this below), whereas a disabled control will not. Scalability
Behavior On the other hand, if you click on a control, you should be able to use the mouse wheel to change the value. The control has to have an understanding of focus. Once a control has focus, you should be able to use the keyboard to change the value also. I suggest the + and - keys. Precision
Next up, I'm going to talk about the second proposed standard control, the toggle button. Should be simpler. I Hate Knobs (II)Sun, 27 May 2007 21:33 in Studio, Computers This post continues a previous discussion. Click here for the first in the series. Having complained about the state of standards in user interface widgets in virtual hardware (soft-synths and FX modules) in the world of digital audio workstations, I will offer a list of design attributes that I consider important when designing a UI:
These go somewhat beyond the standards as laid out in documents from Apple and Microsoft (for example), but I think there is some room for inovation here, especially in this area, and especially on the Windows platform. Next, I'll propose some additional "standard" UI controls and how they might be used in a theoretical peice of virtual hardware. This discussion continues here. I Hate KnobsSat, 19 May 2007 19:42 in Studio, Computers Here begins a series of posts discussing the state of the art of User Interface design in music software. I'm annoyed at the current state of visual representation of virtual instruments such as VST and DXi synths and effects. For example, here is what the Vintage Channel 64 (VC-64) effect looks like when launched from inside Cakewalk's SONAR 6:
This user interface (UI) is simply hideous. Form and function have been sacrificed to looks, in the sense that it's appearance is mimicking a physical piece of equipment. Trying to adjust the parameters with the mouse is difficult and error-prone, and I am not brave enough to try using the keyboard - I don't even know how I would do that. (There is a caveat here that this particular module is bundled with SONAR 6 Producer edition and there is a theory that the interface has been made deliberately hard to use so that people are pushed in the direction of buying the commercial version of the software. I believe the original UI of the commercial plug-in on which this version is based can be seen here. It's a little better.) Here's another example: a section of the UI from WaveArt's TrackPlug module.
This is somewhat better, in that it doesn't try to be "photo-realistic" in the appearance of its controls. Certainly the readability is much better - you can easily see what value each control is set to. However, I still find that this style of knob is tricky to use with the mouse. How is each value adjusted? Do you click, hold and drag? In which direction? I admit to liking the graphical representation on the right side of the screen shot. I haven't used the plug-in, but I assume you can grab the bright orange nodes with the mouse and move them around. But I'm still guessing. Here's an example of "soft hardware" that I really enjoy the look of:
TCElectronic's DVR2 module is specific to ProTools, I believe, so again I haven't had the pleasure of trying to interact with it. But while I love the subtle use of color, I am resigned to having to become familiar with another style of "look and feel" of the UI control components. Are those round things buttons or toggles? How do I adjust the value of the Hi-Cut frequency? Which widgets are read-only and which ones are editable? One of the reasons I find this confusing state annoying is that the problem has been addressed by software development frameworks for years. We take it as read that any development toolkit will provide a set of standard control widgets that meet certain requirements of a UI, a certain level of completeness of design and function that remove the burden of ease-of-use from the developer. I will conceed that perhaps music software such as FX processing modules and digital audio workstations may bring additional UI requirements that standard development environments do not find necessary to support, but why do these custom UI widgets seem to use this as an excuse for total UI anarchy? In future posts I am going to discuss standard UI requirements and make a modest proposal: a set of standard UI widgets that support both conventional UI needs, and the requirements of attractive "soft hardware" implementations. This series is continued here. An alternative to checkboxes for logical fields in GridsThu, 17 May 2007 10:17 in Computers I've never really been happy with how checkbox controls look when contained in Grid columns, displaying logical values. Lately I've been using the method described below. Given a table with a logical column such as: create cursor FILMLIST values ( VIEWED L, TITLE C(50) ) I use an expression for the grid column instead of referencing the table column name directly: Alignment=2-(Middle Center) ControlSource = iif(FILMLIST.VIEWED,"ü"," ") FontName=Wingdings FontSize=11 ReadOnly=TRUE The default textbox control in the column will display the logical value as a tick mark (the WingDings character for ü):
This is all you need to do for a read-only column. For my users, I make the column editable by adding some code to the textbox's .DblClick() event: replace FILMLIST.VIEWED with !nvl(FILMLIST.VIEWED,.F.) this.Refresh() This toggles the logical flag when the user double-clicks the mouse in the column - and handles possible NULL values as well. As an exercise for the student, try adding support for toggling the flag using the keyboard SPACE bar. Windows Reveals Too MuchSat, 28 April 2007 09:00 in Computers My current laptop is running Windows XP Media Center Edition. It came pre-installed, it wasn't really my idea of a good time. (At the time, my understanding was that it would come with a free upgrade voucher to Windows Vista Business. This turned out to be Vista Home Premium instead. Either way, Vista will never be installed on this machine.) So MCE doesn't really allow you to "lock" your desktop. That feature isn't in the OS. Instead, when you attempt to lock the desktop with the WinKey-L combination, you get the "switch user" screen. OK, maybe not so bad, you still have to enter a password to get back in to the desktop. What I find very annoying is that you can see how many unread emails the user has. Even if Outlook isn't currently running! It's things like this that make me want to switch to Thunderbird or some other non-MSFT email client.
Considering I want to leave my laptop open, but locked, in my cubical while I am away from my desk, I really don't like having information spewed out like this. It gets worse: if you hover the mouse over the current user icon, you can see their email address. Who thought that one was a good feature to implement? I know, I know, the glib answer is that I shouldn't be running a non-business grade OS on a business laptop. Windows XP Professional would give me the security I want. It's my fault for deciding I could live with Windows XP Media Center edition on my work machine. These are the trade-offs. Oh JeezeWed, 13 December 2006 18:58 in Computers Why do I do this? After I promised I would never install another peice of Microsoft Software on my laptop if I could help it. I'm attempting to install the Expression Web upgrade (replaces FrontPage 2003):
Can someone please tell me why it doesn't like OneNote? I like OneNote. I use it a lot. Please God tell me this is an error in the message string table and nothing to do with some kind of horrible incompatibility with Office 2003. [UPDATE: It installed fine. It didn't kill OneNote. It must be a visual error only. Probably meant to say "Microsoft Office FrontPage" or similar.] All entries in Computers:
|