Monday, July 26, 2010

Firebird legacy : stable core and api

What most of the people want these days from a RDBMS is a stable core and stable api


When i was at Firebird conference one of the people shocked me because he told me his is happy
with firebird on a single machine , these days we admins see the number of servers increasing from 10 to hundreds and then thousands so they are not big numbers for us but when i see a simple machine i'm shocked :all in only one machine ? yes the majority of Firebird ursers are simple developers and only the niche needs 10.000 machines : yah big shock ;)
but that doesn't mean we should stop at only one machine or at thousands
the big jump is from one machine to 2 or 4 the rest is simple

That was about my rant about the stable core and simple stupid machines and this is what perl community found it too:

Most of the feedback I get from companies is that they want existing
things to just work, including core and CPAN modules. Most places I
visit aren't using most of the Perl features available to them, so new
features aren't very interesting, especially when they are stuck on
older versions of perl anyway.


the rant about the stable api is that firebird api is set in stone and doesn't change much with years, there are some quirks but is like posix there to stay forever : with bugs and all the animals
Here what firebird/interbase revolution did to the world: stable api for perl aka dbi
If you use perl and mysql/oracle you should thank to firebird/interbase first

Tuesday, July 20, 2010

Error: bad register name %sil

while compiling linux kernel 0.0.1 on lucid lynx or debian sid with gcc 4.4.4 i've got this error message
http://portabilityblog.com/blog/archives/11-Bad-register-name-dil-or-sil.html

how i fixed in asm/segment.h ? i have changed the registers used in function from "r" to "q"
so i limit the register usage only for general ones EAX, EBX, ECX and EDX

extern inline void put_fs_byte(char val,char *addr)
{
__asm__ ("movb %0,%%fs:%1"::"q" (val),"m" (*addr));
}

what is the next error ?


ld -s -x -M -Ttext 0 -e startup_32 boot/head.o init/main.o \
kernel/kernel.o mm/mm.o fs/fs.o \
lib/lib.a \
-o tools/system > System.map
kernel/kernel.o: In function `scrup':
console.c:(.text+0x1ea4): undefined reference to `columns'
console.c:(.text+0x1f6c): undefined reference to `columns'
kernel/kernel.o: In function `scrdown':
console.c:(.text+0x1fc5): undefined reference to `columns'

Hungary rejects IMF and maybe is a good idea

In Hungary they did it right and rejected the economy control

Here is what happened in Romania : we have now new increased VAT taxes and we do "enjoy" the IMF control
over our economy : we are totally fucked up ,the price for beer and cigarettes is increased and now everyone is looking on how to cut all the expenses ,no one is buying like before and the result : frozen and survival type economy , nobody borrows money from banks because the loans rates are increasing
...and so on

Mugur Isarescu (BNR chief) opposed the TVA increasing measure and i think we should rise a statue for him and he knows a thing or two about the Romanian economy

and yes the government cut wrong budgets and usually from weak economic zones : health, education ...etc
but continuing spending money on Microsoft licences (Siveco) and buying expensive cars like before (I want to see one one minister on bicycle, just once just one time , seriously)

ps:now they realized that VAT increases did a horrible thing for economy and all they see is how to cut expenses in short term but not aware with long term results
and all in the name of next elections

Wednesday, July 14, 2010

Compiling lazarus with qt interface on debian/ubuntu

install libQt4Pas library

I have installed it on debian sid with

apt-get install libqt4pas-dev libqt4pas5

check if is installed with

ldconfig -p | grep libQt4Pas
libQt4Pas.so.5 (libc6) => /usr/lib/libQt4Pas.so.5
libQt4Pas.so (libc6) => /usr/lib/libQt4Pas.so


checkout the lazarus source code from svn
svn co http://svn.freepascal.org/svn/lazarus/trunk lazarus
cd lazarus
make PREFIX=/opt/lazarus clean all LCL_PLATFORM=qt
make install
or ./lazarus

check the qt string in the about box


What is the next step : configure the lcl include paths to use the new dirs
and adding the sql components