As is my custom when encountering a blog post, I’ll usually check the current entries and grep for anything of interest after perusing what I came for; in this case, it was a blog post that floated into mention on #vim, during a short discuesion of git and hg. When I hit the ‘home’, I noticed a pair of entries: 1, 2; on the iPad.

It reminds me of why I stuck up my nose at the iPad about 5 seconds into the news report: because if it’s not *at least* as easy to screw with as OS X, it’s just one more over priced pile of garbage as far as I’m concerned… Then again, I’m kind of an odd ball, that I expect mobiles and tablets to be at least as good fun as early microcomputers were 15 years ago ^_^. I wonder how many decades I’ll have to wait for that in the American market place :-/. It’s actually possible to get outdated PDAs that are more fun, but unfortunately require some what of an import cost and learning some Japanese lol.

Updating Qt, hehe.

Tonight I updated SASs TeamSpeak 3 server, and discovered that my TS3 client was too darn out of date to work with it, haha. After updating things, I also noticed in the nifty about dialog they shipped, that the version of Qt used, denoted the GNU LGPL v2.1.

It has been a good while since I updated Qt on my windows system, last time was about one year ago. So I dropped by Qt’s website to download an updated SDK, and also found that they had MinGW and Visual C++ 2008 library packages available. Last time I really focused on Qt/C++ development, Microsoft Visual C++ was just becoming supported by the Open Source Edition (OSE), having long been supported by the commercial editions of Qt.

In perusing the website, I noticed that GPLv3 is now also a supported license for Qt. They really have gone through a few licenses over the years, I still remember when the OSE was a chose between GPLv2 and their own Qt Public License agreement.

While I really hate doing cross platform development in C++, Qt is both the least painful widget toolkit I’ve ever seen, and really makes the process *a lot* less painful. Well, as less painful as dealing with template implementations between GNU/MS C++ compilers anyway.

It is note worthy that the SDK only includes the necessary library files to link using MinGW, the port of the GNU Compiler to Windows. So if you plan on using Microsoft’s compiler, you will want the vs2008 package, or the source code if you need to shoe horn into an older version.

One thing I like about all the *decent* operating systems shipping a system compiler on their install disk, that usually means pre-compiled packages will be in sync with your compiler. Microsoft Visual C++ is not quite so lucky, since being a separate product, most people shipping binary packages of libs/headers, usually support 7.1 or 8.0 instead of 9.0. Oh well, maybe when VC10 is released :-/.

Yipee-Kai-Yay Terminus font now avail. on Windows !

As some no, after spending a night of debugging only to learn that I had typed structobj,member instead of structojb.member, after a 6-8 hour coding run, I went in search of a new font. The font I found, was Terminus, and ever since I have _absolutely fucking loved it_ in fact, I can’t even look at my terminal in another font without missing it.

When filing a bug report to the libmng folks, I left a comment in the bug entry about using a font where O != 0; then went in search of my dear terminus, and then found this and just had to install them :-D.

Terminus is my favourite font, but my only compliant has been needing X to actually enjoy it…. now that’s solved!

Thoughts drift to backup technology

As has been on my todo list for a while, is setting up cron jobs for running dump on my file server, as an “Extra” safe guard to the fact, that my data is mirrored across three different computers already, hehe. (I also do periodic backups to a separate cold storage partition, and priority files to CD-R every year or two.)

My main concern there of course being, how to do it without compromising disk space to much, after all we’re talking about a lot of crap lol. In writing my test script, I’ve also experimented with piping dump into lzma for compression, but at least with Vectra’s scarce resources, is a bit toooo much for the box to handle the data sets involved. Then I started to think, gee, wouldn’t it be cool to just keep a SQLite database that stores logs of changes (cron’d from a script), and then periodically run ZIP on the target, excluding unchanged files since the last backup. Effectively creating a smart form of dump, that functions at a different file system layer (e.g. like tar or cpio).

Then I started to think, well, the best existing solution that I’ve ever bumped into my travels, is a program called Bacula, but I’ve never had to to explore it. With a little poking around, it seems that Bacula is very much the kind of system that I would like to have.

Which poses three questions:

  1. How well does it work with OpenBSD?
  2. How well does it handle disk space/compression tasks?
  3. When will I have time to read all the excellent documentation?

So, sadly it will probably be some time after the new year has come and gone, that I’ll have time to return to this loop; my RTM updated accordingly. On the upside, if three hard disks in separate locations of the building, and with very controlled data replication patterns, some how fails before then…. the entire building will likely have collapsed, so it would be the least of my worries lol.

A little $HOME, NPM, and EPI fun

Been cleaning up my home directory a bit, particularly ~/Projects and the dumping ground in ~/2besorted lol. I’ve managed to find a lot of old notes, even have imported a couple saved items into del.icio.us. While I’ve mostly dropped all my bookmarks, there are still a few files with old bookmarks in them. I merged them, using the old `cat files | sort | uniq > newfile` method ;). Sometime I’ve gotta shift through them and see what’s worth keeping. Since ma.gnolia’s great lossage, I’ve still have been maintaining the habbit of using Google and my brains limited RAM as a substitute for bookmarking >_>.

I’ve also taken some time to sort out the change over from Subversion to Git on NPMs source forge page. Last night, I started work in converting my updater.sh to Python… figured to dub it ‘neo’ and incorporate it as part of NPM. Hey, I’ve always wanted to remove portupgrade from the picture… lol. The neo script is basically meant to be comparable to portmaster or portupgrade, and whatever century time brings me back to Neo Ports Manager, will likely serve as the backend. However, I must admit, unlike NPM, this part is somewhat of a selfish agenda at heart: it will be able to do more then my updater.sh can without help.

Finally found the time to add a few pages to the wiki being setup with the Encapsulated Package Installer project. The stuff there is still mostly bare, because I’ve been focused else where’s the past couple of days. Mostly the content added was centred around development tasks, going to have to settle down and plan out what changes need to be made. All in all, things have been moving foreward. When it comes to my personal projects, EPI has the lead seat, and the rest are enqueued, in terms of programming.

That being said, of course I have my strokes of working on other things when shorter periods of time are free: the odds and ends, hehe.

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.

Operation Triage: Day 1.1 at the RTM

Last night I setup an account on rtm for evaluating it’s usefulness to my todo list problemo. It provides all the features that the gmail/gcal/ig integrated tasks buddy from Google is lacking, and integrates perfectly into their workflows—awesome job RTM!

Remember The Milk (rtm) is a web based application and supporting service, for managing tasks; you could probably keep your grocery list on this thing too, if you had a decent phone. It supports the obvious stuff, due dates, time estimates, repeaters (oy), and combines it with attributes more often found in social systems, like tagging and sharing. The amount of ways to work with rtm alone make it easier to mate with ones workflow on a level, that most web apps on the net could only dream about reaching. Without a doubt, Remember The Milk has been designed to be the supreme queen in web usability, and provides such a nifty set of keyboard shortcuts that give Geeks like me an extra edge on top of it. I almost think my mother could use this website… it’s that easy lol. The power-user features also make it well worth learning how to utilise every ounce out of the system. So far the only negative thing I can say about rtm, is that adding a due date on the rtm website doesn’t magically add it as an event in my gcal, but alas no one is flawless :-P.

I’ve imported all my todo list, after filtering the 5 month out of date file through my brain log along the way, plus put in everything everything on the immediate plate; took me about an hour. Everything of major importance has been marked accordingly with reminders scheduled to be sent to one of my Instant Messengering accounts. Three things that attracted me to rtm: the ability for using tags (as fellow delicious & gnolia fans will enjoy) in addition to regular task lists; reminders by most forms of contact like email, sms, and virtually every IM method short of an automated phone call; not to mention integration with Google Mail & Calendar.

Currently I’ve created Cleaning, Contact, Projects, Reading, SAS, and Writing lists to go along side the standard issue Inbox, Personal, Study, Work, and Sent lists. Tags are being used so I can quickly study what’s on the list according to subject matter; this way when any of the various hats needs a quick servicing within a group of tasks, I can dip into those open loops and screen out the others. Smart lists also make it possible to quickly study tasks by meta-criteria; my first smart list is one to show me all open tasks, that have a priority marker set.

As I told a friend earlier, I essentially don’t have to do nothin’ but stay white and die, the huge ass list of todo’s is mostly projects I’m involved with, and usually get clobbered by the fact that I get interrupted 200+++ times a day by the surviving parental unit, until they fade off the days agenda. Fortunately most of my tasks are in the format of, to do before hell freezes over—but most I would like to get done within the much shorter term! That’s where Operation Triage comes into play.

Everything is being trimmed back in accordance with what I have time and energy to deal with at this point in life, and to get as much of the stuff that I want gotten done organised so it doesn’t “Fall off” the water fall. Continently the only urgent loops being to get my learners permit, tend to SAS business, and my most important projects. Other tasks are growing closer to completion, and RTM will help me keep them in line with reality.

For the most part, these tasks in the rtm system amount to crap I need to read (lower priorities :'() and things that I need to write: which is easily sorted by priority. The hard part is Just Getting It Done without having to threaten anyone along the way with bodily harm :-/. Actually that would be a productivity boost I’m sure, but it is most strongly against my gentle nature 8=). I need to do further study on how best to collate the development tasks, since they don’t quite fit into a box, so much as a creative juice meets free time equation.

To do list, I shall conquer you!