Monday, May 24, 2010

hey stupid it's the sql and is better when it's free like free s_x

google allows you to use sql now but only for enterprise
you know you can build a simple machine with firebird sql and deploy it on amazon ec2
or in your private cloud for free , in fact you can build an infinity of machines and use a better framework than the one from google and i talk about django and you don't need their restrictions
ahh and for the java is the same , use tomcat (jruby) -> firebird + s3 and seems that is better for the long term than what google allows you for a premium price

Friday, May 21, 2010

When frameworks do fail use sexy sql

Imagine this scenario : is x AM in the morning your preferred framework model is starting to fail (Ruby On Snails )
Active Record model stinks when you start using multi monster joins so you got to stick with the old sql skills
something like ActiveRecord::Base.connection.select_all("select id from restaurants order by popularity limit 100")



and this will help even when at the same time when heroku rake db:migrate fails
what to do ?
$heroku console 
and start writing sexy sql statements like
>> ActiveRecord::Base.connection.select_all("ALTER TABLE xxx ADD COLUMN xxx_id integer")
>> ActiveRecord::Base.connection.select_all("select xxx_id from xxx order by xxx_id limit 100")

Tuesday, May 18, 2010

A weekend with Active Record and _why ruby guide

This weekend was dedicated to ruby and to other activities but specially in the programming field it was all about _Why guide (I have finished chapter 3 ) and A Guide to Active Record and if you really want some really cool hacks in firebird sql here is the XML Generator – Stored Procedure for Firebird (Portuguese)and that made me think why we don't have asXML/asJson in the Firebird engine directly ?
-Maybe because in Delphi we had asXML with no real work to be done on the engine part

Friday, May 14, 2010

Day 2 on Debian - Revenge of the Squeeze on eeePC 1005p

in day two i have installed debian with usb image on eeepc
first i tried to use the lxde eeepc image but the kernel was a little bit older and it
wasn't recognized so i found that the best way is to install squeeze on it
and wireless works without issues and without the ndiswrapper! like is on ubuntu but i don't use encryption at home, only the trackpad does't quite respond to double click but i will find a solution to that
also the installer asked me the ESSID for the network while installing it over the wireless network it didn't detected the networks from around
Here is the obligatory screen shot and of course i will be evil and upgrade to sid . It doesn't look to bad isn't it ? and gnome is not so butchered by ubuntu people , yes it does come with epihphany browser and iceweasel

Thursday, May 13, 2010

Firebird documentation building (html/pdf) howto on Ubuntu Lucid Lynx or Debian

I always need to remember howto build the firebird documentation on my ubuntu/debian machines so i decided to
write a minihowto inspired by the great document Getting and building the Firebird manual module

mkdir firebird_doc
cd firebird_doc/
export CVS_RSH=ssh
cvs -z3 -d:ext:mapopa@firebird.cvs.sourceforge.net:/cvsroot/firebird co -P manual
cd manual

or you can checkout anonymous mode from sourceforge's cvs repository
cd lib/
cat _readme_libs.txt
wget http://www.firebirdsql.org/doclibs/ALLJARS.ZIP
unzip ALLJARS.ZIP
cd ..
cd tools
cat _readme_tools.txt

wget http://www.firebirdsql.org/doctools/docbook-dtd.zip
wget http://www.firebirdsql.org/doctools/docbook-stylesheets.zip
unzip docbook-dtd.zip
unzip docbook-stylesheets.zip
cd ..
Install jdk

sudo apt-get install openjdk-7-jdk

On debian is in non-free repository and must be added to apt/sources.list

Check the jdk content
dpkg -L openjdk-7-jdk
on Ubuntu
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64/
on Debian sid (unstable)
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/


cd src/build
./build.sh html
./build.sh pdf
At this point you should add some nice rendered documentation in pdf or html format

cd ../../dist/html/

google-chrome ./index.html

there are some interesting files that are not yet on the main website so is good to dig around
something like isql-fb manual or the vpn guide


Lxdebian is not for average people - Day one of pain

first nvidia proprietary drivers must be installed manually and then
if you get some errors with the debian way (i have tried to compile / use the nvidia driver that comes in testing) then the alternative is to upgrade to unstable "which contains the current drivers series" so you better replace in apt/sources.list the testing/squeeze word with unstable or sid like this


and
apt-get update
apt-get dist-upgrade

you can read more instructions on nvidia/debian wiki page.

Also i had some errors about the GTK+ icon set in squeeze and lxde setup but i hope they will disappear after squeeze -> sid upgrade


ps:what is wrong in debian by default?

1.exim by default
2.portmap, rpc.statd are started by default they should be removed by default
3.openoffice by default in lxde install image
that is huge i think some packages and themes from lubuntu should be added by default
like gnumeric, chromium ,abiword , pidgin but please avoid the bloatware like openoracleoffice
4.why i'm not in the list of sudoers by default? , also i don't need to know my root password if i create a admin type of user anyway

Debian LXDE and faster systems - Yes i'm switching all my desktops to Debian x64 - Sorry Ubuntu your marketing failed

For simpler systems there is a special CD with LXDE as desktop environment, download the one for your system architecture for me is x86-64 on All systems (I wonder why the frack ubuntu gives you 32 bit version by default when you download the iso , 32 bit is legacy and 64 bit should be considered mainstream and for server is stupid to have 32 bit version)
Before the installation starts choose lxde instead of xfce from the install menu
ps:xfce/lxde on debian it's a little bit faster than what it's inside xubuntu 
my reasons are that i want to become a debian developer to help the firebird packages and fixing bugs there this is why i need to use debian unstable/experimental 
also i'm contemplating arch linux and haiku when i will have enough time 

Sunday, May 09, 2010

Installing the latest ruby on rails on any ubuntu :lynx,karmic ....

I needed to have the latest rails on my ubuntu desktop : lucid lynx (the one that is by default in repository is too old)

and this command will not work on any debian based system because it's disabled and
it will break the debian way
sudo gem update --system
anyway you can update and the replace the gem installed on the system this way
sudo gem install rubygems-update
sudo update_rubygems

if it's not in the path (I wonder why is not there by default when the gem package is installed)
you can do this
sudo  /var/lib/gems/1.8/bin/update_rubygems 
RubyGems 1.3.6 installed

=== 1.3.6 / 2010-02-17
changelog and notices
--------------------------------

RubyGems installed the following executables:
 /usr/bin/gem1.8


then you can install the latest stable rails
sudo gem install rails

Installing jaws #php #cms on #ubuntu lucid and #firebird backend

This is tutorial on how to install  jaws-cms on ubuntu and with firebird 2.1 backend
cd /var/www
sudo wget http://bits.jaws-project.com/releases/jaws-0.8.13/jaws-complete-0.8.13.tar.gz
sudo tar -zxvf jaws-complete-0.8.13.tar.gz
sudo mv html jaws

sudo chmod -R g+rw jaws
sudo chown -R www-data.www-data jaws
create an new database with flamerobin /var/lib/firebird/2.1/data/jaws.fdb

create a symlink , seems that if you put only jaws.fdb in the database field
then it needs to be located in jaws/data
cd /var/www/jaws/data
ln -s  /var/lib/firebird/2.1/data/jaws.fdb











start the installer http://localhost/jaws/install/
fill in the username for database and password
at database put jaws.fdb
Some screenshots created during the install process

All requirements are OK check the green results field
Also for php gd i had to install it this way
sudo apt-get install php5-gd
and for firebird php driver
check if is installed with
sudo apt-get install php5-interbase
and then restart the apache server so that php driver to be really loaded after install
sudo /etc/init.d/apache2 restart












and here is the administration area that you can access with
http://localhost/jaws/admin














If you play with the gadgets and add them to the Layout area in a few seconds you have a blog, rss feed (i have added firebirdnews rss feed) and visitor count and then a search box
So a community style of site can be created in a few steps and it's very easy to start it

Friday, May 07, 2010

Transforming old interbase 6.0 docs from pdf to html using htmltopdf from ubuntu

wget http://www.ibphoenix.com/downloads/60LangRef.zip
unzip 60LangRef.zip
Archive:  60LangRef.zip
  inflating: LANGREF.PDF  

simple transformation with weird chars for quotes is done this way

pdftohtml LANGREF.PDF
then there is a LANGREF.html file

So i had to add the encoding type to be UTF-8
pdftohtml -noframes -enc UTF-8 LANGREF.PDF

you can see the results on this page
http://firebirdsql.ro/images/LANGREF.html


the interesting thing is -xml output
pdftohtml -noframes -xml LANGREF.PDF

with LANGREF.xml file as output

So in theory we can have simple interbase 6.0/ pre firebird 1.0 docbook document with language reference

Thursday, May 06, 2010

Firebird after 10 years - What a long trip, Long road ahead

For me it bring me tears when i read the old news from 2000 when interbase 6.0 was open sourced and later named Firebird [SQL]. Yes i read the old firebird related news from ibphoenix.
When it was open sourced there was no simple way to do on a linux system this style of building it :./configure make make install , it was weird and the code it was undocumented and weird
old weird c style with cruft from vax era and with limits from the same time , look now
on any linux system and any cpu firebird is build-able and is stable with no major crashes , ok ok there are some bugs but is usable on all platforms : macosx , windows32/64 and all linuxes and unixes (bsd) and you can do anything with it. Yes it's a major step to be easily to compile and to be available on all platforms. 10 Years ago build scripts were missing !! and they asked for something like 10M $ for them and for documentation source ! . This is why Firebird documentation is Achilles point and i think in the future we will replace the interbase 6.0 PDFs ! with something that is DocBook and that is opensource , Or maybe Embarcadero will donate the ib6.0 documentation under an OpenSource License , Who knows...? but the key is we need documentation that is easily searchable and in one place like on Postgresql guys and like on Mysql website
at least i can do an ib6.0 doc import from pdf to html and then publish them on another site like abandonware and include all the good changes made over the years to it fb1.0 fb.1.5 fb 2.0 fb2.1 fb 2.5 ....
Ahh and there is the website too old look : we know that something better will come so stay close to firebird community and you can support it by joining Firebird 2.5 Launch Campaign http://mindthebird.com/

ps: at first i couldn't understand anything about Firebird 1.0 C source code but these days
the code is in better shape and there are many documents that appeared on the webside or they are in the works : Wire Protocol , OnDisk Structure , Firebird Internals ...
So I think with great Past, Great future is laying ahead and we have good Architects and great core coders