[ANN] Fast Change Set Tool (Ruby's Revenge)

Z

Zed A. Shaw

Hi All,

Just a quick announcement for a very alpha version of a revision control
tool I've been tinkering with for a while:

http://www.zedshaw.com/projects/fastcst/index.html

The important things to note are:

* There's full GPL licensed source or you can download a single script
to play with (thanks to tar2rubyscript).
* You can create full changesets between two directories with
differences and apply them.
* You can make a delta between two files and apply it.
* Making a changeset between linux-2.4.29 and linux-2.6.10 takes about
5 minutes on my computer, and applying takes about 2 minutes. This
changest is about 22MB in size.
* There's a Suffix Array C extension with searching features.
* The delta algorithm uses a suffix array to find "matching" and
"non-matching" regions and makes a simple delta file from it.

It's currently very rough, but I'd appreciate any feedback you can give
me. Particularly pertaining to things related to "the Ruby way" of
doing things.

Thanks again.

Zed A. Shaw
 
M

Michael Neumann

Zed said:
Hi All,

Just a quick announcement for a very alpha version of a revision control
tool I've been tinkering with for a while:

http://www.zedshaw.com/projects/fastcst/index.html

The important things to note are:

* There's full GPL licensed source or you can download a single script
to play with (thanks to tar2rubyscript).
* You can create full changesets between two directories with
differences and apply them.
* You can make a delta between two files and apply it.
* Making a changeset between linux-2.4.29 and linux-2.6.10 takes about
5 minutes on my computer, and applying takes about 2 minutes. This
changest is about 22MB in size.
* There's a Suffix Array C extension with searching features.
* The delta algorithm uses a suffix array to find "matching" and
"non-matching" regions and makes a simple delta file from it.

It's currently very rough, but I'd appreciate any feedback you can give
me. Particularly pertaining to things related to "the Ruby way" of
doing things.

Great, great, great! ;-)

I came across your page a few weeks ago and read also about FastCST. It
looked interesting.
As it's now Ruby, I'll take a second look ;-)

Regards,

Michael
 
R

Renald Buter

Hello all,

Just released a very small XML output utility that uses blocks to create
the output. For example:

xml = XmlBlockOutput.new($stdout)
xml.emt:)foo, :id=1) {
xml.emt:)faa)
xml.emt("vrom-vrom") { "vroar!\n" }
"text\n"
}

Will result in something resembling:

<foo id="1">
<faa />
<vrom-vrom>
vroar!
</vrom-vrom>
text
</foo>

There are no dependencies for this class.

Since I couldn't find anything like it on the RAA, I created it myself.
Yet should there already something like it, let me know and I'll
withdraw this one.

Cheers!

Renald
 
J

Jim Weirich

Just released a very small XML output utility that uses blocks to create
the output. For example: [...]
Since I couldn't find anything like it on the RAA, I created it myself.
Yet should there already something like it, let me know and I'll
withdraw this one.

There is Builder::XmlMarkup ...

require 'builder/xmlmarkup'
xml = Builder::XmlMarkup.new:)indent=>2)
xml.foo:)id=>1) {
xml.faa
xml.tag!("vrom-vrom", "vroar!\n")
xml << "text\n"
}
puts xml.target!

Produces:

<foo id="1">
<faa/>
<vrom-vrom>vroar!
</vrom-vrom>
text
</foo>

Rubyforge: http://rubyforge.org/projects/builder/
 
G

George Moschovitis

Since I couldn't find anything like it on the RAA, I created it myself.
Yet should there already something like it, let me know and I'll
withdraw this one.

this is allready implemented:

http://jimweirich.umlcoop.net/software/

also Rails, Nitro and Wee provide this functionality,
all of the above use method_missing to implement the
builder pattern (actually Wee's version is a bit more
advanced).


regards,
George Moschovitis (tml)
 
B

buter

Just released a very small XML output utility that uses blocks to create
the output. For example: [...]
Since I couldn't find anything like it on the RAA, I created it myself.
Yet should there already something like it, let me know and I'll
withdraw this one.

There is Builder::XmlMarkup ...

require 'builder/xmlmarkup'
xml = Builder::XmlMarkup.new:)indent=>2)
xml.foo:)id=>1) {
xml.faa
xml.tag!("vrom-vrom", "vroar!\n")
xml << "text\n"
}
puts xml.target!

Produces:

<foo id="1">
<faa/>
<vrom-vrom>vroar!
</vrom-vrom>
text
</foo>

Rubyforge: http://rubyforge.org/projects/builder/

Builder::XmlMarkup is obviously a much more powerful package and
TWTG for more complex requirements.

But if you don't mind, I'll leave mine on the RAA, since the approaches
do differ a little bit and mine is so *damn* lightweight (maybe
even just short from weightless) :)

But I'll include a reference to Builder::XmlMarker.

Cheers,

Renald
 
J

James Britt

Builder::XmlMarkup is obviously a much more powerful package and
TWTG for more complex requirements.

But if you don't mind, I'll leave mine on the RAA, since the approaches
do differ a little bit and mine is so *damn* lightweight (maybe
even just short from weightless) :)

The xml-block-output home page has roughly zero information, so other
than the brief example on the RAA page (the same as posted in your
announcement) there nothing put forward to explain how there is ever any
advantage to using xml-block-output over Builder::XmlMarkup. (I can
install and update Builder using rubygems, which is a big plus right
there for me.)

In what way do the approaches differ, and by what metric is
xml-block-output so *damn* lightweight? Is it faster? Require less
typing? Use zero memory? Code itself?

Because, quite honestly, when I say the anouncement, I thought, "This is
Builder. Again."



Thanks,


James
 
R

Renald

The xml-block-output home page has roughly zero information, so other
than the brief example on the RAA page (the same as posted in your
announcement) there nothing put forward to explain how there is ever any
advantage to using xml-block-output over Builder::XmlMarkup. (I can
install and update Builder using rubygems, which is a big plus right
there for me.)

I am sorry. I didn't have time for this, yet.
In what way do the approaches differ, and by what metric is
xml-block-output so *damn* lightweight? Is it faster? Require less
typing? Use zero memory? Code itself?

The code itself is short of 100 lines, 6 defs in 2 classes.
Because, quite honestly, when I say the anouncement, I thought, "This is
Builder. Again."

Since it obviously doesn't stand the peer-review and Builder is the
preferred way to go, I'll withdraw my contribution to the RAA.

Thanks,

Renald
 
J

James Britt

Renald said:
Since it obviously doesn't stand the peer-review and Builder is the
preferred way to go, I'll withdraw my contribution to the RAA.


Well, that's entirely up to you. People are free to code as they please
and write what libs they want.

If you honestly believe (as I suspect you do) that your library has
worthwhile distinctions from other libraries, then you should pursue it,
regardless of what anybody else thinks or says.

I just couldn't see what these distinctions might be, based on the scant
information provided; still, please don't feel obligated to convince
anyone.

James
 

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,755
Messages
2,569,537
Members
45,020
Latest member
GenesisGai

Latest Threads

Top