The Ruby Spreadsheet

December 16, 2008

Why are we using GPLv3 as the basic Licence for the Ruby Spreadsheet?

Filed under: Licence — Tags: , , — zdavatz @ 1:37 pm

This post comes on the back of http://rubyforge.org/forum/forum.php?thread_id=30389&forum_id=2919 where Larry Kluger is asking why we would use a licence like GPLv3 for the Ruby Spreadsheet. There are a few points noteworthy about this argument:

1. For a new project it does make sense to start with a GPLv3 Licence. Even Linus Torvalds would consider doing that. Spreadsheet is a totally new project started from 0.

2. Projects like OpenOffice.org or the Kernel are both HUGE projects in comparison to Spreadsheet. They come with thousands and millions of strings attached. These projects where started decades ago and at that time different licenses applied. They grew with the license that was doing it for them at the time they started.

3. In the 21st century Tivo, DRM and Patents play a much bigger role then they did in the 20th century.

4. GPLv3 is not perfect but it does make sense for a fresh project.

5. The author matters. Cut the developer some slack and give some code back to the community. If you do not want to do so, then just pay a small fee when somebody else does the coding for you.

Advertisements

December 12, 2008

14 Bug Fixes to Ruby Spreadsheet

Filed under: Release — Tags: — zdavatz @ 7:20 am

* 14 Bugfixes

http://scm.ywesee.com/?p=spreadsheet;a=blame;f=History.txt;hb=6ba3b8c5c3d13f0b84df74cca616777e26ecd37e

* Fixed a bug where #<boolean>! methods did not trigger a call to #row_updated
* Corrected the Row-Format in both Reader and Writer (was Biff5 for some reason)
* Populates Row-instances with @default_format, @height, @outline_level and @hidden attributes
* Fixed a Bug where Workbooks deriving from a Template-Workbook without SST could not be saved Reported in http://rubyforge.org/tracker/index.php?func=detail&aid=22863&group_id=678&atid=2678
* Improved handling of Numeric Values (writes a RK-Entry for a Float only if it can be encoded with 4 leading zeroes, and a Number-Entry for an Integer only if it cannot be encoded as an RK)
* Fixes a bug where changes to a Row were ignored if they were outside of an existing Row-Block.
* Fixes a bug where MULRK-Entries sometimes only contained a single RK
* Fixes a bug where formatting was ignored if it was applied to empty Rows Reported by Zomba Lumix in http://rubyforge.org/forum/message.php?msg_id=61985
* Fixes a bug where modifying a Row in a loaded Workbook could lead to Rows with smaller indices being set to nil. Reported by Ivan Samsonov in http://rubyforge.org/forum/message.php?msg_id=62816
* Deals with rounding-problems when calculating Time Reported by Bughunter extraordinaire Bjørn Hjelle
* Correct splitting of wide characters in SST, Reported by Michel Ziegler and by Eugene Mikhailov in http://rubyforge.org/tracker/index.php?func=detail&aid=23085&group_id=678&atid=2677
* Fix an off-by-one error in write_mulrk that caused Excel to complain that ‘Data may be lost’, reported by Emma in http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/321979 and by Chris Lowis in http://rubyforge.org/tracker/index.php?func=detail&aid=22892&group_id=678&atid=2677
* Read formats correctly in read_mulrk, Reported by Ivan Samsonov, Fixes that part of http://rubyforge.org/forum/message.php?msg_id=62821 which is a bug. Does nothing for the disappearance of Rich-Text, formatting, which will not be addressed until 0.7.0
* Fixes a (benign?) bug, where adding text to a template-file resulted in a duplicate extsst-record.
* 2 minor enhancements
* Improved recognition of Time-Formats
* Improvement to Robustness: allow Spreadsheet::Workbook.new, Takes care of http://rubyforge.org/forum/message.php?msg_id=62941, Reported by David Chamberlain

December 11, 2008

Ruby Spreadsheet Licence for companies that do not want to use GPLv3

Filed under: Licence — Tags: , — zdavatz @ 8:14 am

Ruby Spreadsheet Licence Version 0.11

1. The purpose of this license is to allow XCompany.com the usage of the Ruby Spreadsheet Library by ywesee GmbH up to Version 1.0. The current version is 0.6.5.4. All versions of the Software can be found at http://scm.ywesee.com/?p=spreadsheet/.git;a=summary

2. The reason for this licence is that XCompany.com does not want to use Spreadsheet under GPLv3.

3. XCompany.com is allowed to use above software on two servers. XCompany.com is allowed to use the above software within their software for their purpose according to their User-Story. According to Name Surname the User-Story is “It would form part of an ‘export these records to …’ feature on our website and as such it would sit alongside export options to PDF, CSV, HTML etc.  So it would be part of a service.”

4. XCompany.com is allowed to use Spreadsheet as noted under point three.

5. Except otherwise stated in this contract, XCompany.com is not allowed to resell, reuse or give away any version of above code under any other licence then the GPLv3.

6. XCompany.com will pay a onetime fee of EUR X for the usage of Spreadsheet up to Version 1.0. The fee is due once this contract has been agreed upon by both parties. The invoice will be sent to XCompany.com via Email.

7. ywesee GmbH will work towards fixing any bug submitted via http://rubyforge.org/tracker/?atid=2677&group_id=678&func=browse. Issues that are estimated to require more than 2 workdays to correct may be subject to a fee, which will be negotiated prior to the work.

8. The court of jurisdiction is Zürich, Switzerland.

Please note:  If a bug occurs in Version 0.9999 to Version 1.0 and you or anybody else reports that bug, then we will fix it not matter what. If a bug occurs in Version 1.01 to Version 1.02 then of course we will have to renegotiate the terms of our contract and the price for Version 1.0 up to Version 2.0.

We will not “create” a bug in Version pre 1.0 and then ask for money for Version 1.0. Version 1.0 will include many bug and Feature improvements a long way from the current version (if you look at the current Version History you can see our track Record and we will not do a realese for “money makeing reasons”).  So to cover our work we need to cover our expenses.

To see the Ruby Spreadsheet Track History, please see:

http://spreadsheet.rubyforge.org/files/History_txt.html

To see the Ruby Spreadsheet RoadMap, please see:

http://spreadsheet.rubyforge.org/files/README_txt.html

December 10, 2008

The Ruby Spreadsheet

Filed under: Ruby, Spreadsheet — Tags: , , — zdavatz @ 4:15 pm

http://spreadsheet.rubyforge.org

http://scm.ywesee.com/?p=spreadsheet;a=summary

The Spreadsheet Library is designed to read and write Spreadsheet
Documents. As of version 0.6.0, only Microsoft Excel compatible
spreadsheets are supported. Spreadsheet is a combination/complete
rewrite of the Spreadsheet::Excel Library by Daniel J. Berger and the
ParseExcel Library by Hannes Wyss. Spreadsheet can read, write and
modify Spreadsheet Documents.

Changes:

### 0.6.0 / 2008-10-13
Initial upload of the shiny new Spreadsheet Gem after three weeks of
grueling labor in the dark binary mines of Little-Endian Biff and long
hours spent polishing the surfaces of documentation:

* Significantly improved memory-efficiency when reading large Excel Files
* Limited Spreadsheet modification support
* Improved handling of String Encodings
* Runs on top of the ruby-ole Library

Roadmap:

0.7.0: Improved Format support/Styles
0.7.1: Document Modification: Formats/Styles
0.8.0: Formula Support
0.8.1: Document Modification: Formulas
0.9.0: Write-Support: BIFF5
1.0.0: Ruby 1.9 Support;
Remove backward compatibility code

Backward Compatibility:

Spreadsheet is designed to be a drop-in replacement for both
ParseExcel and Spreadsheet::Excel. It provides a number of
require-paths for backward compatibility with its predecessors. If you
have been working with ParseExcel, you have probably used one or more
of the following:

require ‘parseexcel’
require ‘parseexcel/parseexcel’
require ‘parseexcel/parser’

Either of the above will define the ParseExcel.parse method as a
facade to Spreadsheet.open. Additionally, this will alter Spreadsheets
behavior to define the ParseExcel::Worksheet::Cell class and fill each
parsed Row with instances thereof, which in turn provide ParseExcel’s
Cell#to_s(encoding) and Cell#date methods.
You will have to manually uninstall the parseexcel library.

If you are upgrading from Spreadsheet::Excel, you were probably using
Workbook#add_worksheet and Worksheet#write, write_row or write_column.
Use the following to load the code which provides them:

require ‘spreadsheet/excel’

Again, you will have to manually uninstall the spreadsheet-excel library.

If you perform fancy formatting, you may run into trouble as the
Format implementation has changed considerably. If that is the case,
please drop me a line at hannes.wyss@gmail.com and I will try to help
you. Don’t forget to include the offending code-snippet!

Blog at WordPress.com.