Audacity - An Audio Editor

I discovered the program Audacity on Sourceforge. I didn’t realize there was such a powerful audio editor available for free. I also found it quite intuitive within a few hours of using it. It handles every audio format I use (“ogg vorbis” causes a lot of trouble wherever I go), and it feels a bit like using Photoshop (maybe it’s the infinite-undo).

One of the exciting things I learned about it today was that it knows “nyquist”. Nyquist is a music synthesis language based on Lisp. Oh boy: I really needed to start learning another computer language - although I did actually spend about seven hours learning Lisp nineteen years ago - I should be okay, huh?

With Nyquist you can define any arbitrary network of wave function generating components to mimic an analog synthesizer. But, it also apparently includes MIDI-like instrument description. And naturally, it includes all the capabilities of any serious computer language - think of all the math you would need to do with waveforms and such. That is all the power of a proprietary setup like Garage Band and Virtual Instruments.

I don’t really like using graphic user interfaces sometimes. Of course, I want to see graphics when the information I’m working with is graphical. But a lot of what I do isn’t graphical at all. I wind up using a lot of programs in a GUI environment that have not provided ways to manipulate the data on screen at all. You pull down a menu, make a selection, and then type numbers into a box. The secret is, I won’t know what numbers go in the box because the program doesn’t list numbers as a result - it draws graphics. I suppose it is the hardest part about programming - and quite tedious, I’m sure: Drawing a figure is easy, but enabling a control in that figure takes a bit more work. This entails closing the loop by allowing the figure to supply the numbers.

Posted in programming, music-synthesis, computer-interface | no comments | no trackbacksPosted by Evan Bittner Mon, 17 Nov 2008 19:57:00 GMT

Google Translation Issues

I was reading the chapter on Haussmann’s transformation of Paris in the 19th century in “Cities In Civilization” when I came across some untranslated French. It is common for an author to provide translations for such quotes.

An observer in 1882 described the traffic situation in Paris as “le dernier mot de l’obstructionnisme”.

And that was one of the shortest examples. So it was over to Google Translate for some answers.

That was when I remembered that I wanted to road test the machine with some Japanese. Well, it didn’t take long to find a stinker.

A Sample Translation

Japanese is not like English. Maybe that’s why I found it so durned interesting.

As you can see, I’ve taken the liberty of color coding the sentence. This will allow you to see how different the grammar is, and I hope it helps understand what went wrong with it over at Google.

Here we have a transitive verb “To Eat”, and ostensibliy we have a subject and an object… Then it gets weird. In Japanese, there are postpositional particles (which often function like English prepositions) that mark the role of a phrase within a sentence. With no spaces between words, you have to rely on other strategies. “Wa” marks the end of a “Topic” which replaces another marker - obscuring the role of that phrase. “Sae” adds the idea of “even”, thereby replacing another marker - which is also now missing, obscuring the role of that phrase, too. What we do know is that “tabenai” is the negative version of a transitive verb requiring an object to make sense. We’ve definitely got a subject and and object here in this sentence (sometimes we don’t have them - they could be implied because they showed up in previous sentences…), but which one is which? Cat or Fish?

Google (#1) thought Fish was the subject, and Cat was the object. How naive. They were probably relying on phrase order to figure it out. Phrase order is not that important in Japanese. In the English version, you know immediately from context that this is wrong - but that doesn’t prove anything: Nonsense can still be grammatically correct. It’s a theory. Isn’t that exciting? Every little sentence needs a theory. I love that. “The fish” is wrong, anyway: it’s quite clearly ”this fish”, and “Even this fish do not eat my cats” forces the verb into “would not eat”. So that’s two problems already. “Uchi” and “neko” are neither singular nor plural, so it could be “my cat”, “my cats”, “our cat”, or “our cats”. I see why they picked “cats”: Doesn’t “eat” suggest an ongoing or habitual activity where the object is likely to be plural? I’ve become more sensitive to the way some English nouns like “fish” can be a substance - an indistinct quantity. One or many fishes can still be described as “fish”.

The textbook I took the example from (William McClure’s “Using Japanese: A Guide to Contemporary Usage”) supplied (#2). This represents the theory that Cat is the subject and Fish is the object. I agree. They editorialize thusly: “Sae places extreme emphasis on the noun in question, and is often followed by a negative”. There is another thing the Topic-wa construction can do: Provide a contrast. I only mention it because it’s a perfect way to pull an object to the front of the sentence. Here in this sentence, the contrast is this fish versus all other fish (the “not this fish”).

I moved the “not” for #3. It’s subtle, I know, but I like it. I just had to have the last word.

As I think about it, the textbook is less concerned with giving a natural-sounding English version than you or I would be. In fact, most of the Japanese textbooks I have seen do the same thing: English translations that make the subtleties of the Japanese examples more explicit, at the cost of sounding ridiculous.

I like to pull “not” to the beginning of the English version, even though there is nothing wrong with #2 here. The distinction may not be completely neutral, but having both versions available is nice when you have to fuss with the rhythm, timing, cadence, or alliteration of the larger utterance this sentence would appear in. On the face of it, though, as a stand-alone sentence, I get inspired by the distribution of the “Noun-sae, Verb-nai” construction in the Japanese version to produce another distributed construction in English. I just feel a little uncomfortable leaving the “not” with the verb when that “even” is there: Better perhaps to have them together. And I wonder if #2 is not simply trying to leave as much of the original as unmolested as possible.

The only thing left now is the “yo”. I was looking for some reason “yo” would inform the emphasis in the English version, and I didn’t find any. In Japanese, in addition to “phrase particles” (“wa” and “sae” in this example), there are sentence particles. The sentence particles typically indicate the speaker’s understanding of who knows what. That can be powerful in a language of subtlety: If I don’t want you to think I’m claiming to know more than you do, I might turn a statement into a question, or an imperative into an invitation. That’s part of the famous “can’t say no” reputation of Japanese, having the option to shift to the less confrontational version in every circumstance. “Yo” is the strongest member of the group: It means that I don’t think you know about the content of the preceding statement. It’s not so imposing when it refers to personal facts - in this case literally the inner workings of my house, and the dietary habits of its feline member - which won’t cause much embarrassment when I imply that you don’t know. So with the English translation, it might be nice if we could capture that revelatory tone. But the emphasis provided by “sae/even” seems to do the trick.

Posted in computer-interface, books, writing-craft | no comments | no trackbacksPosted by Evan Bittner Thu, 06 Nov 2008 00:52:00 GMT

This Is Why I Don't Twitter

I can’t pinpoint the reason for it, but communication is often painfully time consuming. I have spent so much time listening to voicemail messages, talking on the phone and reading or writing emails over the past few days. It is hard for me to imagine being any more in-touch than I am now: When would I have time to DO anything?

I set up an account on Twitter a few months back, so I could leave ‘tweets’ online about what I was doing at any given moment. It’d be nice if I were say… locked up in an Egyptian prison. But without a web-enabled phone, I’d be stuck typing on my laptop at all times. That’d be all the tweets, with the self-referentiality of:

"Still at home. Still writing tweets." 
"Wi-Fi went down, walked to kitchen, cycled power to the router, drank a swig of Pepsi."

How are these people still productive? They are not like me.

Posted in web-craft, computer-interface | no comments | no trackbacksPosted by Evan Bittner Thu, 02 Oct 2008 20:30:00 GMT

Never Did Work It Out

That technical support problem from the other day never did fully make sense… This is why I don’t trust user-friendly graphical interfaces. It’s a lot of work to get the appearance on screen of work on a computer to reflect the reality of what is going on deep inside the box.

I’m back to my old favorite distinction: I like a Graphical User Interface when I don’t know what I want to do, and exploring the possibilities could give me inspiration. I consider it a “Toy” that is best suited to “Play”. When I need to do well rehearsed daily chores, I want a command line. All those windows and buttons and dialog boxes just get in my way.

But, realize that all that presentation is more work for the programmers. And, frankly, more opportunity to make a mistake. Even in a command line environment, I make my changes, then I double check that the changes took hold. Yes, I might still be fooled, but in a GUI, there are more layers of simulation and more chances for reality and appearance to diverge.

So, let me take you on a tour of my lethally boring example: Somewhere in the midst of writing PHP scripts for my coworker to update the author event database through HTML forms, my FTP client started asking me to verify files I hadn’t commanded it to transfer. Using the program is almost as easy as drag-and-drop. It is an XUL specification that runs in Firefox as a browser tab. I’ve used it for years now with several different FTP servers. It gets updated automatically with minor revisions. The worst bugs so far have been mild annoyances that I could blithely work around. But I selected the PHP files I wanted to upload, hit the send button, and it started the transfer. Since this is the umpteenth time I have uploaded these files - Whenever I make drastic changes, the server just throws a fit, so I’ve learned to be very incremental - they all prompt an overwrite warning from the program. I really do look at these warnings and verify the file names. This time one or two caught me off guard and I realized it was more than I had selected… So what was the last one I said yes to? It shows up in the running command log in the bottom pane. (You see, the programmer knew that I needed the reassurance of command history) But the second part of my failure was not looking there. It was the next box asking me about a filename I didn’t recognize - mainly because it had some articulated path text that I instantly knew couldn’t have anything to do with me.

Or could it? I remembered later that the full path to my root directory is a big complicated mess. (When I asked about symbolic links in an email to technical support, they didn’t answer me - just gave me a standard form email that suggested I call and talk to somebody. When I asked the operator directly, he said “No, unfortunately we can’t do a symbolic link to the home directory on those Linux hosting accounts.” - Yeah, I believe that.)

Anyway, my first instinct was the very naive belief that someone there would be able to help me. When my first call yielded only the most confused front-line operator who eventually agreed to ‘escalate’ my trouble ticket, I had some time to consider the problem a little deeper… It really was just the one directory - sensitive information in files and scripts that can modify the database - that needed password protection, because whether anybody knew it was there, a simple scan would find it. It’s called “admin” after all - a bit of a no-brainer there. I can write a script to just hammer away at sequential IP addresses all day requesting the admin directory - I wonder what I would find.

First, the infuriating brush-off: The email that advised me of a bad ‘.htaccess’ file. I had to do a double-take: One of the more recent updates to the FTP client disabled the “show hidden files” checkbox buried in the settings. If you were able to read this far, then I’ll assume you’re some Beard-and-sandals Unix Guru… NO, I’M WRONG - THAT PERSON WOULD HAVE LOST INTEREST IN THIS STORY LONG AGO.

So I downloaded the ‘.htaccess’ file to have a look. I didn’t see anything weird. Oh damn! I’ve been burned once again: Looking at the literature, I found the remark about “Error 500 means you’ve got a bad line in your .htaccess file.” They didn’t even look at the file - they just found it on a FAQ or something. Later when I was talking to the guy, I asked which line was causing the problem - and, he didn’t know!

So We’re Back Down To Superstition…

“Have you backed up the contents of the directory?”

Oh great.

No, it’s not that bad yet - he just suggested a slash-and-burn approach: remove everything, then build it back up from the pieces.

And here is today’s GUI complaint: The web interface for the hosting package has a page of “Security Settings”. It allows you to establish 1) Directories eligible for password protection, and 2) Login accounts that may be linked to one or more of those eligible directories. Some central dispatcher actually makes the changes, but you see the results on the page right away. That’s poor feedback. I’ve successfully changed the indicator - but has the real change been made?

When I see new file permissions on the command line, I have better confidence that my chmod command worked. It’s still quite possible that I’ve been fooled - but for some reason I still feel more comfortable - there were fewer programmers in between me and the real file permissions.

Posted in web-craft, computer-interface | no comments | no trackbacksPosted by Evan Bittner Thu, 18 Sep 2008 01:24:00 GMT

Why Would I Want To Script Photoshop?

There are a lot of ideas that I get very interested in, only to forget about thirty minutes later. But there are also plenty of ideas that seem useful before I have worked out how practical or impractical they will be.

Writing scripts for Photoshop is one of those things…

With so many things I wish I could do without an interface, evaluating and modifying digital images is not one of those things. That’s a sure candidate for graphical user interface. I can’t blindly apply most exposure changes or special effects without looking at the image. So on second thought, scripting doesn’t seem all that useful. And I’ve got to get good at Javascript to do it. (Of course, maybe I should get good with Javascript…)

The problem that I had still needs an effective solution: rotating the photos I take in “portrait” format by tilting the camera on its side. It wasn’t too long before I taught myself to always tilt the same direction…. But, I still have to inspect the photos to see which ones need to be rotated back. (Too bad the camera can’t sense gravity or something… but then what would it do when I took a picture straight down.) And, so I think I will take one step into the land of scripting, to do this thing that Actions should have been able to do.

So, I’m trying to come up with more reasons to write scripts, and the only thing I can think of is “data visualization”: Having a Javascript API to Photoshop is interesting if I’m already writing programs that handle a lot of data, and I wish I could produce a graphic. At first glance, it doesn’t seem very efficient, because automating the workflow in Photoshop would mean writing an exacting description of the things I can accomplish much more quickly within the program - and, I’m monitoring the process for quality assurance purposes, too. But, here’s where it gets interesting. Some of the tools take numerical inputs, typed in boxes. And I might write little programs to output the numbers I want in those boxes. But there’s this clumsy oaf the User (man, I hate that guy…) standing between the two. Now, there’s a case for scripting.

Posted in computer-interface, programming | no comments | no trackbacksPosted by Evan Bittner Thu, 11 Sep 2008 18:19:00 GMT

I Always Miss My Bus When I Vote

I participated in a little thing called “democracy” today. Party Primaries - no presidential stuff. I looked at the booklet I received in the mail and I got depressed: It’s a few unopposed congressional candidates, and a bunch of “Pick no more than six (6)”. Committee members? I hadn’t heard of any of them. Maybe I should have paid more attention in civics class or something. But, that was Maryland, after all.

I got a coffee and a donut and reviewed the booklet in the cafe. I considered the list again… Why should I even bother? I recognize Eleanor Holmes Norton, and I saw a photograph of Paul Strauss standing next to Barack Obama, but beyond that every name is a complete cypher to me. Committee members from Ward 1? I don’t even know what this “Committee” even does.

Well, it’s the principle of the thing. If I didn’t go vote, what would I say later? It’s not my responsibility? Although, I have to wonder if my choices might inadvertently done some damage. I’ll never know for sure.

On the plus side, there was no line. Fifteen poll workers and three voters. I saw my sister’s name on the list - she keeps showing up, even though she spent ten years in Russia and now lives in New York state. There’s also a Jennifer Bittner who is always coming between Vanessa and I. She either votes later in the day, or she also moved to another country like my sister did. Or, maybe it’s not statistically significant for me to never see her sign off when I always vote before 7:15am.

I made sure to try the touch screen. If I make a mistake, no big deal - just chalk it up to user interface testing. I’m still a bit wary of using it on the BIG DAY, when it’s crowded enough that I can’t even stay to watch them register the card in the counting terminal. How can I claim any expertise in Human-Computer interaction if I won’t even vote on a computer?

As fast as it was to vote, I still missed the bus I wanted. According to my watch I still had a minute or two… But you can’t really predict buses - they tend to cluster, empty buses passing deserted stops catching up to full ones that took their time waiting for extra passengers to find standing room.

Posted in computer-interface, ontology | no comments | no trackbacksPosted by Evan Bittner Tue, 09 Sep 2008 13:38:00 GMT

Trying Out Chrome

This entry is being written from Google’s new Chrome browser. (Amusingly, I only broke down and upgraded the laptop to Firefox 3 yesterday when I got the nag screen - I downloaded and installed it on my work computer the first chance I got.)

It’s only available for Windows right now. I was very interested to see how well it performs. So far, I haven’t done that much with it, but the thought of streamlined Javascript made me happy, as did having tabs run as separate processes - I already love using Sysinternal’s Process Explorer to monitor my system, and when Firefox starts hogging the processor, I never know for sure which page is causing the trouble. Now with separate processes, it’s much easier for me to see what’s really going on. I am a frequent victim of losing sessions in other tabs because one of the tabs crashed.

Chrome’s release was announced with a comic book style explanation. It serves as a decent and readable explanation of the problems they tried to solve by writing a new browser. Obviously, protection and security are much bigger issues in a browser than they were ten years ago.

In general, though, another new browser reminds me of how annoying it is for browsers to presume upon your life. When you use only one browser for all your web surfing, you get used to that browser. It makes sense for all your passwords, bookmarks, and form data to be managed. But it’s annoying for people who want to move around, try new things, verify page rendering in a variety of browsers, or even just switch from one to another. I would suggest that this is the next idea: A system service to manage your personal data that any browser could be registered to access. I don’t want to copy my bookmarks from Firefox into Chrome and then have the two get out of sync - I want them to access the same pool of information. Those bells and whistles can be nice on a particular browser, but the typical user is not going to notice the hassle of two programs running in concert.

Posted in computer-interface | no comments | no trackbacksPosted by Evan Bittner Wed, 03 Sep 2008 16:59:00 GMT

The Following Items Will Remain On Backorder

I found an amusing document on my desk when I arrived this morning. We place a lot of book orders with a certain wholesaler which shall remain nameless. We have about seven active accounts. I place orders for every account on a more-or-less daily basis through an electronic data interchange (EDI) system.

For those of you who haven’t encountered the concept, much of what I order ships right away, but some of it is ‘backordered’. In a world of suppliers in competition to supply your stock, there is no need for backorders. You simply move to the next supplier and place an order there. Backordering is like a codependent relationship: You can probably get what you want faster by going somewhere else.

In the book business, one publisher owns the rights to a book, and wholesalers are like a convenience store. I one order, I can get books from multiple publishers. It saves a lot of time. Especially for a small store.

Years ago, there were several people in my department, dealing with any number of inefficient processes: We would often search reference books for publishers we had never dealt with before, only to discover that they needed us to mail a check in advance. Often they wouldn’t sell a single copy of a book, and we had one customer willing to place a special order.

Now, the department is me. And if a supplier doesn’t have it, we have to turn the customer away. Or tell them to be patient… Because I have no idea if the supplier will really come through, or give up months later.

So let’s talk about the amusing document: It is a report for a single store listing all the books that are backordered. It doesn’t seem to be sorted by any criteria that I know. Not ISBN, not purchase order number, not order date (almost the same as order number)… Oh, look at this: It’s in alphabetical order by title. And to make matters worse, it looks like they ignore the cancellation date I submit on some items. One book on the report is from December ‘06, with a cancellation date of February ‘09. Apparently, that item was postponed. So if I order before the publication date, it stays on backorder until that date? Who can say.

Reports are useless to me. I’m not a consumer of data - I’m a processor of data. There’s a difference. Dead tree reports are almost always sorted the wrong way. Somebody here is going to be interested in a particular title, and someone is going to ask why some items from a particular order haven’t arrived. There is, in fact, a web site I can visit to see this same information, but it doesn’t have that resort-on-the-fly capability that I want either. I’m forced to go down the rabbit hole. It would seem that we do not share the same object schema: I can get a list of orders, and I can get a list of books on a particular order, but there doesn’t seem to be any way to get a summary of orders for an item. On the POS system, I do have that capability. As you might imagine, checking the two side by side can be a little tedious.

The thing is: I can’t bring myself to through this report away. It’s a page full of data, and it ought to be useful. I just know the moment I get rid of it, I will have to check it for something.

Posted in databases, computer-interface, olssons | no comments | no trackbacksPosted by Evan Bittner Sun, 10 Aug 2008 23:30:00 GMT

Complaining About Vista Is My New Hobby

I’m down to the wire on my (unpromised) fixing of my roommate’s computer. He gets back tomorrow.

I didn’t want to miss a chance to fool around with borrowed equipment, so I’d better get to it. I lost a bit of time last night with a Windows Automatic Update, but now after a couple of days, my head is slightly clearer on what needs to be done. Oddly, Google was my Friend.

Let me recap:

  • No videos would play on the Youtube site.
  • New annoying alert box.

Youtube had a helpful message instead of a video player frame: “Hello, you either have JavaScript turned off, or an old version of Marcomedia’s Flash Player”. My first instinct was to grab a fresh install of Flash Player. I didn’t know why his version would be too old to play those videos, but so what. I reached a troubleshooting page at Adobe, current parent of Macromedia, that had a lot of scary things to say about damaged versions and how important it might be to uninstall the existing version first. Today, browsing the comments that Google search yielded, I got better sense of the problem, and then a link to a special stand-alone player at Adobe that people said would resolve the problem. It did. One down, one to go…

There are system freak-outs on Vista, and then there are the garden variety Alerts. The system freak-outs are new to me. XP has the notifications in the lower right corner - and Vista gave me a couple of those. It does seem that Phil’s A/V program has expired. It sent up the occasional flag to me to indicate how agitated it was. System freak-outs usually come from installers. It makes a little sense, but I got Alert fatigue within minutes. I spoke to a Vista user today, and her best advice was “You know, you can turn those off!” Thanks, but as annoying as they were, it’s not my computer, and that wasn’t the complaint. If it were my computer, that would be my complaint. Such is life. Specifically, NONE OF THE ALERTS INCLUDED ANY DETAIL. They were so vague - I just wouldn’t know what I was agreeing to anyway - so what’s the use of asking? In fact, this is the exact same complaint I have about my Trend-Micro PCcillin Antivirus software: It is currently set to notify me in the corner of similar events - program installation, registry changes,… that type of thing. These events are seen as completely separate by the system, so there is no context information I can use to connect an event with one of my intentions. How can I be confident that I was the cause of the freak-out? Some day a malicious program will start up at the same time as something I did, and when that prompt comes up, I’ll click OK. I allow this to happen because, there is an option to investigate how the changes were ordered. This more often than not, it is a hardware driver update. I recognize my modem manufacturer’s name now. I haven’t used the modem for years. But most days, I have to search the web for clues on the 8-letter program code. With eight letters, anything can sound sinister. Look in your WINDOWS/System32 folder some day… “ctfmon”, “nddeapir”? There are hundreds of files beginning with ‘ms’ or ‘hp’, which are probably Microsoft and Hewlett-Packard, respectively. But, how can you be sure - what a great place to hide something bad!

Oh, where was I?

“Do you want to allow software such as ActiveX controls and plug-ins to run?”

My first instinct was the Internet Options dialog. It might even be related to the Youtube problem - weird settings on the scripting controls. But, I don’t imagine Phil would have been mucking around in there, and after careful checking, every setting that seemed the slightest bit relevant was set to “prompt” or “enable”.

Now I see that McAfee suggests this might be related to the VBS/Godzilla@M virus. That might explain it: The Youtube message comes back if I answer no to the ActiveX question, so those two problems are related by the obvious “An Active X script on that page needed to run”. I appear to have switched the setting to ‘Enable’, not ‘Prompt’, so I should not be seeing that message anymore. The virus on that page relies on the preview pane of an email client program. Phil does his email on Yahoo or something. It’s curious indeed. I got the impression that he’s willing to live in peace with the virus as long as it stops asking so many questions. ;-)

In the final analysis, I am bugged by the meaninglessness of every question the computer asks - or, I should say, by the fact that you just don’t know which questions are serious and which are a joke.

Posted in computer-interface | no comments | no trackbacksPosted by Evan Bittner Wed, 23 Jul 2008 01:03:00 GMT

Older posts: 1 2 3 ... 6