niedziela, 24 lipca 2011
czwartek, 21 lipca 2011
UUID i LVM
Wyświetlenie urządzeń z pokazaniem uuid:
sudo blkid
ls -l /dev/disk/by-uuid/
Wyświetlanie urządzeń logicznych dysków:
sudo lvdisplay
sudo blkid
ls -l /dev/disk/by-uuid/
Wyświetlanie urządzeń logicznych dysków:
sudo lvdisplay
Thunderbird - jedno konto dwa komputery
Czy mogę korzystać ze swojego konta pocztowego na Thunderbird z dwóch różnych komputerów?
Tak.
1. Skopiuj katalog profilu na nośnik zewnętrzny np. pendrive. Katalog profilu jest wskazany w ~/.thundebird/profiles.ini
2. Podłącz nośnik zewnętrzny do dowolnego komputera z Thunderbirdem.
3. Uruchom na tym komputerze Thunderbirda poleceniem:
thunderbird -profile "pełna ścieżka dostępu do katalogu profilu"
Można na stałe ustawić korzystanie z poczty na zewnętrznym nośniku. Należy wówczas wpisać w ~/.thunderbird/profiles.ini w sekcji [Profile0] ścieżkę przez podstawienie Path=..... , oraz IsRelative=0
Tak.
1. Skopiuj katalog profilu na nośnik zewnętrzny np. pendrive. Katalog profilu jest wskazany w ~/.thundebird/profiles.ini
2. Podłącz nośnik zewnętrzny do dowolnego komputera z Thunderbirdem.
3. Uruchom na tym komputerze Thunderbirda poleceniem:
thunderbird -profile "pełna ścieżka dostępu do katalogu profilu"
Można na stałe ustawić korzystanie z poczty na zewnętrznym nośniku. Należy wówczas wpisać w ~/.thunderbird/profiles.ini w sekcji [Profile0] ścieżkę przez podstawienie Path=..... , oraz IsRelative=0
środa, 20 lipca 2011
Ubuntu 11.04, sun java, netbeans
Wraz z ubuntu 11.04 przychodzi java, ale w implementacji "open". Jest to doskonała implementacja z tym, że część np. stron internetowych nie zechce z nią współpracować. Zatem wypada zainstalować javę "sun-java" obecnie od oracle.
Wersję posiadanej javy sprawdzamy: java -version
Używaną wersję wskazujemy: sudo update-alternatives --config java
Sun-java staje się dostępna do instalacji przez wskazanie w repozytoriach korzystania z oprogramowania "partnerów ubuntu". Bez tego może być niedostępna.
Po zainstalowaniu sun-java, właściwie open-java możemy usunąć.
W netbeans (7.0) nie można wybrać java ee version 6.
Istnieją dwa serwery tomcat i glassfish.
Usunięcie (jako dostępnej platformy) tomcata - udostępnia do wyboru wersję 6 javy ee.
Wersję posiadanej javy sprawdzamy: java -version
Używaną wersję wskazujemy: sudo update-alternatives --config java
Sun-java staje się dostępna do instalacji przez wskazanie w repozytoriach korzystania z oprogramowania "partnerów ubuntu". Bez tego może być niedostępna.
Po zainstalowaniu sun-java, właściwie open-java możemy usunąć.
W netbeans (7.0) nie można wybrać java ee version 6.
Istnieją dwa serwery tomcat i glassfish.
Usunięcie (jako dostępnej platformy) tomcata - udostępnia do wyboru wersję 6 javy ee.
poniedziałek, 18 lipca 2011
Introduction to Ajax for Java Web Applications - not working
Z tutorialem "Introduction to Ajax for Java Web Applications" są niezrozumiałe dla mnie problemy. Oficjalny serwer, oficjalnej firmy, materiał do nauki i ... zonk. Why do you do this to me ? Na szczęście jest tam link do chodzącego projektu, tak że można sobie "odcyfrować" w cziom dieła.
Generalnie nie działa ponieważ:
a) brak jest obsługi parametru lookup w nadpisywanej metodzie doGet w servlecie AutoCompleteServlet.
b) brak jest strony na której miałby być wyświetlony wybrany kompozytor - composer.jsp
Dodatkowo w trakcie tworzenia servleta łatwo pominąć właściwy jego kontekst (trzeba zmienić na /autocomplete) a jeszcze nadto warto zaznaczyć opcję tworzenia "Add information to the deployment descriptor web.xml".
ad a)
if (action.equals("lookup")) {
// put the target composer in the request scope to display
if ((targetId != null) && composers.containsKey(targetId.trim())) {
request.setAttribute("composer", composers.get(targetId));
context.getRequestDispatcher("/composer.jsp").forward(request, response);
}
}
ad b)
<html>
<head>
<title>Composer Information</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<table>
<tr>
<th colspan="2">Composer Information</th>
</tr>
<tr>
<td>First Name: </td>
<td>${requestScope.composer.firstName}</td>
</tr>
<tr>
<td>Last Name: </td>
<td>${requestScope.composer.lastName}</td>
</tr>
<tr>
<td>ID: </td>
<td>${requestScope.composer.id}</td>
</tr>
<tr>
<td>Category: </td>
<td>${requestScope.composer.category}</td>
</tr>
</table>
<p>Go back to <a href="index.jsp" class="link">application home</a>.</p>
</body>
</html>
Poza tym kod nie jest najlepszy. Są dwa podejścia - dać w miarę bogaty kod aby uczący mógł "się zapoznać " z możliwościami. Dać kod maksymalnie ubogi, pokazujący jedynie to czego się się uczy, pozwalając później na rozwój. Wydaje się, że przykład ze stron netbeans hołduje tej pierwszej zasadzie, która dobra nie jest bo wydłuża czas asymilacji treści, zupełnie bez potrzeby.
Na początek można sobie skasować zarówno nazwę jak i "akcję" głównego formularza strony index.jsp. I co? I działa ? Hihi - no działa. Więc są to parametry nie wpływające na pracę programu.
Parę słów do treści tutoriala.
index.jsp
Istotne są:
Podstawowa funkcja wyświetlająca wynik podlisty kompozytorów to powiązana z "complete-field" doCompletion(). Funkcja ta:
a) tworzy "request"
b) tworzy parametry dla niego (są to parametry "action" oraz "id") zapisywane w url podawanym jako parametr otwarcia "requesta". "action" jest tu parametrem stałym, zaś "id" to tekst który użytkownik zdążył wpisać do pola wprowadzania tekstu
c) otwiera "request" podając jako metodę "GET", oraz wcześniej ustalony "url" w którym przekazuje parametry "id" oraz "action".
AutoCompleteServlet
Gdy doComplete wywołuje swój request, jest wywołanie skierowane do pewnego adresu z pewnymi parametrami. Ów adres to "autocomplete", ten sam który wpisany został jako kontekst servletu. Dzięki temu servlet jest wywoływany. Ponieważ przy jego otwarciu wskazano metodę "GET" to wykonywana jest metoda "doGet" servletu. Pobiera ona parametry.
Jeśli akcja jest "complete" to następuje stworzenie stringa w formacie XML z danymi do wyświetlenia jako podpowiedzi kompozytorów. Metoda doGet ma dwa parametry. Jeden to wejście (request), drugi to wyjście (response). W wyniku pracy dla akcji complete następuje ostatecznie zapis na wyjście "response.getWriter().write".
Zapis ten jest odbierany przez funkcję callback() z javascript. gdyż tak był zdefiniowany request otwierany przez doCompletion. callback bierze req.responseXML (odpowiedź z servletu = string sformatowany do XML) i wpisuje go do tabliczki comlete-table. Elementy tej tablicy (imiona i nazwiska kompozytorów) są powiązane z linkami w ten sposób, że ich kliknięcie ponownie kieruje do metody doGet servletu tym razem parametr action jest ustawiony na lookup.
Metoda doGet servletu realizuje drugi z alternatywnych warunków, pierwszy to action.equals.("complete"). W ramach drugiego z warunków servlet tworzy atrybut requestu z danymi kompozytora i przekazuje request stronie composer.jsp
Strona composer.jsp ma możliwość odczytu danych z "requesta" poprzez np. {requestScope.composer.firstName} i te dane publikuje jako wybranego kompozytora.
Generalnie nie działa ponieważ:
a) brak jest obsługi parametru lookup w nadpisywanej metodzie doGet w servlecie AutoCompleteServlet.
b) brak jest strony na której miałby być wyświetlony wybrany kompozytor - composer.jsp
Dodatkowo w trakcie tworzenia servleta łatwo pominąć właściwy jego kontekst (trzeba zmienić na /autocomplete) a jeszcze nadto warto zaznaczyć opcję tworzenia "Add information to the deployment descriptor web.xml".
ad a)
if (action.equals("lookup")) {
// put the target composer in the request scope to display
if ((targetId != null) && composers.containsKey(targetId.trim())) {
request.setAttribute("composer", composers.get(targetId));
context.getRequestDispatcher("/composer.jsp").forward(request, response);
}
}
ad b)
<html>
<head>
<title>Composer Information</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body>
<table>
<tr>
<th colspan="2">Composer Information</th>
</tr>
<tr>
<td>First Name: </td>
<td>${requestScope.composer.firstName}</td>
</tr>
<tr>
<td>Last Name: </td>
<td>${requestScope.composer.lastName}</td>
</tr>
<tr>
<td>ID: </td>
<td>${requestScope.composer.id}</td>
</tr>
<tr>
<td>Category: </td>
<td>${requestScope.composer.category}</td>
</tr>
</table>
<p>Go back to <a href="index.jsp" class="link">application home</a>.</p>
</body>
</html>
Poza tym kod nie jest najlepszy. Są dwa podejścia - dać w miarę bogaty kod aby uczący mógł "się zapoznać " z możliwościami. Dać kod maksymalnie ubogi, pokazujący jedynie to czego się się uczy, pozwalając później na rozwój. Wydaje się, że przykład ze stron netbeans hołduje tej pierwszej zasadzie, która dobra nie jest bo wydłuża czas asymilacji treści, zupełnie bez potrzeby.
Na początek można sobie skasować zarówno nazwę jak i "akcję" głównego formularza strony index.jsp. I co? I działa ? Hihi - no działa. Więc są to parametry nie wpływające na pracę programu.
Parę słów do treści tutoriala.
index.jsp
Istotne są:
- Dwa elementy "interaktywne".
- Pole wprowadzania danych "complete-field". Pole powiązane jest z funkcją doCompletion() pokazującą tabliczkę z danymi uwzględniającymi wpisany początek.
- Tablica "complete-table". Tablicę tą wypełnia funkcja callback()
- Wywołanie funkcji init() wewnątrz znacznika <body. Funkcja init() wiąże zmienne pliku javascript z polami w dokumencie html.
Podstawowa funkcja wyświetlająca wynik podlisty kompozytorów to powiązana z "complete-field" doCompletion(). Funkcja ta:
a) tworzy "request"
b) tworzy parametry dla niego (są to parametry "action" oraz "id") zapisywane w url podawanym jako parametr otwarcia "requesta". "action" jest tu parametrem stałym, zaś "id" to tekst który użytkownik zdążył wpisać do pola wprowadzania tekstu
c) otwiera "request" podając jako metodę "GET", oraz wcześniej ustalony "url" w którym przekazuje parametry "id" oraz "action".
AutoCompleteServlet
Gdy doComplete wywołuje swój request, jest wywołanie skierowane do pewnego adresu z pewnymi parametrami. Ów adres to "autocomplete", ten sam który wpisany został jako kontekst servletu. Dzięki temu servlet jest wywoływany. Ponieważ przy jego otwarciu wskazano metodę "GET" to wykonywana jest metoda "doGet" servletu. Pobiera ona parametry.
Jeśli akcja jest "complete" to następuje stworzenie stringa w formacie XML z danymi do wyświetlenia jako podpowiedzi kompozytorów. Metoda doGet ma dwa parametry. Jeden to wejście (request), drugi to wyjście (response). W wyniku pracy dla akcji complete następuje ostatecznie zapis na wyjście "response.getWriter().write".
Zapis ten jest odbierany przez funkcję callback() z javascript. gdyż tak był zdefiniowany request otwierany przez doCompletion. callback bierze req.responseXML (odpowiedź z servletu = string sformatowany do XML) i wpisuje go do tabliczki comlete-table. Elementy tej tablicy (imiona i nazwiska kompozytorów) są powiązane z linkami w ten sposób, że ich kliknięcie ponownie kieruje do metody doGet servletu tym razem parametr action jest ustawiony na lookup.
Metoda doGet servletu realizuje drugi z alternatywnych warunków, pierwszy to action.equals.("complete"). W ramach drugiego z warunków servlet tworzy atrybut requestu z danymi kompozytora i przekazuje request stronie composer.jsp
Strona composer.jsp ma możliwość odczytu danych z "requesta" poprzez np. {requestScope.composer.firstName} i te dane publikuje jako wybranego kompozytora.
sobota, 2 lipca 2011
Jak dodać nowe skojarzenie plików w Gnome Commander
Gnome Commander jest chyba najszybszym i najlepszym dwu panelowym managerem plików dla Gnome i dla Ubuntu. Niestety sprawia kłopoty przy próbie utworzenia skojarzenia między plikami o znanym nam rozszerzeniu a odpowiednią aplikacją.
Case study:
Niech gnome-commander otwiera pliki z rozszerzeniem "mm" za pomocą aplikacji "freemind" (są to tzw. mapy myśli).
1. Stworzyć typ mime dla freemind.
a) instalacja assogiate (np. sudo apt-get install assogiate )
b) stworzenie w tym programie typu mime. Multipurpose files, Name application/freemind, Filenames "*.mm"
2. Uzupełnić wpisy w plikach i katalogach ~/.local/share/applications
a) sprawdzić czy jest jeśli nie to stworzyć: userapp-freemind-QGHGFV.desktop (nazwę można zmienić)
treść:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Exec=freemind %f
Name=freemind
Comment=Własna definicja dla freemind
NoDisplay=true
b) w pliku mimeinfo.cache
wpisać:
application/freemind=userapp-freemind-QGHGFV.desktop
To wszystko.
Poza tym warto zajrzeć na stronę pewnego sympatycznego psa
Case study:
Niech gnome-commander otwiera pliki z rozszerzeniem "mm" za pomocą aplikacji "freemind" (są to tzw. mapy myśli).
1. Stworzyć typ mime dla freemind.
a) instalacja assogiate (np. sudo apt-get install assogiate )
b) stworzenie w tym programie typu mime. Multipurpose files, Name application/freemind, Filenames "*.mm"
2. Uzupełnić wpisy w plikach i katalogach ~/.local/share/applications
a) sprawdzić czy jest jeśli nie to stworzyć: userapp-freemind-QGHGFV.desktop (nazwę można zmienić)
treść:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Exec=freemind %f
Name=freemind
Comment=Własna definicja dla freemind
NoDisplay=true
b) w pliku mimeinfo.cache
wpisać:
application/freemind=userapp-freemind-QGHGFV.desktop
To wszystko.
Poza tym warto zajrzeć na stronę pewnego sympatycznego psa
Subskrybuj:
Posty (Atom)