Wednesday, February 15, 2006

Semagic and Cygwin suck. Console is OK.

Right now I'm writing this blog entry in Semagic, and it likes to say that things like "wouldn" are misspelled words. It's too dumb to look at the part of the contraction past the apostrophe, so I'm here adding "doesn," "wouldn," and things like that to my user dictionary. Please note that there were no spelling errors indicated in this paragraph.

I decided to get back into programming, so I needed a command line again. "Cmd.exe" is borderline unusable, so I figured that I'd just get Cygwin, as I always had in the past.

Well, Cygwin uses the same command window driver thing as cmd.exe, making cutting and pasting an exercise in right clicking on the window title and then selecting mark or paste. If it's a paste, you're done, but for a mark you then have to select what you want to cut with the mouse and hit enter. This is basically retarded, and doesn't lend itself well to my personal typical use cases with development.

But I found a work-around called rxvt! It's a pretty basic X11 terminal that's been around forever, and the Cygwin implementation doesn't need an X server running to function. I made me a batch file and was happy for about 15 seconds. Not having a current Linux installation anywhere near me, I don't know if rxvt is supposed to ignore the last newline in a screen write, or if it's supposed to get all munged up between a cursor and stray text it decided to put on the "current" line instead of inserting the expected newline, but I wouldn't use that either.

At least I have my Unix commands now! But I really just have things like ls, mv, and cp, since things like su either don't exist, or are irrelevant to Windows XP for any practical purpose. Yes, you can su to certain types of accounts if you are a certain type of user, but the one thing I wanted to do was impossible (su to an account that can't log in on its own).

Oh well, at least Cygwin can install Postgres for me, and that'll save me a headache. Oops, I can't su to set this thing up, so I'd have to jump through more hoops for the initial setup, and that was the headache that I didn't want. Cygwin got wiped, and I thought of my buddy Jim, who had found a windows replacement for cmd.exe in the past, and I just couldn't remember what it was called. Within 4 minutes, Jim logged on to Microsoft Instant Messenger, and he was a big help.

It's called Console. That's pretty easy. And Console allows me to paste easily, and I'm pretty sure I can even configure it to paste with control-V and stuff like that. It's beautiful. I made a bunch of batch files to handle ls, mv, and all those things. I spent 10 minutes looking online to find out that %* ends up referring to all of the arguments passed. Passing 9 parameters or whatever manually to the called process (all ls does is call dir and pass the parameters along) is almost as absurd as having a bunch of 1 line batch files.

Oh, and I ended up changing my system PATH to include a "scripts" directory for things like ls when I initially launch my console, and I made another script to add some other things to the path that I might want to have there after I'm using the command line. Since those extra paths are useless except from the command line, they do not exist except in that context.

I feel like I wasted a lot of time, but I figured out some useful things. Time to grab and install Postgres on its own, now. This is mainly for Pokertracker to use, but it's always good to have a database running for a lot of random purposes.

Back to work.

No comments: