Monday, January 31, 2005

Compiling xmlrpc-epi on Mac OS/X Panther

iXmatch has recently started using the xmlrpc-epi library. However, this broke out Mac OS/X build, since xmlrpc-epi uses an old version of gnu libtool that doesn't know how to build mach dylibs.

Here's the steps to get it compiled.

1. download and unpack xmlrpc-epi-0.51.
2. cd xmlrpc-epi=0.51
2. rm missing
3. edit configure.in to add the following text above the AC_OUTPUT entry in configure.in: (note - the indentation won't show up nicely in your browser, since I didn't go replacing the spaces with nbsp codes. However, do a "view source" and it should look OK.)


dnl From Bruno Haible.

AC_DEFUN([check_ICONV],
[
dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
dnl those with the standalone portable GNU libiconv installed).

AC_ARG_WITH([libiconv-prefix],
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
for dir in `echo "$withval" | tr : ' '`; do
if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
done
])

AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
am_cv_func_iconv="no, consider installing GNU libiconv"
am_cv_lib_iconv=no
AC_TRY_LINK([#include
#include ],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_func_iconv=yes)
if test "$am_cv_func_iconv" != yes; then
am_save_LIBS="$LIBS"
LIBS="$LIBS -liconv"
AC_TRY_LINK([#include
#include ],
[iconv_t cd = iconv_open("","");
iconv(cd,NULL,NULL,NULL,NULL);
iconv_close(cd);],
am_cv_lib_iconv=yes
am_cv_func_iconv=yes)
LIBS="$am_save_LIBS"
fi
])
if test "$am_cv_func_iconv" = yes; then
AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
AC_MSG_CHECKING([for iconv declaration])
AC_CACHE_VAL(am_cv_proto_iconv, [
AC_TRY_COMPILE([
#include
#include
extern
#ifdef __cplusplus
"C"
#endif
#if defined(__STDC__) || defined(__cplusplus)
size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
#else
size_t iconv();
#endif
], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
AC_MSG_RESULT([$]{ac_t:-
}[$]am_cv_proto_iconv)
AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
[Define as const if the declaration of iconv() needs const.])
fi
LIBICONV=
if test "$am_cv_lib_iconv" = yes; then
LIBICONV="-liconv"
fi
AC_SUBST(LIBICONV)
])

check_ICONV



4. Edit the src/Makefile.am file, and replace the line that reads:
libxmlrpc_la_LDFLAGS = -version-info 0:3:0
With this:
libxmlrpc_la_LDFLAGS = @LIBICONV@ -version-info 0:3:0

5. Run the following commands:
aclocal; automake -a -c; glibtoolize --force; autoconf --force

6. Run ./configure and then make.

7. You should be good to go!

Sunday, January 23, 2005

New twin cities radio that doesn't suck?

Twin cities radio is about to get more interesting. Tomorrow, Minnesota Public Radio, the people who bring you such gems as "A Prairie Home Companion" and "Marketplace" are launching a new radio station, with some of the staff from dear, departed REV 105, including Thorn and Mary Lucia.

What's the frequency, Kenneth? The frequency is 89.3 on your FM dial.

Here's hoping for great things. Or, at least, radio that doesn't suck.

Monday, January 17, 2005

Honoring MLK Day in the great state of Mississippi

Wonkette writes:
If you -- as reader J. did -- call the Mississippi tax commission today (601-923-7000), you'll find that the office is closed " in observance of Robert E Lee's and Martin Luther King's birthdays."

In disbelief, I called that number. Sure enough. It's the mississippi tax commission, and they're closed today, for the reasons as stated above.

Don't believe me? Listen for yourself.

Kudos to Olympus

I recently purchased an Olympus C-8080 digicam from the olympus ebay store. When the camera arrived, it had a battery for a Sony Camcorder in the box, rather than the olympus rechargable battery. I called the olympus customer support 800 number, and, after getting bounced around to a couple different people, ended up talking to someone who was able to fix it. He was at first a bit surprised that I'd ended up with a Sony battery, but they sent a replacement battery out via next-day air. Thanks, Olympus!

Friday, January 07, 2005

Some more kid pix

Here's some more kid pix from the christmas season


Bea takes a nap



Laurel sneaks some cheese dip



Pete and Bea wear crowns created by Bea's cousin Ella. Bea's not convinced that she likes it.

Wednesday, January 05, 2005

Refactoring vs Hacking

I stumbled across this old piece of writing from Eric S. Raymond. It turned on some lights for me. Well worth reading. I think that Raymond is half-correct here... Hacking and the various agile development tenets that say "don't do a big spec up front, rather, write the simplest thing that could possibly work and then refactor it into shape as needed" do have a lot in common, but I tend to think of them as having separate goals.

  • "Hacking" is more often done for self-satisfaction and pride of workmanship. If there's something wrong with what you've hacked, you're probably also the one who's running it, so you can fix it yourself.
  • You hack on problems that are interesting to you, you don't necessarily want to be hacking on code that's a customer deliverable, where you'll be asked to support it later.
  • When you're hacking, you don't write test cases. Or at least, I didn't until recently. Now I do.

But there's at least one useful insight in here, that the "hacker ethos" and the "agile manifesto" are saying much the same thing. This is worth thinking about.

Sunday, January 02, 2005

The Ends of the World as we know them

Jared Diamond, author of "Guns, Germs, and Steel", writes an insightful op-ed article in the Jan 1st New York Times. Click on the link above to read it at the Times site.

To summarize, he discusses the decline and fall of various world civilizations - the Maya, Easter Island, the Khmer at Ankor Wat, and discusses the causes behind them. He also discusses several long-lived civilizations - the Germans and Scandinavians in Europe, the Japanese, among others, and what decisions these civilizations have made that have helped in their longevity. And, he presents some thoughts about what lessons we can learn from this.

Well worth reading, and perhaps a bit frightening given the environmental policies of the Bush administration.