HyperShoes

August 17th 02:54
by why

The latter half of August is ALWAYS the do-your-code-in-cursive half.

So Shoes is for writing desktop apps. But the deal was that Shoes was supposed to be more like the web than regular desktop appy wares. Hmm? How so?

Well, a big reason is that every window inside a Shoes app has a path (a URL.) If you’re writing a simple app, then that window is simply the root window and you don’t need to think about URLs. Only if your app jumps around between windows.

And, so, why does Shoes bother using URLs? Well, I found that URLs came in really handy when I was writing Hackety Hack the first time around. Basically, the URL lets you refer to a window by a string, which is great if you need to save place. Hackety Hack has an interactive tutorial that walks around the app and saving the URL of a window ended up saving me a lot of time.

And making a page of links becomes as simple as it is on the web. Here’s samples/book.rb:

However, even though I’m using URLs, I’m not using HTTP methods like GET or POST. I’m not sure if they have their place yet. I know these verbs are a big deal right now, but I’m not sure I see them being as potent in Shoes, you know?

Now begin the comments …

12 comments

The Talking Watch

said on August 17th 03:17

I want to know what happened to the watch. Seriously, thanks for keeping up the good work.
-Tim

Judofyr

said on August 17th 05:16

I think the story is here: http://code.whytheluckystiff.net/shoes/browser/trunk/samples/book.yaml?rev=117

nertzy

said on August 17th 06:46

Are these really URLs? The U in URL is “universal” but these “resource locators” seem to be “relative” to your application.

I think you have an RRL!

zerohalo

said on August 17th 07:26

Cool idea! How about instead of using HTML for the formatting, to instead use Markaby, or similar? Less typing, plus would be in keeping with the program structure.

roberthahn

said on August 17th 08:04

I’m not sure if using HTTP’s verbs would necessarily be good either, but if you’re promoting accessible hacking (in the sense of ‘accessible to every skill level’) I wonder if designing the app so that you’re exposing the same set of verbs for all classes would be good? IOW, follow a Resource Oriented Architecture—just not on http…

Matt Katz

said on August 17th 10:27

At my job I’ve stumbled on a similar pattern. We want to make contextual help easy to generate and easy to take folks from place to place in our application.

We’re going to be emulating urls for the different control panes in our app. I think the metaphor can be extended to also reference each control through maybe a query string.
So pane://add_stocks?new_symbol_text=GOOG&price_override_text=10.50 could send you to a new part of the app and help fill in the values of various fields. How to handle more complex things? More complex urls?

netghost

said on August 17th 11:41

This is starting to sound more and more like HyperCard, at least in the the metaphors. In HyperCard, there was a stack of cards, their uri was essentially a card index number. This seems like a very good idea to me, it gives a clear means of traversing from one piece of an application to another.

jashkenas

said on August 17th 11:51

Hey why, I’m working on a web application for writing hypertexts, and I’m also using Incidents (the Kharms ones) for practice material. That’s funny. Take a peek:

A peek:

said on August 17th 11:54

Leon

said on August 17th 20:34

^^ that is damned pretty.

RubyPanther

said on August 18th 12:21

You only need verbs if you want apps to be able to talk to each other. Which would be neat.

MenTaLguY

said on August 18th 19:48

If _why can merely create the HyperCard of the 2000s, he will have the gratefulness of so many. But he’s doing more besides!

Comments are closed for this entry.