Sunday, August 30, 2009

Ah, I'm in a rather happy mood. I got to spend some time playing SWAT 4 and my laptops updates are finally done. Dinner was a mess of beans with ham fresh from the crock pot, and bread out the oven; can't ask for more? To top it all off, You Can't Take It With You was on tonight, which is one of my very favourite films.


Plus, I should be getting some code time tonight :-D

Dreams of fishes, rehashes, and mutts

At first I was dreaming that I was helping my mother with this odd job, this woman was going out and we were staying there to to watch the fishes or something. She had several brown paper bags full of what appeared to be tropical fish. Several died and I do remember that one of the brown paper bags had split and the bottom of it had turned black, almost like a mud pie with sea weed mixed in. I tried to convince the woman to use some of her plasic containers as impromptou fish tanks in order to keep them alive, "Because I had kept fishes for years" and knew a lot. There was also a commercial for a children show that had some reference to Stargate, and what looked like a modernized & rebooted Goof Troop.

When we headed out, I was talking with some people who were telling me that I would be helping with some blasting tomorrow, the dynamite kind. In heading towards the car, I noticed that ma had fallen behind and was no where to be seen, looking over my shoulder it appeared as if we had just come out of the bank, so I figured that maybe she had went back inside for something. When I got to the car, I found an old man sitting backwards in my seat, smoking a cigarette, and claming to be "Me" from the future, oi.

When I went inside again, I found myself in Publix (supermarket). Ma was at the checkout and I stopped over at the magazine counter, noting that a number of (Aliens) comics from my youth were apparently in reprint, before rejoining my mother. After heading out, I found myself looking around a warehouse, where someone ended up being in the line of fire of a falling stack of beer bottle boxes, which I went to dig (the human) out of the heap

Later on I was dreaming we were in a KBToys that was just about to go out of business (I think they did, last year lol), and Ma was shuffling though Star Wars stuff in search of collectibles. When we were going out, I noticed a black dog run out the door; instead of following ma out, I went back in and asked this woman I had seen with her child, if they had a black dog, because I just saw one run outside. When she came out to look, we saw several other strays down the parking lot but not that one, then I pointed off to the right and bingo, that was the dog! In trying to help her pick it up, I noticed that the mangy thing looked as if it had been bitten on the back, and it was very bity to say the least. I think I rolled down my sleeves to use as padding, then finally picked up the animal and handed it back to her.


Strangeness anyone?

Saturday, August 29, 2009

I had a cray dream. I dreamt that we had a balcony, something I ain't seen in over a decade. Ma ordered me to clean it, but when I approached the one side I noticed that the floor was separating from one of the ends. Having to stick her nose in everything without listening, of course she had to come out and stand on the other part.

Once it was apparent that I wouldn't be getting across, I told her to take my hand and wait for me to kick off, in case I went slidin' that idea didn't go over. And in the end of course, I landed on my roamp roast from a good 15-17ft drop lol. That was about the time the dogs barkin' woke me up

Friday, August 28, 2009

I need to begin planning things for the coming weekend, so far the highlights:

helping with some of the routine work on the website, that's been waiting for a weekend off lol.

Study several web frame works, as an issue of both business and pleasure.

Begin a deeper evaluation of CMake; which would likely make life easier.


and most importantly.... play lots of RvS and S4 !



http://clubjuggler.livejournal.com/138364.html

Ironic that the best introduction to CMake is a LiveJournal entry, hehehehe!
It's been a long and tiresome day.

Played some Urban Terror to pass the time, hoping that SWAT 4 would pick up some steam. I found a funny server running a Simpsons inspired CTF map. After getting tired of the "LMG Battleship" approach of going for the flag, and timing between the waves; I took up a picket position with an eye on the enemies secondary advance-point to our flag. As such, I was the only mook using solid cover, but hey, I was head huntin' them blues ;-)


Swapped my Minimi and flak jacket for a helmet and a G36, tap-tap at the enemies centre mass and follow up until clipin' their heads resulted in fatal damages. Whenever necessary, I'd just move around cover in order to fire at the enemies primary and thirdary avenues of advance; leaving my sector to the run & gunners on my own team, and an occasional smoke grenade hehe.


Once I closed the game, I noticed that Duke, COT, and Filter had finally gathered, so I made ready to join the fray. I find the wolf in an ant-hill a good way to let off steam, but it's ever so more relaxing to have a decent game with friends, especially SAS style games!


Shortly after Duke called it a night, it was time for me to make a beeline to dinner, exercising plan A. I stuffed my face with my usual zeal—I've always been an expedient eater lol. The Undefeated was on tonight, which I enjoyed. It's especially nice to see, after so many years of brother against brother, ex union and confederate troops can still get along (and brawl) like brothers! Something that sadly, was quite a bit rarer in the post war years :/. Then again, between the pissing contest, Sherman, and the carpetbaggers, who can blame people for not getting along?



I also got to enjoy a nice 10~15 minute nap, and all this time, my laptop has been compiling updates; practically since I got home lool.

You can tell how mean I am....

When we got home from work, Willow cried when I said "No" to the idea of going out for a walk, and has been sitting at my feet ever since.... I finally got up and she chased me down. Just write sucker across my face, I had to take her for a walk :-/.

*sigh*

Wednesday, August 26, 2009

It's been about 4 hours since I went to bed, I'm really not sure how long I slept for, was tossing and turning quite a lot. Sun doesn't seem to be up yet, but soon. Can't fully remember what I was dreaming, but I would say "Turbulent" would likely apply.

No idea how I'm going to get back to sleep again, before it's time to wake up for work... and I usually get woken up a few times before hand on Wednesdays!
As soon as CLN finishes compiling, I'm off to bed. Tomorrows work (oi), and I need to start planning my schedule for what things I need to work on over the weekend...

For some reason, no matter what I feel like, I am virtually working all the time... lol.
I'm tired, very tired. There's an Italian word that I would use to describe how I feel, but I don't know how its spelled, and expressing it in English is a little bit tricky. The concept though, extreme exhaustion. Being woken out of a sound sleep didn't help things very much either!

Spent some of the day playing SWAT 4, but not really in a stable frame of mind.

Ahh crud, "Urgo" in Stargate SG-1 has me creaving pecan pie.... lol. Unfortunantely the only available thing is butter pecan ice cream, alas it'll have to hit the spot.



Also have been working on updating my laptop, the funky issues with some ports configure scripts failing to locate libltdl were resolved by installing guile and libgphoto2 from packages. Ha, this episode is cracking me up. C++ bindings to the usual GNU libraries are compiling atm. Normally I try to update things every month or so, but lately I haven't been using my laptop much, so obviously I ain't been able to update anything.


Used some of the compile time, to play RvS eariler. I expected that I would be pretty rusty, since I haven't played RvS in maybe 3 or 4 months, if not longer. Yet it seems that all the SWAT 4 action has gotten me even more effective at RvS, hehehe. Maybe I might pop in more often over the coming weeks? Hmm, tempting!


Why am I feeling scatterbrained?

Tuesday, August 25, 2009

Been searching my journal to try and find when was my 'last' vacation, which was a working vacation. Last time I actually got even that much of a vacation, I kept a blog file: http://sas-spidey01.livejournal.com/73102.html as memory serves, it was basically 3 days of antangonistic-hell. It's been so long, I don't remember if that was the year I had to unload a packed-to-the-freaking-brime-and-beyond car in around a 110 degree (~43 Celsius) heat or not... but at least I know, soon it'll be at least 2 years since my last vacation of any kind. I don't remember what the last time I had a ***real*** vacation was, only that it was a long time before I began journaling.


In searching through my journal for the date, I've found numerous links that have brought back memories:


2007-06-09, Ich bin muede (en: I am tired)
2007-06-11, A Troopers Call
2007-07-09, A little BattleTech
2007-07-19, The day that Macy died
2007-07-30, Techno Nightmares (of Screamers)
2007-08-02, How old am I? (an old post about my age in SAS, including a list of people I saw in make Rct; outa update that someday in a new post)
2007-08-12, A ROLF moment
2007-08-12, Right or Wrong? (dark memory)
2007-08-23, Bell Tower Sniper
2007-08-23, A collection of jokes
2007-08-26, Relating songs to life
2007-09-16, Raged Spiders (massive fiasco)
2007-09-26, I like (a new/profane phrase)
I'm just totally wiped out right now. I've been going since Friday with few breaks beyond food/chores, and now it's Tuesday!


The more I try to figure out how to get free of this place, the more spanners people throw in the works. Virtually all calculations with Operation Redeemer are looking at +1 year, with the potentiality to get much worse, courtesy of family.

I've done just about everything to get the operating environment I want, short of resigning from the few games I still play - life would rock if I could setup Xen and have full 3D hardware access in a Win32 guest lol. The more time I spend with Windows, the more and more need I feel surrounded by bogus software. On unix machines, I've never had such want for _decent_ software!


I've also spent most of the day/night working on a small project, which reminds me of why I utterly hate Content Management Systems—they usually get in my way. If it wasn't for the CMS specific issues chopping up, I'd probably be done by now. Debugging further isn't something i have strength for right now, it's been 5 languages and 8 to 10 hours of work today. Most of it's also been spent editing via a slow SSH session, using a mixture of vi and vim.



With how many years it's been since I've had a decent vacation, I'm starting to wonder what the last time was that I had *any vacation at all*

Sunday, August 23, 2009

Hilarious session error with rsync/ssh

For the sake of experimenting, I installed Debian Lenny into VirtualBox on the Winsucks machine, being lazy I used the network installation ISO hehe.

One of the things I dislike about Linux distros, is they don't seem to take kindly to a leading capitol letter in usernames for some reason. Debian's installer also (logically) set my uid/gid to 1000. Rather then map between uid/gid, I merely use the same values for my account on all machines. Since BSD could care less, I also use 'Terry' instead of 'terry' when possible ^_^.


While setting up for the test, I also changed my accounts uid/gid; oh boy is the vipw program talkative. In doing that, and then running the test from a shell w/o logging out and back in again first, resulting in this funny error message:

terry@virtuous:~$ rsync -arz --links --safe-links --no-D -tx -e 'ssh -l Terry' --rsync-path='cd /srv/rsync/conf && /usr/local/bin/rsync' -n  --stats Terry@vectra::home /home/Terry
You don't exist, go away!
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
rsync error: error in rsync protocol data stream (code 12) at io.c(635) [receiver=3.0.3]
terry@virtuous:~$

Making sure my sessions uid/gid are correct with the system databases however, fixes that lol.




Currently, I've setup VirtualBox to boot Debian into console mode and run it 'headless' with ssh+x11 forwarding. Should we say, I'm more then comfortable using a unix shell, ;-).

Saturday, August 22, 2009

Ugh, crazy dreams! The first round, The first set I guess, could be described as being stuck in a Twisted Metal competition. Followed by being int he shoes of a Bart Simpson that died and 'went to hell' kind of like episode of the Simpsons. After that I woke up just a bit after 0830 local, so I went back to bed. Then imagine being trapped in a house with a bunch of whiny losers! Having to climb a chair, stick your head up in the attic, and climb up to search for supplies; convenient as some form of military sirmish outside resulting in everyone getting pumped full of holes over mistaken identity. After calling down "is everyone dead yet?", as somehow expected it was only a moment until bodies started lifting themselves zombie-like off the floor and trying to climb up. You gotta hate it when the shotgun shells are replaced by bb's!

Honestly, the only time my dreams worry me is if they make logical sense, instead of being strange and weird.

Friday, August 21, 2009

Writer's Block: Good Days and Bad Days

What is your least favorite day of the week? And your favorite?
Live Journals Writer's Block


least favorite: Thursday
Of all the days of the week, Thursdays have consistently been some of the worst days of my life. If I added up all the times at work that my brain has drawn a mental line in the proverbial sand, that if I've got to take anymore crap... it's time to walk home—there would be many Thursdays in the equation.
favorite: Mondays
I often have seasons where I'm off work on a Monday, either every other week or every week ;). As such, I like it: because I can take it easy on Saturday or Sunday, and finish up things on Monday before I've got to go back to work lol.

Thoughts on how IM software can be implemented

Pidgin is implemented in the fairly typical way, libpurple provides the support for the network protocols and a 'chunk' of plugin crap for everybody. Pidgin and Finch provide graphical and textual user interfaces around it. I don't think I really want to know more about the relationship plugins have with the purple library and their respective UIs then I already do. Although I've never used it, I reckon that InstantBird would be designed like Pidgin, but with a Mozilla Firefoxian XULRunner UI layer in place of the GTK/GNT UIs of Pidgin/Finch.

That kind of implementation for a program like Pidgin is basically Computer Science 101, using XULRunner may be considered CS 102. Pidgins approach to solving the problem is about as standard as putting butter on your toast in the morning. Early today, I was thinking about how I would implement an Instant Messenger program; let's just say I've used many and hate them all :-P.



The first thing that can to mind is splitting the program in half: a multiplexing daemon and a chat client.



The daemon would take care of the per-protocol issues, likely using libpurple (as its so damn popular 8=) or a plugin architecture built around per-protocol libraries (libmsn, libgfire, etc). The client would provide the part of users actually see, and communicate with the daemon over network sockets to perform its task. You would launch the daemon and it would log you into the various networks, then you would launch the chat client and connect to the daemon. About 10 minutes later I figured it would likely be worth trying to implement the server daemon to chat client communication, by making the daemon expose its interface to the client as an XMPP server; instead of rolling my own protocol to do the same type of job. I am personally not partial to XMPPs functioning, but find it exceptionally useful in practice.



What side effects would my decision have?


A.) The daemon (your accounts logged in) could run on a different machine then your chat client (chat windows). This would make it trivial for example, to run the daemon on my file server and connect to it from my other computers - without logging out of AIM, MSN, blah blah. It would also be trivial to allow tunneling the two programs communication over an arbitrary program, like SSH, which would provide local-encryption of traffic between client and daemon ;)

B.) Because of the client / server design, it would be possible to access those IM networks from multiple locations at once, even if the protocol doesn't support this. This is because the server daemon is logged in, not your chat client, hehe. Meaning that the daemon would have to implement the concept of multiple clients connected, which would be fairly easy (thinking of how this might be done if daemon-client commu was XMPP, really made me smile when I realized that XMPP supports something close enough to this).


C.) Because the client has no concept of a network protocol beyond what it needs to talk with the daemon (that does the real network leg work for various protocols), it has no physical connection with the implementation of code that does.



A and B would create an Instant Messenger program like Pidgin, that is to IM what TMux and GNU Screen are to terminals! Point C would just be awesome in my opinion. It would evade creating something like the UI related fields of PurplePluginInfo's and make installation and maintenance more independent then any other IM program I've seen.




To me, the daemon+client thing it is just the most obvious way of doing the job.... lol. Ahh, I wish I had the time to write it!

Wednesday, August 19, 2009

It's getting to be that time, that time frame where I know I need to be getting to sleep... yet, I don't feel like sleeping. I'm also to tired to do much of anything else :-/. I don't have to be up early for work tomorrow, unlike today'ish; but I instead have to work most of the day!


What I really need is a vacation. Time away from it all, with not a care in the world.... but then again, I would probably still be miserable lol.





I'm so sick of watching time pass by.

What a day at crockery design, inc.

Nothing like a late night to remind you that you're alone, nothing like waking up in the morning for work; to remind you that your more of an asset then a person in your families bottom line.


I managed to survive work without to much damage, even got to be out in the rain for a bit after getting home (which I relish). Most of the afternoon was spent, well honestly I don't remember much of it.

I did however come up with a possible solution to a small "Problem" I have with getting cwRsync to obey. Basically, I can't make the S.O.B. contact the server (vectra) from sal1600. The idea is, instead of running rsync on sal1600 (client) over SSH to vectra (server), to do the usual one-shot daemon over encryption trick. Instead, make a script that causes sal1600 to launch a one-shot rsync daemon, and then to "phone home" to the server and cause it to trigger the rsync from server to client. The logic of fixing things under windows, the client doesn't work, so make the client a server that tells the server to use a client like it was a server... ok, that's just fucked up. I think however, with a little trickery to make it work that way via SSH; it will probably solve the problem. With much less pain then doing some kind of diff and patch crazyiness in place of rsync.



GCHQ's also decided to re-elevate the priority on my fixing the mighty page. The basic problem, I'm a WO1 assigned to the "Special Operations Wing", which belongs between the Commissioned Officers and the Senior Non-Commissioned Officers groups. Instead, I (and now Timbo, since his becoming a fellow WO1) was displaying at the end of the page, under the Vets list. It's been that way ever since I 'repaired' a majority banaided and brain damaged bit of code that is integral to things working smoothly. Since I consider such a matter of 'personal vanity', I've never had a problem with it being broken. But I reckon, those on high are right, it doesn't look good if a high rank is listed below the rankless, lol.


In studying what makes the whole thing tick, I'm not sure whether or not it is just a huge crock of shit or a clever attempt at trying to produce faster code. Either way, if I ever meet the original author, I'll punch the fuckers lights out. Then I'll give each of my fellow admins a chance ^_^. While the initial problem was painfully obvious, finding 'why' it happens was not quite so simple. When I found the next clue, I got curious and began to concentrate further until the light bulb turned on.


When the light bulb turned on, I decided either the original programmer must've tried to tune every ounce of speed out of the algorithm—working under the assumption that every instruction is equal to the sum of their quantity, rather then their cost times their quantity... or it was put together by some asshat who expected it to result in a "Write once, run always, read never" body of code with no concept of software engineering.


Either way, if I ever meet the person, they will loose teeth if we discuses software-stuff.



On the upside, out of all of todays stuff, I did finally get some SWAT action in... with all the work I've been doing lately, it was probably 3 days since I got a decent game. Or should we say, around 15GB of encrypted network traffic to shuffle to and frow, ain't fast and don't mix well with games.

Right now though, most everything is done; whew.

Sunday, August 16, 2009

After more then 8 billion bytes of compressed data has been transfered, I now have *all* of my personal files under one hard disk; and am hoping it doesn't HCF before I'm done with this lol.

Depressingly, this and a few things in my room, really is the sum of my existence here, isn't it? *sigh* maybe this wasn't such a good idea after all.


Everything is archived in the cold storage partition, once it is copied over to an NTFS partition (as FAT32 is havoc on unix file permissions), I'll begin sorting, colating, and cleansing data. Very annoyingly hulu.com is not functioning correctly at the moment, so I've a bit of a battle for something to watch as well!


Once I've got all the data setup, it'll be time to setup information distribution between each box... that's gonna be tomorrow I am sure, considering the time of night.

Thinking and ramlbing out loud

Because of the games box, any solution needs to be efficient on the network; and only maintain an interesting connection on demand. While the laptop could (and has) put up with NFS/CIFS type solutions, I don't want it clogging up bandwidth, the desktop is a bad enough piece of shit as it is >_>.

The concept that I was thinking of last year, was using a mixture of CVS and RSYNC to branch and version important files on a host specific basis, although important stuff like my $ENV and vimrc files are made highly-portable, not everything else is, hence the value of a VCS/SCMS. Whilist all the mumbo jumbo about the algoritm used by rsync would be used for mirroring file sets between boxen at login/logout.


I reckon now is a great time to abuse it into working.


Since I began initial testing, I have looong since moved to using Git for all my active projects instead of CVS and SVN. However the master source of everything still is Dixie, that is my laptop! While things have gotten fairly cramped on the desktop, mostly due to development files being shoe-horned into Windows XP; my laptop has plenty of free space, despite having A LOT of software and a plethora of development files.

My file server is still holding quiet nicely:

To days date is: Sun Aug 16 21:34:08 UTC 2009
Terry@vectra$ df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/wd0a      147M   41.8M   98.1M    30%    /
/dev/wd0h      393M   46.0M    327M    12%    /home
/dev/wd0d     98.3M    670K   92.7M     1%    /tmp
/dev/wd0g      6.7G    995M    5.4G    15%    /usr
/dev/wd0e      148M   40.6M   99.7M    29%    /var
/dev/wd1a     11.8G    275M   10.9G     2%    /usr/local
/dev/wd1d     44.3G   14.8G   27.3G    35%    /srv

wd0 is an old Maxtor 8GB EIDE drive, wd1 is an 80GB EIDE drive. I also have a 40GB disk somewhere with the systems original Windows XP Home install somewhere.

wd1a was used to off load installed software to a second drive; basically a way of moving /usr/local off the original /usr file system. wd1d was created primarily as a sotrage depot for use with NFS/Samba.

In lacking a suitable place to dump crap, and not having a notion to put it under /var; I created a /srv directory to hold data for services. As such, it basically holds my code repositories, backups, and webserver files. It would be easy to rebuild the partitioning on wd1, or just create a new bsd partition:

# disklabel -p g wd1
# Inside MBR partition 3: type A6 start 63 size 156234897
# /dev/rwd1c:
type: ESDI
disk: ESDI/IDE disk
label: IC35L080AVVA07-0
flags:
bytes/sector: 512
sectors/track: 63
tracks/cylinder: 16
sectors/cylinder: 1008
cylinders: 16383
total bytes: 74.5G
rpm: 3600
interleave: 1
trackskew: 0
cylinderskew: 0
headswitch: 0           # microseconds
track-to-track seek: 0  # microseconds
drivedata: 0

16 partitions:
#                size           offset  fstype [fsize bsize  cpg]
  a:            12.0G             0.0G  4.2BSD   2048 16384  328
  c:            74.5G             0.0G  unused
  d:            45.0G            12.0G  4.2BSD   2048 16384  328
#


'c' means the entire disk, meaning there is roughly 17GB held in reserve.


I think I will begin cleaning up stale files in /srv, and moving unimportants to the desktop, which has around 40-50GB of free space for cold-storage.



tbc
I'm feeling one of those moods best marked as, "some people train cockroaches, I write things" in nature.

I think if I don't find something to do right now, pretty soon I'm going to go stircrazy1. I'm really not in the mood for games, I know it too well... I reckon the best thing atm is continue to kick my operating environment into a higher order of work flow.


Lately a lot of things have been passing through my mind, until the marbles resemble scrambled eggs better then brain cells; and as much as I enjoy thinking, sometimes one can overthink. I'm all thunk out at this point, I can't take anymore. As such, I really need something to focus on right now.... which is problematic with being driven crackers in this place at every twist and turn :-/.


Since I've been spending a lot more time on my desktop lately then my laptop (I miss the late nights with my darling Dixie :'(, but SAL1600 compiles faster). This again puts me in the old boat - sharing data between systems; as well as having to deal with shuffling between tools. After 3 weeks of using Windows XP for development tasks, I've learned a few new curse words and how to use the childish cmd.exe for automata needs.


Basically the problem at hand is thus:

  1. operate on the 'same' fundamental data set across all 'working' environments
  2. be capable of going mobile (laptop), and continue to work even without access to ANY network
  3. make the usage of backup and version control packages more uniform
  4. further refine the Standard Operating Environment (SOE) to my ever evolving needs



The biggest problem of them all, is Windows XPs user interface really kicks a huge freaking battle-ship sized hole in my ideal work flow.... lol. Alas, at least I can always build up tools as I go. GOD bless Perl, Python, and the rest ;). In the end, I hope to likely be using rxvt/rxvt+tpsh or console2+tpsh for my main user environment; rather then console2+cmd.exe and rxvt+screen+zsh.




1 In reading further on this issue, I can't help but wonder if the way life has been, has influenced why I so often take pleasure in being out in rainy weather lol.

offline rsycn - rdiff

a useful link, read again later: http://users.softlab.ntua.gr/~ttsiod/Offline-rsync.html

Saturday, August 15, 2009

Several hours of testing has shown where the problem lays in regards to the kinks in tpsh's basic control flow.... a strict ficken implementation lol.

Without a few extra ';' between language elements, the parser doesn't see the keywords as keywords, and instead they get fed into the code generator as arguments to the preceding keyword. Testing the same test code against the version of bash with MSYS1.0, their shell doesn't give a hoot, nor should any other bourne-style shell I have access to. So in a way, you could say my code took a stricter interpretation of the sh script syntax, then what is required (and desired).

Somehow this actually makes me feel better, lol.



Also something that needs working on, is dealing with crappy old-style paths like CP/M, DOS, and Windows NT use.

$ P:/Editors/Vim/vim-personal/gvim.exe
tpsh: command not found: P:/Editors/Vim/vim-personal/gvim.exe at S:\Visual Studio 2008\Projects\tpsh-dir\tpsh line 883.


$ cd P:

$ P:/Editors/Vim/vim-personal/gvim.exe
tpsh: command not found: P:/Editors/Vim/vim-personal/gvim.exe at S:\Visual Studio 2008\Projects\tpsh-dir\tpsh line 883.


$ /Editors/Vim/vim-personal/gvim.exe

$

It seems to have a bit of an issue about drive letters.


In more detail, the search_path() function that converts an external command name into the direct path to it (done in order to avoid a dependency on the systems shell, e.g. /bin/sh or %COMSPEC%), fails to find a valid file when the drive-letter: notation is used. Since the function returns undef to indicate program not found, simply put search_path() needs fixing. The change should be trivial though.

Thursday, August 13, 2009

I managed to get some coding in today, maybe that's why I'm feeling a bit better. On the down side though, my cable connection seems to be running half as fast as normal lately, games were nearly unplayable for much of this afternoon for some reason.

I think my shells codegen branch has lived to the virtual extent of it's usefulness. Today I sorted a few minor things and enabled nested control flow for statements using the 'then' and 'do' keywords, e.g. control flow statements can contain control flow statements as well as commands within their block. There are still a few kinks to iron out but the most important are done; I'm currently uncertain if the remaining problem lays in the code generation phase or somewhere further up the processing chain, but I expect it lays in generating the perl code.

Basic conditional flow and looping is ready, which was the primary purpose of this branch of development: to explore implementing the shells scripting language by dynamically generating Perl code for it, as well as replacing the static command sequence executor by generating it as well.


Oddly, the main things that need doing in the short-term are actually script related, rather then interactive. But then again, tpsh has always been meant for interactive usage first and support for batch jobs as a secondary concern. Main points of lacking at the moment, is a concept of "exit status", in Bourne shell parlance the $? variable isn't used for a hill of beans yet. Likewise all $variable expansion is done on the fly during tokenization, so:

for X in 1 2 3; do echo $X; done

The value of $x in the loop body would be expanded before the code is evaluated, resulting in the following:

for X in 1 2 3; do echo; done

because X is not defined at the time the statements are being parsed, the expansion is "".



I haven't decided how this will be solved yet. Solving it however, is well outside the scope of the codegen branch. I would say the only thing left to do in the branch, is implement the break num and continue num to enable a way out of the while/until loops. The former will take a bit more testing but the latter, is not likely to be to hard. Perl supports a robust way of breaking out of loops that can be easily used. Once that stuff is done, I'll likely merge the branch into master and move on to other tasks.


Since I've been stuck working more often on the NT machine, development of tpsh gets a slightly higher priority lol.

Pondering: should I ever go back (regularly)?

I used to spend a lot of time at the PC-BSD tech support forums (forums.pcbsd.org). As some should know, it is not one of my 'favorite' projects for numerous reasons.

I haven't been active there in I guess, nearly a year now. Should we say, shuffling though like 50 threads a day and being one of the few paying attention got quiet old, when I've so much else to worry about after work. Ending up as little more then a spam-patrol man wasn't very interesting either. Although things have been realitively docile since FreeBSD opened their own forum, I hang my hat over at DaemonForums.org - a place that's worth visiting.

One of the alarming things about forums.pcbsd.org even while I am inactive, I still have several orders of magnitude more posts then everyone else... Man I used to check that forum several times a day. At one point, I may have been the last skilled snook left, I hope that has changed....
Just woke up about 15 minutes ago, thought I would jot down what I was dreaming before I fall asleep and it washes away. Unfortunately between having to admin our servers and bumping into a few people on IRC, I ain't so half a sleep any more lol.


I was dreaming that we were visiting a friend of my mothers, when her son Alex and his wife dropped in. I went off to get dressed. The next thing I can remember is walking around Walmart with my brother, we went to get a drink; juice in his case, water in mine. When the jackass tried walking out the door, I reminded him that we had to pay first <_<. I then asked my bro to spot me a dollar, since I forgot my wallet; remembering that it is in its usual place (H.R.P.s purse lol) Almost everyone linked up at the store front, we went out and started to pile into the car; Ma, her friend, my brother, and his ex wife; and to much crap that there wasn't room for me. I was told to catch a ride with Alex and his wife, and pointed in the direction of the car to wait by, so went towards it.

Only thing is, by the time I've crossed the parking lot, it doesn't seem to be there anymore :/. So I go back inside, only to a few minutes later find that the store has become a Publix instead; so I go back outside and everything has changed: different lot and from night to day. I then see the aforementioned car coming in, and flag it down, and then we all went inside and joined everyone—standing in line at a Chinese restaurant. More people around, including some additional parts of my family.

We stood in line, and then there was something involving in egg plant, but not quiet an eggplant; imagine an Italian eggplant that is smaller and covered in an almost cabbage or spinach like wrapper :-/. Chinese eggplant is smaller, but not like that, in so far as I've ever encountered it before...



Fudge, between this and IRC, I'm wide awake now lol.

Wednesday, August 12, 2009

Writer's Block: Proven by Science

Do you believe everything has a scientific explanation?

Submitted By mesnyder_92
Live Journals Writer's Block

I believe that virtually everything has some logical explanation if you are willing to look long and hard enough to find it, but you just might have to be Dutch in order to understand it.


(and no, if you don't get it, I'm not going to explain it lol)
sigh, woke up a bit early compared to normal, and still about an hour left until it is time to leave for work :-/

I hate this

It's starting to get around that time, when I know it's time to go to bed... I don't feel like going to bed, because I know it'll be a while before I fall asleep, and just a bother period. Even worse, there's nothing left to do that I can get done without being up all night, and I'm to tired for that.


It's some what alarming for me, that I really haven't been writing much code this past week; I'm usually happy when writing lots of code or trying to evade misery for a spell. Either way, it usually works out more positively.


Projects of current interest, namely are furthering the development of my command line interpreter (shell) and experiementing with OGRE. There are also several projects on the fore and back burners (comparatively), but these two are the most interesting right now. And I'm to tired to code right now :'(.


I'm not fairing the nights very well lately, things are getting worse in my opinion. Days, eh; hard to tell sometimes. I really need a very long rest, with nothing to trouble me, but the odds of seeing that, oh... are probably closer to the odds of Earth getting slammed by a lethal-sized asteroid in my life time. For some strange and sick reason, an old expression comes to mind, and I spit on it. There just seems to be no relent, from the way things are here; and I struggle to find logic in it. Also coming to mind, is a very old form of torture: have a man dig a hole, them fill it back up, repeating it endlessly.




Hmm, I'll never understand how I can write a journal entry, and see as I type: in my mind little wikipedia [1] like references to memories in my brain :-/. Maybe I just spend to damn much around computers...



time to crash to pillow, be it for better or worse.

Tuesday, August 11, 2009

I knew it was going to be a bad day

When we got to work last Wednesday, the person we work for wanted Ma to take some clohs home and iron them; this time ma decided to use their iron because it is supposed to work much better.

As such, I was ordered to put the iron in the basket in a way that it wouldn't leak over the cloths; easy enough, although what kind of asshole wouldn't drain the thing first 8=).


Ma has left it sitting there until today, Tuesday.

Guess what, the iron leaked all over the cloths ^_^.


In response to her trying to pawn the blame off on me, I told her that no one told her to leave the damn iron in there the whole time.



and her technical incompetent still continues to annoy me. I don't have a problem with people that don't know better per say, but I do dislike *leeches and assholes*.

Monday, August 10, 2009

crazy dreams :/.

Nearly caught on a rendezvous (before any fun), and had to fast-talk myself out of trouble; one virtue of dream-land, your powers of persuasion can easily approach the level of a Jedi-mind trick :-). Later on, I dreamt of being betrayed by a giant insect like 'mech, that actually looked like a modern rendition of an old Power Rangers villain from the 1st or 2nd generation lol. Ahh, good thing it is easy to dream oneself a cache of rockets hehe. Only later to be ambushed by a squadron of Imperial Storm Troopers while traveling, and afterwards trying to sneak past their regular army troops with a friend; before being cut off and chased around the city by hordes of the flood before making an escape to medical facilities to regroup; and then being involved in a car chase...


I think maybe, I am playing to many action games on the PC of late lol.
Been playing more of Quake 4, and enjoying the storm of heavy strogg; a company of tactical transfers backed up with a platoon of Iron Maiden, Light Tank, and Gladiator units for all intents and purposes.

I've noticed that Quake 4, kind of like DooM of old has a "Flinch" like pain chance for different kinds of enemies. You hit them, they feel "Pain", and are momentarily stunned; typically causing a pause in their movement and potentionally curbing their attack rate.

It has made fighting the Light Tank much easier actually, keep just outside punching distance but to close for its other weapons to be practical, and hose the thing with the Hyperblaster until it goes down. Especially since light tanks in Q4 love to try close in and use their brute force, it is a very effective technique when terrain permits; IMHO someone must've been thinking/watching Judge Dredd when they designed that Strogg. Also during the network node segment, I was pinned to the wall by a light tank.... but it went down before I did, due to pouring massive amounts of plasma into it lol.

Those Iron Maidens however seem to have a much lower pain chance, the lighting gun and hyperblaster are useful simply for their fire rate, although I wouldn't suggest bringing the lighting gun to bear versus more then one Iron Maiden lol. The hyperblasters use is purely due to damage rate, it won't cause enough pain to prevent them from shoving a rocket down your throat. The best weapon to deal with those things seems to be the trusty old rocket launcher, fire a salvo rapid fire and bingo—its lights out. Up close and personal, the shotgun also seems to be very effective when combined with double taps hehe.


Generally I'm not a fan of the Mega-hero with at least ten guns, more ammo then a dump truck can carry, and hordes of enemies that can each suck up as much fire as an Abrams school of game design, but Quake 4 has a nice balance. Most threats can be easily neutralized with suitable kit, Iron Maiden, Light Tank, and Gunners are not hard to bring down; a Gladiator on the other hand will warrant a big freaking gun! The real danger comes with numbers and terrain, plus like most games in the "Classic" style of level design: you will get loaded up with supplies before the real big nasty fights happen. Of course, this is almost always so close to the build-up to a pulse pounding, kick a hole in the wall, and pass the shotgun shells kind of brawl , that it ruins the suspense. Some games however can keep that suspense factor going, by shaking things up, so you really won't know what is coming up, unless you play the game a lot or have a good memory (I do) for such things. I actually liked how in F.E.A.R. the replica troops that make up most of the games enemies are very easy to neutralize, almost realistically so; and there are only a few threats that are "Heavy" enough to make you nervous.


That being said though, a boss fight should always be expected to be worth a speed run and challenge you to complete it successfully, hehehe.

Writer's Block: Unlikely Benefactor

Congratulations! You won a million dollars but you have to give it all away. How will you distribute the money?
Live Journals Writer's Block


Hmm, if I had to give away a million dollars... the first thing that comes to my mind is the charity promoted by vim: ICCF Holland - helping children in Uganda. Vi Improved has changed the way I work and live for the better, like no other piece of software has... and as such, I've always felt that donating a large sum to said charity would be a good "Thank you", if I ever struck it rich. The second thought that comes to mind is papering the SAS 22nd Elite Virtual Regiment with enough cash to last a decade of server hosting. For all the time I have spent around [SAS}, I have never donated money; if I had the steady income to spare, I truly would. As such, they have to make due with my occasionally work-until-need-to-be-stopped-or-pass-out-cold nature... lol.

Beyond that, around 10-20% of it would likely be donated to various churches (of several denominations). Whatever's left after that, would likely be spent for "Good deeds" so to speak: helping people that I know could use some serious assistance (and won't piss it away).


Then again, these are things I would want to do anyway, if I ever became a multi-millionaire; but if I was filthy stinking rich, I would also make sure to become properly invested and a couple of other things for myself along the way lol.

Saturday, August 8, 2009

The Man Who Came To Dinner

Tonight I got a bit of a rare treat, The Man Who Came To Dinner was on tonight. It seems that TCM has been doing Bette Davis all day, and I've missed some of my darn good movies :'(.


The man who came to dinner, is one of those films that is not on, but you just have to make waves to sit down and see it when it is! Sheridan Whiteside as portrayed by Monty Woolley, I feel is one of the best cantankerous characters I've ever encountered on the screen. Whiteside is the ultimate and supreme bastard, and one selfish mean old son of a bitch to say the least. It's like take every chipper and nasty thought you ever had, roll it into a big tight ball, and let it roll on over everyone else kind of a part to see. Yeah, you could say I'm a "Nice guy" that envies such a bit lol. What can I say, the villian is always more fun then the hero, until the end of a story >_>.

Every time I watch the film, I always crack up, it really is deliciously funny. Oh, and when the sarcophagus shows up at the end.... mahuhauha! Although I would have to say, the thing wraps up in a hugemongus feat of deus ex machina; it is still hilarious. The second it arrived, my brain clicked, "Hmm, hey why not ...", and sure enough they did xD. I generally have an exceptionally fine memory for cinema compared to most of my peers, but this is a movie I get to see maybe once every year or three, so I can't remember every single nuance of it, without a little jogging. And of course, the finale is a perfect and fitting ending to the whole scheme hehe.


And an excellent summery of just how nasty the old bastard is, here's his Nurses parting words after friend Banjo chases her off:

Nurse Preen: I am not only walking out on this case, Mr. Whiteside, I am leaving the nursing profession. I became a nurse because all my life, ever since I was a little girl, I was filled with the idea of serving a suffering humanity. After one month with you , Mr. Whiteside, I am going to work in a munitions factory. From now on , anything I can do to help exterminate the human race will fill me with the greatest of pleasure. If Florence Nightingale had ever nursed YOU, Mr. Whiteside, she would have married Jack the Ripper instead of founding the Red Cross!

and that is an understatement :-)






In reading around Wikipedia, as I usually do before adding an IMDB link to one of my blogs; I've learned that The Man Who Came To Dinner was written by the same people that wrote another of my very dear favourite films. Which of course as it so happens to be, is also an uproarious comedy in its own right xD

A recent laugh

[21:55] my friend: Millions of Women Find Sex Unbearable
[21:55] me: They must have overweight husbands

Random thoughts: if I ever built a MUA

During recent discussion this week, it occurred to me that creating a Mail User Agent (aka Mail Client, like Outlook Express, Thunderbird, etc) would be a fun project to pass time someday.

Some thoughts of what they would look like, assuming it was designed to be a MUA that I would *actually* use myself hehe.


Likely there would be a scriptable mail shell, some what reminiscent of the old unix mail program in practice. Most interesting stuff like sorting and threading, would likely be implemented through a set of post processing modules (user serviceable). That is, in effect virtually anything it does would likely be implemented as an external and easily replaced component lol. I like software that works out of box, has hooks, and gets the heck out of the users way.


A graphical user interface would likely be provided for working things in a more traditional manor, and quite surely would provide simple message view/edit modules if the toolkit offered suitable widgets. I know Qt privides very nice text editing widgets, and since 4.3'ish has even included a Webkit module that could likely handle HTML mail. Although personally, I would just feed it into my web browser instead hehe ;).


I think it would be a fun thing to build someday, maybe even as an exercise in learning Common Lisp or some other interesting language. The big thing though, is it would likely be focused on IMAP initially and skip POP3, and should we say.... that while I love to use IMAP based mail systems, I also completely and utterly hate doing any programming that involves that protocol what so ever! It is just a royal pain, especially if the language has a low level interface to it, which means you really don't gain much over rolling sockets by hand. That being said, PHP on the other hand, does likely have the least painful API I've encountered for IMAP. I'm not sure if that is a compliment or a vex....

recent Q4 fun

Been playing through Quake 4 again, very fun single player campaign; just started marching into Iron Maiden country on the last nexus tower tour.

Some how, being crammed into a tin can and shot down the throat of a strogg facility brings back memories of Quake II, lol. Personally I can't fathom the one-man pods having any practical military value in such an environment. When comparing a group drop ship to a one man pod, I reckon with how unlikely you are to get a squadron of ships through without losing a lot of them, the one man pods would be more economical—less grunts lost per ship downed. On the other hand, unless the one-man pods land in closely grouped clusters, it effectively does nothing more then injecting a lone marine into their own personal ant hill! Which is arguably, what folk who grew up or thrive on the production of games like DooM and Quake, relish as a staple of game+level design ^_^. Although IMHO it would have been better to get a group landing (ala Halo) and either cut the player (+ a few cannon fodder) off from the team.


The suicidal crash landings used in Q4, combined with military history of paratroopers being employed en masse, shows that you can expect to get shafted often enough lol.



The levels are about to get more interesting, since now the Iron Maidens become more of a threat. So far, the only big bruisers have been the Gladiator and "Tank" types. Most of the enemies are pretty easy to deal with; bit o'scattergun action or some hyperblaster deals with most strogg, and I love to plug out grenades whenever there is suitable cover to constrict their movement, whilst protecting me from hostile fires hehe.


Back in Quake II, the Enforcers could really rip you a new one with their machiengun arms; on the upside though you could usually dance about outside punchin' range and cook them super shotgun style before it got to dangerous ;). I haven't really encountered anything comparable to them in Quake 4, or equally annoying found lurking around a corner! The seem to have been replaced by the Grunts, which are little more then Berserker Junior Grades in my book 8=). Because like the Berserkers, get close, shoot the monster with some shells, back off before it impales you, then pelt it some more. A shame though that you usually encounter Grunts as lone wolfs (unlike Berserkers). With how bulky the things are, it would be an awesome thing to cause some monster infighting DooM style with; not to mention an interesting exercise in level design, to use them to heard the player into the line of fire of worse monsters or even into traps!


Whenever I've bumped into a shield packing Gladiator, I've always plugged it using rockets, grenades, and slugs; I think I've only encountered one light tank so far, so there hasn't been anything really durable yet. If memory serves, light tanks in Quake 4 are a heck of a lot more rare then the Tanks of Quake II were... and no where near as nasty. The Quake II tanks, oi; first time I met one, the sucker soaked up nearly every bit of ammunition I had—before leaving me bare in country riddled with Gladiators, Enforcers, and Gunners!

The Gunners in Q4 are actually not as mean as I remember them being in Q2, feels like they spend less time spamming grenades your way; but they are still awfully fun to nuke on the run :-). Going CQ with them using the shotgun or a rapid fire weapon like the hypberblaster & nailgun is especially more interesting then shoving a few rockets or slugs up their keesters from a far. I think in one spot, it was a ring around the rosey like game: using grenades on the former grenade masters lol.



The only enemies in Quake 4 that worry me are those bloody Iron Maidens; you can't get much worse then a ticked off cyber.itch wielding a rocket launcher and shrieking your ears off—unless it starts to teleport around, and takes a lickin' and keeps on shootin' at you xD.


I reckon the tower hopping war and nexus hub could probably be compared to MDK and the end of DooM. I can't help but wonder though, what are the odds that the 'new' Makron was built using the nameless marine from Quake II? After all, the guy did survive as virtually the last survivor of a failed drop, kick the strogg in the teeth, and deep six their leader.... wouldn't that be a twisted end? But assuming the hero of Quake II lived to tell the tale, one could argue that he was more effective then Quake 4s Matthew Kane - who ended up part Strogg in the process of one upping a John Doe!!!

Friday, August 7, 2009

MechWarrior - rebooting?

I just got the most awesome hyper shockin' news of the month! I've been talking to people a little more about my past, and I got a notion to see if a clan I used to be friendly with was still around—turns out they just turned 10 years old hehe. On their forums I found this link: http://pc.ign.com/articles/100/1002164p1.html


It appears that MechWarrior may rise again, or die in a deep development hell. It also seems that the folks at MekTek have gotten the rights to release MW4: Mercs + Clan/IS MekPaks for free, and that MekTek MekPak 4 is in development. Me and my wings retired during the 3.xxx days, so I have not kept up with the MW4 community since diving into [SAS]. I have the game disks still, and am starting to wonder how many people still play it online.


I really wonder though, if someday I will get to see a new (and good) MechWarrior game on the market. Oh man, it could be so good... hmm, who knows maybe we might regroup someday and kick some ass again. Next time my old friends log in, I need to send them a msg lol. We've largely gone our separate ways but still bump into each other every now and then but have really gotten out of sync I guess. But, then again that is the nature of distance I suppose.


Who knows what the future holds.

Thursday, August 6, 2009

read later, code now; most code... addicted to coding?

http://www.netfunny.com/rhf/jokes/computer.html
The programmer compiled an array of reasons as to why he can’t find a girlfriend with a good <HEAD> on her <BODY>, reason 0 being that he has limited cache. So he searches his memory to recall connecting to the TCP/IP tunnel of his last girlfriend — sometimes even without a secure socket. His last girlfriend always complained about his lack of comments. He fumed, “I hate commenting!” Realizing it was a program requirement, he told her she had nice bits. This resulted in a Syntax Error. Now she demanded a massage, but this was rejected as “Feature Creep.” He smacked her back-end and shouted, “Who’s your parent node?!” He scanned for open ports. He attempted to install a backdoor worm but her response was 403. While his data uploaded into her input device, she considered terminating the process. But instead she initiated a Do While loop where she recalled a previous boyfriend with a larger pointer. To expedite the routine routine, she screamed, “Hack into my system! Hack deep into my system! You’re 1337, baby!” This caused his stack to overflow, and he shot his GUI on her interface.


found: http://www.devtopics.com/best-programming-jokes/

chuckle of the day, 2009-08-06

In my web surfing I found this comment, in regard to "Programming languages" and not compilers/IDEs/etc;
Support (Critical bugs instantly fixed instead going to version 2,3,..., with more changes, more complexities, new bugs)
Some how, I feel like laughing.... a programming language (it's tools aside!!!) should not contain bugs, it should create bugs lol.

Tuesday, August 4, 2009

Ah it's been a fairly full day! I was having some crazy dreams, including many forms of transport but it was the end that really got me lol. At one point, I dreamed that I was on a ship sailing into a fierce storm, and being reassured by a Gary Oldman like figure that in his 'experience, the ship never goes down until after the storm'. Speaking of that, reminds me - I missed the Fifth Element the other night, a movie I've sooo wanted to see lately lol. But anyway, something happened in the dream, and I ended up catching a rope between my teeth and ripping it apart. The end result was loosing about 4 teeth in the process, and being my unnaturally-calm self when things hit the fan :/.

I was very happy to wake up and be able to feel my teeth were still attached! The way I dream, whatever happens: I can feel it... very, very real, as if it was actually happening. I've also lost several of my adult teeth to the "Folly of youth" so to speak, so I know all to well what it feels like. That being said, even when I do dream, even if it's something I've never experienced, it usually feels the same as actually experiencing it does lol,


Todays work load wasn't to bad, not as tiering as I anticipated. I aslo managed to spend some time with friends on the SWAT 4 server ;). On the down side, as lead admin on deck, I had to deal with the troublemakers a lot. Only my strict-demeanor I think, is what allowed most to survive without a ban! The one that came closet, was fortunate enough to shuffle off before I could ban his sorry ass; since we've kicked the idiot about 3 times in two days, he's not going to get any further warning! But on the upside, once the troublemakers were dealt with I got to kick back and relax, or as I told one teammate: "now that I can stop being a puckered ass of an admin". Once it the server was under control, I was loose and flying in good form >_>


Also, whatever path current business affairs take, I have an interesting idea that might be worth exploring in the near future.
Ah, tonight hasn't been to bad; there's actually been some good stuff on TV, including one of my favourite movies—The Freshman. While it is far from a blockbuster, there's just something so cool about their scheme xD. I almost *never* get to enjoy time off, and work begins again tomorrow... so yeah, I think I can take one night to TV for a change.

I'd start coding but I know if I do, it will be closer to 0400 local by the time I go to bed, and tomorrow is likely to drive me nutty enough as is!

One thing has me concerned, earily today when i took the dogs out for a walk, I had the desktop up; by the time we got back, the P.O.S. made a crash landing. For me, the box was pretty much at "idle", just a music stream and a few IM programs running. I'm beginning to worry about the hardware integrity of the machine as well as the possibilities the drivers are just a pile of steaming shit lol. It's like, OpenBSD box... runs until the power goes out; FreeBSD laptop... runs practically until I forget she's on battery for a change >_>. Compare to the Windows box, which probably has more freaking BSODs then any box I have ever owned. Maybe if I had been able to go the custom route, it wouldn't be such a pain... blasted pre-build has been a torn in my side almost since day 0.

With most of my current coding revolving around C++, and needing something more powerful then my laptops Sempron, I've been doing a lot with the desktop lately; it has my only serious prerequisite for coding -- a decent build of Vi IMproved installed. MSVC is also a decent enough C++ compiler, as is g++ from the GNU Compiler Collection. So I reckon with all of the time spent compiling code, the hardware is under twice as much stress as normal. Not that it should make much difference, since Dixie has survived much worse and usually constant stress without so much as a burp lol.



Hardware failure has always been my one worry, since it's more costly then data; good thing I back things up hehe.

Monday, August 3, 2009

So far work on the game proceeds well in spare moments, and quiet fun to tinker with. Recent activities have been focused around adjusting the input manager to handle both buffered and unbuffered input; PlayerEntity may also become a singleton class in time (I am not fond of singletons, but I reckon OGRE shows that they can be useful if built properly).

Most changes that are most pressing at the moment, is refining the command structure and state management. When I first setup the build with OGRE, I made sure the OIS and CEGUI libraries were present. When I've time to get crazy side of things working, I want to adjust the prototype to load into a main menu structure. That'll give me good incentive to put SettingsParser to greater use, and most importantly write the code to allow it to flush things back out to the users configuration file, haha!

It would also be nice to start setting up the weapons related code, an aiming cursor, and map loading. One of the reasons I chose OGRE, other then saving the waste of writing a 2-bit render ontop of Direct3D/OpenGL—it comes with a BSP based scene manager. When it comes to game engines, I'm most familiar with modernized Doom, Quake III, and Unreal Engine 2 systems. After so many years of Raven Shield, should we say that a BSP-based map sounds like an interesting shot. We'll see where that heads in the future.
Combing vcbuild and vcexpress running at the same time, can lead to such interesting linkage errors if you try running vcbuild before saving the changed solution file back out ^_^.


Ok, no wonder I so much prefer just opening project files in vim, it saves me from having to launch the bloody IDE 8=).

Old remarks

Was searching through the forums for something En4cer or Rouge said a year or two ago, when I found something I once posted about tactical fire & maneuver used in films:

* for context, IRL = In Real Life; IHW = In HollyWood

My list of differences between Real world Elite and Holiwood Elite.

IRL a 9mm probably will bounce off a windshield at 50m

IHW a 9mm will take out the engine block of a truck if its on Full Auto.

IRL a solider might not have a full mag all the time, to prevent jams. (editors note: not all are created equal)

IHW, magazines have bullets 4 a breast so you can reload off camera

IRL a [good] solider can snap off a head shot at 50m /w an MP5 as fast as they can think.

IHW, the hero can pop the running squiral in the left nut at 25m with a sling shot.

IRL, a 12.7mm M2 || M82 will make your day.

IHW, some how a pistol packs more punch then a 30mm Gatling gun.

IRL, you want strong cover like a CBS wall so bullets won't penitrate.

IHW, you can use a lamp post or a dead guy as cover agasnt 7.62x39mm ammo.


Some how I can't help but chuckle whenever I think about that running squirrel part xD. For some reason the Last Action Hero also comes to mind...

Sunday, August 2, 2009

Random thoughts about recent stuff

Most pressing tasks at the moment, is setting up the input manager to handle both buffered and unbuffered input more easily. Currently a simple system is used, the input manager interfaces witgh the backup library (currently OIS) and exposes a registerCommandListener() method. For each command we want to bind input to, there is a specific subclass of AbstractCommand passed to the input manager along with the key it should be bound to (which gets mapped our own representation to what OIS uses). A simple group of associative arrays handle mapping buffered input back to the registered command objects, which have the task of making sure whatever is supposed to happen on said input event, actually does. A prime example from the prototype, movement commands are registered for mouse input and the W, A, S, D keys; when the AbstractCommand::handleInput() method is called, they tell PlayerEntity that it should move in the appropriate way. In plain C instead of C++, I would just have used a pointer to a structure holding all the interesting data about the binding + a pointer to a callback function. Same basic concept, only my prototype takes advantage of C++, which is what I'm stuck with for the moment 8=). I have no real love of C++, beyond not having to deal with yet-another implementation of data structure XYZ. (BSD Unix at least has provided macros for the most basic data structures in sys/queue.h for many years, now if only a new C standard would do likewise.)



Soon I'll need to start modeling "Stick Man" as a place holder, it'll likely be an extremely simple humanoid model; about as complex as a wooden artists model. Just something that can pass as a human figure during the prototypes tests lol. An arm for example will likely be a sphere for the shoulder and elbow, joined by beams, and terminating in some similiar representation of a hand.

The thing that interests me most in terms of 3d entities, is the possibilities of what can be done. Whatever the performance and code difficulty involved, an idea that I would like test: is to create the humanoid model and a 'door' model. The door would define two points of interest (assumably bones), one running along the hinge (to calculate how it should swing/pull open) and one through the knob. Then to establish suitable references to the models hand and the door knob, and then specify that the users hand (and obviously, any other bones that need to come along for the ride) should be moved to a position close to the door knob and back again. So that if for say, our model had to open doors; we could show it happening (kind of) and wouldn't need separate pre-done animations for whether the model is crouched or standing, let along having to go through the trouble of making doorknobs the same exact position on every door ^_^. Likewise the possibility to take a weapon model (aka "Stick gun"), and define points of interest: such as a muzzle, foregrip-point, stock, and the handgrip. Then defining that the humanoid models hands should be positioned at the foregrip and handgrip points, and apply a griping animation to it of some sort. I am more interested in exploring what is possible without popping a cork then in creating what looks and acts proper in that regard.


Weapons implementation as of yet is undecided; current calculations for the damage portion of the ballistics has been promising. The algorithm and test-weapon specifications have yielded suitable figures when used within proper situations. Basically, everything is tuned on the concept of an ideal and a maximum range that the weapon should be effective at; results showed that for the various example test-weapon specs gave the desired behaviours until a round began moving past maximum effective range. The downside is obviously, if one wants to take a short range weapon and use it like a sniper rifle, expect to have to empty a crap load of ammo or learn how to target the vitals! The main point at which things get sticky, is hit detection and trajectory. The tests for damage/penetration power were based on segmenting the bullets travel path and scaling accordingly. The idea that comes to my mind as the obvious-first attempt, is apply a simple hitscan method - fire a beam from the muzzle to whatever it hits, like a laser gun (I hate games that do hitscan). Slice this path into smaller sectors then mutilate its forward trajectory, in effect causing a way to implement bullet drop if desired. For removing the "perfect aim", I reckon it would be easy enough to apply a jitter to offset the bullets hit point according to what the weapon should be capable of doing.


Games are not really my area of expertise programming wise, because I'm more accustomed to building tools and combing front/back-ends. It is however, an interesting thing to tinker with; and I am building a prototype to explore random ideas — not a polished product.