Ruby + end user applications

R

Ruth A. Kramer

Derek said:
I may just be in line to write one of these "cool, simple to use, end
user applications" (after i'm happier with my ruby expertise). My
problem is coming up with one to write :) Does anyone have a list of ideas?

Yes! ;-)

Write again after your happier with your Ruby expertise. I want to
write something that I've loosely called a wiki like thing, though with
a greater scope than any wiki I've seen so far. I would like to have
help. I'm not publishing much about my specific ideas as I'd like to
find an interested group of people, and then among all of us, consider
whether we want to go open source or proprietary (in hopes of actually
making a "significant" amount of money). (Of course, I know money can
be made in open source as well.)

Anybody else interested? Write to me. I'm in the midst of writing a
requirements document (or, more accurately, gathering the requirements
as notes), while I also work on learning Ruby. ;-) I hesitate to
hazard a guess, but this could be a 1 to 10 manyear project, depending
on the expertise and experience of those involved.

regards,
Randy Kramer
 
J

James G. Britt

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I may just be in line to write one of these "cool, simple to use, end
user applications" (after i'm happier with my ruby expertise). My
problem is coming up with one to write :) Does anyone have a list of ideas?

Here's something I've just started on, but may not ever get around to finishing.

I've been using WATIR[0] to test a client's Web app. I've been trying
to structure things so that a non-Rubyist can a least run tests with
no problem, and that a newbie Rubyist can alter or rearrange existing
code to assemble test suites. And of course a more experienced coder
can just go have fun.

I have written a small number of methods that test very specific
things, such as logging in, moving to a given page, adding a new user
to the system. In general one test depends on the out com of another.
I wanted some sort of DSL-like syntax to convey this dependency while
not cluttering things up with scads of if/then/else.

Each test method is at the Object level, and each method ends by
making an assertion, and evaluating a given block if the assertion
passes.

So you can write test scripts like this:

: log_in( user, psw) {
: go_to_add_user_page {
: add_new_user( user_name, pass, user_id, group ) {
: delete_user( user_id )
: }
: }
: }


I thought it would be nice if there was a way to allow such test
assembling using a GUI.

It is quite simple to have an instance of WEBrick run, start the
default browser, and load the testing start page. The main page could
list all available test scripts. At the simplest level the user could
just click on a test name to run it.

At a more complex level, the user could select a sequence of tests to
run; the code would need to verify that the sequence made sense.
possibly by only showing valid choices after each test is selected.
(Perhaps something that could be nicely handled using JavaScript and
the XMlHttpRequest object talking back to the WEBrick instance to
calculate the options by inspecting the test code. I was thinking that
Rdoc::Usage might be handy here.)

Tests could be run. Results could be stored in a database, using
Sqlite3. Users could run queries to see what tests were run, when,
and with what results.

It would be nice if one could schedule tests to run at a later time, too.

All this of course is Win32 only (that's a requirement of WATIR), but
that targets a sizable audience.

My goal is/was to get something fairly simple but useful in place
fast, packaged up using exerb so that there are no pre-installation
requirements. It Just Works! There's No Step Two (chortle!)(tm)

Just deliver a stand-alone executable that allows people to write and
run Web app test code with a nice GUI. The recent work on WATIR and
Sqlite3 bindings makes this really quite doable. (And Ruby Web Forms
might be handy as well.)

So far all I have is a basic WEBrick instance that reads in a list of
test script files from a pre-defined directory and renders a web page,
with each script a link.

Clicking on a test name tells WEBrick to go shell out and run the test
script. The results of the test are then rendered to the Web page.

It's somewhat crude, but sort of slick, too, because it took about 1/2
hour and It Just Works.

James Britt

PS, anyone doing Web work on Win32 really should go look at WATIR.
Very well done.

[0] http://wtr.rubyforge.org/
 
S

Shalev NessAiver

Ideas? I never have a shortage of ideas for cool/useful apps. Just tell
me a topic or focus
and I'll give you some ideas:)

One thing that I've been thinking of, but don't yet have the
expertiseto write, is an alternative to mailing lists.
The problems with mailing lists (the way I see it) are as follows:

You have the same information being sent to hundreds of people. This
results
in:

1. A waste of overall disk space. Many people don't read every message,
some people
rarely read the list at all, and others don't even remember their on
the list. As a result
we have space on hundreds of hard drives being taken up by messages of
which only
a few will be actually read.

2. A waste of bandwidth. For much the same reasons, having a mailing
server forward
a message to hundreds of people is a tremendous waste of bandwidth.


Solution:

Instead of having every message sent to every person, create a specific
"mailing list client"
that is able to access a "mailing list server". Users of that client
would be able to browse a list
of messages on the server, and select messages they wish to read (as in
a normal email client).
The difference is, only messages which they select are downloaded and
displayed to the user.
Additionally, the messages are (optionally) not stored on the users
computer and continue to
remain on the mailing list server. A single file keeps track of which
files have already been viewed
by the user. In this way only the messages that a user specifically
requests are sent to that user.

While this is the basic system, many features and add-ons already
suggest themselves to me.

Hmmm, maybe I WILL have a go at this after all. Wadda ya think?

-Shalev
 
M

Martin DeMello

Shalev NessAiver said:
One thing that I've been thinking of, but don't yet have the
expertiseto write, is an alternative to mailing lists.

I sense a leg-pull :)

martin
 
C

Charles Miller

Instead of having every message sent to every person, create a
specific "mailing list client"
that is able to access a "mailing list server". Users of that client
would be able to browse a list
of messages on the server, and select messages they wish to read (as
in a normal email client).
The difference is, only messages which they select are downloaded and
displayed to the user.
Additionally, the messages are (optionally) not stored on the users
computer and continue to
remain on the mailing list server. A single file keeps track of which
files have already been viewed
by the user. In this way only the messages that a user specifically
requests are sent to that user.

The problem with this is that it relies too heavily on a single central
server. If that server went down, nobody would be able to even read any
of the existing messages, let alone send any new ones.

The obvious next step would be to have a network of cooperating
servers. When a message was posted on one server, it would be
automatically propagated through to the rest of the network. Thus, you
wouldn't have to transmit every message to every user, but you would
still get some geographical/network distribution and fault tolerance.

Charles Miller
(7007a78ccc84296a60f9f0b527219abd)
 
M

martinus

Hmmm, maybe I WILL have a go at this after all. Wadda ya think?

I think you should call your invention 'newsgroup'

;-)

martinus
 
G

gabriele renzi

Shalev NessAiver ha scritto:
Instead of having every message sent to every person, create a specific
"mailing list client"
that is able to access a "mailing list server". Users of that client
would be able to browse a list
of messages on the server, and select messages they wish to read (as in
a normal email client).

is'nt this a usenet client? :)
 
L

Luis G. Gómez

Luis Gómez
--------------------------------
4360 NW 107th Av.
Suite 102
Miami, FL 33178
+786.395.1490
(e-mail address removed)
Curriculum Vitae
--------------------------------
This email contains information which may be confidential and priviledged.
Unless you are the addressee (or authorized to receive for the addressee),
you may not use, copy or disclose to anyone the message or any information
contained in the message. If you have received the message in error, please
advise the sender by reply e-mail to (e-mail address removed) or tel.
+1-786-395-1490 and delete the material from any computer.
-----Original Message-----
From: Charles Miller [mailto:[email protected]]
Sent: Thursday, February 17, 2005 2:56 AM
To: ruby-talk ML
Subject: Re: Ruby + end user applications

Instead of having every message sent to every person, create a
specific "mailing list client"
that is able to access a "mailing list server". Users of that client
would be able to browse a list
of messages on the server, and select messages they wish to read (as
in a normal email client).
The difference is, only messages which they select are downloaded and
displayed to the user.
Additionally, the messages are (optionally) not stored on the users
computer and continue to
remain on the mailing list server. A single file keeps track of which
files have already been viewed
by the user. In this way only the messages that a user specifically
requests are sent to that user.

The problem with this is that it relies too heavily on a single central
server. If that server went down, nobody would be able to even read any
of the existing messages, let alone send any new ones.

The obvious next step would be to have a network of cooperating
servers. When a message was posted on one server, it would be
automatically propagated through to the rest of the network. Thus, you
wouldn't have to transmit every message to every user, but you would
still get some geographical/network distribution and fault tolerance.

Charles Miller
(7007a78ccc84296a60f9f0b527219abd)
 
M

martinus

I may just be in line to write one of these "cool, simple to use, end
user applications" (after i'm happier with my ruby expertise). My
problem is coming up with one to write :) Does anyone have a list of
ideas?

Here is my list:
http://martinus.tadalist.com/lists/public/22747
fxri (FXRuby interface to ri) and rtd are almost finished and will soon
be available as rubygems, but for the rest I probably don't have time
in the not-so-near future :-(

What about creating a little webpage where users can add ideas, and are
allowed to vote for each idea? The list should be sorted. This should
be a good oppertunity to learn ruby on rails. Hey, this might be a good
idea for the ruby quiz :)

PS: Derek, somehow your posting does not show up in the google groups,
that's why I have to reply to my own posting.

martinus
 
M

martinus

I noticed it when rtd was almost finished, so I did not use it :-(
besides, rtd is a quite short and simple program, so it probably was
not much of an overhead.

martinus
 
D

Dick Davies

* Charles Miller said:
The problem with this is that it relies too heavily on a single central
server. If that server went down, nobody would be able to even read any
of the existing messages, let alone send any new ones.

The obvious next step would be to have a network of cooperating
servers. When a message was posted on one server, it would be
automatically propagated through to the rest of the network. Thus, you
wouldn't have to transmit every message to every user, but you would
still get some geographical/network distribution and fault tolerance.

If anybody actually wants to do this, there is a similar mechanism on the
Entropy network (and Freenet).

You publish data (webpages or messages), and they are stored keyed under a hash of
their contents. The server/clients (there's no difference, so I'll call them mediums)
exchange the chunks they have in the background.

When you want some data, you ask your local medium for the data for key
'a83437,8479fffde' or whatever and out it pops.

It's a bit slow at present, but that's because of all the crypto involved -
something similar could be done with the DHT library someone posted about the
other week.
 
R

Ruth A. Kramer

martinus said:
What about creating a little webpage where users can add ideas, and are
allowed to vote for each idea? The list should be sorted. This should
be a good oppertunity to learn ruby on rails. Hey, this might be a good
idea for the ruby quiz :)

Good idea--TWiki supports creating such pages, perhaps requiring the use
of a plug in. If someone is interested, they might start such a page on
WikiLearn. (If I get the time, I might do it as well--I'm not sure the
necessary plugin(s) are installed, and I'd have to learn to use them.
;-)

Randy Kramer
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,169
Messages
2,570,915
Members
47,456
Latest member
JavierWalp

Latest Threads

Top