Federales?

What is Shoes 3.2 (Federales)? Earlier releases were Policeman (3.0 and 3.1) and Raisins. There is a Shoes 4 under development. For historical reasons (the color of the icon in Raisins), it’s also called Red Shoes. Red Shoes is written in C (and some Objective C on the Mac). Shoes 4 is written in Java.

Federales is a maintenance release to keep Red Shoes current with modern Linux, OSX, and Windows distributions and uses newer versions of Ruby and Ruby Gems. Federales may add methods or features that are not compatible with Shoes 3.1 or Shoes 4 or can’t be accomplished easily in Shoes 4, because Shoes 3.2 is still down and dirty in C. Because we like that way.

Read the CHANGELOG to see what’s really been done lately.


Highlights of Shoes 3.2.

  • Federales uses Ruby 2.1.0 (or higher) and Rubygems 2.2.0 (or higher)
  • Linux users really can download a binary that works. They don’t have to build from source. If they do build from source, it’s easier.
  • Added a Raspberry Pi distribution (Raspbian)
  • For Linux, it installs Shoes in your home directory (~/.shoes/federales)
    and you get a menu selection. You can start from the command line if you
    like, of course.
  • Gem handling is greatly improved. Gem.setup may not be not required. If used, it works better.
  • Windows 7+ version works much, much better. Serveral nasty bugs have been fixed and the installer is less offensive. You also get a cshoes.exe you can run from the console and get some additional love, just like Linux and OSX
  • OSX Mavericks and Yosemite works. Snow Leopard (10.6) support is possible and being worked on.
  • Includes a Shoes Cobbler screen to clear your image cache, manage your Gems and change the Home site urls if this site ever goes dark or you want to do it your way
  • Packaging works again! From all 5 platforms to all 5 platforms. No longer tied to a dead website and you can change the website used for packaging and downloading without building every Shoes platform from source.
  • Gems – Serious rework. Nokogiri instead of Hpricot. Added byebug.

What doesn’t work.

  • Link and Linkhover Styles have to be replaced with Shoes::Link and Shoes::Linkhover
  • The json ext is not included. Ruby provides it as a gem.

Important Concepts with 3.2
Ruby 1.9.3 brought a feature to ruby that made it very difficult to distribute Shoes 3.0 or 3.1 or package a script with shoes. Shoes 3.2 has two variants:

  • Tight Shoes – a sand boxed app you download. And can send around.
  • Loose Shoes – built from source and deeply tied to your system. You cannot
    distribute a Loose Shoes and expect it to work. Does not include sqlite3 or hpricot gems.

You can use either Loose or Tight to Package a script or directory but the resulting package will always include or result in a Tight Shoes download.

Loose Shoes (one that you’ve compiled) will use your existing ruby gems. Since you have enough skills to install ruby and the dependencies to build Shoes, you can handle gem version mismatches. Just use your normal ruby ‘gem’ command line skills to install the gem and Shoes will use them. Something for the hardcore to love.

Say you have a ‘Tight’ Shoes you’ve downloaded, and maybe you’d like to have a Get Out Of Jail card, too? There is a way in Federales. Run the Shoes Cobbler from the splash screen or ‘shoes -c’ from the command line. You can tell Shoes where those other Ruby Gems are located. You’ll have to have the compilers and build tools installed (Devkit for Windows – 32 bit version, or Xcode command line tools for OSX or whatever your Linux distribution uses to install gcc/make/autoconf – maybe build-essential

Perhaps you’re thinking, “If I install all that stuff then I could just build Shoes from source!” You could. but it won’t as easy as you hope.

I highly recommend you run the samples/simple-info.rb script. It’ll tell you what kind of Shoes 3.2 you have and the gem directories it knows about and has used. It’s also a simple script to study. shoes/cobbler.rb (Maintain Shoes on the splash screen) also has info about your Shoes installation.

Remember, no one is happy if our Shoes don’t fit.

———— older version of this page ——

Let’s have a conversation, like in a FAQ where I make up the questions you should ask. You’ll speak in “Quotes”. I won’t. OK? Ready?

“English not my native language – I do not understand your federales name” or your puns. What an delightful question! I am happy to explain the pun. Shoes 3.0 and 3.1 was named ‘Policeman’. Federales is the North American slang name for the Mexican Federal police force, like the US FBI – kind of. It requires a Mexican Spanish pronunciation. fed-er-al-^heys. On Youtube, search for “Pancho and Lefty”. It also implies a level of incompetence, wink-wink tolerance or corruption.

“What is Shoes Federales?” It’s Shoes 3.2, a maintenance release of the C and MRI Ruby known as Red Shoes. It fixes some bugs and in some hand-wavy way, it’s better than 3.1 and 3.0.

“Don’t wave your hands in my face”.
OK. Sorry. It still won’t do video widgets. Packaging a script to include Shoes still doesn’t work – but now fails everytime. It does not include built in gems for Hpricot, sqlite, bloopsaphone, or json.

“I’m not seeing any improvements! You’re going backwards! Ya got anything I should care about?” Thank you for asking.

  • It includes Ruby 2.1.x – or higher
  • It includes Rubygems 2.1.11 or 2.2.2
  • There are no console/terminal warnings about RbConfig constants or duplicate encodings or duplicate rubygems paths.
  • If you build Shoes from source on Linux, that Shoes will use gems that you install with Ruby. And you can install Shoes in the Linux menu system if you like. And its teeny tiny in size. If you need hpricot, gem install it
  • For those who don’t want to build from source, there are Linux 64 bit and 32 bit downloads that really do work for most Linux users and would be suitable for packaging in some future Shoes release. There’s also a way they too can use gems installed by their own Ruby.
  • There is a Shoes for Raspberry Pi that can be download and of course, you can build from source. Shoes+Ruby pushes the Pi hard but it works (slowly) Just another Linux version of Shoes Federales.
  • You can cross compile, build and package Shoes for Windows from a Linux box and a lot of Shoes works just fine on Windows 7
  • There is a OSX version os Shoes 3.2. It requires a newer Mac that runs 10.9.x
  • There is a new entry on the splash screen – ‘Maintain Shoes’. That runs the Cobbler screen which has some advanced options that help tailor Shoes to the users desires. Hint: It can install and delete gems.
  • “So it’s like Shoes 3.1, only it works and with newer OS’s? and newer versions of Ruby and Gems” Yes. You’ve got it! It’s a Maintenance release.
  • “So it’s just like Shoes 4?” No. Shoes 4 can do things in the future that are unlikely to ever happen with Shoes 3.x. Shoes 4 is for people who want a simple GUI for writing small-ish Ruby programs, that’s maintained by a team of developers.
  • “So 3.2 is useless?” Not to some folks. Some people (not me) really dislike Java. Some dislike the restrictions or the overhead of Java (that might include me). Some people just think MRI ruby is ‘better’. Some people think that some of Shoes really unique features can be best implemented with a C/MRI-Ruby. Like using some very unique hardware oriented gem’s on a Raspberry pi or specific OS gems with binary code
  • “So Shoes 3.2 is for people with ‘special needs?'” I’d phrase it as ‘unique needs’ but yeah, “We’re special.” ;^)
  • Shoes 3.2.11 restored some packaging capabilities. Don’t get too giddy about it. It only merges your script/dir with Shoes and Ruby and creates a new 15-20MB download. The option for ‘download if needed’ is not offered. I would not expect that option to appear.
  • Is Shoes 3.2 officially supported?. Sort of. By one person. It’s a maintenance release while we wait for Shoes 4.
  • Will there be more maintenance of Shoes 3.2? Yes. I’d like to fix some of the bugs that have been reported. Shoes/Windows is not likely to receive any more attention from me.
  • 3.2.15 add a new Shoes feature to edit_line. You can set a proc to handle the enter (return) key.
  • What about Windows? Any improvements for Shoes/Windows would come from Ruby Improvements or be from changes that affect apply all versions of Shoes.

Is there anything else I’m supposed to ask you? Where to file bug reports? Add a comment at this website or even better, add it to the official issue tracker. You should join the mailing list too.