My History of Shoes

Shoes is simple and Shoes is complex. It’s a very easy way to write a cross platform GUI application in Ruby. Shoes is fiendishly clever inside. If you travel in the Ruby world, it’s enough to say that _why_the_lucky_stiff wrote Shoes and then he chose to vanish from the internet.  Like all geniuses or prophets (or nut cases) – He left some disciples behind.  I’m one of them. Like the books of the New Testament, every disciple has a slightly different story to tell. A different pair of Shoes. Perhaps you feel more comfortable with comparing Shoes with the different branches of Buddhism. One dude and some oddly similar but not the same sects evolve.

That’s too dramatic.  _why was not a God  but it’s my website and I’m human so I’m prone to dramatising things. Anyway, the remaining Disciples collaborated to get the Shoes code updated from Ruby 1.8.7 to 1.9.1, fix some bugs and implement some half done features. That was the Policeman Release (Shoes 3.0).  It kind of pretty much sucked — but it was what we could do at the time. Then Ruby 1.9.2 arrived, and Windows Vista and more versions of OSX. Many of the faithful were not C developers nor did they want to become Windows API or Objective C mavens. I didn’t either so I’m not throwing stones at anyone.  During this period, the sole Windows developer on the team, ‘ashbb’ wrote Green Shoes — A Ruby only version of Shoes that used the Ruby Gtk2 gem.  We called the old C/Ruby version “Red Shoes” because that was the icon background color.  Team members also created Blue Shoes (QT), Brown and White Shoes variants before coalescing on creating Shoes 4 using Java/swt and JRuby.

That wasn’t my choice (the reasons are not important now, you can read the mailing list archives if you really care. So I mostly dropped out of the Shoes community until I bought a Raspberry Pi and went looking for something to do with it. Shoes was always an ‘educational’ oriented application and the C version (Red Shoes) might be something the Pi folks would like if I could get old features working and it would be fun to try building Shoes with a cross compiling setup. I was going back to my bare metal days.

Red Shoes was then at a half-hearted 3.1 and no one wanted the old dog when if could get a new puppy with Shoes 4. So I adopted the rangey mutt. I didn’t ask for permission. No one cared about Red Shoes then. It’s not a fork with the drama some folks might expect. It’s not even a fork. It was a mess way back in Policeman/Ruby 1.9.1 days so I decided to clean that up before telling the world about it. Good intensions, over promise and never deliver is a problem I’d rather not be part of. I called it Shoes 3.2 – Federales. It runs on the Raspberry Pi and 64 bit Linux and 32 bit Linux if you want to distribute a generic version. It can be very compact if you build from source. It can be installed in the user’s Linux menu system.

I could even build a Windows version of Federales (3.2) from Linux that mostly worked on Windows but there was a glaring Ruby and Windows threading problem – it’s still there in 3.1. I decided to use GTK2 for Windows because that would make my tasks easier (snort) and a kind person helped me debug that and then we got OSX in decent shape And I rewrote a lot of the packaging infrastructure. I cleaned up the build process (I think) Shoes was alive again!

And I continue, with the help of others to fix bugs, add a feature or two that only a C/MRI ruby can do (or needs)

3 thoughts on “My History of Shoes

  1. Phil

    I’m really confused, where is ‘stack’ defined? I have seen a lot of code like:
    stack do … end OR, flow do … end, Or para …
    where are stack and flow or para defined?

    Thanks a lot.


Leave a Reply

Your email address will not be published. Required fields are marked *