Friday, February 27, 2009

A curse on all the worlds shitty web browsers

What has this world come to....

it seems that Firefox 3 runs better under WINE then it does Windows XP or FreeBSD, wtf man? But at least the plugins still suck... haha

Fools Gold

Just saw a hilarious movie, Fools Gold. It starts with these two hopeless idiots diving... the manage to sink their own boat, without even knowning it xD. Fin and his Ukrainian sidekick Alfonz manage to survive, only for Fin to be late to his own devorce. Throw in a rich guy with yacht, a daughter who redefines the words "Air head" and "Bimbo", and things just snow ball from there in search of treasure!

Oh man, it brings backs some memories, I really miss Florida about now...

Something wrong? Why would anything be wrong? We just had sex in a church - and we're not even married - and now we're gonna dig up a grave! I mean, what is that, like a triple sin? I'm surprised we haven't been struck by lightning.


How crazy can you get? >_>

Sunday, February 22, 2009

Installed DF:BHD & patched it yesterday, to pass some boredom. About halfway to 2/3 through it, and I've noticed that it has become buggy as heck lol.

So far I've had...

  • Random crashes, maybe AI or Geometry related
  • Fell though a solid wall -- wow
  • the shotgun has become a paper weight; give me a M9

One thing that both pleased, and pissed me off... in the mission to night-sneak into a building a few blocks down, without being detected. I kept perfect stealth until the AI decided to "take point", walk into the light, and get us shot at lol.

The AI also can't cover worth crap.

Two irksome things on one mission, about to drop down a hole and one of the NPC shouts, "think we should flash'em?", and the PC replys, "Hell YES". I had already dropped my flash before the exchange, and guess what -- I drop down, the bang landed in their faces and nothing worked ^_^

The auto-reload on weapons dry, and auto-reload on ammo-box pick up is also as annoying as I remember. When the gun goes dry, ya don't reload - you draw a pistol and keep movin' but, I guess the developers never thought about that. Stumbling over an ammo-box and nearly dying, because you are suddenly stuck reloading a CAR-15 in a shoot-out ain't nice either ^_^

git rules, cvs drools

Hmm, after a using git for all of my stuffs these past few days.....

CVS can go rot in hell, someone actually wrote a real system ;-)

As much as I try to keep my OpenBSD box lean & mean, git is fairly light on runtime dependencies:

Terry@vectra$ cat /var/db/pkg/git-                            

libiconv is required by other things I use, and I believe gettext depends on it, and a lot of stuff uses gettext lol (uh, almost everything). curl and rsync are also useful to have around, and rsync I actually would want installed anyway (just in case I need it someday). So really, there is no serious dependency issue from it, since OpenBSDs standard git package doesn't include the TK gui tools like FreeBSDs does. TBH, although I usually keep tcl/tk on my development systems, I never use tcl or tk-bindings. And I really have no desire to use any git front ends, nor gitk/git-gui for that matter.

Using git after getting used to living with CVS for so long, I can't help but wonder..... why the **** anyone uses CVS anymore. Even Subversion is easier to live with then CVS, but not always a fun thing to install/manage at times, 'least it is well documented (and tirival for cvs users to pick up hehe).

git... simple, effective, fast, and not brain damaged.

Saturday, February 21, 2009

Finally.... I got some sleep.

Skipped the computer totally, set the TV to something good (Aliens hehe), and succeeded in mission plan.... be snoring before 0100R. Woke up around 0900, then went back to bed until 1300 since it was a day off work hahahaha.

Now I feel like running a marathon...

Friday, February 20, 2009

This lack of sleep is driving me fscking crazy

Thursday, February 19, 2009

Pondering near-future operations.

Hmm, sabre drawn, mission planned, all posed ready for the Live Operation.... but when will the order come, to let the hammer fall, if at all.
so ****ing tired....

Wednesday, February 18, 2009

A quick conversion from cvs to git


  • I store all files related to services under /srv, or provide symbolic links.
  • Personal files are stored in a CVSROOT of :ext:Terry@vectra:/srv/cvs/ and are filed under module 'Terry', for lack of a better name lol.
  • server is vectra, workstation is dixie; communication done via the Secure SHell protocol.
  • I don't use graphical software for these kind of tasks. GUIs are available, but I don't want them wasting my time
  • The contents of my personal CVS module will be stored in it's own spot as 'cvs-head' for backup purposes: I have no plans of committing to CVS or merging stuff back into it.
  • Access git is more or less just me and occasionally root@hostname, but may be expanded later

OpenBSD server:
 # su - root
 # pkg_add git cvsps
 # groupadd -g 2005 git
 # cd /srv/
 # mkdir git
 # chmod 7755 git
   if you want to lock down the CVS, go to the CVSROOT
   and revoke write access on your modules files
   e.g. chmod -R ugo-w fooproject
 # cd git
 # git cvsimport -ikv -d /srv/cvs -C cvs-head Terry
 # mkdir Terry
 # chmod 0750 Terry; chown Terry:git Terry
 # su - Terry
 $ cd /srv/git/Terry
 $ git init
FreeBSD workstation:

 $ su - root
 # pkg_add -r git
 # pw groupadd -n git -g 2005 -M Terry
 # exit
 $ git clone vectra:/srv/git/cvs-head /tmp/Terry
 $ cd /tmp/Terry; mv * .* ~/
 $ cd ~
 $ git remote add origin vectra:/srv/git/Terry 
 $ git push origin master

In a little while, I'll probably refine things. Originally, I used the old mv file.ext file.c-vN.M and (cd ..; tar cf - project | gzip -c > /tmp/project-N.M.tar && mv /tmp/project-N-M.tar ./project/backups/) style approaches to my stuffs. The first time I went into using a source code management / version control system for a project, I selected Subversion (also known as svn) and enjoyed it quite a lot. Later on, when I decided to start checking in my configuration files, well... I like to keep my OpenBSD box pretty lean & mean; thus I used what came in the base, which was cvs (concurrent versions system). Subversion and CVS are so much alike, that I could live with CVS very easily (after all, it's just my config files and an occasional project). I prefer svn to cvs, but hey, I'm a cheap bastard!

I've been thinking over the merits of Subversion, Bazaar (bzr), and git for various projects. I generally ruled out Monotone on inputs from another programmer, and having a general lack of interest in it myself. I also considered Mercurial (also known as hg), but I'm more familiar with git then hg. One of my friends uses hg for submitting patches to Mozilla and what not, and there is a project I'm involved with that I feel would benefit from using bzr; but either of those would mean a dependency on Python. Despite my levels of fluency in Python, my file server doesn't have need of a scripting language like Ruby or Python; because OpenBSD provides Perl, SED, and AWK. So for me, git is a smaller package and it is just as easy to choose to pickup git as it is bzr. My workstation will always have Python, but that's because I write python code lol.

Several of my various micro-projects use git on my work station, because there is no real need to stick them in the CVS server - and I don't like CVS or rcs enough to employ them for the task lol. I've also considered replacing cvs with git on my laptop, and using it to fire off final commits to the CVS server, but eh... fuck CVS.

Tuesday, February 17, 2009

Sleep, rest, peace... do I even know the meaning of these words anymore?

Tired of shitty software

Ok, now this really pisses me off....

Firefox3 -- CPU user time usage jumps up the chart just when scrolling a freaking page, often reaching 97% !!! I really didn't like the change over from Firefox 1.5.x to Firefox 2.x but this is ludacris man... (and yes, I almost _never_ restart my web browser, I shouldn't have to, especially when it's as big, fat, and ugly as all Mozilla products!)

cvs -- created a shell function that given a short message, auto-generates the kind of CVS log messages I want in my personal repository; then runs cvs commit -F tempfile. Causes CVS to shout about aborting because you can not specify both a message (as in -m msg) and logfile (as in -F tempfile) at the same time. Yet!!! I checked cvs log, and guess what? The son of a bitch committed it [each time] anyway.

I thought Microsoft's 'ERROR_SUCCESS' error code was funny, but that one is just stupid :/

And I am not even going to dig into things like UE2, XFire, Pidgin, various APIs and mobile devices ^_^. There are just some things in the computing world... that really piss me off; is it to much to ask for some decent software....? Interestingly, almost all of the software that I use, which doesn't piss me off regularly -- is predominantly portable UNIX software. *sigh*

Monday, February 16, 2009

A C programmer can write C in any language, until he gets lazy and remembers Perls regular expressions still work at four thirty in the morning.

Writer's Block: In a Former Life

Do you believe in reincarnation? If your answer is "yes," describe some of your past lives.
Live Journals Writer's Block

Not really, but if there is such a thing... it would be nice to come back as a cat or a dog.

Dogs get to sleep all day, and don't have to share. Cats get to sleep all day, and always find the best napping spots xD.

Sunday, February 15, 2009

Useful way to pass the time

Got bored, have never found something like xkill that I can just say, "xkill somewindowname". Found xwininfo last week, thought about this hehe:

# kill X client by window name

if [ -n "$1" ]; then
    xwininfo -name "$1" | grep 'Window id:' | awk '{ print $4 }' | \
    head -n 1 | xargs xkill -id 
    echo "usage: `basename $0` windowname"

xkillname xconsole and poof - the xconsole window is killed, hehe.

Friday, February 13, 2009

Thank or punch?

In regards to JB's recent question

Good thing:

learned what a ballistic coefficient is
learned about bullet sectional density and form factor
learned a bit about drag coefficients
found a helpful pseudo-constant for standard gravity


don't have enough ballistics data
don't have enough weather data

Spent a few hours in thought that I could have spent in game, but enjoyed the process lol. Hmm, I don't think I've tried anything like that since the cows came home.

Thursday, February 12, 2009

Writer's Block: Dream Job

If you could have any job in the world, what would it be?
Live Journals Writer's Block

I would take the BEST job in the entire country. Forget the presidency, it's all about triple dee.

Come on, Guy Fieri has like the best job in the USA -- crusing in a classic ride, and eating ten times his weight in food xD. Better yet, just being his side-kick would be a great job too! As long as it comes with a chance to eat, hahaha.

Hmm, I can just imagine everyone who knows me, rolling their eyes about now lol. (of course it's gotta involve food)

Wednesday, February 11, 2009

Common Lisp ?

Hmm, Steel Bank Common Lisp (SBCL - compiled), CLisp (Bytecode), or Armed Bear Common Lisp (Java bytecode)

Decisions, decisions ^_^
Hmm, so far it seems to be a bit of a delemia. links-hacked can't handle posting to LJ; links lacks many small features. ELinks has them all, except the GUI mode, because it's forked from a really old version of Links lool

Today was really, the only chance I had to sleep... but like normal, I didn't
get any rest this morning. Work on the otherhand, went fairly smooth. Came home
and got to record most of my thoughts (and designing a window manager) before
chow time. Later, I just crashed for a nap and woke up a few hours later.

Since then, I've been been experimenting with links / links-hacked / elinks
some more. Really, elinks is almost exactly what I want... except for the lack
of GUI support. links-hacked, hmm I'm not so sure about right now; I just don't
see it's "hacks" as a big enough improvement over links proper. The minimal
adjustments I would need to make to links 2.2, is working with it's cookies,
user agent spoofing (well, not neccessary, but desired), and add a few hooks
here and there (text entries, key to open new window, etc). In links-hacked,
I'm not sure yet. links-hacked seems to have much more primitive text area
handling, and much like how links lacks a key to open a new window
(links-hacked also lacks it!), there is apparently no key to just open a new
blank tab. Like, what kind of idiot makes a keyboard command to close a tab,
but doesn't make one for opening one? (at least, if there is, it sure ain't
documented, and the 't' command from elinks doesn't work in links-hacked). I
suppose, I could always find a way to stick that in...

EDIT: done, it now opens new tab, hehe.

Now that was kind of cool, I'm wondering what open_in_new_tab()s second
parameter does, and why it always seems to get passed NULL as the 2nd
parameter. Sure enough, I checked the function defition again -- and it doens't
use it for jack, hahaha.

Tuesday, February 10, 2009


0. finish current projects
1. research common lisp implementations
2. sort reports
Tried out links-hacked, nice browser but I think I like links 2.2 better.

I downloaded links-hacked, had to make a few trivial changes to the source, and punch it into the face to make it obey --disable-backtrace as intended. Startup time was a bit slower then links, but stil a quick mover. Keybinds seem to be a bit more minimalist, text fields improved visually and tabbed support is present. I couldn't get lua support to configure though, which is a shame because I really wanted to try it out.

Overall though, I think links 2.2 is a better browser. If no unexpected "gotchas" pop up, links may soon become my default browser on Dixie. +/- a few custom modifications, hehe ;-)

It also gave me an idea, I could use links bookmark manger easy enough to simulate the GOTO URL behavior I want, and always munge together a converter between my bookmarks tool and the netscape format; or just get around to writing the appropirate backend, lol. Hmm, this is interesting xD

Now if I could just get this S.O.B. to allow me to customize keybindings without hitting the sources, and some cookie handling - and it would be perfecto.

Monday, February 9, 2009

Ahh, I'm really feeling much better now. Got up and had a bowl of cereal, good to be back to a healthy snack, even if I'm still up at night lol.

Been using links a lot for web browsing latly. During the big upgrades, heavy browsers like Opera 9 and Firefox3 were a bit to bulky with how much resources the portupgrade program throws ontop of the upgrade script (compared to using FreeBSDs built in tools); I also fouled up glib/gtk at one point, so links came in handy. It renders pages fairly well (but without CSS) and even can do images inline (could use better positioning, but hey it's a simple browser lol). It also has the virtue of low dependencies: C library, standard libraries for compression & encryption, the standard image libraries (libtiff, libjpeg, libpng), and a small subset of X11 libraries.

The worst thing I can say about links, is it lacks tabbed browsing; other wise I think I would use it everywhere I can lol. It's rending of webpages could be better but the primary problem it has is CSS support, while Lynx renders webpages as if there was no CSS, and as if it was made for all presentation and layout moved into a stylesheet. That's the worst thing about Lynx ^_^.

If I could get the experimental JavaScript enabled to see how stable it is, combined with the fact that Links renders web pages very well for such a browser (damn good actually). All I would have to do is patch in a few hooks to allow the stuff I want, wherever links doesn't provide it. (Easy enough, I know C but don't know my way around the code base).

What I really should do, is check out Links Hacked, which adds tabbed browsing (yay!) and scripting in Lua. I don't know Lua, but I could learn it swiftly with good cause. Hmm.... xD

falling down tired

2009-02-10 T07:17:20 UTC

Oh man, so freaking tired. I think I fell asleep like ten minutes into the presidents talk, woke up sometime later and drifted off to bed. Was to tired to get on the computer, was nothing on TV; so I put on my favorite western, El Dorado. Been drifting in and out of consciousness, seeing most of the movie and dreaming of hacking on old computers the rest of the time (lol). Finally got up about half way into the movie.

I'm still to dang tired to do much of anything, just writing this off battery power atm. I'd really like to work through some of my readinf, but I'm to fscking tired to retain it. Been to exhausted most of the day to focus on anything more complex then regular expressions, and even then to far gone to get that right (oy). After El Dorado is over, I ought to go to sleep, but I'm not sure if I'll be able to go to sleep after all this dozing.

Really, what would be good, is to curl up with a nice novel... only problem, I've read most of my collection of fiction, 2 or 3 times each; my memory is also pretty good. I think I'll see if there is any milk and cereal left, havce a quick gnosh and try and lay down. I'm really happy that I don't have to be at work tomorrow, until about 1200 - but likewise wish I could just sleep. I really need a good nights sleep, but I never seem to get it.

I'm so darn tired.
Been a long night

Whilist updating my laptops software, I finally finished and found a number of irksome errors about gdkpixbuf and loading XPMs. Couldn't turn up any useful information, so I asked around in #gnome; ended up recompiling gtk20 against the installed libraries. All in all, portupgrade is nice FWIW, but really it's not one of my favorites. I usually get my best results doing things by hand, maybe I should give portmaster a go. Since I also had to recompile Pidgin to fix it, I decided on a whim to try compiling GFire (which I have not tried in a _long_ time). Much to my surprise and enjoyment, it went well -- now I can connect to XFire off my laptop. Much nicer then redirecting people to use my other IM-details, lol. Also started work on a FreeBSD port for it, mostly just an issue of figuring out the PLIST files and testing out the port files.

Compiling things from source is the only assurable way of getting good results when updating software, a lot of people (that wouldn't know a library from a linker) don't get it; for the rest of us, it's called think before you smash. With my modest hardware, I usually use pre-compiled binary packages whenever possible, but they are not always suitable. One of the things I like about source-based Operating Systems -- you can actually fix shit when it blows up.

Oh crap, GDM, GKrellm, GVim, Emacs, and Pidgin are not working well after upgrade. Recompile the offending thing(s) that popped their cork.... and it magically works perfectly >_>. No horrors, no fighting, just flick the switch and take nap lol.

Sunday, February 8, 2009

What a day!

Last night Willow puked on the sheet, so I had to put a load of wash on around 0245R'ish. With the look she gave me, all I could say was, "I'm not mad at you, you should know me better then that by now, but now your gonn'a have to stay out of trouble, and share the cover!". I put the top sheet down to keep Willow from getting to the mattress, and put up with having to use the heavier cover. Usually I leave most of that for Willow, and just use the top sheet for my self lol.

Had to cut off portupgrade early (between ops of course, not during); so I need to finish that today. Woke up like 1430R. Took care of chores (late), then took the dogs out for their walk. While walking Coco, I ended up with the worst fall I've ever had. Dirt slid out from under my feet, and plop I went! It was like, one of those moments when it feels like time is passing in slow motion, but it's really going a mile a minute; "Oh shit, I know how this is gonna hit". I landed hard right above the small of my back, it felt like a crunch from hell. I couldn't adjust to control the fall, so I had to land flat out on my back with Coco landing on my chest; I hit the dirt with a bounce and felt the wind knocked out of me. F*** man, for a second I was wondering if I was having a heart attack or screwed something up on rebound. The front of my chest, like around the base or just below the sternum was hurting, but it's fine now. (Maybe my internals having a roller coaster ride, lol.)

Coco jumped off my chest running, so I flung myself up & around and tried to scoop her up; she ended up tangled in the harness by the time I snatched her mid run; so I untangled her on the way back inside. I knew I had to get up pretty freaking fast, because while Willow would drag me (or choke herself) if she ever tried running off in a situation like that, with the leash in my hand -- but coco is so small, she can yank herself out of her harness! Came in side groaning, and plupped on the couch to get coco out of her kit. Coco was scared shitless from the unexpected drop, now she's just pissed off at me for not taking her for the walk lol.

My thinking: "Thank you LORD, I'm still here... and in one piece"

Man, I've never had the wind knocked out of me like that. Although it's one of my lifes regrets, that I never had a chacne to formally study martial arts: I have learned how to take a fall quite well. But when it's crush the dog or take your own chances with the landing, ya don't actually have a choice lol. So I had to take the drop hard, felt like bouncing off a wall with my backside. Didn't hurt my head any, kept it out of the impact fine, just took a stiff drop backside first lol. Been a long time since I've taken a fall, and that was the first one in a long time that I haven't been able to control the drop. Heh, last time I landed like that, I must've been like 3 or 4 years old lol.

Man, nothing like a hill kicking you in the back to wake you up in the afternoon!

Saturday, February 7, 2009

Hooah, reorganizing ${HOME} on Dixie is almost done... so I can spend time backing it up later, lol. (I like to do a full backup of my home directory every 6~12 months.). I shifted through most of ~/code last night, ~/Pictures a few weeks ago, and ~/Documents tonight. (~/Music and ~/Videos are just a lost cause, lol). I've also been tucking various (on going) projects into ~/Projects/file_or_dir, which used to be in ~/file_or_dir or ~/code/Language/{src,lib,modules,doc,makefiles}/file_or_dir. Eventually though, I'll have to shuffle through the cruft in ~/misc but it's almost empty now.

One nice thing, when I've a document or site to read that is to big for one sitting, I usually create a .lastpage or .progress file somewhere, named after the doc file or a .lnk file with a URL / notes. With this reorganization stuff, I've been transitioning to an index file per (appropriate) directory, lastpage.idx. Which is actually a lot more handy, since I can more readily query the information with other unix programs (cut, grep, awk, perl, et. al.). Then again, I also need to consolidate my ~/notes, ~/stuff/open-loops, and I don't even want to think about organizing my home directory on Vectra...

Finally managed to git rid of an ever worsting beard last night, a change for the better... I was starting to look a little to much like a relic from the Civil War, only I don't happen to own a gray coat nor a blue one either for that matter ^_^. Although most of those around me, think that I look good with a mustache and goatee, I think I look like an asshole; whether it's a mustache, goatee, or full beard lol. Whenever I dream, I usually am beardless, maybe my minds self-image has more time to spend with a razor blade then I actually get in the real world :o. Now I just need to work a haircut into my grossly overcrowded schedule :\. With the amount of time that I *actually get to myself*, I almost never take the time to shave, unless it becomes necessary, or I can't stand looking at it every morning! Yet, I really hate it when I get to the point of walking around in a beard...

With some luck, I can get a little pleasure this weekend: catching up on my ever expanding reading list, and throw in a bit of coding on my current projects for good measure... hehe. I know what I really need, but I also know the probability involved, is on par with winning the lottery without a ticket. That is about how much rest I'm allowed around here.... even the dog [usually] gets better treatment then I in this family :\.

What I really _need_, is a /long vacation/ from nearly-everything, to everything in my life right now. Leave everything behind, take a term of R&R without anyone along to badger me, and chuck the computer out the window while I'm at it (although knowing me, I'd jump after it -- most of my data is in there until the next backup lol). *Sigh*, a man can dream.

Speaking of dreams, I think I would have to search my live journal to even recall when the last time I had a decent nights sleep was, lol. Hmm, think it's a quarter to 0600R, best grab a quick gnosh and see about gettin' some shut eye before the sun come sup. For better or worse, being up until 3,4,5,6, or even 7 o'clock in the morning is not uncommon for me, and I've largely been going to bed *much* later then 0200 for over a decade... but hey, at least when I'm not working, instead of rolling out of bed for the first piss of the dat, at 0915 - I can sleep in until 1130~1300 :-)

If anyone even lets me sleep.....

The poor phpBB folk


We are sorry to report that we have been attacked through a 0-day-exploit in our PHPList installation (responsible for the mailing list about new releases). will remain unavailable while we work to recover. No vulnerabilities have been found in the phpBB software itself.

You can download phpBB here:

You can get support at the temporary support forums or on IRC: #phpbb

A more detailed explanation about the incident.

Press Contact: If you need to get in contact with the management, please email phpbb_press (at) marshalrusty (dot) com.

– the phpBB team

Somehow, this makes me glad that I don't have to use PHPList... hehe.

Thursday, February 5, 2009

A stroke of luck?

Hmm, I don't know if I've got a recent copy of flocks files on my laptop, but there is still last years system backup, so that might be a good thing. Should also be easy enough to write a quicky to convert the data to entries in my own kit.

Wednesday, February 4, 2009

Digging into the code -- code monkey's go go go !!!

Well, since I've reached the point where I need to start organizing ${HOME} again (joy), and thoughts of ma.gnolia returning, shows no sign of vitality atm... I appear to have no other choice (that I'll actually make :-P).

I am writing my own bookmarks system...

There was a project I was interested in awhile back (Nano probably knows what I mean), which required it; so that's about 30% of the base design saved. The orignal project, called for itt o be part of a C++ program, but no time for fiddling (and I especially hate compiling under Win32); time to roll out Perl -- and get it done. I've had it, time to code it lol. The original idea, was a pair of CLI & GUI wrappers around a library interface in C++, that provided plugable backends to sort out the real work; file system, database, ma.gnolia, mozilla bookmarks, etc. I guess ma.gnolia is out of the picture, and I never cared much for mozillas bookmarks format anyway ^_^. So that eases the initial work load quite a lot hehe.

just rotflmao kind of fun

Hmm, I think I've only ever typed 'rm *' or 'rm -rf *' in the wrong directory once in my life... but that was a project directory from ages ago, lol.

sadly/oddly interesting and funny read
Cars been in the shop, for the 2nd time in as many weeks... and due back in on Monday for further kickin' around. Oddly, Ma has little concern for how much bother she causes me, but feels guilty for borrowing money :\. By her own count, sh ecurrently owes me about $155; I don't keep close counts. There in, I suppose lies the difference; most of my family loves money, but couldn't be arsed to save a penny, if it was raining gold. Me on the other hand, like my maternal grandfather, don't really give a flying flub lol. Ca$h has it's uses for barter, beyond that it's as valuable as toliet paper in my book... Because, you can use money to get food, but money doesn't taste as good as food -- ok, I think with my stomach a lot xD.

Ma's best friend had to pick us up, which is good I guess. Got to meet her new puppy Lakitia, and one of the cats taking a nap in my lap lol. At least, I've gotten a lot of reading done for the day, but no coding yet. I aslo had a bit of a pumch click into mind about a personal project I've been working on of late; figured out the basic structure last night. But, trying to think about the problme I found myself thinking, "I'll be missing pointer arthimetic soon", today it hit me; stop thinking like a regular expression engine for complex fun with strings, and remember perl has the best fscking regular expression engine ever made, built right in xD

Monday, February 2, 2009

Wouldn't it be wonderfull... if I could actually get work done during the day, and not have to be some damn badgered that it takes hours to do what should be done in minutes? And I was hoping to be able to shave tonight, without losing nearly an hours worth of work :\

WTF was I thinking? *SIGH* my mother enjoys driving me fucking nuts with pestering and patronizing me about getting up in the morning / staying up all night. BUT FOR FUCK SAKE!!!! She is the one incrementing my fucking work load by hours at a fucking time!!! I really wish there was a way, to make people see things "as they are", without either having to break their neck or emotionally-cut them in the process, because I'm not fond of either method lol.

Joy, the slave gets called for more interuptions.... (Bitch)

old joke

Fun with vi, nvi, and vim

Some time ago, I installed the old version of vi ported as part of the heirloom project, noted as Traditional Vi. I tucked it into ~/code/C/src/old-vi and put a symlink named 'ovi' in my $PATH. During initial testing, I quickly concluded that the nvi builds on modern BSD (the systems vi) are considerably more extended then what the traditional vi offers. Things that I noticed most missing, were that '~/' in file names was not expanded to the value of ${HOME}/ like in the shell (nvi / vim expand ~/), and the (crappy) split window support and a proper implementation of . and ^R (nvi makes ^R behave like .). A little playful testing also showed several settings missing (mostly expected), and no :exusage or :viusage commands. (Useful in nvi/nex on occasion, to see just what is available without consulting a reference or vim :help.) Two things I've learned tonight, old vi and nvi both support abbreviations, and control+^ is down right handy for switching buffers (vi, nvi, vim; probably every vi clone ever made). I thought abbrivations would have been an Elvis invention that made its way into vim, but I guess it was there since the 1980s, hehe. I also noted that ovi/nvi react differently to showmode (I prefer ovi's).

Out of curosity, I fed into vi my nvi configuration file, since it appeared to be ignoring my ~/.exrc. Only had to remove the matchtime / ruler settings, and two of my mappings: gg and ZQ. gg being a vim'isms for 1G (go to first line in file) and ZQ being a very logical vim'ism for :q!^M much like vi used ZZ for :x .After that, vi accepted it without problem. The errors about the mappings interestingly said, "To dangerous to map that", but nvi doesn't give a darn. Fair enough for gg, but I've yet to figure the ZQ one yet.

Traditonal Vi
:set all
noautoindent            nomodelines                     noshowmode
autoprint               nonumber                        noslowopen
noautowrite             open                            nosourceany
nobeautify              nooptimize                      tabstop=8  
directory=/var/tmp      paragraphs=IPLPPPQPP LIpplpipbp taglength=0
noedcompatible          prompt                          tags=tags /usr/lib/tags
noerrorbells            noreadonly                      term=screen            
noexrc                  redraw                          noterse    
flash                   remap                           timeout
hardtabs=8              report=5                        ttytype=screen
noignorecase            scroll=11                       warn          
nolisp                  sections=NHSHH HUnhsh           window=23
nolist                  shell=/usr/local/bin/zsh        wrapscan 
magic                   shiftwidth=8                    wrapmargin=0
mesg                    noshowmatch                     nowriteany  
[Hit return to continue]                                          

FreeBSDs build of nvi, when invoked as vi or nvi:
noaltwerase     noextended      matchtime=3     report=5        term="screen"
noautoindent    filec=""        mesg            ruler           noterse
autoprint       flash           nomodeline      scroll=11       notildeop
noautowrite     nogtagsmode     noprint=""      nosearchincr    timeout
backup=""       hardtabs=0      nonumber        nosecure        nottywerase
nobeautify      noiclower       nooctal         shiftwidth=8    noverbose
cdpath=":"      ignorecase      open            showmatch       warn
cedit=""        keytime=6       optimize        showmode        window=23
columns=80      noleftright     path=""         sidescroll=16   nowindowname
nocomment       lines=24        print=""        noslowopen      wraplen=0
noedcompatible  nolisp          prompt          nosourceany     wrapmargin=0
escapetime=6    nolist          noreadonly      tabstop=8       wrapscan
noerrorbells    lock            noredraw        taglength=0     nowriteany
noexrc          magic           remap           tags="tags"
paragraphs="IPLPPPQPP LIpplpipbp"
sections="NHSHH HUnhsh"
Press any key to continue [: to enter more ex commands]: 

And doing :set all in Vi Improved (VIM) is so huge, it requires a pager! Hahaha.

Generally I will use vim whenever it is made available, in fact I usually compile my own binaries for it via shell script. But I have spent enough time using nvi, that dipping into ed, ex, vi / nvi don't bother me. When I invoke vi, I expect a fairly traditional vi; when I invoke vim, I expect vim with vi compatiblity mode turned off (e.g. as if invoked as vim -U NONE -u NONE -N), or vim to behave 'as expected' when my own vimrc file is around.

My ~/.vimrc is over 1000 lines, but if you strip blanks and comments it is closer to 600. The only customizations that I actually depend on however, is mapping ';' to ':'. Although certain vi users find that to be ludicrous, I use :ex commands much more frequently then I need to repeat the f, F, t, and T commands in the same direction. So being able to say ; when : is needed, is a massive life safer on my fingers, because it removes the need to hold shift. In fact, unless I want to go to a specific letter in a word, I usually employ :/ and :? to search for the word, rather then a linewise [count]f[character] motion, so the loss of a standard ';' is fairly low for me.

I find vim much more comfortable then other vi's, because I spend an imense amount of time in a text editor. I often [ab]use vims :sp[lit] command to have multiple edit-windows open, or to edit the 2 different parts of the same file without using marks or tags to jump about. The gq operator in vim is also a thing I love, because I can quickly reformat text without having to invoke an external program like fmt(1) all the time. Vi Improved also has better tag based commands. The ability to auto complete :ex commands and file/directory names helps me greatly; nvi's cedit extension for editing :ex comand history sucks in comparason. The ability to :e . and use vim to peruse the current files in a directory is also nice when dealing with some peoples projects, although :!ls | less would work too, I'm not fond of the hit enter prompt at the end (nvi also ditches the colours in my ls output, while ovi retains them). The ability to use code folding and quickly configure settings based on file type is also quite nifty, since I often use zM to fold everything in large files, take a look and zO things that /look/ like it is what I am looking for. I almost never use ^O to make a single normal mode command from insert mode (vi/nvi don't seem to support it), but it is nice when combined with other control+ commands in vims insert mode.

I'm also partial to vim's undo style that repeatidly pressing 'u' in normal mode, repeatidly undo's things while ^R redos what was undone. Traditional vi, nvi, and vim with u in the vi compatiblity options all have semi-incompatible usage paterns. The Vi Improved way uses u as noted above, when set to use a more Vi compatible way, vim uses u to undo and ^R to redo. Because vim has unlimited undo/redos, this means we would press u to undo the last change, then ^R to 'redo' the previous commands, and a following u will undo will undo the last redo (undo redo redo undo; rather then undo undo undo redo). Nvi allows using the '.' as a synonym for ^R which is convenient since '.' means repeat last change command. While traditional vi seems to lack multiple levels of undo/redo period and end of quote.

vim style multi undo:

dddddd      -- delete the next 3 lines as 3 separate changes (3dj would be a single change)
uuu         -- undo last 3 changes (i.e. undeletes those 3 lines)
^R^R^R      -- redo last 3 undos (i.e. re-delete those 3 lines)

nvi style multi undo:

dddddd      -- delete the next 3 lines as 3 separate changes (3dj would be a single change)
u           -- undo last change (undelete last line)
^R^R        -- redo last 2 undos (i.e. undelete the previous 2 lines)

vi style undo:
dddddd      -- delete the next 3 lines as 3 separate changes (3dj would be a single change)
u           -- undo last change (undelete last line)
u           -- redo last undo (redelete last line)
(i.e. vi style undo just toggles between undoing the last change and undoing the last undo, and ^R is subverted to allow multiple undos/redos in vim/nvi)

I've been using the vim style multi-undo for years, but have been wanting to adjust myself to the nvi style for ages. The only problem is, if I have to undo then do redo's, I prefer using '.' instead of ^R, haha! It seems to me, that technically nether vim using ^R for redo, nor nvi extending . for redo is purely vi compatible; but I personally feel extending . for the purpose, rather then clobbering ^R is a more logical solution. Although I can't really think of a reason to use classic vi's ^R instead of ^L on a modern terminal (read CRT or emualtor based terminal). The nvi style of multi-undo/redo also makes more sense to me, although most software users have been heavily conditioned by most programs to expect ^Z to undo the previous change up until the programs built in limit on undos.

Vim provides extensive mapping, syntax highlighting, build system integrations, and buffer options compared to traditional vi's, but I don't actually depend on it. Although most programmers I know, will cut your head clean off if you don't give them syntax highlighting (lol), I don't use Syntax highlighting.... I used to like using the astronaut and elflord colour schemes in vim; because I found them good for visually dumping syntax into my head. I.e. you can quickly tell what is what kind of syntactical element. But ever since I had to spend hours hashing out new PHP and SQL in a colourless remote terminal, I started to find the syntax highlighting to be distracting :\. The only times I actually use colours in vim anymore, are for directory listings, with other peoples HTML, and in my .vimrc file; when coding, I use no syntax highlighting what so ever.

If you can look at the horse-shit filled tangles of (broken) HTML, (idiotic) SQL, (kindergartener like) PHP, and occasional JS that are so horribly intermixed and mutilated, that some past [SAS] webmasters dared to call it code, and come to reading it without syntax highlighting.... you can live without syntax highlighting anywhere!!!

Quote of the Day

Better a witty fool than a foolish wit.
-- Feste the clown, Twelfth Night, Act I, Scene 5, William Shakespeare

Never read Twelfth Night, but the quote caught my eye lol.

Sunday, February 1, 2009

Wouldn't it be wonderfull... if I could actually get work done during the day, and not have to be some damn badgered that it takes hours to do what should be done in minutes? And I was hoping to be able to shave tonight, without losing nearly an hours worth of work :\

WTF was I thinking? *SIGH* my mother enjoys driving me fucking nuts with pestering and patronizing me about getting up in the morning / staying up all night. BUT FOR FUCK SAKE!!!! She is the one incrementing my fucking work load by hours at a fucking time!!! I really wish there was a way, to make people see things "as they are", without either having to break their neck or emotionally-cut them in the process, because I'm not fond of either method lol.

Joy, the slave gets called for more interuptions.... (Bitch)

Found an old picture

Free Image Hosting at

I remember one Vim master, who jokingly called the old vim-tips page a list of vim worst practices, hahaha! Never found much of interst there though.
Sometimes I wonder.... if there is actually a human being left alive, that knows their ass from a hole in the ground... when it comes to creating robust software.

Dogs take everything!

This morning, Ma woke me up laughing.... Willow had managed to steal my entire quilt, and rapped herself up in it: leaving me with just the top sheet lol. So I patted the dog on her head, and asked if I could have some of the covers <_<.

Willow looked at me, like I had corn cobs coming out of my ears! SO I stole the cover back, and went back to sleep chuckling >_>.

Mrs S. was right, if you want the best spot in the house, ya gotta move the dog!