Full throttle

So far so good, managed to burst through my weekend todo’s hehe. Completed my work for [SAS], got time to play a couple games, did the setup for ticket and documentation management needs on a personal project. Plus I’ve been aggressively moving ahead with the [SAS] Dept. of Agriculture map for SWAT 4.

All this while upgrading my laptop >_>.

Remaining to do with The DoA, is setting up the access from the outside spawn on level 1, to the window breaching point up on level 3. I’ve completed the relighting and half the general cleanup of the building, so the only big task: redoing the AI. I plan on setting up an interesting little “Scenario”, hehe. If I could, pushable barricades would be a nice touch but I’ve yet to figure that out in SwatEd.

Most of my time has been spent on the Encapsulated Package Installer (EPI) project. We now have a forum, issue tracker, and wiki system going. Things are not moving as quickly as I would like with EPI, but the past two weeks have advanced rapidly on infrastructural issues. When our new systems are more established, I’ll likely make references to it here.

Overall, the highlight of my weekend, has been (at long last) getting my invitation request to Google Wave accepted. So far it seems to be coming along well, but I have almost no one to wave with at the moment lol. The ability to invite 8 others came along with it; most of which I’ve mentally reserved for a few close friends and a couple for good uses. The main downside of Wave, is simply that e-mail and traditional IM systems have been around a really fraking long time; so it’s an uphill battle. One that I expect the world is not quite ready for yet, although it is very much a technology in the direction of our Internet future.

I’ve even found the time to migrate most of my gaming related pictures on to the WWW! The old home directory is getting thinner ^_^. Another thing I’ve gotten down, is transferring Live Journal entries from November 2008 to this Blog. I really need to pick up the pace on that. As much bother as it is, one thing I really do like about this migration procedure, is it gives me the ability to organise my old entries using lables; walks me down memory lane, and helps me to find ‘useful’ posts that were forgotten.

Life is busy, the serious issue is advancing forward quick enough for my tastes… rather then being bogged down and omni-tasked to death. My family is good at doing that.

Haven’t been keeping pace with my Journal for the last couple days, let’s just say I don’t want to talk about the Holidays.

Dixie spent about 2 days solid compiling ports, nearly 240 of mine and well over 800 when dependencies are included. That’s finally finished, so my beloved laptop is again ready for getting stuff done :-D.

Here’s the list I fed through updater.sh:

devel/pkg-config
devel/gmake
devel/autoconf-wrapper
devel/automake-wrapper
lang/perl5.10
devel/p5-ExtUtils-Depends
devel/p5-ExtUtils-PkgConfig
lang/python26
devel/py-setuptools
lang/python31
lang/ruby18
lang/guile
java/javavmwrapper
graphics/png
graphics/ruby-libpng
graphics/jpeg
graphics/tiff
devel/nasm
devel/php5
devel/glib20
devel/glibmm
devel/gamin
devel/gio-fam-backend
devel/p5-Glib2
devel/py-gamin
devel/py-gobject
devel/ruby-glib2
converters/libiconv
converters/ruby-iconv
devel/gettext
devel/p5-Locale-gettext
devel/ruby-gettext
devel/p5-ReadLine-Gnu
devel/p5-ReadLine-Perl
devel/p5-Storable
devel/p5-Term-ReadLine-Zoid
devel/p5-Term_ReadKey
devel/pcre
devel/pcre++
devel/php5-pcre
security/gnupg
secruity/ca_root_nss
security/gnutls
security/py-gnutls
security/nss
security/openssl
security/php5-openssl
security/py-openssl
www/libwww
ftp/curl
ftp/curlpp
www/p5-WWW-Curl
ftp/py-curl
ftp/wget
mail/php5-imap
net/php5-sockets
net/librsync
archivers/p7zip
archivers/unrar
archivers/unzip
archivers/zip
devel/bison
devel/bisoncpp
ports-mgr/portmaster
ports-mgr/portupgrade
ports-mgr/psearch
graphics/dri
graphics/libdrm
x11/xbitmaps
x11-themes/xcursor-themes
x11-fonts/xorg-fonts
x11/xorg-apps
x11/xorg-libraries
x11/xorg-server
x11/xorg-drivers
x11/xorg-docs
x11/xdm
x11/rxvt-unicode
devel/dbus
devel/dbus-glib
misc/hicolor-icon-theme
misc/shared-mime-info
x11-fonts/terminus-font
x11-fonts/webfonts
textproc/expat2
textproc/libxml++26
textproc/libxml2
textproc/libxslt
textproc/p5-XML-LibXML
textproc/p5-XML-Parser
textproc/py-expat
textproc/py-libxml2
textproc/ruby-libxml
devel/libIDL
devel/ORBit2
devel/boost-all
accessiblity/py-papi
audio/freealut
databases/sqlite3
databases/py-sqlite3
databases/ruby-sqlite
databases/p5-DBD-SQLite
databases/p5-DBI
databases/php5-mysql
databases/php5-sqlite
graphics/GraphicsMagick
graphics/ImageMagic
graphics/freeimage
lang/clisp
math/py-numeric
multimedia/libdvdcss
multimedia/libdvdnav
multimedia/libdvdplay
multimedia/libdvdread
textproc/docbook
textproc/docbook-tdg
textproc/docbook-xsl
textproc/doocbook-xsd
textproc/py-docutils
textproc/aspell
multimedia/win32-codecs
emulators/linux_base-f10
x11-toolkits/py-tkinter
devel/libglade2
devel/libglademm24
x11-toolkits/p5-Glade2
devel/ruby-libglade2
devel/libnotify
devel/libnotifymm
graphics/cairo
graphics/cairomm
graphics/p5-Cairo
graphics/py-cairo
graphics/ruby-cairo
graphics/ruby-gdk_pixbuf2
x11-toolkits/pango
x11-toolkits/pangomm
x11-toolkits/ruby-pango
graphics/cegui
accessibility/atk
accessiblity/ruby-atk
x11-toolkits/gtk20
x11-toolkits/gtkmm24
x11-toolkits/p5-Gtk2
x11-toolkits/py-gtk2
x11-toolkits/ruby-gtk2
x11-toolkits/qt33
devel/qt4
x11-toolkits/qscintilla
devel/py-qt4-qscintilla2
devel/qscintilla2
multimedia/mencoder
multimedia/mplayer
www/opera
www/libxul
www/firefox35
www/mplayerplug-in
www/linux-f10-flashplugin10
www/nspluginwrapper
x11-toolkits/vte
archivers/php5-bz2
archivers/php5-zlib
devel/php5-spl
devel/py-xdg
devel/xdg-user-dirs
graphics/driconf
sysutils/fusefs-kmod
sysutils/fusefs-sshfs
audio/cdparanoia
deskutils/notification-daemon
devel/cmake
devel/cscope
devel/ctags
devel/doxygen
devel/bazaar-ng
devel/git
devel/mercurial
devel/subversion
lang/pcc
devel/qtcreator
devel/xdg-utils
devel/desktop-file-utils
editors/abiword
editors/emacs
editors/mg
emulators/wine
graphics/evince
graphics/dia
graphics/geeqie
grahpics/gimp
graphics/hsetroot
graphics/inkscape
mail/hairloom-mailx
math/gnumeric
net-im/pidgin
net-im/pidgin-libnotify
net-im/pidgin-otr
net/rdesktop
net/rsync
shells/bash
shells/ksh93
shells/pdksh
shells/v7sh
shells/zsh
sysutils/bsdstats
sysutils/cdrdao
sysutils/cdrtools
sysutils/dvd+rw-tools
sysutils/e2fsprogs
textproc/antiword
textproc/webcpp
www/arora
x11-wm/fvwm2-devel
x11-wm/transset-df
x11-wm/xcompmgr
x11-wm/xfce4
x11/xrefresh
games/chromium-bsu
games/doom-data
games/doom-freedoom
games/doom-hr
games/openarena
games/prboom
games/supertux
games/wesnoth
games/xgalaga
accessibility/atk-reference
x11/libgnome-reference
x11-toolkits/pango-reference
devel/ORBit2-reference
devel/glib20-reference
devel/glibmm-reference
devel/libglade2-reference
graphics/cairo-reference
textproc/libxml2-reference
textproc/libxslt-reference
x11-toolkits/gtk20-reference
x11-toolkits/vte-reference

FreeBSD 8.0 day 2.0: upgrading ports

Since I have accumulated a lot of stuff since 7.0 was released, I have elected to do a clean slate — nuke it all and rebuild. The perfect chance to get rid of any stale leaves hehe.

# cd /var/db/pkg && pkg_delete -f *

As Mal.exe reminded me, this is equalivulent to pkg_delete -a; I forgot about that hahahaha!!!

while all the ports are being put under the hbomb, I set to work in an already running session of vim (since it depends on plenty of ports with my builds!) and wrote a list.

Every time I update my laptops ports, I use a customised “updater.sh” script, which does exactly what I want. The portmaster and portupgrade systems are only used when needed for an expedient coverage of issues marked /usr/ports/UPDATING. It was just smoother to write my own small script around the ports tree, then live with the qirks in portmaster and portupgrade: mine does just what I want and without the hub bub.

My updater.sh is programmed to parse a file, expecting input lines in the format of category/portname, which tell it what ports need upgrading. In my experience, it works better then portmaster and without that need for constantly asking “Are you still running?” that portupgrade has…

updater.sh is in the middle of fetching ~230 distfiles, and setting any stray build options. So that everything will be ready op for compiling all this junk. At least I can go play SWAT while things compile, but need all the stuff fetched and recursively configured before I can have fun hehe.

Will post the input list later.

The first FreeBSD upgrade to ever piss me off

I built world, two kernels: (my custom) VIPER, and GENERIC. I took about 2 hours using make -j6 on my lowly Sempron.

Fetched updates to the ports tree via portsnap while waiting for the install kernel to finish; I noticed that the boot into single user mode for mergemaster’ing was blazingly fast. Everything went well until the first multi user boot.

The blasted wireless card stopped working. Changing in the ath manual and the release notes info about Atheros support made me expect there might be problems. Plugged in a spare (broken) Ethernet cable and did a search on the FreeBSD forums where a thread mentioned cloning the wireless interface to a generic wlan0…. it worked.

ifconfig wlan0 create wlandev ath0

and volia!

So, just how did this creep up on me, and why wasn’t it in the release notes… (that anyone I know seems to have noticed)???

The manual for rc.conf explains this under network_interface:

If a wlans_ variable is set, an wlan(4) interface
will be created for each item in the list with the wlandev
argument set to interface. Further wlan cloning arguments
may be passed to the ifconfig(8) create command by setting
the create_args_ variable. One or more wlan(4)
devices must be created for each wireless devices as of
FreeBSD 8.0. Debugging flags for wlan(4) devices as set by
wlandebug(8) may be specified with an wlandebug_
variable. The contents of this variable will be passed
directly to wlandebug(8).

which makes the fix in rc.conf, adding wlans_interfacename=”wlan0″ into the mixture:

wlans_ath0="wlan0"      
ifconfig_wlan="self censored :-P"

In order to find some backstory in /usr/src/UPDATING, I had to GREP for it:

20080420:
The 802.11 wireless support was redone to enable multi-bss
operation on devices that are capable. The underlying device
is no longer used directly but instead wlanX devices are
cloned with ifconfig. This requires changes to rc.conf files.
For example, change:
ifconfig_ath0=”WPA DHCP”
to
wlans_ath0=wlan0
ifconfig_wlan0=”WPA DHCP”
see rc.conf(5) for more details. In addition, mergemaster of
/etc/rc.d is highly recommended. Simultaneous update of userland
and kernel wouldn’t hurt either.

As part of the multi-bss changes the wlan_scan_ap and wlan_scan_sta
modules were merged into the base wlan module. All references
to these modules (e.g. in kernel config files) must be removed.

If changing from FreeBSDs natural to wlan for that makes one damn lick of sense what so ever (eth0 lovers aside), I will leave it to someone who knows to comment…. because I don’t know, and I don’t really give a fart.

The release notes in provides two helpful sentences: wlan pseudo devices are now used and check out the ifconfig manual.

Other then wasting an two hours of my time over a change that probably isn’t even the bloody handbook yet, everything went smoothly.

Wow, either Internet Malware is getting worse then ever or Firefox 3 just sucks worse then ever >_>. Javascript just took over Firefox, tried to convince me to install an Antivirus program — loaded “Explorer”‘s my computer page (in Firefox), obviouly faked scanning files and finding a few thousand bits of malware, before trying to redirect me back to their “Antivirus program” — and setting a Windows XP like pop up right in the middle of the Explorer-replicating page, that’s so obviously not a pop up window but a web hack. The irony of this? I’m running FreeBSD, and the most damage the account being used can do is write data to /dev/null (a black hole file). Are Windows lusers really stupid enough to fall for that trick? Wait, don’t answer that question.

Dential update

Things went fairly well, saw the dentist on the 23rd and he proclaimed the problem after a short inspection, proclaimed it an abscessed tooth and infection causing the face to swell. He proscribed a choice of antibiotics, a heating pad, some pain killers, and a referral to a suitable dental surgeon.

According to Doctor Maddux, I should be fine in the short term as long as the swelling doesn’t interfere with my breathing (that was actually a comforting thought), but it can get serious enough that I could end up down the road at the hospital. Considering that my mothers bills over routine stuff totalled around $20,000—I have little interest in being admitted to a hospital, ready to keel the flug over! Our orders were to try and get the infection in check with the antibiotics and setup an appointment with the other office; and do so A.S.A.P. if things didn’t improve within a day or two.

Since I can sooner die in the middle of the street then see a $100 prescription filled for the heavy duty stuff, we went with the less effective but much more affordable antibiotics, which when subbed for the generics at the supermarket pharmacy, became 500mg tablets of Penicillin VK, of all things Penicillin lol. The last time I can remember hearing of Penicillin since WWII, was a pharmacist my mother once worked for long before I was born, who, or so she had told me years ago, used to give out pills of it to poor coloured in the hopes of curbing syphilis; although I’m not quite sure if that was even legal back then >_>. But hey, when the price difference in what the Dentist is prescribing is like $90~$100+ atomic bomb versus a $0 gamble that it might work… it’s worth a shot, isn’t it?

Borrowed a heating pad, but didn’t put it to much use. Willow trying to climb on top of it, and pushing a heating coil into my face made it clear that it would be a bad idea; reverted back to a wash cloth, and for the first time in my life was glad the kitchen sink can output burning hot water liquidy split. Either way, I found the heat on my left cheek very soothing.

For good measure, the Dentist proscribed a small supply of mild pain killers for use `as needed`, which when filled in for by generics, is a smidge of Hydrocodone and a hefty shot of acetaminophen/paracetamol (better known to most of us in the USA, generically as Tylenol, even though that’s actually a brand name not a substance lol). I’m not like the average American, who takes a pill for anything. For me to even take two Tylenol over a headache or toothache, means I’m probably ready to smash my head through a wall because of the pain. Throw the other crap in the mix and yeah, I’m not inclined to take it unless absolutely necessary. Life’s given me a nice threshold against pain anyway… so as long as I’m able to sleep, usually not much to worry about.

Spent a about 20-30 minutes walking around the supermarket while the prescriptions were being filled, my tooth was agonising and the left side of my jaw looked like I had cotton balls stuffed between my choppers and cheek. But on the upside, by the time we got to the checkout most of the pain subsided for a couple hours. Took the first dose of antibiotics in the car and noted that the pharmacists directions said that this Penicillin is better absorbed on an empty stomach—perfect for me.

Refused my mothers attempts to push food my way at every opportunity; hopped on the computer to check in with a friend on AIM, then hit the Proving Grounds for a couple. Soon gave up on playing SWAT 4, and laid down with the heating pad. I just crashed on the bed for a few hours, ended up napping with my head at the foot of the bed, cover drapped over me, and the dog near my feet.

Seems that the Penicillins only adverse effects on me have been causing me to feel cold, chilly at times I guess; but that is basically it. Woke up around 1800-something and had a bowl of soup with some cold meatloaf for dunkin’ for dinner; the hot broth was just what I needed. Having *officially* declared war on this S.O.B. of a tooth and infection, I inspected the problematic tooth with a tooth pick eariler, and flossed / brushed my teeth after dinner, plus rinsed out with mouthwash before bed.

After finishing my meal and brushing with a militaristic determination (lol, don’t ask), I settled down on the couch for a good nap: and focused every fibre in me towards kicking this thing to the curb. Woke up in time for the second dose of antibiotics and another short nap. By the time I got up to go to bed, I no longer had a toothach—much appreciated.

By morning most of the swelling went down, but if I place my hand to my face, I can still feel the buldge on the left. So far, so good, and I’ve not had any serious pain since before the second Penicillin pill. Managed to get to work this morning feeling pretty normal.

Have the appointment for next Tuesday programmed into my Calendar, and hopefully will be rid of this damaged, deranged, bastard of a tooth as soon as we can figure out how to pay for it… and hopefully any part of this infection will be K.I.A. by then.

Ma finally woke up a little past 0800 local, so I briefed her on the problemo—helps to be well prepared. She had me bite down on a tea-bag, which IMHO increased the swelling :-(. Ma called the CMC which directed her to a pharmacy, at which point I bet the $5 remaining to my name that any pharmacist we could ask, would likely say get a dentist. So she called the nurse we worked for, who agreed with me: this is a job for a professional. Have an appointment at 1900Z with a dentist that came recommended.

Tried to lay down and get some sleep, but it still feels like someones standing on my face with a work boot… Got up  and took a shower, but skipped ditching the whiskers, don’t want to put that much pressure on that spot. Headache is a bit better but the teeth/gums are worse.

I’m not sure what to expect, last time I saw a dentist, it ended in a futile sortie and being made to feel worse then the scum of the earth over the shape of my teeth. Today can’t go much worse, assuming I actually get to see the DDS

Inspecting an old decrepit mouth

I took “Stock” of my teeth tonight: it’s been a long while since I’ve inspected them closely, because their just simply hopeless lol.

The top two front centre teeth, what I call “Rabbit teeth” for the obvious cartoon reasons; are notes in the history book. The right centre top is long gone years ago, just the empty socket there, and consequentially it never bothers me lol. The left centre top, is broken with the back of the tooth still protruding a wee bit out of the gum line. Other then parts of what looks like tooth-interior visible at the edges of the damage (or tarter from hell), it doesn’t look that bad.

To their immediate flanks, the teeth next to them are ones that suck. To the right it’s a broken tooth, that protrudes further (about half normal length) then the left top centre. The principal difference being this one looks black while the other is mostly white. On the left, is a spot from the base to about half way down to the top of the tooth, that looks like a poster board for tooth decay :-(.

On the bottom, the front centres are in good shape as ever, although (as have been for many years) I can see part of the teeth quite a distance down, where the other teeth I would see gums, I see the teeth; I’m not quite sure what significance that is. The way my teeth are settled, is probably a good example of what happens if you don’t have braces (as my brother did in his youth), but hey, I would probably have to flash back to my 5th birthday or something, if I wanted a nice looking smile lol. The teeth directly adjacent the bottom centre pair, are in much better shape then their mates on the top; the only thing going against them is thick tarter build up.

It would take a closer inspection then I can do without tools, to tell more details but most of the other teeth on the top or bottom look fairly good, just highly unaligned. The hot spots are on the right, third bottom tooth from the back: there’s just a wee bit of tooth visible toward the outer edge of the socket, other wise it’s a KIA; I can remember spitting out chunks of it a couple years back. On the left, about second from the back, the tooth is missing about a third of its visible mass, on the inner (tongue) side. That’s the area where I usually get a toothache every now and then. I would bet an x-ray of that tooth would make a dental person upset. On the upper right, while I don’t see anything, there’s a hard spot in the gums, that I would guess is probably part of the teeth or something protruding from the gums.

My gums don’t bleed often, so I hope that’s a good thing; although they did when I first started brushing them on a semi-regularly basis, that was ages ago. The only time they bleed, usually is when eating certain kinds of food, like a sandwich; then there’s usually a bit fo blood from where the top front portion of my gums would’ve met the bread.

The reason for my fresh interest in my teeth, is because last night I noticed a dull throb to my lower left side of the jaw (around that one tooth), and this morning I noted the gums on the lower left are swollen. While I don’t think anyone else noticed, I can both  feel the bulge and see it in the mirror. Took a nap for maybe 45 minutes and the swelling seems to have gone a little bit, but it’s still feels like an Everlasting Gobstopper is sticking out of my jaw. Before logging on, I flossed and brushed teeth as usual, and tried rinsing my mouth out with saltwater for good measure.

This is what I call the “Folly of youth”. Unlike a few other avenues in my life where things are miserable, this one is purely of my own causeing: because out of the 7,800 or so days I’ve been alive, the number of times I’ve brushed my teeth in the past 21 years, are probably closer to 1,000 times or less. Some years ago I started brushing my teeth and using mouth wash at a dentists orders, although that was of course a lost cause; it was even on the news last year, that the medial stuff we were on back then, weren’t covering anything worth a fart for dental and people were shouting about it. After that fiasco ended, I tossed the brush back to it’s corner and gave up, until some months back when I “Restarted” after a killer toothache—reequipping myself with floss, brush, and paste about the time I left doctor Cook with a bandaged toe. Since then, well let’s just say I’ve only started the second tube tonight… lol. My routine is generally a nightly floss & brush, since mornings are just disasters anyway…

I have a bit of aheadache now, and still a throbbing  where the gums are swollen. Then again, I’ve had a headache most of the damn day, between these gums and a parakeet screeching my ears off all freaking day. Going to skip most of the tasks I have for the computer tonight, and just try and get some sleep, after a wee bit of snack.

These teeth are what I get for being a stupid ass.

DINNER OUT, best live op I’ve had in years

Today was the go date for [SAS]_Trp_Walkers Live Op, DINNER OUT. The first one he’s made actually, and doubtlessly, one of the best I’ve gotten to participate in, in quite a while lol. It really was a good LO.

When I saw the floor plans he attached today, I remembered a note I had scribbled down last year from [SAS]_SSM_Medic. He used it for some SNCO duties, and I got to thinkin’, what if it supported loading external images into it? Well sure enough, it did :-D. Spent a while playing with our `new’ish` toy, Walker and DUKE helping with the testing. It also fell on my head to lead the live operation, since Walker delegated it to the highest head on the totem poll.

After the call for the LO came up, I got everyone into the briefing software, and conducted a mission briefing. The plan was quite simple, Alpha and Bravo would link up on the top floor, Alpha providing support fire for the entry, and Bravo silently securing the flank—then taking position for a hard entry. After the “CHEESE GO” signal was to be given, we would’ve launched our raid: Bravo doing a breach bang entry while Alpha supported with tear gas and marksmen fire. That was the plan anyway, and we would’ve setup a similar assault in the next choke point on “PIZZA GO”.

What really happened, in manoeuvring Bravo into position, we came to a rather sticky set of situations. The areas we had to clear were surrounded with grated catwalks overhead; we took care of the first entry like clock work, but it was the second area… our rally point for after cheese. There was two doors leading into the RP, the right one with an X-Ray having his buttocks planted firmly to the doorway, and a buddy standing on the stairs next to him. The right door, had spotty obstacles and another X-Ray within arms reach of the door. I made the call to maintain the stealth, and informed [SAS]_Sgt_Duke comming Alpha, that we may be compromised within the next 15 secs; he was ready. We stacked on the left door, aiming to drop the sentry without much alarm; we did that and took care of the guys on the other side, before moving into the freezer behind our way point: a double door to be wedged before the take down on cheese. When we got there, the door was open and we took a lot of flak, [SAS]_Trp_COT going down almost on the spot… a hostage was shot in the distance before we could get the situation locked down—Alpha went GREEN and took out the shooters. Once I got bravo to our final assaulting position, commu with Duke showed we should have little resistance, so I signalled our entry with just a quick bang clear. While working around a bullet proof cage to kill a remaining shooter, I got quick draw mcgrawed out of the action without a chance to fire lol. In a couple minutes, Bravo was down to [SAS]_Trp_ESCRT while [SAS]_Sgt_Duke and [SAS]_LCpl_DeCapi took charge of the clearing effort. Soon after that, ESCRT went down leaving just Duke & DeCapi, when DC crashed, it left Duke to save the day on his own lol.

In retrospect, I should have changed the plan on the spot, split my Bravo team into RED and BLUE on each door: breach bang entries and push on, having Alpha engage cheese while that was happening. Instead, I aimed to keep things on the hush & hush, rather then take the gamble on hostages getting off’ed.

I chose Duke to lead Alpha team, because I wanted my best man ready in case things blew up in my face… and I knew his level head could cope with the pressure up there in the OP lol. While it would be easier for me to manage the assault team (Bravo) if I was up front where the action was. It was watching Duke and DeCapi clearing the map together, that really impressed me, for the first time in quite a while. Watching them in action was like looking at the epitome of [SAS] teamwork and tactics in action. Two [SAS] members knee deep in trouble with no real shortage of OPFOR to shoot at, and Duke brought order to chaos in the end.

A little bit ago, I sent an exaltational e-mail up the CoC, recommending them both for medals in the new awards matrix. There display of how we work together, and Dukes actions during the LO was that good – I generally don’t send recommendations for such things lol. But I think, after all the Live Opeartions I’ve been in, Duke deserves a citation for his effort, and DeCapi is also worthy of commendation. There virtual battlefield action really was awesome. Since our refined awards matrix is more focused towards live ops and trainers, Duke just made my first two cents for our equivalents of battle field commendations.

In [SAS], the only people I’ve ever felt worthy of serious recognition for their contribution to the team, are [SAS]_Maj_WIZ and [SAS]_CO_Random, because I know they’ve given more to [SAS] then most of us combined. WIZ in particular, I’ve been around to see better then most, how much he’s put into this group. Those that know me, I don’t do so highly very lightly lol.

Without a doubt, best live op I’ve had in ages!!!

A little fun with git: publically exporting your local repositories

One of the great things about git, is it’s distributed nature; in my humble opinion, being able to tell your partners to pull your latest code is a useful stop gap for code review (without better tools… for now, lol), then having to e-mail the flubber as a tarball.

In my case, I maintain my working tree on Dixie, usually stored under ~/Projects/ some where. To prevent freak data loss, I also push things out to bare repositories stored on Vectra, under /srv/git. Those repo’s on Vectra are my “Centrals”, which will usually get pushed out somewhere else (e.g. SourceForge) if the projects public. The fact that my home directory on Dixie is also backed up is also a bonus hehe.

In order to setup a suitable means for people to clone, fetch, and pull from my git repositories, I edited my Routers configuration, and set up a NAT (Network Address Translation) to forward a suitable port to Vectra. In Vectra’s pf rulesets, I unblocked said port.

For write access, I use SSH and public key authentication to manage the repositories: and no one is permitted SSH access to any of my machines, unless they manage to break into my home wireless (or penetrate and suitably spoof my workstation), discover my username and hostname mappings, and brute force their way through the key pair before the internal firewalls tell you to F-off for good ;). In which case, good job monsieur or mademoiselle psychic!

Public read-only access may be setup with the humble git-daemon. Read-only access with controls, well is a task for something else ^_^.

The git daemon can be a fairly strict prickly pare about what it does export, so I feel reasonably comfortable with it. I created a simple whitelist file, called /srv/git/exports that describes what repositories may be exported: the file format is a simple line indicating the path to the repository to export publically, blank lines and those starting with a # comment being ignored.

I wrote a simple /etc/rc.git-daemon script that I can call from /etc/rc.local when OpenBSD starts, like so:

Terry@vectra$ cat /etc/rc.git-daemon                                            
#!/bin/sh

if [ "$1" = stop ]; then
logger -t GIT stopping git daemon
kill -9 $(cat /srv/git/git-daemon.pid) && rm /srv/git/git-daemon.pid && logger -t GIT git daemon stopped
else
logger -t GIT starting git daemon
echo "$(cat /srv/git/exports | grep -E -v '^$|^#' /srv/git/exports )" | xargs git daemon --user=nobody --group=git --pid-file=/srv/git/git-daemon.pid --verbose --detach --export-all --syslog --base-path=/srv/git && logger -t GIT git daemon started

echo -n ' git-daemon'
fi

After this is executed, it’s possible to:

$ git clone git://my.ip.addr.here/exported/repo/relative/to/base-path

as an extra bonus, since /srv/git uses my ‘git’ group for permissions but my umask by default tells everyone to screw off, I have to manually set permissions on repositories I wish to export, before someone can access them through the git-daemon.

Ok, so I’m nuts.