Tired… I think my sleep/work patterns of late are starting to get to me :

Manged to get some time in on TG#1, even if it was some ‘solo’ dynamic assaults.

I’ve also gotten another module imported, and another that would be ready if I didn’t have to port it from using the Qt3 Support library… lol.

It shouldn’t take to much work to get the portconfig module ready for import but, my brain needs some rest :. And I’m stuck going back to work soon (an ~hour) on top of it 🙁

the nights antics

I was rather happy to see that SourceForges SVN services were back up to a decent speed, other wise I probably would’ve gone to bed instead of getting back to work :

I managed to finish the work on the project file, I had inhaled the qmake manual before dinner ;-). I knew exactly what I wanted, test works all been done in a ‘one lump sum’ directory… Which is the style that I really hate, to much crap to visually grep through when looking for parts of the project.

The build format that I desire is basically like:

Makefile -> top level, non recursive make
doc/ -> documentation files
dist/ -> files ready to install (all done)
obj/ -> object files and crap from moc / building docs, etc
src/ -> source code files
src/module/ -> source code files for module

Which is basically what I’ve setup, maybe I’m just spoiled by the layout of FreeBSDs source tree and build system… hehe.

I was quite happy to find that as usual, Qt makes life easier not harder xD. It only took the fine (if short) manual and a little bit of trial time to get more or less what I wanted out of it, all the better! Without having to worry about a recursive trail of makefiles. When it comes to recursive makes, I have no problem with the concept, I just don’t care much for it.

I figured that if I couldn’t get what I wanted out of qmakes project files that I would have to do things manually. I don’t really have a problem with hand crafting makefiles but I really prefer not to have to maintain them, let along risk leaving something behind that needs a Bachelors of GNU Makeology to understand fully.

I did manage to get one module (essentially) imported into the SVN tonight and I’ve almost got another ready to go in. But before I commit it, I want to get the things refresh() slot sorted out. To do that, I just need to clear the m/v I guess but that can wait until tomorrow’ish.

As I often have said, laptops make poor pillows !

There’s about 5 more modules to import, as soon as they are adapted and ready to roll that is. Right now I’m in advantageous territory code wise but as usually, my working environment is, uhh… “Hostile” to say the least to productivity.

Maybe if anyone in this fuckin’ family knew an ounce of computers, let along programming, the bastards would let me work in peace rather then in pieces !!!!!!!

Source Forge SVN slow !!!

Bah humbug !!!

Tried to checkout a working copy of Neo Ports Manager over SVN, that took twenty minutes or so… Created an independent branch and the starting directory structure for the work I need to get imported, plus copied a few files from the trunk that I also want there.

That took at least 10 minutes to commit..

Looking on Source Forge, I can see that two other people have filed about the SVN services being so dang gum slow.

Looks like it might be awhile before I finally get my latest stuff under revision control +S.

Note to self, don’t use GNU m4 on Win32

Bah, humbug !!!

the focal point of the entire operation is a suitable pre-processor.

The idea:

defined test substitution macros generated by front end for pre processor

template file that relies upon said macros

output to be generated from preprocessing the macros from in the template.

The problem?

Target platform: MicroShaft Windows NT 5.1 (XP)

At first I figured I would use the C Pre-Processor since MinGW is on the target box, along with several other development tools.

Then I remembered I have GNU utilities for Win32 installed on this machine. So I took a look and found that a port of GNU m4 v1.4 is installed. I learned enough of the m4 ‘macro’ language just for tasks like this but guess what!

m4.exe fails to expand all macros in the template file.

Being more then somewhat disappointed, I ssh’d into my OpenBSD machine and fed it through the m4 implementation it comes with (not GNU), and guess what?

That freaking works fine.

*unzips fly, pisses on m4.exe*

Odds are the 1.4.11 version of GNU m4 I have on FreeBSD installed from ports works, hell scripting OpenBSDs sed works for this task, let along custom perl !

So I’ve just used vim to quickly :%s/m4 defines/cpp defines and seem to have to use that in order to get it working. Nice, simple, and effective.

*grrrrr*

Ahh another late night…

Spent about a half hour adjusting last nights work to use a more snappy display. I’ve also gotten the rest of the module done except for the final output to file, since that connects to a module that doesn’t exist yet (note to self, create a dummy).

I’ve been spending a lot of time with C++ and Qt4 lately… I must say, it does grow on you! Although I do personally find Python and Ruby better suited for building prototypes but whatever works.

My heads telling me, I could stream roll a few more things that need trimmin’ but I know if I did that, I would either end up going to bed about the time I need to report for work or worse, end up using Dixie as a pillow >_>. So I guess I’ll have to do those the next night I work on this codebase, rather then tackle the next phase by then :

Sleeping with your head propped on a laptops keyboard is probably not comfortable!

Hence it’s bed time…

misc thoughts

Well some progress, aside from spending an embarrassing amount of time trying to find a problem starring me right in the face shouting “this is wrong you moron!”, I suppose exhaustion can do that…

To be perfectly honest I think one of my biggest problems is my multi-lingual nature when it comes to programming. In the past couple days, I’ve used Bourne (with best buddies SED & AWK of course), Perl, Ruby, PHP, and C++ for various tasks.

In a large way, a language is just pretty much a language to me, a standard syntax, types, and subroutines if you will. Generally I think about solving problems in a way that doesn’t really connect to a specific language. Sure I tend to write and think in a language of the moment but at the end of the day, the implementation is the language specific part — not the solution.

When it’s something that takes me a bit of thought, I usually write it done in a form of pseudo code that relates to how I read code.

Then start thinking about that, i.e. it’s behavior: I dislike needing debugging aids when a brain will suffice. Then I start thinking about how to implement it, which often tends to lead to what language I’ll be using if not already knee deep in it.

For example, when it comes to regular expressions I very, very greatly prefer Perl and Ruby for such tasks. Python in particular has always felt (to me) a bit chunky at regexes compared to Perl but to each their own methods. Heck, a lot of times a scratch and run Perl script is my way of testing regular expressions for things.

Tonight I needed to figure out how to process a programs output, I quickly found the QProcess class to be increasingly *annoying* so I threw it out in favor of popen() and the usual methods — works like a charm. Then took a quick sample of the programs output, wrote a perl script to handle the operations upon it that was needed.

Then used the QRegExp and QString classes to implement the program using those regular expressions: skipping the compile time frustrations and indexing issues. Then proceeded to expand it into something able to meet my required behavior, after checking enough scenarios to validate it (to me). Then tested that to make sure it still behaved properly and moved on to using it to work on the next problem.

I’ve been using C++ a lot lately, really odd because I mostly quit using it after picking up C and Ruby a couple years ago lol.

0400, time for bed… but first it’s snack time!!!

believe it or not but a few hours of working on the computer has a few side effects ^_^

Speed Learning — m4

Was on my way to bed (read sitting in front of my laptop <_<) and caught The One on TV just 10 minutes into it. I had seen part of it before but never got to see the second half 🙁

Now in search of something else to watch, I noticed that Live Free or Die Hard starts in at 0140Q, it’s currently 0112Q — so…

Early today I found out that the m4 macro language processor is not a ‘GNU Thing’ although GNU m4 is used as part of the gnu tool chain. Since it’s a language dating back to the 1970s and I could rather use something like m4 from the looks of it.

Let’s see how much I can learn from FreeBSDs m4 manual page before the movie starts hehe 🙂

Tick tock

Recent activities.

Havn’t had a lot of spare time lately :

Survived my 20th birthday on the 20th, makes me wonder if I’m starting to get old in my own way lol.

My brother called and wished me a happy birthday, was good to talk with him even if I had to put up with a ‘lecture’ 8=). I know the old axim is “those who can’t do, teach” but in my families case it is lecture >_>.

Night before my birthday I managed to polish off one of my favorite burgers from Ruby Tuesdays. I remember the first time I had one, hehe a few years back I was the only guy involved in a project. So the girls had to throw a birthday party and what else but The Ultimate Colossal Burger xD

They always did know how to throw a party lol.

Ma also made 2lbs of Chili, so I’ve been feasting on that for the past couple days, hmm now that I think of it.. A little chili would hit the spot about now ;).

I spent most of my birthday eating, sleeping, and coding — three good things, especially since sleep is a premium for me +S. I ain’t done much of anything in C++ in about 3 years, sad considering November will be my fourth anniversary. But I’ve really been enjoying the C++/Qt4 work of late, even better I’ve got suitable development environments on my laptop and desktop. Lunch was a trip to the best all you can eat joint in town, so that went well hehe.

Still, it’s all overshadowed by one thing… But I guess that’s a different subject.

I’ve managed to get a bit of training in this weekend, been concentrating on the fundamentals of room clearing for Jonsi’s training. One nice thing about teaching it, I’ve been doing it enough in the virtual world, that I parts of it flow into the real world lol.

Ok, so is it that bad if you tend to stack on doors and button-hook entries ? haha

Started work today on a diagram for a new swat4 map, The [SAS] Killhouse Redux. I’ve got over 25 rooms and two floors with concepts for adding another wing on the first floor. What I like the most about the design, it’s trivial to build it in bits and pieces. Level 1As first wing, then the other wing or Level 2A, etc. My original “dream” for the ultimate training facility included like a 5-6 floor shooting house but no map maker got into the project.

The only big problem is me and the Unreal Editor used mix like water and oil. I should be happy though, as crappy as SwatEd is it really is less bothersome then the UnrealEd build shipped with Raven Shield. Although I’m more used to the Rvs build… At least the S4 one doesn’t crash so often!

I can do almost anything I set my mind to, it’s just a matter of time. Tomorrow I need to inhale one of the tutorials and set to work on more of the map. The main problem atm is adjusting the objectives, although I reckon I could always make a room in the middle of no where full of tangos lol. The old [SAS] Killhouse in RvS that we used to use before I even got here, had a lone tango hidden behind boxes. But that was more so because of issues with the game design, Swat4 is a little less, ehh irksome.

Today I also got some time on the SWAT4:TSS server for the first time in a good while, I really miss that game lol. The only bad thing I can say, is the MP5s don’t support full auto. I’d rather have a trusty MP5N but hey, the devs had to make it more ‘balanced’ :. The UMP.45 fires at about 300 RPM on their own scale and on full auto, while the MP5 is limited to three round bursts as respective alternatives to semi automatic.

I really prefer full auto because I can control the bursts. In RvS, I often like to use the MP5/10A2 because the way it was implemented. You can’t hit shit past about 30 metres and if you fire more then 2 rounds at a time, you won’t (consistantly) hit shit to start with ! The FAMAS G2 also has such a high rate of fire, that it’s great fun to put on full auto and try to fire one round from it per trigger pull.

SWAT4 has one of the worst simulations of ballistics I’ve ever seen but, Rvs has good shooting but the worlds most unreal physics.

Tomorrows plans, map making and training ops. With how long it’s been since I’ve really played SWAT4, I think I should take some drill time to work on my usual reflexive plan.

3-round burst to centre mass then follow up with a double tap or another burst to the noggin.

Me, I fire a lot of rounds per kill — because I keep firing till the f****er goes down. The advantage of video games is, once they die they start to fall over dead (realistically or not). The disadvantage is unlike the real world, getting shot doesn’t have much effect on the enemy. At the best you might jar their shots (rvs) or stun them briefly (swat4) for another follow up shot.

What I really would love to do some day, is set up sensors on the monitor and a laser pointer on a model weapon. And have the sensors on the screen detect the movements of the laser beam across their own beams and use that to generate mouse movement-input for the operating system.

That would make aiming a lot more reflexive then a mouse lol.

Days webbings

Ahh, home sweet home.

Well, not exactly but close enough ^_^

Was late getting to work but got off on time, luckily there was a little less to do today then normal. Got ‘ambushed’ by a Spider above the door, no sign of where the little bugger escaped to but I should probably thank’em.

Hit the shower and a quick shave without the usual delays. When your usually third in line for the bathroom and spend nights workin’, and time off work busy. It pays to take advantage of every opportunity for a bath lol.

I spent yesterday taking a day to myself (a rarity sometimes). I was building a prototype in Python with Qt3 bindings then after dinner. I spent the night writing the finished version in C++ with the Qt4 libraries I have installed. I haven’t really used C++ much in at least 2 and a half years or so but it wasn’t a problem. Qt is arguably the easiest GUI toolkit I’ve ever seen but I’m only used to the Python bindings to Qt3. So the issue with using the concepts from the prototype to build the project in C++, the biggest problem I had was the slight differences between Qt’s bindings to C++ and Python.

Although I wouldn’t want to have to do anything useful in assembly language, I think in a way that I can use just about any computer language given enough time. I do rather find working in Python, Perl, and PHP much more comfortable though.

The programs pretty simple, the whole point of it is just to handle a Bourne Shell script based init system to populating my workspace with applications.

I’ve also considered breaking it down & posting it just for an example in Qt programming.

Does Python or PyQt3 have a pox on C++?

This is illogical as I’ve seen Python get.

Terry@dixie$ cd code/C++/src/qsm                                           0:11
Terry@dixie$ python 0:11
Python 2.5.2 (r252:60911, Apr 17 2008, 16:34:02)
[GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
Type "help", "copyright", "credits" or "license" for more information.
>>> from qt import *
>>> QDialog
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'QDialog' is not defined
>>>
Terry@dixie$ cd $HOME 0:11
Terry@dixie$ python 0:11
Python 2.5.2 (r252:60911, Apr 17 2008, 16:34:02)
[GCC 3.4.6 [FreeBSD] 20060305] on freebsd6
Type "help", "copyright", "credits" or "license" for more information.
>>> from qt import *
>>> QDialog
<class 'qt.QDialog'>
>>>

Maybe there is a reason for this and I’ve just got to much of a headache from today to notice it, but WTF man? lol. It’s almost as if Python has a pox on running a script in that directory :

I wanted to test an idea for a dialog quickly, so I started a new python script. Only to have NameError’s whenever trying to reference a member of the qt module. So i copied over one of the py-qt3 example programs that came pre-installed and tried that, same barfing results.

Then I tried interactively with python, no go — changed directories to home and tried both, and they fucking work !!!!

I don’t know whether I should laugh out loud or start hex editing maliciously lol.