Wednesday, July 09, 2014

Installing Android x86 4.4 on my eeepc with qemu

In fact is an re-install , i had 4.3 in dual boot with debian sid on my eeepc and i wanted to do an upgrade , the issue is that i don't have a usb stick to boot from it so i took another route

I have installed qemu and then downloaded the 4.4 iso from android x86 site and started this way to detect partitions on the main drive

qemu -boot d -cdrom android-x86-4.4-RC2.iso -hda /dev/sda

 format the partition already prepared in my case 15G /dev/sda4 also do not install grub if you want to modify it manually from debian partition


 After the install is finished you need to test it first that it works i mount /dev/sda4 to see the dir structure
mount /dev/sda4 /mnt
ls /mnt/
android-4.4-RC2  lost+found

so i have modified /etc/grub.d/40_custom this way
 menuentry "Android-x86 4.4" {
set root=(hd0,4) linux /android-4.4-RC2/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-4.4-RC2 DATA= initrd /android-4.4-RC2/initrd.img
}

sudo update-grub2


 and restart choose the new android version

Monday, May 19, 2014

Fire Ruby - howto start with Firebird and Ruby on Ubuntu / Debian

This howto is about installing firebird ruby driver on Ubuntu or any Debian based distro
you might need some firebird dependencies and if you need the stable Firebird server  Firebird 2.5 guide to install it

The very basic firebird package to build only the driver is firebird2.5-dev

sudo apt-get install firebird2.5-dev git-core
and choose yes when asked
Then you need to install ruby and the recommended rails way is to use rbenv 

rbenv install 2.1.2
rbenv global 2.1.2
ruby -v
Best way is to install it from gem

gem install fb

Alternate way  is to build install our gem (latest build-able is located here )

git clone https://github.com/rowland/fb.git
cd fb/
gem build fb.gemspec


You will get something like this in terminal :
 Successfully built RubyGem
  Name: fb
  Version: 0.*.*
  File: fb-0.*.*.gem


Now is time to install it using the gem command

gem install fb-0.*.*.gem



Please read the README.
here is how i tested on my machine

Here is part of the example i ran on my pc

pico test.rb 


And here are the results for my ruby test
ruby test.rb 
ID: 0, Name: John 0
ID: 9, Name: John 9

What is next class ? RoR on Firebird

Monday, March 31, 2014

Compiling Linux Kernel Vanilla - Ubuntu/Debian way

Here is my guide on Compiling x.xx.x Vanilla Final - Ubuntu/Debian using the Debian way

This article is about compiling a kernel on Ubuntu systems. It describes how to build a custom kernel using the latest unmodified kernel sources from www.kernel.org (vanilla kernel) so that you are independent from the kernels supplied by your distribution.
Install the Required packages for building it
 
apt-get install git-core kernel-package fakeroot build-essential ncurses-dev
Then download latest kernel version
cd /usr/src
sudo su 
wget --continue http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.xx.x.tar.bz2
tar jxvf linux-*.*.*.tar.bz2
cd linux-*.*.*

$ cp /boot/config-`uname -r` ./.config
$ make menuconfig

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-vanillaice kernel_image kernel_headers
cd ..
dpkg -i linux-image-*.*.*
dpkg -i linux-headers-*.*.*
sudo shutdown -r now

you can install the headers too from /usr/src/linux-headers-3.*.*-*
in my case i can show you how the packages are named
ls *.deb
linux-image-*.*.*-vanillaice_4.4.*-vanillaice-10.00.Custom_amd64.deb
linux-headers-*.*.*-vanillaice_4.4.*-vanillaice-10.00.Custom_amd64.deb

I also created a python script http://github.com/mariuz/kernelcompile

that can be used like this
git clone https://mariuz@github.com/mariuz/kernelcompile.git
cd kernelcompile
sudo ./kernel-compile.py

Friday, March 14, 2014

php5 and firebird pdo on ubuntu / debian

The recommendd method is to use the official php5 source from ubuntu or debian and build only the pdo firebird extension and install it
sudo apt-get install php5-dev firebird2.5-dev php-pear devscripts debget

You need to build the pdo extension from php from ubuntu source code here is the source for php package (apt-get source will do the job for any release)
apt-get source php5
cd php5-*
cd ext/pdo_firebird
phpize
sudo ln -s /usr/include/php5 /usr/include/php
./configure
make
sudo make install 

Check to have in php.ini to have the next lines also with phpinfo() function

sudo pico/vi /etc/php5/conf.d/pdo.ini
# configuration for php PDO module
extension=pdo.so
extension=pdo_firebird.so


php -i | grep PDO
PDO
PDO support => enabled
PDO drivers => firebird
PDO_Firebird
PDO Driver for Firebird/InterBase => enabled

you can also check in apache if all is correct
by creating a page in /var/www/pdo_info.php
with this content



then in the browser press F3 and search PDO
to check if all is ok with the driver then create one small example that loads the driver and then is connecting to the database server



after the driver is loaded now you can use the pdo as usual , here is the fetch example

Tuesday, November 26, 2013

Realocated sector count is 1 , should i fear ?

yesterday my hdd started to fail  (bad blocks from reading files) and from the raw read error rates i was worried that is already dead but it seems that seagate  ST9500325AS drives they do high error rates also one sector can be corrected it seems using filesystem vodoo
The self tests are only done for 10% and then they stop
Seems that only in Linux you can force it to write to a corrupted sector and fix the issue

A nice tool to read the smart values in human format is gsmartcontrol.

sudo apt-get install gsmartcontrol



Tuesday, October 01, 2013

Django Firebird and pyinstaller notes

After installing pyinstaller in python 2.7.x

pip  install pyinstaller
c:\\python27\\scripts\\pyinstaller --version

You need Firebird client installed : run firebird installer

pip install django
pip install fdb
pip install django-firebird

my application is using django-postman and is named that way

c:\\python27\\scripts\\pyinstaller -d --name=django_postman manage.py

I had a issue with Cookie and django 1.5.x (ImportError: No module named Cookie )

ls -lah
dist/django_postman/django_postman.exe
-rwxrwxr-x 1 mariuz mariuz 2.9M Oct  1 13:28 dist/django_postman/django_postman.exe

There are some issues with ctypes dependency support in fdb

So i had to modify in drive_c/Python27/Lib/site-packages/fdb/ibase.py

these lines

    #fb_library_name = find_library('fbclient.dll')
    fb_library_name = 'C:\\windows\\system32\\fbclient.dll'
else:
    fb_library_name = find_library('fbclient')
if sys.platform in ['win32', 'cygwin', 'os2', 'os2emx']:
#    fb_library = WinDLL(fb_library_name)
    fb_library = WinDLL('fbclient.dll')


here is my manage.py config

Flask and pyinstaller notice

I have started to test flask and pyinstaller setup in wine/linux

first i needed to install flask with pip

wine cmd.exe
c:\\python27\\scripts\\pip install flask

then after i have created the hello world flask needs to be added in the --hidden-import at command line like this

c:\\python27\\scripts\\pyinstaller --hidden-import=flask --onefile -d -y hello.py


and you can start it with
dist\hello.exe
* Running on http://127.0.0.1:5000/


Then load in your browser :) The size of the single file binary
 
ls -lah hello.exe 
-rwxrwxr-x 1 mariuz mariuz 5.6M Oct  1 18:03 hello.exe

Thursday, September 26, 2013

Building Firebird Client for Android

Download and install ndk  unzip in your home
install firebird build dependencies

sudo apt-get build-dep firebird2.5

unzip ~/Downloads/android-ndk-r13-linux-x86_64.zip
export NDK=$HOME/android-ndk-r13d
echo $NDK

get the Firebird 3.0 source

http://web.firebirdsql.org/download/prerelease/source/Firebird-3.0.1.32609-0.tar.bz2
tar -jxvf Firebird-3.0.1.32609-0.tar.bz2

cd Firebird-3.0.1.32609-0


cp /usr/include/x86_64-linux-gnu/unicode/platform.h extern/icu/source/common/unicode
cp /usr/include/x86_64-linux-gnu/unicode/uvernum.h extern/icu/source/common/unicode

./autogen.sh --with-system-editline --enable-binreloc --with-cross-build=android.arme

after that the libfbclient.so is created for arm

cd gen/Release/firebird/lib
file libfbclient.so.3.0.0
libfbclient.so.3.0.0: ELF 32-bit LSB  shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, not stripped

You can download from here
http://mariuz.android-dev.ro/android_fbclient/libfbclient.so.3.0.0

Sunday, July 28, 2013

Install Android x86 4.3 on my eeepc with qemu

In fact is an re-install , i had 4.2 in dual boot with debian sid on my eeepc and i wanted to do an upgrade , the issue is that i don't have a usb stick to boot from it so i took another route

I have installed qemu and then downloaded the 4.3 iso from android x86 site and started this way to detect partitions on the main drive

qemu -boot d -cdrom android-x86-4.3-20130725.iso -hda /dev/sda

 format the partition already prepared in my case 15G /dev/sda4 also do not install grub if you want to modify it manually from debian partition


 After the install is finished you need to test it first that it works i mount /dev/sda4 to see the dir structure
mount /dev/sda4 /mnt
ls /mnt/
android-4.3-test  lost+found

so i have modified /etc/grub.d/40_custom this way
 menuentry "Android-x86 4.3" {
set root=(hd0,4) linux /android-4.3-test/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-4.3-test DATA= initrd /android-4.3-test/initrd.img
}

sudo update-grub2


 and restart choose the new android version

Friday, July 12, 2013

Install android x86 Jelly Bean on my eeepc with qemu

In fact is an reinstall , i had 2.3 ginger in dual boot with debian sid on my eeepc and i wanted to do an upgrade , the issue is that i don't have a usb stick to boot from it so i took another route

I have installed qemu and then downloaded the 4.2 iso from android x86 site and started this way to detect partitions on the main drive

qemu -boot d -cdrom android-x86-4.2-20130228.iso -hda /dev/sda

format the partition already prepared in my case 15G /dev/sda4 also do not install grub if you want to modify it manually from debian partition


After the install is finished you need to test it first that it works
i mount /dev/sda4 to see the dir structure

so i have modified
/etc/grub.d/40_custom
this way

menuentry "Android-x86 4.2" {
set root=(hd0,4)
linux /android-4.2-test/kernel quiet root=/dev/ram0 androidboot_hardware=eeepc acpi_sleep=s3_bios,s3_mode SRC=/android-4.2-test DATA=
initrd /android-4.2-test/initrd.img
}

sudo update-grub2

and restart 

Sunday, February 24, 2013

What to choose from fourth Firebird Architectures :SuperServer , Classic , SuperClassic or Embedded?

There are some papers around that explain what are the differences : SuperClassic Presentation from one of the main core developers http://www.slideshare.net/ibsurgeon/firebird-25-architecture-by-dmitry-yemanov-in-english
and the Classic vs SuperServer question in the Getting Started guide for Firebird 2.5.x

or another one that i like is this blog post with nice pictures of the three architectures: Super , Classic and SuperClassic http://www.sinatica.com/blog/en/index.php/articles/firebird-superserver-classicserver-or-superclassic

The fourth Architecture is Embedded and that is entire server contained into one dll on windows or so file on linux that can be used without a tcp/local connection and it will access your database file directly

http://www.firebirdsql.org/manual/ufb-cs-embedded.html

Thomas created a compact architecture comparison sheet, which is available here
http://www.iblogmanager.com/download/misc/articles/fb25_architecture_comparison.pdf

Wednesday, February 13, 2013

Adobe Photoshop 1.0 Source Code About 75% is in Pascal




You can read the full article on http://www.computerhistory.org/atchm/adobe-photoshop-source-code/

What i loved was the part about the Efficency and Productivity for Pascal Language , compare that with our days when you need large teams for large and ineficcient java EE projects







That first version of Photoshop was written primarily in Pascal for the Apple Macintosh, with some machine language for the underlying Motorola 68000 microprocessor where execution efficiency was important. It wasn’t the effort of a huge team. Thomas said, “For version 1, I was the only engineer, and for version 2, we had two engineers.”

With the permission of Adobe Systems Inc., the Computer History Museum is pleased to make available, for non-commercial use, the source code to the 1990 version 1.0.1 of Photoshop. All the code is here with the exception of the MacApp applications library that was licensed from Apple. There are 179 files in the zipped folder, comprising about 128,000 lines of mostly uncommented but well-structured code. By line count, about 75% of the code is in Pascal, about 15% is in 68000 assembler language, and the rest is data of various sorts. To download the code you must agree to the terms of the license.

Sunday, February 10, 2013

Lazarus Free Pascal IDE 1.0.14 Final release is available for download, Here is howto install it on #Ubuntu or #Debian

The Lazarus Free Pascal IDE team is glad to announce that Lazarus 1.0.14 is available for download on sourceforge net download area

Check your cpu if is x86-64/32

open console and type

uname -m
x86_64


That means you need 64 bit version that means AMD64 (x86-64 instruction set was invented by AMD and this is why is called this way but all you need to know is AMD64=INTEL64=x64=x86_64 and even if is named that way it will work on all x64 cpus : INTEL, AMD, VIA)

Go to the sourceforge download page
Choose Lazarus Linux amd64 DEB then Lazarus 1.0.14

From that dir you need to install in order :fpc , fpc-src and lazarus

if
uname -m
i686

that means 32 bit version i386 again for all CPUS  INTEL, AMD, VIA


Choose Lazarus Linux i386 DEB then Lazarus 1.0.14
From that dir you need to install in order :fpc , fpc-src and lazarus



ps:why is called i386?

because i386 was the first x86-32 cpu  also this is how debian calls the 32bit port

If you are using fpc deb from lazarus download area on debian or ubuntu and want to pin it from upgrades here is how : 

echo fpc hold  | sudo dpkg --set-selections






Tuesday, January 22, 2013

One way to Scale UP Firebird :put you Database on memory virtual disk or ramfs


There is a new ec2 type of instance with huge memory option : 244G
http://aws.typepad.com/aws/2013/01/ec2-for-in-memory-computing-the-high-memory-cluster-eight-extra-large.html

How this can help you with scaling Firebird ?

There are the cache and memory settings For Firebird but is better to put the main full database on the fastest storage and that is RAM for the moment


On linux i can mount a partition in memory (Install ubuntu/debian)

sudo mkdir /mnt/ram
sudo mount -t ramfs -o size=200G ramfs /mnt/ram
mount to show you the partitions mounted

and then move your database into the ram partition

cp -rp /var/lib/firebird/2.5/data/slowdb.fdb /mnt/ram/fast.db


What about D from the ACID ?

In Firebird we have a nifty feature called Shadow that creates a life snapshots of the active database (Think of it as Replication in real time) so you can activate it and keep a safe database on the SSD/HDD

http://ibexpert.net/ibe/index.php?n=Doc.DatabaseShadow




That large instance could help you with the Firebird cache settings also the extra SSD could do wonders
Inspired by the stack overflow big fat server architecture for the SQL

http://highscalability.com/blog/2009/8/5/stack-overflow-architecture.html



Saturday, January 19, 2013

Debian is used by 32.8% of all the websites who use Linux on January and growing

Debian is used by 32.8% of all the websites who use Linux on January w3techs stats report and growing . RedHat Linux is going bellow 10% ,I f you still deploy Redhat and CentOS on servers think twice they are on he death spiral on the server side usage


Saturday, December 08, 2012

This is why recommend Debian instead of Ubuntu




Ubuntu provides specific repositories of nonfree software, and Canonical expressly promotes and recommends nonfree software under the Ubuntu name in some of their distribution channels. Ubuntu offers the option to install only free packages, which means it also offers the option to install nonfree packages too. In addition, the version of Linux, the kernel, included in Ubuntu contains firmware blobs.


Ubuntu's trademark policy prohibits commercial redistribution of exact copies of Ubuntu, denying an important freedom.


As of October 2012, Ubuntu sends personal data about users' searches to a server belonging to Canonical, which sends back ads to buy things from Amazon. This does not, strictly speaking, affect whether Ubuntu is free software, but it is a violation of users' privacy. It also encourages buying from Amazon, a company associated with DRM as well as mistreatment of workers, authors and publishers.


This adware is one of the rare occasions in which a free software developer persists in keeping a malicious feature in its version of a program.

Sunday, November 18, 2012

My first successfull LibreOffice build 4.0

This is my first successfull LibO build from source  on my Debian sid laptop (it took a while to get all set and waiting for the copile to finish)

After all finished i started it

with make dev-install

/home/mariuz/work/libo/solver/unxlngx6.pro/installation/opt/program/soffice &




Thursday, November 15, 2012

Firebird 2.5.2 stable for all Ubuntu releases is uploaded into ppa



I recommend Ubuntu 12.04 LTS or 14.04 LTS
http://www.firebirdnews.org/?p=7981

The other are builded OK but with some modifications to the Debian scripts

I give some examples of modifications for Lucid and Hardy in the

debian scripts area
http://jimicompot.blogspot.ro/2012/11/firebird-252-for-ubuntu-lucid-is.html

http://jimicompot.blogspot.ro/2012/11/firebird-252-on-ubuntu-hardy.html

Hardy it will be EOL soon in April so for the next Firebird release it

will be skipped

(it doesn't support the quilt 3.0 format and and is hardest to build for )

The older the Distro the harder it it is to build the software for it .

Sunday, November 11, 2012

Lazarus FreePascal IDE on Raspberry PI

I have installed the version from debian respository

sudo apt-get install lazarus-ide fpc


The install and developing process is the same like on any Debian machine
I have started the ide over the ssh

ssh -X pi@192.168.1.104
lazarus-ide



I have the Firebird components i can start doing Database apps like on any desktop






Using Lazarus IDE with Firebird in Ubuntu and Debian

Install the ide
sudo apt-get install lazarus-ide
Start the ide from the console/terminal

 lazarus-ide &
If everything went well you'll see a new tab called SQLdb. This tab will contain two components a TSQLConnection and a TSQLQuery.








SQLdb tab also contains a component TIBConnection that you can place it on the form


We will connect to /var/lib/firebird/2.5/data/employee.fdb
On the form put an TIBConnection, TSQLTransaction,TSQLQuery,TDatasource and an TDBGrid









TIBConnection is configured to have DatabaseName=/var/lib/firebird/2.5/data/employee.fdb
Password=masterkey
Username=sysdba
and Transaction=SQLTransaction1
You can put it to be Connected = True




Then configure SQLTransaction1
to use

Database=IBConnection1
Active =True;




Configure TSQLQuery this way

Database:IBConnection1
SQL=select * from employee;
Active = True;








Configure TDatasource
DataSet=SQLQuery1



Configure TDBGrid

DataSource = DataSource1




Next you can put an button and make them active from run time


procedure TForm1.Button1Click(Sender: TObject);
begin
SQLQuery1.Active:=true;
end;