Google
 

Monday, February 07, 2005

Test Driven Development: Programming by Intention

Have you ever had to work on a piece of code and found that it was hard to understand? Maybe the logic was convoluted, the identifiers meaningless, or worse, misleading. You say there was documentation? Was it readable? Did it make sense? Was it up to date with the code? Are you sure? How do you know? This chapter discusses programming by intention, a central idea in XP. It means making your intent clear when you write code.

"The market for open-source database software will explode this year."

In Investor's Business Daily Ken Spencer Brown quotes Forrester Research analyst Noel Yuhanna saying "The market for open-source database software will explode this year." He sees annual sales rising to $1 billion by 2008, from $120 million now. "Most will come in support and service contracts." That's good, because you have to give away a fearsome number of free copies to create a billion dollar market.

"Firebird - I want this database!"

The lastest InfoExame magazine in Brazil includes an article called "Firebird - I want this database!". You can see the table of contents. "Firebird 1.5.2 bring features of powerful database systems, and it's free!"

Sun DB = Firebird ?

on firebird-generals

It seems that Sun is working on a database to be released with their own brand:

http://jroller.com/page/thinksInCode/20050205#sun_open_source_database_what

There also is a poll about what will Sun DB be based on and Firebird is one choices:
http://www.manageability.org/polls/sun-db

I personally think (if all this news are true) that it will be based on the same engine used by OpenOffice.org 2.0.

Marcello

Linuxquestion - firebird only second in poll

http://www.linuxquestions.org/questions/showthread.php?s=&threadid=272098 I'm sure we could have done better than that, given the low level of voting. There were nearer 2000 total votes last year. -- Lester Caine
[ED:
I like the last reply in the forum and i agree with it:

"Firebird doesn't have to win ( post #88) I voted for Firebird, and would have liked to see it win. But it doesn't have to win. I remember 3 years ago when I started looking for an open source database to use on my sites - for weeks the only options that were on the horizon were MySQL, PostgreSQL and Berkeley. Then I came across a very lengthy discussion comparing MySQL and PostgreSQL, and there tucked in a few comments were references to Firebird. Then searched for information on InterBase (Firebird's closed source sibling). I downloaded and started to learn Firebird, and I was amazed that something this good was freely available.

Since then Firebird has gained far more visibility, partly because of polls like this. Whilst Postgres and MySql had books available to help new users understand the dbs, until 6 months ago Firebird did not have that. For any new user who was in my position trying to decide between these dbs, it would be £100 well spent to buy one book on each of these three dbs and look at how the dbs work using those books. Its a small investment considering how important it is to make the right decision from the beginning.

The important thing for me is not that Firebird wins these polls - it is that more people hear about it and get the chance to to use a database that in its history has often had features before PostgreSQL, DB2, and even Oracle. And just as MySQL and PostgreSQL are acquiring more features with every release, so is Firebird."

http://www.linuxquestions.org/questions/showthread.php?postid=1454285#post1454285
]

Firebird ADO.NET Data Provider 1.7 RC 1

The Firebird ADO.NET Data Provider 1.7 RC 1 is available for download.

* Download information can be found here:

http://firebird.sourceforge.net/index.php?op=files&id=netprovider

* Release notes:

Release Candidate 1 ( 2005-02-05 )
------- --------- - - ---- -- -- -

Bug fixes (Please read the Changelog for details)

* Fixed problem with 0 lowerbound array fields on the embedded server
support.

* Fixed problem with stored procedure calls on FbCommand.ExecuteScalar
method.

* Fixed null Guid handling.

* Try to fix performance problem with array fields on selectable
statements when working agsint the standalone firebird server.

* Fixed problems with the new Design time support on Visual Studio 2003.

* Fixed incorrect mapping for binary blob fields to System.Array, now
it will be mapped to byte[]

* Fixed char values checkings by using the field character set
information for the check.

* Fixed some documentation comemnts that were incorrect.

* Improved comments removal on the FbScript class. (Andreas Sandner)

* Integrated the BinaryEncoding class for the octets character set
support (Contributed by Jim Beveridge)

* Added error information to the FbDataAdapter configuration wizard.



CVS Tag: NP_1_7_RC1

Friday, February 04, 2005

Introducing FireBird

Pablo Lerner has an article Introducing FireBird in the Universal Thread Magazine.

"

This article Intends to introduce a new tool that is an old one, at the same time. I'm talking about the Firebird database engine, which is new because the software is only four years old. Quite few people would trust their enterprise's data integrity to a product with such a short history, but the code from which Firebird was born four years ago is over twenty years old, and not many programs running today has such maturity.

"

Firebird V1.5.2 for Solaris (X86)

Firebird V1.5.2 Classic and Superserver for Solaris (X86) are available for download. Thanks to Konstantin Kuznetsov.

Firebird in IT Manager's journal

A second mention of Firebird in IT Manager's journal quotes Joe McKendrick, an analyst with Evans Data, "The success of FireBird and MySQL are strong indicators of the strength of the open source database market and of the greater open source movement as a whole. Operating with tighter budgets and fewer resources, a database administrator can safely and productively use an open source alternative where he would have had to traditionally rely on a commercial product."

Thursday, February 03, 2005

Transaction Isolation Levels in Firebird

Source: http://www.dotnetfirebird.org/blog/2005/02/transaction-isolation-levels-in.html

Every database operation in Firebird runs inside a transaction. The transactions have these features: Atomicity, Consistency, Isolation, Durability (read more about ACID). Let's talk a bit about the isolation feature.
Isolation says that the transaction shouldn't interfere with other transactions. Achieving full isolation would mean serializing the transactions and that would slow down the database. Therefore there are four transaction isolation levels defined and every of them represents a different balance between isolation and performance:

  • Read uncommitted
  • Read committed
  • Repeatable read
  • Serializable

Firebird doesn't match the standard (SQL92) isolation levels exactly. The following table compares the isolation levels that are supported by Firebird ADO.NET with the SQL92 standard.

Firebird ADO.NET Provider IsolationLevel Firebird Isolation Level Corresponding SQL92 Isolation Level
IsolationLevel.ReadUncommitted READ COMMITTED
RECORD_VERSION
Read Committed
IsolationLevel.ReadCommitted (default) READ COMMITTED
NO RECORD_VERSION
Read Committed
IsolationLevel.RepeatableRead SNAPSHOT/CONCURRENCY Repeatable Read
IsolationLevel.Serializable SNAPSHOT TABLE STABILITY/CONSISTENCY Serializable

All transactions have these additional Firebird transaction options set:


  • WAIT - when using READ COMMITTED isolation level it waits for uncommitted
    transactions to finish before reading a row
  • READ WRITE - allows data modifications

You can use the predefined isolation levels by calling public FbTransaction BeginTransaction(IsolationLevel) or you can tune the transaction options more precisely by using this BeginTransaction overload: public FbTransaction BeginTransaction(FbTransactionOptions).

IsolationLevel.ReadUncommitted


ANSI/ISO Read Uncommitted isolation level is not supported by Firebird. IsolationLevel.ReadUncommitted behaves like ReadCommitted but it returns the latest committed version of a rowand ignores any other (uncommitted) versions.
Reading
What it reads The latest committed version of a row and ignores any other (uncommitted) versions.
Dirty reads No
Phantom data Possible
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction Yes
Usage
Suitable for Short transactions that modify data.

IsolationLevel.ReadCommitted


Reading
What it reads Waits for uncommitted transactions modifyinga row (to be either committed or rolled back).
Dirty reads No
Phantom data Possible
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction Yes
Usage
Suitable for Short transactions that modify data.

IsolationLevel.RepeatableRead


Reading
What it reads When the transaction starts, a snapshot of the whole database is made. The transaction reads from that snapshot.
Dirty reads No
Phantom data No
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction Yes
Usage
Suitable for Long transactions that require lots of reading and stable data view (reports).

IsolationLevel.Serializable


Reading
What it reads When the transaction starts, a snapshot of the whole database is made. The transaction reads from that snapshot.
Dirty reads No
Phantom data No
Nonrepeatable reads Possible
Writing
Modification of data modified by other transactions since this transaction started No
Other transactions can modify data read by this transaction No. All tables that the transaction has read from are locked. Other transactions are prevented from writing to that tables.
Usage
Suitable for Long transactions that require exclusive access to a table.


Vulcan Overview document updated (again)

Vulcan Overview document is updated again. Download is available (.pdf). This document corrects a number of errors in the original.

Firebird Essencial

Carlos Cantu's new reference book Firebird Essencial focuses on practical solutions to common problems encountered by developers particularly Delphi developers. The book, written in Portuguese, is available in two formats: standard and signed. The signed version will be available for the next two months only. The slightly higher price includes a R$ 8,00 contribution to the Firebird Foundation.

Researcher finds strong uptick in open source DB use

Researcher finds strong uptick in open source DB use by Vance McCarthy on IT Managers Journal.

Firebird Leads Open Source Database Deployments

Firebird Leads Open Source Database Deployments, Says Survey, news item on Government Technology

Read more @ http://www.govtech.net/news/news.php?id=92941

Linux is mission critical for Czechs

The Czech postal service is putting its faith in open source, by migrating a vital application onto SuSE Linux

Read more @ http://news.zdnet.co.uk/software/linuxunix/0,39020390,39186055,00.htm

Red Hat charging for the wrong distribution?

"Red Hat has really been grating my nerves as of late. Undocumented features that are advertised but unusable, recommended updates that are thoroughly broken, failure to update packages with high-impact problems, and a poor software packaging and distribution policy have me testing other distributions with a goal of taking my business elsewhere. "

Read more

Wednesday, February 02, 2005

Vulcan Overview document

An updated Vulcan Overview document is now available (.pdf). This document corrects a number of errors in the original.

Ibm Brasil - Firebird on Zseries (mainframes) ?

Celio Costa Carvalho from Ibm Brasil asked on devel-list and Nickolay responded:

> I am trying to install Firebird in a zSeries machine (mainframe).
>
> When I issue the configure command I get :
>
> checking whether make sets $(MAKE)... yes checking build
> system type... s390-ibm-linux checking host system type...
> s390-ibm-linux checking target system type... s390-ibm-linux
>
> And when I enter a make command I get :
>
> g++ -I../src/include/gen -I../src/include -ggdb -O3 -march=i586
> -mcpu=i686 -fno-omit-frame-pointer -fno-builtin -DNDEBUG
> -DLINUX -pipe -MMD -fPIC -DPROD_BUILD -c
> ../src/common/classes/alloc.cpp -o
> ../temp/libfbcommon/common/classes/alloc.o
> cc1plus: invalid option `arch=i586'
> cc1plus: invalid option `cpu=i686'
>
> Could you help me saying how I compile the Firebird in a
> zSeries or s390 machine ?
Firebird 2.0 has the framework for generic Linux builds of Firebird. Firebird 1.5 defaults to x86 build on Linux and this is what you see. It is cerainly possible to build 1.5.X on linux/ Anyways, if you are interested in getting Firebird to work on your platform I would recommend you to start with Firebird 2.0 codebase. You'll probably need to add a couple defines for your CPU architecture in a few places. Please get in touch with me if you are interested in producing this port and submitting patches for it. > Celio Costa Carvalho
Nickolay

CONNECT!

"Firebird 1.5 is a full-featured SQL database engine. It is powerful, yet lightweight, with minimal configuration and administration needs. It's easily scalable from single-user, single-database usage up to company-wide enterprise purposes. A single Firebird server can handle multiple independent databases, each with multiple client connections. And best of all: it's true Open Source, thus free of any license fees even for commercial use."
(source: Firebird Facts)

The first question that comes in mind for a Firebird new user is always "If Firebird is so good, why is its visibility so small in the database world?".

It has been a hot point for discussion around the Firebird Project for some time. We have a great developer team, we have a great documentation team, we have lots of volunteers doing a great job in support lists. We really don’t have a "Marketing Team".

Firebird does have a large group of users: Sourceforge downloads rolled over the million a long time ago. Mainly, they are software companies or independent software developers that are using Firebird in private software products. Typically, people who buy the products from them don’t really care about the database engine - they concentrate on the whole software solution and whether or not it works.

We could easily suppose that most end-users of Firebird don't know that they are using Firebird at all! If the product runs smoothly, without the need for a specialized DB Administrator, and it never gives you a problem, you tend not to give the database engine any thought.

Firebird is gaining a lot of ground as as a player in the database arena. We are a strong project delivering a strong product that competes directly with commercial leaders such as Oracle and Microsoft SQL. It’s not enough to be a great database engine, if the world know doesn't know about it.

We don’t have a Marketing Team, but we do have a lot of people interested in finding ways to spread the word about Firebird. The FirebirdSQL Foundation is helping to coordinate these interests into a positive marketing effort. Your help, as a Firebird user, can make a difference.


What is going on now to connect Firebird with "the market"? What can members do to keep one another and the public in touch with Firebird and the places it is to be seen?



Read more @ http://www.firebirdsql.org/index.php?op=ffoundation&sub=connect

Tuesday, February 01, 2005

Fyracle 0.8.4 released

Fyracle 0.8.4 released
======================

Changes:

- Added JDBStudio for Fyracle to the Developer Kit
- Enhanced supported syntax for INSERT and UPDATE:
INSERT and UPDATE from a SELECT is now supported
- Enhanced supported functionality of TO_CHAR function
- Fixed a problem with the handling of line breaks
embedded in literal strings
- Numerous small bug fixes


Download:

The new demo installers can be downloaded from:
http://www.fyracle.org/downloads

The Developer Kit can be downloaded via:
http://www.janus-software.com/fb_buy.html


Upgrade:

The recommended upgrade procedure is to first
uninstall previous versions of Fyracle and only
then to install the new 0.8.4 release. Remember
to save your configuration files (firebird.conf
and aliases.conf) if you changed them!

The uninstaller has a start menu entry on Windows
and can be found at the top of the install
directory on Linux and Windows.


Compiere:

The Compiere demo has been upgraded to 2.5.1g in
cooperation with Jotel. The files can be downloaded
from either the Janus or the Jotel site.