Blogging Ottinger (tim)

2007-March-31

MS Doesn’t Want Your Apps

Filed under: Windows, Programming

…Because they weren’t compiled with a Microsoft compiler.

A Brief History of Napster

How it came to be, what it was supposed to be, and what happened.

2007-March-23

Java is So American

Filed under: Angst, Programming

I think that the thing that annoys me about java people is the same thing that annoys Europeans about Americans.

A lot of java programmers started programming in java, and may not know another language. All their early experiences are in Java, all their OO experiences (until ruby maybe) have been in Java, and they have “always” been immersed in the java culture. Other cultures are older and newer than theirs, and run on a different set of rules. Other programming cultures use different words than java programmers do, even when referring to the same concepts. Java has its own set of luminaries and java programmers consider that everyone knows them. Java-only developers are sure that their way of programming is, if not the best, one of the “most good.” Java programmers think everyone is just like them, or else wants to be.

This monoculturalism is very apparent to the foreigner (non-java programmers) but those inside the culture are completely oblivious to it. If I could add that “java programmers think they’re world-leaders” then we would have the American experience almost perfectly paralleled.

On the other hand, I’ve not had the kind of non-java-programmer rejection among the java crowd that an immigrant frequently gets on these shores. I guess some of the imperfections in the analogy are improvements.

Bryan Gunsher Gets it Right

Filed under: Music, Guitars

I just found a web page (thanks to Harmony Central) for Bryan Gunsher’s wonderful pickups. I was totally impressed with the single coil pickups. These pickups accurately reflect exactly what I want in a set of singlecoils. The BG Vintage 60s pickup set is perfect. Or maybe just closer than any others I’ve heard so far.

2007-March-22

C++ Downcasting Evils

Filed under: Programming, Fun

You never know what words of “wisdom” might be archived somewhere in the world. I recently found some old discussion about type information in C++ that made me laugh. I guess it made someone else laugh too, because they saved it for posterity.

2007-March-21

Editing on the Dark Side

Filed under: Programming

Another programmer finds out about the deep magic that is present in “old generation” editors. Productivity is not a measure of how GUI your tools are.

Really Important Invention: Compressor for TV

Filed under: Life

Okay, a compressor is hardly a new idea. They’ve been available in stomp-boxes and rack-mount effects for musicians and studio pros for quite a long time. But this one is for TV. Imagine stopping those violent bursts of volume that occur between the stylish whispering of a “gritty” tv mystery or action flick and a sudden attack advertisement. No, it doesn’t turn off the ads, it just regulates the volume.

The columnist talked about losing dynamic range in movies, but I think that people have gotten a little carried away with dynamic range. I am old fashioned, and think the dialog (AKA “the story”) should be audible, not just the very expensive American-style explosion (where a plastic cigarette lighter dropped during a chase scene can launch automobiles in flaming aerial flips). I guess I’m not American enough. Again, with a proper compressor you don’t HAVE to destroy the dynamic range: bringing up the vocals a bit and bringing down the sfx isn’t an all-or-nothing enterprise.

I guess next will be a noise gate, so you can eliminate the dialoge (AKA “the story”) entirely while still hearing the sound effects in all their gory… er… glory.

2007-March-20

Weird Blender Pitchman Blends Everything

Filed under: Fun

It’s just funny that this blender pitchman will blend anything imaginable. Can you do a boat oar? A collection of pens? YES! It slices, dices, grinds, frappes and will completely consume 40 inkpens!!!

RIAA Inside Higher Ed

Personally, I take the RIAA’s stand to be the world has stopped making us big bucks, and therefore the world must be stopped. They play a dirge, and you refuse to mourn. They made a business model, and you didn’t play the consumer role right. The comments that followed show how well this was received. Gizmodo’s interpretation was equally uncharitable.

I think that commercial copyright violation is a very bad thing. I would hate to see it for anyone. I think that the RIAA has out a pretty extreme bias magnifier as to what a “commercial copyright violation” is. I think that format-shifting, time-shifting, and place-shifting are the way of the present (no longer the future).

There is no market for music that I can’t copy, transcode, and playback in all devices and places of my choosing (as far as I’m concerned). I think that in this regard, I represent the current music market pretty well. Nobody wants DRM, nobody wants restrictions against loaning or reformatting. Casual ripping and burning, and the use of downloading services for music one has already purchased (or the use of free downloads) are not problems; they are opportunities.

I think that I resent that I can’t participate in the promotion of bands I like. If I were allowed to share a song via a web site, I could draw attention to the bands I like. I might increase the long tail or maybe the initial bump in popularity. I could help them be successful. Of course, any “label” band’s songs cannot be shared and so I don’t. But I can’t help promote my favorites that way, and sampling is the only way that matters.

Teens are the world’s leading viral marketers. It’s silly that they’re not allowed to participate in the culture. Of course, if the labels won’t allow it, then maybe the indies and the bands themselves will. There is always a way to legally work around or evade an unwanted system. The evidence continues to mount.

2007-March-16

Hollowbody Guitar Samples Needed

Filed under: Music, Guitars

I’m going to (eventually) get a hollowbody electric guitar. If price were no object, or I was going to keep it in a vault, I would get a gibson ES 335, but I want to take it around and play it and even let my kids play it. No four-thousand dollar guitars for me. I’m not a pro, and don’t intend to be. The 335s are for *real* musicians, not for ignorant hobbyist/fan-boy guitarists like me.

I need sample mp3/wav/ogg files for different hollowbody guitars, but it looks like the manufacturers won’t do this. It’s funny. You know that they have sampled them for sustain, tonality, intonation, playability, etc. Surely every model has seen a few blues licks and maybe a bit of shredding. You think these would be recorded, but not to my knowledge.

I would love to find samples (or post them) of these models for comparison:

I want a hollowbody. I just can’t decide which, and I’m not near a good guitar store.

2007-March-14

Cheat Sheets Galore

Filed under: Programming

Many many many cheat sheets are available via the list of links called Fuzzy Future’s cheat sheet compilation. Get ‘em while they’re hot!

I also found a decoder ring for GCC Compiler error messages that might be useful.

2007-March-13

Tough Old Bird on the Mend.

Filed under: Life

My father-in-law, Jim, is one tough old bird. I know that his history is pretty remarkable, how he taught himself so that he could pass the GED after having less than one year of schooling. I know that the whole SeaBees thing is pretty cool, and that he was a pro wrestler and is one amazing pastry chef and bread maker. The guy has lived through a lot. He’s a pretty good fellow.

He’s recently been through a knee replacement. He’s not been able to walk much for quite a while. He is a larger man and has no cartilage left in either knee. It kept getting worse and worse, and he was less happy and less mobile by the day. Finally (with some encouragement from my medical buddy!) he opted for knee replacement. When he went in for pre-surgery evaluation, they find that he’s had a heart attack he didn’t know about. They schedule some heart cath to assess the situation, and it turns out his heart has already done the bypass (rerouting around the blockage) and he’ll be ready for surgery very soon. Well, I thought he had a pretty good heart, though I meant it figuratively.

He goes through the surgery just fine, comes out like a champ. However, he’d been having back pain for a long time and had been relying on home remedies and over-the-counter medicines and didn’t realize it was more serious. He was having kidney failure. He came through a heart attack and a knee replacement with that going on. Well, it looked pretty bad for the fellow, but they forced fluids and meds and the kidneys resumed function. They’re getting back to normal now, and the pain is fading day by day. It’s been a week or two.

Now he’s almost over the back pain from the kidneys, and he’s feeling less pain from the replacement than he was from the bad knee before. His heart is functioning, and he’s even gotten up and done some walking (though he keeps the walker handy just in case).

I think he’s going to be okay. Frankly, I don’t know what it would take to stop him!!!

2007-March-12

cool pickup comparisons

Filed under: Music, Jazz, Guitars

I was ‘helping a friend look for pickups’ — actually he’s looking and so I wanted to listen to a million different kinds and see what I like. I found three great comparison pages:

2007-March-9

Sapolsky on stress

Filed under: Angst, Life

Interesting things. I may have to buy some of Dr. Sapolsky’s books. He has remarkable insights on baboons.

Living in Vim

Filed under: Linux, Programming

Some people have described Vim (the editor) as a prehistoric editing environment. I don’t think it’s correct. It’s not entirely unfair especially compared with eclipse. Programming in C++ in Vim does seem rather 90s.

Vim doesn’t have to be a terribly retro experience. It doesn’t have to be awful unless you really feel like you’re cheating on emacs (a wonderful tool, also, and a good IDE if you like chording). I’m not claiming VIM is perfect or a complete replacement for a nice refactoring editor, but it is very capable and there has been a lot of work to keep it relevant over the years. I actually like using it because I have reached a point where vim is very fluid for me. I don’t pretend it’s intuitive, but it’s good.

While I’m not feeling up to anything really comprehensive, here are a few tips to making your life in VIM much more pleasant:

  • GVIM — graphical vim. You’ll be glad. Learn how to use horizontal and vertical window splitting (^W commands). And tabs. It’s all there.
  • Forget tabs. Set expandtabs, and use shiftwidth. In insert mode, indent with ^T and dedent with ^D. It will make you happier, especially if you dabble in python (in which case Eric3 is nice, too).
  • Use the directory editor. Fire up vim using “gvim .” and you can navigate the directory as though it were a text file, including searching forward and backward. Learn to use “o” to “open” a file so that you maintain your context in the directory window.
  • Use quickfix mode. Basically you type “:make” to run your makefile, and the quickfix mode will take you to each of your compile errors in order (use :cn, :cc, :cp — “:man help” will explain it.
  • Use the “Man” feature. Try “:help man” for details. I ALWAYS use it, and it makes it much easier to access documentation in the editor.
  • Use a unit test tool (cppunit, unit++, etc) and have your makefile run all the unit tests. Quickfix navigates unit test results as well as compile errors. It makes a lot of sense.
  • Use ctags. Have your makefile update ctags when it builds. Then ^] will send you to the definition of the symbol (function name, class name, etc) under the cursor. Navigation stops being tough.
  • wildmenu
  • Use the ^N, luke. And the ^P. Code completion can work for you.
  • Get used to the ! command. Every command-line tool you know becomes part of the editing environment. For example, highlight several lines and type !sort. Yeah, it sorted them all alphabetically, didn’t it? Use this leverage to create some of your own. YMMV if you’re in Windows (poor you). Consider using ‘astyle’ in this fashion.
  • You have a lot of named buffers. Use them. Try yanking to multiple buffers when you are going to copy multiple things.
  • Don’t overlook the power of the “read” command (:r) to suck in template code from text files. I never can remember how to set up a unit test class from scratch, but I know I can do “:r testclass.txt” — and the wildmenu means I don’t have to type that much of it.
  • Unfortunately, vim doesn’t run a command-line window. Run your own command line window.
  • Learn to use macros. If you are going to record and playback macros, you might also want to know how to insert named buffers while in insert mode. It’s handy when you want to rearrange a line. “@@” is handy.
  • Look at vim.org for plugins/scripts. Maybe write one or two.

I’m enjoying the combination of gvim with ctags/fastdeps/bzr/etc. It is a very fast editing environment, even though it doesn’t color in the unit test results. :-(

Cute BASH trick: copying many files

Filed under: Linux

Xargs is one of the best commands ever. In linux, you can feed it a lot of words (say, filenames) and it will assemble them into a set of lists such that each list is small enough to fit the command line. If you are doing something simple like listing files with "zerb" in their names, you can do something like

ls $(find . -type f -name "*zerb*")

That will work if you don’t exceed the allowable command line length. If you have a LOT of zerb files, then you can’t use this inline expansion. You need xargs:

find . -type f -name "*zerb*" | xargs ls

It will do multiple ‘ls’ commands, each having potentially many lines, but none of them too long for the shell.

A friend of mine asked how to do this for a copy, where the final parameter needs to be the destination directory. Well, xargs cannot do it. So I told him the three ways I knew would work:

cp $(find . -name "zerb*")  $destination
find . -name "*zerb*"  -exec cp {} $destination \; 
find . -name "*zerb*" |
   while read filename; do
      cp "$filename" $destination;
   done

I would bet that this little one-liner problem has a many solutions, all without writing a real program. Maybe the reader knows a few that I didn’t think of, or overlooked in haste..

Minor revision — my markup keeps changing the " to \"

Get free blog up and running in minutes with Blogsome
Theme designed by Jay of onefinejay.com