Java, Python i Linux: Zapiski programisty

SAAS Oprogramowanie jako usługa
autor: Sławek Tuleja

Fedora na razie w odstawkę

Fedora 15 vs Mint 12


Stało się. Po pięciu miesiącach używania Fedory – zainstalowałem Mint12 (lisa). Dlaczego? Pojawiło się kilka niedogodności przy pracy z Fedorą.

  1. Brak paska na górze lub dole ekranu z aktualnie otwartymi oknami. Ciągłe uruchamianie skrótu (Alt+F1), wciskanie WindowKey lub przeciąganie myszką w prawy, górny ekran jest uciążliwe w czasie kilkugodzinnej pracy. Zresztą, odnajdywanie konkretnego okienka w widoku Activities za każdym razem wymaga wytężenia wzroku. Na forum.fedora.pl dowiedziałem się, że można doinstalować taki pasek – jednak wyglada on, powiedzmy – tak sobie.

    gnome-shell-frippery (pakietu nie znalazłem w repozytorium)
    
  2. Brak ciągłego powiadomienia otrzymanej wiadomość z komunikatora lub z Thunderbirda. Notorycznie zdarzało się, że odchodząc od komputera ktoś do mnie napisał, a ja wiadomość zauważyłem po dłuższej chwili, najeżdżając myszką w prawy, dolny róg ekranu. Wystarczyłaby jedna, zielona kropeczka. [Fedora 16 ma możliwość skonfigurowania powiadomień.]

  3. Nie działa: ‘Send to’ w menu kontekstowym w przypadku, gdy głównym klientem poczty elektronicznej jest Thunderbird a nie Evolution.

Czas na instalację nowego systemu


Instalacja Mint’a 12 nie przeszła bez komplikacji. Po 30 minutach poszukiwań w internecie dowiedziałem się, że w moim przypadku przed uruchomieniem instalatora muszę dopisać parametr: acpi=off, bez tego parametru instalacja kończy się po 10 sekundach - na słowie READY.

Plusy

  1. WiFi działa od ręki.
  2. System prezentuje się bardzo okazale.
  3. Jest ciągłe powiadomienie otrzymanej wiadomości.
  4. Komenda ‘Send to’ w menu kontekstowym działa jak powinna.
  5. Jest pasek z otwartymi oknami - na dole ekranu.

Trochę dodatkowej konfiguracji

  1. Brak maven’a 3 w oficjalnym repozytorium

    sudo add-apt-repository ppa:natecarlson/maven3
    sudo apt-get update
    sudo apt-get install maven3
    
  2. Oczywiście, trzeba sobie samemu zainstalować Java Sun JDK – jest w repozytorium.

    sudo apt-get install sun-java6-jdk sun-java6-jre
    sudo apt-get install sun-java6-source
    
  3. Przy wyłączaniu komputera korzystam z komendy: poweroff, która w Mint 12 jest domyślnie przypisana wyłącznie root’owi, więc trzeba wykonać:

    sudo chmod u+s /sbin/poweroff
    
  4. Korzystam z Emacs’a ustawionego jako daemon, więc musiałem dodać do menu pozycje EmacsClient

    EMACS DAEMON

    [Aplikacja do uruchamiania programów startowych]
    gnome-session-properties
    command: emacs --daemon --no-window-system
    

    EMACS CLIENT

    [Aplikacja do zmiany menu]
    sudo apt-get install alacarte
    command: /usr/bin/emacsclient -c
    
  5. Pobieranie aktualizacji zainstalowanych programów niestety nie działa na zasadzie różnic pomiędzy tym co mamy, a tym co pojawiło się w repozytorium. Z tej przyczyny za każdym razem pobieramy z repozytorium pełen pakiet zamiast różnicy w pakietach jak to ma miejsce w Fedorze.

Jak zainstalować bazę Oracle pod Fedorą 15 (32 bit)

Fedora 15 i baza Oracle 10g Express Edition


  1. Należy zaciągać bazę ze strony oracle.com w formie paczki .rpm (oracle-xe-univ-10.x.x.x-x.x.i386.rpm) i zainstalować:

    sudo rpm -vhi oracle-xe-univ-10.x.x.x-x.x.i386.rpm
    
    jeżeli poleci błąd:
    /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory
    /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory
    /proc/sys/net/bridge/bridge-nf-call-arptables: No such file or directory
    error: %pre(oracle-xe-univ-10.2.0.1-1.0.i386) scriptlet failed, exit status 255
    error: oracle-xe-univ-10.2.0.1-1.0.i386: install failed
    
    należy jeszcze raz wykonać polecenie:
    sudo rpm -vhi oracle-xe-univ-10.x.x.x-x.x.i386.rpm
    
  2. Konfiguracja bazy

    sudo /etc/init.d/oracle-xe configure
    
    - na jakim porcie ma działać Application Express, port [8080] domyślny
    - port na którym nasłuchuje baza danych, port [1521] domyślny
    - hasło dla SYS i SYSTEM
    - czy chcesz, aby baza danych wystartowała
      przy każdym uruchomieniu systemu operacyjnego?, [tak] domyślnie
    
  3. Start bazy

    sudo /etc/init.d/oracle-xe start
    
  4. Aktualny status bazy

    sudo /etc/init.d/oracle-xe status
    
  5. Przechodzimy na stronę: http://localhost:8080/apex lub http://127.0.0.1:8080/apex

    Unable to connect
    

    Jeżeli przydarzy się ten błąd być może problem jest w ustawieniach firewall’a.

    Uruchom:

    sudo system-config-firewall
    dodaj nowy port 8080 dla protokołu tcp
    

    Ponownie wejdź na http://127.0.0.1:8080/apex (login: system, hasło: hasło ustalone przy konfiguracji bazy)

  6. Po ponownym uruchomieniu komputera, jeżeli nie wybrałeś ‘włącz bazę przy uruchomieniu systemu operacyjnego’ należy wykonać:

    sudo /etc/init.d/oracle-xe force-reload
    

Dlaczego nie NetBeans

Dla programisty, który tworzy aplikacje internetowe ważne jest, aby środowisko programistyczne (IDE) w którym pracuje wspierało oprócz głównego języka (java, python, ruby) - języki: js, html, css przynajmniej w taki sposób, aby nie skakać po plikach, żeby przypomnieć sobie czy taka - owaka klasa, metoda istnieje.

Niestety już myślałem, że NetBeans 7 daje radę - ale dalej nie da się na tym pracować.

1) Na przykład w pliku js jest:

var Do = {
    validation:{
        showMarkIfEmpty:function (pSelector, pMark) {
            ...
        },
        clearElement:function (pSelector) {
            ...
        }
    }
}

Okno nawigatora NetBeans 7 nie widzi funkcji: showMarkIfEmpty(), clearElement(), a jest jeszcze gorzej! W tym samym lub w innych plikach js nie działa uzupełnianie o te funkcje.

2) Szkoda, że w plikach html nie ma uzupełniania tagu: class jak to ma miejsce w Idea’i.

<div class="menu p(wciskam ctrl+space i otrzymuję wszystkie klasy
rozpoczynające się na literę 'p' )"></div>

3) Żeby do końca nie narzekać na NetBeans wymieniam jeszcze plusy tego IDE

  • svn działa od razu po instalacji NetBeans, nie ma nawet kłopotów z połączeniem z repozytorium po ssh i z udziałem certyfikatu p12 + hasła
  • klikając na klasę w tagu htmlowym przenosimy się do pliku css w którym jest definicja tej klasy

4) Eclipse w dalszym ciągu nie radzi sobie z svn’em, tzn. po instalacji pluginu, wywala błąd i jesteśmy odsyłani na stronę z opisem problemu. Przysiągłem sobie, że ponownie sprawdzę jak pisze się pod Eclipse, ale dopiero kiedy ten plugin zadziała od razu - tak jak to ma miejsce pod NetBeans i Ideą. Na razie, bye Eclipse.

5) Cóż, pozostaje nadal bardzo dobra, płatna i bezkonkurencyjna Idea.

Texlive: I can’t find file ‘ptmr7t’

2011-09-12

Podczas korzystania z programu: pdflatex może pojawić się błąd:

I can’t find file ‘ptmr7f’.

Jak temu zapobiec?
Należy doinstalować paczkę: texlive-collection-fontsrecommended

 sudo yum install texlive-collection-fontsrecommended 

Pamiętaj, Java to twoja przyjaciółka!

Ubuntu 10.8 versus Fedora 15

2011-08-01

Podczas pracy przy dużym projekcie napisanym w języku Java, Ubuntu 10.8 co jakiś czas wysyłało do mnie komunikat: “Fatal error” z biblioteki libjvm.so*. Problem był nie do zniesienia. Pomyślałem, że może to być wina samego Ubuntu - poprzednio były kłopoty z połączeniem z repozytorium SVN przy wykorzystaniu certyfikatu PKCS12**.

Rozpocząłem poszukiwanie nowej dystrybucji z przeznaczeniem dla leniwego programisty, który nie ma ochoty i czasu na nadmierne zabawy ‘bebechami’ systemu. Padło na dystrybucję - Fedora 15.

Fedora 15 wygląda bardzo dobrze, korzysta jako jedna z pierwszych dystrybucji z gnome-shell 3. Sam proces instalacji nie wymaga komentarza - jest prosty i wygodny. Program instalacyjny uruchomiłem na moim laptopie Dell XPS 1530. Problemy pojawiły się jak zwykle później. Ubuntu przyzwyczaiło mnie chyba do zbytniej wygody.

Minusy:

  1. WiFi - koszmar, po 2 godzinach przeszukiwania sieci udało się zainstalować, w Ubuntu nie ma tego problemu - działa od razu.
  2. JAVA_HOME - trzeba sobie ustawić samemu.
  3. Co pewien czas pojawiają się komunikaty błędów, różnych np. z SELinux (już nie zgłaszam raportów - nie chce mi się).

Plusy:

  1. Yum jest naprawdę fajny np. to: sudo yum history undo <ID>
  2. Zastosowanie ‘gnome-shell 3’ było dobrym posunięciem, w Ubuntu 11.4 jest ‘unity’ i nie wszystkim to odpowiada. Ja lubię obsługę systemu za pomocą klawiatury.
  3. Nie ma problemów z Javą. Pod Ubuntu okienka programów napisanych w Javie nie wyświetlały się (trzeba było rozciągnąć okienko, żeby zobaczyć zawartość - mam kartę GForce Nvidia).

Jestem zadowolony z tej dystrybucji, chociaż przez pierwsze godziny po instalacji kląłem jak szewc. Pojawiło się również kilka innych problemów o których nie wspominam bo wynikały wyłącznie z mojej niewiedzy.

  * Okazało się, że był to problem z pamięcią. 
** Aby pozbyć się komunikatu: Handshake failed w Ubuntu 10.8 należy wykonać:

sudo apt-get install libneon27
sudo rm /usr/lib/libneon-gnutls.so.27
sudo ln -s /usr/lib/libneon.so.27 /usr/lib/libneon-gnutls.so.27