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.
Monday, February 07, 2005
Test Driven Development: Programming by Intention
Posted by
Fikret Hasovic
at
2/07/2005 11:06:00 AM
0
comments
"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.
Posted by
Fikret Hasovic
at
2/07/2005 10:58:00 AM
0
comments
"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!"
Posted by
Fikret Hasovic
at
2/07/2005 10:58:00 AM
0
comments
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
Posted by
Fikret Hasovic
at
2/07/2005 10:17:00 AM
0
comments
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
]
Posted by
Fikret Hasovic
at
2/07/2005 10:17:00 AM
0
comments
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
Posted by
Fikret Hasovic
at
2/07/2005 09:53:00 AM
0
comments
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.
"
Posted by
Fikret Hasovic
at
2/04/2005 04:54:00 PM
0
comments
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.
Posted by
Fikret Hasovic
at
2/04/2005 04:13:00 PM
0
comments
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."
Posted by
Fikret Hasovic
at
2/04/2005 03:57:00 PM
0
comments
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. |
Posted by
Fikret Hasovic
at
2/03/2005 03:37:00 PM
2
comments
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.
Posted by
Fikret Hasovic
at
2/03/2005 02:12:00 PM
0
comments
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.
Posted by
Fikret Hasovic
at
2/03/2005 01:47:00 PM
0
comments
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.
Posted by
Fikret Hasovic
at
2/03/2005 01:46:00 PM
0
comments
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
Posted by
Fikret Hasovic
at
2/03/2005 01:44:00 PM
0
comments
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
Posted by
Fikret Hasovic
at
2/03/2005 11:19:00 AM
0
comments
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
Posted by
Fikret Hasovic
at
2/03/2005 11:17:00 AM
0
comments
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.
Posted by
Fikret Hasovic
at
2/02/2005 01:17:00 PM
0
comments
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
Posted by
Fikret Hasovic
at
2/02/2005 10:48:00 AM
0
comments
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
Posted by
Fikret Hasovic
at
2/02/2005 10:46:00 AM
0
comments
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.
Posted by
Fikret Hasovic
at
2/01/2005 11:44:00 AM
1 comments