Tworzenie prezentacji przy użyciu LaTeX cz. 1: konfiguracja środowiska

Ostatnio stanęło przede mną takie zadanie: przygotowanie materiałów na szkolenie, które będę się składały z takich elementów jak:

  • slajdy, wg których będzie prowadzony wykład
  • podręcznik – będzie on zawierał prezentacją wraz z dodatkowymi informacjami znajdującymi się pod nimi oraz różne dodatkowe materiały (takie jak ćwiczenia, dodatkowe informacje)

Zrobienie prezentacji nie sprawia wiele problemów, istnieje wiele narzędzi które radzą sobie z tym całkiem dobrze (czyli OpenOffice Presentation, MS PowerPoint, Google Presentation). Problem jednak pojawia się, gdy chcemy rozszerzyć prezentację o dodatkowe elementy. W każdym z tych narzędzi istnieje możliwość robienia notatek, ale problemy się pojawiają gdy chcemy użyć bardziej skomplikowanego formatowania, wstawić obrazek czy też opis wraz ze slajdem przestaje się mieścić na jednej stronie.

Można oczywiście oddzielnie utrzymywać prezentację oraz podręcznik, ale nie jest to wygodne i zwiększa ilość pracy potrzebnej do utrzymania aktualności materiałów. Nie znalazłem żadnego rozwiązania opartego o aplikację do prezentacji lub też procesor tekstu pozwalającego na jednoczesne tworzenie prezentacji i towarzyszących materiałów.

Na szczęście przypomniałem sobie o czymś takim jak LaTeX :). I tutaj rozwiązanie pojawiło się od razu: LaTeX plus biblioteka Beamer – pozwala na zrobienie dokładnie tego, co chciałbym uzyskać. Oczywiście, pozostaje jeszcze jeden detal: nauczyć się LaTeXa.

W paru kolejnych wpisach przedstawię, w jaki sposób można utworzyć prezentację wraz z dodatkowymi materiałami przy użyciu tych narzędzi. Proszę jednak pamiętać o kilku sprawach:

  • jest to moje pierwsze spotkanie ze światem TeXa
  • będę się koncentrował tyko na wybranym celu: utworzeniu prezentacji
  • jeżeli także nie widziałeś TeXa czy LaTeXa na oczy wcześniej, przejrzyj kilka tutoriali na ten temat, na pewno ułatwią dalszą pracę

Instalacja LaTeXa

Po przydługim wstępie czas na konfigurację systemu, czyli instalacje niezbędnych pakietów.

Pierwszym krokiem będzie instalacja środowiska LaTeXa wraz z klasą Beamer. W przypadku Ubuntu (i pewnie Debiana) sprowadza się to wydania takiej komendy:

# aptitude install latex-beamer

Zainstaluje to niezbędne pakiety potrzebne do korzystania z TeXa i LaTeXa.

Aplikacje pozwalając na pracę z LaTexem

Sam w sobie TeX opisuje stronę przy użyciu poleceń tekstowych, więc to edycji plików można używać zwykłego edytora tekstu, a następnie odpowiednio konwertować je do wynikowego pliku PDF. Poleceń służących do tego celu jest kilka, można je znaleźć w artykułach poświęconych LaTeXowi.

Istnieją także środowiska pozwalające na pracę w środowisku LaTeX i automatyzującymi wiele rzeczy.

LyX

Instalacja tego edytora odbywa się następująco:

# aptitude install lyx

Za Wikipedią:

LyX – edytor do systemu składu tekstu LaTeX. Przeznaczony jest dla użytkowników, którzy oczekują wysokiej jakości składu tekstu i wygody podczas pisania. LyX pozwala autorowi skupić się na treści i logicznej strukturze dokumentu. Wyglądem dokumentu zajmuje się w tle LaTeX, który faktycznie składa tekst w akapity i strony.

Korzystałem z niego przez chwilę, i faktycznie łatwo można w nim tworzyć dokumenty. Jednak ja wolę (przynajmniej na razie) rozwiązanie, które nie separuje mnie tak bardzo od źródeł, i nie dodaje dodatkowych elementów których znaczenia nie znam

TeXlipse

Wtyczka do środowiska Eclipse pomagająca w tworzeniu dokumentów TeXa. Ponieważ lubię i znam Eclipsa, bardzo mi się ona podobała, z problemami się nie spotkałem.

Jednak ma jedną wadę (a przynajmniej nie wiem jak obejść ten problem): jeżeli edytujemy dokument składający się z wielu plików, pojawia się masą błędów w dokumentach zależnych. Każdy plik jest traktowany całkowicie oddzielnie, co w takiej sytuacji utrudnia bardzo pracę.

Ale ma szereg innych zalet (poza oczywiście podstawowymi możliwościami związanymi z edycją dokumentów):

  • pozwala na oddzielenie źródeł projektu, plików tymczasowych oraz wynikowych, mogą one być zapisywane w różnych katalogach
  • automatycznie kompiluje modyfikowany plik w momencie jego zapisywania i tworzy plik wynikowy, co w połączeniu np. z przeglądarką PDF Okular pozwala na podgląd wyglądu prezentacji praktycznie w czasie rzeczywistym (Okular sprawdza automatycznie czy otwarty plik PDF nie został zmodyfikowany i jeżeli tak, to automatycznie go wczytuje)

Kile

Instalacja w środowisku Ubuntu jest prosta:

aptitude install kile

Za Wikipedią:

Kile jest wygodnym (ang. user friendly) edytorem przeznaczonym do redagowania dokumentów w formacie TeΧ/LaTeX. Działa w graficznym środowisku KDE. Nic nie stoi na przeszkodzie aby z niego korzystać w innych środowiskach graficznych po doinstalowaniu wymaganych do działania bibliotek i zależności.

Kile daje możliwość szybkiego, łatwego i bezpośredniego składania tekstu z wszelkimi zaletami edytora pracującego w środowisku graficznym. Program na licencji GNU GPL.

Ta aplikacja najbardziej mi na razie pasuje. Pozwala na definicję projektu, kompilację źródeł, definicję dokumentu głównego. Czyli daje podstawowe środowisko do pracy i nie trzeba się od razu uczyć wszystkich koniecznych poleceń niezbędnych do kompilacji i tworzenia kodu.

Źródła

Tags: , , , ,

Jak usunąć błędny klucz serwera z pliku known_hosts

Prawdopodobnie każdy, kto korzystał trochę dłużej z SSH spotkał się z podobnym komunikatem, występujący przy próbie połączenia z wybranym serwerem:

$ ssh server.example.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
63:6a:1e:ef:1a:a8:44:c4:46:ce:d1:97:b1:f3:7a:29.
Please contact your system administrator.
Add correct host key in /home/lukasz/.ssh/known_hosts to get rid of this message.
Offending key in /home/lukasz/.ssh/known_hosts:44
RSA host key for server.example.com has changed and you have requested strict checking.
Host key verification failed.

Pojawienie się go może świadczyć o tym że:

  1. Jesteśmy własnie w obiektem ataku Men in the middle (informacja o tym znajduje się w treści komunikatu).
  2. Klucz serwera z którym chcemy się połączyć uległ zmianie (czyli np. jest to inna maszyna, wygenerowano go ponownie).

Jeżeli wiemy, że mamy do czynienia z sytuacją drugą, to będziemy chcieli zaktualizować odpowiedni klucz i dalej łączyć się z wybraną maszyną.

Najprościej odcisk klucza zmienić poprzez usunięcie odpowiedniego wpisu i ponowne połączenie się z wybraną maszyną. Usuwamy klucz na dwa sposoby:

  • przy użyciu polecenia ssh-keygen:
    $ ssh-keygen -R server.example.com

    Polecenie to spowoduje wszystkich wpisów związanych z danym serwerem z pliku ~/.ssh/known_hosts.

  • ręcznie usuwając odpowiednią linijkę z pliku ~/.ssh/known_hosts. Tutaj może pojawić się problem, ponieważ w nowych wersjach SSH nazwy hostów zostały zakodowane przy użyciu funkcji skrótu. Z pomocą przychodzi tutaj powyższy komunikat błędu, pojawia się tam informacja o linii która sprawia problem:
    Offending key in /home/lukasz/.ssh/known_hosts:44

    Czyli wystarczy otworzyć podany plik i usunąć wybraną linie i po sprawie.

Metoda, która się wybierze zależy od nas, ale warto pamiętać o możliwościach polecenia ssh-keygen. Może się przypadać podczas tworzenia skryptów, lub gdy chcemy usunąć informacje wszystkich kluczach skojarzonych z danym serwerem.

Źródła

Tags: , , , ,

Co nowego pojawiło się w nowej wersji platformy RHQ Server 3.0.0

7 lipca pojawiła się finalna wersja serwera RHQ w wersji 3.0.0. Linki do pobrania można znaleźć na stronie Download projektu.

Poniżej lista modyfikacji w stosunku do wersji poprzedniej wersji stabilnej 1.3 (tak z punktu widzenia użytkownika, nie programisty):

  • nastąpiła zmiana numeracji z 1.3 na wersji 3.0 – aby wyrównać numerację różnych projektów
  • wtyczki do zarządzania serwerem JBoss (projekt o nazwie Jopr) zostały zintegrowane z projektem RHQ (czyli ich źródła znajdują się w tym samym repozytorium kodu, w ramach swoich modułów)
  • wprowadzenie wtyczek po stronie serwera, co umożliwa dodawanie nowych funkcji bez potrzeby kompilacji i modyfikacji kodu źródłowego: Server Plugin Development
  • możliwość dodawania własnej obsługi alarmów: Alert Sender Plug-ins
  • zmiana nazwy pozycji menu związanych z zarządzaniem instalacją i aktualizacja aplikacji z „Content Source” na „Content Providers” oraz „Channel” na Repositories”
  • synchronizacja zdefiniowanych repozytoriów
  • możliwość przeglądania repozytoriów oraz pobierania pakietów przy użyciu przeglądarki
  • zmiana sposobu przechowywania alarmów
  • możliwość utworzenia szablonów używanych do powiadamiania o różnych zdarzeniach
  • nowa przeglądarka zasobów
  • maskowanie hasła dostępowego do bazy danych (przy użyciu skryptu bin/generate-db-password.sh)
  • dodanie wsparcia bazy danych Oracle 11g
  • uwierzytelniania na podstawie grup LDAPowych
  • poprawa wsparcia serwera Apache
  • zestaw wtyczek, które pojawiły się w nowej wersji a nie były dostępne w wersji RHQ 1.3 w połączeniu z Jopr 2.3.1
    • jopr-jboss-as-5 – obsługa serwera aplikacji JBoss w wersji 5
    • jopr-jboss-cache
    • rhq-aliases
    • rhq-ant-bundle
    • rhq-augeas – obsługi biblioteki Augeas, pozwalającej na dostęp do rożnych plików konfiguracyjnych
    • rhq-cobbler
    • rhq-cron – definiowanie zadań w cronie
    • rhq-postfix – obsługa serwera pocztowego Postfix
    • rhq-samba – obsługa serwera Samba
    • rhq-sudoers – edycja pliku sudoers
    • rhq-twitter

Dokładną listę wszystkich modyfikacji (wraz z numerami poszczególnych zgłoszeń w systemie Jira) można znaleźć na stronach projektu, w ramach publikowanej każdej wersji beta.

Źródła

Tags: , , ,

Instalacja bazy danych Oracle XE 10g w 64 bitowym systemie Debian lub Ubuntu

Oracle udostępnia darmową wersję swojej bazy danych o nazwie Oracle XE 10g. Posiada ona szereg ograniczeń w stosunku do wersji komercyjnej, ale można jej zarówno używać w małych systemach oraz pozwala na zapoznanie się z samą bazą danych. Oracle udostępnia pakiety instalacyjne swojej bazy danych zarówno dla środowiska Red Hat jak i wywodzących się z Debiana. Niestety, są dostępne wersje tych pakietów tylko dla architektury 32 bitowej, co uniemożliwia przeprowadzenie prostej instalacji w środowisku 64 bitowym.

Na szczęście, nie będzie bardzo źle, wystarczy kilka dodatkowych kroków i powinno się udać.

Krok 1: Pobranie bazy danych

Bazę danych Oracle XE 10g można pobrać ze stron firmy Oracle: Oracle Database Software Downloads: Oracle Database 10g Release 2 (10.2.0.1). Należy zgodzić się tam na warunki licencji (należałoby także się z nią zapoznać) a następnie można pobrać odpowiednie pakiety z bazą danych.

Można także pobrać odpowiedni plik od razu z udostępnianego przez Oracle repozytorium dla Debiana: oracle-xe-universal_10.2.0.1-1.1_i386.deb.

$ wget http://oss.oracle.com/debian/dists/unstable/non-free/binary-i386/oracle-xe-universal_10.2.0.1-1.1_i386.deb

Próba instalacji tego pakietu w środowisku 64 bitowy skończy się takim komunikatem błędu:

# dpkg -i oracle-xe-universal_10.2.0.1-1.1_i386.deb
dpkg: błąd przetwarzania oracle-xe-universal_10.2.0.1-1.1_i386.deb (--install):
 architektura pakietu (i386) nie zgadza się z architekturą systemu (amd64)
Wystąpiły błędy podczas przetwarzania:
 oracle-xe-universal_10.2.0.1-1.1_i386.deb

Krok 2: Instalacja dodatkowych pakietów

Należy zainstalować w systemie także obsługę bibliotek 32 bitowych:

# aptitude install libc6-i386

Pakiet ten może już być zainstalowany.

Dodatkowo należy zainstalować pakiet bc (także może już znajdować się w systemie):

# aptitude install bc

Należy także zainstalować 32 bitową wersję pakietu libaio.

Dla Ubuntu Lucid najnowszą wersję pakietu można pobrać ze strony Download Page for libaio1_0.3.107-3ubuntu2_i386.deb on Intel x86 machines.

Dla Debiana Lenny najnowszą wersję pakietu można pobrać ze strony Download Page for libaio1_0.3.107-3_i386.deb on Intel x86 machines.

Instalacja tego pakietu jest możliwa przy użyciu takiej komendy (powoduje instalację pakietu i ignorowanie architektury):

# dpkg -i --force-architecture libaio1_*_i386.deb

Podczas instalacji zostanie wyświetlone ostrzeżenie o niezgodności architektury, ale nie powinny wystąpić inne problemy.

Krok 3: Instalacja Oracle XE 10g

Po niezbędnych krokach przygotowawczych czas na instalację samej bazy danych:

# sudo dpkg -i --force-architecture oracle-xe-universal_10.2.0.1-1.1_i386.deb

Po zainstalowaniu pakietu pozostaje go jeszcze skonfigurować przy użyciu polecenia:

# /etc/init.d/oracle-xe configure

Najpierw zostaniemy poproszeni o wskazanie portu HTTP, poprzez który będziemy mogli połączyć się z interfejsem do zarządzania bazą danych, domyślnie jest przyjmowany port 8080. W moim przypadku port ten często jest zajęty przez inne aplikacji, więc zmieniłem go na 8081:

Specify the HTTP port that will be used for Oracle Application Express [8080]:8081

Teraz należy podać domyślny port na którym będzie nasłuchiwała baza danych na przy chodzące połączenia z aplikacji, w przypadku Oracle jest to port 1521:

Specify a port that will be used for the database listener [1521]:

Należy podać hasła do konta administracyjnego:

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:

Ostatnie pytanie pozwoli na podjęcie decyzji, czy Oracle ma startować podczas uruchamiania komputera.

Z tego co widzę w skryptach startowych, jeżeli wyłączymy tę opcję, to pozbędziemy się możliwości korzystania ze skryptu /etc/init.d/oracle-xe w celu zatrzymywania i startowania bazy danych (ręcznego, nie podczas uruchamiania systemu). Dlatego też proponuję tutaj zostawić odpowiedź y nawet w sytuacji, gdy nie chcemy aby baza danych startowała za każdym razem i po instalacji przeczytać punkt o 6.

Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y

Nastąpi teraz konfiguracja bazy danych, po której powinna już działać. Pozostaje tylko połączyć się ze wskazanym adresem i zalogować do bazy danych.

Krok 4: Konfiguracja zmiennych środowiskowych

Można jeszcze dodać do ścieżki poleceń katalog z plikami wykonywalnymi Oracla.

Jeżeli jesteśmy jedynym użytkownikiem komputera, można je zdefiniować w pliku ~/.bashrc danego użytkownika. W przypadku gdy użytkowników jest kilku, warto utworzyć plik /etc/profile.d/oracle.sh. Plik ten będzie wczytywany przy logowaniu każdego użytkownika. Oczywiście, należy zwrócić uwagę odpowiednie uprawnienia do tego pliku:

# chmod 644 /etc/profile.d/oracle.sh

Zawartość pliku oracle.shlub też parametry, które należy dopisać w profilu danego użytkownika:

1
2
3
4
5
ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_HOME
export ORACLE_SID=XE
export PATH

Pozostaje się teraz zalogować ponownie (lub wykonać plik w ramach sesji) aby zmienne zaczęły działać.

Krok 6: Zatrzymywanie i uruchamianie bazy danych Oracle XE 10g

Jeżeli baza danych ma nie być uruchamiana podczas startu systemu, najlepiej jest usunąć odpowiednie linki z katalogów rc?.d:

# rm /etc/rc?.d/S??oracle-xe

Uruchomienie serwera jest możliwe poprzez wydanie komendy:

# /etc/init.d/oracle-xe start

Zatrzymanie serwera natomiast następuje po użyciu polecenia:

# /etc/init.d/oracle-xe stop

Pozostałe opcje można zobaczyć po użyciu polecenie:

# /etc/init.d/oracle-xe
Usage: /etc/init.d/oracle-xe {start|stop|restart|force-reload|configure|status|enable|disable}

Po tych operacjach powinniśmy dysponować działającą bazą Oracle XE 10g w środowisku 64 bitowym.

Źródła

Tags: , ,

Kopiowanie wybranych plików z zachowaniem struktury katalogów

Stanąłem przed następującym problem: w znaleźć wszystkie pliki spełniające wybrane kryteria i skopiować je na inny udział dyskowy wraz z zachowaniem ich struktury katalogów.

Do odszukanie wszystkich wybranych plików można użyć polecenia find i można na wyszukanych plikach użyć dowolnej komendy, np cp:

find -name '*.html' -exec cp {} /mnt/kopia \;

Niestety, rozwiązanie takie nie sprawdzi się w mojej sytuacji, nie odwzoruje struktury katalogów.

Z pomocą może przyjść polecenie cpio. Polecenie to jest pewnego rodzaju odpowiednikiem komendy tar i jest używane np. przy tworzeniu archiwów RPM. Wywołanie, które pozwoli odwzorować strukturę katalogów kopiowanych plików:

find -name '*.html' -print | cpio -pdv /mnt/kopia

Poszczególne opcje komendy oznaczają:

  • -p – powoduje, że lista plików zostanie odczytana ze standardowego wejścia i następnie zostaną one skopiowane do wybranego katalogu
  • -d – w razie potrzeby tworzy strukturę katalogów
  • -v – na wyjściu błędu wypisuje informacje o kopiowanych plikach

Aktualizacja:

Można także napotkać następujący problem: nazwy plików zawierają znaki nietypowe, takie jak spacje, znaki tabulacji. Znaki te są używane przez powłokę do podziału linii poleceń na argumenty i sprawiają często problemy podczas kopiowania. W tym przypadku najprościej będzie skorzystanie z ciągów znaków zakończonych znakiem \0. Należy tylko poinformować o tym zarówno polecenie find jak i cpio:

find -name '*.html' -print0 | cpio -0 -pdv /mnt/kopia

Więcej informacji można znaleźć w dokumentacji do polecenia.

Źródła

Tags: , , ,