Wzornik
Wzornik - mój najnowszy projekt - strona gromadząca wzory matematyczne i fizyczne.
Droga życia
Blog stworzony, ale nie prowadzony przeze mnie opisujący życiowe drogi
Dziś odświeżam swoją wiedzę na temat appletów Java. Budując applet importujemy przynajmniej 2 biblioteki:
import javax.swing.*;
import java.awt.*;
Nasza główna klasa musi roszerzać klasę Applet. W przypadku używania Swing-a rozszerzamy jej podklasę czyli JApplet.
Applet zawiera kilka metod. Najważniejszą jest init, za pomocą której inicjalizujemy dane. Jest to klasa na wzór konstruktora. Mimo, że klasy mogą posiadać swój własny to cała inicjalizacja odbywa się w tej właśnie metodzie.
Innymi metodami appletu są start, stop i destroy.
Metoda start jest wywoływana za każdym razem gdy użytkownik otworzy stronę lub powróci do niej z innego okna.
Metoda stop jest wywoływana gdy użytkownik opuszcza stronę.
Metoda destroy jest wywoływana po metodzie stop w momencie standardowego zamknięcia przeglądarki. Zwalniamy w niej zasoby niezależne od pamięci takie jak konteksty graficzne?
Kod najprostszego appletu wygląda więc mniej więcej tak
package MainPackage;
import javax.swing.*;
import java.awt.*;
public class MainClass extends JApplet{
/**
*
*/
private static final long serialVersionUID = 1L;
public void init() {
Container cp = getContentPane();
JLabel etykieta = new JLabel("Hello World", SwingConstants.CENTER);
cp.add(etykieta);
}
}
Dziś, znaczy się wczoraj stała się rzecz niesamowita. Od około 8 lat jestem posiadaczem lustrzanki Canon EOS 350d a dopiero wczoraj wziąłem płytę i zainstalowałem załączone tam oprogramowanie. To jest tak trochę jak z instrukcjami. Po co jest je czytać, skoro my już wszystko wiemy. Jak się okazuje to nie do końca. Wczoraj postanowiłem zrobić sobie małą sesję zdjęciową przy okazji odkurzania aparatu przed wiosną. Ponieważ baterie w pilocie mam wyczerpane a robienie sobie zdjęć z 10 sekundowym wyzwalaczem jest problematyczne postanowiłem poszukać jak sterować aparatem z pozycji komputera. Pierwsze strony jakie znalazłem, mówiły o kabelku USB i jakimś dodatkowym podłączanym w miejsce wężyka spustowego. Uznałem to za zbyt problematyczne i już chciałem temat odpuścić, ale coś mnie pokusiło żeby poszukać dalej. To była dobra decyzja. Na jednej ze stron znalazłem informacje o oprogramowaniu potrzebnym do sterowania za pomocą samego tylko kabelka USB. Wpisując nazwę programu znalazłem się na stronie Canona. Było tam napisane, że oprogramowanie można znaleźć na dołączonej płycie. Z racji, że internet w tym czasie nie chodził mi zbyt dobrze postanowiłem odgrzebać płyty ze sterownikami i zainstalować je na moim kompie. Do tego celu potrzebny jest EOS Capture. On jednak nie jest samodzielną aplikacją wiec musimy jeszcze zainstalować ZoomBrowser EX. Ten zestaw programów pozwoli nam na sterowanie aparatem z pozycji komputera. Dodatkowo zainstalował mi się program PhotoStitch do robienia panoram. Warto więc było:) Wracając do zestawu programów ZoomBrowser EX i EOS Capture. Umożliwiają one dobieranie czułości filmu, rozmiaru zdjęcia, czy ustawień takich jak wielkość przesłony oraz prędkość migawki. Opcją, którą ja wykorzystałem były zdjęcia seryjne. Polecenie do ich ustawień, ukryte jest w menu Tools. Możemy wybrać czas jaki musi minąć do zrobienia pierwszego zdjęcia, czas pomiędzy kolejnymi zdjęciami (minimum 5 sekund) oraz ilości zdjęć w serii. Podczas ustawiania aparat nie może być ustawiony w tryb samowyzwalacza. Wtedy sterowanie z komputera nie działa.
Dziś zagłębiłem się trochę w świat Joomli. Stworzyłem swój komponent do wyświetlania dnia tygodnia, daty oraz solenizantów imieninowych. Nie jest to takie trudne jak by się wydawało. Najpierw z jakiejś strony ściągnąłem listę imion posegregowanych według kolejnych dni tygodnia. Listę tą wkleiłem do arkusza kalkulacyjnego, żebym łatwo mógł ją wyedytować. Edycja polegała na przypisaniu do dwuwymiarowej tablicy imion z poszczególnych dni.
Tak wygląda dzień 2 stycznia. $imieniny[1][2]=""Makary, Izydor, Grzegorz"; Przeciągając odpowiednie numerki stworzenie 366 elementów nie zajęło mi więcej jak 5 minut.
Następnym elementem było stworzenie pliku modułu z rozszerzeniem php. Opiszę poniżej co się w nim znajduje
<?php //początek pliku
defined('_JEXEC') or die('Direct Access to this location is not allowed.'); //w Joomli do wszystkiego odwołujemy się poprzez plik index.php. Jeżeli ktoś próbuje odwołać się do jakiegoś pliku bezpośrednio - DIE die DIE
$dzien = date("j"); //dla przejrzystości kodu do kolejnych zmiennych pobieramy aktualną datę
$miesiac = date("m");
$rok = date("Y");
$dayname = date("w");
$imieniny[1][1]="Mieczysław, Wilhelm, Mieszko";
$imieniny[1][2]="Makary, Izydor, Grzegorz";
.... //nie będę wklejał tu wszystkich dni. Wcześniej zostało napisane co przyjmują te zmienne.
//czas na wyświetlenie zebranych danych. Podzieliłem je na 2 części - data i imieniny. Obie części wrzuciłem w div-y, które przypisałem do różnych klas CSS abym mógł kontrolować ich wygląd niezależnie
print '<div class="mod_dzien">';
print 'Dziś mamy '.$dayname.'<br>';
print $dzien.' '.$miesiac.' '.$rok.'<br><br>';
print '</div>';
print '<div class="mod_imieniny">';
print 'Imieniny obchodzą<br>'.$imieniny[date("n",time())][date("j",time())];
print '</div>';
?> // i to by było na tyle pliku mod_start.php
Kolejnym plikiem który zawiera mój moduł jest plik index.html - przyjęło się, że umieszcza się go w każdym katalogu Joomli. Plik ten zawiera tylko jedną linijkę kodu <html><body bgcolor=”#ffffff”></body></html>
Ostatnim z plików jest plik xml zawierający informację dla instalatora
<?xml version="1.0" encoding="utf-8"?> //rodzaj kodowania znaków
<install type="module" version="1.5.0"> //wersja Jommli z którą ten moduł jest kompatybilny
<name>Start</name> //nazwa modułu
<author>Kamil</author> //nazwa autora
<creationDate>2012</creationDate> //data utworzenia
<copyright>Kamil Wardach</copyright> //prawa
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license> //licencja
<authorEmail>email</authorEmail> //adres email
<authorUrl>Wardach.PL</authorUrl> //strona WWW
<version>1.5.0</version> //wersja modułu
<description>Moduł wyświetlający informację o dniu tygodnia, dacie i imieninach</description> //opis modułu wyświetlany w panelu administracyjnym
<files> //lista plików które instalator ma zainstalować
<filename module="mod_start">mod_start.php</filename>
<filename module="mod_start">index.html</filename>
</files>
</install>
I to by było na tyle. Całość pakujemy w katalog, zipujemy i wgrywamy do Joomli. Następnie w menu rozszerzenia/moduły ustawiamy pozycję wyświetlania, stronach na których nasz moduł ma się wyświetlać oraz włączamy publikację.
Z uwagi, że dziś walczyłem z blogiem drogizycia.tk a konkretnie z paginacją zamieszczę jeszcze kilka informacji
Zmiana paginacji w szablonie jest możliwa poprzez przekopiowanie pliku public_html/libraries/joomla/html/pagination.php do katalogu public_html/templates/drogazycia.tk/html naszej templatki a następnie jego edycja. Jeżeli chcemy prze edytować napisy "poprz." "nast." możemy to zrobić w pliku /public_html/language/pl-PL
Kolejny pracowity weekend w moim wydaniu. Znalazł się jednak również czas na odpoczynek. Tak więc z nowymi siłami zaczynam nowy tydzień.
Wracając jednak do pracy przez minione dwa dni zostały dopracowane strony drogazycia.tk i aiit.pl oraz stworzona strona wzornik.tk. Teraz nic tylko zacząć wypełniać je treściami. Myślę, że zbliżający tydzień po części zostanie temu poświęcony. Przez ten miniony weekend wyprostowałem trochę spraw związanych z księgowością oraz dzięki zasłużonemu odpoczynkowi do mojej głowy wpadło kilka nowych pomysłów. Przede wszystkim jestem o krok od zaczęcia realizacji czegoś, co od dawna jest w moich planach czyli mojej prywatnej sztucznej inteligencji. Projekt odważny i poważny. Do realizacji w dłuższym okresie czasu, ale jestem dobrych myśli. Ja nie dam rady ?? :)
Pierwsze post opisujące zagadnienia techniczne będą mówiły o problemach napotkanych podczas realizacji tej strony.
Strona ta jest oparta o CMS Joomla. Nie jest on do końca przystosowany aby pełnić funkcję bloga. Poszukiwania odpowiednich rozszerzeń postawiły pytanie czy nie lepiej do tego celu użyć Wordpress-a. Moja znajomość Joomli jednak wygrała i w ostatecznym rozrachunku postawiłem na nią. Dodataki ułatwiające blogowanie są przeważnie płatne. Te bezpłatne oferują bardzo mała funkcjonalność. Znalazłem darmowe rozszerzenie K2, które ułatwiło przystosowanie Joomli do nowej funkcji. Poniżej przestawaiam listę pakietów, które postanowiłem zainstalować
Joomla_2.5.1-Stable-Full_Package.zip http://www.joomla.pl/ Pakiet joomla - dla przypomnienia w celu szybszej instalacji kopiujemy na serwer plik zip i poprzez konsole rozpakowywujemy
pl-PL_joomla_lang_full_2.5.1.zip.zip http://www.joomla.pl/ Spolszczenie pakietu Joomla
K2_v2.5.4.zip http://getk2.org Roszerzenie Joomli o możliwości blogowania, łatwiejszego wstawiania obrazów i przesyłania plików.
k2_pl-PL_language_pack.zip http://getk2.org Spolszczenie K2
mod_minicalendar_3.02.01.zip http://extensions.lesarbresdesign.info/extensions/mini-calendar Mini kalendarz. Bez linkowy, ale bardzo prosty.
nivo-slider2.7.1.zip http://cloud.github.com/downloads/gilbitron/Nivo-Slider/nivo-slider2.7.1.zip Roszerzenie pozwalające na wyświetlanie pokazu slajdów z efektownym przejściem - zainstalowane w templatce
noticeboard_pack_2_x_1.zip http://www.code-garage.com/downloads/noticeboard-pack/2_X_1/noticeboard_pack_2_x_1zip?format=raw Przypominajka umieszczona z lewej strony strony.
Ze względu na późną godzinęna tym kończę
Startuje moja prywatna strona, na której będę zamieszczał wszystko co przyjdzie mi do głowy, czyli to czym się aktualnie zajmuję.
Na wstępie chciałbym zaznaczyć, że strona ta jest przeznaczona przede wszystkim na moje potrzeby. Proszę więc nie oczekiwać, że posty będą dla wszystkich jasne i zrozumiałe. Wykonanie tej strony, oraz jej aktualizacja ma posłużyć jako swoisty pamiętnik techniczny zawierający niuansy realizowanych projektów i tego co mi w tym czasie do go głowy przyszło. Jej celem jest zwrócenie mojej uwagi na pułapki napotkane podczas tych realizacji oraz wyciągnięcie wniosków na przyszłe.