diff --git a/README b/README.2008 similarity index 100% rename from README rename to README.2008 diff --git a/README.2011 b/README.2011 new file mode 100644 index 00000000..7d241e53 --- /dev/null +++ b/README.2011 @@ -0,0 +1,78 @@ +
+    ((( |||_| ///\ [[[_ (((
+     ))) || |  \\/  [[_  )))
+  an artsy any-platform app kit
+      http://shoesrb.com
+
+ +# About Shoes + +Shoes is the best little DSL for cross-platform GUI programming there is. It feels like real Ruby, rather than just another C++ library wrapper. If Gtk or wxWidgets is Rails, Shoes is Sinatra. + +# Let me tell you a story about Shoes + + Way way back in the day, there was a guy named \_why. He created a project known as [Hackety Hack](http://hackety-hack.com) to teach programming to everyone. In order to reach all corners of the earth, \_why decided to make Hackety Hack work on Windows, Mac OS X, and Linux. This was a lot of work, and so \_why decided to share his toolkit with the world. Thus, Shoes was born. + +Everybody loved Shoes. Many apps were made, and put into [The Shoebox](http://the-shoebox.org/). But, one day, \_why left. In his memory, Team Shoes assembled, and carried on making Shoes. They released Shoes 3 in late summer 2010. + +# So what do these Shoes look like? + +Here's a little Shoes app. It's a stopwatch! + + Shoes.app :height => 150, :width => 250 do + background rgb(240, 250, 208) + stack :margin => 10 do + button "Start" do + @time = Time.now + @label.replace "Stop watch started at #@time" + end + button "Stop" do + @label.replace "Stopped, ", strong("#{Time.now - @time}"), " seconds elapsed." + end + @label = para "Press ", strong("start"), " to begin timing." + end + end + +Here's what it looks like: + +![shoes timer](https://github.com/shoes/shoes/raw/develop/manual-snapshots/simple-timer.png) + +Pretty simple! For more samples, the manual, and a free book, check out [the Shoes website](http://shoesrb.com/). + +# Using Shoes + +If you'd like to use Shoes to develop some apps... awesome! It's super easy: Just go to the [downloads page on the Shoes website](http://shoesrb.com/downloads) and download a copy of Shoes for your platform. Mac OSX, Windows, and Linux supported! + +After you install Shoes, run it! You'll get a window like this: + +![shoes main window](https://github.com/shoes/shoes/raw/develop/static/shoes_main_window.png) + +You can then open any .rb file with Shoes code inside by choosing "Open an App." It'll open it up and run it, right away. + +Once you're happy with your app, you can choose "Package an App" to wrap up your app as a .exe, .app, or a .run. Then you can share it with someone without a pair of Shoes to call their own. + +# Making your own Shoes + +You can make your own pair of Shoes with a little bit of elbow grease. Since there are different instructions on each platform, we've got a page up on the [Shoes development wiki](http://github.com/shoes/shoes/wiki) about it. It's [right here](https://github.com/shoes/shoes/wiki/Building-Shoes). + +# Shoes Around the Web + +If you want to keep up to date with what's going on with Shoes, you can find us in various places: + +* [Official Shoes Site](http://shoesrb.com/) +* [Source Code @ GitHub](http://github.com/shoes/shoes) +* [Issue tracker @ GitHub](http://github.com/shoes/shoes/issues) +* [Mailing List](http://librelist.com/browser/shoes/) (send an email to shoes@librelist.com to join) +* [Twitter account](http://twitter.com/shoooesrb) +* [Facebook page](http://www.facebook.com/pages/Shoes/132605040125019) +* IRC room on Freenode, #shoes + +# Helping out with Shoes + +So you'd like to lend a helping hand, eh? Great! We'd love to have you. To submit a patch to Shoes, just fork us, and send a pull request. + +If you don't have any ideas yourself, take a look at the [Issue tracker](http://github.com/shoes/shoes/issues) and see if anything strikes your fancy. If you need help working on something, don't be afraid to post to the mailing list about it! + +Be sure to [peer into the Shoes Wiki](https://github.com/shoes/shoes/wiki) for instructions on how to get the source code to build, and to learn more knowledge that will come in handy if you want to help out! + +If you're not a programmer, you can help Shoes by talking about it! Blog posts, tweets, tell your neighbors, call your grandma, whatever! Share Shoes with everyone! \ No newline at end of file diff --git a/README.md b/README.md index 7d241e53..58698ae5 100644 --- a/README.md +++ b/README.md @@ -1,78 +1,85 @@ -
+                      
     ((( |||_| ///\ [[[_ (((
      ))) || |  \\/  [[_  )))
-  an artsy any-platform app kit
-      http://shoesrb.com
-
- -# About Shoes - -Shoes is the best little DSL for cross-platform GUI programming there is. It feels like real Ruby, rather than just another C++ library wrapper. If Gtk or wxWidgets is Rails, Shoes is Sinatra. - -# Let me tell you a story about Shoes - - Way way back in the day, there was a guy named \_why. He created a project known as [Hackety Hack](http://hackety-hack.com) to teach programming to everyone. In order to reach all corners of the earth, \_why decided to make Hackety Hack work on Windows, Mac OS X, and Linux. This was a lot of work, and so \_why decided to share his toolkit with the world. Thus, Shoes was born. - -Everybody loved Shoes. Many apps were made, and put into [The Shoebox](http://the-shoebox.org/). But, one day, \_why left. In his memory, Team Shoes assembled, and carried on making Shoes. They released Shoes 3 in late summer 2010. - -# So what do these Shoes look like? - -Here's a little Shoes app. It's a stopwatch! - - Shoes.app :height => 150, :width => 250 do - background rgb(240, 250, 208) - stack :margin => 10 do - button "Start" do - @time = Time.now - @label.replace "Stop watch started at #@time" - end - button "Stop" do - @label.replace "Stopped, ", strong("#{Time.now - @time}"), " seconds elapsed." - end - @label = para "Press ", strong("start"), " to begin timing." - end - end - -Here's what it looks like: - -![shoes timer](https://github.com/shoes/shoes/raw/develop/manual-snapshots/simple-timer.png) - -Pretty simple! For more samples, the manual, and a free book, check out [the Shoes website](http://shoesrb.com/). - -# Using Shoes - -If you'd like to use Shoes to develop some apps... awesome! It's super easy: Just go to the [downloads page on the Shoes website](http://shoesrb.com/downloads) and download a copy of Shoes for your platform. Mac OSX, Windows, and Linux supported! - -After you install Shoes, run it! You'll get a window like this: - -![shoes main window](https://github.com/shoes/shoes/raw/develop/static/shoes_main_window.png) - -You can then open any .rb file with Shoes code inside by choosing "Open an App." It'll open it up and run it, right away. - -Once you're happy with your app, you can choose "Package an App" to wrap up your app as a .exe, .app, or a .run. Then you can share it with someone without a pair of Shoes to call their own. - -# Making your own Shoes - -You can make your own pair of Shoes with a little bit of elbow grease. Since there are different instructions on each platform, we've got a page up on the [Shoes development wiki](http://github.com/shoes/shoes/wiki) about it. It's [right here](https://github.com/shoes/shoes/wiki/Building-Shoes). - -# Shoes Around the Web - -If you want to keep up to date with what's going on with Shoes, you can find us in various places: - -* [Official Shoes Site](http://shoesrb.com/) -* [Source Code @ GitHub](http://github.com/shoes/shoes) -* [Issue tracker @ GitHub](http://github.com/shoes/shoes/issues) -* [Mailing List](http://librelist.com/browser/shoes/) (send an email to shoes@librelist.com to join) -* [Twitter account](http://twitter.com/shoooesrb) -* [Facebook page](http://www.facebook.com/pages/Shoes/132605040125019) -* IRC room on Freenode, #shoes - -# Helping out with Shoes - -So you'd like to lend a helping hand, eh? Great! We'd love to have you. To submit a patch to Shoes, just fork us, and send a pull request. - -If you don't have any ideas yourself, take a look at the [Issue tracker](http://github.com/shoes/shoes/issues) and see if anything strikes your fancy. If you need help working on something, don't be afraid to post to the mailing list about it! - -Be sure to [peer into the Shoes Wiki](https://github.com/shoes/shoes/wiki) for instructions on how to get the source code to build, and to learn more knowledge that will come in handy if you want to help out! - -If you're not a programmer, you can help Shoes by talking about it! Blog posts, tweets, tell your neighbors, call your grandma, whatever! Share Shoes with everyone! \ No newline at end of file + an artsy any-platform app kit + + The source describe below is at and + you can follow my blog at + +////////////////////////////////////////////////////////////////////////// + +This is Shoes 3.2 (Federales). Earlier releases where 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 Shows is written +in C (and Objective C on the Mac). Shoes 4 is written in Java. + +Federales is one mans attempt to keep Red Shoes current with modern Linux +distributions and newer versions of Ruby. Federales doesn't really add any new +features to Shoes except it works better (Shoes 3.1 barely works) +As you'll see, Federales removes some things. + +Let's start with the good news first. + + Federales uses Ruby 2.0.0 (or higher) and Rubygems 2.0.14 (or higher) + Linux users really can download a binary that works. Theiy 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 commandline if you + like, of course. + Gem handling is greatly improved, at a cost - more on that below. + Gem.setup is not required. If used, it works better. + Windows 7 version seems to work. + OSX Mavericks (10.9.2) version is 'not completely terrible' as of + May 5, 2014 + Does not require Sqlite. + Includes a Shoes Cobbler app to clear your image cache and manage your + Shoes/gem interface - see below discussion on gems. + + +What doesn't work. + Link and Linkhover have to be replaced with Shoes::Link and Shoes::Linkhover + There are no built in Gems included. No Hpricot. No Sqlite. No json. + Again - see below. + Packaging an app to include Shoes with it does not work. It hasn't for + years. I'll let you know when it does. Be very patient. There is + much to do first. + Samples that use Sqllite or Hpricot. + +Gem Secret Sauce. + If you build Shoes from source on Linux, you'll create a 'Loose' Shoes. + If you download a Shoes 3.2 binary distribution, you'll get a 'Tight' + shoes. Only gems in your ~/.shoe/+gem directory are allowed and you have + to do the Shoes.setup in your code to get them and that may not work + as well as you hope. Just like Shoes 3.0 and 3.1 + + Loose Shoes will use your existing ruby gems. Since you have enough skills + to install ruby and the dependecies 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. I call that a Jailbreak. + + If you have a 'Tight' Shoes, 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 commandline. You can tell Shoes where those + other Ruby Gems are located. Of course you'll to install a Ruby that matches + what your Tight Shoes is running (Rubyinstaller for Windows), rvm for Linux + and OSX. And you'll have to have the compilers and build tools installed + (Devkit for Windows - 32 bit version, or Xcode for OSX or whatever your + Linux distribution uses to install gcc/make/autoconf. + + Perhaps you're thinking, "If I install all that stuff then I could just + build Shoes from source!" Correct. You could. Shoe3.2 is a work in progress + and Jailbreak is only a 'good idea, and not fully baked'. Now that many gems + include binary payloads for Windows, you may not need a developers setup. + Or you might. I can't tell what to do after you get out of jail. + +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 is even dumber. + +It's all easy until it gets hard. + + + + Perhaps you're thinking, "Some ruby gems are no distributed with + diff --git a/Rakefile b/Rakefile index 190011e3..6535bdc9 100644 --- a/Rakefile +++ b/Rakefile @@ -298,7 +298,7 @@ namespace :osx do namespace :build_tasks do - task :build => [:common_build, :copy_deps_to_dist, :change_install_names, :copy_files_to_dist, :setup_system_resources, :verify] + task :build => [:copy_files_to_dist, :common_build, :copy_deps_to_dist, :change_install_names, :setup_system_resources, :verify] # Make sure the installed ruby is capable of this build task :check_ruby_arch do @@ -318,21 +318,27 @@ namespace :osx do end task :common_build do - mkdir_p "dist/ruby" - cp_r "#{EXT_RUBY}/lib/ruby/#{RUBY_V}", "dist/ruby/lib" + puts "Entering common_build" + mkdir_p "dist/lib/ruby" + #cp_r "#{EXT_RUBY}/lib/ruby/#{RUBY_V}", "dist/ruby/lib" + cp_r "#{EXT_RUBY}/lib/ruby/#{RUBY_V}", "dist/lib/ruby" unless ENV['STANDARD'] %w[soap wsdl xsd].each do |libn| rm_rf "dist/ruby/lib/#{libn}" end end %w[req/ftsearch/lib/* req/rake/lib/*].each do |rdir| - FileList[rdir].each { |rlib| cp_r rlib, "dist/ruby/lib" } - end - %w[req/binject/ext/binject_c req/ftsearch/ext/ftsearchrt req/bloopsaphone/ext/bloops req/chipmunk/ext/chipmunk]. - each { |xdir| copy_ext_osx xdir, "dist/ruby/lib/#{SHOES_RUBY_ARCH}" } + #FileList[rdir].each { |rlib| cp_r rlib, "dist/ruby/lib" } + FileList[rdir].each { |rlib| cp_r rlib, "dist/lib/ruby/#{RUBY_V}" } + end + #%w[req/binject/ext/binject_c req/ftsearch/ext/ftsearchrt req/bloopsaphone/ext/bloops req/chipmunk/ext/chipmunk]. + # each { |xdir| copy_ext_osx xdir, "dist/ruby/lib/#{SHOES_RUBY_ARCH}" } + %w[req/binject/ext/binject_c req/ftsearch/ext/ftsearchrt req/chipmunk/ext/chipmunk]. + each { |xdir| copy_ext_osx xdir, "dist/lib/ruby/#{RUBY_V}/#{SHOES_RUBY_ARCH}" } gdir = "dist/ruby/gems/#{RUBY_V}" - {'hpricot' => 'lib', 'json' => 'lib/json/ext', 'sqlite3' => 'lib'}.each do |gemn, xdir| + #{'hpricot' => 'lib', 'json' => 'lib/json/ext', 'sqlite3' => 'lib'}.each do |gemn, xdir| + {}.each do |gemn, xdir| spec = eval(File.read("req/#{gemn}/gemspec")) mkdir_p "#{gdir}/specifications" mkdir_p "#{gdir}/gems/#{spec.full_name}/lib" @@ -366,6 +372,7 @@ namespace :osx do end task :copy_pango_modules_to_dist do + puts "Entering copy_pango_modules_to_dist" modules_file = `brew --prefix`.chomp << '/etc/pango/pango.modules' modules_path = File.open(modules_file) {|f| f.grep(/^# ModulesPath = (.*)$/){$1}.first} mkdir_p 'dist/pango' @@ -374,6 +381,7 @@ namespace :osx do end task :copy_deps_to_dist => :copy_pango_modules_to_dist do + puts "Entering copy_deps_to_dist" # Generate a list of dependencies straight from the generated files. # Start with dependencies of shoes-bin and pango-querymodules, and then # add the dependencies of those dependencies. @@ -389,7 +397,12 @@ namespace :osx do end end end - dylibs.each {|libn| cp "#{libn}", "dist/"} + #dylibs.each {|libn| cp "#{libn}", "dist/" unless File.exists? "dist/#{libn}"} + # clunky hack begins - Homebrew keg issue? ro duplicates do exist + dylibs.each do |libn| + cp "#{libn}", "dist/" + chmod 0755, "dist/#{File.basename(libn)}" + end end task :copy_files_to_dist do diff --git a/app.yaml b/app.yaml index b42abd10..5ab3db80 100644 --- a/app.yaml +++ b/app.yaml @@ -1,7 +1,7 @@ name: Shoes major: 3 minor: 2 -tiny: b5 +tiny: b6 release: federales icons: win32: platform/msw/shoes.ico diff --git a/notes/Bugs.txt b/notes/Bugs.txt index 410dd629..7b63d78e 100644 --- a/notes/Bugs.txt +++ b/notes/Bugs.txt @@ -1,6 +1,14 @@ Bugs/Status - stick with Ruby 1.9.3 and gtk2 until things get sorted out with GKt3 +2014-05-05 Cinco de Mayo! + Fixed some bugs identified yesterday. The Manual works, many samples + work. Some have OSX unique bugs (accordion, menu) +--> Whats the key chord to open the console in OSX +==> Write a README.Federales and include with binary downloads. +--> Shoes doesn't exit. Have to pkill shoes. +--> Shoes cursor does'nt highlight clickables on splash screen + 2014-05-04 OSX Shoes Homebrew dependecies needed a lot of work and may still be incorrect. @@ -11,10 +19,21 @@ Bugs/Status - stick with Ruby 1.9.3 and gtk2 until things get sorted Glib was a pain. had to copy glibconfig.h to 'main' includes In Rakefile, add GLIB_PATH, PKG_CONFIG_PATH ==> Yes the rakefiles need a lot of love and attention. Grrr. -==> Seriously slow to compile and link and copy stuff around. -==> Don't deal with bloopsaphone/portaudio, sqlite, hpricot. -==> need to arrange dist/lib the Federales way (no dist/ruby in 3.2) - +--> Seriously slow to compile and link and copy stuff around. + Helped a bit with rsize=8192,wsize=8192 in /etc/automounts/nfs + Still too slow. +done: Don't build with bloopsaphone/portaudio, sqlite, hpricot,json. +done: need to arrange dist/lib the Federales way (no dist/ruby in 3.2) +--> Right/meta (right/Fan on Apple keyboard) on linux Virtual box + switch to Left/meta somehow? +==> Pango/modules don't copy - permission problem. Rakefile? + It's trying to copy them twice /usr/local/lib and /usr/local/Cellar + Homebrew kegging issue? + My hack doesn't work that well. +==> Install rvm and Ruby 2.0.0 +==> Why build a Universal version (x86_64, and i386) when Mavericks only + runs on X86_64 + 2014-05-03 Hackintosh. done: automount working.