November 30, 2006

Book of Mozilla

If you are in a Mozilla browser, click this link here. Happy Easter!

(Thanks to nixCraft)
Posted by jdarnold at 08:59 AM | Comments (0) | TrackBack

November 26, 2006

Officially Awesome

The aforementioned PC-BSD v1.3 beta 2 has finally be officially released and I'm downloading it now. It really was an amazingly smooth installation and I'm looking forward to seeing if this final beta version is the same.

1.3 BETA2 Released!

Posted by jdarnold at 08:47 PM | Comments (0) | TrackBack

November 24, 2006

Turkey Tech Toys

So I couldn't resist a quick trip to the store this morning to buy some new tech toys. For those international types, yesterday was the Thanksgiving holiday, whereby we eats lots of food and watch plenty of (American) football. And today, the day after turkey day, has become something of a shopping holiday, where the stores open at 5am (or earlier!), offering "incredible" deals. Generally, I don't bother with it, as I think the deals are vastly overrated.

But Friday is one of my hockey mornings, so I'm up early anyway, so I checked out the deals at some of the tech stores. And found some sweet ones at CompUSA and Staples, which just so happen to be next to each other in a little plaza on my way back from hockey, so it worked out nicely. I grabbed six things, and now I just have to worry about getting the rebates in before they timeout. Here's what I got:

  • 200gb Maxtor EIDE drive (US$20) - yup, you read that right - 200 gigabytes for $19.99, after rebates. I didn't even need another hard drive, but I couldn't resist
  • Saitek Gamers keyboard ($20) - My keyboard and mouse were getting a little long in the tooth (I use them about 10 hours a day usually), so I'd been thinking about upgrading. I just couldn't pull the trigger on the fancy Logitech gamer's keyboard, with the little LCD screen. It was $50 while the Saitek was only $20. Both are backlit, so that's pretty cool. But I'm a "Natural" keyboard guy, so I'm not sure I'm going to be able to use this fulltime. But at least when gaming.
  • Logitech G7 Laser mouse - with the money I saved on the keyboard, I splurged on the mouse. Very nice 2000dpi laser mouse, with on-the-fly sensitivity adjustment and two batteries. Very nice looking mouse (nope, this keyboard just won't work full time. My fingers feel cramped and my arms are already tired. Gonna have to splurge on a new Natural one).
  • 5 outlet strip (free!) - can always use another one of these
  • 60 pack DVD-R ($3) - don't really use DVD-R much, but for a nickel each, I can learn to do backups with them. I noticed my BootIT NG will make an image of a partition using one too.
  • 2 1gb SD memory cards ($20) - My wife's Treo uses SD cards and this was a real deal. Will make a great stocking stuffer (can you tell she isn't interested in my blog?)

So it was a very productive morning. Like I said, I don't think this keyboard is going to work out as a full time one, but it should work for my gaming needs. I reboot into Windows to play games, so it won't be hard to just plug this USB keyboard in on the way.


Posted by jdarnold at 06:23 PM | Comments (0) | TrackBack

November 21, 2006

Bullets Over Broadway


Posted by jdarnold at 03:45 PM | Comments (1) | TrackBack

What language do you want?

A couple of interesting programming language links to pass along.

First up is a page which gives you the source code to print out the lyrics to the (in)famous road song, "99 Bottles of Beer", in over 600 programming languages, from the popular (Java) to the obscure (Piet - programming in color). Very cool list of virtually all computer programming languages:

99 Bottles of Beer

Here we have a page that attempts to rank programming languages based upon popularity, using a bunch of different sources. As someone who does most of his programming in C++ and C, I'm glad to see them maintaining their ranking!

TIOBE Software - The Coding Standards Company

Posted by jdarnold at 08:42 AM | Comments (0) | TrackBack

November 18, 2006

She Sells Sea Shells

I've been thinking I should investigate shells. No, not seashells, silly, but rather command shells. I've always used bash, but more because I do so much of my work on Linux and it is the default shell then any real comparison between any of the myriad shells offered. Some people are voracious tcsh defenders, which is the "out of the box" shell found on FreeBSD (and, of course, PC-BSD). Other popular shells include ksh (kornshell), pdksh (a very close ksh relative), and zsh. And I won't get into the ancient ones, like sh (the original Bourne shell) and csh, as those are old and crufty, although 'sh' is the scripting language of choice, due to its power and widespread availability.

Anyway, I was reading FreeBSD 6 Unleashed on Safari (pretty good service, an article for another day), when I came across the chapters on command lines, and the part where they talk about the various shells. It was a very good overview of the various shells, ending with:

Which Shell to Choose?

Which shell, then, should you choose? For most of this chapter, it doesn't really matter. Most of the standard FreeBSD commands work the same way under all shells. It is only when you want to start performing advanced tasks, such as changing shell variables, setting aliases, and writing shell programs, that the differences between the shells really become apparent. In day-to-day use, you'll find that some of the features of more advanced shells (such as the ability to recall your previously issued commands using the arrow keys, and to complete command names with the Tab key) are crucial to your ease of use and peace of mind. This means using pdksh, bash, or the shell endorsed by FreeBSD, tcsh.

If you don't plan to do any shell programming, tcsh (which in FreeBSD is the same thing as csh) is a fine choice. If you are interested in learning shell programming, choose pdksh or bash because you won't have to unlearn anything when you start programming, and all the commands you learn for operating within the shell can be applied directly to programming within it.

So I suppose I should just tackle tcsh, a shell that I used to use in days gone by, but haven't done much with lately. But although they didn't mention zsh in this overview, their description was intriguing enough that I thought I would give it a try:

The zsh Shell

The Z Shell, or zsh, is a shell designed to cover all the bases. Its basic design is Korn-like, and it incorporates all the popular features of both bash and tcsh (and it attains a large size and memory footprint because of it); but its unique features such as advanced globbing (filename matching), command line editing, and key binding makes it a favorite for hard-core UNIX users, especially those accustomed to the binding-rich Emacs editor.

It was that bit about Emacs that attracted me, of course, being the Emacs aficionado that I am. So I've installed zsh and am playing with it a bit. The initial setup is quite daunting! There is a very long customization script that runs to get some things set up, and there is surely enough options to keep me dizzy for weeks. I'm going to be playing with it over the next few weeks to see how it works out and if I can notice any major differences in daily usage.

I also want to get much more into scripting. It's something I used to do quite frequently on Windows, ironically enough, where I've been using the incredibly powerful 4nt for ten years or more and find it very intuitive to write small batch files to do my work. But I've never felt comfortable enough with sh or bash to do the same on Unix / Linux. But now that PC-BSD is my everyday environment, I figure I must get better at it.

Addendum: Here is another excellent overview of the popular shells: UNIX shell differences


Posted by jdarnold at 08:28 PM | Comments (0) | TrackBack

November 17, 2006

Build yer own

Okay, your hardware project for this weekend (and maybe I'll even extend the deadline through the upcoming US Thanksgiving holiday), is to build your own MP3 player:

Daisy_mp3

Posted by jdarnold at 09:51 PM | Comments (0) | TrackBack

November 16, 2006

And we have a winnah!

I was thrilled to get a sneak peek at the upcoming PC-BSD 1.3 Beta2, so I immediately gave it a try on my test machine. Mind you, this isn't even an "official" beta release (sort of a beta of a beta!), but it worked so incredibly well I wanted to talk about it anyway. You also have to realize my test machine is a real brute - old and weird. A 900mhz "overclocked" Celeron with 768mb of RAM, an onboard HighPoint Technologies UDMA66 controller, 3 different hard drives, with the main one being on the HPT controller. It gave various iterations of earlier PC-BSD CDs the fits. Sometimes the CD wouldn't work, sometimes it would install but not boot and so on. I did finally get the final PC-BSD v1.2 installer to work, but it took some tweaks.

And the first beta of 1.3 fared no better. In fact, it fared considerably worse, in that it immediately hung after finishing the boot screen. Oh, and one thing I've learned - burn the ISO image using no faster than about 10x or it won't work at all. The CD just won't read, even with the CD is was burned on. I wonder if this is an artifact of the PC-BSD ISO, as I don't remember having this problem with the myriad other install ISOs I've burned. And I had problems getting K3b to burn the CD, ending up with quite a number of coasters. This is with my new Panasonic DVD/CD burner. But once again, I think the defaults burned me, as it defaulted to DAO (which is, I think, "Disk At Once"). After failing a couple of times with that, I finally figured out what it meant by telling me that this sort of error is often fixed by selecting "TAO" ("Track At Once", I think). Well, that didn't help either, but RAW mode worked, and I'm sticking with that.

Anyway, I got a pointer to the Beta2 and finally got a working CD. This time, the install went off without a hitch. In fact, it could very well have been the easiest install I've ever done on this machine. No problems booting the CD and off I went. I selected one of the 40gb partitions on my 160gb hard drive that I use to play with (can you believe it, a 160gb hard drive to play with - I saw an ad for a 750(sic) gigabyte hard drive for around US$300 - unbelievable!), picked the default workstation installation and off it went. Due to the slow burn speed (10x) and the slow cd rom, it took about 45 minutes to pull everything off, but it finished. Then I rebooted and held my breath...

After a small tweak to my BootIT NG setup, I selected the 1.3 partition and booted right into it. It looks real nice and once again it found all my other local partitions, something many Linux distros seem to have a problem with. Samba didn't see my Windows network out of the box, but a guess that it was a firewall issue proved true after a little detective work. Seems PC-BSD 1.3 uses the OpenBSD pf as its firewall and I had to disable it to get Samba working via the # pfctl -d command. Then it found my network just fine. Cool!

So I really think they have a winner here. There was a long discussion in the middle of a thread over on the PC-BSD Forums about whether to stay with PC-BSD or change to FreeBSD. My thinking along those lines is that I don't see any reason why 90% of the people wouldn't use PC-BSD instead of FreeBSD. The only bad part to using PC-BSD is if you are a real control freak about what gets installed, and with PC-BSD the decision has been made for you, most notably in the choice of KDE as a X front end as opposed to GNOME. But seeing as the FreeBSD packages and ports are available to you, with the addition of the overrated PBIs specific to PC-BSD, you can set up your machine however you want. And with the installation choice of Server or Workstation, you can fine tune it a little more than ever before.

I suppose I should clarify my controversial remark that I think PBIs (PC-BSD's installation packager) is overrated. While I think PBIs are a good idea in theory, I don't think they work all that well in practice. In theory, a PBI contains everything a program could possibly need to run - all the support libraries, config files, etc. It all comes in one package and gets installed in one place, making for an isolated installation, easy to remove. But that theory quickly falls apart in practice, as it become very difficult, if not impossible, to sufficiently isolate a program from all its system dependencies. And unless that process is automated, PBIs rapidly become stale, as they are at least two steps removed from the original application, as most of them depend on the port or package getting updated first, then the PBI gets updated. It is a very tedious process and one very likely to get delayed or ignored. So I think the PBI advantage is overstated in most quicky reviews, but it's still a viable option for some applications.

But as far as a way to get up and running with FreeBSD, and keeping it up to date, nothing beats PC-BSD. And 1.3 Beta2 is a huge step forward, and one anyone interested in a Windows alternative owes it to themselves to check it out.

Here's the list of pre-installed packages, courtesy of the only port I installed on my vanilla 1.3 install, portmanager:

------------------------------------------------------------------------
 Port Status Report
------------------------------------------------------------------------
00001 have:libiconv-1.9.2_2                    /converters/libiconv                CURRENT
00002 have:libsvg-0.1.4                        /graphics/libsvg                    CURRENT
00003 have:pkg-config-0.21                     /devel/pkg-config                   CURRENT
00004 have:fontconfig-2.3.2_6,1                /x11-fonts/fontconfig               CURRENT
00005 have:png-1.2.12_1                        /graphics/png                       CURRENT
00006 have:jpeg-6b_4                           /graphics/jpeg                      CURRENT
00007 have:libxml2-2.6.26                      /textproc/libxml2                   CURRENT
00008 have:gmake-3.81_1                        /devel/gmake                        CURRENT
00009 have:freetype2-2.2.1_1                   /print/freetype2                    CURRENT
00010 have:expat-2.0.0_1                       /textproc/expat2                    CURRENT
00011 have:libtool-1.5.22_2                    /devel/libtool15                    CURRENT
00012 have:gettext-0.14.5_2                    /devel/gettext                      CURRENT
00013 have:mplayer-skins-1.1.2_5               /multimedia/mplayer-skins           CURRENT
00014 have:imake-6.9.0                         /devel/imake-6                      CURRENT
00015 have:perl-5.8.8                          /lang/perl5.8                       CURRENT
00016 have:glib-2.12.4                         /devel/glib20                       CURRENT
00017 have:xorg-libraries-6.9.0                /x11/xorg-libraries                 CURRENT
00018 have:libdrm-2.0.2                        /graphics/libdrm                    CURRENT
00019 have:qmake-3.3.6                         /devel/qmake                        CURRENT
00020 have:libmng-1.0.9                        /graphics/libmng                    CURRENT
00021 have:lcms-1.15_1,1                       /graphics/lcms                      CURRENT
00022 have:libXft-2.1.7_1                      /x11-fonts/libXft                   CURRENT
00023 have:eject-1.5_2                         /sysutils/eject                     CURRENT
00024 have:libglut-6.4.2                       /graphics/libglut                   CURRENT
00025 have:xorg-clients-6.9.0_3                /x11/xorg-clients                   built with OLD dependency: xterm-222
00026 have:xterm-220                           /x11/xterm                          OLD available: xterm-222
00027 have:m4-1.4.4                            /devel/m4                           CURRENT
00028 have:atk-1.12.3                          /accessibility/atk                  CURRENT
00029 have:libmodplug-0.8                      /audio/libmodplug                   CURRENT
00030 have:nas-1.8                             /audio/nas                          CURRENT
00031 have:qt-3.3.6_2                          /x11-toolkits/qt33                  OLD available: qt-3.3.6_3
00032 have:cups-base-1.2.2                     /print/cups-base                    built with OLD dependency: gnutls-1.4.5
00033 have:tiff-3.8.2                          /graphics/tiff                      CURRENT
00034 have:gnutls-1.4.4_1                      /security/gnutls                    OLD available: gnutls-1.4.5
00035 have:libgcrypt-1.2.3_1                   /security/libgcrypt                 CURRENT
00036 have:libgpg-error-1.4                    /security/libgpg-error              CURRENT
00037 have:dri-6.4.1,2                         /graphics/dri                       CURRENT
00038 have:kdehier-1.0_11                      /misc/kdehier                       CURRENT
00039 have:ghostscript-gnu-7.07_15             /print/ghostscript-gnu              CURRENT
00040 have:gsfonts-8.11_2                      /print/gsfonts                      CURRENT
00041 have:libusb-0.1.12_1                     /devel/libusb                       CURRENT
00042 have:OpenEXR-1.2.2_1                     /graphics/OpenEXR                   CURRENT
00043 have:libmad-0.15.1b_2                    /audio/libmad                       CURRENT
00044 have:libaudiofile-0.2.6                  /audio/libaudiofile                 CURRENT
00045 have:foomatic-filters-3.0.2_4            /print/foomatic-filters             CURRENT
00046 have:xv-3.10a_6                          /graphics/xv                        CURRENT
00047 have:libogg-1.1.3,3                      /audio/libogg                       CURRENT
00048 have:kde-xdg-env-1.0_1,1                 /misc/kde-xdg-env                   CURRENT
00049 have:pcre-6.7                            /devel/pcre                         CURRENT
00050 have:pilot-link-0.12.1_1,1               /palm/pilot-link                    CURRENT
00051 have:denyhosts-2.5                       /security/denyhosts                 CURRENT
00052 have:python24-2.4.3_3                    /lang/python24                      CURRENT
00053 have:libvorbis-1.1.2,3                   /audio/libvorbis                    CURRENT
00054 have:portaudio-18.1_2                    /audio/portaudio                    CURRENT
00055 have:unzip-5.52_2                        /archivers/unzip                    CURRENT
00056 have:libsndfile-1.0.17                   /audio/libsndfile                   CURRENT
00057 have:flac-1.1.2_1                        /audio/flac                         CURRENT
00058 have:nasm-0.98.39,1                      /devel/nasm                         CURRENT
00059 have:jackit-0.101.1_1                    /audio/jack                         CURRENT
00060 have:arts-1.5.4,1                        /audio/arts                         built with OLD dependency: qt-3.3.6_3
00061 have:openslp-1.2.1_2                     /net/openslp                        CURRENT
00062 have:pth-2.0.7                           /devel/pth                          CURRENT
00063 have:dirmngr-0.9.6_1                     /security/dirmngr                   built with OLD dependency: openldap-client-2.3.30
00064 have:libassuan-0.6.10                    /security/libassuan                 CURRENT
00065 have:libksba-1.0.0_1                     /security/libksba                   CURRENT
00066 have:openldap-client-2.3.27              /net/openldap23-client              OLD available: openldap-client-2.3.30
00067 have:kaffeine-mozilla-0.2_6              /multimedia/kaffeine-mozilla        CURRENT
00068 have:kaffeine-0.8.2_1                    /multimedia/kaffeine                built with OLD dependency: qt-3.3.6_3
00069 have:gstreamer-plugins80-0.8.12_2,1      /multimedia/gstreamer-plugins80     CURRENT
00070 have:libxine-1.1.2_2                     /multimedia/libxine                 built with OLD dependency: gnome-mime-data-2.4.3
00071 have:cdparanoia-3.9.8_8                  /audio/cdparanoia                   CURRENT
00072 have:kdelibs-3.5.4_3                     /x11/kdelibs3                       OLD available: kdelibs-3.5.4_4
00073 have:gnomehier-2.2                       /misc/gnomehier                     CURRENT
00074 have:gstreamer80-0.8.12_2                /multimedia/gstreamer80             CURRENT
00075 have:popt-1.7_1                          /devel/popt                         CURRENT
00076 have:libdts-0.0.2_2                      /multimedia/libdts                  CURRENT
00077 have:sdl-1.2.11,2                        /devel/sdl12                        CURRENT
00078 have:intltool-0.35.0                     /textproc/intltool                  CURRENT
00079 have:gnome-mime-data-2.4.2_2             /misc/gnome-mime-data               OLD available: gnome-mime-data-2.4.3
00080 have:speex-1.0.5_1,1                     /audio/speex                        CURRENT
00081 have:libdvdread-0.9.4_1                  /multimedia/libdvdread              built with OLD dependency: libdvdcss-1.2.9_2
00082 have:libfame-0.9.1_2                     /multimedia/libfame                 CURRENT
00083 have:libcdio-0.77_1                      /sysutils/libcdio                   built with OLD dependency: libcddb-1.2.2
00084 have:vcdimager-0.7.23_3                  /multimedia/vcdimager               CURRENT
00085 have:libtheora-1.0.a7                    /multimedia/libtheora               CURRENT
00086 have:samba-libsmbclient-3.0.23c          /net/samba-libsmbclient             CURRENT
00087 have:aalib-1.4.r5_2                      /graphics/aalib                     CURRENT
00088 have:ImageMagick-6.2.9.8                 /graphics/ImageMagick               CURRENT
00089 have:esound-0.2.36_1                     /audio/esound                       CURRENT
00090 have:gconf2-2.16.0                       /devel/gconf2                       built with OLD dependency: openldap-client-2.3.30
00091 have:gnome-vfs-2.16.1                    /devel/gnome-vfs                    OLD available: gnome-vfs-2.16.2_1
00092 have:gtk-2.10.6_1                        /x11-toolkits/gtk20                 OLD available: gtk-2.10.6_2
00093 have:libbonobo-2.16.0                    /devel/libbonobo                    OLD available: libbonobo-2.16.0_1
00094 have:libIDL-0.8.7                        /devel/libIDL                       CURRENT
00095 have:linc-1.0.3_6                        /net/linc                           CURRENT
00096 have:ORBit2-2.14.3                       /devel/ORBit2                       CURRENT
00097 have:pango-1.14.7                        /x11-toolkits/pango                 built with OLD dependency: cairo-1.2.6
00098 have:xorg-fonts-truetype-6.9.0           /x11-fonts/xorg-fonts-truetype      CURRENT
00099 have:xorg-fonts-encodings-6.9.0_1        /x11-fonts/xorg-fonts-encodings     CURRENT
00100 have:hicolor-icon-theme-0.9_1            /misc/hicolor-icon-theme            OLD available: hicolor-icon-theme-0.9_2
00101 have:libart_lgpl2-2.3.17_1               /graphics/libart_lgpl               OLD available: libart_lgpl-2.3.17_1
00102 have:aspell-0.60.4_4                     /textproc/aspell                    CURRENT
00103 have:mDNSResponder-108                   /net/mDNSResponder                  CURRENT
00104 have:libidn-0.6.7                        /dns/libidn                         OLD available: libidn-0.6.8
00105 have:jasper-1.701.0_1                    /graphics/jasper                    CURRENT
00106 have:libthai-0.1.5_1                     /devel/libthai                      built with OLD dependency: autoconf-2.59_2
00107 have:libxslt-1.1.17                      /textproc/libxslt                   CURRENT
00108 have:fam-2.6.10_1                        /devel/fam                          built with OLD dependency: autoconf-2.59_2
00109 have:bison-1.75_2,1                      /devel/bison                        CURRENT
00110 have:svgalib-1.4.3_5                     /graphics/svgalib                   CURRENT
00111 have:p5-XML-Parser-2.34_2                /textproc/p5-XML-Parser             CURRENT
00112 ----:libdvdcss-1.2.9_2                   /multimedia/libdvdcss               MISSING
00113 have:libcddb-1.2.1_1                     /audio/libcddb                      OLD available: libcddb-1.2.2
00114 ----:autoconf-2.59_2                     /devel/autoconf259                  MISSING
00115 have:mpeg2codec-1.2_1                    /multimedia/mpeg2codec              CURRENT
00116 have:libfpx-1.2.0.12                     /graphics/libfpx                    CURRENT
00117 have:jbigkit-1.6                         /graphics/jbigkit                   CURRENT
00118 have:libltdl-1.5.22                      /devel/libltdl15                    CURRENT
00119 have:shared-mime-info-0.19               /misc/shared-mime-info              CURRENT
00120 have:hal-0.5.8.20060917_1                /sysutils/hal                       OLD available: hal-0.5.8.20061107
00121 have:avahi-0.6.14                        /net/avahi                          OLD available: avahi-0.6.15
00122 have:cairo-1.2.4                         /graphics/cairo                     OLD available: cairo-1.2.6
00123 have:bitstream-vera-1.10_2               /x11-fonts/bitstream-vera           CURRENT
00124 ----:automake-1.5_2,1                    /devel/automake15                   MISSING
00125 ----:automake-1.9.6                      /devel/automake19                   MISSING
00126 have:help2man-1.36.4_1                   /misc/help2man                      CURRENT
00127 have:pciids-20060929                     /misc/pciids                        OLD available: pciids-20061026
00128 have:cdrtools-2.01_5                     /sysutils/cdrtools                  built with OLD dependency: libcddb-1.2.2
00129 have:dmidecode-2.8                       /sysutils/dmidecode                 CURRENT
00130 ----:gnome_subr-1.0                      /sysutils/gnome_subr                MISSING
00131 have:policykit-0.1.20060514_2            /sysutils/policykit                 OLD available: policykit-0.1.20060514_3
00132 ----:libvolume_id-0.71.0                 /devel/libvolume_id                 MISSING
00133 have:libdaemon-0.10_1                    /devel/libdaemon                    CURRENT
00134 have:dbus-glib-0.71                      /devel/dbus-glib                    OLD available: dbus-glib-0.72
00135 have:gdbm-1.8.3_2                        /databases/gdbm                     OLD available: gdbm-1.8.3_3
00136 ----:autoconf-2.53_3                     /devel/autoconf253                  MISSING
00137 have:p5-gettext-1.05_1                   /devel/p5-Locale-gettext            CURRENT
00138 have:dbus-0.93_2                         /devel/dbus                         OLD available: dbus-1.0.0
00139 have:fftw3-3.1.2                         /math/fftw3                         CURRENT
00140 have:localedata-5.4                      /misc/localedata                    CURRENT
00141 have:lua-5.1.1_2                         /lang/lua                           CURRENT
00142 have:kdeaddons-konq-plugins-3.5.4        /misc/konq-plugins                  built with OLD dependency: qt-3.3.6_3
00143 have:kdebase-3.5.4_4                     /x11/kdebase3                       built with OLD dependency: qt-3.3.6_3
00144 have:kdebase-kompmgr-3.5.4               /x11-wm/kompmgr                     built with OLD dependency: qt-3.3.6_3
00145 have:artswrapper-1.5.3                   /audio/artswrapper                  CURRENT
00146 have:cyrus-sasl-2.1.22                   /security/cyrus-sasl2               CURRENT
00147 have:bsdstats-4.8_1                      /sysutils/bsdstats                  OLD available: bsdstats-4.8_2
00148 have:gtar-1.15.1_2                       /archivers/gtar                     OLD available: gtar-1.16
00149 have:bash-3.1.17                         /shells/bash                        CURRENT
00150 have:gimp-print-4.2.7_2                  /print/gimp-print                   CURRENT
00151 have:libijs-0.35_1                       /print/libijs                       CURRENT
00152 have:kdegames-3.5.4                      /games/kdegames3                    built with OLD dependency: qt-3.3.6_3
00153 have:py24-gobject-2.12.2                 /devel/py-gobject                   CURRENT
00154 have:xmlcatmgr-2.2                       /textproc/xmlcatmgr                 CURRENT
00155 have:ruby18-bdb1-0.2.2                   /databases/ruby-bdb1                built with OLD dependency: ruby-1.8.5_4,1
00156 have:ruby-1.8.5_3,1                      /lang/ruby18                        OLD available: ruby-1.8.5_4,1
00157 have:foomatic-db-engine-20060922,1       /print/foomatic-db-engine           OLD available: foomatic-db-engine-20061031,1
00158 have:curl-7.15.5                         /ftp/curl                           OLD available: curl-7.15.5_1
00159 have:kdeartwork-3.5.4_2                  /x11-themes/kdeartwork3             built with OLD dependency: qt-3.3.6_3
00160 have:py24-gtk-2.10.3                     /x11-toolkits/py-gtk2               built with OLD dependency: gtk-2.10.6_2
00161 have:py24-cairo-1.2.2                    /graphics/py-cairo                  built with OLD dependency: cairo-1.2.6
00162 have:py24-numeric-24.2                   /math/py-numeric                    CURRENT
00163 have:libglade2-2.6.0_2                   /devel/libglade2                    built with OLD dependency: gtk-2.10.6_2
00164 have:glib-1.2.10_12                      /devel/glib12                       CURRENT
00165 have:kdenetwork-kopete-0.11_1            /net-im/kopete                      OLD available: kdenetwork-kopete-0.11_2
00166 have:qca-tls-1.0_1                       /security/qca-tls                   built with OLD dependency: qt-3.3.6_3
00167 have:ttmkfdir-3.0.9,1                    /x11-fonts/ttmkfdir                 CURRENT
00168 have:neon-0.25.5                         /www/neon                           CURRENT
00169 have:py24-sip-4.4.5                      /devel/py-sip                       CURRENT
00170 have:cmpsfont-1.0_5                      /print/cmpsfont                     CURRENT
00171 have:p5-type1inst-0.6.1_2                /x11-fonts/p5-type1inst             CURRENT
00172 have:kdeadmin-3.5.4                      /sysutils/kdeadmin3                 built with OLD dependency: qt-3.3.6_3
00173 have:samba-3.0.23c_2,1                   /net/samba3                         built with OLD dependency: openldap-client-2.3.30
00174 have:t1lib-5.1.0_1,1                     /devel/t1lib                        CURRENT
00175 have:fribidi-0.10.7                      /converters/fribidi                 CURRENT
00176 have:open-motif-2.2.3_2                  /x11-toolkits/open-motif            CURRENT
00177 have:taglib-1.4_2                        /audio/taglib                       CURRENT
00178 have:gstreamer-0.10.10                   /multimedia/gstreamer               OLD available: gstreamer-0.10.10_1
00179 have:compat5x-i386-5.4.0.8_7             /misc/compat5x                      CURRENT
00180 have:csup-20060318                       /net/csup                           CURRENT
00181 have:xorg-server-6.9.0_5                 /x11-servers/xorg-server            CURRENT
00182 have:libgmp-4.2.1_1                      /math/libgmp4                       CURRENT
00183 have:gnupg-devel-1.9.22                  /security/gnupg-devel               CURRENT
00184 have:gnupg-1.4.5_1                       /security/gnupg                     built with OLD dependency: curl-7.15.5_1
00185 have:akode-plugins-resampler-2.0.1,1     /audio/akode-plugins-resampler      CURRENT
00186 have:libsamplerate-0.1.2_2               /audio/libsamplerate                CURRENT
00187 have:akode-plugins-oss-2.0.1,1           /audio/akode-plugins-oss            CURRENT
00188 have:poppler-0.5.4_1                     /graphics/poppler                   OLD available: poppler-0.5.4_2
00189 have:poppler-data-0.1                    /graphics/poppler-data              CURRENT
00190 have:libpaper-1.1.14.3_1                 /print/libpaper                     CURRENT
00191 have:libsvg-cairo-0.1.6_2                /graphics/libsvg-cairo              built with OLD dependency: cairo-1.2.6
00192 have:xorg-fonts-miscbitmaps-6.9.0_1      /x11-fonts/xorg-fonts-miscbitmaps   CURRENT
00193 have:kdepim-3.5.4_1                      /deskutils/kdepim3                  built with OLD dependency: qt-3.3.6_3
00194 have:gpgme-1.1.2_1                       /security/gpgme                     CURRENT
00195 have:libmal-0.42_1                       /palm/libmal                        CURRENT
00196 have:gstreamer-plugins-0.10.10,2         /multimedia/gstreamer-plugins       built with OLD dependency: gstreamer-0.10.10_1
00197 have:v4l_compat-1.0.20060801             /multimedia/v4l_compat              CURRENT
00198 have:liboil-0.3.9_1                      /devel/liboil                       CURRENT
00199 have:dejavu-2.11                         /x11-fonts/dejavu                   CURRENT
00200 have:xpdf-3.01_3                         /graphics/xpdf                      CURRENT
00201 have:idesk-0.7.5                         /x11/idesk                          built with OLD dependency: autoconf-2.59_2
00202 have:imlib2-20060926,1                   /graphics/imlib2                    OLD available: imlib2-20060926_1,1
00203 have:libungif-4.1.4_1                    /graphics/libungif                  CURRENT
00204 have:libid3tag-0.15.1b                   /audio/libid3tag                    CURRENT
00205 have:foomatic-db-20060922                /print/foomatic-db                  OLD available: foomatic-db-20061031
00206 have:texinfo-4.8_3                       /print/texinfo                      CURRENT
00207 have:cups-pstoraster-8.15                /print/cups-pstoraster              CURRENT
00208 have:akode-plugins-mpeg-2.0.1,1          /audio/akode-plugins-mpeg           CURRENT
00209 have:amspsfnt-1.0_4                      /print/amspsfnt                     CURRENT
00210 have:kdegraphics-3.5.4                   /graphics/kdegraphics3              built with OLD dependency: qt-3.3.6_3
00211 ----:teTeX-base-3.0_10                   /print/teTeX-base                   MISSING
00212 have:poppler-qt-0.5.4                    /graphics/poppler-qt                built with OLD dependency: qt-3.3.6_3
00213 ----:teTeX-texmf-3.0_5                   /print/teTeX-texmf                  MISSING
00214 ----:tex-texmflocal-1.9                  /print/tex-texmflocal               MISSING
00215 have:texi2html-1.76_1,1                  /textproc/texi2html                 CURRENT
00216 have:libwww-5.4.0_3                      /www/libwww                         CURRENT
00217 have:gd-2.0.33_4,1                       /graphics/gd                        CURRENT
00218 have:portaudit-0.5.11                    /security/portaudit                 CURRENT
00219 have:zip-2.32                            /archivers/zip                      CURRENT
00220 have:net-snmp-5.2.3_3                    /net-mgmt/net-snmp                  built with OLD dependency: autoconf-2.59_2
00221 have:akode-plugins-xiph-2.0.1,1          /audio/akode-plugins-xiph           CURRENT
00222 have:kdeutils-3.5.4                      /misc/kdeutils3                     built with OLD dependency: qt-3.3.6_3
00223 have:kdeaccessibility-3.5.4              /accessibility/kdeaccessibility     built with OLD dependency: qt-3.3.6_3
00224 have:lame-3.97_1                         /audio/lame                         CURRENT
00225 have:kde-windeco-crystal-1.0.2           /x11-themes/kde-windeco-crystal     built with OLD dependency: qt-3.3.6_3
00226 have:qscintilla-1.6                      /x11-toolkits/qscintilla            built with OLD dependency: qt-3.3.6_3
00227 have:kde-style-lipstik-2.2_1             /x11-themes/kde-style-lipstik       built with OLD dependency: qt-3.3.6_3
00228 have:zh-ttfm-0.9.5_1                     /chinese/ttfm                       CURRENT
00229 have:py24-qt-3.16                        /x11-toolkits/py-qt                 built with OLD dependency: qt-3.3.6_3
00230 have:py24-kde-3.15.2,1                   /x11-toolkits/py-kde                built with OLD dependency: qt-3.3.6_3
00231 have:kdenetwork-3.5.4                    /net/kdenetwork3                    built with OLD dependency: qt-3.3.6_3
00232 have:cups-smb-backend-1.0                /print/cups-smb-backend             CURRENT
00233 have:djbfft-0.76_2                       /math/djbfft                        CURRENT
00234 have:akode-plugins-mpc-2.0.1,1           /audio/akode-plugins-mpc            CURRENT
00235 have:akode-2.0.1,1                       /audio/akode                        CURRENT
00236 have:fastest_cvsup-0.2.9_4               /sysutils/fastest_cvsup             CURRENT
00237 have:kdemultimedia-3.5.4_1               /multimedia/kdemultimedia3          built with OLD dependency: qt-3.3.6_3
00238 have:x264-0.0.20060926_2                 /multimedia/x264                    OLD available: x264-0.0.20061030
00239 have:gpac-libgpac-0.4.2.r2,1             /multimedia/gpac-libgpac            CURRENT
00240 have:scrollkeeper-0.3.14_5,1             /textproc/scrollkeeper              built with OLD dependency: docbook-xsl-1.71.1_1
00241 have:docbook-sk-4.1.2_3                  /textproc/docbook-sk                CURRENT
00242 have:docbook-xsl-1.70.1                  /textproc/docbook-xsl               OLD available: docbook-xsl-1.71.1_1
00243 have:docbook-xml-4.2_1                   /textproc/docbook-xml               CURRENT
00244 have:sdocbook-xml-4.1.2.5_2              /textproc/sdocbook-xml              OLD available: sdocbook-xml-1.1,1
00245 have:chmlib-0.38                         /misc/chmlib                        CURRENT
00246 have:xvid-1.1.0,1                        /multimedia/xvid                    CURRENT
00247 have:gtk-1.2.10_17                       /x11-toolkits/gtk12                 CURRENT
00248 have:gtkglarea-1.2.3_1                   /x11-toolkits/gtkglarea             CURRENT
00249 have:gdk-pixbuf-0.22.0_5                 /graphics/gdk-pixbuf                CURRENT
00250 have:libxml-1.8.17_4                     /textproc/libxml                    CURRENT
00251 have:imlib-1.9.15_4                      /graphics/imlib                     CURRENT
00252 have:ORBit-0.5.17_3                      /devel/ORBit                        CURRENT
00253 have:gnome-libs-1.4.2_6                  /x11/gnome-libs                     CURRENT
00254 have:gnomecanvas-0.22.0_5                /graphics/gnomecanvas               CURRENT
00255 have:gnome-print-0.37_3                  /print/gnome-print                  CURRENT
00256 have:guile-1.6.8                         /lang/guile                         CURRENT
00257 have:oaf-0.6.10_4                        /devel/oaf                          CURRENT
00258 have:bonobo-1.0.22_3                     /devel/bonobo                       CURRENT
00259 have:gconf-1.0.9_9                       /devel/gconf                        CURRENT
00260 have:libgda-0.2.96_5                     /databases/libgda                   built with OLD dependency: gdbm-1.8.3_3
00261 have:gnome-db-0.2.96_6                   /databases/gnome-db                 CURRENT
00262 have:libglade-0.17_4                     /devel/libglade                     CURRENT
00263 have:kchmviewer-2.6                      /deskutils/kchmviewer               built with OLD dependency: qt-3.3.6_3
00264 have:portupgrade-2.1.3.3_1,2             /sysutils/portupgrade               built with OLD dependency: ruby-1.8.5_4,1
00265 have:gkrellm-2.2.9_1                     /sysutils/gkrellm2                  OLD available: gkrellm-2.2.10
00266 have:desktopbsd-tools-1.1                /sysutils/desktopbsd-tools          built with OLD dependency: xterm-222
00267 have:boxtools-0.70.1                     /x11-wm/boxtools                    CURRENT
00268 have:fluxbox-0.1.14_2                    /x11-wm/fluxbox                     CURRENT
00269 have:ezm3-1.2_1                          /lang/ezm3                          CURRENT
00270 have:libgnome-2.16.0                     /x11/libgnome                       built with OLD dependency: gnome-mime-data-2.4.3
00271 have:libgnomecanvas-2.14.0_2             /graphics/libgnomecanvas            built with OLD dependency: gtk-2.10.6_2
00272 have:libbonoboui-2.16.0                  /x11-toolkits/libbonoboui           built with OLD dependency: gnome-mime-data-2.4.3
00273 have:gtk-qt-engine-0.7_3                 /x11-themes/gtk-qt-engine           OLD available: gtk-qt-engine-0.7_4
00274 have:cvsup-without-gui-16.1h_2           /net/cvsup-without-gui              CURRENT
00275 have:python-2.4.3,1                      /lang/python                        CURRENT
00276 have:mplayer-0.99.8_5                    /multimedia/mplayer                 built with OLD dependency: win32-codecs-3.1.0.p8_1,1
00277 ----:win32-codecs-3.1.0.p8_1,1           /multimedia/win32-codecs            MISSING
00278 have:zh-arphicttf-2.11_1                 /chinese/arphicttf                  CURRENT
00279 have:ja-vlgothic-20061026                /japanese/vlgothic                  CURRENT
00280 have:portmanager-0.4.1_6                 /sysutils/portmanager               CURRENT

Posted by jdarnold at 10:47 PM | Comments (0) | TrackBack

November 15, 2006

Locate This!

I can never remember how to update my locate database. locate is a very useful little command, which searches your hard drive for any file or path name that contains the letters you ask for. It works much faster than doing find because it builds a database of filenames and searches that rather than actually running around the disk hierarchy.

But it requires that the database be kept up to date. This is one case where the Linux world has it all over the FreeBSD world. The GNU locate updates itself just by passing it the '-u' flag. But the FreeBSD locate doesn't do this. Rather it has a couple of mysterious command files that are carefully hidden away in the bowels of FreeBSD. The main file, as documented in the man page, is /etc/periodic/weekly/310.locate. This is one of the periodic commands that is run, but it, for some reason, is only run weekly, which doesn't seem to me to be often enough. I've moved it to be /etc/periodic/daily/305.locate, to get it to run every night. Not sure if that's a good idea, but I like my /var/db/locate.database to be more up to date! Oh, and I had to edit the /etc/periodic.conf file to move it up to a daily ritual. This file overides the /etc/defaults/periodic.conf file, so it now includes:

# Make the update locate db script run nightly

# 305.locate
daily_locate_enable="YES"		# Update locate *daily*!

The other option is the script /usr/libexec/locate.updatedb. If you run this as root, it complains that it would expose every file on the computer and you probably don't want to do that. The 310.locate script runs it as "nobody", which only picks up files and directories that are world readable, which is less of a security threat. And you can't run it unless you are root anyway, because root can't update the database. So it is easier to just run the periodic script if you need to update it on the fly. But if I run this every night, that should be enough.


Posted by jdarnold at 10:02 PM | Comments (0) | TrackBack

November 14, 2006

Fox Flashing

Another dragon slayed! This time, I really needed to get Flash working in my Firefox browser. Mind you, I'm not crazy about it, and as I've mentioned in the past, I don't mind running another program temporarily to use Flash. It is just too abused by advertisers, as it is a good way to get around popup blockers. And the annoying blinking ads make me want to scream!

But if I wanted to listen to music or watch videos or even get the weather, I needed to have Flash running. The easiest way to do this seemed to be to install the www/linux-firefox port, as purportedly the Flash installer worked under FreeBSD's pretty solid Linux emulation layer. But it felt like it was going to be complicated, so I held off.

The I realized just how much I missed the Google Toolbar, especially its spellchecking. It wouldn't install in FreeBSD, but I did find one site that installed it in another Linux by removing the "platform specification" tag from the install.rdf file found in the XPI installer. So I tried to modify that, but the installer complained about "signing could not be verified", so it must have some kind of checksum for the file and noticed it had been changed. So that didn't work.

So I bit the bullet and installed the linux-firefox port. I was very afraid it was going to go off and pull in dozens of other ports and take all day to build, but it actually went very smoothly and finished in about 30 minutes. Here's the packages portmanager said it wanted:

------------------------------------------------------------------------
 Port Status Report
------------------------------------------------------------------------
00001 ----:linux-firefox-2.0                   /www/linux-firefox                  MISSING
00002 ----:linux-gtk2-2.6.10                   /x11-toolkits/linux-gtk2            MISSING
00003 ----:linux-atk-1.9.1                     /accessibility/linux-atk            MISSING
00004 ----:linux-pango-1.8.1                   /x11-toolkits/linux-pango           MISSING
00005 ----:linux-glib2-2.6.6                   /devel/linux-glib2                  MISSING
00006 have:linux-fontconfig-2.2.3_5            /x11-fonts/linux-fontconfig         CURRENT
00007 ----:linux-hicolor-icon-theme-0.5_1      /x11-themes/linux-hicolor-icon-theme MISSING
00008 have:linux_base-fc-4_9                   /emulators/linux_base-fc4           CURRENT
00009 have:rpm-3.0.6_13                        /archivers/rpm                      CURRENT
00010 have:linux-jpeg-6b.34                    /graphics/linux-jpeg                CURRENT
00011 ----:linux-png-1.2.8_2                   /graphics/linux-png                 MISSING
00012 ----:linux-tiff-3.7.1                    /graphics/linux-tiff                MISSING
00013 have:linux-xorg-libs-6.8.2_5             /x11/linux-xorg-libs                CURRENT
00014 have:linux-expat-1.95.8                  /textproc/linux-expat               CURRENT
00015 have:hicolor-icon-theme-0.9_2            /misc/hicolor-icon-theme            CURRENT
00016 have:gmake-3.81_1                        /devel/gmake                        CURRENT
00017 have:automake-1.4.6_2                    /devel/automake14                   CURRENT
00018 have:autoconf-2.13.000227_5              /devel/autoconf213                  CURRENT
00019 have:libtool-1.5.22_2                    /devel/libtool15                    CURRENT
00020 have:popt-1.7_1                          /devel/popt                         CURRENT
00021 have:gettext-0.14.5_2                    /devel/gettext                      CURRENT
00022 have:perl-5.8.8                          /lang/perl5.8                       CURRENT
00023 have:m4-1.4.4                            /devel/m4                           CURRENT
00024 have:libiconv-1.9.2_2                    /converters/libiconv                CURRENT

So not too bad, really. Eight missing packages and all built without a problem. So I jump back into X and run 'linux-firefox'. It turns out to be Firefox 2.0, which was a pleasant surprise and it picked up most of my extensions without a problem. Only my Colorful Tabs extension wasn't up to date, and even that had one ready to go. And it looks pretty nice, a little better than my native version did, even after my tweaks.

So I head on over the Pandora and click on the "Missing Plugin" box. It skips over to Macromedia and downloads the Flash player, which installs without a hitch. Back to Pandora and now I have a working Pandora music player. And now YouTube.com works fine as does pretty much everything else. I am psyched!

Google Toolbar installed just fine too, although ironically enough, with Firefox 2.0's builtin spell checker, I don't really need it as much as I did before!


Posted by jdarnold at 08:32 PM | Comments (1) | TrackBack

November 13, 2006

Under A Microscope

Comprehensive review of PC-BSD by frequent PC-BSD forums contributeer Terry. He goes over all the pieces found in PC-BSD, which is a very nice setup, trust me!

sas_spidey01: PC-BSD Users Review
Posted by jdarnold at 11:15 AM | Comments (0) | TrackBack

November 12, 2006

Brand New Babies

A couple of new FreeBSD family members have shown up for download. FreeBSD 6.2 BETA3 was just announced. I haven't tried any of the 6.2 releases, as I'm hoping the next release of PC-BSD will incorporate it, although I couldn't get PC-BSD 1.3 Beta1 to install on my test machine:

Development Release: FreeBSD 6.2-BETA3

And my favorite FreeBSD-based LiveCD has just announce a new beta as well. FreeSBIE has announce FreeSBIE 2.0 Beta is now available for download. I'll need to do this one too. I like having a nice Live FreeBSD around.

Development Release: FreeSBIE 2.0 BETA.

Posted by jdarnold at 10:18 PM | Comments (0) | TrackBack

November 11, 2006

Securely Tied

Very nice tutorial on getting going with ssh, the secure shell. ssh lets you log into remote computers, while encrypting the communications so network "sniffers" can't decode what you're trying to do. But it does lots more than that, including nicely forwarding X so that you can run X clients locally from remote computers. This page also shows you how to set up the key files so you don't even need to type in a password. After spending a few minutes getting this set up, I was very happy! Now I just have to remember to start out by typing $ ssh-agent startx when I fire up my X, so that the agent is ready and willing to answer calls for authorization.

Getting started with SSH - Kimmo Suominen

Added note: Just found out how to make it so I don't have to remember to using 'ssh-agent' when starting KDE. According to the FAQ, I just need to add script to ~/.kde/env/ and it will fire it up. So here is my script:

#!/bin/sh
eval `ssh-agent -s`

And here's another couple of nice pages on ssh and ssh-agent:

SSH User Identities
SSH and ssh-agent

Posted by jdarnold at 08:20 AM | Comments (0) | TrackBack

November 10, 2006

sudo Humor


Posted by jdarnold at 09:27 PM | Comments (0) | TrackBack

Software Sorcery

I spent some time last night installing Trac (a project wiki/source viewing/issue tracking system) and Subversion, a version control system on my FreeBSD server. The process went pretty smoothly - once again, the pile o' praise I heap on the ports system continues to grow. I would still like more info when an options dialog pops up, so I can make better decisions, but besides that, it went like clockwork.

Personally, I'm a Perforce man when it coms to SCCS. I've been using it for years, and really feel like it is an excellent client/server system. The support has always been phenomenal and I've brought it along to several jobs since I first began using it. The biggest problem with Perforce is that it is incredibly expensive. It is a real "enterprise solution" and charges as such. It cost US$800 for each license! They do have a free evaluation, where you can create two users but only five clients (local views of the source tree), which is too limited for any kind of real usage. I used to have a single developer license for it, but I don't have that any more. They also have a free version for Open Source projects, but as I'm not sure where, if anywhere, we're going with our little project, it doesn't seem like it fits.

So the next option looks to be Subversion, an open source CVS replacement, that is also supported by Trac "out of the box". It was reasonably easy to set up, although getting it "locked down" was hard to figure out. I wish these things would be installed with no access and then force me to open them up, rather than the other way around. I do like the idea of the SSL that is built into svnserve, although it seemed complicated to set up, so I passed on that for now. It also occured to me that Subversion doesn't let you know when another developer is working on code, as you "check out" the entire source tree when you begin work and then just "commit" your changes to it. I like being able to see in Perfore when someone else has a file checked out, so I know if I should ask about it first, or just be sure to get my changes checked in quickly and force the other developer to deal with merges!-)

The devel/subversion-python port installed /usr/local/etc/rc.d/svnserve.sh, which is the spot where startup scripts are supposed to go, so always look there when you install a new server. For some reason, the test install on my PC-BSD called the file just 'svnserve'. Odd. Anyway, if you look in that file, it graciously tells you the options that need to be set in the /etc/rc.conf file in order for the server to run and to get going at start up. It says:

# Add the following line to /etc/rc.conf to enable SVNServe:
#
#  svnserve_enable="YES"
#  # optional
#  svnserve_flags="-d --listen-port=3690"
#  svnserve_data="/usr/local/repositories"
#  svnserve_user="svn"
#  svnserve_group="svn"

So I put my own values in there and started it up. I had to add "--listen-hostname=amazingdev.com" to the svnserve_flags line, as my machine hosts several domains and the connection didn't work at first. It must verify a hostname or something. I ran the svnadmin create command to initially set up the "repository" (I like Perforce's nomenclature of "depot" better - sounds less like an anal medicine:-), but it's off to the races!

Then I installed www/trac, which seems like a nice integrated web-based project site. It includes a wiki area, a way to browse syntactically colored source files in your Subversion repository, as well as bug tracking (it calls them "tickets"). It also keeps track of all changes and allows you to create milestones. Once again, the installation went smoothly, with a single prompt asking if I wanted to use Silvercity for syntax highlighting. Luckily, I had looked at the web site and noticed a caveat warning that Python highlighting doesn't work with the 0.9.6 version of Silvercity, which is what is currently in the ports. Seeing as textutils/enscript-letter works just as well, albeit perhaps slower but with more options, it doesn't seem like a big loss to not add it in, as I'm not sure you can get the 0.9.5 version recommended on the Trac website.

The one thing the port didn't do was to put a startup script for the builtin tracd server into the /usr/local/etc/rc.d folder, like the Subversion port did. Not sure why it didn't, as there isn't a real downside to putting one there, as it won't run until the admin modifies /etc/rc.conf. Maybe the port maintainer uses the Apache mod_python version of Trac? Anyway, using the svnserve.sh file as a model, I created my own tracd.sh file:

#!/bin/sh
#
# tracd.sh for rc.d usage (c) 2006 Jonathan Arnold
# $Id$

# PROVIDE: tracd
# REQUIRE: DAEMON
# BEFORE: LOGIN
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf to enable Tracd:
#
#  tracd_enable="YES"
#  # optional
#  tracd_flags="-d --listen-port=3690"
#  tracd_data="/usr/local/path/to/project"

. "/etc/rc.subr"

# Set some defaults
tracd_enable=${tracd_enable:-"NO"}
tracd_flags=${tracd_flags:-"-d --port=8080 --pidfile=/var/run/tracd.pid "}
tracd_data=${tracd_data:-"/usr/local/trac"}
tracd_pidfile=${tracd_pidfile-"/var/run/tracd.pid"}

name="tracd"
rcvar=`set_rcvar`
load_rc_config $name
command=/usr/local/bin/tracd
command_args=" ${tracd_data}"
command_interpreter="/usr/local/bin/python"
pidfile="${tracd_pidfile}"

run_rc_command "$1"

I had to modify a few things from the svnserve.sh file. Most importantly, tracd is a python script, so you need to add the "command_interpreter" line, as the standard startup/shutdown commands look at the name of the process attached to the pid and if it doesn't match 'name', it won't kill it. But it will first check for 'command_interpreter' to check against. I also added the --pidfile option to the command arguments, so tracd would write out its PID to a standard place. And then tell the standard scripts where this is. But other than that, it was pretty easy and now I have a script to start up the builtin trac server by adding tracd_enable="YES" to my /etc/rc.conf file.


Posted by jdarnold at 08:35 PM | Comments (2) | TrackBack

November 09, 2006

We've got another live one

Another entry into the FreeBSD LiveCD pool. This one is called TrueBSD and has the excellent new feature whereby you can actually eject the boot CD and still run the OS. Now that's independence!

Official Web-site operation system TrueBSD


Posted by jdarnold at 09:10 AM | Comments (0) | TrackBack

November 06, 2006

Permission Granted

Informative and very complete page explaining just what those pesky Unix file permissions bits mean. Carefully details each bit, along with some history and other tidbits. Looks like a nice wiki in general.

Unix Permissions
Posted by jdarnold at 07:38 PM | Comments (0) | TrackBack

November 05, 2006

Cleaning up after yourself

A few interesting things came up on the .ports mailing list vis-a-vis cleaning up the ports. After you've done a make in the ports, a "work" folder is created. In here, the package is unzipped and then built, so there's a bunch of mostly wasted space, because chances are you don't care about the intermediary files. So if you do a # make clean after you've done the # make install, you'll clean up these temporary files.

But what if you forget to do the make clean? Or you don't normally do it, but at some point you want to clean it all up? JR Lenz posted the following shell script to do this for you:

#!/bin/sh
#
# remove_work.sh
# removes nasty, disk-hogging source code
#   and compiled objects from ports tree
#
# J. Ralf Lenz 
#

for i in `ls -Ad *`
do
  if [ -d /usr/ports/$i ]; then
    cd $i
    DIR=`pwd`
    DESIRED_PATH=/usr/ports/$i
    if [ "${DIR}" = "${DESIRED_PATH}" ]; then
      for j in `ls -Ad *`
      do
        if [ -d /usr/ports/$i/$j ]; then
          cd /usr/ports/$i/$j
          if [ -d /usr/ports/$i/$j/work ]; then
            CUR_DIR=`pwd`
            echo "Removing ${CUR_DIR}/work..."
            rm -rf work
          fi
          cd /usr/ports/$i
        fi
      done
      cd /usr/ports
    fi
  fi
done

While this is a usefully informative script, this also does the trick, albeit in a more arbitrary fashion:

# rm -rf /usr/ports/*/*/work

Boom - find all the port subfolders called 'work' and just remove them.

You can also change where the port system puts the work files by defining the WRKDIRPREFIX in /etc/make.conf (you can see other interesting variables for make.conf in the file /usr/ports/Mk/bsd.port.mk). WRKDIRPREFIX is explained thusly:

# WRKDIRPREFIX	- The place to root the temporary working directory
#				  hierarchy.

So if you don't want it to go into the port subfolder, just set it in /etc/make.conf. So to put the work folders into /usr/obj, add this:

WRKDIRPREFIX=/usr/obj

And, lastly, don't forget the 'portsclean' command. I guess the magic flags for this command would be:

# portsclean -CDLP

I don't see portsclean in the online man pages, so I'm not sure if it is a standard command or came in with some other port. As I generally use portmanager, which I believe does a clean, I don't worry about it. And if I do a make, I do a # make all && make install && make clean command.


Posted by jdarnold at 12:25 PM | Comments (2) | TrackBack

November 04, 2006

Flashy Firefox

One of the most common complaints about FreeBSD is that Flash doesn't work "out of the box", with either Firefox or Opera. For me, that's not such a bad thing generally, as I find 90% of the Flash usage to be for annying blinking ads. But there a few sites that require it, including most video sites for some reason. So on my old Windows box, I never did install it on Firefox, my main browser, but when I needed to open a Flash site, I would just use the extension to either open IE in a tab or a standalone Opera. Worked very nicely.

But that doesn't work on BSD, because there isn't a running Flash. There's plenty of pages out there that purport to get it to run, usually using the Linux emulation layer, linux-firefox and the Flash plugin, although the current Flash version is quite old and has some serious security holes. But here's Yet Another page that shows you how to do it, if you feel the need. For me, I just swap to my Windows box if I really really need to get Flash'ed.

Flash Plugin on FreeBSD

And here's another one: http://www.jail.se/freebsd.html

Here is a very long thread on the PC-BSD forums on how to get it to run on PC-BSD:

Flash7 with FreeBSD Firefox 1.5


Posted by jdarnold at 09:50 AM | Comments (0) | TrackBack

Fire On BSD

Someone is porting the FireGL ATI Linux driver to BSD, which would be a wonderful thing if it were to come off. I'll have to give this a try.

ATI on FREEBSD FireGL Linux Driv
Posted by jdarnold at 07:27 AM | Comments (0) | TrackBack

November 03, 2006

Monster Mash

Whatever you do, don't try this at home! I was trying to rebuild something (it was so long ago I don't even remember what it was!), when I interrupted the process because I needed to reboot. That's one thing with ports - you go to build something and it needs something else and before you know it, you're an hour into the building process and no idea how much longer it is going to take. So I killed the portmanager build, logged out and rebooted.

Well, KDE wouldn't start up, complaining of a missing library. Since I tend to muck about a great deal with my system, I don't have a graphical login screen (gdm or kdm). I log in and then run startx. That way, if my X setup is screwed up, I at least can easily make changes and get logged in. And in this case, KDE complained. So I thought, well, I just rebuild KDE. What was I thinking? The simple command :

# portmanager x11/kde -l

began its work late Wednesday evening and didn't finish until this (Friday!) morning. And even then, important pieces like kdelibs didn't rebuild, for reasons I don't know. One problem I was having was that my machine was freezing after a very short time. I suspected the special 80x60 text mode I had the text console in, as I had noticed if I swapped to it while running X (via the Ctrl-Alt-F2 keystroke), my machine would freeze after a bit. Sure enough, after I put it back into the standard 80x25 video mode via # vidcontrol 80x25 command, it stopped freezing up. So now I'm wondering if that was the cause of some of my other display freezes. Something to be investigated.

Then I restarted the port build (oh man, thanks be to Zeus for the --resume option in portmanager, as the kde port looks at upwards of almost 200 ports!) and went to bed. Thursday morning I was greeted with the sight of a menu from some random library asking for me to pick a single option. I'm not sure if I can do -dBATCH with portmanager, but I'm certainly going to have to find out. Another problem with the options screens for many ports is that you have no idea what they are talking about. Usually it enables some obscure acronym, and you have no idea what the pros and cons for each option are. So I usually just pick the default anyway. So I did in this case, and build trundled on.

And on. And on. Mysterious build commands whizzed by the screen all day long. By mid-afternoon, I got an option screen for KDE asking which KDE apps to install. I once again had a brain cramp and allowed it to install all of them. So dozens more apps that I don't want and don't need, like KOffice, got installed. Then, right around dinner time, it stopped scrolling, as it seemed to be linking some app. So I let it hang around for over two hours, and nothing changed. I couldn't even ctrl-C out of it, as the keystrokes just echoed to the screen. So I ctrl-Z'ed out of it, putting it in the background, and then killed it. But I forgot to check the log file before restarting the build, so I'm not even sure where it hung up.

And that build trundled on, Finally, just this morning it finished, although an important piece, kdelibs, failed to build for some reason. I just didn't have the intestinal fortitude to try and build it again, so here I am with some kind of Frankenstein system, which is seasonally appropriate at least.. Now I can't wait for PC-BSD 1.3 to come out, and I'll just start anew!


Posted by jdarnold at 07:35 PM | Comments (0) | TrackBack