Category Archives: Windows

What the h*ll is happening with Shoes?

A long time without a post! Indeed. I could apologize I could explain. I could make up a story. What to do? What to do? Make up an explanation and explain too much?

There is a shoes 3.3.7 beta in the usual place. There is also a shoes 3.3.8 beta. What’s the story with that? 3.3.7 has one nasty bug for some situations – you can’t manual resize the window down after expanding it. I rarely do that myself and it only happens if the window has menus. I spent so much time trying to find that bug that I created a user layout feature for Shoes 3.3.8 which took way more time than I thought, there much more that can be done and there we are.

Menus? Shoes has menus now? It does in 3.3.7 and I love typing ^Q to quit Shoes apps. I do that a lot. I like it so much I replaced the cobbler buttons with menus. There are likely to be edge cases like that resize bug. Of course you can create and change menus for your app.

You can write shoes apps that use multiple monitors. You wouldn’t do this for machines that don’t have multiple monitors, of course.

You can (try) to provide a Gtk3 theme for Linux and Windows. I say try because it’s a lot harder that you think. Themes are often tied to ‘theme-engines’. There are several engines, not available everywhere, each with multiple versions and bugs. For Shoes we can’t depend on a theme engine so the theme has to be engine free – good luck finding one of those on the internet. Also many themes depends on the version of Gtk3. My version of GTK3 is not going to be the same as yours. Future versions of Shoes will use a newer Gtk3 version. But, if you want to write your own Shoes theme, you can do it.

There is a new settings class. Themes and monitors and menu enabling have to happen very early when shoes gets initialized so they are part of anew settings class that reads a startup.yaml file (if you have one). Note there are two user fields that someone clever could use to prevent theft or …

Merge packaging is provided from a Wizard in Cobbler. This used to be 3 scripts that only a few people knew about. It merges your app with Shoes and hides Shoes. It is NOT platform independent. Shoes Windows can merge Shoes Windows. OSX for OSX. Linux x86 for Linux x86. Each one has very unique requirements for installers. Yes, they use installers. Shoes provides some help with the installers but you’ll need to learn them. Just like a real application developer.

You might detect a theme for Shoes 3.3.7 — writing real applications. Menus, themes, installers – It’s all in the manual and see the wiki.

Everybody hits the wall on using Flows and Stacks to do layout. Your complaints (mine too) have been heard. Shoes 3.3.8 provides a general ‘layout’ class. See the wiki article and this github issue. It lets you write your own layout manager. You could do something similar with Shoes Widget class. Almost. Mostly for proof of concept, two new user layouts are provided – written in Shoes/Ruby, a simple Grid (GridBag) and something close to the AutoLayout used by Apple and some JavaScript frameworks. These are good enough to play with. AutoLayout is non-trivial – it uses the Cassowary-ruby gem to solve a group of constraints. There’s even a Visual Format Language (VFL) parser available.

That’s what I’ve been doing.

Shoes 3.3.6

Pretty much the same as the beta. One feature, one bug fix. At the usual place

-------------- Shoes 3.3.6 -------------------------------

=== New with 3.3.6
* Can set font and stroke color for Button, edit_line, edit_box,
list_box and switch native widgets.
https://github.com/shoes/shoes3/issues/179

=== Fixed with 3.3.6
Linux versions may not have workable symlinks to .so's
https://github.com/shoes/shoes3/issues/392

As I mentioned in the previous post, I’m going into the Hospital next week for surgery. I expect recovery will take a few weeks so I’m going to be mostly offline until mid March.

Shoes 3.3.6 Beta and More

A 3.3.6 beta just a few weeks after 3.3.5? What’s going on?

A couple of things. First, it fixes some show stopper bugs for a few people. Second, its adds
a feature you might care about – you can set the font and stroke color for native widgets like edit_line, edit_box, button, list_box and switch (except for BSD – it’s too special). I’ve been working on that feature for a long time – time to let people test it and I can get to other things.

Betas here.

I have also done a lot of work to clean up Shoes from a maintainer point of view. Why? Because I have been diagnosed with oral cancer and I wanted shoes internals to be clean(er) if someone else has to replace me as maintainer. Today I got the treatment plan and while nothing is scheduled yet, I’ll probably survive. I know people are curious about these things so I’ll share some information.

Almost 5 years ago I had neck cancer which involved chemotherapy, radiation, and surgery. Clever people might connect the dates and think I started maintaining Shoes 3 after that ‘event’ for something to do while waiting to learn if they got all the cancer out of my neck. They would be correct. Three years later (2016) I’m pronounced cured and I’m also deep in have fun with Shoes.

I don’t know when exactly but I’ll have to travel to Salt Lake City, Utah, USA where they will cutout a chunk of my right jawbone and rebuild the jaw with a chunk of bone take from my lower leg. I’ll be there for at least a week, probably more. I know these things don’t heal all that fast so I’ll be miserable for a least a month. But, I’ll probably survive and I don’t have to suffer months of chemotherapy or radiation. Pick your misery! I’m good with this option. So one day my attention to Shoes will drop to zero and maybe a few weeks or a month later I’ll return to Shoes.

It goes without saying but I will say it again – we can always use to folks to help with Shoes 3.

Shoes 3.3.4

Yup, another Shoes release. What’s New? systray. Moving and resizing windows. You can disable the image cache for the whole app or per image. Other than that there’s some bug fixes and some Shoes developer love. We also don’t support 32 bit linux anymore (it still builds if you really need it and are willing to do the work) We added FreesBSD 11.3 (64 bit) as a native port if you have the proper ports installed.

ChangeLog:

=== New with 3.3.4
  * Uses Ruby 2.3.4 (2.3.3 on Windows) and Rubygems 2.6.12+
    https://github.com/Shoes3/shoes3/issues/361 and
    https://github.com/Shoes3/shoes3/issues/270
  * New widget! - systray sends tiny status messages to the 
    host OS desktop.
    https://github.com/Shoes3/shoes3/issues/363
  * New platform - freebsd 11.1 (64). Can build, run, install and package for.
    https://github.com/Shoes3/shoes3/issues/365
  * Dead platform - 32 bit i686 (Linux intel) target is no longer supported
  * libcurl.dll/dylib/so and new gems are included with Shoes. require 'typhoeus'
    to use it. When net/http and open_uri is too confusing, arcane and limiting. 
    On Windows it's not faster (or slower) - just better in other ways. 
    see https://github.com/typhoeus/typhoeus
  * Method app.resize can programaticly expand the window.
    see https://github.com/Shoes3/shoes3/issues/370
  * Windows can be positioned 
    https://github.com/Shoes3/shoes3/issues/28
  * can enable/disable image cache
    https://github.com/Shoes3/shoes3/issues/323
    https://github.com/Shoes3/shoes3/issues/377
    See Advanced->appmethods in Manual.
    
=== Fixed with 3.3.4
  * When Shoes is installed on a system with existing rvm/rbenv it
    might use the wrong set of gems. 
  * Fixed some SSL issues for download and image (Windows).
    Ruby/Windows (net/http) ssl problems remain unfixed.
  * Improved Windows downloading speed - still sub-par but better than
    before. 
  * some downloaded images don't have an etag (cough, manual Image example)

=== Developer issues with 3.3.4
  * rake does a better job of dealing with changes in lib/shoes/*.rb, static/manual-en.txt
    and changes in samples/*/*.rb. You can change these without a full rebuild.
    https://github.com/Shoes3/shoes3/issues/362
  * new freebsd target (loose and tight shoes)

Other than that, nothing new. 🙂

3.3.4 beta – systray and

I’ve got a set of betas for 3.3.4 for windows, osx, pi and x86_64 linux. Here

You might notice that there is no 32 bit linux – why bother? It’s pain to support and nobody uses it. OSX Mavericks (10.9) is also likely to disowned in Shoes 3.3.4. It’s a real pain in the ass. That will not happen soon. But, it will happen.

What’s in Shoes 3.3.4 beta this month?

  • Systray
  • Typheous
  • A hack to get https urls working for Windows and OSX image and download methods.
  • Windows GUI speed improvements in general, most certainly for network things. Still too slow but a whole lot better that 3.3.3. Moves the meter from ‘really sucks’ to ‘almost doesn’t suck’

It’s highly likely that Typheous will be the recommended replacement for the use of net/http and open_uri when Shoes download is insufficient for networking needs. It’s a lot more understandable to programmers who need more than what Shoes download can do. See the README.md. Improvement? I think so.

The download performance and general friskiness of 3.3.4 on Windows is noteworthy. Sucks less and I think we could do better. There are SSL reasons and ruby-bugs why you don’t want to dig into net/http and open-uri

Quick look Shoes 3.3.4 – systray

Shoes 3.3.4 will probably have a systray pseudo widget. Beta for Windows for feedback. You can read the manual which has this test program

Shoes.app do
stack do
para "Press button and look in your systems notification area"
ctr = 0;
button "Notify" do
ctr += 1
icp = ''
if ctr % 3 != 0
icp = "#{DIR}/static/shoes-icon.png"
else
icp = "#{DIR}/static/shoes-icon-red.png"
end
systray title: "Notify Test", message: "message ##{ctr}", icon: icp
end
end
end

Please comment here.

Closing in on 3.3.3

There are Shoes 3.3.3 beta’s to download from and the Change Log is here.

What you don’t know, behind the scenes. It was a lot of work from core contributers and myself. And then some core panties got twisted too tight to work together and now it’s just me working on the C side of Shoes. I miss them. I’ll work through their bugs reports and suggestions as best I can because they are good things to do.

Cleanup can be endless

After @backorder moved the Shoes C code into a more logical configuration and I changed the rakefile mess to leverage that – It’s quite developer friendly now if you are of the C persuasion. Most Shoes folk will never see those changes and that’s OK with me. It was something that just needed to be done.

Turns out there is another task that ‘just needs to be done’ – cleaning up my computers by removing all the useless junk I have gathered over many years. Some junk was shoes related and some were just grand ideas I got involed with Shoes. I have a soft spot in my heart for the Raspberri Pi so I ordered an SSD and that board didn’t work, I ordered some more parts to make the ssd work in the main box because good money needs more good money and and then some more parts and then some head scratching on making all these Chinese adapters work and I was pushing GB’s of data around which is kind of slow.

I’m not done yet but I can see the light at end of the tunnel. It just needed to be done.

Free At Last! Shoes 3.3.2 has been released.

Yes, it took forever and it’s not perfect but we could wait forever for perfection. Shoes 3.3.2 has some fun new features and some bug fixes. Available via at the usual place.

    New with 3.3.2

  • Ruby is updated to 2.2.6 (windows still uses 2.2.4)
  • gems is updated to 2.6.8
  • Profiler with both a GUI and the more traditional text report.
    Written in Shoes and Ruby so you can modify it if you like.
    issue 232
    Wiki – how to use
  • Shoes.show_console is now Shoes.terminal with many options for size, and
    colors. It can handle some common escape sequences (colors and bolding)
    On Windows:
    Use Msys> cshoes.exe
    or install one of those ANSI dll things for your DOS era console.
    Rumor: Win 10 does support ansi escape sequences on it’s console.
    Sometimes Win7 does ok with some escape sequence.
    On OSX – scrollbars might not show up. page up/down keys and home/end
    and scroll wheel do work.
    Useful for running unit tests of Shoes and other terminal stuff like the
    profiler text report.
    Note: raspbian may have font issues for ‘monospace’ font.
    issue 236
    issue 256
  • exit should no longer be used. Please use Shoes.quit
    issue 263
  • plot widget (line,bar,scatter, pie charts and radar/spider)
    issue 288
    issue 264
    Wiki – how to use
    expect some confusion and bugs.
  • rename method ‘refresh_slot’ to ‘refresh’ before too many people
    use the old name. This could break some scripts.
    Fixed with 3.3.2

  • Radio buttons fix
    issue 274
  • A new launch script for OSX (cshoes) that works like Linux and Windows
    from the command line. Use Cobbler to create your osx cshoes script.
  • Windows: bug261 – fix font loading
    issue 261
  • debugging with byebug is much better.
    issue 263
    Wiki – how to use
  • fixed: click and release methods return the documented button. top, left
    values. Button numbers start with left button = 1 and increases from there.
    How many buttons and how they are numbered is not something Shoes can know
    about so it’s the user responsibility to be cross platform with buttons > 1.
    issue 240

State of the Shoes Address

You may have noticed that it’s been a while since Shoes 3.3.1 was released and 3.3.2 keeps getting pushed into the future. What’s going on?

Well, some of the new features are very difficult to write and time consuming to test. We’ve discovered some very difficult issues with packaging for Windows 10 and so far, there is no way to get around what Microsoft wants and what I’m willing to do to Shoes, or what your willing to do. It’s called “code signing” which requires the annual purchase of a certificate (and the price can be very high with some certificate authorities). I won’t pay for that and I don’t think you should either.

The ground shifted and all we can do is adapt. Don’t package your scripts in an exe! Just tell your Windows users to install Shoes first. Then run the .shy you created.

Ruby also shifts under our feet. As Ruby evolves, they change things. Some of those changes will involve a lot of work for the Shoes C code in the future. I just found another problem with Ruby 2.2.6 (can’t cross compile the fiddle gem for Windows) – that will slow down building and testing even more if it can’t be resolved. I also found a new dependency problem last night for Windows but that should not be too difficult.

And then there are the Shiny Things that may not work, but consume lots of time to discover if it’s a failure or a brilliant idea. Like ebook