Dancing over the Windows, Day II-B

After getting the backups taken care of, I took a few moments to clean up after the more intrusive installations. That involved turning off the MSSQL related services, telling Javas jusched updater to take a hike—instead making a scheduled task for it, which is what the installer should have done! After that, I sanitized the %Path% environment variable back to the default, and used my documented list of where I installed everything, to write out the desired environment variables.

In order to keep the systems path clean, yet make it easy to make regular changes as part of batch scripts (like compiler specific ones) or per-user profile variables. Here is a list of my creations:

%DEF_PATHEXT% and %Def_Path%
These are just references to the systems default values for %PATHEXT% and %Path%, so they can be referenced later without concern for the actual system values.
Userprofile overrides for %PATHEXT% and %Path%
I’ve set PATHEXT to %DEF_PATHEXT%;%Extra_PathExt% and Path to %Def_Path%;%GoogleChrome_Path%;%RemoteUtils_Path%;%Utilities_Path%;%WWW_Path%;%MediaPlayers_Path%;%Graphics_Path%;%OfficeApps_Path%;%Games_Path%;%JavaRuntime_Path%;%Gtk2Runtime_Path%;%Perl5_Path%;%PHP5_Path%;%Python2_Path%. Which provides my user with virtually everything I could want, short of access to compilers and what not.
%Extra_PathExt%
Extra extensions that I would like to *not* have to type, namely making Perl/Python/Ruby use and coexistence much easier.
%RemoteUtils_Path%
Various remote utilities that I use often, things like PuTTY.
%Utilities_Path%
Slips several frequently used programs into my path: like SysInternals and Archivers. Yes, I do use a command prompt to unzip crap often enough to warrant this :-P.
%WWW_Path%
The paths to world-wide-web related programs, that are only meaningful with an internet connection. Instant messengers, VoIP, web browsers, blah blah. This also means I can have a lot of fun without reaching for the mouse ^_^.
%MediaPlayers_Path%
Quick access to MPlayer / MEncoder and anything else that comes in handy.
%Graphics_Path%
Software for manipulating images, GIMP, Dia, Wings 3D, Blender, et alii.
%OfficeApps_Path%
Paths to the kind of software often found in office suites, most importantly a snappy PDF reader. There’s not much else that I use regularly, since word processors are often brain damaged from a productivity standpoint.
%Games_Path%
Various games, of the kind that can actually be run without changing directories; that is no unreal engine garbage.
%JavaRuntime_Path%
The systems standard Java Runtime Environment, suitable for responding to Java applications that need to make me wait an hour for them to startup ^_^
%Gtk2Runtime_Path%
The systems
%Perl5_Path%
Reference to all that Perlicous goodness, can’t have a box put to work without a copy of perl setup, now can we?
%PHP5_Path%
In case I need to test some code, I always keep an interpretor within arms reach; for things that require a server, I just SCP it over to another box, that happens to be running Apache.
%Python2_Path%
I decided that this time I would run both versions of Python, this chooses the 2.x branch. For better or worse, not all valuable libraries have made the transition Python 3.x yet :-/
%Python3_Path%
Same as the above, for for Python 3. It should be most useful to me, for testing scripts for compatibility with 3.x
%Ruby_Path%
A language that I rarely use these days, but always keep available for a rainy day 😉
%Devel_Path%
Pointer to various development tools that are not very implementation specific and should be optionally available to all user accounts. It’s made up of other environment variables, just like the %Path% override.
%Devel_Utils%
Assorted utilities like tags generators and build tools
%ScmTools_Path%
Qucik access to source code management: Subversion, CVS, blah blah. The only thing I actually give a flying flub about, is Git.
%JavaDevel_Path%
One huge Java development kit with more bells and whistles then I could care to look at. This variable basically exists to provide access to javac and relations
%Qt4Devel_Path%
Paths to the Qt SDK, the best toolkit for doing graphical software that I’ve ever found. API wise, I reckon WxWidgets would be more natural to Windows developers fingers (wxNames::LikeThis instead of QNames::likeThis) but I’m perfectly happy with Qt.
%Gtk2Devel_Path%
Basically a software development kit for GTK+ apps in C/C++, kept independent of the systems Runtime—so build time will never break Pidgin, Gimp, & friends
%MinGW_Path%
For setting up quick access to the GNU Compiler Collection.

I’ll likely write a set of development environment scripts, that will handle tailoring my cmd environment to a specific task. Exempli gratia: MinGW, Watcom, MSVC, JDK, Py2, and Py3.

Because I know from first-hand experience, many games built around Unreal Engine 2 among others, still treat the Operating System like MS-DOS, I’ve also taken the liberty of setting up a “Gamers” group. That should make playing RvS/SWAT without elevated privileges as possible as it ever is going to get… lol. Considering how crappy they are on the inside, and being UE2, I don’t expect it to actually be possible without further abuse. Really, I wonder how some companies get this crap on the market…

Anyways, time to setup the games 🙂

To be continued…

Dancing over the Windows, Day II

Installed XFire, and very interestingly only the administrator can change where it downloads files to, which should be in %AppData%Xfire along with the users chat logs. I suspect the intention behind this “Odd” design choice was to force all downloads to occur in a shared folder, which can be automated for a routine virus scan – or because many games are so crapply made that they need to run under Administrators lol.

Xming, TeamSpeak2 were quickly smashed. The most important utilities to get installed were 7-Zip and InfoZip, for dealing with the archive files involved. After that I setup Python 2.6 and 3.1, Ruby, and Perl 5.10.0. The file associations can wait until later, but quite seriously I ain’t going anywhere without Perl installed ;-).

Because I have both Python 2.6 and 3.1 installed, and the MSI installers override one anothers file associations, I had to manually setup the mappings that I want; which includes mapping .py2 and .py3 to their respective interpreters.

C:2install>ftype | findstr /r /i "Python"
Python.CompiledFile="C:DevFilesLanguagesPython31python.exe" "%1" %*
Python.File="C:DevFilesLanguagesPython31python.exe" "%1" %*
Python.NoConFile="C:DevFilesLanguagesPython31pythonw.exe" "%1" %*

C:2install> assoc .py2=Python2.File
C:2install> assoc .py3=Python3.File

C:2install> ftype Python2.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
C:2install> ftype Python3.File="C:DevFilesLanguagesPython31python.exe" "%1" %*
C:2install> ftype Python.File="C:DevFilesLanguagesPython26python.exe" "%1" %*

C:2install> ftype Python.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
C:2install> ftype Python.CompiledFile="C:DevFilesLanguagesPython26python.exe" "%1" %*
C:2install> ftype Python.NoConFile="C:DevFilesLanguagesPython26pythonw.exe" "%1" %*


C:2install>assoc | findstr /r ".py"
.py=Python.File
.py2=Python2.File
.py3=Python3.File
.pyc=Python.CompiledFile
.pyo=Python.CompiledFile
.pyw=Python.NoConFile


C:2install>ftype | findstr /r /i "Python"
Python.CompiledFile="C:DevFilesLanguagesPython26python.exe" "%1" %*
Python.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
Python.NoConFile="C:DevFilesLanguagesPython26pythonw.exe" "%1" %*
Python2.File="C:DevFilesLanguagesPython26python.exe" "%1" %*
Python3.File="C:DevFilesLanguagesPython31python.exe" "%1" %*

I wonder how many people never knew you could change file associations from the Command Prompt? It is oh so much faster then screwing with Windows Explorer!!! Later on I’ll add .pl;.py;.py2;.py;.rb to an environment variable that users can append to their %PATHEXT% at will.

Tools for getting work taken care of next: GIMP, Dia, and Pidgin+GFire plugin. Vim is the only one that I actually care about, but since getting the newest version with all the right features that I want, means compiling my own from a CVS/SVN checkout: it might help if I installed MSVC and CVS first; will get to that later.

Misc office/unproductivity apps: GnuCash, Abiword, Gnumeric, OpenOffice.org, and AutoHotKey. Then remaining non-dev utilities: WinMD5Sum, Qlipboard, Unlocker, GNU PG.

A couple small games: prboom, OpenArena, Battle for Wesnoth, and Chromium BSU; I’ll get UrbanTerror, Raven Shield, and SWAT 4 setup later.

And now time for the huge hulking development stuff…. since it’ll take at least 15 minutes to download the remaining Microsoft development packages, I started on MinGW, MSYS /w DTK and WATCOM. I usually use Visual C++ for compiling under Win32 whenever possible, but out of respect and potentional handy’ness, I usually keep a copy of Open Watcom around; it also has one of the most polite installers ever created on Windows! Setting up the MSys kits is painless, upgrading them is not always so. MinGW, well just boring to setup 8=). After that came making sure that there is a full Java development kit and Ant available. PHP, PhpDoc, GDB, and Exuberant CTags followed.

Time for the build and scm tools: Ant, CMake, SVN, Git, and CVS.

Next up a few game development related tools: q3map2, QuArk, Wings3D, and Blender.

Wrapping up with an installation of MPlayer & Mencoder binaries (the Git ones) with codecs. Most of the development-related libraries, I don’t want installed until Visual C++ is installed, so time to get that done now. Rather then bugger with Daemon Tools Lite, I chose to try out ImDisk, something that appears less intrusive on ones computer experience ;-). After mounting the Visual Studio Express editions DVD ISO, it was a fairly quick bombing run to get C:DevFilesVisual Studio setup and running; it’s still ashame that it forcefully crams a few things into %ProgramFiles%, but I reckon that is the price of an automagic installer 8=).

Ok, time to get the rest of the development stuff setup. First off, Debugging Tools for Windows, followed by the DirectX SDK. The Qt SDK & PyQt4 bindings fell into place, GTK was a simple unzip followed by installing the appropriate Py* packages. WxWidgets is a quick installer, but still needs to be compiled later (per compiler); that can wait until I have need of compiling anything against WxWidgets, which is pretty rare.

As much as I love XML and hate XML parsers, LibXML2 / LibXSLT are just to valuable not to have installed. OpenSSL and ZLib are also kind of useful ^_^. Xerces-C++ and SDL will take a while to compile, so I will save those for later.

I would like to take a few minutes break to get some of the backups restored, while Cygwin goes and fetches a couple things (e.g. rsync).

To be continued…

Dancing over the Windows, Day I

Reinstalled Windows NT 5.1.2600 / XP Media Center Edition.

After rebooting, the machine gave a message that it was prepairing windows for start up; it was obviously trying to establish a network connection, assumably in order to phone hone registration data. That didn’t work, so the computer restarted itself and tried again, when that failed, it finally put up, shup up, and let me go through the boring setup screen.

As usual, I set the machine up for a U.S. environment but with GMT time zone and no DST adjustments, this gives me accurate enough GMT/UTC settings :-).

Was forced to create a “Regular user account” which also happened to be created as a passwordless adminisrator account: oh what a wonderful defualt! Named it “appeasement” and moved on. On the first ‘usable’ boot up, I used the double ccntl+alt+del trick to login as the pseudo-hidden Administrator, and get to work on setting up the machine. I created my limited user account, locked it with a password — then locked the forced-admin account with a ~90char password and locked it, generated manually useding my usual algorithim for creating pseduo-random passwords. Then I did like wise to the guest account, setting a random ~150char password. Both appeasement and guest were doubly checked to ensure they were properly locked down. I’ve elected to make use of Adminisrator directly for setting things up, since I’ve always used a separate admin account in the past and really see much value in hiding Adminisrator; however I do admit a temptation to rename it “Bill” as a joke between friends.

I also took the liberty of forcing Windows XP to use the classic login dialog, rather then the XP welcome screen; it’s a shame that it remembers the last used user name though, which kind of defaults the point of not listing user names (which was mentioned in the CPL). My reason for switching to the classic login screen however, is because I find it more convientant for quickly logging into the system, then having to play with the icons on the welcome screen.

Disabled Windows Firewall and installed my wifi adapters drivers, but had no luck in getting a connection to my home network :-(. After a bit of abuse, I killed the poorly written network management utility that came with the driver, along with all the programs and service it created. After that, I was able to get a clean connection to my AP :-). Personally, I think any time a network device driver tries to override the systems network configuration software by default, means either they were assholes or the system has terrible network support. Over the years, I’ve found that Windows does have terrible network support (compared to FOSS unix systems) but configuring network settings, especially wireless: is very painless under XP.

To avoid nagging, I turned off Windows auto update crap, and fired up IE6; hitting update.microsoft.com I jumped through the hoops to download/install Service Pack 3. After the rebooting dance that followed, I then returned to update.microsoft.com in order to update things. That resulting in installing _60_ updates for my computer and another reboot, after that was taken care of, I turned on Windows updates. Guess what it told me after that? There are more updatse for your computer ^_^. It has been nagging me to reboot every couple minutes since then. Two cool comments: nVidia and Creative drivers were listed, speeding up my installation of the latest nVidia drivers xD.

Kicked off cmd, explorer, control, regedit, and mmc (Micro$oft Management Console) so I could start work on making Some changes:

 Set IE8 to a higher security level for Internet use
Set IE8 to reject third party cookies
Prevent Winsucks Explorer from hiding file extensions - come one, seriously?
Automatically search[ing] for network folders and printers turned off in Explorer
*.js? *.reg, *.sh?, *.vb?, *.ws? file associations remapped to Notepad
Error Reporting set to MS/Win crap onnly
Tell Security Center not to whine about FW/AV.
Killed sticky keys & compatriates; made this default for new users
Data Execution Prevention (DEP) on for all programs
Remote Assistence / Remote Desktop / NetMeeting RDS / Remote Desktop Help Session Manager turned off
UPnP & SSDP services disabled
Remote Registry service disabled
Net Logon service disabled
Media Centre services disabled
Aleter service disabled
Computer Browser service disabled - I don't want it
Distributed Link Tracking Client disabled
Help & Support set to manual - FWIW
Network Location Awareness (NLA) set to automatic
Network Provisioning Service disabed
Print Spooler service set to manual - I rarely print stuff
Security Center service disabled
Server service disalbed
Shell Hardware Detection (autoplay) service disabled
TCP/IP NetBIOS Helper service disabled - just piss off lou
changed Windows Time server from MS to NIST
Cleared the "Register this connection's addresses in DNS" thing Disabled LMHOSTS lookup on my wifi connection
Disabled NetBIOS over TCP/IP on my wifi connection
Don't auto-restart after crash
Don't dump core on crash
Disabled hibernation support
Configured Windows to clear the pagefile on shutdown
Set power mangemenet policy to minimal (just kill monitor)
Set the system to use the Metric system by default.
Set the system to use ISO standard date/time format by default.
Turned off the advanced language/text stuff; I don't need to input Hanzi/Cyrillic

At this point, I rebooted the system:

 shutdown -t 2 -r

and logged in with my limited user account. Ahh, the passionate joys of bending computer software to your evil bidding!!! The first thing I did was double check IE8 settings, and go install Google Chrome ;-). The second thing was open a Command Prompt — I never go without having one available.

I could configure Internet Explorer 8 more diliengly for secure operation, but I don’t use the bloody thing, except when programs (like XFire) require embedding IE or when visiting update.micro$oft.com. My life is spread across Chrome, Firefox, lynx, and links; but Chrome is my preferred beast of surfing burden.

From here on in, it was time to get cracking! C:2install was setup for storing downloaded files. After taking a few moments to get Chrome hooked up, my next stop was downloading PuTTY, making it a painless process to gain access to my OpenBSD server down the hall. Namely, the cute girl holding all of my backup data lol. When I took backups of SAL1600 today, I made saved a file named software.list with a table of every thing I need to fetch & install, written as: programtt-turl and sorted in sequence.

Although my PuTTY settings are unreachable without PuTTY, since the exported registry keys for all my sessions are on Vectra, I have sufficant memory to reach her manually.

Oh yeah, now I could finally hit 949thebull.

Because of my insane nack for planning these things better then NASA can launch a space shuttle, it was a rapid file breeze downloading most of the software I need to install, and the last 9 hours have been pretty interesting. All that is left to fetch, is basically Microsoft compiler/ide/runtime stuff and my mouse drivers. Most of tomorrow will likely be spent installing/configuring everything while waiting for the backups to SCP back over. Right now only the most minimal kit is setup and as soon as this virus scan completes, I’m hitting the hay, it’s already after 0830 in the morning….

There is also one more thing that I need to do, start checking more in depth the default access control and system policies. Despite often presenting pure idoicy as a matter of standard operating procedure, Windows NT does have some very nice security features; they’re just hidden so far from the average desktop user, that most will likely never discover them :-/. One of these days, I really need to setup some custom templates in order to speed all this crap up!

To be continued…

Chuckle of the day, 2009-09-24

Because most of the Win32 subsystem operations have been moved to kernel mode drivers, in Windows NT 4 and later CSRSS is mainly responsible for Win32 console windows, GUI shutdown, and threading. It is critical to system operation, therefore terminating this process will result in a Blue Screen of Death.

Wikipedia:Client/Server Runtime Subsystem

_Rolling_On_The_Floor_Laughing_My_Freaking_Hindend_Off_.

Well, I always figured that Microshaft(tm) didn’t share my belief that no user-visible program should be able to take down the Operating System, other wise it wouldn’t be so easy :-D.

A few Thoughts turn to PC-BSD

Considering recent threads in the PC-BSD forums, largely centred around the projects deficiencies I’ve made a decision.

I have the DVD version of PC-BSD 7.1.1 x86 down loading, when it is complete, I’ll load it into a virtual machine for testing. Once that is done, I will conduct a ‘deep’ inspection of the systems current state—including the source code. The aim of it is to analyze the distributions weak spots, noting the areas where it does need improvement. After that is completed, I intend to publish my catalogue of the projects deficiencies along with suggested paths for improvement. It’ll probably be posted here on my LiveJournal, with links shared in the appropriate forums and mailing lists.

Why do I feel like doing this? Well, PC-BSD while it has some good qualities, generally fails (in my honest opinion) because of how it is handled. As I have often said and people can feel free to quote me on it, PC-BSD feels like a project born in Kris Moore’s garage: that never left. And like wise, as I have often expressed, PC-BSD development practices do *NOT* reflect those of a real BSD project.

In my experience getting anything done there, that is also worth doing: has usually been caused by the community screaming the developers ears off… perhaps consistently so. So writing an open letter might poke the project into cleaning up their ship, or at least demonstrate to the rest of us what “Not to do”, lol.

Only had like 2 or 3 hours sleep last night at the most, and should we say, mornings here just reinforce, feeling like nothing but an asset in the equation :-(.

Been experimenting some in GIMP on a few things related to SWAT 4 skins; also to my joy, the DDS plugin compiles and builds fine on FreeBSD. I kind of like working on images in GIMP, doing something decent can really be time consuming, and since I’m rather inexperienced at putting such software through it’s paces, it incorporates a measure of exploration as well. Because the display on my desktop, basically makes anything involving blacks impossible to work with, I’ve been using my laptop more and more for image stuffs. Really, I prefer the touch pad; for everything I’ve thrown at it, except for gaming. (My laptop isn’t capable of running many FPS games.).

There is a lot of stuff I wish I could learn about software like GIMP and Photoshop, but all in all, I just can’t see myself doing that much work. There are just some things that I can see most effectively done in software, and other things that I just can’t quiet put into words… but could likely take a wild crack at with the right (artists) tools.

When I was younger, I used to spend a lot of time drawing, I loved to sketch and to doodle. It’s been more then just many moons, since I last drew anything by hand. Heck, the last time I even held a pen in hand, was probably at the doctors office… lol. Really, I’m not sure exactly why or when I stopped drawing, but it was probably between 2002-2003 or so.

Technically, I’m not to old to start again, and with the right level of applied effort, I could learn much more then I did. But, I think such would be more trouble then it’s worth, and worse, likely break down further what privacy I have offline. My mother studied as a cartoonist, so obviously she would likely want to butt her noise into things; and shall we say, things that I do to relax, I generally do not wish to be “Disturbed” over. That being said, the best things I ever drew while growing up, were probably drawn in the dark, by nothing more then TV light! Digging out more then a No.2 pencil would also be pushing the limits at my stealth skills considerably, and I’m very good at most things clandestine…

All of my life, I have looked for forms of expression…Things that let me put what I’m feeling into motion, let it take some shape and be free. Although arguably such things could be considered a form of communication, I’ve never cared to much about using it as such, so much as for its own sake. Personally, I consider myself somewhat self-centered—which is an attribute I utterly hate. But, for me it has mostly been a way of ‘surviving’ without being erased by the world around me. You could say that in my world and in my family, it is very easy to become trampled over here.

Sigh, sometimes I really don’t like my life.

nights log

So far it has been a fairly uneventful night. I’ve been contemplating taking up another language, I’m interested in both Latin and Spanish, but have started studying neither yet. Mathematically, I would have to favour Spanish… because shall we say, while exposure to Spanish is fairly easy for me, Latin is a bit of a dead language! Really the only languages of value out here, is what *passes* for English, and of course Mexican / Puerto Rican dialects of Spanish. Considering the simpler grammar, studying Spanish in the long run: might also help to improve my German, which is useless at the compositional level, but occasionally handy at the reading level. I think the entire world would agree though, that I should work on improving my English skills, or at least stop the mixture of US/UK elements.

For time passing, I setup sudo on my laptop; had done it some years back, when I was running PC-BSD, but haven’t used it since an updated overwrote my sudoers file, as I had forgotten to backup /usr/local/etc. I knew that PC-BSD was taking ownership of /etc/rc.local and making overwriting changes to sudoers, but didn’t use sudo enough to care lol. That’s one thing that has always pissed me off about PC-BSD, yet I have always respected about the *real* BSD projects: a concept of user edited files. You can play with /etc/rc.local and /etc/rc.conf on FreeBSD without getting biten, on PC-BSD you should use an rc.conf.local file: OpenBSD style. I’m always running the latest FreeBSD STABLE branch on the laptop, in this case RELENG_7, and anxious to see RELENG_8 become a practical reality. Heh, even on the OpenBSD box (which as sudo preinstalled) I don’t bother using sudo that much. What I like about sudo however, is the ability to skip ‘su – root’, and limit access in a more general way—to specific commands. It’s probably one of the best programs of its kind written, since su.

In getting playful, I split up my word lists (:help spellfile) in vim, into smaller organized chunks, and added a few more entries from FreeBSDs system dictionaries. As time goes on, I might expand things further, based on the kinds of texts I end up editing. All of my text editing is basically done in vim, so it also does most of my spell checkin’ by virtue of that. Of course, Vi IMproved has an excellent spell checker, and perhaps the only one I’ve met that could be considered superior to MS Words. While I utterly hate word processors, and find them to be useless paper weights; I generally consider Microsoft Word the best known example of spell checking lol. I’m happy to say though, that I’ve evolved somewhat in the past eleven or twelve years ;). Now if only I could do something about the having-to-type-as-fast-as-i-can-freaking-think-problem, maybe my writing might actually be worth something, someday lol.

The ‘Burbs was on TV, and coming on in a little bit is a good film that I really haven’t seen in a long time. It’s called Throw Momma from the Train, best described as a comedic remake of Strangers on a Train. I plan to log off, lay down, and try to relax for a bit…. hopefully relax. Probably will try to dig up another quick snack, something light but useful.

The internet connection has been offline for the last couple hours, first found out it was up when an instant message popped up on me mid-sentence! Hmm, got about 10 minutes until the movie starts, so it’s time tos tart winding down. I’ll probably be awake early tomorrow, assuming I get any sleep before work….. sigh.

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, ;-).

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.

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