Aug. 1, 2010

Witam!

Patrzę na datę ostatniego posta i aż trudno uwierzyć że minął ponad rok od ostatniego wpisu. W tym czasie oczywiście nie próżnowałem, ciągle uczyłem się i pracowałem.

The Wedding!

Ogólnie wiele się wydarzyło. Najważniejsze wydarzenie to oczywiście mój ślub i wesele, które miały miejsce 10. lipca 2010 :) Powiem szczerze - ten projekt bym bardzo absorbujący, ale zdecydowanie warto było.

Jeśli chodzi o programowanie to też wiele się zdarzyło. Prowadziłem swoje projekty w PHP na Symfony 1.2, opanowałem języki Java i Python, poświęciłem także kawałek czasu technologiom Adobe AIR i Flex, opanowałem Action Script 3.

I wreszcie na poważnie rozpocząłem swoją przygodę z tworzeniem aplikacji mobilnych, co od dawna bardzo mnie ciągnęło - ileż można php-pować. Tak więc moja migracja w kierunku Pythona i jego frameworków trwa, tak jak i Mobile Development (J2me/Android/Mobile Python…a dalej będzie C++) i bardzo się z tego cieszę, mimo iż wiem, że tak szybko od PHP’a się nie uwolnię :)

JavaScript-Tutorial.pl

Jeśli chodzi o ten blog to brak aktywności miał jeszcze inny powód - stworzyłem i prowadzę mały blog związany z JavaScript (JS, AJAX, Frameworki, Adobe AIR).

Można go odwiedzić pod adresem: http://www.javascript-tutorial.pl/.

To taki mały, prywatny projekt, przy którym z reguły mogę się odprężyć ;)

To narazie tyle :)

Napisał Dominik w kategoriach Inne, Życie | Brak komentarzy

Jul. 5, 2009

Witam

… po nieco dłuższej przerwie w pisaniu na blogu.
Mamy nowy wygląd, nowe zasady i nowe pomysły :-)

Wygląd
Zacząłem odświeżając wygląd bloga. Moim zdaniem jest teraz bardziej przyjazny dla oka, i być może bardziej profesjonalny ;-)

Zasady
Można powiedzieć że mamy nowe zasady. Chodzi o użytkowników. Teraz każdy może się zarejestrować i komentować, dyskutować. Tylko po rejestracji, gdyż nie ma tolerancji dla anonimowych, sfrustrowanych krzykaczy. A tak znacznie milej dyskutuje się, gdy wiemy z kim mamy do czynienia. A to wszystko dlatego że mamy nowe…

Pomysły
Tak jest, m.in bardziej regularne pisanie na bieżąco. W miarę możliwości często, na pewno nie z tak dużymi przerwami jak ostatnio :) Chcę, aby ten blog stał się w miarę aktywnym i wartościowym miejscem w Internecie.

Co do przerwy - nic nie dzieje się bez powodu. Byłem ostatnio bardzo zajęty. Nie tylko ulubionym zajęciem, czyli projektami i manual’ami, ale i jeszcze bardziej osobistymi.

Osobistymi - a mianowicie (tak w skrócie): planowanie ślubu i wesela :-) Załatwianie terminów, organizacja, itd. Wiadomo - atrakcje :-) Poza tym przeprowadzka na większe mieszkanie - z narzeczoną oczywiście :-) A ponadto projektowanie i tworzenie swoich projektów.

A jako że zaczynam niedługo urlop, będę mógł wypocząć przy blogu, jak i realizacji własnych pomysłów, tudzież relaksować się w pięknej okolicy.

Napisał Dominik w kategoriach Życie | Brak komentarzy


Niestety, ale zdarzyła się mała kontuzja. Podkreślam że mała, ale jednak - była to pierwsza moja kontuzja związana z siłownią.
Wiele lat temu miałem kontuzję kolana, w starych czasach, gdy grałem w piłkę nożną.

Tym razem przesadziłem z intensywnością :) Przeciążyłem mięśnie międzyżebrowe, achh. Od jakiegoś już czasu czułem drobne pobolewania w tej okolicy. Jednak po mega intensywnym treningu, na drugi dzień już dopadł mnie ostry ból. Tak silny, że trzeba było uważać na zbyt płytkie lub zbyt głębokie oddychanie, ruchy tułowia, kichanie, śmiech :) O treningu nie mówiąc. Ale szybka kuracja, około 10 dni bez ćwiczeń i jest ok. Maść Naproxen i z dnia na dzień ból się zmniejszał.
Najgorsze było to że nie wiedziałem co tak naprawdę mi się stało. Po konsultacji z ‘mistrzami’ sztuki wiem i będę uważał. I moja Monia nie będzie już musiała krzyczeć :* :-)

Wczoraj zrobiłem delikatny trening i nie ma problemów, można wracać powoli do ćwiczeń; ale mądrzejszy o to doświadczenie, i informację które ćwiczenia najbardziej narażają te mięśnie.
Koledzy mówią że doigrałem się ostrzeżenia za zbyt duże ciężary. Mają racje, ale czemu tak jest? Starość :D ? Chyba jeszcze nie, ale fakt faktem, nawet od komputera wtedy trzymałem się z dala - oprócz godzin pracy; w pracy ostatnio mam dużo btw :)

Więc i na blogu też nic nie pisałem, a piszę teraz, bo mam ciut wolnego czasu :)
Zawsze powtarzałem innym ćwiczącym: rozwaga! Pycha na bok!
Teraz powtórzę to sobie :) Po czym już jutro wracam na ‘kuźnię’ ciała. :)

Napisał Dominik w kategoriach Sport, Życie | Brak komentarzy


Tak, mając wolną chwilkę chciałem przywitać nowy miesiąc ;) Napisać też że wszystko OK, ale ostatnio byłem mocno zapracowany, zajęty masą rzeczy.

Treningi też intensywniejsze, plus nauka i trochę zmęczony jestem. :)

Ale już ogarniam wszystko i jeszcze tylko zaplanuję walentynki ;) i może posiedzę trochę nad blogiem (w końcu) :)

Napisał Dominik w kategoriach Sport, Życie | Brak komentarzy


Piątek wieczór, właściwie już sobota się rozpoczyna, po treningu, po całym tygodniu, a w każdym tygodniu dużo się dzieje :) Mam tu małą chwilkę, żeby napisać co nieco na bloga, jako że ostatnio pisałem tu mało ;-)

Powód dość prosty - mało czasu. Zajmuję się wieloma rzeczami, trzeba pracować, uczyć się - ciągle rozwijać. Nie tylko na obszarze programowania, ale i innych dziedzin $ :)  Poza tym trzeba także trzymać kontakt z otoczeniem :)

Mógłbym wypowiedzieć się w stylu Rycha “Peji” :) Bo może miał bym czasem taką ochotę, ale powstrzymam się.

Co do tego bloga - na intensywne ‘postowanie’ przyjdzie pewnie czas, teraz za dużo mam pracy, głównie nad własnymi pomysłami; za jakiś czas pewnie podzielę się informacją o tym i owym :)

Blog ten robi za moją stronę domową póki co :-)

Piszę kiedy - w sumie mogę, a nie chcę, ale to CO CHCĘ. Wyłączę chyba niedługo komentowanie postów, bo praktycznie ponad 99% nie nadaje się do publikowania. Są to albo pytania, które wyczerpuje pierwszy wynik wyszukania w Google, spam z botów itp, jak i - niestety - komentarze jakichś takich dziwnych ludzików z kompleksami - próbują je leczyć tutaj? To nie jest miejsce. A mi szkoda czasu na przeglądanie tego ;)

Wszak znam trochę życie, dorastałem że tak powiem w przeróżnych warunkach i wiem jacy ludzie potrafią być aroganccy, wręcz żenujący, niestety fałszywi, i… beznadziejni. Dlaczego? Bo potrafią tylko szydzić, ale za nic nie mogą spojrzeć na siebie. Takie drobne narcyzki, można powiedzieć n00by. Szczególnie ci, uważający się za lepszych. Nie kochani - każdy jest inny, ale wszyscy są równi. A że inni się sami świadomie/nieświadomie poniżają - no cóż, nie zmienię świata.

Ale chociaż na blogu nie będę tego tolerował. Dlatego (teraz ja będę cool) że tutaj ja ustalam zasady :) 8-)

Ktoś chce ‘kozaczyć’ w necie, bo w życiu pewnie by się bał, niech idzie gdzieś indziej - w necie pełno takich miejsc. Ja mam się czym zajmować, i niestety drodzy niewyżyci i inni, nie poświęcę czasu na użeranie się z wami, czy nawet w dyskusje, bo nie czuję potrzeby przekonywania kogoś do czegokolwiek.

Czas jest trzecim najcenniejszym darem - po życiu i zdrowiu. I ja go bardzo szanuję! Nie rozdaję tego co najcenniejsze :)

Co do sportu to również mocne postanowienia. Siłownia od dawna jest częścią mojego życia, i zawsze będzie. Ostatnio był czas Świąt, itd, teraz już odpowiednia, zdrowa żywność i walczę o sylwetkę i formę. I mówię śmiało - 3 treningi w tygodniu są wystarczające(w okresie masy, nie rzeźbienia - wtedy zwiększę ilość), i nie kolidują zbytnio z rozwojem, projektami, itd.

Czytaj dalej »

Napisał Dominik w kategoriach Inne | Brak komentarzy

Jan. 16, 2009

Tao programowania. Tao się nie starzeje :) Czytałem to dawno temu, i czytałem to wiele razy, i podoba mi się na tyle że to umieściłem tutaj :)

——————————————-
T a o   P r o g r a m o w a n i a
——————————————-

autor nieznany

T r a n s l a t e d   B y
G e o f f r e y   J a m e s

Przeklad na jezyk polski

EDWART

———————————
S p i s   T r e s c i
———————————

Ksiega  1   –  Milczaca Pustka

Ksiega  2   –  Starozytni Mistrzowie

Ksiega  3   –  Projekt

Ksiega  4   –  Kodowanie

Ksiega  5   –  Obsluga

Ksiega  6   –  Zarzadzanie

Ksiega  7   –  Korporacyjna Madrosc

Ksiega  8   –  Sprzet i Oprogramowanie

Ksiega  9   –  Epilog

M i l c z a c a   P u s t k a
K s i e g a   P i e r w s z a
———————————————————————–
Oto rzekl Mistrz Programista:

“Gdy nauczysz sie odczytywac z trapu kod bledu, bedzie to znak,
ze mozesz odejsc.”
———————————————————————–

1.1

Cos tajemniczego sie uformowalo, narodzone w milczacej pustce. Czekajac
samotnie w bezruchu, jest naraz nieruchome i zmienne. Ono jest zrodlem
wszystkich programow. Nie znam jego imienia, wiec bede je nazywal
Tao Programowania.

Jezeli Tao jest dobre, to i system operacyjny jest dobry. Jezeli system
operacyjny jest dobry, to i kompilator jest dobry. Jezeli kompilator
jest dobry to i aplikacja jest dobra. Uzytkownik jest zadowolony i na
swiecie panuje harmonia.

Zas Tao Programowania odlatuje daleko i wraca wraz z wiatrem poranka.

1.2

Tao zrodzilo kod maszynowy. Kod maszynowy zrodzil assembler.

Assembler zrodzil kompilator. Obecnie jest dziesiec tysiecy jezykow.

Kazdy jezyk ma swoja sile, jak i slabosc. Kazdy jezyk wyraza Jin i Jang
oprogramowania. Kazdy jezyk ma swoje miejsce w Tao.

Lecz nie pisz w COBOLu, jezeli tylko mozesz tego uniknac.

1.3

Na poczatku bylo Tao. Tao zrodzilo Czas i Przestrzen.
Zatem Czas i Przestrzen sa Jin i Jang programowania.

Czytaj dalej »

Napisał Dominik w kategoriach O programowaniu | Brak komentarzy

Jan. 5, 2009

Tak, to nowa wersja 2009, jako że zastał nas Nowy Rok!

Fakt, piszę to 5 dnia Nowego Roku :) i o godzinie 01:26 ale tak jakoś się zasiedziałem w manualach ;)

Więc cóż - optymistycznie przywitajmy ten nowy rok! Żeby był jeszcze lepszy od poprzedniego :)

Planów jest wiele, jak opanowanie kolejnych ciekawych technologii; języków programowania, doskonalenie już znanych, stworzenie/dokończenie kilku ciekawych projektów, i co ważne - planowane zaręczyny z moją Monią :*

Dodatkowo takie - o niektórych powiedzieć za dużo nie mogę - jak działalność e-commerce - na poważnie ;)

Do tego także moje ostatnie hobby - odkrywanie szczegółowych różnic między systemami Unix i Linux (twierdzącym że nie ma żadnych mówię że są i jest ich sporo). I chodzi mi o różnice z punktu widzenia użytkownika jak i programisty. Bo nie ukrywam że programowanie w systemach Unix/Linux to jedno z najbardziej interesujących mnie zagadnień, i tą sztukę chcę wywidnować na bardzo wysoki poziom! 8-)

Mogę też powiedzieć śmiało że znowu zaczynam przykładać dużą wagę do siłowni i pewnie szybko pojawią się tego pierwsze efekty.

To chyba tyle w skrócie jeśli chodzi o moje postanowienia noworoczne, wszystkim życzę wytrwałości w dążeniu do celu i oczekiwanego efektu - sukcesu!

$ yum install year2009

Napisał Dominik w kategoriach Życie | 1 komentarz

Dec. 22, 2008

Wesołych Świąt!

Binarnych Świąt!

:)

Czas płynie szybko. Zrobiło się świątecznie, więc w tym miejscu życzę Wszystkim Wesołych Świąt! Radosnych i przede wszystkim spokojnych i w zgodzie z samym sobą!

Ubiegłe swięta - pamiętam jak wczoraj - miałem niestety niespokojne i w niezgodzie z samym sobą, ale przez ten czas wiele się zmieniło i nie warto tego wspominać. Te, z zadowalającym mnie podsumowaniem ostatnich miesięcy, z moją ukochaną Monią :* przy boku - to prawdziwe Święta! Szykuje się miło spędzony czas, nie tylko z bliskimi, znajomymi, ale i z moimi ulubieńcami: kodem C, Perl ;)

Mówią: nie programuj w święta, bug sie rodzi ;) Ale co innego robić to dla frajdy :)

Wszystkim życzę pełno radości!

A programistom dodatkowo dobrego, niezawodnego i szybkiego kodu w ulubionym języku :)

Napisał Dominik w kategoriach Inne | Brak komentarzy

Dec. 5, 2008

Czyli SQL jakiego być może nie  znacie.

Ale zacznę dowcipem od kolegi z pracy, który naprawdę bardzo mnie rozbawił (pewnie dlatego byłem wtedy w trakcie czytania książki o teorii relacyjnego modelu danych :) )

Przychodzi SQL do baru, tam dwie tabele:
- Can I JOIN You?

:-D

A teraz do rzeczy. Czytałem swego czasu Manual MySQL. Ostatnio postanowiłem odświeżyć sobie w ramach wieczornej literatury moje podręczne notatki z owej tematyki.

I po przeczytaniu doszedłem do wniosku że jest tam kilka ciekawych, fajnych rzeczy, o których często nawet nie wiemy. Może dlatego ze są to rzeczy bardziej zaawansowane, czyli nie potrzebne Kowalskiemu.

I tak choćby bity i notacja b’:

#tworzymy tabelkę
CREATE TABLE t (b BIT(8));

#wstawiamy bity - znaczy dane :)
INSERT INTO t SET b = b’11111111′;
INSERT INTO t SET b = b’1010′;
INSERT INTO t SET b = b’0101′;

#a tu pobieramy sobie wyniki z konwersją między systemami
SELECT b+0, BIN(b+0), OCT(b+0), HEX(b+0) FROM t;

Dalej - może nie takie zaawansowane, bo każdy SQL’ista :) powinien to znać - mianowicie User Defined Variables czyli nasze zmienne w SQL ;)

#przykład z manual’a
SET @t1=0, @t2=0, @t3=0;
SELECT @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;

#no to może jeszcze raz nasze bity
SET @v1 = b’1000001′;
SET @v2 = CAST(b’1000001′ AS UNSIGNED), @v3 = b’1000001′+0;
SELECT @v1, @v2, @v3;

Operator <=> czyli null safe equal. A po co to? Jak ktoś czytał książkę C.J. Date’a, o której pisałem wcześniej - będzie wiedział :)

#ale może przykład wystarczy by ‘przypomnieć’ sobie o co chodzi :)
mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
-> 1, 1, 0

Programiści, którzy zapomnieli o konstrukcji w linijce poniżej pewnie się teraz uśmiechną:
SELECT IF(1<2,’yes’,'no’) as wynik;

I niechaj SQL przemówi:
SELECT IF(STRCMP(’test’,'test1′),’no’,'yes’);
:)

Przy okazji: potęga agregacji jest niekwestionowana, ale pamiętam pytanie o problem z DISTINCT + konkretne pole:

#więc:
SELECT COUNT(DISTINCT price) FROM shop;

Co jeszcze? Np. oprogramowanie GIS - mamy tu wsparcie od strony MySQL:

http://dev.mysql.com/doc/refman/5.0/en/opengis-geometry-model.html

Choć jeszcze nie używałem tego w konkretnych projektach np. www + mapy, po godzince zabawy mogę powiedzieć - fajna sprawa.

A na deser eksport tabeli do pliku CSV:
SELECT * INTO OUTFILE ‘/home/dominik/tabela.csv’
FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘
LINES TERMINATED BY ‘\n’
FROM shop;

Oraz coś, co naprawdę może się przydać (ahh, przypominają mi się stare czasy i praca nad pewnym katastrofalnym systemem) - tabela tymczasowa:

CREATE TEMPORARY TABLE tabela (
  id int(10) unsigned NOT NULL auto_increment,
  nazwisko VARCHAR(50) NOT NULL,
  PRIMARY KEY (id)
);

INSERT INTO tabela SET nazwisko=”Thompson”;
INSERT INTO tabela SET nazwisko=”Torvalds”;
SELECT * FROM tabela;

Coś bardziej zaawansowanego? Optymalizacje - performance. Ale przecież to znamy, bo robimy na co dzień ;)

Enjoy! ( and JOIN ;-) )

Napisał Dominik w kategoriach O programowaniu | 1 komentarz


Co ostatnio czytałem.

Myślę że warto tu podzielić się w kilku słowach taką informacją i o tym co warta jest dana książka. Co czytałem ostatnio, bo nie sposób spamiętać już tego 8-)

I nie chodzi tu o manuale - tych było zbyt dużo :) Chodzi o książki. Dwie ostatnie - akurat z Helion’a:

SEO, czyli Pozycjonowanie w wyszukiwarkach internetowych, Wyd. II oraz Relacyjne bazy danych dla praktyków,  autor C.J.Date.

Pierwsza książka jest ciekawa, nawet przy fakcie że miałem już trochę do czynienia z SEO. Autorka wie o czym pisze, a książkę warto przeczytać choćby dlatego aby poznać zasady - a jest ich nawet sporo, a także obalić pewne mity. Ja sam będę miał niedługo okazję spróbować swoich sił w SEO. Bo takimi rzeczami jak SEO, e-commerce itp. ostatnio się interesuję.

Polecam książkę wszystkim zainteresowanym, oraz tym mniej rozgarniętym czyli spamerom, żeby się w końcu czegoś nauczyli ;)

Druga książka opisuje znakomicie teorie relacyjnego modelu danych, który w laboratoriach IBM stworzył matematyk E.F. Codd. I w tym sensie właśnie książka jest dla praktyków, którzy stosują różne metody w SQL na co dzień.

Wiadomo jak mocno praca programisty związana jest z bazami danych. Przyznam ze ja również mam sporo praktyki na tym polu.

W tej książce znalazłem balsam na swoja duszę, rozdrażnioną codziennym pędem do szybkich optymalnych praktycznych rozwiązań SQL. Jest tu opis formalny, który wręcz nudny - taki jakiego potrzebowałem do usystematyzowania wiedzy, i wyjaśnienia pewnych nieścisłości, które ma zapewne każdy praktyk. Dzięki niej można na chwilę oderwać się od języka SQL, który ma swoje niedoskonałości i spojrzeć na temat z trochę wyższego poziomu abstrakcji.

Teraz w kolejce manuale ;) Ale po nich ksiazki o High performance SQL, o zaawansowanym Perl’u, czyli tzw. wypas ;)

Napisał Dominik w kategoriach Praca, Życie | Brak komentarzy

Nov. 11, 2008

Symfony 1.1 Forms, czyli nowość w Symfony, na którą warto zwrócić uwagę.

Cudo o którym mowa bazuje na nowych klasach: sfForm oraz sfWidget

Przykład:
// lib/form/ContactForm.class.php
class ContactForm extends sfForm
{
&nbsp; public function configure()
&nbsp; {
&nbsp;&nbsp; $this-&gt;setWidgets(array(
&nbsp;&nbsp;&nbsp; 'name'    =&gt; new sfWidgetFormInput(),
&nbsp;&nbsp;&nbsp; 'email'   =&gt; new sfWidgetFormInput(),
&nbsp;&nbsp;&nbsp; 'message' =&gt; new sfWidgetFormTextarea(),
&nbsp;&nbsp; ));
&nbsp; }
}

I… na tej podstawie budujemy nasz formularz!
$ php symfony generate:module frontend contact

Otrzymaliśmy nowy moduł: contact.

Teraz tylko akcja:
// apps/frontend/modules/contact/actions/actions.class.php
class contactActions extends sfActions
{
&nbsp;public function executeIndex()
&nbsp;{
&nbsp;&nbsp;$this-&gt;form = new ContactForm();
&nbsp;}
}

oraz widok:
&lt;form action="&lt;?php echo url_for('contact/submit') ?&gt;" method="POST"&gt;
&lt;table&gt;
&nbsp;&lt;?php echo $form ?&gt;
&nbsp;&lt;tr&gt;
&nbsp;&nbsp;&lt;td colspan="2"&gt;
&nbsp;&nbsp;&nbsp;&lt;input type="submit" /&gt;
&nbsp;&nbsp;&lt;/td&gt;
&nbsp;&lt;/tr&gt;
&nbsp;&lt;/table&gt;
&lt;/form&gt;

Czyścimy cache, otwieramy contact/index. Pokaż żródło i widzimy elegancko wygenerowany kod.
DRY! Ku chwale obiektowości! :)

Co jeszcze ciekawego?
Dla uprzednio stworzonych pól możemy sobie zadefiniować na stałe etykiety, do tego wszystkiego - automatyczna ochrona przed atakami XSS.

Nie musimy także tracić za dużo czasu na walidację.

$this-&gt;setValidators(array(
&nbsp;'name'    =&gt; new sfValidatorString(array('required' =&gt; false)),
&nbsp;'email'   =&gt; new sfValidatorEmail(),
&nbsp;'subject' =&gt; new sfValidatorChoice(array('choices' =&gt; array_keys(self::$subjects))),
&nbsp;'message' =&gt; new sfValidatorString(array('min_length' =&gt; 4)),
));

Automatyczne walidatory! Bo przecież chodzi o to żeby programować jak najdokładniej ale i  oczywiście jak najszybciej!

Temat jest spory, chciałem tylko zwrócić na niego uwagę.
Zapraszam do źródła:

http://www.symfony-project.org/book/forms/1_1/en/

Enjoy :)

Napisał Dominik w kategoriach O programowaniu | Brak komentarzy

Nov. 3, 2008

Jeśli jeszcze nie wspominałem to teraz wspomnę, że bawiłem się swojego czasu w programowanie GUI z użyciem PHP-GTK.

Mowa o rozszerzeniu PHP pozwalającym na programowanie interfejsów użytkownika w oparciu o GTK. Miałem do czynienia z tego typu rozwiązaniami, np. Perl Tk, i przyznam że PHP-GTK jest dość ciekawe.

Również programowanie idzie szybko i wymaga stosunkowo niewiele kodu.

Aby użyć tego cuda należy mieć skompilowane PHP o z obsługą rozszerzenia GTK. I żeby nie było że Linux i Linux, to zaprezentuje przykłady prosto z Windows :)

Skoro Windows to wersję PHP o której mowa można pobrać z internetu ;)

Może prosty przykład:
function echoValue($spinButton) {
//dane beda widoczne w konsoli
echo $spinButton-&gt;get_value() . "\n";
}

$window = new GtkWindow();
$window-&gt;set_size_request(150, 150);
$hScale = new GtkHScale(new GtkAdjustment(4, 0, 10, 1, 2));
$hScale-&gt;connect('value-changed', 'echoValue'); //przypisanie funkcji
$vScale = new GtkVScale(new GtkAdjustment(4, 0, 10, 1, 2));
$vScale-&gt;connect('value-changed', 'echoValue');
$vScale-&gt;set_value_pos(GTK::POS_LEFT);
$hBox  = new GtkHBox();
$vBox1 = new GtkVBox();
$vBox2 = new GtkVBox();
$window-&gt;add($hBox);
$hBox-&gt;pack_start($vBox1);
$hBox-&gt;pack_start($vBox2);
$vBox1-&gt;pack_start(new GtkLabel('Skala pozioma'), false, false);
$vBox1-&gt;pack_start($hScale, false, false);
$vBox2-&gt;pack_start(new GtkLabel('Skala pionowa'), false, false);
$vBox2-&gt;pack_start($vScale);
$window-&gt;connect_object('destroy', array('Gtk', 'main_quit'));
$window-&gt;show_all();
Gtk::main();

Uruchamiamy kod w wierszu poleceń:

$> php ./kody/scroller.php  i….

Toolbar zrobić jeszcze łatwiej:

$window = new GtkWindow();

Czytaj dalej »

Napisał Dominik w kategoriach O programowaniu | Brak komentarzy