28-01-2008 20:32
Zanim postanie pierwsza linia kodu...
W działach: Informatyka | Odsłony: 6
Skoro niektórzy czytają o moich zmaganiach z komputerami to tym razem coś dla nich...
Praca programisty nie jest usłana różami. Nie licz na to, że ktoś Ci skonfiguruje stanowisko pracy. Musisz zrobić sobie to sam. W moim wypadku wymagania wyglądają następująco: biblioteka qt, biblioteka libxml++, jakieś środowisko dla C++ i baza danych Oracle. Skonfigurowanie tej ostatniej wcale do najsympatyczniejszych nie należy. Czemu? Ano bo jak się okazuje...
Używam (w pracy) Debian 4.0 etch. Standardowy kompilator to gcc serii 3. Wymagany przez większość naszych bibliotek. I tu pojawia się "ale". Klient Oracle, który zapewnia nam komunikację z bazą danych (oracle-xe-client_10.2.0.1-1.0_i386.deb) został skompilowany kompilatorem serii 2. Co z tego? Ano przy kompilacji projektu dostajesz komunikat o konflikcie odowołań do bibliotek.
Jest na to rada, o ile dobrze się poszuka w Internecie, a konkretnie na stronie Oracle. Podmienia się bibliotekę (jeden plik, wyszarpnięty z occi_gcc343.tar) na wersję skompilowaną nowszym kompilatorem.
Tylko tyle? No nie. Jeśli chcecie pisać programy z wykorzystaniem tych bibliotek i klienta pod linuxem, to trzeba jeszcze dopisać plik konfiguracyjny do łączenia z bazą (tnsnames.ora) i poinformować system o nowej bibliotece:
- dodajemy ścieżkę do bibliotek w pliku /etc/ld.so.conf
- wykonujemy ldconfig
Oczywiście myślisz sobie, że przecież to proste...
Do pełnego przygotowania środowiska pracy muszę sobie jeszcze skonfigurować svn, do zarządzania wersjami plików projektu. Byłoby fajnie, gdyby nie to, że ten jest kapryśny jeśli chodzi o kodowanie znaków.
Dochodzi ustawienie w systemie kilku ścieżek do odpowiednich katalogów i skompilowanie pluginów dla Qt.
Razem jest to około 4 do 8 godzin (wraz z instalacją systemu) roboty informatyka. Informatyka, a nie programisty. Bazą oczywiście zajmują się bazodanowcy. Tyle tylko, że jeśli potrzebujesz bazę testową zaczynają się schody. Ze względów formalnych prościej jest postawić ją sobie samemu i samemu nią administrować. Kolejne kilka godzin, przez które zamiast klepać kod, bawisz się z czymś co nie jest Twoją specjalnością. W ten oto sposób stałem się właścicielem bazy danych Oracle.
Instalacja serwera Oracle nie jest wcale przyjemniejsza niż klienta. Drobny błąd w konfiguracji i serwer się nie odpala dając tak odjechane komunikaty, że rozgryzienie problemu zajęło mi ok. 4 godzin. Jakby tego było mało dochodzi polityka bezpieczeństwa. Serwer w podstawowej wersji jest tak miły, że puszcza tylko klientów z komputera lokalnego. Można to zmienić, ale jest lepsza metoda.
Tunelujemy ssh. Wystarczy mieć tylko konto na komputerze z bazą danych.
ssh -l zuhar -p 22 -f -C -L 1520:127.0.0.1:1521 xxx.xxx.xxx.xxx sleep 10800
Powyższa komenda umożliwi przesył danych zaszyfrowanych (ssh), jeśli wyślemy je na port 1520 lokalnego komputera. Poprzez tunel dotrą one na adres 127.0.0.1:1521 z komputera, na który się logujemy ([email protected]). Nie trudno się domyśleć, że tunelowanie może mieć szersze zastosowanie.
Nie wspomniałem, że chcąc popracować w domu (umówmy się, że chcę - dobrze?) muszę łączyć się przez VPN do sieci lokalnej przy użyciu certyfkatu. Normalnie wygenerowanie certyfikatu i jego użycie (wliczam konfigurację) to około kwadransa. Ja swój uzyskałem po 4 dniach roboczych. "Drobne" problemy z oprogramowaniem do wystawiania certyfikatów.
Zapomniałem o konieczności kompilacji większości oprogramowania pomocniczego? Choćby TOra. Standardowa wersja z repozytorium nie obsługuje Oracle.
I tu wielkie podziękowania dla kolegów z pracy. Jeśli mieli już z czymś do czynienia, to albo dadzą Ci gotowe rozwiązanie (rzadziej), albo wskażą kierunek poszukiwań (częściej).
A potem przychodzi pora na programowanie...
W następnych odcinkach...
- mój ulubiony błąd...
- IE6 pod linuksem i błąd OLE 80004001
Praca programisty nie jest usłana różami. Nie licz na to, że ktoś Ci skonfiguruje stanowisko pracy. Musisz zrobić sobie to sam. W moim wypadku wymagania wyglądają następująco: biblioteka qt, biblioteka libxml++, jakieś środowisko dla C++ i baza danych Oracle. Skonfigurowanie tej ostatniej wcale do najsympatyczniejszych nie należy. Czemu? Ano bo jak się okazuje...
Używam (w pracy) Debian 4.0 etch. Standardowy kompilator to gcc serii 3. Wymagany przez większość naszych bibliotek. I tu pojawia się "ale". Klient Oracle, który zapewnia nam komunikację z bazą danych (oracle-xe-client_10.2.0.1-1.0_i386.deb) został skompilowany kompilatorem serii 2. Co z tego? Ano przy kompilacji projektu dostajesz komunikat o konflikcie odowołań do bibliotek.
Jest na to rada, o ile dobrze się poszuka w Internecie, a konkretnie na stronie Oracle. Podmienia się bibliotekę (jeden plik, wyszarpnięty z occi_gcc343.tar) na wersję skompilowaną nowszym kompilatorem.
Tylko tyle? No nie. Jeśli chcecie pisać programy z wykorzystaniem tych bibliotek i klienta pod linuxem, to trzeba jeszcze dopisać plik konfiguracyjny do łączenia z bazą (tnsnames.ora) i poinformować system o nowej bibliotece:
- dodajemy ścieżkę do bibliotek w pliku /etc/ld.so.conf
- wykonujemy ldconfig
Oczywiście myślisz sobie, że przecież to proste...
Do pełnego przygotowania środowiska pracy muszę sobie jeszcze skonfigurować svn, do zarządzania wersjami plików projektu. Byłoby fajnie, gdyby nie to, że ten jest kapryśny jeśli chodzi o kodowanie znaków.
Dochodzi ustawienie w systemie kilku ścieżek do odpowiednich katalogów i skompilowanie pluginów dla Qt.
Razem jest to około 4 do 8 godzin (wraz z instalacją systemu) roboty informatyka. Informatyka, a nie programisty. Bazą oczywiście zajmują się bazodanowcy. Tyle tylko, że jeśli potrzebujesz bazę testową zaczynają się schody. Ze względów formalnych prościej jest postawić ją sobie samemu i samemu nią administrować. Kolejne kilka godzin, przez które zamiast klepać kod, bawisz się z czymś co nie jest Twoją specjalnością. W ten oto sposób stałem się właścicielem bazy danych Oracle.
Instalacja serwera Oracle nie jest wcale przyjemniejsza niż klienta. Drobny błąd w konfiguracji i serwer się nie odpala dając tak odjechane komunikaty, że rozgryzienie problemu zajęło mi ok. 4 godzin. Jakby tego było mało dochodzi polityka bezpieczeństwa. Serwer w podstawowej wersji jest tak miły, że puszcza tylko klientów z komputera lokalnego. Można to zmienić, ale jest lepsza metoda.
Tunelujemy ssh. Wystarczy mieć tylko konto na komputerze z bazą danych.
ssh -l zuhar -p 22 -f -C -L 1520:127.0.0.1:1521 xxx.xxx.xxx.xxx sleep 10800
Powyższa komenda umożliwi przesył danych zaszyfrowanych (ssh), jeśli wyślemy je na port 1520 lokalnego komputera. Poprzez tunel dotrą one na adres 127.0.0.1:1521 z komputera, na który się logujemy ([email protected]). Nie trudno się domyśleć, że tunelowanie może mieć szersze zastosowanie.
Nie wspomniałem, że chcąc popracować w domu (umówmy się, że chcę - dobrze?) muszę łączyć się przez VPN do sieci lokalnej przy użyciu certyfkatu. Normalnie wygenerowanie certyfikatu i jego użycie (wliczam konfigurację) to około kwadransa. Ja swój uzyskałem po 4 dniach roboczych. "Drobne" problemy z oprogramowaniem do wystawiania certyfikatów.
Zapomniałem o konieczności kompilacji większości oprogramowania pomocniczego? Choćby TOra. Standardowa wersja z repozytorium nie obsługuje Oracle.
I tu wielkie podziękowania dla kolegów z pracy. Jeśli mieli już z czymś do czynienia, to albo dadzą Ci gotowe rozwiązanie (rzadziej), albo wskażą kierunek poszukiwań (częściej).
A potem przychodzi pora na programowanie...
W następnych odcinkach...
- mój ulubiony błąd...
- IE6 pod linuksem i błąd OLE 80004001