I’m really starting to get addicted to Google Chrome’s ability to auto-resize it’s windows when dragged and dropped into the right spots. It’s a feature of some unix window managers that I’ve rarely used, that’s starting to make me wish it was built into Windows XP, instead of being a trick of the Chromium trade 8=).

At long last

My forum account on www.sasclan.org is finally ready op! It was unsuspended a few days ago, once WIZ completed the usual procedures. Kicking the bigger system into obedience, +1 for [SAS] admin power. Last time, I had to respond to a chit chat post via private e-mail.

One thing that I do not miss about being in [SAS], is having to deal with the ‘magic’ behind it, any more than it takes to make a forum post. Although I know my way around blindfolded in spots… I ain’t never gonna miss that code base.

SWAT 4 at it’s finest

When you creep up behind a suspect and punch him in the back of the head.
Then you suddenly bounce off the floor like you’ve been hit by a grand piano right in the kisser, because he just shot out his backside ;).

What exactly, ‘is’ my development environment?

I reckon this is something rather confusing these days, in most cases among younger folks, it will likely mean an Integrated Development Environment. To me, it just means the environment in which one develops stuff ;).

Being a lower level polyglot in terms of languages and tools, I generally keep a ‘pallet’ associated with each of my main languages, keeping things quite simple to work with:

  • Build Tools:
    • Some viable form of Make is required, generally I’ll use local brew if an extension is needed. I prefer GNU Make over BSD PMake, as I find it more reliably cross-platofrom.
    • CMake, while often little more than a poorly strung together bother, many projects now use CMake based build systems. It is actually a good tool but I don’t favour it for use outside of a single OS family.
    • SCons: powerful and effective, but often irksome to get a portable build. It’s usually worth having available.
    • Ant: you never know when you’re gonna need it.
    • Local brew of IDE and their background stuff, for example Visiual Studio for the vcbuild/msbuild modules and/or Code::Blocks. If I had a Mac, I’d likely have XCode handy.
  • Documentation Tools
    • Unix: troff/nroff and the usual macro packages. I actually like it.
    • DocBook and XML/XSLT processing utilities. LibXSLT comes in handy.
    • ReSTructured text and company
    • Any local language related tools (e.g. for Java, Perl, Python, and C#)
    • Doxygen: a multi-lingual documentation generator.
    • Exuberant CTags: improved and vastly multi-lingual upgrade over ctags.
    • TeX and LaTeX setups. I like TeXLive.
  • Source Code Management / Version Control Systems
    • Git — must have!
    • Anything I need to be handy with:
      • CVS
      • Subversion/SVN
      • Bazaar/BZR
      • Mercurial/HG
  • C/C++
    • I generally setup and maintain several compilers, multiple versions being welcomed. Generally I try to hang onto a member of the GCC 3 and 4 branches, and a fairly recent version of Microsoft Visual C++. Under unix-like and Windows systems respectively, I also tend to carry about a copy of PCC and Watcom.
  • Java
    • A suitable JDK, or a complete software development kit where appropriate.
    • The GNU Compiler for Java can be useful.
  • C#
    • Mono and preferably the full stack of technology.
    • Under Windows: several versions of the .NET framework and at least a workable version of Microsoft Visual C#.
  • Python
    • A copy of CPython, preferably both modern versions of 2.x and 3.x releases.
    • The usual parts of CPython that some distrios strip out, like SQLite3 or Tk bindings.
    • Another implementation for testing (e.g. IronPython) is appreciable.
  • Perl
    • A standard perl distribution, preferably the current major version or the one before it.
    • Common perl modules one is actually likely to use someday.
  • Lisp
    • CLISP for general use, i.e. common lisp
    • Armed Bear Common Lisp (ABCL) in case it eases deployment issues
    • GNU Guile: my normal way to use scheme.
    • Bigloo: a scheme compiler that’s worth poking around
    • Some other readily available Scheme implementation available, preferably one that is at least moderately R5RS compliant
  • PHP
    • Fairly recent version of PHP setup with
      • Command line interp.
      • Suitable Apache modules
      • The CGI/FastCGI friendly thingy
  • Ruby
    • Current local-main line version.
    • Rake build tool.
    • A collection of handy modules
  • UNIX shell scripting
    • Something fairly portable, ash/dash based is nice.
    • GNU BASH.
    • Real and public domain versions of the Korn Shell.
    • ZSH, my favourite.
  • Go
    • Standard distribution compiled from source.
GUI and Console versions of Vi IMproved being a very obvious requirement ;). I also tend to keep versions of Emacs, some flavour of MicroEMACS, and SciTE available in a pinch.  I like having ed available.
Generally some form of webserver, be it a quick tester (ala Python) or dedicated (I like nginx and Apache), is usually required: plus a decent web browser with javascript support.
Profiling, code generation, analysis, and debugging tools are almost universally welcome. I in particular like to keep Valgrind and GDB handy for a rainy day.
Like wise I prefer having certain libraries fully integrated into that stack, i.e. where appropriate having interfaces the common GNU/Gnome libraries (GTK+/cie), Qt3 and Qt4 libraries, bindings for SQLite3 and a major player (MySQL, MSSQL, etc), OpenGL, and so on and so forth. I tend to leverage both languages and tools whenever possible.
Someday I’ll likely incorporate Lua, and dialects of Forth and ML into the mixture. Like wise I prefer a reasonably NAWK friendly version of AWK to be available. I also have interests in picking up Prolog, Haskell, Erlang, Ada, and a few lesser known languages, but just don’t have the time to screw with such things a lot these days :'(. 
Simply put, where I go, a whole freaking lot of development tools go with me!

A fact of real life

The only opinion among those on earth, that truly matters, is your own.
Anyone that matters, can try to understand or just agree to disagree and be at peace.
If anyone matters to you, you will do like wise when necessary.
For the rest: they can stand aside or they can be left behind.

Fedora Vs Debian Vs Slackware

Now  having less need of maintaining a Windows XP install, last night I began more thorough computations about setting up a GNU/Linux distribution on my desktop. I would certainly like to see how the SWAT 4 support has come since my last outing, and this time I intend to use regular WINE.

As always, the real question is which distribution to use? Arguably the least trouble would be to setup Ubuntu 10.04, but I’m more familiar with Debian and Slack’ based systems as it is. This time, I was thinking about going with Fedora: I’m not fond of Red Hat Linux and it’s modern relations, but it would be a fresh change.

The main thing that concerns me with Fedora, is the stability and upgrade path, mostly the amount of time needed to abuse things. Ubuntu is fairly painless, at least when you run Long Term Support (LTS) releases on your stable systems. My only gripe with Debian, being it can be a chore to get reasonably up to date debs, and sometimes (for example with Pidgin) it can be preferable to be ready op on that. Although I’ve no big qualms about building from source, when the developers actually knew wtf they were doing about getting it building in the first place.

I’m more of the OpenBSD type, but Linux as a “For the masses” system, is much easier to live with for me, then Windows XP. With 350~360 gigs of disk space free, running full development environments in twins won’t make a dent either.

An explaination, just for the sake of clarity

In my previous journal entry, I wrote this in part of it:

the most offensive action that I’ve taken on NTFs forum, was reminding Rouge not to boast without something to boast about, and he wouldn’t be the first person to get that rudeness from me.

I am referring to an incident in the public announcement thingy on NTFs forums, namely the responses I made to Rouges statement regarding  that they could quickly make miracles but quality takes more time. (That was an indirect quote: obviously.)

My words about the effort involved with setting up a forum, were correct. I know, because I’ve managed or moderated several forums in my own tenors0. Like wise, I chose those words because I already knew that NTF had a private forum running for several months or so: Hunter some what leaked it publicly. Normally when placed in a situation like NTFs leadership was, you want to get a moderate website put up quickly, and begin building your forum. That includes a public sector to attract people to your unit. NTF on the other hand, appears to have kept quite secretive about things, not surprising when one considers that they would likely perceive [SAS] as a potential enemy, and even post-[SAS], I may be considered so as well.

Obviously, I have felt a bit uncomfortable that they would run it so close to an underground. As I have always said, I prefer to run things above board whenever possible. Rouges post when parsed, by someone who has dealt in American English since birth as I have, and as ‘technically’ focused as I have in the past lustrum++, implies that NTF having a forum was much newer, then to my knowledge is widely known, and in my eyes is a cline to saying you did in two hours, instead of X weeks below the public radar.

Making a statement about how easy it is to setup a forum, in fact even if it’s hundred times as complex as [SAS]’s was when I left, it still would be a cake walk for NTF to have set it up any time they pleased: in fact it could be automated if it was that big and complex, thus making it even faster. Making what information I have in that regard, known to several NTF members before hand, was my ‘polite’ way of pointing out what I’ve seen. Being in [SAS] uniform at the time, I had to be more nice about saying that, and won’t rule out Rouges comment as potentiality being a fly on a hook ;).

Where I was my ‘most offensive’ on their forums, i.e. I was essentially being rude with the last part: where I made a reference to the admin teams choice of software and their leaderships C31 structure. That single sentence at the end, was for me, borderline on being disrespectful, if not being so.

I also chose to phrase it that way, in order to give Rouge a chance to show that he’s still up to snuff under fire, rather then disappoint me by turning it into a flame, as only an unfit officer would. I would’ve called it to a prompt end if that had happened. Instead (then just a Captain) Timbo took it home with the up most professionalism, exactly as I would expect from him (the sternness included), and exactly as any decent officer should have done when faced with that, and how I expect Rouge would have (minus the sternness). Timbo stepping in however, removed my opportunity to size Rouge up for any change in his usually excellent demeanor. Doing that was no less then satisfying my curiosity for the fly: don’t forget I’ve known NTFs leadership since they were babes in the woods, and know well how their management style tends to take shape. Normally I would not take such an action, even (as I prefer) so overtly, but after Rouges actions of late: I considered taking that target of opportunity justified2. Even better, if properly handled, it would reflect well upon my friends in NTF, something they could seriously have used in formalizing their clans public view. Would you rather face me, or a real prick? :-P.

As I told a dear friend after wards, I’ve no real intention of being rude over there, but I am still one who believes in expressing his opinions honestly. Being blunt rather than overly sugar coating stuff, is also a virtue in my book. Perhaps developing programming skills has had to big an impact on my brains thinking :-o.

Footnotes:
0: DEx, SLDF SF, SAS 22nd EVR, and PC-BSD all come to mind in various capacities.
1: it means “Command, Control, and Communications”. Basically how you issue commands, keep your men under control, and address the issue of communication between components. It is one expansion of the more widely known C2.
2: he has privately admitted to what equates to breaking his word (i.e. lying), in such a way that I won’t stand for it.