Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; CBlacklist has a deprecated constructor in /home/saltybanana/www/blog/peel/scripts/sb_blacklist.php on line 6

Warning: session_start(): Cannot start session when headers already sent in /home/saltybanana/www/blog/peel/index.php on line 11

Warning: strpos(): needle is not a string or an integer in /home/saltybanana/www/blog/peel/index.php on line 49

Warning: count(): Parameter must be an array or an object that implements Countable in /home/saltybanana/www/blog/peel/scripts/sb_display.php on line 413
The Banana Peel
Is Microsoft's Antitrust Pains w/ the EU My Gain? 
Tuesday, September 18, 2007, 4:02 AM
I've been following Microsoft's dealings w/ the EU antitrust courts for a while now, and where the company seemed to have prevailed in the U.S., it is running into a much tougher stance in Europe.

While a part of me wants to shout w/ glee and say that Microsoft is getting its due in a different court system, I do wonder, though, if the Europeans have a bias against American companies in general.

I mean, it's not just Microsoft that's having issues, but Apple also, and maybe others I have not read about....

Your thoughts?
  |  permalink   |   ( 3 / 1813 )

No ICloenable<T> in .NET Framework 2.0 
Tuesday, September 11, 2007, 4:28 AM
I just realized that I needed to implement the ICloneable interface in one of the classes I wrote for work, only to find out that there is no generic-enabled ICloneable<T> equivalent in .NET Framework 2.0. So I whipped one up for myself.

It's such a useful little interface, wonder why the .NET Framework architects didn't think to include it.

I looked into the documentation for Framework 3.0, and it appears to absent there as well. Hmm....
  |  permalink   |   ( 3.1 / 1685 )

Vim, My New Ruby on Rails Editor 
Tuesday, September 11, 2007, 3:15 AM
Back when I computed on green-screen terminals running VT100 emulation connected via telnet to Unix systems, just about everyone used vi. I think some people used emacs, but I liked vi's simplicity and usability.

Now, some years later, I have bought and drank the IDE kool-aid. I use Apple's Xcode to support Freeciv on the Mac, Microsoft's Visual Studio 2005 to support my day job as a C#/ASP.NET developer, and Eclipse + Aptana to dabble in Ruby on Rails in my spare time.

However, I finally got fed up with Eclipse's speed on my not-so-recent Mac (alright, it's actually ancient by computing standards) that serves three masters: myself and two other family members.

So I took inventory of the features I relied on when I used Eclipse, and I went about searching for a speedier and equally priced replacement. Lo and behold, I came cross the Vim editor, which is not only a much improved version of the old vi editor I, but it also supports a large array of scripts that can be easily downloaded and installed to enhance and extend vim.

After some experimentation, I settled on the following setup:
  • Vim.app - GUI version of vim, installed via MacPorts
  • vim - Command-line version, installed via MacPorts
  • rails.vim - Ruby on Rails: easy file navigation, enhanced syntax highlighting, and more
  • genutils.vim - Enables extra functionality in rails.vim
  • vividchalk.vim - Color scheme strangely reminiscent of Vibrant Ink for a certain OS X editor
The following table gives you an idea of the features in Eclipse that I relied on, and how I am coping with vim:

Feature Eclipse Vim
Syntax highlighting Yes Yes
Auto-insertion of keywords, symbols, & markup tags Yes No
Hierarchical view of Rails application directory structure Yes No, but I can get there using the Finder or Terminal
Integration with Subversion Yes Yes, with the use of another script, but I found it clumsy, so I reverted to using svn via the command-line
Class outline Yes No, but a quick text search suffices for now

As you can see, I am doing pretty well. For a little extra typing, I gain development speed plus a much smaller CPU footprint. I'll buy that for ... hey, it's free!

  |  permalink   |   ( 3 / 990 )

Recursive Dependencies in MacPorts 
Wednesday, May 2, 2007, 11:14 PM
Someone posted a query to the MacPorts user maiing list asking why the bittorrent port requires XFree86 or Apple's X11 to build. It is a reasonable question, since at first glance bittorrent doesn't seem to need it:
% port deps bittorrent
bittorrent has library dependencies on:
py-wxpython
py-twisted
py-crypto
A second glance says the same as well:
% port deps py-wxpython
py-wxpython has library dependencies on:
python24
wxWidgets
% port deps py-twisted
py-twisted has library dependencies on:
python24
py-zopeinterface
% port deps py-crypto
py-crypto has library dependencies on:
python24
I ran into a similar problem in my use of MacPorts, where I needed to determine all the dependencies a port has. So I wrote a Python script, rdeps.py, which outputs the following (emphasis added):
% rdeps.py bittorrent
+- bittorrent
+- (L) py-wxpython
| +- (L) python24
| +- (L) wxWidgets
| +- (L) jpeg
| +- (L) tiff
| | +- (L) jpeg
| | +- (L) zlib
| +- (L) libpng
| | +- (L) zlib
| +- (L) zlib
| +- (L) libiconv
| | +- (B) gperf
| +- (L) expat
| +- (L) libsdl
| | +- (L) XFree86
| | +- (B) perl5.8
| +- (L) libsdl_mixer
| +- (L) libsdl
| | +- (L) XFree86
| | +- (B) perl5.8
| +- (L) smpeg
| | +- (L) libsdl
| | +- (L) XFree86
| | +- (B) perl5.8
| +- (L) libvorbis
| | +- (L) libogg
| +- (L) libogg
| +- (L) libmikmod
+- (L) py-twisted
| +- (L) python24
| +- (L) py-zopeinterface
| +- (L) python24
+- (L) py-crypto
+- (L) python24
This has saved me from needing to repeatedly execute the port deps command by hand or going through Portfiles to hunt down dependencies on many occasions.

Of course, my little handy Python script only provides a skin-deep explanation of why X11 is needed by saying "because the Portfile says so", which isn't all that insightful. A slightly better explanation can be found here. Basically, bittorrent has a dependency on libsdl, which will not compile unless X11 is present.

Now why does libsdl need X11 to build? I don't know the answer to this one. Do you?
  |  permalink   |   ( 3 / 995 )

@voip_provider = voip_providers.next if vonage.go_under? and voip_providers.next? 
Wednesday, April 18, 2007, 1:35 AM
Thanks to a speedy Internet connection and Vonage, I have been landline-free for a little over two years now.

My VOIP service during the past 24+ months hasn't been trouble free, but it has been pretty good.

However, given the troubles Vonage is currently going through, things don't look so hot. The latest news for the company sounds downright ominous. Yes the company keeps stating that existing customers aren't affected. But I wonder when that statement might change.

Vonage is in the business of providing a service/solution using technology. But it would seem it has reached a roadblock that technology is unable to solve. So either Vonage needs to solve its problems another way, or I will have to start shopping for another VOIP provider.
  |  permalink   |   ( 3 / 610 )


Next