Cool Projects

On 31 Jul, 13:10, Alasdair B. [email protected] wrote:

So, anyone working on something awesome?

Brag here…

Posted viahttp://www.ruby-forum.com/.

I’m currently working on:

  • building a small set of network utility classes (nothing big, it’s
    just for fun/experimentation)
  • a Ruby/GTK application that downloads videos from youtube
  • a simple CMS in Rails

I probably won’t finish most of this, but it’s fun to work with
nevertheless. \o/

Ståle Z.H wrote:

I’m currently working on:

  • building a small set of network utility classes (nothing big, it’s
    just for fun/experimentation)
  • a Ruby/GTK application that downloads videos from youtube
  • a simple CMS in Rails

I probably won’t finish most of this, but it’s fun to work with
nevertheless. \o/

Not really awesome and in no way comparable to the work that some of you
guys are doing, but I’m working on something that I find is a bit of
fun. I’m using Ruby to read through Word documents and parse them to
produce a bunch of files. These files are then automatically imported
into the Radiant CMS into pre-defined places. It makes a nice way to do
something as Word (or having done something as Word) and then push it
online into the CMS.

It’s just fun!

Cheers,
Mohit.
8/2/2008 | 10:21 PM.

Alasdair B. wrote:

So, anyone working on something awesome?

Brag here…

I’ve been rewriting the Java integration layer in JRuby for performance
and efficiency. Most normal Ruby-Java method calls are 5-10x faster on
trunk than in JRuby 1.1.3. Still a bunch of work to do before 1.1.4
though.

Also, I’ve continued working on my pet language Duby on and off. Since
the rewrite of the AST translator (from JRuby’s Ruby AST to Duby’s AST)
and inference engine (so there’s no dependencies on Java type names) I
haven’t gotten the JVM bytecode backend up and running yet. But it’s
working pretty well.

Code like

def fib(a => Fixnum)
if a < 2
a
else
fib(a - 1) + fib(a - 2)
end
end

Correctly infers return types, and under the original Duby compiler it
could produce idiomatic JVM bytecode using integer primitives that was
as fast as hand-written Java code.

I like to watch the inference engine work too…

âž” jruby -d -r duby/plugin/math.rb lib/ruby/site_ruby/1.8/duby/typer.rb
fib.rb

  • [Simple] Learned local type under MethodDefinition(fib) : a =
    Type(fixnum)
  • [Simple] Retrieved local type in MethodDefinition(fib) : a =
    Type(fixnum)
  • [AST] [Fixnum] resolved!
  • [Simple] Method type for “<” Type(fixnum) on Type(fixnum) not found.
  • [Simple] Invoking plugin: #Duby::Typer::MathTyper:0xfc9d2b
  • [Math] Method type for “<” Type(fixnum) on Type(fixnum) =
    Type(boolean)
  • [AST] [Call] resolved!
  • [AST] [Condition] resolved!
  • [Simple] Retrieved local type in MethodDefinition(fib) : a =
    Type(fixnum)
  • [Simple] Retrieved local type in MethodDefinition(fib) : a =
    Type(fixnum)
  • [AST] [Fixnum] resolved!
  • [Simple] Method type for “-” Type(fixnum) on Type(fixnum) not found.
  • [Simple] Invoking plugin: #Duby::Typer::MathTyper:0xfc9d2b
  • [Math] Method type for “-” Type(fixnum) on Type(fixnum) = Type(fixnum)
  • [AST] [Call] resolved!
  • [Simple] Method type for “fib” Type(fixnum) on Type(script) not found.
  • [Simple] Invoking plugin: #Duby::Typer::MathTyper:0xfc9d2b
  • [Math] Method type for “fib” Type(fixnum) on Type(script) not found
  • [Simple] Deferring inference for FunctionalCall(fib)
  • [Simple] Retrieved local type in MethodDefinition(fib) : a =
    Type(fixnum)
  • [AST] [Fixnum] resolved!
  • [Simple] Method type for “-” Type(fixnum) on Type(fixnum) not found.
  • [Simple] Invoking plugin: #Duby::Typer::MathTyper:0xfc9d2b
  • [Math] Method type for “-” Type(fixnum) on Type(fixnum) = Type(fixnum)
  • [AST] [Call] resolved!
  • [Simple] Method type for “fib” Type(fixnum) on Type(script) not found.
  • [Simple] Invoking plugin: #Duby::Typer::MathTyper:0xfc9d2b
  • [Math] Method type for “fib” Type(fixnum) on Type(script) not found
  • [Simple] Deferring inference for FunctionalCall(fib)
  • [Simple] Method type for “+” on not found.
  • [Simple] Invoking plugin: #Duby::Typer::MathTyper:0xfc9d2b
  • [Math] Method type for “+” on not found
  • [Simple] Deferring inference for Call(+)
  • [Simple] Deferring inference for If
  • [Simple] Learned method fib (Type(fixnum)) on Type(script) =
    Type(fixnum)
  • [Simple] Entering type inference cycle
  • [Simple] Method type for “fib” Type(fixnum) on Type(script) =
    Type(fixnum)
  • [AST] [FunctionalCall] resolved!
  • [Simple] [Cycle 0]: Inferred type for FunctionalCall(fib):
    Type(fixnum)
  • [Simple] Method type for “fib” Type(fixnum) on Type(script) =
    Type(fixnum)
  • [AST] [FunctionalCall] resolved!
  • [Simple] [Cycle 0]: Inferred type for FunctionalCall(fib):
    Type(fixnum)
  • [Simple] Method type for “+” Type(fixnum) on Type(fixnum) not found.
  • [Simple] Invoking plugin: #Duby::Typer::MathTyper:0xfc9d2b
  • [Math] Method type for “+” Type(fixnum) on Type(fixnum) = Type(fixnum)
  • [AST] [Call] resolved!
  • [Simple] [Cycle 0]: Inferred type for Call(+): Type(fixnum)
  • [AST] [If] resolved!
  • [Simple] [Cycle 0]: Inferred type for If: Type(fixnum)
  • [Simple] Inference cycle 0 resolved all types, exiting

AST:
Script
MethodDefinition(fib)
{:return=>Type(fixnum), :a=>Type(fixnum)}
Arguments
RequiredArgument(a)
If
Condition
Call(<)
Local(name = a, scope = MethodDefinition(fib))
Fixnum(2)
Local(name = a, scope = MethodDefinition(fib))
Call(+)
FunctionalCall(fib)
Call(-)
Local(name = a, scope = MethodDefinition(fib))
Fixnum(1)
FunctionalCall(fib)
Call(-)
Local(name = a, scope = MethodDefinition(fib))
Fixnum(2)

  • Charlie

On Sat, Aug 02, 2008 at 11:13:54PM +0900, Ståle Z.H wrote:

On 31 Jul, 13:10, Alasdair B. [email protected] wrote:

So, anyone working on something awesome?

Brag here…

I don’t know if I have anything to brag about. I’m working on an
encrypted proxy management app – a very, very simple thing that’ll
probably end up having a Tk interface, intended primarily to be used on
MS Windows systems. I guess that’s probably the most impressive thing
I’m doing, but it’s really just a way to make something anyone with an
open source Unix-like system should be able to do using default command
line utilities without need of an actual GUI application. I’m only
doing
it for some MS Windows users who don’t have the skills or patience
needed
to use OpenSSH like $deity intended. There’s sort of a business case
for
this thing in the future, so this project might make me some money –
though this GUI app itself will be open source (probably a copyfree
license like http://pdl.apotheon.org).

Umm . . . I just hacked together a tool for converting XP totals from
D&D
3.5 to Pathfinder RPG Alpha 3 to ease the process of character
conversions, since I’ve done a few character conversions for one game
and
realized I’d probably be doing a few more for another game in the near
future. It took me a few hours to get it written, give it a nice
command
line interface, and tweak some of the behavior to suit my preferences.
This one is certainly nothing to brag about, though – very simple.
It’s
just a glorified single-purpose calculator script.

I’m planning to create at least one, probably two, maybe three different
UI wrapper scripts for the XP converter, too. I figure, having written
the original script, I might as well make it available to others in the
wider Pathfinder RPG community, so when I decide I have the time and
inspiration I’ll create a web interface for the script, and probably
create a Tk-based GUI wrapper, and maybe just for fun and completeness
I’ll write a very simple captive text interface wrapper as well for
people who don’t want the GUI but don’t want to have to use CLI options
either. I don’t expect any of these UI wrappers to be more than a few
hours long to hack together – it’s all simple stuff, uninteresting
code,
and nothing worth bragging about really. I think it’s “cool”, though,
because of the subject matter. How much cooler does it get than
combining programming with RPGs?

Actually, the code itself for all of these things is very subjectively
“cool”, because I’ve never written a non-Web based GUI application
before, and the encrypted proxy client will use Ruby’s threads – and
concurrent programming with threads is something else I’ve never done
before, too. In other words, I’m learning about how to build GUIs and
threaded applications, and as far as I’m concerned any coding that
involves learning new things is really quite “cool”. I guess that
answers my question – about the only thing cooler than combining
programming and RPGs is combining the process of learning new
programming
concepts with RPGs.

I’m currently working on:

  • building a small set of network utility classes (nothing big, it’s
    just for fun/experimentation)
  • a Ruby/GTK application that downloads videos from youtube

Will there be a TUI for that as well? I’ve considered reimplementing
youtube-dl in Ruby in the past, but haven’t done anything about it. If
you beat me to it, and provide a text interface, I’d be happy with that.

  • a simple CMS in Rails

I probably won’t finish most of this, but it’s fun to work with
nevertheless. \o/

I know how that is. I have several programming projects that have been
on indefinite “back burner” status for months or, in a couple of cases,
years.

A co-worker and myself have been working on a passive network mapping
tool called ANTFARM for a few years now and have finally received
copyright rights from our employer to open source the software. I have
created a project at RubyForge called ANTFARM and will be making the
code available there in the very near future.


Bryan

On Thu, Jul 31, 2008 at 7:10 AM, Alasdair B. [email protected]
wrote:

So, anyone working on something awesome?

Dungeon Farmer, a tile-based strategy simulation game that runs using
either Gosu or RubyGame. Currently still very new, but not too new to
demo: Google Code Archive - Long-term storage for Google Code Project Hosting.

I’m always interested in feedback!

-Daniel

I’m working on a small app to manage the scheduled start-up and shutdown
of
arbitrary numbers of computers in arbitrary numbers of groups. While
not
cool in the traditional sense I figured why not save the school some
money
on the electric bill and save the environment some pain all while
introducing my self to GUI programming.


“Hey brother Christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)

On Thu, Jul 31, 2008 at 4:10 AM, Alasdair B. [email protected]
wrote:

So, anyone working on something awesome?

Brag here…

I’m working on a crossword editor (mostly biased towards UK-style
cryptics, but once that’s solidly in place I’ll expand its range),
there currently being no really good free one available. Right now
it’s barely started, and going slowly due to lack of copious free
time, but since it’s something I’m writing first and foremost for my
own use, I have high hopes for it :slight_smile: Also, it gives me an excuse to
play with Shoes.

martin

Martin DeMello wrote:

On Thu, Jul 31, 2008 at 4:10 AM, Alasdair B. [email protected]
wrote:

So, anyone working on something awesome?

Brag here…

Valar: GitHub - danlucraft/valar: Ruby-Vala interface

It’s rb++ but for the Vala language.

Vala (Projects/Vala - GNOME Wiki!) is a C#-like language with automated memory
management and collections like ArrayLists and HashMaps. Vala compiles
into C so is pretty performant.

ValaR makes it dead simple to write Ruby extensions in Vala. Compile
your vala code into a library and point valar at the generated vapi
file. Vala will generate the C glue code to allow you to call your Vala
library from Ruby.

Features:

  • automated conversions between Vala and Ruby types.
    e.g.
    int → Integer,
    string → String,
    ArrayList → [“foo”, “bar”, …],
    HashMap<int, string> → {1 => “foo”}

  • An object oriented Ruby API. Instead of RSTRING_PTR(str),
    you can write str.to_vala()

  • Ruby types. So instead of VALUE, VALUE, VALUE, you
    write Ruby.Value, Ruby.Array, Ruby.String and enjoy automatically
    generated type checking to rule out segfaults.

  • Automated memory management, linked to the Ruby garbage collector.

It’s dependent on Ruby-Gnome2 and isn’t packaged as a gem yet, my bad.
Also I’m writing a tutorial on how to get it working which I will link
to in the readme soonish.

best,
Dan

Daniel L. wrote:

Valar: GitHub - danlucraft/valar: Ruby-Vala interface

It’s rb++ but for the Vala language.

Vala (Projects/Vala - GNOME Wiki!) is a C#-like language with automated memory
management and collections like ArrayLists and HashMaps. Vala compiles
into C so is pretty performant.

Block closures?

Someone needs to teach C# a lesson…

Phlip wrote:

Daniel L. wrote:

Vala (Projects/Vala - GNOME Wiki!) is a C#-like language with automated memory
management and collections like ArrayLists and HashMaps. Vala compiles
into C so is pretty performant.

Block closures?

Someone needs to teach C# a lesson…

No closures, but there are anonymous methods e.g:

public void run () {
    // assigning anonymous method as signal handler
    this.foo += s => {
        stdout.printf ("Lambda expression %s!\n", name);
    };

    // Calling lambda expression
    this.foo();
}

best,
Dan