Archiwum
- Sierpień 2008 (4)
- Lipiec 2008 (5)
- Czerwiec 2008 (3)
- Maj 2008 (1)
- Kwiecień 2008 (2)
- Marzec 2008 (3)
- Luty 2008 (9)
- Styczeń 2008 (2)
- Grudzień 2007 (2)
- Listopad 2007 (3)
- Październik 2007 (6)
- Wrzesień 2007 (8)
- Sierpień 2007 (5)
- Czerwiec 2007 (1)
- Maj 2007 (10)
- Kwiecień 2007 (5)
- Marzec 2007 (26)
- Luty 2007 (21)
- Styczeń 2007 (11)
- Grudzień 2006 (4)
- Listopad 2006 (9)
- Październik 2006 (6)
- Wrzesień 2006 (2)
- Lipiec 2006 (1)
- Czerwiec 2006 (13)
- Maj 2006 (2)
- Kwiecień 2006 (9)
- Marzec 2006 (1)
- Luty 2006 (2)
- Styczeń 2006 (17)
- Listopad 2005 (5)
- Październik 2005 (1)
- Sierpień 2005 (1)
- Lipiec 2005 (17)
- Czerwiec 2005 (2)
- Maj 2005 (4)
- Kwiecień 2005 (4)
- Marzec 2005 (7)
- Luty 2005 (20)
- Styczeń 2005 (24)
- Grudzień 2004 (21)
- Listopad 2004 (25)
- Październik 2004 (22)
- Wrzesień 2004 (38)
- Sierpień 2004 (5)
Kategorie
- Batalie (23)
- Emigracja (50)
- Komercha (4)
- Ogłoszenia (19)
- Ogólne (229)
- Opowiadacze (13)
- Pieprzenie (29)
- Podróże (23)
- Prasówka (6)
- Programowanie (39)
- Cocoa (14)
- iPhone (2)
- Mac OS X (17)
- Obj-C (12)
- Technikalia (21)
Czytam
STARTTLS i SASL Gotowe!
Jestem zaskoczony rozwojem sytuacji. Po kilku tygodniach wytężonej pracy w końcu udało mi się osiągnąć najważniejsze elementy nowej biblioteki. Negocjacje szyfrowania połączenia TLS jak i logowanie SASL (metodą DIGEST-MD5 i PLAIN) są gotowe!
Pozostaje jedynie posprzątać trochę kod, dodać parę callbacków i można zabrać się za kolejny etap - czyli obsługę zarzeń (message, presence no i oczywiście iq). Na początku będzie to obsługa podstawowa. Jedynie, by odpowiadać na zapytania version i obsłużyć roster. Ale to już coś!
Będzie można do tego dołożyć kilka okienek w Cocoa i będę już na etapie iChata. A to już dużo, szczególnie, że elastyczność rozwiązań daje łatwą możliwość rozbudowy możliwości biblioteki.
Nie mówię jeszcze hop. Prawdziwy test biblioteka przeżyje niebawem, kiedy obsłużywszy co trzeba spróbuję się zalogować na wszystkie serwery, na których mam konta (z gTalk włącznie).
Przepełnia mnie duma i radość.
Dla mnie to już duże osiągnięcie.
Problemy z OpenSSL
Rozwiązawszy już moje potworne problemy z pamięcią (oczywiście byłem debilem :P), zabrałem się za implementację TLS. Ostatniej rzeczy, jaka mi została do zrobienia. Używam biblioteki OpenSSL, ponieważ jest częścią systemu maczkowatego. Natknąłem się jednak na nie lada problemy.
Mało jest pomocniczych przykładów jak tego używać, w szczególności odnośnie TLS. Robię coś takiego:
SSL_library_init();
ssl_context = SSL_CTX_new(TLSv1_client_method());
ssl_ptr = SSL_new(ssl_context);
sock_bio = BIO_new_socket(sock, BIO_NOCLOSE);
if (sock_bio == NULL)
return NO;
SSL_set_bio(ssl_ptr, sock_bio, sock_bio);
if (0 == SSL_connect(ssl_ptr))
return NO;
Niby jak z przykładów. Problem w tym, że wszystko przechodzi gładziutko, ale jakiekolwiek próby użycia SSL_read() lub SSL_write kończy się całkowitą klapą. Rzuca błędem odczytu/zapisu i już.
Co ja do cholery robię źle?
Postępy
Na stronie projektu dodałem sobie zadania, jakie muszę wykonać, żeby zamknąć pierwszy kamień milowy. Masakra. Nawet w przypadku równouprawnienia wszystkich zadań (tj. faktu, że każdy zajmie mi tyle samo czasu i sił) to mam zrobione dopiero 15%.
Ciężka robota przede mną jeszcze.
Eh.
Powodowane nudą biurową
Kawa mi zbrzydła...
Strumienie w Cocoa
Cocoa ma bardzo wygodną i w sumie czystą implementację strumieni. Korzystamy z metody jednej klasy i już po chwili mamy śliczne strumienie wejściowe i wyjściowe działające gdzieś w tle, a my tylko siorbiemy, tudzież wysyłamy dane. Niestety NSStream jest dość niestabilne. Dlatego sugeruję jednak korzystać z POSIXowych rozwiązań, które zdają się być jednak bardziej użyteczne. Sam nadbudowałem ładną klasę do obsługi takowych. Nie jest to trudne, więc polecam.
Z drugiej strony - mój program wciąż rzuca SIGBUS, a ja, głupek, nie jestem w stanie wciąż zlokalizować dlaczego.
Eh...
DIGEST SASL DONE! Problem prawie rozwiązany
Właśnie. Prawie.
Z kompletnie niezrozumiałych dla mnie przyczyn na reinicjację strumienia, po otrzymaniu encji <success /> dostaję następującą wiadomość:
<?xml version='1.0'?>
Czy ktoś mądry może mi wyjaśnić, czego ta pierdoła ruska w postaci serwera ode mnie chce?
Nie dość, że zaczął cały strumień XML od zera (a nie tylko tag sesji), to przypieprza się do przestrzeni nazw, którą sam sobie narzuca i zmienia w drodze?
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='823265377' from='bazyl.net' xml:lang='en'>
<stream:error>
<invalid-namespace xmlns='urn:ietf:params:xml:ns:xmpp-streams'/>
</stream:error>
</stream:stream>
O co tu, kurwa, chodzi???
Poziom
Przerzucam się na stałe na poziom 1.
Zwyczajnie mam już po prostu dość tych ludzisk i wiecznego "niepasowania".
Cytując naszego kochanego prezydenta: Spieprzaj pan!
For the man with the hammer, the world is a nail
Ostatnio cierpię na nadmiar czasu w pracy. Pozwala mi to na rozkoszowanie się przeglądaniem internetu. Cczytaniem grup dyskusyjnych i wielu innych ciekawych rzeczy. Gdziekolwiek bym jednak nie zajrzał, zawsze napotykam na coś, co bardzo często określane jest mianem Flame war. Zarzucane jest mi, że korzystam z drogich i nieużytecznych sprzętów, że podniecam się głupotami, że to jest be, a to co oni robią jest super itp.
Stąd tytuł notki. To Brytyjskie porzekadło. Łatwo to sobie przetłumaczyć. Dla faceta z młotkiem, cały świat to gwoździe. Tak można określić znakomitą większość działań ludzi. Niestety. Ludzie przyzwyczajają się do rozwiązań jakie znają. Znając pewne techniki, rozwiązania, starają się stosować je do wszystkiego wokół.
Staram się propagować pewien młotek. Jest nim oczywiście XMPP. Każdy kto mnie zna lepiej, wie że mam fioła na tym punkcie. Nie zmuszam jednak nikogo do korzystania z tego protokołu. Pragnę jedynie sprawić, żeby stał się jak najbardziej widoczny i używalny na każdej możliwej platformie.
Sam fakt, że na przykład używam Macintosha jednak, jest moim dobrowolnym wyborem. Próba zmiany mojego zdania jest bezpodstawna. Nie jestem Waszym gwoździem, moi kochani. Dlatego proszę o wyrozumiałość.
Ja nie będę się śmiał, że używacie Gadu-Gadu, Yahoo Messangera, czy ICQ, a Wy, nie starajcie się wbić mnie jak gwoździa swoim Windowsem, czy Linuxem.
Kiedyś ktoś mądry powiedział, że racja jest jak dziura w dupie. Każdy ma swoją i jest do niej bardzo osobliwie przywiązany, co nie oznacza, że należy ją pokazywać jak Skiba Buzkowi. Żyjcie i dajcie żyć innym.
I przestańcie, do cholery, widzieć wszędzie gwoździe do swojego młotka.
Polska
Jak ktoś mi powie że tutaj jest wszystko w porządku to jest równie pojebany jak cały nasz rząd, ZUS i wszystkie te pojeby, które rozpierdalają nam kraj.
I nie - nie używam zbyt silnych słów. Gdyby istniały silniejsze przekleństwa też bym ich użył.
Polak
I przyznaj się teraz komuś, że jesteś Polakiem.
XMPP (Postępy i pytanie)
Wczoraj dość niewiele udało mi się wykonać. Głównie przez zmęczenie i brak czasu. Dodałem jedynie rozpoznawanie adresu i portu serwera XMPP na podstawie JID'a (DNS i wpisy SRV). Dziś GSASL. Jutro może TLS. Zobaczymy jak to pierwsze mi pójdzie.
Chwilowo dręczy mnie jednak inne pytanie. Czy ktoś ma postawionego gdzieś jwchata? Strona projektu jest u mnie zablokowana na proxy firmowym, a nudzę się tak przeokrutnie, że przynajmniej posiedziałbym na IMie :P
Za każdą pomoc gorąco dziękuję.
XMPP.Framework
Pracowałem nad tym już wcześniej, publikując Jabbaha, który w jakimś tam stopniu był funkcjonalny. Przeszło mi, bo zapotrzebowanie było.. hm.. żadne? :)
Teraz sprawa ma się zupełnie inaczej. Staram się za wszelką cenę zaimplementować pełen protokół XMPP. Zarówno XMPP Core jak i XMPP IM. Oczywiście będzie też implementacja kolejnych rzeczy. Chwilowo jednak te elementy są dla mnie najważniejsze. Oznacza to na przykład pełne wsparcie dla języków i przestrzeni nazw XMLa. Z autoryzacją opisaną w protokole, czyli SASL. W planach jest obsługa jedynie dwóch sposobów logowania. Oczywiście są to SASL Digest i SASL PLAIN. Założeniem jest również utrzymanie biblioteki w bardzo czystej i wygodnej do wykorzystania formie. Nie będzie to jednak zwykły projekt Open Source. Na pewno jednak będzie można z niego za darmo korzystać.
Cała biblioteka przygotowana jest do projektu, który już powstał i powoli się rozwija. Jest jakby jego częścią, ponieważ na czymś funkcjonalność trzeba testować. Na razie idzie mi silnie pod górkę. Okazuje się bowiem, że tak jak i GSASL nie działa pod Maczkami jak trzeba, tak i obsługa zwykłego, głupiego TLS jest tam troszkę niedopracowana. Nie można dokonać "przerzutu" ze zwykłego połączenia na połączenie TLS. Oznacza to dodatkowy nakład pracy w zaimplementowanie własnej wersji Socketów. BXStream, BXInputStream i BXOutputStream.
Bardzo jednak zależy mi na uniknięciu wynajdowania koła od nowa, więc będę się starał wbudować znane biblioteki obu tych elementów do frameworka i nadbudować nad nimi jedynie interfejs w Objective-C.
Jedno jest pewne. Jestem silnie zdeterminowany, żeby poprowadzić dobrze ten projekt. Nie mam zamiaru odpierdzielać fuszerki. Pewnie dlatego zajmie mi to stanowczo za dużo czasu. Cieszę się bardzo, że są ludzie, którzy wspierają mnie przy tym. Smoku daje z siebie wszystko co tylko może, najbliźsi rozumieją, kiedy chowam się w kącie ze swoim komputerem i klnę cicho pod nosem, kiedy coś po raz setny nie chodzi jak trzeba. Jajcuś zapytany, zawsze stara się odpowiedzieć. Wytykają mi nieumiejętne czytanie specyfikacji protokołu. Ale to dobrze. Bo to musi być solidnie zrobione. Źródła już są na sieci. Nie są jednak publiczne. Mają dostęp do tego jedynie wybrańcy. Więc jeśli ktoś będzie zainteresowany obejrzeniem samego kodu - zapraszam. Dokumentacja korzystania z frameworka zostanie opublikowana bardzo niebawem. Niestety jeszcze przed samym frameworkiem. No ale cóż. Plan już jest od dawna. Tylko doba za krótka, żeby wszystko zrobić dostatecznie szybko.
Wynajduję koło od nowa
Niestety sprawa wygląda tak:
@interface BXSASL : NSObject
{
uint8_t mechanism;
NSString *realm;
NSString *username;
NSString *password;
NSString *nonce;
NSString *cnonce;
NSString *rspauth;
}
- (id)initWithUsername:(NSString *)usr password:(NSString *)pwd andMethod:(NSString *)meth;
- (void)dealloc;
- (BOOL)getAnswer:(NSString *)answer toChallenge:(NSString *)challenge whichIsBase64Encrypted:(BOOL)enc;
- (BOOL)saveRspAuth:(NSString *)theRspAuth whichIsBase64Encrypted:(BOOL)enc;
@end
Tak tak. Poczytałem trochę i wynajduję koło od nowa i implementuję własną obsługę SASL. Na razie zaimplementuję tylko metodę DIGEST-MD5 i (być może) PLAIN. Mam GSASL za wzór. Musi wystarczyć.
Zły jestem. Zawsze pod górkę. No ale takie życie :(
TLS
Mojej radości nie ma granic. Apple się postarał i strumienie (klasa NSStream) ma wsparcie do TLS!!!
Ależ roboty mi to ujmie! Pozostaje jedynie ten nieszczęsny SASL. Niestety GSASL robi mi hopsasy i nie chce się ładnie skompilić. Czeka mnie albo wciąganie całej biblioteki do projektu (Expat już się tego doczekał. A było z tym jazdy co nie miara! Jak można include'ować inne pliki .c wewnątrz innego pliku .c??? I to po 3-4 razy!).
Muszę jeszcze pogrzebać na stronach Apple'a. Może coś się tam dla mnie znajdzie. Mój najlepszy przyjaciel, jakoś ostatnio mało pomocny jest :(
Trzymać dalej kciuki!
SASL
Z racji faktu, że staram się być w pełni zgodny z protokołem XMPP, staram się zaimplementować SASLową implementację autoryzacyjną.
Przyznam się szczerze, że pisanie od zera tego mechanizmu się mi nie widzi. Czy ktoś zna wygodną bibliotekę, z której można skorzystać do tego celu?
Czy GSASL jest dobrym rozwiązaniem?
Każda rada mile widziana.
NSURL robi psikusy a NSStream nie wie o co chodzi
Ponieważ rzeczy podstawowe nadal zapełniają po kolei karty mojego mini-podręcznika, podzielę się drobną
uwagą na temat programowania w Cocoa.
Uważajcie z NSURL. Jeśli podacie mu adres bez podanego protokołu (np bazyl.net zamiast http://bazyl.net na ten przykład) to nie wyrzuci błęda. Ale wywołanie metody pobrania czystego adresu
zwróci NULL. Bardzo nieprzyjemne.
Problem jest tym większy, że jak Wam wpadnie do glacy korzystać z tej klasy do sprawdzania poprawności
adresu przed otworzeniem strumieni (NSStream) to możecie się nieźle zdziwić.
Konstruktor NSStream przejdzie gładziutko. Dostaniecie notyfikacje, że strumienie został otwarte i są gotowe na przyjęcie danych. Dopiero próba napisania czegoś po strumieniu wyjściowym (NSOutputStream) zwróci -1 jako błąd, po czym rzuci zdarzeniem błędu do metody nasłuchującej.
Moim skromnym zdaniem - to trochę głupie.
iCollins
Tak jak już obiecałem, wystawiam paczkę mojego interface'u słownika Collinsa pod Mac OS X.
Osobiście uważam, że implementacja, czyli program AngelaX jest znacznie wygodniejszym rozwiązaniem, to mogę się pochwalić przynajmniej ładnym kolorowaniem składni.
Nie wiem czy będę kontynuował ten projekt. Chwilowo spełnia moje wymagania, ale wszelkie uwagi są oczywiście mile widziane.
Chciałbym, żeby program był ściągany jedynie z tej strony, a nie rozprowadzany pocztą pantoflową. Gdyby jednak ktoś chciał to wystawić gdzieś u siebie, bardzo proszę o uprzedni kontakt ze mną (na mail, JID, czy co tam innego).
Życzę miłego korzystania
Wada wymowy
Życie na Wyspach, mimo wielu zalet ma również mnóstwo wad.
Jedną z nich jest fakt, że mówiąc po polsku zaczynam seplenić.
Blogosfera hakiera
Całkiem niedawno pisałem o tym jak rozwija się światowa blogosfera. Dzieliłem się swoimi odczuciami na ten temat, podkreślając jak bardzo nie pasuję do ogólnego wizerunku osoby blogującej. Nic się w tej kwestii nie zmieniło.
Niestety wczoraj zostałem sprowadzony do ziemi. Rozpoczęła się jakaś zbiorowa histeria na temat wykorzystywania narzędzi, które dostarcza nam nasz silnik blogujący. Wytknięto mi nadużycie gościnności.
Idąc za Riddlem chciałbym sam wyrazić swoją opinię na ten temat.
Kiedy Jogger powstawał, przyciągał zdecydowanie ludzi związnych z rozwojem polskiej branży IT. Ludzi przywiązanych mocno do nowinek technicznych. Cieszących się z nowej idei, która bądź co bądź, dużo rzeczy ułatwiła.
Czułem się dumny, mogąc korzystać z tych samych narzędzi. Do dziś darzę Joggera ogromną sympatią. Jest narzędziem bardzo rozwiniętym w porównaniu do kilku polskich, a nawet zagranicznych konkurencji.
Prawda jest jednak taka, że wiele postaci, które swego czasu stanowiły ikonę poziomu tego systemu, jak Smoku, czy Patrys, wyprowadziło się od nas. Nie ma oczywiście co się oburzać. Potrzebowali czegoś więcej niź Jogger był im w stanie dać.
Wciąż jednak odnoszę jakieś takie dziwne wrażenie, że zbyt wiele ludzi identyfikuje się z Joggerem, próbując na siłę twierdzić, że są elitą. elytą, jak to mawiał mój dyrektor liceum, starając się sztucznie podnosić status szkoły. To samo widzę tutaj.
Prawda jest niestety taka, że większość to zwykli pianobijcy, mieszający powietrze i starający się pokazać. Szkoda jedynie, że robią to od tej złej strony.
Internet jest dla wszystkich. Jogger również. Nie odróżniamy się społecznością od innych systemów blogowych ani o ksztynę. Jest nas zdecydowanie mniej, więc i liczba tych nieelitarnych blogowiczów (do której coraz częściej i mnie zaliczają) jest stosunkowo niewielka. Z czasem to może się oczywiście zmienić.
Rozumiem jednak, że ów elitarna jednostka joggerowiczów nie ma ochoty bym wtrącał się w ich elitarne sprawy. Właśnie z tego powodu ograniczę się do własnych kategorii. Będę nadal pisał na poziomie zerowym, ponieważ ktoś być może będzie miał ochotę to czytać.
Publikacje odnośnie mojego programu, jak i materiałów podręcznikowych zostawię we własnej technicznej i programistycznej kategorii.
Przepraszam wszystkich bardzo, że nie jestem elitą. Niestety mało wiem i nie potrafię też za wiele. Stąd też ten cały szum. Dziękuję bardzo Riddlowi za pomoc przy szablonie. Nieoceniona. Sam bym na to nie wpadł.
Więcej prosić nie będę o nic. Bo jeszcze mnie zlinczują za moją głupotę.
A elytarnym hakierom już podziękuję. Niech robią burzę w szklance wody kogoś innego.
Szablon
Wrzuciłem sobie nowy szablon.
- W kodzie HTML jest kupa nie z tej ziemi (kradziony, to dlatego).
- Pod IE wygląda gorzej. Rozjeżdża się. Menu boczne jest z kosmosu. Nie działa jak powinno.
- Szablon komentarzy nie został jeszcze zrobiony
Pomoc mile widziana :)
A jak Wam się podoba? :D
Słownik
Podczas pisania (i poprawiania) rozdziałów, nagle zabrakło mi jakiegoś słowa.
Zgłupiałem. Potrzebowałem słownika online, ale słówka akurat tam nie było. Z pomocą przyszedł dopiero współlokator i jego słownik Collinsa.
Niby słownik nie znów tak zajebisty, ale co potrzebowałem to miał.
Wiedząc, że istnieje projekt obsługi baz Collinsa pod linuxem, postanowiłem wziąć bazy tego słownika i korzystać z tego ncurses'owego narzędzia pod maczkiem (w końcu to UNIX).
Szybko mi to zbrzydło. Ponieważ YdpDict ma prostą bibliotekę do obsługi tych plików baz danych, szybko sklepałem swoje własne okienka.
I oto i one:
Niby nic specjalnego, ale sam znajduje słowo (rozpoznaje sam język) i wyświetla ładnie pokolorowane wyniki.
Zastanawiam się właśnie czy to nie spaczkować. W sumie robota żadna, ale może jest chętny?
Społeczność spod znaku japka
Dawno dawno temu poznałem bardzo specyficzną postać.
Był to wielki jak dom, przemiły człowiek o nieprawdopodobnie interesującym charakterze. Specyficzny. Nie do podrobienia. Polubiłem go z miejsca.
To był maczkowiec.
Niedługo póżniej ów człowiek zrobił mi niesamowitą niespodziankę. To był prezent. Jego stara maszyna maczkowa. Stacjonarne G3.
Z początku się kurzyło i tylko zajmowało miejsce. Ale wtedy wyniosłem się z domu i owa G3jka stała się jedynym komputerem jaki miałem.
To był początek mojej przygody z komputerami firmy Apple.
Obcowanie z tymi maszynami sprawiło, że uzależniłem się od nich. Były takie inne. Takież ciekawsze. A - co interesujące - tacy sami byli (są) jego użytkownicy.
Obecnie jestem zapisany na kilku listach dyskusyjnych/forach związanych z polską gałęzią użytkowników tych komputerów. I śmiało mogę powiedzieć, że slogan firmy Think Different jest tutaj jak najbardziej na miejscu.
Ci ludzie są inni. Wydają więcej na swoje komputery. Zupełnie inne rzeczy są im potrzebne, mają inne podejście do świata i ludzi, inny dowcip.
I - w sumie - im dłużej bawię się tymi komputerami i śledzę owe listy dyskusyjne i fora (mało się udzielam. Nie mam z czym do ludzi), tym bardziej się przekonuję, że Macintosh to nie tylko komputer, ale sposób na życie.
Wiem, że brzmi to jak jakiś slogan marketingowy. Ale ja nigdy nie starałem się potępiać ludzi, którzy korzystają z komputerów klasy PC (nazywanych przez ludzi z tego światka PieCami). Nigdy nie starałem się nikogo odwodzić od wybranych przez nich systemów operacyjnych (czy był to Windows, czy jakaś dystrybucja Linuxa). Nie wchodzę ludziom w paradę. Nawet bliskie mi osoby korzystają raczej z Windowsów. Z wygody (w jakimśtam pojęciu). Mało mnie to.
Chciałem jedynie podkreślić, że (przynajmniej według moich obserwacji) ludzie spod znaku japka (tak - japka, nie jabłka) są inni. Ich Inne Myślenie zaraża. I mam nadzieję, że kiedyś będę mógł z dumą powiedzieć, że jestem jednym z nich.
Póki co - nadal ten sposób myślenia i życia jakoś mnie nie pochłonął.
Może z czasem.
Pedeefujemy podręcznikowo
Opublikowane dotychczas krótkie notki o programowaniu pod Maczkiem nie są może jeszcze czymś nadzwyczajnym, ale zdążyłem dopisać kilka rozdziałów. Dlaczego ich nie opublikowałem? Bo zacząłem zdawać sobie sprawę, że ominąłem wiele kwestii, które powinny się znaleźć wcześniej.
Podjąłem zatem decyzję, że na modłę Poradników przerzucę się na pisanie PDFów. Będzie to ciągła praca, rozwijany dokument z każdej możliwej strony. Poprawioną wersję z dodatkowymi rozdziałami, wstępniakiem staram się właśnie poskładać z wersji HTMLowej w coś bardziej czytelnego.
Tutaj mam prośbę do czytelników. Czy moglibyście mi poradzić coś do składania PDFów pod maczkiem (używam Pantery na G4)? Najlepiej bezpłatnego. Wiem, że to trudne, ale niestety chwilowo nie stać mnie na wydawanie kasy na programy. Tzn stać mnie, ale chcę to zrobić jak już kupię sobie nowiuśkiego maczka, na którego aktualnie składam :)
Od razu informuję, że nie będę pobierał żadnych opłat za tę "książkę". Wystawię jedynie możliwość płatności PayPal, jeśli ktoś stwierdzi, że warto wrzucić parę groszy za ten wysiłek.
Ów poradnik pojawiłby się szybko i byłby w kółko aktualizowany. O tych aktualizacjiach informowałbym oczywiście na blogu. Komentarze mile widziane.
Obiecane skrinszoty programów też powinny się pojawić niebawem. Bo w sumie jest już co skrinszotować :)
Za pomoc w doborze narzędzi, z góry dziękuję.
Lekarstwo
Zdałem sobie właśnie sprawę dlaczego ostatnio zaliczam tak straszliwe doły emocjonalne.
Zaczynam narzekać niewiadomo na co, a odpowiedź jest przecież oczywista.!
Od tych kilku dni, kiedy jedynie narzekam, nie grzebałem nic przy moim projekcie! Innymi słowy nie robiłem nic konstruktywnego. Dziś będę się "leczyć" i jak dobrze pójdzie i skończę pewien etap, to podzielę się skrinszotami! :D
Życzę sobie powodzenia :D
Konsekwencje pewnego pytania
- To dlaczego chciałby pan zmienić pracę? - zapytał mnie starszy jegomość z uśmiechniętą twarzą. W ogóle nie schodził mu z twarzy ten przyklejony uśmiech. Typowy manager starający się ukryć prawdziwe intencje pod delikatnym płaszczykiem wariactwa. Był pocieszny. Wprowadzał luźną atmosferę do rozmowy. Pozwalał popuścić trochę nerwy, skoncentrować się na pytaniu. Techniki relaksacyjne rodem z sali egzaminacyjnej. No ale przecież właśnie tego potrzebowali pytani.
Ja, na szczęście, miałem przygotowaną odpowiedź już od dawna. Nie potrzebowałem się specjalnie wysilać. Z rozbrajającą szczerością zacząłem mu opowiadać o problemach mojego pracodawcy, o mojej wewnętrznej potrzebie rozwijania się. Korzystałem z tych samych lekcji, co on. To była polityczna gra.
Wymiana zdań szła starym szablonem. Atakował mnie na przeróżne sposoby. Jego oczy krzyczały touche. Ja podchwyciłem ten jego entuzjazm podnosząc kolejne garde. Szkolono mnie do tego przez lata. Doświadczenie w tej materii miałem lepsze niż przeciętny człowiek.
Byłem z tego niezmiernie dumny.
Mimo to, po rozmowie czułem pewien niedosyt. Przewijałem w głowie film z całego dnia, sobie samemu wytykając błędy, które popełniłem w trakcie rozmów. Nie byłem z siebie zadowolony w ogóle. Duma też jakoś znikła.
Pusty niesmak nie do końca udanego dnia.
Mimo wszystko następnego dnia poinformowano mnie, że przeszedłem rozmowę kwalifikacyjną śpiewająco i mogę rozpocząć pracę w prężnie rozwijającej się firmie. Kontynuować ten ciągły rozwój, na którym tak mi zależy.
Dopiero potem zaczął się horror.
Nowy świat, nowe wyzwania i wieczne problemy. Przełamywanie barier językowych i kulturowych. Zderzenie się z inną rzeczywistością. Nie gorszą. Inną. Początkowe problemy z poukładaniem sobie życia tasowały się niegrzecznie z wiecznym piekle w firmie. Odbiło się to silnie na postrzeganiu mnie jako kompetentnej osoby.
Czas na szczęście pomaga w wielu kwestiach. Również w tym przypadku, cierpliwość zajęła pierwszoplanowe miejsce w moim modelu zachowań. Niczym mnich z klasztoru Shao Lin pokonywałem kolejne trudności techniką zimna kropla drąży skałę nie siłą lecz ciągłym spadaniem.
Zaczęło działać. Wyuczona w ostatniej chwili technika przynosiła korzyści w stabilizacji i codzienności. Czasami jednak wciąż wybuchałem dziwnymi napadami złości wziętymi w sumie z nikąd. Powody były zawsze, ale w końcu nauczyłem się z nimi walczyć, prawda?
Koniec końców okazało się jednak, że główny priorytet przyjazdu legł w gruzach. Ów rozwój nie tylko nie istnieje. Ma wartość ujemną. Uwsteczniam się powoli wykonując robotę porównywalną do składania długopisów. Płacą jedynie lepiej i chyba tylko dlatego jeszcze tutaj jestem.
Ale gdzie w tym wszystkim logika?
Praca w poprzedniej firmie przyniosła mi może niezbyt wygórowane korzyści materialne, ale dawała pewnego rodzaju stabilizację. Dawała jednak nieprawdopodobną siłę w postaci rozwoju.
Chodziło się do pracy z przyjemnością. Nie z przymusu.
Tymczasem zamienił stryjek. Produkuję pieniądze metodą taśmową. Składam swoje długopisy, kalkulując sobie w głowie ile jeszcze wytrwam. Jak długo będę się musiał jeszcze męczyć i co mi to wszystko da.
Nie, żebym czegokolwiek żałował. Jest mi jedynie przykro, że to już nie pracownik ściemnia, żeby dostać pracę, a pracodawca, żeby zyskać pracownika. Świat stanął na głowie. Tak teraz ja na niej stanę. Zobaczę wszystko z innej perspektywy i może wymyślę w końcu jaki kolejny krok powinienem wykonać.
Nie koniecznie zaraz. Ale plan trzeba mieć. Bo to nie sama praca, co perspektywa wykonywania tego zawsze dewastuje najmocniej.
Klient nasz pan
Jak zdołałem już to wyjaśnić w poprzednim wpisie - Anglicy są bardzo dziwni. Również od strony czegoś, co globalnie można nazwać usługami. Mimo wszystko, nasze polsko-amerykańskie podejście, że "klient nasz pan" (customer is the key) tutaj kompletnie nie działa.
Po raz kolejny magister głupoty zaatakował nasze nerwy i pozbawił nas telefonu i internetu raz jeszcze. Zapewne na kolejny tydzień. Całe szczęście, nauczony doświadczeniem, przestałem się już tym przejmować i zabieram dziś całą ekipę na piwo.
Bo co samemu robić w domu?
Po raz kolejny zdałem sobie sprawę, że kombinatoryka tego kraju jest całkowicie sprzeczna z wszystkim, czego nas uczono od dziecka. Ignorancja jest tutaj jednak na bardzo wysokim poziomie.
Wspominam teraz słowa mojego ojca, który już przy wyjeździe do Wielkiej Brytanii przepowiadał mi przeprowadzkę znacznie dalej.
Miał rację.
Za kilka lat, kiedy moje nerwy będą już na wyczerpaniu, zaatakuję USA. Z tego co pamiętam - tam jest też przesrane, ale po amerykańsku. A przecież my - Polacy - już od dawna jesteśmy do tego amerykanizmu przystosowywani.
Tymczasem ostrzegam po raz wtóry - jeśli potrzebujecie coś załatwić w Wielkiej Brytanii - uzbrojcie się w stalowe nerwy i często przygryzajcie język. I tak nic nie wskóracie. A co się da załatwić samemu - róbcie.
No i powtarzam znów - unikajcie British Telecom jak ognia. Tam ignorancja jest wysoka nawet jak na Brytyjczyka.


