Vakantie kiekjes

Twee weken Terschelling leveren een wereld aan foto’s op. Daar moest ik dus snel even ‘iets’ mee doen. Een snel in elkaar geflansd fotocollage script met twee imagemagick tools: Convert en montage:

#!/bin/sh

_tmpdir=tmp$$
_collagedir=collage$$

_img_resize=50x50
_tile=7x7

mkdir ${_tmpdir}
mkdir ${_collagedir}

for f in `ls *.[jJ][pP][gG]`
do
convert $f -resize "${_img_resize}^^" -gravity center -crop ${_img_resize}+0+0 +repage ${_tmpdir}/coll_$$_$f.png
done

montage ${_tmpdir}/coll_$$_*.png -geometry ${_img_resize}+0+0 -tile ${_tile} ${_collagedir}/collage_$$.png

Om een hier toonbaar resultaat te krijgen heb ik 49 foto’s gebruikt, die in een raster van 7 bij 7 laten zetten. Uit alle foto’s is een vierkante uitsnede gemaakt, welke is verkleind tot 50×50 pixels:

Oh ja de foto’s komen van 3 verschillende toestellen. 1 slaat foto’s op met extentie JPG ander als jpg, daarom ls *.[jJ][pP][gG] als simpel regulier expressie.

Oracle 10 XE install on OpenSuse 11.3

xxodd:/home/knilluz/Downloads # rpm -Uvh oracle-xe-10.2.0.1-1.0.i386.rpm
Preparing...                ########################################### [100%]
   1:oracle-xe              ########################################### [100%]
Executing Post-install steps...
insserv: warning: script 'oracle-xe' missing LSB tags and overrides
insserv: Default-Start undefined, assuming default start runlevel(s) for script `oracle-xe'
oracle-xe                 0:off  1:off  2:off  3:on   4:off  5:on   6:off
You must run '/etc/init.d/oracle-xe configure' as the root user to
configure the database.

The warning about the LSB is a worrying one. It seem that LSB the (Linux Standard Base) implementation in the newest version (11.3) of OpenSuse is more strict.

I found the solution in the opensuse forum .

[…] as of this new opensuse release, LSB implementation is stricter and thus does not run oracle’s post install script.
Particularly, the problem is with oracle password.
The simplest work around i found is
0- su % to login as root
1- install the RPM
2- su
3- passwd oracle % to change oracle password, choose any pwd you’d like
4- exit % return as root
5- /etc/init.d/oracle-xe configure % to configure xe db

[…]

So I uninstalled  and then reinstalled Oracle-Xe and then Done this:

xxodd:/home/knilluz/Downloads # passwd oracle
Changing password for oracle.
New Password:
Bad password: too simple
Reenter New Password:
Password changed.
xxodd:/home/knilluz/Downloads # cd /etc/init.d
xxodd:/etc/init.d # ./oracle-xe configure
Oracle Database 10g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 10g Express
Edition.  The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts.  Press <Enter> to accept the defaults.
Ctrl-C will abort.
Specify the HTTP port that will be used for Oracle Application Express [8080]:
Specify a port that will be used for the database listener [1521]:
Specify a password to be used for database accounts.  Note that the same
password will be used for SYS and SYSTEM.  Oracle recommends the use of
different passwords for each database account.  This can be done after
initial configuration:
Confirm the password:
Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y
Starting Oracle Net Listener...Done
Configuring Database...Done
Starting Oracle Database 10g Express Edition Instance...Done
Installation Completed Successfully.
To access the Database Home Page go to "http://127.0.0.1:8080/apex"
xxodd:/etc/init.d #

and it works.

ssh-keygen (wachtwoordloos ssh-en)

Stel, ik ben op computer hier en wil een bestand copieren met scp of sftp naar computer daar. En dat heel vaak en ook nog es in een cronjob of een andere ‘unattended’ verwerkingsmechanisme. Dan zijn wachtwoorden alleen maar onhandig. En zeker wachtwoorden welke interactief (dus niet in de commandstring) moeten worden ingegeven (ik stel me hier nu inenen een cronjob voor die om 2 uur ‘s nachts bestanden verstuurd en gaat wachten op een wachtwoord). Daarvoor heeft men voor ssh het sleutelconcept ingevoerd. Hier beschrijf ik in het kort hoe deze sleutels aangemaakt moeten worden en verwerkt op servers hier en daar.

De sleuteloverdracht.

1. hier – tik in ssh-keygen. Komen een aantal vragen, allemaal met standaard antwoord laten gaan (dus enter enter enter … ).
D’r worden 2 bestanden aangemaakt, zie de vet gedrukte zinnen.

knilluz@hier:~> ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/knilluz/.ssh/id_rsa):
Created directory '/home/knilluz/.ssh'.
Enter passphrase (empty for no passphrase):  <-- leeg laten
Enter same passphrase again:  <-- lijkt me logisch
Your identification has been saved in /home/knilluz/.ssh/id_rsa.
Your public key has been saved in /home/knilluz/.ssh/id_rsa.pub.

The key fingerprint is:
6c:48:4e:17:8d:33:48:06:51:ba:a1:aa:e9:82:77:44 knilluz@xxodd
The key's randomart image is:
+--[ RSA 2048]----+
|    o=+..o       |
|     o. +..      |
|    o o .o       |
|   .E* +         |
|  ... o S        |
| .  .  .         |
|o  .             |
|+.. .            |
|=o .             |
+-----------------+

2. copier het publieke bestand van hier naar daar, met bijvoorbeeld scp

knilluz@hier:~/.ssh> scp ~/.ssh/id_rsa.pub user@daar:.ssh/id_rsa_hier.pub
user@daar's password:
id_rsa.pub                                    100%  395     0.4KB/s   00:00

3. log nu met ssh in op de server daar en append  het net gecopieerde bestand in authorized_keys

knilluz@hier:~> ssh user@daar

[user@daar ~]$ cd .ssh

[user@daar .ssh]$ ls -ltr
-rw-r--r-- 1 user users 395 Sep 11 00:16 id_rsa_hier.pub
-rw-r--r-- 1 user users 793 Sep 11 00:17 authorized_keys

[user@daar .ssh]$ cat id_rsa_hier.pub >> authorized_keys

4. klaar. veul plezier met  ssh / sftp /scp…

oracle apex met fop

En zo was daar weer een verzoek:

Zou jij misschien voor pdf genereren de apache FOP server kunnen installeren.

Zie hiervoor deze link:
De eerste link waar het mee begon: http://carlback.blogspot.com/2007/03/apex-cocoon-pdf-and-more.html

Uiteraard ontstond er een groot vraagteken boven mij, want ik ga uiteraard niet zomaar op een server iets installeren. Want stel je voor zeg. 🙂 Heb maar wat tekst en uitleg gevraagd wat de bedoeling precies was. Het blijkt dus dat als je pdf rapportjes wil genereren vanuit APEX (oracle), dat je dan 3 methoden kunt gebruiken. Twee daarvan zijn commerciele (en dus schreeuwend dure) producten en en derde is de methode middel Apache objecten, aangestuurd via java.

Ik zal vanavond maar eens (of nee morgenavond vandaag  ben ik jarig) dit gaan uitzoeken. Alvast wat linkjes bij elkaargescharreld: APEX + Cocoon = PDF (and more). Waarbij ik volgens mij het volgende moet uitvoeren op onze Ubuntu server
Installing Cocoon on Ubuntu , maar dan wel eerst dit doen (maar dat werkt ook niet in 1 keer)….. ik heb daarvoor maar “deb http://archive.canonical.com/ lucid partner” toegvoegd aan /etc/apt/sources.list.d/java.list:

sudo echo “deb http://archive.canonical.com/ lucid partner” > /etc/apt/sources.list.d/java.list

sudo apt-get update

sudo apt-get install sun-java6-jdk

maven download en install (klik)

wget http://apache.mirror.versatel.nl/maven/binaries/apache-maven-2.2.1-bin.tar.bz2 (in de home dir)

tar -jxvf apache-maven-2.2.1-bin.tar.bz2

Nu is er in de home dir een nieuwe dir aangemaakt apache-maven-2.2.1

copieer deze in zijn geheel naar /usr/local/

sudo mv apache-maven-2.2.1 /usr/local/apache-maven

Vervolgens eentje om niet te vergeten (enviroment variabelen zetten op boot tijd). Dit is vooral belangrijk als het JanHagel (in de zin van canaille) de server weer gaat rebooten. Het gaat hierbij om de M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1 en de M2=$M2_HOME/bin en daarna dit aan het pad toevoegen PATH=$M2:$PATH. (dat van die bin dat mist in het installatiedocument, die had ik zelf maar even erbij verzonnen).

export  M2_HOME=/usr/local/apache-maven/apache-maven-2.2.1

export M2=$M2_HOME/bin

export PATH=$M2:$PATH

Vervolgens heb ik stap 3 van dit document uitgevoerd. Daar wordt gesproken over iets in ~/cocoon$ maar dat moet zijn (tenminste op onze servert) ~/cocoon/cocoon/$

En niet vergeten. Datapump backup scripten.