Google Summer of Code -- Get Ready for the Proposal Window

P

pat eyler

Google hasn't announced their final selection yet for mentoring
organizations, but I'm operating under the assumption that we will be.
Given that, this is the time for people to start putting together
proposals for student projects. The window is only about a week long,
and is opens up in just a couple of days.

We've got mentoring volunteers from the JRuby, RoR, rubinius, ruby,
and Xruby communities, so don't feel constrained to any particular
field. On the other hand, projects that are liable to benefit the
largest possible group of users are certainly going to get some extra
karma.

If you're not a student, but have a great idea, feel free to toss it
out for discussion. Who knows, maybe someone will pick it up and run
with it.

(posted here: http://on-ruby.blogspot.com/2007/03/more-about-soc-and-ruby-get-ready-for.html
if you'd rather deal with it that way.)
 
D

Daniel Berger

pat eyler wrote:

If you're not a student, but have a great idea, feel free to toss it
out for discussion. Who knows, maybe someone will pick it up and run
with it.

Just a couple of idea

* A 'find' module that's more useful (i.e. options based on the
command line tool)
* Bench::Unit (i.e. a more formal benchmark suite)

Regards,

Dan
 
M

M. Edward (Ed) Borasky

Daniel said:
pat eyler wrote:



Just a couple of idea

* A 'find' module that's more useful (i.e. options based on the
command line tool)
* Bench::Unit (i.e. a more formal benchmark suite)
Along those lines:

1. A recorder that will capture a Watir script of a web application as
someone uses it from IE (or Firewatir/Firefox)
2. Extend Ruby Inline to accept assembler on gcc-based systems
(actually, it may already do that)
3. A built in load tester for Rails applications
4. A lightweight Ruby interpreter for distributed / embedded processing
 
P

Peter Szinek

1. A recorder that will capture a Watir script of a web application as
someone uses it from IE (or Firewatir/Firefox)

+1

I would be really interested in this, since I am just integrating
FireWatir support into scRUBYt![1] - so far navigating to the page you
wish to scrape is described manually, like:

fetch 'http://www.amazon.com'
fill_textfield 'field-keywords', 'logitech keyboard'
choose_option 'url', 'Computers & PC Hardware'
submit


#Construct the scraper here
stuff do
item_name "Logitech diNovo Edge ( 967685-0403 )"
price "$169.98"
end

OK, also this is thousand times easier than to do it by hand - however,
if I could record user steps and spit out a script automatically instead
of writing it by hand, it would be even much more cool!

Peter

[1] http://scrubyt.org

__
http://www.rubyrailways.com :: Ruby and Web2.0 blog
http://scrubyt.org :: Ruby web scraping framework
http://rubykitchensink.ca/ :: The indexed archive of all things Ruby
 
M

Martin DeMello

If you're not a student, but have a great idea, feel free to toss it
out for discussion. Who knows, maybe someone will pick it up and run
with it.

It would be really neat to combine scintilla and irb to get a
lightweight drscheme-like environment optimised for iterative,
interactive development. It would need the following features:

1. A mathematica-like wrapper around irb, where each command/response
is an individual gui object, so that it would be easy to select
individual lines from the history (not essential, but it'd make the
gui more convenient to use)
2. The ability to copy an irb line to the scintilla pane
3. The ability to wipe the irb session and reload it from the
scintilla pane (this is the main requirement)
4. (optional) An SDL pane that was specialcased into irb, so that
people learning ruby could play around with graphics right from the
start (remembering my BBC Basic days)

Another option is to write a DrRuby atop the DrScheme engine
(someone's done a DrOcaml, for instance), but that's probably a lot
harder.

martin
 
J

James Edward Gray II

If you're not a student, but have a great idea, feel free to toss it
out for discussion. Who knows, maybe someone will pick it up and run
with it.

I think Event Machine is very ripe ground for Summer of Code
projects. It's already one of the coolest libraries out there for
Ruby and the team has a lot of great ideas for making it even better.

One of their ideas is to build every protocol under the sun for it,
so coders could just use EventMachine::HTTP or EventMachine::Telnet
instead of having to work with the low-level plumbing. There's even
been mention of getting DRb running on top of EventMachine, which
would likely make it quite a bit more robust and scalable.

The team also has interest in providing mid-level protocol building
frameworks. This would make it easier to add additional protocols.
There are lots of interesting ideas to explore along this path to:
protocol parser generators, DSLs for defining protocols, callback
systems for reacting to protocol events, or even just generic event
loops.

This project is very under loved and there's no reason it couldn't
become the huge success POE is for Perl or Twisted is for Python. If
you're remotely interested in networking, I say jump on their mailing
list and bounce some ideas off of them.

James Edward Gray II
 
H

hemant

I think Event Machine is very ripe ground for Summer of Code
projects. It's already one of the coolest libraries out there for
Ruby and the team has a lot of great ideas for making it even better.

One of their ideas is to build every protocol under the sun for it,
so coders could just use EventMachine::HTTP or EventMachine::Telnet
instead of having to work with the low-level plumbing. There's even
been mention of getting DRb running on top of EventMachine, which
would likely make it quite a bit more robust and scalable.

The team also has interest in providing mid-level protocol building
frameworks. This would make it easier to add additional protocols.
There are lots of interesting ideas to explore along this path to:
protocol parser generators, DSLs for defining protocols, callback
systems for reacting to protocol events, or even just generic event
loops.

This project is very under loved and there's no reason it couldn't
become the huge success POE is for Perl or Twisted is for Python. If
you're remotely interested in networking, I say jump on their mailing
list and bounce some ideas off of them.

+1 James, Francis
 
M

M. Edward (Ed) Borasky

Martin said:
It would be really neat to combine scintilla and irb to get a
lightweight drscheme-like environment optimised for iterative,
interactive development. It would need the following features:

1. A mathematica-like wrapper around irb, where each command/response
is an individual gui object, so that it would be easy to select
individual lines from the history (not essential, but it'd make the
gui more convenient to use)
2. The ability to copy an irb line to the scintilla pane
3. The ability to wipe the irb session and reload it from the
scintilla pane (this is the main requirement)
4. (optional) An SDL pane that was specialcased into irb, so that
people learning ruby could play around with graphics right from the
start (remembering my BBC Basic days)

Another option is to write a DrRuby atop the DrScheme engine
(someone's done a DrOcaml, for instance), but that's probably a lot
harder.

martin
Scite is a bit like that, at least the version shipped with the Windows
One-Click Installer. A DrRuby would be spectacular, though!

Another thing I'd like to see come out of Google Summer of Code would be
(and this is somewhat language-independent) some tools like those
described in "Generative Programming" -- tools that work at the
syntactic and semantic level rather than at the surface syntax level.
There are some core concepts just about all "modern" languages have --
integer and floating point and string data types, regular expressions,
arrays and hashes, classes and objects and methods. A tool that could
manipulate a graphical version of a program, such as a parse tree, and
then reconstruct the source code from that is something I'd use daily.
 
R

Rich Morin

At said:
Another thing I'd like to see come out of Google Summer of Code
would be (and this is somewhat language-independent) some tools
like those described in "Generative Programming" -- tools that
work at the syntactic and semantic level rather than at the
surface syntax level. There are some core concepts just about
all "modern" languages have -- integer and floating point and
string data types, regular expressions, arrays and hashes,
classes and objects and methods. A tool that could manipulate a
graphical version of a program, such as a parse tree, and then
reconstruct the source code from that is something I'd use daily.

On a similar note, I'd like to see someone look into creating an
abstract description format (e.g., in XML or YAML) for use by the
dozens of "documentation generators" I see listed on Wikipedia:

http://en.wikipedia.org/wiki/Comparison_of_documentation_generators

Most of these programs parse one or more languages, then present the
result in HTML (etc). Almost none of them are willing to output the
collected information in a machine-friendly format, let alone accept
such information from another source.

-r
--
http://www.cfcl.com/rdm Rich Morin
http://www.cfcl.com/rdm/resume (e-mail address removed)
http://www.cfcl.com/rdm/weblog +1 650-873-7841

Technical editing and writing, programming, and web development
 
J

Jeremy McAnally

In theory, rdoc is supposed to output XML, but i've never gotten it to
work right...

On a similar note, I'd like to see someone look into creating an
abstract description format (e.g., in XML or YAML) for use by the
dozens of "documentation generators" I see listed on Wikipedia:

http://en.wikipedia.org/wiki/Comparison_of_documentation_generators

Most of these programs parse one or more languages, then present the
result in HTML (etc). Almost none of them are willing to output the
collected information in a machine-friendly format, let alone accept
such information from another source.

-r
--
http://www.cfcl.com/rdm Rich Morin
http://www.cfcl.com/rdm/resume (e-mail address removed)
http://www.cfcl.com/rdm/weblog +1 650-873-7841

Technical editing and writing, programming, and web development


--
http://www.jeremymcanally.com/

My free Ruby e-book:
http://www.humblelittlerubybook.com/book/

My blogs:
http://www.mrneighborly.com/
http://www.rubyinpractice.com/
 
M

Martin DeMello

Scite is a bit like that, at least the version shipped with the Windows
One-Click Installer. A DrRuby would be spectacular, though!

Scite misses out what I consider the core, practically raison d'etre
feature - the ability to click a button and start a clean IRB session
which autoloads the program you're typing into the editor. Let's say,
for instance, that I'm developing some complicated mathematical
algorithm. I can get a bit of it right, click "reload", play about for
a while in IRB using the functions I've already defined, till I nail
the next function, then add it to the program and hit 'reload' again.
This was my favourite DrScheme feature. I think QBasic also allowed
this to a certain extent, though I could be misremembering (that was a
very underappreciated IDE, though).

martin
 
J

Jeremy McAnally

I miss this functionality that IDLE has for Python; if any of the GUI
kits were mature enough, I would be interested in developing it in
ruby. Sadly, every attempt I've made thus far to make something
usable hasnt turned out well (I started to do it in FX, but it was
ugly; Wx wasn't/isn't mature; I guess QT or TK would work but it
wasn't my first choice...). I started again with wxPython and got
something working with an SDI interface, but ditched it because I
didn't want to have to run Python to edit and run Ruby...

--Jeremy

Scite misses out what I consider the core, practically raison d'etre
feature - the ability to click a button and start a clean IRB session
which autoloads the program you're typing into the editor. Let's say,
for instance, that I'm developing some complicated mathematical
algorithm. I can get a bit of it right, click "reload", play about for
a while in IRB using the functions I've already defined, till I nail
the next function, then add it to the program and hit 'reload' again.
This was my favourite DrScheme feature. I think QBasic also allowed
this to a certain extent, though I could be misremembering (that was a
very underappreciated IDE, though).

martin


--
http://www.jeremymcanally.com/

My free Ruby e-book:
http://www.humblelittlerubybook.com/book/

My blogs:
http://www.mrneighborly.com/
http://www.rubyinpractice.com/
 
J

Joel VanderWerf

Martin said:
Scite misses out what I consider the core, practically raison d'etre
feature - the ability to click a button and start a clean IRB session
which autoloads the program you're typing into the editor. Let's say,
for instance, that I'm developing some complicated mathematical
algorithm. I can get a bit of it right, click "reload", play about for
a while in IRB using the functions I've already defined, till I nail
the next function, then add it to the program and hit 'reload' again.
This was my favourite DrScheme feature. I think QBasic also allowed
this to a certain extent, though I could be misremembering (that was a
very underappreciated IDE, though).

martin

Does your vision include a button to "add it to the program" too? That
is, a button (or other feature) to copy the text of the new function
into a buffer so it can be easily pasted into the source, without having
to edit out irb prompts?
 
N

Nando Sanchez

I'm new to Ruby and I've been researching to create a desktop app, and
what I've found so far is that there are many GUIs but each of them has
it's own way of doing things. I read some thread proposing a unified
"ruby-like" framework for GUI development, where the developer could
swap easily the GUI he wants to use (GTK, FOX, QT...) without changing
the application. This could be a good project and it will foster the
creation of more ruby desktop apps. Who knows, may be someone could
develop a rails-like stuff for desktop apps.
 
S

SonOfLilit

Indeed.

Except that many tried and failed. Me included.

I remember that in my research I found that the RIDE people dabbled in
it as a sister project (IIRC).

You can have a look there.


Unfortunately, GUI APIs are hard to get right. Very hard. I've done a
GUI toolkit for myself in uby lately (some exploratory programming,
prototyping a few ideas of mine) and I've spent more time thinking up
the API than coding.


And this was a throw-away prototype.

Which only I would ever use.


In the end I wanted to add a critical feature that was next on the
milestone list and found that I made such a fatal mistake in the API
that re-coding everything would be almost as easy as fixing everything
(I started with squares only, thinking that it'd be simple to modify
it to use other shapes, but used that assumption everywhere in the
code. I knew that fixing it everywhere would result in much more bugs
than good).

It's hard.


But you can try, and I'll look forward to hearing the results.


Aur
 
G

Gregory Seidman

]
Ruby GUI toolkits have their fair share of issues. The general method to
dodging this is to distribute your application as a standalone web
application. My idea was to augment this with a "wrapper" GUI generator for
each of the big OS's. This GUI would be a simple, OS specific window, that
displayed the page. It would include a few simple menu choices, exit,
about, help, and provide ruby based callbacks to direct the application to
the proper page for each. This probably sounds very convoluted, and I'm
probably explaining it poorly. But if any student out there is interested,
I'd be willing to give a more thorough explanation.
[...]

I had a sort of similar idea based on XULrunner. It would be really nice to
be able to develop a desktop application with Rails and Firefox and deliver
it as executables for Mac, Windows, or Linux using XULrunner as a frontend.
It requires a few things to make it work, though:

1) app packaging for each platform
2) an extension to XULrunner to be able to run the ruby interpreter
directly (it shouldn't be two processes)
3) an URL handler extension to XULrunner so that URLs can be served
in-process without opening a network port, even one bound to localhost
4) the Ruby side of that URL handler
5) EXTRA CREDIT: some minimal obfuscation/encryption/compression for the
Ruby code to make pointy-haired bosses happier
===Tanner Burson===
--Greg
 
H

Helder Ribeiro

1. A recorder that will capture a Watir script of a web application as
someone uses it from IE (or Firewatir/Firefox)

+1

I would be really interested in this, since I am just integrating
FireWatir support into scRUBYt![1] - so far navigating to the page you
wish to scrape is described manually, like:

fetch 'http://www.amazon.com'
fill_textfield 'field-keywords', 'logitech keyboard'
choose_option 'url', 'Computers & PC Hardware'
submit

#Construct the scraper here
stuff do
item_name "Logitech diNovo Edge ( 967685-0403 )"
price "$169.98"
end

OK, also this is thousand times easier than to do it by hand - however,
if I could record user steps and spit out a script automatically instead
of writing it by hand, it would be even much more cool!

Hi!

I really like this idea and I would be willing to do something related
to that in the Google SoC. There's one thing though: although I have
some good background in computing, I have close to no experience in
Ruby and web-related development. Is there anything already done
related to recording that I could base my work on? I've heard there's
something like that already working in Perl.

Also, I don't know how ambitious a project like this would be for
someone with my experience, so if anyone has a better idea of how
difficult it is please share. What are the skills I would have to
learn? What tools? If it's too difficult to do it all on my own, what
would be a reasonable subset of features I could proppose to implement
and that are more urgently needed by the community?

Thanks a lot!

Helder
Peter

[1]http://scrubyt.org

__http://www.rubyrailways.com:: Ruby and Web2.0 bloghttp://scrubyt.org:: Ruby web scraping frameworkhttp://rubykitchensink.ca/:: The indexed archive of all things Ruby
 
C

Chad Wilson

How about a Ruby plug-in for web browsers? With this, I could put away
the JavaScript and do more with Ruby.

I am not a student, and certainly lack any requisite skill to accomplish
such a project.

-w
 

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

No members online now.

Forum statistics

Threads
473,766
Messages
2,569,569
Members
45,043
Latest member
CannalabsCBDReview

Latest Threads

Top