On reducing complexity

02 IX 2010, 00:14

There's one part of my work that really fascinates me on a downright artistic level. It's the sense of excitement I experience each time it occurs to me that my coworker managed to create a system which, at the same time, feels both intuitively correct and as simple as possible. Whenever I'm tasked with modifying such a system, it's always satisfying to remind myself that I do not really have to think much about how to actually perform the necessary changes, since I can instantaneously figure out the couple of places where the edits should occur. And most of the times, I'm right -- the parts of the code I need to change or extend are where I think they should be, and in the shape I expect them to be. If the code lacks some functionality (and it rarely does), that's not a cause for alarm -- when coding, my predecessor had only his particular set of requirements in mind, so he left some parts of the system in a non-flexible state. Now it is my job to add this flexibility, so that the system can encompass the new functionality. I always get a feeling of satisfaction whenever I manage to add new features while increasing the complexity of the whole system by only a minuscule amount.

Granted, both me and Jacek come from more or less the same background -- Linux/FLOSS in general and PLD in particular, and the product we're working on is partially PLD-derived, so a lot of what I've just described actually amounts to figuring out how to integrate new functionality (often in the form of new applications) into a custom-built limited-purpose Linux distribution. And that's something which has very few obvious ways to do it right and a lot of ways to do it very wrong. On top of that, the (brilliant in its intended simplicity) Unix philosophy of separating systems into small discrete applications with clearly defined interfaces is ever present in our job.

However, the true reason for all of the flowery language from the first paragraph is not just that I know how to use RPM proficiently and am such a very happy camper for it. Actually, it's because the very same qualities I try to attain professionally, in particular being able to reduce the complexity of systems to their most simple and beautiful (see, more flowery language) form, managed to heavily skew my general world view. I actually look at the world I live in, or, to be more precise, at the society and its various constructs, in much the same way as I look at my work. In the XXI century, the age of globalisation and interconnectedness, complexity lurks everywhere and each time I encounter it, I have the strong urge to try and reduce it. To attain true simplicity in its most functional form.

I do know of at least one other complex system of written rules designed to govern interactions with the real world, other than computer source code. It's the legal system. I know for a fact that the number of both the national and international laws that govern even my mid-sized country, is increasing by the hour. Without any signs of reversing the trend.

And blindly increasing complexity is not progress, but a certain path to a catastrophe. For example, each time I come across the statement, that ignorance of law does not excuse the offender, I'm reminded of the sheer absurdity of it. In a western society it's physically not possible for a human to navigate reality with the full knowledge of all the rules and regulations that he might or might not be breaking at any given time. For a potentially eye-opening presentation of how many pitfalls await citizens in a legal system, I strongly suggest viewing the first part of this talk (it's based on the U.S. legal system).

I'm of the opinion that each individual, considering how different our experiences might be, has the potential to give a unique and at least partially useful solution to any problem he has given serious thought to. Having said that, I also believe that people rooted in the "IT mindset" might (just might), on average, have more insight to offer than most, solely due to the nature of our profession. The more ambitious of us try to learn new ways of approaching and solving problems on a regular basis. The very core of our job is to create tools that enable people to take control of the enormous complexity found in the world. One can't send probes to Mars with just pen and paper. Or run a nation's electricity grid. Or its banking system. Or any one of the many millions of extremely complex tasks. Computers and their software are a necessity.

As often is the case in life, I unfortunately have no idea what to do with this knowledge. Yes, the legal system is very complex and yes, if performed correctly, its simplification might be beneficial to society. Also, it's true that IT deals with handling complex problems and has, over the years, developed tools and methodologies for that very purpose. However, my actual understanding of even my own country's legislative process is extremely limited, so I have no real idea how to even try to approach the problem. I do, for example, think that it would be extremely cool to have all of Poland's laws be developed using a central SVN-like repository, I do not however know how to (a) solve such a problem on a technical level and (b) make politicians adopt such a system, once it is ready.

I have tried to write a system that would extract the legislative data from the current sources, figure out which is the next version of which and then present a mercurial repository out of it, but failed miserably. Even trying to compile a list of sources proved to be too daunting a task. Extracting meaningful data (projects of new law) out of those sources would require writing unique code for each source and would be very hit or miss. PDFs are meant for printing, not extracting text from.

Unfortunately I apparently do not possess the sheer will power of an RMS (or an Eben Moglen for that matter), in order to perform such a feat on my own. Instead, I'm kind of hoping that a leader will emerge with a clear vision and the skills necessary to make that vision a reality.

In the past year I have "toured" parts of the NGO landscape of Warsaw and I can't say anything bad about it. Motivated people trying to change reality by doing the things they think are important. However, I can't say that I've met anyone with a clear vision of how to achieve far-reaching fundamental changes, accompanied by the skills and motivation required to focus purely on realizing that vision, without getting distracted by "lesser" goals.

I'm still young and optimistic however. Sooner or later someone like that will emerge and I'll find him. I'm really hoping for sooner, though :)

P.S. Thanks to riddle and Jubal for proof reading. Unfortunately my grasp of the English language is not sufficient for me to be able to express my thoughts in a manner as simple, as I would like.

(Photo: Alcoa Composite One, mikeyexists CC)

Pekińczyki i kopie zapasowe

27 VIII 2010, 21:43

Lato, upalna noc, niewielka sypialnia i spory dylemat. Zostawić otwarte okno i liczyć się z tym, że przejeżdżający co kilka minut pojazd może być jednym z tych głośniejszych [1], czy też je zamknąć i pozbawić się jakichkolwiek szans na ruch powietrza w pomieszczeniu? Chodził mi wręcz po głowie pomysł, czy by się nie dało oprogramować laptopa i paru głośników i stworzyć choćby trochę działającego kancelatora (?) irytujących fal dźwiękowych, no ale byłem dosyć zajęty ślubem i różnymi takimi, więc weny nie starczyło.

[1] Tego lata udało mi się zapałać szczerą i gorliwą nienawiścią do jednośladów. Pekińczyki chędożone.

Mam nadzieję, że się w perspektywie, no, powiedzmy trzydziestu lat doczekam tego, żeby większość pojazdów, a w szczególności te głośniejsze (ciężarówki i jazgocykle), porzuciły wynalazki panów Diesla i Spalina na rzecz silników elektrycznych.

Niestety Nissanowy ufowóz nie napawa przesadnym optymizmem. Acz w bliżej perspektywie może dałoby się wprowadzić jakiś większy zamordyzm w kwestii dozwolonych poziomów hałasu wydawanego przez pojazdy wszelakie? Podejrzewam, że jest to teraz jakoś tam uregulowane, ale pewnie niezbyt skutecznie.

W bliższej perspektywie reflektowałbym też na rozwiązanie problemu anachroniczności sposobu udostępniania treści audiowizualnej produkowanej przez i na potrzeby tradycyjnych stacji telewizyjnych. Fizycznie odbiornika telewizyjnego (ani jego równoważnika w postaci jakiejś przystawki do komputera) nie mam już chyba z dwa lata, natomiast telewizji nie oglądam w ogóle od gdzieś tak lat pięciu. Co nie zmienia faktu, że z popularnymi w naszym kraju serialami (House anyone?) jestem znacznie bardziej na bieżąco, niż znaczna większość tutejszej populacji. I zawdzięczam to kopiom zapasowym sporządzanym przez moich bliskich przyjaciół z zagranicy, a udostępnianych mi przy pomocy internetu.

I nie zrozumcie mnie źle, nie przeszkadza mi wybitnie fakt, że autorzy/dystrybutorzy tego, co oglądam, nie zarabiają na mnie nawet pół dolara, bo mam świadomość tego, że akurat moje pół dolara nie zrobi im kompletnie żadnej zauważalnej różnicy. Bardzo nie podoba mi się natomiast to, że takich ludzi jak ja, dla których kopie zapasowe z internetu są jedyną sensowną opcją, jest bardzo bardzo dużo. I ta masowość uderza w twórców, bo nie dostają takiej (pieniężnej) informacji zwrotnej, jaką powinni. I mogą przez to nie zrobić następnego sezonu. A wszystko przez archaiczność dystrybutorów treści.

Fakt faktem, jestem dosyć wymagającym odbiorcą i trudno mnie zadowolić. Mam np. bardzo niską odporność na trafiające we mnie żenua, więc bezwzględnie wymagam możliwości wygodnego przewijania i przyspieszania tego, co oglądam. Taki Louie jest mieszanką genialniejszych narracji ostatnich lat oraz pokładów żenua na poziomie The Office. I byłbym głupcem porzucając te pierwsze ze względu na te drugie.

To tak jak w książkach. Jeśli książka jest ciekawa, ale autor miał akurat napad dukajowego lodolejstwa, no to przeskakuję te kilka akapitów i dalej cieszę się lekturą!

A, właśnie, książki to jest ciekawa analogia. Kilkadziesiąt jednostek płatniczych poświęconych na jedno tomiszcze zapewnia mi, zależnie od grubości, od kilku do nawet kilkunastu (Kroniki Amberu ftw!) godzin rozrywki. I są to kwoty, na które jestem w stanie przystać [2]. Oczekiwałbym, że seriale będą dostarczać podobną wartość rozrywkową za podobne kwoty (liczone w godzinach na złotówkę). Tak, wiem, że stworzenie dziewięciogodzinnego (13 odcinków) sezonu serialu jest o rzędy wielkości droższe, niż napisanie parusetstronicowej książki, czy dwóch, ale to nie jest tak, że seriale zapewniają mi o rząd wielkości lepszą rozrywkę, nie?

[2] Bo nie mam innego wyjścia, acz już przy dwóch domownikach można sobie nieźle nadszarpywać miesięczny budżet tego typu rozrywką. Liczę na nieco niższe ceny przy wersjach elektronicznych, jak już czytniki ebooków w najbliższych latach na tyle spowszednieją i dojrzeją, że nie będzie mi szkoda któregoś zakupić.

Nie mam pojęcia jak rozwikłać problem tej dysproporcji, ale też nie jest to moja branża. Istotne jest to, że nie będę płacił paruset złotych za ilość rozrywki na poziomie tego, co dostarcza książka za złotych kilkadziesiąt.

Podejrzewam, że jedynym sensownym rozwiązaniem, tak jak obecnie, są reklamy. I owszem, jestem je w stanie ścierpieć, przy pewnych założeniach. Po pierwsze, nie mając styczności z reklamami od wielu lat, odczuwam żenua bardzo bardzo fizycznie, jak mi się nie daj Cthulhu zdarzy trafić na typową reklamę proszku Omo w standardowym telewizorze. Jeśli kiedyś dystrybutorzy zaczną w naszym kraju oficjalnie udostępniać seriale bez opóźnień, bez napisów, bez lektora i bez różnych innych durnych ograniczeń [3], to mam głęboką (naiwną?) nadzieję, że będą mieli wystarczająco oleju w głowie, by temu konkretnemu targetowi nie puszczać najdurniejszych reklam, jakie udało im się znaleźć.

[3] UPC daje mi dostęp do paru kanałów telewizyjnych do oglądania via przeglądarka w ramach abonamentu internetowego, ale musiałbym do tego odpalać specjalnie maszynę wirtualną z Windowsem akurat na tym komputerze, na którym chciałbym sobie tę telewizję pooglądać. Not gonna happen.

Smutna prawda jest niestety taka, że pewnie nigdy nie dojdziemy w tym kraju do takiego stanu, gdzie wystarczająca mi większość z powyższych warunków, w tym te krytyczne, jak np. obsługa Linuksa, zostanie spełnionych i będę mógł z radością zasilić szeregi oficjalnej statystyki oglądalności.

Chyba MRW kiedyś pisał, że jakiś podzbiór wprawnych i często jumających konsumentów kultury zawsze będzie istniał i problemem nie jest ich istnienie w ogóle, tylko fakt, że w obecnych czasach praktycznie cały mainstream konsumentów robi to, co powinni robić tylko oni. A to już kole w oczy.

Jestem informatykiem. Jak Neo, posiadam nieomal magiczne moce naginania matriksu nowoczesnych technologii do swoich życzeń ;). I nie grozi to zawaleniem systemu pod warunkiem, że robimy to tylko ja, ludzie mi podobni oraz nasi bliscy przyjaciele zza granicy udostępniający nam swoje kopie zapasowe. A mainstream powinien być grzecznymi bateryjkami i nie drażnić robotów.

I tą naciąganą analogią kończę ten przydługawy wpis, bo zaczynam już wpadać we wczesnego Steve'a Yegge. A poza tym niedługo żona wróci do domu, więc chyba czas na niebieską pigułkę.

Kto zatrudnia

20 VII 2010, 02:18

Od jakiegoś czasu chodziło mi po głowie sprawdzić jak wyglądają "fundamenty gospodarki" i jakie jej sektory odpowiadają za to, że ludzie mają gdzie pracować. Dzisiaj miałem chwilę nerdowego natchnienia i zacząłem się przekopywać przez publikacje GUS-u, aż w końcu dotarłem do tej właściwej, czyli podsumowania aktywności ekonomicznej ludności za IV kwartał 2009. Poniżej przedstawione są dane z tabeli 2.4 ("Pracujący według płci i wybranych sekcji PKD", str. 148), która pokazuje które (luźno zdefiniowane i... specyficznie pogrupowane) sektory gospodarki odpowiadają za jakie zatrudnienie. Liczby są podane w tysiącach i sumują się do niecałych szesnastu milionów.

Uwagi do danych:

  • Sektora czysto informatyczno-hightechowego, to my raczej za dużego nie mamy. (Podejrzewam, że on się mieści w działalności profesjonalnej, naukowej i technicznej.)
  • Bardzo spory wycinek całości to edukacja, administracja publiczna i opieka zdrowotna, czyli, w znacznej mierze, nasze podatki.
  • Te statystyki niestety niczego nie mówią na temat tego, na jakie zawody jest jaki popyt.
  • Z tabeli 9 na stronie 82 by wynikało, że od lat zatrudnienie w rolnictwie nam maleje, a w przemyśle i usługach rośnie.

P.S. Przypominam, że trwa tydzień publikowania ładnych wykresów zainaugurowany przez Jacka. Autorzy najładniejszych wykresów będą mogli przeprowadzić statyczną analizę kodu joggera i opublikować wyniki.

(Nie, nie będą mogli, wygłupiam się.)

Informatyk, stworzenie nocne

20 VI 2010, 22:08

Heh, to był głupszy i bardziej czasochłonny pomysł, niż mi się wydawało wczoraj, jak go wymyśliłem :) Na początek pokażę wam obrazek, a później wytłumaczę co to właściwie jest.

To co widzicie u góry, to wyplotowane przy pomocy Google Annotated Timeline godziny w których wyłączałem komputer w ciągu ostatniego roku. Nie wchodząc za bardzo w szczegóły:

  • Można przybliżać i oddalać albo przy pomocy przycisków w lewym górnym rogu (1m 3m 6m, etc.) albo przy pomocy rolki w myszce.
  • Jak nie widzisz flashowego obrazka, to poproś o pomoc kolegę z komputerem dla dorosłych. ;)
  • Mam 5 lat danych (nigdy nie działający logrotate FTW!), z czego przeanalizowałem ostatnich 13 miesięcy. Z tego przedziału czasowego wyciągnąłem dobre dane dla 318 dni.
  • Nie przykładałem się za bardzo ani do kompletności (m.in. zignorowałem drugi komputer), ani jakości danych. Zazwyczaj wyłączenie komputera stacjonarnego jest jedną z ostatnich rzeczy, jakie robię w ciągu dnia, więc powinno wystarczyć do zauważenia ogólnych trendów w moim trybie dobowym.
  • Ładnie widać jak gdzieś na początku lutego postanowiłem przestać żyć jak wampir i jak mi to nawet całkiem nieźle poszło. Acz ostatnie parę tygodni zacząłem znowu wracać do nałogu.
  • Ze względu na brak odpowiedniej funkcjonalności, minuty są przedstawione jako ułamki dziesiętne godzin, a godziny 22:XY i 23:XY to odpowiednio -2 i -1 (brałem zakres 22:00..8:59).
  • Ja się musiałem przypatrzeć, żeby zauważyć trendy. Podejrzewam, że tego typu dane prezentowane w formie graficznej znacznie zyskują na czytelności, gdy się je najpierw przejedzie jakąś funkcją wygładzającą.
  • Za cholerę nie potrafię wymyślić jakim zagrożeniem miałoby to dla mnie być, ale jakoś nieswojo czuję się publikując taką ilość tak "prywatnych" danych o samym sobie. Dziwne.
  • Jeśli komuś z was się nudzi i też chciałby sobie na bloga wstawić takie coś, to wystawiłem repozytorium hg z kodem i krótkim howto jak tego używać.

Nad czym teraz pracujesz?

11 VI 2010, 02:14

Dziesięć razy (liczba wyjęta z kapelusza) się do napisania tej notki zabierałem i mam dość, więc wstęp będzie od myślników:

  • Jak byłem młody, robiłem dużo hobbystycznych projektów. Teraz nie robię. Brakuje mi tego.
  • Moja praca sprowadza się w znacznej mierze do: wymyśl co masz właściwie zrobić, przeanalizuj dostępne technologie, zaprojektuj, rozplanuj po czym rób aż zacznie działać. Ten sam proces stosuję do projektów hobbystycznych, ale to żadna przyjemność robić wieczorem dokładnie to samo, co robiłem od rana (tylko z innym zestawem technologii).
  • Większość wymyślanych przeze mnie pomysłów pozostaje na papierze.
  • Te kilka za które się w ciągu ostatniego półrocza zabrałem, leży teraz odłogiem w różnych stadiach rozgrzebania. Zapał do ich skończenia mi się wyczerpał.

Parę dni temu odbyłem z dwoma takimi nadaktywnymi społecznie długą dyskusję, która natchnęła mnie bardzo optymistycznym pomysłem -- gdybym przy tych moich paru projektach mógł liczyć na wsparcie, to szansa ich ukończenia wzrosłaby znacząco!

Acz teraz jak tak sobie o tym myślę, to jest to tylko częściowo prawda. Z mojego doświadczenia wynika, że podstawą udanego projektu jest ktoś gotowy na popychanie całości do przodu poprzez wykonywanie tych wszystkich zadań do których chętnych nie ma, a które wykonać trzeba, żeby projekt nie umarł. (Niektórzy na tę pozycję mówią "lider", acz ja użyję naukowego terminu "popychacz".)

Jeśli nie ma popychacza, to niezerowa liczba członków zespołu (nazwę ich "miotłowymi"; zwizualizujcie sobie curlingiem) i tak nic nie da -- projekt będzie stał w miejscu. Od wielu już lat trenuję taki scenariusz z honejem -- jest duża kupa mało przyjemnej roboty i póki nie było komu wziąć na klatę głównego jej ciężaru, póty wszystko stało w miejscu. Aż wreszcie honej się zmobilizował parę razy i wygląda na to, że teraz już tylko moja stosunkowo niewielka (i bardzo nieprzyjemna) partia zadań stanowi ostatnią przeszkodę na drodze do Nirwany.

Czyli -- było kilku miotłowych, to się nic nie działo. Znalazł się popychacz, to i projekt zmierza ku finałowi.

Tylko co z tego wynika dla mnie? Ano nawet gdybym miał miotłowych, to o ile jako popychacz nie zrobię przynajmniej dwóch trzecich (liczba wyjęta z kapelusza) projektu sam, jego los nie będzie różnych od moich dotychczasowych projektów -- niedokończony rozgrzebany bałagan.

A jeszcze nawet nie poruszyłem kwestii realności utworzenia sprawnej grupy miotłopychowej. Jak byłem młody, istotny był dla mnie aspekt towarzyski -- lubiłem robić coś z grupą ludzi, a później dyskutować o tym na listach mailowych i ircu. Teraz mógłbym coś zrobić ze względów częściowo sentymentalnych (za młodu pracowałem nad projektem X, to coś pomogę, żeby nie umarł), a częściowo towarzyskich (znam pewnych ludzi od dawien dawna, to pomogę). Ale czy widzę siebie aktywnie uczestniczącego w jakiejś nowej grupie?

Chciałbym, nawet mamy pomysły jak się do tego zabrać, acz realistycznie marudnie patrząc -- ja się po parę tygodni zabieram za odpisywanie na maile (cześć shadzik!) pomimo tego, że dostaję średnio jeden na miesiąc. Regularną interakcję w większej grupie coś ciężko widzę.

Eh, się zgryźliwą marudą zrobiłem w ostatnich latach. Ale przynajmniej się jeszcze zupełnie nie poddałem! A ty, czytelniku? Google Analyticsy twierdzą, że jest cię ponad pół tysiąca, mógłbyś mi więc coś zasugerować. Powiedz mi, na przykład, w jaki sposób taki mekk regularnie znajduje ochotę na testowanie jakiegoś nowego programu i opisywanie go na swoim blogu? Albo opisz swoje własne metody...

Czy już się zupełnie poddałeś?

Znowu zróbmy joggerową rewolucję!

24 V 2010, 02:55

Za co lubię joggera:

  • bardzo naturalna integracja z jabberem,
  • strona główna -- od siedmiu lat czytam joggera w ten sposób (właśnie do mnie dotarło, że jedynym serwisem którego używam praktycznie tak samo jest... facebook),
  • ludzie -- przychodzą, odchodzą, piszą na różne tematy; nie czytuję onetu, a i tak jestem całkiem nieźle poinformowany co się dzieje; plus zawsze mogę liczyć na czytelników mojego bloga poza tymi, którzy mnie subskrybują.

Powyższa lista wystarczyła, by w 2003 powstało coś unikatowego w polskim internecie. Jest 2010 i jogger znowu ma szansę wprowadzić rewolucję, pytanie, czy z niej skorzysta. Co by było, gdyby jogger znów stał się hubem dla pewnej części polskich blogerów? Gdyby zaoferował im miejsce spotkań i kilka rozwiązań technicznych, bez których życie staje się bardziej szare. Po kolei:

  • Nikt przy zdrowych zmysłach nie będzie w obecnych czasach od zera pisał własnej platformy blogowej. Jest za dużo gotowego, dojrzałego kodu, by z niego nie skorzystać. Lepiej go dostosować i skonwertować obecne dane do nowego formatu.
  • Jeśli jogger zamieni się po prostu w planetę, to umrze. Nic z listy "za co lubię joggera" nie może zostać utracone.
  • Część ludzi będzie wolała hostować blogi na swojej infrastrukturze. Czemu im nie pozwolić, jednocześnie umożliwiając uczestniczenie w joggerowej społeczności na równych prawach? Riddle ma rację, niektórzy z joggera jako platformy hostingowej po prostu wyrastają i tego nie przeskoczymy.
  • Rozwiązania wymyślone i zakodowane w ramach spełniania poprzedniego punktu należałoby zrobić w sposób koszerny po czym opublikować w ramach upstreamowych projektów. W ten sposób rodzą się nowe trendy w sieci. Bo ktoś wpadł na pomysł, zakodował w łatwo używalny sposób i teraz prawie wszyscy tego używają. Mamy szansę być taką siłą, może warto spróbować?

Kompletnie nieprzemyślana garść technicznych keywordów:

  • Konta natywne i konta zewnętrzne. Natywne to jest to, co teraz. Zewnętrzne zasysają treść do głównej ze wskazanego RSS-a, ale poza tym mają dokładnie taką samą funkcjonalność, jak natywne (głównie chodzi o komentarze, bycie zalogowanym, etc.).
  • Jogger ma taki google analytics light, czyli kawałek javascripta, którzy ludzie z zewnętrznym kontem mogą umieścić na swoim wordpressie, żeby na joggerowej głównej były "Najpopularniejsze" także dla externów.
  • Konto joggerowe jest od razu providerem openid, dzięki czemu na blogach externów też się da łatwo komentować ze swojej joggerowej tożsamości. (Nie wiem jak działa openid, może nie być to takie różowe.)
  • I/lub do poprzedniego punktu: osobne pluginy, kawałki javascriptu, czy cokolwiek innego umożliwiające (prawie) natychmiastowe powiadomienia via jabber o komentarzach umieszczonych na blogach externów.
  • Inne interesujące pomysły.

Nie sądzicie, że fajnie by było, gdyby patrys, da.killa, czy riddle mogli znowu tutaj wrócić?

Powyższe pomysły bezwstydnie zerżnięte od hoppkego i trójkąta.

Brzydkie słowa na "p"

08 V 2010, 18:55

Zawartość poniższej listy to (permanentny) ruchomy cel, któremu spróbowałem nadać jakiejś struktury w nadziei, że się komuś przyda.

Uwaga: poniższe jest pisane z punktu widzenia osoby pracującej w domu, co ma swoje specyficzne wyzwania.

  1. Jeśli co jakiś czas łapiesz się na analizowaniu własnej produktywności, to pogratuluj sobie -- jeszcze się nie poddałeś, czyli może będą z ciebie ludzie.
  2. Praca nad sobą to długofalowy proces. Nie zostaniesz Stevem Jobsem w 21 dni. Licz w tygodniach, miesiącach i latach.
  3. Do zarządzania tym procesem musisz podejść metodycznie, tworząc sobie odpowiednie narzędzia. Następnie regularnie poświęcaj czas na testowanie funkcjonowania owych narzędzi oraz wprowadzanie modyfikacji. (Jest to fajna zabawa!)
  4. Przez narzędzia rozumiem tak sposób zarządzania własnym czasem (organizery, notatniki, mindmapy, etc.), jak i model w ramach którego myślisz o tych sprawach.
  5. Oba są równie ważne. Bez tego drugiego nie będziesz miał pomysłów na ulepszenia w tym pierwszym. Bez tego pierwszego... heh.
  6. Pełna lista dystrakcji i zachowań prokrastynacyjnych jest Świętym Graalem. Kompletuj ją stopniowo. Nie zniechęcaj się kolejnymi podejściami.
  7. Wprowadzając nowy pomysł w życie zawsze najpierw zapisz swoje oczekiwania. Później pamiętaj, żeby konfrontować otrzymane rezultaty z tym, co miałeś nadzieję, że się stanie.
  8. Ustal sobie realistyczne dzienne limity pracy. Produktywne osiem godzin (tzn. odliczając jakiekolwiek przerwy) jest osiągalne, ale tylko dla kogoś, kto długo trenował. Zacznij od czegoś sensownego, np. sześciu godzin pięć dni w tygodniu.
  9. Ustal sobie minimalny dzienny próg godzinowy, poniżej którego staraj się nigdy nie schodzić. Jeśli tego nie zrobisz, to wystarczą dwa nieproduktywne dni z rzędu i choćbyś stawał na głowie, tygodniową godzinówkę będziesz miał śmiesznie małą, co jest bardzo demotywujące (i psuje weekend). Ja celuję w minimum trzy godziny.
  10. Unormowanie sobie trybu dobowego jest przydatne.
  11. Siadając rano do pracy ustaw sobie timer na np. 30 minut. Po upłynięciu tego czasu musisz wyłączyć reddita i zabrać się za robotę.
  12. Zaczynaj pracę od czegoś lekkiego, przyjemnego, wręcz mechanicznego, niekoniecznie będącego twoim dzisiejszym zadaniem. Postaraj się uprzyjemnić sobie wejście w tryb pracowy. (Obecnie eksperymentuję z kombinacją: słuchanie TED-a i robienie czegoś bardzo mechanicznego. Acz nie trzymam kciuków za tę metodę.)
  13. Jeśli przetrzymasz z 15-20 minut (liczby wyciągnięte z kapelusza) pracy, to wpadasz w odpowiedni tryb i zaczyna się robić fajniej.
  14. Acz łatwo z niego wypaść sprawdzając co chwilę facebooka. Świadomie nie pozwalaj sobie na to. (Tak, może to polegać na zamykaniu nowo otwartej karty przeglądarki trzy razy na minutę.)
  15. Prokrastynacyjna Spirala Śmierci: im dłużej zajmujesz się czymś innym, niż pracą, tym szczelniej twój mózg pokrywa Mgiełka Niemocy. Mgiełka Niemocy nigdy nie przeszkodzi ci w dalszej prokrastynacji, ale coraz bardziej oddala perspektywę zabrania się za coś produktywnego. Po paru godzinach w pełni rozwinięty Mgiełozor Armagedonu doprowadza cię do stanu niemal wegetatywnego -- jesteś w stanie spędzić resztę dnia klikając "odśwież" na facebooku w nadziei, że ktoś coś napisze.
  16. Jedynym sposobem wyrwania się z PSŚ jest Reset Systemu. Musisz wstać od komputera, przez jakiś czas zająć się czymś zupełnie innym, po czym wrócić do komputera (już bez Mgiełki) i od razu zabrać się za robotę, tym razem uważając, by nie wpaść w kolejny PSŚ. Obecnie używane przeze mnie sposoby:
    1. prysznic,
    2. krótki spacer,
    3. przeniesienie się z pracą do stojącego biurka (testowane od niedawna; zaczynam wtedy pracować przy laptopie postawionym na szafce; znacznie zmniejsza to ochotę na obijanie się, bo nie da się komfortowo stać w nieskończoność).
  17. Będziesz miał okresy mniej i bardziej produktywne. Pogódź się z tym.
  18. Produktywność autora jest w jego opinii OKDR. Oznacza to, że wszystkie powyższe rady są bardzo mało warte (bądź też jest potwierdzeniem punktu drugiego).
  19. Brzydkie słowa na "p" to produktywność i prokrastynacja.

US i brak ochrony danych osobowych

04 V 2010, 12:00

Polscy przedsiębiorcy chcący robić interesy w Unii muszą dostać "potwierdzenie zarejestrowania podmiotu jako podatnika VAT UE". Namacalna przydatność tego jest taka, że później można wejść na odpowiednią stronę i zweryfikować, czy podany przez jakiegoś zagranicznego kontrahenta NIP istnieje i czy jest rzeczywiście przypisany danej firmie.

Tylko mam wrażenie, że u nas jakiś urzędnik dostał bardzo mocnej zaćmy, bo jeśli sprawdzić NIP polskiego przedsiębiorcy, to zamiast nazwy i adresu siedziby firmy dostanie się imię i nazwisko właściciela wraz z jego adresem domowym. Grrr.

Jestem zły. Specjalnie po to nie rejestrowałem firmy w obecnym miejscu zamieszkania, żeby nie dało się mnie li tylko przy pomocy internetu zlokalizować. Ale przez jakiegoś niekompetentnego durnia i tak się da.

Update: tak ma być i zmieni się to dopiero w lipcu 2011 :/

Polish Horror: z książeczki pingwinariowej

31 III 2010, 01:07

Jeśli jesteś byłym lub obecnym autorem referatów do książeczki pingwinariowej (aka prelegentem), to skoncentruj się przy czytaniu poniższych fragmentów, a później pomyśl o człowieku, który najpierw musiał rozszyfrować co poeta miał na myśli, a później zbić z tego jakąś spójną całość.

Przy odpowiednim nagromadzeniu tego typu kwiatków, tekst może zostać uznany za niereanimowalny, a Komisja Programowa może zacząć rozważać, czy autor włada wystarczająco biegle językiem ojczystym, by być się w stanie spójnie wysłowić podczas prelekcji. I czy może go profilaktycznie nie zdjąć z agendy, póki jeszcze czas.

Przyszłym pingwinarzystom i ogólnie autorom tekstów technicznych ku przestrodze.

  • Najczęściej używane z nich można znaleść na stronie o nazwie ”Map Features” wiki tego projektu i jest ich ponad 150 bo zmapować można praktycznie wszystko.
    • Królestwo za przecinek.
  • Zaczynając na ulicach, jak w nazwie projektu, i ich najbardziej oczywistych właściwościach takich jak nazwa (oficjalna, potoczna, poprzednia z czasów PRL oraz w innych językach...), szerokość, ograniczenia (wyprzedzania, prędkości, wysokości, ciężaru na oś, jednokierunkowość...), nawierzchnię, kąt nachylenia, itd., poprzez punkty dostępu WiFi, aż po pomnik gigantycznej truskawki w stanie Massachussetts oraz nawiedzone domy w Szkocji.
    • Królestwo za kropkę (albo dwie).
  • Ponieważ jednak projekt został rozpoczęty w Wielkiej Brytanii to większość tagów jest słowami w języku angielskim, w związku z czym dziś kiedy ma już ponad 200 tys. zarejestrowanych uczestników, nad znaczeniami tych słów, podtekstami, ortografią, semantyką i logiką, zwłaszcza kiedy przychodzi potrzeba ustanowienia nowej nazwy lub wartości do określania nowego typu obiektu, toczą się niekończące się debaty, głeboko przypominające debaty na temat wyższości pewnego edytora tekstu nad innym.
    • Siedmiowierszowe (w druku) zdanie robiące za samodzielny akapit.
  • Ważnym faktem jest że każdy taki link jest równocześnie powiązaniem w przeciną stronę, który czytelnikowi Wikipedii (człowiekowi lub programowi) strony takiej jak strona o ulicy Aleje Jerozolimskie w Warszawie pozwala za pomocą odpowiedniej wyszukiwarki dotrzeć do jej przebiegu w OpenStreetMap i innych własności tam zapisanych.
    • 23:27 <@ike> nie rozumiem tego zdania.
    • 23:27 <@ike> nawet pomimo tego, iż to jest ważny fakt.
    • 23:30 <@pifpaf> nie rozumiem tego zdania
  • Podstawowe elementy składowe RHEV to jądro Linux z KVM, libvirt oraz Red Hat Enterprise Virtualization Manager — oprogramowanie zarządzające systemem wirtualizacyjnym, odpowiedzialne za wysoką dostępność, migrację maszyn wirtualnych, zarządzanie przestrzenią dyskową, a także dynamiczne zarządzanie zasobami sprzętowymi. Zarządzamy korzystając z przeglądarki WWW.
    • Ja bym spróbował jeszcze z dwa razy wstawić słowo "zarządzać".
  • Rozpatrując aspekty związane z bezpieczeństwem (...)
    • To jest ogólny motyw u właściwie wszystkich piszących, że nie zastanawiają się nad poprawnym zastosowaniem różnych słów. Czy "aspekt" to jest "samodzielne" słowo? Nie, aspekty są czegoś. Można mnie pocałować w nos, ale niech mnie ktoś pocałuje w aspekt.
    • Polecałbym patrzeć na każde "niesamodzielne" słowo oddzielnie, zastanawiać się nad poprawnym użyciem, po czym sprawdzać, czy oby na pewno sami je poprawnie użyliśmy. Jesteśmy na jakimś etapie projektu, czy w etapie?
  • PDFu, JavaScript`ach, Luke-owi
    • Tego wypadałoby się nauczyć raz, a porządnie, po czym trzymać się przy każdym użyciu:
    • PDF-u -- bo akronim
    • JavaScriptach -- bo normalne słowo, po prostu odmieniasz po polsku
    • Luke'owi -- bo normalne słowo (imię), po prostu odmieniasz po polsku, ale trzeba jakoś zaznaczyć nieme "e" na końcu ("Lukeowi" wygląda dziwnie)
  • jest to implementacja w Java silnika JavaScript zarządzana przez Fundację Mozilla, udostępniona na zasadach open source
    • Szyk zdania może utrudniać lub ułatwiać czytanie. Lepiej brzmi: jest to zarządzana przez Fundację Mozilla i udostępniona na zasadach open source implementacja w Javie silnika JavaScript, acz też nie do końca, bo mnie to "w Javie" kłuje w oczy. Zamieniłbym na "javowa implementacja silnika".

yummy poldek

21 III 2010, 00:06

Came up with a weird idea and decided to hack up a demo:

[root@mmaszyna ypoldek]# ./ypoldek
Welcome to the ypoldek shell mode. Type "help" for help with commands.
ypoldek:/all-avail> upgrade aiksaurus
Setting up Upgrade Process
ypoldek:/all-avail> run
--> Running transaction check
---> Package aiksaurus.i686 0:1.2.1-11 set to be updated
--> Finished Dependency Resolution

=======================================================================
 Package           Arch         Version          Repository       Size
=======================================================================
Updating:
 aiksaurus         i686         1.2.1-11         th-arch         298 k

Transaction Summary
=======================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total download size: 298 k
Is this ok [y/N]: y
Downloading Packages:
aiksaurus-1.2.1-11.i686.rpm                     | 298 kB     00:00     
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : aiksaurus-1.2.1-11.i686                         1/2 
  Cleanup        : aiksaurus-1.2.1-10.i686                         2/2 

Updated:
  aiksaurus.i686 0:1.2.1-11                                            

Finished Transaction
ypoldek:/all-avail> quit

Yes, the idea is to take poldek's interface (which is very intuitive to use for shell-using admins) and put it on top of yum (which I'm guessing has a reasonable amount of active developers and a modern codebase). Unfortunately a quick poke around yum's code reveals that getting all the nice parts of poldek implemented would probably a longer project. And no idea how upstream would react to "weird" patches.

Microsoft na ratunek przed Złym Googlem

04 III 2010, 00:50

Parę dni temu przerzuciłem się na binga. W skrócie: daje radę. Więcej spostrzeżeń podam za kilka akapitów, ale najpierw odpowiedź na podstawowe pytanie:

Ale po co?

Bo nie podoba mi się to, ile google ma o mnie danych. Tak, znam motto don't be evil i doceniam to, że Larry i Siergiej próbują stworzyć "przyjazną" korporację, ale prawda jest taka, że nie ma czegoś takiego. Korporacje są duże, mają swoje wielkie, powoli się kręcące tryby i nieuchronnie jacyś ludzie w te tryby wpadają.

Główny problem z googlem jest taki, że oferuje on zbyt dużo zbyt dobrego softu. Z dwa razy zdarzyło mi się migrować różne organizacje na gmaila. Sam używam konta gmailowego do mojej poczty "firmowej", żeby mieć pewność, że mi filtr spamowy nie pożre żadnych faktur. Przy tworzeniu agendy pingwinariowej za centrum dowodzenia służył nam googlowy arkusz kalkulacyjny. Google mapsy też fajne są (acz zumi ma znacznie lepsze zdjęcia satelitarne, więc regularnie z niego korzystam).

Rezygnowanie z używania wszystkich tych usług byłoby dla mnie mocno kontrproduktywne. Ale co za dużo, to nie zdrowo:

  • Wyszukiwarka loguje wszystko, czym się interesuję, od małych kotków po przepisy na stworzenie bomby zapalającej. Pamięta też w które linki klikam.
  • Mapy logują wszystkie miejsca, które odwiedzam.
  • Youtube pamięta jakie filmiki oglądałem.
  • Żeby korzystać z różnych aplikacji, mam konto, które identyfikuje mnie z imienia i nazwiska (i chyba nie tylko).
  • Różni autorzy osadzają mapy u siebie, więc google może dodatkowo śledzić strony, które odwiedzam.
  • To samo google analytics.
  • Analizowanie całej mojej poczty, jeśli używam gmaila.
  • Analizowanie wszystkich moich pogaduszek, jeśli korzystam z gtalka.

I znowu problem z googlem -- robi wszystko za dobrze. Ja jestem całkiem pewien, że oni są w stanie wszystkie te dane całkiem sprawnie skorelować. A że na reddicie jest osadzony analytics, to teoretycznie mogą mieć wgląd w 95% mojej aktywności sieciowej. Z całego mojego życia.

Jak się bronić?

Moje sposoby przez te lata:

  • Nigdy nie zacząłem używać gmaila jako podstawowej skrzynki, pomimo fantastycznego antyspama. Wolę się użerać ze swoim własnym lokalnym bogofiltrem w kmailu i starą dobrą skrzynką pocztową via pop3.
  • Tak, używam gmaila do poczty firmowej, ale to są nieistotne, nieprywatne dane.
  • Nigdy nie zacząłem używać gtalka do prywatnych rzeczy. Administruję własnym (zasadniczo to PLD-owym) serwerem jabbera.
  • (Nawiasem mówiąc moja poczta i jabber są na Słowacji, ale to było niezamierzone.)
  • Po miesiącach rozważania takiej opcji, przerzuciłem się z wyszukiwaniem na binga.
  • Poważnie bym się zastanowił przed użyciem googlowego GPS-a.

Różnice

Parę dni używania to nie jest specjalnie dużo, ale wyszukiwarka to jest bardzo podstawowe narzędzie, więc miałem sporo okazji porównywać.

Pro:

  • Google mnie nie śledzi.
  • Znacznie trudniej byłoby jakiejś osobie bądź instytucji zebrać kompleksowy zestaw danych na temat mojej aktywności sieciowej.
  • Bing jest mniej "zlokalizowany", więc szukając czegoś, nie muszę się przedzierać przez dwie strony polskich linków.
  • Microsoft, w moim odczuciu przynajmniej, jest obecnie firmą mocno pozbawioną potencjału technologicznego. Więc o ile po Googlu spodziewam się, że za parę lat wymyśli jak, analizując moje wyszukiwania, stwierdzić jaki jest mój ulubiony kolor bielizny, o tyle w przypadku Microsoftu nie odczuwam takiego zagrożenia.

Contra:

  • Lepsza "lokalizacja" googla ma swoje zalety. Bing mi przy szukaniu warsztatu nie podstawi od razu pod nos mapki z takowymi w okolicy.
  • Parokrotnie głównym wynikiem wyszukiwania była jakaś podstrona zamiast strony głównej (google trafiał poprawnie).
  • Nadal nie mam zaufania do trafności wyników i w przypadku "ważnych" rzeczy potwierdzam w googlu.
  • Acz fakt faktem, jest to mocno subiektywne odczucie. I chyba czasami jest na odwrót -- to bing lepiej trafia.
  • Cała googlowa wiedza stała się bezużyteczna. Muszę poszukać odpowiedników keywordów typu "site:" i "inurl:".

Podsumowanie

Tak, wiem, pewnie w oczach niektórych wyjdę na paranoika. Ale wolę być safe, niż sorry. Faktem jest, że ilość śladów zostawiana przez nas w sieci będzie się z czasem tylko zwiększać. Zdolności korelowania tych śladów przez różne organizacje także. Mocno niepokoi mnie perspektywa wejścia na celownik jakiegoś "kompetentnego inaczej" polskiego stróża prawa, który mógłby zarekwirować mi na czas nieokreślony cały domowy sprzęt elektroniczny, tym samym uniemożliwiając pracę (komputer), kontakt z kimkolwiek (komputer+telefon) czy nawet dostęp do własnych pieniędzy (także komputer+telefon, a może karta debetowa też, bo w końcu ma chip). Dlatego pocieszenia szukam w tym, że otrzymanie logów z mojej działalności internetowej wymagać będzie nie dość, że poproszenia o to zagranicznej korporacji, to jeszcze na dodatek więcej, niż jednej.

Nawiasem mówiąc, zastanawialiście się kiedyś jak by to było, gdyby przyznali u nas pewnym służbom uprawnienia do włamywania się i wgrywania trojanów na komputery obywateli? Można założyć, że różne firmy oferowałyby organom państwowym programy do tegoż włamywania się w które wbudowane byłyby niepubliczne exploity na różne popularne kawałki oprogramowania. W tym na routery wifi Thomsona, które UPC rozdaje w dziesiątkach tysięcy (?), dorzucając je do pakietów instalacyjnych kablówkowego internetu.

Chyba trzeba było nie pozbywać się Linksysa z wgranym openwrt...

P.S.

Po paru latach się skusiłem i wrzuciłem tutaj google analytics, żeby móc was w ładnych wykresikach oglądać. Mój niecny plan jest taki, żeby utopić googla w waszych danych jednocześnie odcinając mu dostęp do moich. :) Poza tym pogrzebałem trochę przy szablonie, acz zmiany nie powinny być specjalnie zauważalne.

Asperger, ty bucu

13 I 2010, 21:12

Nie, nie masz zespołu Aspergera. Jeśli publicznie twierdzisz, że masz, to poważnie się zastanów, czy nie używasz tej "diagnozy":

  • jako odznaki honorowej, bo przecież wszyscy fajni, bardzo inteligentni nerdzi mają Aspergera, i/lub
  • jako wymówki dla swoich słabych zdolności społecznych.

Po pierwsze -- nawet jeśli jakiś prawdziwy psycholog powiedział ci, że kwalifikujesz się na Aspergera (a tak naprawdę nigdy nie rozmawiałeś z psychologiem, po prostu przeczytałeś artykuł na wikipedii, co nie?), to nie oznacza to wcale zbyt dużo. Jeśli rzeczywiście myślisz o sobie w kategoriach geekowo-nerdowych, to powinieneś rozumieć o co chodzi w nauce i metodzie naukowej. Co za tym idzie powinieneś wiedzieć, że fizyka i matematyka są bardzo mocno naukowe (a co za tym idzie powtarzalne, weryfikowalne, etc.), a cała reszta już niekoniecznie. Medycyna, taka normalna od chirurgów i antybiotyków, jest całkiem nieźle naukowa, ale (na nasze nieszczęście) dalej sporo jej do ideału. Psychologia natomiast wypada tutaj mocno blado. O ile część zaburzeń (pewnie zwłaszcza z zakresu psychiatrii klinicznej) jest całkiem nieźle sklasyfikowana, opracowane są skuteczne metody ich leczenia, ba, znane są nawet ich genetyczne podstawy, o tyle różne syndromy i inne zespoły, zwłaszcza te kulturowo popularne jak Asperger właśnie, mają bardzo nieostre kryteria klasyfikacji i kompletnie nieznaną przyczynę. Istnieją spore wątpliwości, czy w ogóle mają jakąkolwiek przyczynę i nadają się do "leczenia", czy też może po prostu podpadają pod jakiś kawałek spektrum ludzkich zachowań.

Nie jesteś chory na Aspergera, jesteś po prostu (upraszczając) dosyć inteligentny, masz specyficzne zainteresowania oraz zbyt mało rozbudzoną potrzebę kontaktów towarzyskich, żeby zmusić się do rozmawiania o tym, o czym rozmawiają twoi rówieśnicy (czyli, z twojego punktu widzenia, kompletnych pierdołach). Analogicznie najpopularniejszy chłopak w twojej klasie nie ma, hmm, zaburzenia aspołecznego, tylko po prostu jest tak okablowany, żeby bardzo chcieć być towarzyski, więc przez wiele lat starał się taki być i teraz już doszedł do dużej wprawy.

I druga sprawa -- używanie Aspergera jako wymówki, że przecież jestem nerdem, to nie mam życia towarzyskiego i w ogóle dziwny jestem. Nie masz życia towarzyskiego, bo taki jest twój wybór. Niekoniecznie do końca świadomy, ale twój. Wmawianie sobie, że przecież masz Aspergera, więc nie ma szans, żebyś był w stanie prowadzić "normalne" życie towarzyskie, jest szukaniem wymówek i oszukiwaniem siebie. Tak, jak najbardziej istnieje możliwość, że z różnych stylów życia, najbardziej odpowiadałby ci styl samotnika, ale to jesteś w stanie definitywnie stwierdzić dopiero starając się żyć bardziej w społeczeństwie przez jakiś czas i dochodząc do wniosku, że ci to jednak nie do końca odpowiada. I przez "w społeczeństwie" nie mam na myśli "w szkole". Szkoła jest bardzo sztucznym miejscem, a twoi rówieśnicy są tylko dziećmi i interakcje z nimi z założenia będą wyglądać znacznie inaczej, niż z osobami dorosłymi. Dzieckiem-nastolatkiem szkolnym jesteś przez naście lat. Osobą dorosłą, przy obecnej przeżywalności, spokojnie z pięćdziesiąt, może nawet siedemdziesiąt-osiemdziesiąt lat. Decydowanie co robić przez ten drugi okres na podstawie relatywnie krótkiego i mocno niereprezentatywnego okresu pierwszego, jest bardzo głupią decyzją.

I wierz mi, na twój obecny stan wpływ ma sporo rzeczy i twój mityczny Asperger niekoniecznie jest tutaj dominujący. Gdyby twoi rodzice mieli więcej możliwości i pomysłów na kontrowanie twojego wstępnego braku umiejętności społecznych, gdy byłeś jeszcze młody, to kto wie, może przez miniony czas byś doszedł do jakiejś sensownej wprawy i w ogóle byś o tym nie myślał. Ba, gdybyś nie był jedynakiem, tylko miał dwójkę starszych braci, to pewnie nie miałbyś wyjścia, tylko przez te lata być przynajmniej trochę bardziej oblatany w kontaktach z innymi ludźmi, niż jesteś. Takich "gdyby" jest wiele. I działają one także w drugą stronę. Gdyby rodzice tego popularnego chłopaka w podstawówce potrafili lepiej zaprzyjaźnić go z jakimś ciekawym tematem, to może poszedłby do dobrego technikum, wkręcił się np. w (zaawansowaną) mechanikę samochodową i skończył na studiach inżynierskich. Nadal potencjalnie może to zrobić, mając już te dwadzieścia klika lat, ale najpierw musi sobie wybić z głowy, że jest totalnym nieukiem i nieudacznikiem. (Ludzie serio mają takie zwroty w życiu.)

I nie ma tu żadnego "ale ja jestem inny, ty nie zrozumiesz". Mój koronny dowód że się da, ma na imię Magdalena i za pół roku (z hakiem) zostanie moją żoną. A uwierz mi, nie jesteś większym nerdem ode mnie, koniec końców wszyscy byliśmy podobni.

I żeby było jasne -- ja nie twierdzę, że zostaniesz najpopularniejszym człowiekiem na dzielni. Jest to jak najbardziej do wykonania, jeśli bardzo chcesz, ale jeśli nie chcesz, to też dobrze. Nie musisz być naj. Wystarczy, że będziesz wystarczająco towarzyski, żeby być zadowolony z poziomu swojej towarzyskości. Ludzie są różni, lubią różne rzeczy w różnym stopniu.

Możesz mi zaufać, wiem co mówię. Po półtora roku mieszkania z kobietą wiem jak drastycznie różne mogą być reakcje dwojga ludzi na te same sytuacje i to na najbardziej podstawowym, emocjonalnym poziomie. Jak bardzo może się różnić podstawowe okablowanie, przemyślenia (lub ich brak), emocje wywoływane daną sytuacją (lub ich brak), jej obraz. W zaufaniu powiem ci, że lubię o sobie myśleć jako o całkowicie przeciętnym człowieku, zwłaszcza w kontekście towarzyskim. Jeszcze w Opolu miałem grupę zupełnie normalnych znajomych i nie miałem problemu w dogadywaniu się z nimi. Nie jest to do końca prawda i Magda potwierdza, że ewidentnie odstawałem swoimi reakcjami na tle innych. I tak, z tyłu głowy wiem o tym, ale nie przeszkadza mi to myśleć o sobie w tym kontekście jako o całkowitym przeciętniaku. Skoro Piotrek był jednym z najspokojniejszych, najbardziej łagodnych i po prostu najbardziej uprzejmych ludzi, jakich miałem okazję poznać, a jakoś nikt nie zwracał uwagi na to, że jest "inny", to czemu ja mam być ze swoim zestawem cech?

Więc dobrze ci radzę, powiedz Hansowi, że jest bucem i nie chcesz mieć z nim więcej do czynienia, po czym skup się nad tym, co chcesz osiągnąć i jak to zrobić. Garść konkretniejszych porad:

  • Jeśli po prostu nie rozumiesz na jakiej zasadzie działają interakcje w grupie, to poczytaj na ten temat. Psychologia ma te tematy rozgryzione dosyć dokładnie już od dosyć dawna, więc przyswajalnych, popularnonaukowych książek jest sporo. Skoro jesteś nerdem, to nie powinieneś mieć problemów z przeczytaniem ze zrozumieniem książeczki, czy dwóch. Ja tak zrobiłem, zadziałało.
  • Z empatią i emocjami jest jak z innymi funkcjami mózgu, są trenowalne. Za pierwszym razem może nie wpadniesz w trakcie rozmowy na to, co dany ton głosu oznacza, ale za trzecim może to być automatyczne. (Acz nie oczekuj tu cudów, niektórzy są w tym po prostu naturalnie lepsi.)
  • Zacznij uprawiać coś fizycznego. Ja polecam brazylijskie jiujitsu (i ogólnie nieuderzane, zapaśnicze sporty). Moja ogrowata budowa (krótkie nogi, długi tułów, długa szyja, długa głowa, krępa budowa) i łatwość w przybieraniu wagi były upierdliwe aż do czasu, gdy się nie okazało, że pozwalają na względnie łatwe nabranie i utrzymanie całkiem sensownej ilości mięśni. Fakt faktem w chwili obecnej jestem oficjalnie otyły, ale nadal jestem w stanie robić pompki i podciągać się na drążku. Za nastolatka nie byłem tego w stanie robić ważąc kilkadziesiąt kilogramów mniej.
  • Zacznij uprawiać coś fizycznego, z kobietami. Tak, to też, jeśli ci się uda, ale akurat teraz chodzi mi o taniec. W wieku bodajże lat 21 poszedłem na kurs tańca dla początkujących. Półtora roku później, będąc już na grupie turniejowej, razem ze swoją 17-letnią partnerką wystąpiłem na turnieju tańca w Brzegu, gdzie przebrany w idiotyczny strój (czarne, obcisłe, lekko błyszczące i bardzo wysokie spodnie; przy mojej, erm, mało smukłej budowie) zatańczyłem tak, że zajęliśmy ostatnie miejsce, przegrywając z dużą ilością znacznie ode mnie młodszych dzieciaków. Nie umierałem w trakcie z zażenowania, nic mi nie było, zatańczyłem jak umiałem najlepiej, a teraz mam zabawną historyjkę do opowiadania. A jak poznałem Magdę, to mogłem ją z czystym sumieniem zaciągnąć na tańce. Da się.
  • Ale nie da się z dnia na dzień. Planuj w miesiącach i latach. Ja planowałem, żeby w ciągu kilku lat mieć dziewczynę. Dwa lata później zeszliśmy się z Magdą. Kolejne dwa lata i bierzemy ślub. I przynajmniej pod tym względem mam spokój na resztę życia, nie muszę się męczyć wracając do pustego domu.

Tipsy dla pracujących w domu

26 X 2009, 20:55

Jak człowiek siedzi w domu i się obija zamiast pracować, to go nachodzą różne dziwne pomysły. Np. na zrobienie sobie tipsów. Różowych.

Ewentualnie można też coś kombinować. Ja praktycznie od początku, czyli już ładnych paru lat, miałem problemy z systematyczną pracą. Przez jakiś czas się pracowało dobrze, później coraz gorzej, później się odbijało (oh, pardon), znowu jakiś czas dobrze... i tak w nieskończoność. Bardzo męczące i frustrujące. W małych firmach jeszcze o tyle upierdliwe, że człowiek ma świadomość, że jak czegoś nie zrobi, to zastępstwa za bardzo nie ma, zadanie będzie niezrobione, kontraktu nie będzie, pieniędzy nie będzie, firma upadnie, na kredyt nie starczy, dom zabiorą, dzieci będą głodne chodzić, AAAAAAAAA!

Ostatnio miałem kolejny, przedłużający się cykl Problemów z Zabraniem się do Pie... Roboty (aka PZPR), więc się wkurzyłem i zaproponowałem szefowi System -- ja mu codziennie najdalej w południe (ach ten unormowany tryb dobowy) piszę na żabie co zrobiłem wczoraj i co mam zamiar robić dzisiaj (w formie dwóch zdań; aspołeczny nerd jestem, więc często nawet "hi" nie mówię). On natomiast ma pamiętać, że jak godzina zero minie, to ma się dopytywać wtf i o co kaman.

Jak na razie się sprawdza, a i szefowi odpowiada, bo na bieżąco wie co ja tak właściwie w danym momencie robię. Miejmy nadzieję, że System nie będzie kolejnym krótkofalowym motywatorem, ale okaże się skuteczny już na stałe.

A, i w ramach kombinowania jakby tutaj się odgrzebać spod stosu papierowych notatek, jakiś czas temu postanowiłem wypróbować MindMapy (via FreeMind) i okazało się to być bardzo funkcjonalnym i ładnym rozwiązaniem. Ale o tym kiedy indziej.

Bootstrap 9.7

06 IX 2009, 00:00

Wybrałem się dzisiaj na to z założeniem, że choćby w celach kulturoznawczych trzeba zobaczyć, jak wygląda zbiorowisko rockstarowych nerdów z macbookami i iphone'ami. Iphone'a żadnego nie widziałem, ale parę maców i owszem. I Aleksa z kaskiem motocyklowym zamiast maca.

Jestem pozytywnie zaskoczony, bo oryginalny plan miałem taki, żeby pójść z dwa razy na coś takiego, stwierdzić, że z webem 2.0 to ja niewiele mam wspólnego, po czym sobie dać siana. A to było całkiem ciekawe!

Przez pierwszą godzinę gadał Paul Bakaus, lead developer czegoś, co się nazywa jQuery UI i jak rozumiem jest zbiorem widgetów i takich tam w javascripcie. Gadał o owym jQuery UI oraz ogólnie o tym co teraz można zrobić w przeglądarkolandzie i wyglądało to całkiem impressive: hw-accelerated 3d na webkicie, różne zaawansowane ficzery 2d bezpośrednio w css-ie, bez konieczności robienia hacków w js-ie i różne toolsy ułatwiające życie webludziom. Oczywiste skojarzenie było takie, że podobnie musiał wyglądać stan "normalnych" systemów operacyjnych naście lat temu -- techniczne możliwości już są, można tym robić fajne efekty, ale nie wszędzie jest odpowiednie wsparcie, biblioteki jeszcze nie osiągnęły odpowiedniego poziomu dojrzałości no i wydajność w niektórych miejscach kuleje.

Zapytałem prelegenta o parę rzeczy w tym klimacie i pogadałem z nim chwilę po jego wystąpieniu i highlevelowo sytuacja wygląda tak:

  • JS-owe backendowe biblioteki koncepcyjnie mają działać tak samo, jak te systemowe, czyli zapewniać programiście wygodny i przyjazny sposób na tworzenie różnych podstawowych i zaawansowanych ficzerów, a ze swojej strony zajmować się przezroczyście niekompatybilnościami przeglądarkowymi i robić graceful fallback przy nieobsługiwanej funkcjonalności.
  • jQuery UI osiągnęło taki poziom rozwoju community, że nawet jeśli jednego core dewelopera rozjedzie autobus, drugi się ożeni, a trzeciego wsadzą za zabójstwo żony, to projekt i tak powinien przeżyć. Or so he says.
  • Acz projekt oficjalnie sponsorowany przez nikogo nie jest. Sam Paul w poprzedniej firmie pracował nad nim bardziej fulltime'owo, w obecnej znacznie mniej.
  • Spooooooro lat zajmie dojście do momentu, w którym wszystkie przeglądarki będą obsługiwały w odpowiednio dobry sposób wszystkie API wymagane do tego, żeby w przeglądarce dało się robić takie UI, jak bezpośrednio w OS-ach.

  • A jakiejś specjalnej współpracy pomiędzy programistami jQuery UI, a twórcami przeglądarek obecnie nie ma (hgw jak to wygląda w przypadku alternatyw do jQuery UI).
  • Mają jakieś fajne frameworki do autotestowania UI.

Ogólnie -- fajnie, że to zmierza w tym kierunku, ale dlaczego tak przeraźliwie wolno? Jest 2009 ffs! Zanim zwykły śmiertelnik będzie mógł tego używać bez obrzydzenia, to ja pewnie będę miał już gromadkę dzieci.

Później gadał Rafał Agnieszczak (of fotka.pl fame) o tym jak stwierdził, że ma parę fajnych pomysłów na startupy, ale nie ma czasu ich zrealizować, ale za to ma 200k PLN-ów, żeby zrobili to inni. I tak powstał Startup School, czyli bodajże 10 teamów po 2 osoby każdy (wychodzi 20k per team). Talking pointsy jeśli dobrze pamiętam:

  • Kompetentni młodzi w dwuosobowych grupach (techniczny+marketingowy) mają całe wakacje na stworzenie funkcjonalnej wersji projektu. Opłacony hotel w wawie przez ten czas i zapewnione miejsca przy biurkach oraz kieszonkowe. Założenie jest takie, że w takich warunkach pracuje się kilka razy szybciej, niż w "normalnej firmie".
  • Młodzi ludzie są fajniejsi, niż starzy ludzie (acz były wyjątki, gdzie starzy == 25+ lat), bo im człowiek starszy, tym mniej sobie może pozwolić na tego typu kodowanie przez parę miesięcy po dużo godzin w tygodniu. W sumie się zgadzam -- sam mam 24 lata, narzeczoną, za rok ślub, za pół roku kupowanie mieszkania z kredytem, więc znacznie mniejsze możliwości spędzania czasu w ten sposób. Z przegięć w drugą stronę -- w skład jednego z teamów wchodzi 17-letnia dziewczyna.
  • W międzyczasie trza się było pożegnać z trzema osobami.
  • Za jakieś trzy tygodnie publiczne prezentacje projektów.
  • Każdy team kodował w czym chciał. Jeden nawet w .NECIE.
  • Biznes internetowy nie rządzi się jakimiś magicznymi prawami i najlepsza strategia to wymyślić sposób na odseparowywanie użytkowników od ich pieniędzy. Liczenie na dochody z reklam, zwłaszcza przy obecnym rynku, nie jest najlepszym pomysłem.

Ogólnie facet ciekawie gada.

No i na koniec był lightning talk jakiegoś człowieka, co w przyspieszonym tempie w Rubym zaimplementował serwis do wymiany gier (chyba gametrade.pl, ale nie jestem pewien) i z liczb wynika, że nawet mu to wyszło. Interesujące.

Na rozmowy "w kuluarach" już niestety nie zostałem i nie miałem okazji się pointegrować (i pomęczyć Paula o aspekty security takiego zwiększania możliwości przeglądarek), bo w pracy miałem spory problem, więc i tak mnie sumienie gryzło, że ponad trzy godziny wyciąłem na obijanie się na imprezie. Acz chyba niepotrzebnie, bo (a) jakbym się pokapował wcześniej, niż o pierwszej w nocy tego samego dnia, że dzisiaj jest bootstrap, to bym sobie piątek lepiej rozplanował i (b) pracowy evil xenU from outer space chyba został pokonany, więc w praktyce jednak miałem znacznie mniej roboty, niż się obawiałem, że mogę mieć. Ale o tym innym razem.

Podsumowując: czekam na następną edycję. Pewnie się dla odmiany zawiodę, że jakieś webotechniczne lowlevelowe nudy :)

Pandanda/petpet park on linux

29 VIII 2009, 18:28

If, like me, you can't go more then 24 hours without taking care of your panda, but sometimes you find yourself having access to a Linux-only machine, here is a solution for you! ;)

Flash on Linux is somewhat buggy (both the Firefox plugin and the standalone player) in that it refuses to connect properly to a remote server in games like pandanda. They'll probably fix it some day, but for the time being here's a workaround: use standalone flash player for windows via wine.

Sounds odd, but works. First download the mac+win bundle of flash players, extract the (non-debug) version of FlashPlayer.exe, run it via wine and point it to a problematic flash game, ..., profit!

Since this is for a kid who doesn't like too much typing and clicking, I've added a desktop shortcut, which in my case executes the following string: wine ~/.wine/FlashPlayer.exe http://play.pandanda.com/pandanda.swf.

Interestingly this also seems to work (although with more graphical glitches, like not displaying the password input box unless you click/tab-press into it) with Nickelodeon's Petpet Park (or neopets, beats me what the official name is). The proper flash URL for it would be: http://www.petpetpark.com/games/PPP.R24.swf

(I'm using the Live HTTP Headers Firefox addon to extract those URLs.)

Polskie Informatyczne

07 VIII 2009, 23:47

Przyszło mi do głowy, żeby zrobić przegląd polskich organizacji "informatycznych". Zastanowiło mnie, czy w Polsce jest coś, co działa podobnie jak amerykański EFF, lobbując za i przeciw pewnym rozwiązaniom prawnym, wspierając ludzi źle potraktowanych przez państwo w sprawach związanych z nowymi technologiami oraz ogólnie promując pewien zbiór poglądów na temat miejsca technologii w społeczeństwie.

Pierwszy pomysł -- ISOC Polska. Ze strony głównej wynika, że ISOC zajmuje się ogólnie pojętą neutralnością technologiczną państwa (i Europy), pisze listy, analizuje różne kawałki legislacji i ogólnie stara się, żeby Było Dobrze. Kojarzę z kilka nazwisk jeszcze z czasów honejowego RWO ładnych parę lat temu, gdy robiłem tam za groupie. Hm, chyba nawet byłem członkiem ISOC-u, ciekawym, czy mnie już wywalili...

(I tu mi się skończyły pomysły, ale na szczęście na irc-u podpowiedzieli.)

Polskie Towarzystwo Informatyczne. Pobuszowałem trochę po ich stronie i sprawiają dosyć mocno wrażenie akademickiego bunkra. Połowa ich form działalności to organizowanie różnego rodzaju imprez typu konferencyjnego. Po zdjęciach sądząc średnia wieku jest tam dosyć wysoka, zaś z kawałków informacji jakie mi się udało wyczytać wynika, że jakieś ustawy opiniują, coś tam w legislacji pomagają, ale kto, jak, gdzie i dlaczego, to mi się nie udało ustalić. Moja kompletnie nieobiektywna i nie podparta żadnym spójnym wywiadem opinia jest taka, że to taka założona przez akademików jeszcze za Kolumba organizacja, która nadal w znacznej mierze funkcjonuje tak samo jak 400 lat temu. Jak nie jesteś członkiem, to nie jesteś w stanie dużo ustalić poza to, że "PTI uważa iż". Taki odpowiednik *campów dla ludzi po czterdziestce :)

A, no i z newsów na stronie oddziału mazowieckiego wynika, że ostatnio zajmował się głównie byciem oddziałem mazowieckim (sprawy organizacyjne, jak to formalne stowarzyszenie), organizowaniem jakiegoś spotkania towarzyskiego o którym już coś kiedyś słyszałem (Rapid Baran Development) oraz prelekcją, o której informacja mnie mocno ukłuła w oczy. Otóż stoi tam, że prelegent, niejaki doktor inżynier Iksiński, jest "jednym ze światowych pionierów" tematyki wykładu. Ja wcale nie wykluczam, że tak jest w istocie, ale biorąc pod uwagę, że u nas co drugi profesor i dr hab. jest światowej sławy ekspertem od czegoś tam, to akademikom chcącym rzeczywiście sprawiać sensowne wrażenie wśród normalnych ludzi, którzy nie nawykli do gigantycznego wazeliniarstwa typowego dla polskich środowisk akademickich, sugerowałbym unikanie jak ognia tego typu określeń. Acz możliwe, że to tylko ja mam taką reakcję, bo napawa mnie odrazą myśl o tym, że moim przełożonym mógłby być generyczny polski dr hab.

Polska Izba Informatyki i Telekomunikacji. Ewidentnie organizacja nastawiona na polskie firmy z branży IT i telekomunikacyjnej. Ma zapewne działać jako "głos" pewnej gałęzi rodzimej gospodarki. Nic ciekawego dla zwykłego śmiertelnika, zwłaszcza takiego, który nie uważa, że dobra legislacja informatyczna, to jest taka, dzięki której członkowie PIIT dobrze zarobią.

I to by było na tyle. EFF-u w sumie nie znalazłem, ale my też nie jesteśmy żadnym frontierem elektroniczności, żeby się u nas precedensy ustalało. Acz w sumie najbliżej jest chyba ISOC.

LaTeX, dot i pisanie inżynierki

19 III 2009, 17:32

Kontynuując chwalebną tradycję publikowania źródeł latexowych swojej pracy na blogu, oto tarball ze źródłami do mojej.

Jakby ktoś potrzebował porównać oryginalne wersje niektórych plików ze zmodyfikowanymi, to można zassać całe repozytorium w mercurialu wpisując:

hg clone http://ep09.pld-linux.org/~mmazur/inz

Update: zapomniałem dodać, że buduje się toto za pierwszym razem przy pomocy make first, a później już po prostu make.

Natomiast finalny PDF wygląda tak. Czytania odradzam, nic ciekawego tam nie ma. Gdybym nie musiał, to bym czegoś takiego nie pisał.

Za to jakby ktoś chciał, to tutaj garść porad odnośnie technicznej strony klepania takiej pracy:

1. dot to jest bardzo bardzo przydatna rzecz. Prawie wszystkie obrazki wyprodukowałem bardzo szybko właśnie używając dota. Polecam screenshoty. No i moje obrazki.

2. Scribus się nie nadaje do malowania obrazków :)

3. Politechnika Opolska oczywiście nie udostępnia własnego loga w formacie wektorowym, bo po co. Na szczęście skalowanie odpowiednio dużego PNG jest całkiem sprawne i na finalnym wydruku wygląda ładnie.

4. Jeśli twoja uczelnia udostępnia styl do latexa w którym należy pisać prace, to go używaj. Jeśli nie, to się poważnie zastanów, czy warto. O ile "typowe" rzeczy są łatwe do osiągnięcia, jeśli styl je obsługuje, to już z niektórymi musiałem się tak masakrycznie nahakować... To widać po źródłach -- są najeżone jakimiś obejściami i modyfikacjami. Serio, wygląda to wybitnie paskudnie, a nie zależy mi na tyle, żeby próbować któreś z tych modyfikacji czyścić i później gdzieś mergować.

4a. Politechnika Opolska oczywiście nie udostępnia własnego stylu, bo po co.

Jeszcze raz: jeśli będziesz próbował walczyć z domyślnymi stylami, to zrobi się nieprzyjemnie. Przykłady drastyczne:

1. Żeby mieć tytuły dla tabelek wyrównywane do lewej, a tytuły dla obrazków wycentrowane, zrobiłem dwie komendy: \centercaption i \leftcaption, które zmieniają zmienną \leftcapalign na 0 albo 1 i zależnie od tego funkcja generująca podpisy (\@makecaption) zachowuje się tak, albo inaczej. Oryginalnie chciałem, żeby funkcja \@makecaption zachowywała się odpowiednio zależnie od kontekstu, ale nie znam na tyle składni texa, więc skończyło się na tym, że muszę dodać linijkę przed każdą tabelką i obrazkiem.

2. Do powyższego: żeby przy wyrównaniu do lewej mi równało do szerokości tabelki, a nie do marginesu, wygooglałem, żeby używać \ttabbox i \ffigbox przy definiowaniu tabelek i obrazków (paczka floatrow). Problem: one zwiększają countery do spisu treści o jeden, nie wiem po jaką cholerę, więc muszę najpierw rozpocząć tabelkę \begin{table}, później zmniejszyć na powrót counter dla tabelek \addtocounter{table}{-1} i dopiero wsadzić zasadniczą tabelkę do \ttabbox. Oczywiście nad tym wszystkim \leftcaption.

3. Używam \begin{lstlisting} do listingowania kodu (paczka listings). Tyle, że nie wiem, jak temu zmniejszyć czcionkę, więc przed każdym takim listowaniem jest \small, a po jest \normalsize.

3a. Do listowania konfiga takiego np. mysql-a, gdzie średnik jest komentarzem, ustawiam język na lispa, po czym po listingu wracam do domyślnej składni -- unix shella (listowałem głównie różnej maści konfigi z hashowanymi komentarzami).

3a. Powyższa komenda niektóre spacje robi z podkreślnikami. Olałem, nie chciało mi się kombinować jak to wyłączyć. I tak nikt tego nie będzie czytał.

Oczywiście nie mówię, że tego nie dałoby się zrobić czyściej, ale to nie jest konkurs na ładne źródła w latexu, więc jak zaczynało działać, to przestawałem w tym dalej grzebać. Ale są też przykłady łatwych rzeczy:

1. Żeby mieć numery tabel od 1 do N, zamiast w formacie X.N, gdzie X to numer rozdziału, wystarczy dać \counterwithout{table}{chapter} z paczki chngcntr

2. Żeby mieć captiony dla tabel na górze, wystarczy dać \floatsetup[table]{position=top} z paczki floatrow.

3. Paczka tocloft daje dużą kontrolę nad spisami treści. Ja głównie używałem \cftsetindents do zmiany wcięć w spisach tabel i figur, bo domyślnie są takie, jak dla chapterów, co przy numeracji 1..N zamiast X.N wygląda niezbyt ładnie.

4. \begin{adjustwidth} z paczki changepage pozwoliło mi na bardzo proste zwiększenie marginesów bocznych tylko i wyłącznie dla jednej tabelki, która była trochę szersza niż marginesy pozwalały. Domyślnie była przyklejona do lewego marginesu i wystawała za prawy (tak jak się robi z za szerokim tekstem), a ja chciałem ją mieć całkowicie wycentrowaną. No i się udało.

Były jeszcze jakieś drobiazgi, ale to można znaleźć w samych źródłach, zwłaszcza, że jest historia commitów i można porównać oryginalny plik mwrep.cls (czyli klasa, jakiej używałem, zamiast standardowego reporta) z modyfikowanym.

A, właśnie, licencja tego stylu bodajże zabrania modyfikowania go, więc jest tylko w formie informacyjnej, nie do dystrybucji. Jeśli ktoś by chciał rozpowszechniać tę klasę z moimi zmianami, to bodajże trzeba zmienić nazwę. Wersja tego pliku dostępna bezpośrednio przez www ma o-r na uprawnieniach, żeby google nie zindeksowało, więc można pooglądać tylko tą z mercuriala, albo tarballa.

Update: problem z numerowaniem tabel/obrazków wynikał z tego, że używałem od paru lat już obsolete teTeXa, zamiast TeX Live'a. Nie zdziwiłbym się, gdyby i inne rzeczy dało się znacznie czyściej zrobić, gdybym nie zaczął od używania staroci.

Jednak Linux

16 II 2009, 00:25

Pół roku temu zapowiedziałem, że jak będę zmieniał laptopa, to pewnie się na Vistę albo OS X-a przeniosę. W skrócie: stary laptop mi zmarł, więc kupiłem nowy, ale dalej siedzę na Linuksie, a na dodatek moja kobieta też, bo mnie poprosiła o migrację. Poza tym z desktopami ostatnio trochę lepiej.

Ale po kolei.

Nowy laptop przyszedł z biznesową wersją Visty na pokładzie, więc mogłem się nią trochę pobawić i była całkiem fajna. Niestety przez trzy dni nie miałem na czym pracować, więc musiałem szybko podjąć decyzję co dalej. Przeważyły dwie rzeczy:

1. Po zabawach z Vistą Magdy wiedziałem już, że Windowsy są zdecydowanie mniej konfigurowalne od desktopów linuksowych, więc musiałbym spędzić sporo czasu (i bardzo niewykluczone, że pieniędzy) na osiągnięcie tej samej funkcjonalności, a i tak nie miałem gwarancji, ze mi się to uda.

2. Migracja danych byłaby czasochłonna. Głównie przerażało mnie przecięcie poczty -- nie dość, że mam jej dużo na dysku, to jeszcze zostaje wykrywaniem spamu, konfiguracja kont i dużo filtrów. Do tego dochodzą konfigi firefoksa, psi, rss-y i pewnie jakieś tam pomniejsze rzeczy.

Czyli -- dużo roboty, niepewne wyniki i właściwie sam do końca nie wiedziałem co miałbym przez to osiągnąć. I czy za parę tygodni bym nie stwierdził, że to była bardzo błędna decyzja. Prawda jest taka, że ja nie robię za dużo na swoim komputerze, a to, co robię, to w końcu jednak dokonfigurowywuję.

Ciekawie było jakiś czas później, gdy Magda mi zasugerowała, żeby jej zainstalować Linuksa, bo mi system to w sumie po prostu działa, a jej Vista po roku od kupna komputera chodzi jak żółw i robi bardzo dziwne rzeczy. Backup, instalacja Ubuntu 8.10, migracja danych, no i:

The good:

  • System od paru miesięcy po prostu działa i nic mu się nie dzieje. Właścicielka nie chce wracać do Visty.
  • Rhythmbox jest fajny. Przynajmniej na początku.
  • Wirtualne pulpity są fajne.
  • Instalacja i aktualizacja softu są proste.
  • Klikalny support dla zamkniętych sterowników jest fajny.

The bad:

  • Wifi broadcoma jest niedopracowane. Na szczęście wykombinowałem, żeby wyłączyć sprzętowe szyfrowanie i od tego czasu działa stabilnie.
  • Transmission (klient bittorrenta) ma upierdliwe niedoskonałości. Odpowiednie bugi zostały zgłoszone.
  • Compiz ma artefakty. Do tego powodował bardzo poważny problem z firefoksem, który na szczęście udało się obejść.

The ugly:

  • Prawda jest taka, że gdyby nie ja, to Magdzie nie udałoby się doprowadzić systemu do stanu używalności. Acz jak już został doprowadzony, to jest bardzo fajnie.

W ogóle to była moja pierwsza okazja pobawienia się dłużej Ubuntu i muszę powiedzieć, że jestem pod wrażeniem. Ogólnie system jest całkiem dopracowany (jeden z trzech dyskryminujących błędów był związany z zamkniętymi sterownikami), a GNOME jest wygodny w użyciu. Przynajmniej w porównaniu do mojego KDE 3.5.

Acz cholera wie jak to będzie w dalszej perspektywie. Wygląda na to, że zmiany w KDE4 jednak długofalowo wyjdą projektowi na dobre i zrobi się z tego nowoczesne środowisko, które może GNOMA przegonić (i, co ważniejsze, być godnym rywalem MS-a i Apple'a). Zwłaszcza podoba mi się koncepcja integrowania (płynnie degradowalnej) funkcjonalności kompozytowego (?; tego z efektami '3d') desktopu z normalnym window managerem, a nie używanie kompletnie osobnego projektu do tego. Compiz fajny jest, ale to jest masa (a) potencjalnie niestabilnego i nieprzetestowanego kodu i (b) nikomu niepotrzebnej funkcjonalności. Serio, po chwili zabawy z opcjami, 95% efektów i tak pozostaje wyłączona. (A sam projekt próbuje nie umrzeć i nie wiadomo, czy mu to wyjdzie).

X.org też ostatnio wydaje pozytywne odgłosy. Wygląda na to, że The Open Source Way jednak jest wydajniejszą metodą produkcji oprogramowania i, dysponując znacznie mniejszymi siłami, uda się dogonić konkurentów.

Acz tu zaznaczam, że i tak jesteśmy znacznie w plecy. Linux dopiero teraz dorabia się nowoczesnej architektury dla desktopu i to na razie mają support dla chyba paru chipów intelowskich. Będzie co najmniej połowa 2010, zanim użytkownik będzie mógł wziąć dystrybucję, wrzucić do komputera i być pod niesamowitym wrażeniem tego, że jego karta graficzna jest obsługiwana tak dobrze, jakby normalnie pracował na Windowsie XP w roku 2001.

(Ciekawym jakie po drodze będą jaja z zamkniętymi sterownikami do NVIDII i ATI, gdy przyjdzie pora korzystać w nich z nowych interfejsów kernelowych.)

A ALSA? Cholera wie. Może kiedyś dorobimy się odpowiedniej ilości kodu wyższego poziomu, żeby linuksowy system dźwiękowy z piekła rodem Po Prostu Działał i pozwalał w łatwy sposób korzystać z czegoś więcej, niż podstawowej funkcjonalności. A może nie i akurat dźwięk na zawsze pozostanie piętą achillesową. Bo na to, że zajdą jakieś drastyczne zmiany na niższym poziomie i sama ALSA zostanie jakoś przerobiona, raczej nie liczę. Zresztą imho byłby to poważny błąd.

A ja za jakiś czas sobie pewnie przetestuję kde4 wraz z najnowszymi iXami, bo chyba mam w laptopie odpowiednią kartę Intela, żeby mi to działało jak trzeba.

Moje największe informatyczne wpadki

10 II 2009, 02:43

Zainspirowane tym wpisem.

1. Pisząc wiele lat temu automatykę ftp-ową do pld, wstawiłem tam demona lockującego (o, to). Fakt, oryginalnie miał robić też kilka innych rzeczy, ale w praktyce nigdy tego nie zakodowałem, więc zamiast paru prostych flocków jest osobny proces i gadanie z nim po unix sockecie.

2. Używanie lokalnych mysql-i jako miejsca do logowania danych, by je później zasysać na centralnego mysql-a i tam obrabiać. I to wszystko na kilkudziesięciu maszynach. W praktyce był to bardzo czasochłonny w maintainowaniu i podatny na błędy koszmarek, który na szczęście nie jest już w użyciu. (Przy padach maszyn bazy się psuły, trza je było ręcznie naprawiać, a update schematu bazy na parudziesięciu maszynach był... upierdliwy.) Serio, już lepiej pisać do pliku, jeśli się nie korzysta z jakiś dedykowanych rozwiązań dla systemów rozproszonych (hadoopy, czy coś).

3. linux-libc-headers. Eh. Przez sporo releasy kerneli 2.6.x upgrejdowałem parędziesiąt mega nagłówków (katalog "include" ze źródeł linuksa) ręcznie przy pomocy diffa i patcha. Tak, jestem skończonym idiotą. Obecnie z umiejętnością używania rzeczy typu mercurial (czy też po przeszkoleniu się w gicie) maintainowanie czegoś takiego byłoby pewnie o rząd wielkości łatwiejsze. Chooooociaż. To były czasy 2.6.0, rok 2003, git nie powstał jeszcze przez półtora roku. Ha! Nie jestem idiotą, tylko prawdziwym twardzielem! (Właśnie sobie uświadomiłem, że grzebałem w zdecydowanie fajniejszych rzeczach, jak byłem nastolatkiem :(

4. Backupy. Udało mi się w jednej firmie już kilka razy odtwarzać/odzyskiwać dane, bo ktoś/ja nie dopilnował, ale ewidentnie uczę się bardzo powoli, gdyż w chwili obecnej jestem odpowiedzialny za co najmniej kilka systemów, którym od dawna mam dorobić sensowny backup, a które, jeśli umrą, to spowodują, że będę miał bardzo przekichane. I nie tylko ja. Ale już niedługo wszystko będzie backupowane. Serio serio. (Dzisiaj miałem badblocka na laptopie i tak się przeraziłem, że szybko zapuściłem mój autobackup. Okazało się, że poprzedni był we wrześniu...)

5. Programistyczny mainstream. W javie zdarzało mi się dłubać, bo musiałem coś zmodyfikować, ale nigdy nie potrafiłbym sam napisać całego programu. C++ poznałem za gówniarza w stopniu podstawowym i nigdy tej wiedzy nie pogłębiłem (nigdy się na przykład nie nauczyłem tej debilnej składni ichnich templejtów). Ostatnie IDE, jakiego używałem z własnej woli (studia pomijam), to były jakieś MS Visual C++ za czasów Windowsowych, czyli przed 2002. Miałem wtedy 14-16 lat. C znam dobrze (sporo grzebałem; eskpertem nie jestem), pythona wystarczająco (cały czas używam, ale gigantycznych systemów nie pisałem). Czyli jak patrzę na ogłoszenia o pracę, to właściwie nie mam w nich czego szukać.

6. Windows. Chcielibyście zatrudnić administratora, który musi się chwilę w głowę podrapać, żeby znaleźć panel administracyjny, bo fizycznie Windowsy ogląda raz na pół roku przez pięć minut? No właśnie. Powinienem był się bardziej zdywersyfikować. Że dywersantem zostać.

Więcej grzechów nie pamiętam. Jeśli sobie jeszcze kilka przypomnę, to wrzucę drugą część tego wpisu.

Oczywiście liczę na rozpoczęcie łańcuszka. Jeśli namówisz dwóch innych blogerów na opublikowanie listy takiej, jak powyższa, to spotka cię wielka miłość/fiskus zabierze ci trochę mniej wypłaty (niepotrzebne skreślić). Serio serio.

Rynek IT a recesja?

13 XII 2008, 13:50

W tym odcinku, dla odmiany, jest pytanie do publiczności.

W dosyć krótkoterminowych planach (6 miesięcy) mam wyjazd do Warszawy, D.C. Wiąże się to ze zmianą pracy na jakąś "normalną", w sensie nie-zdalną.

No i powstaje problem -- czy za sześć miesięcy w ogóle będzie dało się gdziekolwiek zatrudnić? O ile rozumiem skutki globalnego kryzysu są u nas odczuwalne z lekkim lagiem, ale są. Ma ktoś jakieś doświadczenia? Coś już się na naszym lokalnym rynku zaczęło ruszać w tej kwestii? I jakieś przewidywania na najbliższą przyszłość?

Resetowanie auta jest kosztowne

07 XII 2008, 18:13

Znacie ten kawał o informatykach, którzy, żeby "naprawić" samochód, najpierw z niego wysiadają, a później wsiadają? No to nie jest on taki wyssany z palca.

Sam tak niestety robię. Automatycznie traktuję swój samochód tak samo, jak bym traktował komputer i po raz drugi mnie to poważnie pokopało po kieszeni i zmasakrowało plany.

Raz pierwszy -- przez parę tygodni samochód na niskich obrotach chodził nierówno, ale nic z tym nie robiłem[1]. Pojechałem nad morze. Wracając, gdy przejeżdżałem przez Słupsk, samochód na jednym postoju powydawał trochę dziwnych dźwięków przez chwilę, po czym przestał. Dziwne. Pewnie jakiś glitch, jedziemy dalej.

[1] Inna sprawa, że mechaników miałem takich, którzy nie zachęcali do częstego ich odwiedzania. Od tego czasu ten konkretny bug już jest resolved.

Oczywiście do tego Słupska, to mnie później z powrotem dowiózł assistance, po paru godzinach czekania na niego. A samochód odebrałem jakiś tydzień później, płacąc za: bilety PKP na trasie Opole--Słupsk, lawetę, robociznę, no i kilka części zmasakrowanych przez urwane łopaty wiatraka od chłodzenia (to duże kręcące się coś z przodu). Oczywiście po całej zabawie samochód przestał się rzucać na niskich obrotach. Zapewne przez nowy wiatrak, który teraz już pracuje równo i nie grozi urwaniem łopat.

Raz drugi -- przedwczoraj wyjeżdżając rano do Piły zauważyłem, że nie działa mi ogrzewanie. Oh well, po prostu pojadę bez. Przejeżdżałem obok swojego mechanika, ale nie wstąpiłem. Paręnaście kilometrów dalej, stojąc przed zjazdem na autostradę, czułem, że auto chodzi trochę nierówno i już miałem zawrócić, ale magiczne myślenie wygrało.

Zwozili mnie później z tej autostrady, za co zapłaciłem dosyć słono, więc w sumie koszta naprawy będą pewnie gdzieś tak x3. A do Piły, to sobie pojadę dopiero w poniedziałek.

Wnioski:

  • Laweta jest znacznie droższa i bardziej czasochłonna, niż profilaktyka antylawetowa.
  • Samochód nie ma tak poizolowanych podsystemów, jak komputer i "niewinne" objawy mogą sugerować (i często sugerują) poważniejsze problemy. W razie wątpliwości zatrzymać się i dzwonić do mechanika.
  • Samochód to fizyczny mechanizm. Restarty tutaj nie pomagają. Drobne usterki będą się tylko powiększać.
  • A ponieważ auto to system naczyń bardzo połączonych, drobna usterka jak już się przemieni w poważniejszą (coś się przestanie urywać i w końcu się urwie), może za sobą pociągnąć zmasakrowanie paru części, które są akurat umiejscowione obok. I też kosztują.

Multidistro mega howto

16 XI 2008, 01:58

Vide poprzedni wpis -- zna ktoś jakąś stroną z krótkimi opisami wykonywania różnych operacji pod różnymi distrami, czy mam sam zakładać? Znam rpm -qa, umiem obsługiwać poldka i chciałbym prostą stronę, z której dowiem się jak podobne rzeczy osiągnąć emergem, albo getując apta. Plus bardzo przydatne byłyby szybkie kursy budowania paczek, wytłumaczenie struktury deweloperskiej, rozkładu katalogów na ftp-ie, etc, etc. Taki data mine dla zaawansowanych adminów. Anyone?

Zwyciężył mercurial

27 VIII 2008, 02:21

Vide ostatni wpis. Mercurial jest fajny, bo:

1. Nie jest gitem. Jest specjalnie robiony w taki sposób, żeby być jak najbardziej intuicyjny w użyciu i nie straszyć ludzi nadmiarem opcji (większość bardziej zaawansowanych komend jest domyślnie nieaktywna i trzeba je aktywować w konfigu).

2. Jest w pythonie. Lubimy pythona.

3. Posiada równoważnik najważniejszych funkcji darcsa -- poleceń record/pull, w postaci poleceń record/transplant.

4. Ma out of the box (acz domyślnie nieaktywną) bardzo potężną funkcjonalność Mercurial Queues, które są implementacją koncepcji quilta w oparciu o VCS. Jest to naprawdę zajebista i prosta w użyciu zabawka. Na chwilę obecną w pracy zajmuję się dokładnie tym, co opisywałem w poprzednim wpisie -- grupuję sobie poszczególne commity składające się na implementację jednego konkretnego ficzera, po czym folduję je w jeden (a następnie zmieniam im kolejność, żeby rzeczy branch-specific były zawsze commitowane ostatnie). I nawet jak hg już się dorobi rebase'a, to i tak najprawdopodobniej nie będę z niego korzystał, bo MQ też w bardzo prosty sposób umożliwia zsynchronizowanie się z nowszą wersją upstreama.

I nowy 7thguard będzie trzymany właśnie w mercurialu. Najprawdopodobniej w MQ.

Wheeeee, dawno już nie miałem tyle radochy z nowego narzędzia.

Na ringu zostały: mercurial i git

24 VIII 2008, 19:34

Distributed VCS-y są fajne, od paru lat w pracy używałem darcs-a. Problem z darcsem jest taki, że (a) ma w cholerę bugów i (b) praktycznie rzecz biorąc jest martwy. Czas na alternatywy.

Ostatnio bawię się bazaarem m.in. dlatego, że PLD przeszło na launchpad.net z którym bazaar jest domyślnie zintegrowany, więc gdyby kiedyś mi się nudziło i przerzuciłbym PLD-owego CVS-a do bazaara, to od razu mielibyśmy integrację z bugtrackerem. Poza tym bazaar jest dosyć intuicyjny, Shuttleworth przekonująco pisze, a całość jest w Pythonie.

Problem: nie odpowiada on mojemu trybowi pracy.

Darcs ma dwie wielkie zalety:

1. Polecenie do robienia commitów jest domyślnie interaktywne, tzn. pyta się czy zapisać każdą jedną zmianę w każdym pliku. Brzmi wkurzająco, ale, po pierwsze, wystarczy nacisnąć 'a' (all) i z głowy, a po drugie oznacza to, że mogę, mając kompletnie rozgrzebany plik z kodem, zauważyć, że właśnie stworzyłem self-contained zmianę i sobie ją commitnąć niezależnie od całej reszty śmiecia w pliku. Jest to bardzo naturalny sposób pracy, bo, zwłaszcza przy większych zmianach, dopiero w trakcie ich tworzenia zauważam wyodrębniające się niezależne, eee, ciągi funkcjonalne (?). Afaik inne VCS-y zaadoptowały to w postaci trybu "interactive" (bazaar przez plugin, hg chyba domyślnie w kodzie, nie wiem jak git).

2. Darcs nie ma rewizji, dla niego rezpozytorium to tak naprawdę zbiór patchy. Oznacza to, że (a) komenda rebase (w bazaarze jak zwykle w postaci pluginu, w hg nie mam pojęcia, czy w ogóle jest, a git ma domyślnie) jest kompletnie bez sensu, bo mogę sobie pullnąć patche z czegokolwiek na cokolwiek, ważne, żeby się nakładały i (b) mogę utrzymywać kilka wersji dokładnie tego samego drzewa, różniących się tylko i wyłącznie jednym patchem.

Punkt pierwszy to nie problem, punkt drugi i owszem. Wynikają z niego dwa różne workflowy:

1. Surwiwal fitnessu (survival of the fittest). System ma robić X. Nie mam pojęcia jaki jest najlepszy sposób na zrobienie X, więc robię kilka możliwych implementacji, po czym odpalam je na różnych maszynach. I dalej wprowadzam równoległe zmiany sprawdzając, jak różne wersje na nie zareagują. W darcsie jest to proste, wystarczy, żebym w pewnym momencie do jednego drzewka wprowadził patch XX, a do drugiego XY i pullując nowe zmiany z drzewka A do B lub vice versa, pamiętał o niepullowaniu tych konkretnych patchy. I mogę sobie tak rozwijać równoległe wersje tego samego programu praktycznie w nieskończoność, zachowując owe różniące je patche. O ile wiem w bazaarze w ogóle tak się nie da, nie wiem jak w hg i gicie.

2. Odgałęzianie się od ruchomego pnia (dla twardzieli: odbranchowywanie się od movowalnego trunka). Sprowadza się do tego, że mam gotowy kawałek softu, który jest rozwijany niezależnie ode mnie przez upstream i ja mam na ów soft nałożyć własne poprawki, sporadycznie mergując się z upstreamem. W darcsie nie problem, mogę pullować dowolne patche skądkolwiek dokądkolwiek, w pozostałych natomiast potrzebny jest rebase. Jak pisałem: bzr i git to mają, nie wiem jak hg.

Pierwszy tryb rozwoju softu jest dosyć specyficzny dla mojej pracy, drugi natomiast, co uświadomiłem sobie dosyć niedawno, wcale nie (acz też obecny). radioemiter.pl i pld-users.org to dokuwiki, www.pld-linux.org to MoinMoin, forum.pld-linux.org to bodajże phpbb (acz nie stawiane przeze mnie). I gdybym wtedy wiedział to, co wiem teraz, to wszystkie one od razu lądowałyby w jakimś VCS-ie. Bardzo ładnie ten problem wyszedł z pld-users, gdzie jeden z adminów zupgrejdował do nowszej wersji dokuwiki i wszystkie moje site-specific zmiany poszły do /dev/null. I żeby je teraz odzyskać będę się musiał z jakimiś patchami i diffami bawić (zakładając, że gdzieś się zachowała stara wersja). A tak, to jeden rebase i po paru minutach miałbym z głowy.

I właśnie dlatego nowy 7thguard, stawiany na drupalu, będzie od początku czymś wersjonowany.

Przy czym nie samym rebasem człowiek żyje. Można powiedzieć, że na co mi rebase -- ściągam najnowszą wersję upstreama, diffuję względem wersji od której się odbranchowałem, po czym próbuję nałożyć takiego patcha na swój kod z commitlogiem "upgrade to upstream X.Y.Z". Prawda, rzecz w tym, że w wypadku tego typu workflowu bardzo liczy się przejrzystość commitlogów, gdyż po paru latach pogubię się w tym, co tam właściwie jest zrobione względem oryginału, a już tym bardziej będzie z tym miał problem ktoś inny chcący też coś pomóc.

I tutaj wychodzi drugi problem z bazaarem -- nie wspiera on przepisywania historii. Rebase rebasem, ale po jakimś czasie commitlogi wyglądałyby tak: 3. implemented X; 4. fixed bug in X; 7 upgraded to upstream 5.0; 11 X obsolete, same functionality implemented elsewhere", etc, etc. Tego typu historia jest ważna w przypadku publicznego projektu, do którego jest np. bugtracker i w którym spójność całości jest święta (to dlatego Linus nie rebase'uje swojego drzewa, ani nie grzebie w jego historii post-factum). Jest ona natomiast ewidentną przeszkadzajką (bo zamazuje obraz zmian) w przypadku projektów bardziej prywatnych, typu opisanych powyżej/tych, co mam w pracy. Po prostu utrudnia życie.

Jestem praktycznie pewien, że z gitem tutaj nie byłoby problemów, nie wiem natomiast jak hg.

W ogóle dosyć oczywiste jest, że bazaar odpada i że najprawdopodobniej wyląduje na gicie. Łudzę się jeszcze, że hg spełni moje wymagania, acz nie mam jakiś specjalnych nadziei. Ot, po prostu, autorzy gita najprawdopodobniej przewidzieli powyższe przypadki użycia oraz setki innych, o których jeszcze nie pomyślałem i które pewnie nigdy nie będą mi potrzebne. Do tego git ma pewnie zaimplementowane optymalne sposoby integracji z wszystkimi innymi rozwiązaniami na rynku (perforce anyone?), więc gdybym kiedykolwiek trafił do jakiejś firmy, gdzie standardem jest coś niespecjalnie wygodnego, najprawdopodobniej byłbym w stanie uprzyjemnić sobie życie przy pomocy odpowiednio użytego gita.

Główny problem z gitem jest taki, że jest on trudny i nieintuicyjny dla ludzi wychowanych na czymkolwiek innym. Tego problemu nie ma z bazaarem, nie wiem jak z hg, ale git to jest oczywisty kosmos. Jest to trochę sytuacja jak z vimem -- używam, bo jest dla mnie wydajniejszy, niż alternatywy. Ale gdybym musiał kogoś innego zmuszać do jego używania, to już byłby problem. Ale nie muszę, bo edytować tekst można w czymkolwiek. Z VCS-ami już nie ma tak łatwo. Jeśli wrzucę 7thguarda do gita, to znacznie podniosę poprzeczkę dla kogokolwiek, kto chciałby w tym później coś pogrzebać (ditto dla pld-users i reszty). Tak nie jest w przypadku np. bazaara, bo czyś z CVS-a, SVN-a, czy czegoś takiego, będziesz się czuł jak w domu.

(To jest powód dla którego przy jakichkolwiek zmianach PLD prawie na pewno nie wyląduje na gicie. Zaawansowane funkcje gita i tak nie zostałyby wykorzystane, a ludzie by się pewnie w końcu zbuntowali, że nowy soft działa kompletnie na odwrót, niż stary dobry CVS. Tego problemu praktycznie nie byłoby właśnie z bazaarem.)

W ogóle nowy 7thguard to będzie ciekawy przypadek. W teorii w ogóle nie powinienem musieć grzebać bezpośrednio w kodzie drupala, wszystko powinno być do załatwienia themami, konfigami i pluginami. W teorii. Jak to wyjdzie w praniu, to się jeszcze zobaczy.

Hmmm, tak się zastanawiam. Może te systemy to jest nowy sposób na rozwój różnych webowych CMS-ów i takich tam? Może to właśnie powinno być specjalnie robione tak, żeby klienci mogli upgrejdować swoje rozwiązania przy pomocy jakiegoś bzr-a z rebasem? Nowe tarballe powinny od razu zawierać katalog .bzr, a nowe wersje powinny być także dostępne do łatwego pullowania/mergowania takimi narzędziami? Graficzne konfigo-klikadła powinny automatycznie commitować wprowadzone zmiany? Interesting... Ciekawym, czy dałoby się taki sposób tworzenia stron dla klientów wprowadzić w mojej opolskiej firmie. Acz to już temat na osobny wpis.

PLD @ Amazon EC2

19 VIII 2008, 20:53
19:47 <Aria> Amazon EC2 AMI ID: ami-5ced0935 <- pld linux th base setup as a public image, you can setup an ssh key through amazon's api and run your very own.
19:47 <Aria> (Caleb Maclennan's work)

Ok, that's like way cool 'n shit. Those crazy foreigners and their crazy ideas!

(My next entry will be about Google switching to PLD. Seriously. Stay tuned.)

Linux na /dev/drzewo, idę na Vistę

14 VIII 2008, 01:04

Ten wpis i tak jest przeraźliwie długi, nie chce mi się linkować do definicji używanych pojęć (od czego wujek google), a już tym bardziej do źródeł z których wiem w jaki sposób np. power management, albo WiFi ssie w Linuksie. Ale to zazwyczaj wystarczy poszukać prezentacji maintainerów tychże podsystemów. Oni wiedzą najlepiej co jest źle. Przykład. I dla niekumatych: ja w tym tekście w żaden sposób nie krytykuję niedesktopowych zastosowań Linuksa. A, i jeszcze polecam przeczytać to.

Im jestem starszy, tym bardziej szanuję swój czas i tym większą mam ochotę używać optymalnie dopasowanych narzędzi. Czyli np. przestać używać Linuksa na desktopie, bo prawda jest taka, że, w porównaniu do konkurencji, technicznie wypada dosyć blado.

Zaawansowane zarządzanie energią (aka hibernacja i pochodne)? Raz działa, raz nie działa, sterowniki często nie mają obsługi niczego poza on/off (a Vista afaik jest bardziej bateriooszczędna od Linuksa). Dźwięk? Podstawowy zazwyczaj działa, ale alsa jest wybitnie głupio zrobiona (próbował ktoś kiedyś wykombinować co robią różne ustawienia w mixerze?) i dalej wszyscy jeżdżą na różnych demonach dźwięku. O jakimś standardzie dla kodeków nie wspomnę. WiFi? Jak działa, to dobrze, jak nie, to masz pecha, bo pewnie nie ma dla ciebie sterowników. Obsługa 3D? Hahaha. Xorg jest sto lat za murzynami (i to prawie we wszystkim), binarne sterowniki supportują co chcą (a w ATI pewnie dalej nie działają), kernel dopiero zaczyna mieć jakieś ficzery pozwalające mu nad tym wszystkim zapanować (i nie wiadomo, czy nvidia i amd będą z tego korzystać), a konkurencja od X lat traktuje to wszystko jako oczywiste ficzery. Obsługa różnych dodatkowych urządzeń? Jak trafisz na coś supportowanego, to git, jak nie, no to pech. Rosyjska ruletka z kupowaniem jakiegokolwiek osprzętu, a przy kupowaniu laptopa to tylko z listą supportowanego sprzętu w garści.

Część z tych rzeczy to po prostu opóźnienia w rozwoju (głównie Xorg), na część natomiast jest albo za późno (ktoś ma ochotę poprawiać alsę? albo dalej twierdzić, że gstreamer wszystko rozwiąże? ile to już lat?), albo są nieuniknionymi konsekwencjami metodologi open source. Prawda jest taka, że dla producentów sprzętu/użytkowników binarne sterowniki i nieczęsto updejtowane Windowsy są zdecydowanie tańsze w supportowaniu/wygodniejsze, więc nie ma i nie będzie masowego ich otwierania. Z czego wynika, że dla rozwiązań desktopowych Linux będzie zawsze gorzej supportowany, bo zawsze będzie spora część rynku preferująca binarki. Producent może stworzyć sprzęt, napisać sterowniki, przetestować na dosłownie kilku dostępnych na rynku Windowsach, dopisać proste GUI i wsio. Na Linuksie (a) musisz mieć otwarty kod, czyli tajemnica handlowa /dev/null (tajemnica handlowa jest znacznie starsza od Linuksa i, niezależnie od życzeń Linuksiarzy, producenci raczej nie zaczną z niej rezygnować), (b) produkowanie własnego oprogramowania do obsługi sprzętu jest kompletnie niepraktyczne, więc obsługa twojego sprzętu będzie tylko do tego stopnia przyjazna, do jakiego pozwala obecny stos softu danego typu. Czyli zazwyczaj średnio na jeża albo wcale (alsa i jej intuicyjny mixer? karty 3d i zaawansowane ustawienia 3d? nie wiem, kamera i jakieś niestandardowe ficzery? wszystko padaka).

Oczywiście spora część z tych problemów zostanie rozwiązana, gdy Linux na desktopie się odpowiednio rozpędzi i producenci będą zmuszeni go supportować. Tyle, że to się nie stanie. Linux na desktopie technicznie jest sto lat za murzynami, a fajne programy open source albo już od dawna są (Firefox), albo niedługo będą (KDE-pochodne) miały porty pod Windowsa i OS X. Więc niby z jakiego powodu rynek masowy miałby wybierać desktopy linuksowe? Bo KDE4 ma fajny zestaw programików do groupware? Niedługo będzie dostępny pod Windowsy.[1] Coś jeszcze? Czy naprawdę istnieją jakieś konkretne podstawy, żeby przypuszczać, iż desktopowy Linux osiągnie masę krytyczną?

([1] I jest to afaik także prawda w przypadku typowo linuksowatych narzędzi deweloperskich. Obecnie da się spokojnie postawić linuksowe środowisko deweloperskie z desktopem na nielinuksie. ssh/vnc/sieciowe x11/samba to twoi przyjaciele.)

Natomiast w drugą stronę przewaga jest miażdżąca. Konkurencja zawsze ma soft state-of-the-art, a Linux albo całkiem sensowną alternatywę (dostępną także na systemy konkurencji...), albo popłuczyny (photoshop anyone?), albo zupełne nic (rynek gier hahaha).

Nadganianie tego typu zaległości jest możliwe jeśli się ma bardzo dużo wykwalifikowanej i skupionej na konkretnym celu kadry oraz wytworzy odpowiedni ekosystem tworzenia wysokiej klasy oprogramowania dla danego systemu. Microsoft ma tony kasy i tysiące inżynierów, więc może sobie pozwolić na przepisanie systemu grafiki w Viście od zera. Dodatkowo wytworzył gigantyczny ekosystem zewnętrznych firm, które sporo zarabiają na produkowaniu softu pod Windowsy (takie Adobe małą firmą nie jest). Linux ma: brak nawyku płacenia za cokolwiek (ekosystem możemy pożegnać), gigantyczną ilość dystrybucji praktycznie uniemożliwiającą wydawanie binarnych wersji softu oraz stosunkowo niewielką ilość rzeczywiście wykwalifikowanych inżynierów, którzy jeszcze zazwyczaj robią to samo po kilka razy (KDE vs. GNOME, PulseAudio vs. gstreamer vs. czysta alsa, chyba z dwa podejścia do nowej generacji sterów 3d w xorgu, gigantyczna ilość różnych dystrybucji, etc.). W takich warunkach można zapomnieć o dogonieniu kogokolwiek.

Heh, ja sam używam dystrybucji o której słyszał jakiś ułamek promila użytkowników Linuksa. I lubię jej używać ze względu na pewne specyficzne rozwiązania techniczne, czyli głównie poldka i duże rozdrobnienie paczek, ale tak naprawdę to się bardzo dobrze sprawdza tylko na serwerach i w niewielkich specjalizowanych środowiskach (w pracy parokrotnie używałem PLD-owych chrootów), a na desktopie jest wybitnie upierdliwe. Desktopy są znacznie bardziej skomplikowane od serwerów i jeśli mam KDE rozparcelowane na 700+ pakietów (a mam :), to można zgłupieć. A do tego dochodzi jeszcze zatrzęsienie różnych dodatkowych bibliotek i demonów do obsługi różnych rzeczy. Hal, policykit, cośtamkit, acpid, serwer dźwięku (który?), bluetooth, coś do wifi, xorg (też 700 paczek :), czcionki i co tam jeszcze. Oszaleć można. Nawiasem mówiąc ciekawym czym się teraz obsługuje WiFi z GUI? Pewnie jakąś nakładką KDE-ową na NetworkManagera (bo przecież nie można napisać po prostu NetworkManagera, tylko trzeba oddzielić backend od frontendu i napisać co najmniej dwa frontendy, jeden dla GNOME, drugi dla KDE; żeby nie było za prosto).

(Może powinno zostać jakimś oficjalnym policy PLD, że desktop ma niższy priorytet, niż serwer? Kto wie, może mogłoby to ułatwić pewne rzeczy.)

Więc o ile PLD może mi dodawać pewną wartość na serwerach (poldek, sposób pakietowania, domyślne konfigi, unifikacja względem FHS i takie tam), o tyle na desktopie praktycznie nie ma na to szans, a wręcz przeciwnie -- takie Ubuntu jest znacznie lepiej zintegrowane, przetestowane i zjada mniej czasu (dlatego staram się upgrejdować swojego laptoka tylko wtedy, gdy naprawdę muszę, bo zawsze coś się pieprzy przy okazji). Dodatkowo w takim Ubuntu Mark Shuttleworth może powiedzieć, że chce obrać kierunek rozwoju X, sypnąć groszem na ludzi to implementujących no i jakiś tam cel zostaje osiągnięty. W projekcie typu PLD jest to możliwe na znacznie mniejszą skalę (np. FHS), na pewno nie desktopową. Nie może przyjść "lider" i powiedzieć, że robimy X, bo go wszyscy oleją. A w Debianie to już w ogóle są cyrki (widzieliście jakie oni flejmy generują o wszystko? porn-geta na przykład, czy ten aplet do monitorowania zużycia CPU z rozbierającą się kobitą). O sensownym quality control można w PLD zapomnieć. Windows się wydaje raz na ruski rok, to się przy okazji mocno przetestuje, Ubuntu raz na pół roku plus Ubuntu ma ludzi od testów, a PLD ma deweloperów, którym się takich rzeczy robić nie chce (mi też się nie chce).

Pytanie: co zamiast? Na pewno nie zrezygnuję z Linuksa na serwerach -- raz, że nic mnie nie kosztuje, dwa, że lubię swoje PLD i trzy -- zawodowo jednak zajmuję się Linuksami, więc muszę mieć bieżący z nimi kontakt. Ale na desktopie? Albo Vista albo OS X. (Oczywiście nie teraz, tylko jak mi laptop padnie i będę musiał kupić nowego. Obecny by Visty nawet nie uciągnął.)

Główna zaleta Appla -- jest uniksowaty, więc mi bardziej po drodze (większość moich obecnych narzędzi po prostu się buduje i działa, bez jakiś akrobacji). Główna wada Appla -- nie mam go jak najpierw przetestować, a kupować muszę od razu ze sprzętem Appla, który jest afaik drogi (i jest go mniejszy wybór, niż standardowych intelowatych). W przypadku Windowsa Vista mam laptop dziewczyny z tymże, więc mogę sobie testować do woli (o czym będą inne wpisy; materiał do wpisu o Firefoksie mam już gotowy, więc się za jakiś czas pojawi, ale do tego od Visty nie).

Inne problemy:

1. Wirusy. W OS X afaik nie problem, ale w Viście jednak wypadałoby mieć jakiegoś antywira. Nie lubię mieć antywirów, jestem przyzwyczajony do braku konieczności ich posiadania. Z punktu widzenia odporności na wirusy kompletny chaos ABI w zatrzęsieniu dystrybucji Linuksa to zaleta.

2. Upgrejdy systemu. Upgrade poldkiem jest upierdliwy, ale prawda jest taka, że swoje desktopy upgrejduję po parę lat bez żadnych reinstalek i po kilku poprawkach zawsze prawie wszystko działa (teraz np. mam wkurzające problemy przez niedorobiony evdev w xorgu). Nie sądzę, żebym przeżył niereinstalkowy upgrade XP do Visty. Nie wiem jak z OS X. Z drugiej strony na raz wydaną Vistę przez następne wieeeele lat wychodzi soft, który można sobie po prostu upgrejdować. Na PLD jak robisz za długie przerwy, to później nowy python wymaga 70% nowego systemu (bo openldap pociągnął coś, co wymaga ixów, ixy są już nowe, więc całe kde i wszystko graficzne trzeba zassać, etc...; i chciałeś nowego pythona, a przy okazji dostałeś rozwalonego evdeva). Mnie od dawien dawna nie podnieca gonienie za numerkami (czego w znacznej mierze nauczyła mnie upierdliwość upgrejdów w PLD), więc Vista by mi tu pewnie bardzo pasowała. Ba, dalej używam KDE3.5, bo mnie przeraża KDE4.

3. Gnicie systemu. Na PLD problemu nie ma, bo poldkiem i rpm-em mam kontrolę nad wszystkim i jak mi się zrobi za dużo śmiecia, to po prostu wyinstalowywuję co chcę, jadę prostym skryptem po zagubionych plikach i mam czysto (jak mówiłem, mogę po parę lat robić upgrejdy całego systemu praktycznie bez nieprzyjemnych skutków ubocznych; wymagają tylko trochę czasu). Nie wiem jak z Applami, ale afaik Vista nadal sobie z tym problemem nie poradziła. Znajomy m.in. przez to ostatnio wrócił do XP, a laptop mojej dziewczyny zamyka się teraz po kilka minut. Dla mnie to jest naprawdę problem, ja jestem bardzo przywiązany do faktu, że PLD daje mi pełną kontrolę nad wszystkimi plikami w systemie (które do tego są uporządkowane; viva la FHS, viva la patche w PLD) i będę miał poważne problemy ze zrezygnowaniem z tego ficzeru. Ten brak kontroli na najbardziej podstawowym poziomie to jest główny powód dla którego nie lubię dotykać Windowsów. Z drugiej strony -- przy tych setkach pakietów desktopowych to ja i tak zazwyczaj nie wiem co się w systemie dzieje.

4. W Windowsie (i OS X?) za sporo rzeczy jednak trzeba płacić. I to nawet za takie, które w Linuksie dostaję jako standardowe wyposażenie. Taka Vista jest bardzo słabo konfigurowalna w porównaniu do dowolnego Linuksa. Zazwyczaj są płatne narzędzia, żeby dodać brakującą funkcjonalność, ale są brzydkie, bo są płatne. Drażni mnie wydawanie kasy na coś, co uważam za podstawową funkcjonalność. Szczęściem jednak jest sporo softu open source tego typu pod Windowsy, ale nie wiem, czy wszystkie moje potrzeby byłyby zaspokojone. Tak czy siak o tym będzie osobny wpis (z serii "Jak zostać power userem" :).

Dobra, tyle. Tak jak pisałem, na pewno w tym momencie na żadną Vistę się nie przenoszę, co najwyżej przy zmianie laptopa. Ale nawet wtedy nie jest to przesądzone, gdyż (a) tak naprawdę cieszę się z faktu, że np. w nic nie gram i rzadko korzystałbym z ficzerów, których w Linuksie nie mam, (b) jakby co, to zawsze jest laptop dziewczyny; oby mnie nie zostawiła i (c) jednak jest zestaw ficzerów typowo Linuksowych do których jestem bardzo przyzwyczajony. Acz hgw jak te rzeczy wyglądają w OS X. Przy czym gdybym dziadkowi kupował nowy laptop, to pewnie wrzuciłbym Vistę, dał mu dostęp tylko do konta nieadminowego i nie miałbym z tym większych problemów, niż mam obecnie z jego PLD i GNOMEm (mam nadzieję; nie wiem jak z wirusami).

Jak komuś się chciało to czytać w całości, to gratuluję samozaparcia. Ja to muszę przeczytać jeszcze z dwa razy, żeby zrobić korektę przed publikacją. :(

Klient, jego SEO i mój problem

13 VIII 2008, 02:19

Jak klientowi zrobiłeś stronę i ją hostujesz, to wypadałoby też wypozycjonować. Problem -- poza jakimiś technicznymi zaleceniami odnośnie samej strony i dodaniem jej do paru katalogów, SEO to nic, czym się można chwalić. Losowo linkowane keywordy w ramach systemu wymiany linków, tworzenie sztucznych stronek na darmowych hostingach, czy wręcz czyste spamowanie różnych internetowych lokacji? Może jednak nie w firmie z którą mam coś wspólnego.

Tylko co robić z klientem, który domaga się takich usług? Nie mogę mu narzucić swojego "systemu wartości", zwłaszcza, że wytłumaczenie jest dla niego pewnie zbyt techniczne, a nielegalne to to afaik nie jest. Może go przekazać jakiejś firmie od SEO? Ale wtedy mogą go podprowadzić z hostingiem i obsługą WWW, a poza tym nie zobaczymy ani grosza z jego pieniędzy na pozycjonowanie. No to wejść w jakiś program partnerski z większą firmą od SEO (są takie?) i obsługiwać klienta via ów program? Tak, super, będę partnerem spamerów. Eh.

Adwordsy afaik takich klientów zazwyczaj nie interesują. Pewnie za drogie. W ogóle Adwordsy się nie skalują. Im więcej pieniędzy na twoim rynku, tym więcej wszyscy licytują. Ty dostajesz taką samą (albo gorszą) usługę, a Google tylko zgarnia coraz więcej kasy. Zdecydowanie powinny powstać jakieś alternatywy.

Może zaoferować naszym klientom za darmo opcjonalny program "wspierania lokalnej przedsiębiorczości"? Tzn. jeśli chcesz, to wybierasz sobie kilka keywordów i my w treści stron innych klientów (którzy też chcą) automatycznie podmieniamy owe słowa na linki do ciebie. Wygląda jak system wymiany linków [1], ale można przedstawić całkiem sensowną argumentację, że podstawową funkcjonalnością jest jednak prowokowanie ludzi do wchodzenia na strony innych lokalnych firm, a pozycjonowanie w Googlu jest tylko skutkiem ubocznym [2]. Bo chodzi o to, żeby klient do ciebie przyszedł. I nie jest ważne, czy zrobi to przez szukanie odpowiednich słów w wyszukiwarce, czy dlatego, że kiedyś wszedł ze strony o czymś zupełnie innym (ale też z Opola) i zapamiętał, że twoja firma istnieje.

[1] Akurat z różnych technik mrocznego SEO automatyczną wymianę linków uważam za najmniej mroczną, bo (a) nie ładuje treści tam, gdzie właściciel strony nie chce (jak spamowanie for) i (b) nie produkuje bezużytecznej treści (jak tworzenie sztucznych stron z linkami).

[2] W wersji light można to zrobić nie z linkowaniem słów w treści, ale z osobną stroną "wspieramy lokalną przedsiębiorczość" (aka "linkownia") w ramach serwisu danego klienta. To już tym bardziej nie było by się do czego przyczepić.

Eh. I tak mi się nie będzie chciało w to bawić, a nawet gdyby, to pewnie nie zadziała (nie jestem w stanie tego teraz stwierdzić, nie znam się na działaniu Googla). Acz mogłoby nieźle namieszać, gdyby jednak zadziałało i gdybyśmy to oferowali za darmo (w sumie tylko tak miałoby prawo działać). Zmniejszyć dochody Googla, to by było coś.

Moje preferencje zawodowe, a mała przedsiębiorczość

10 VIII 2008, 16:21

Ostatnio firma dla której pracuję odczuwa pewną presję finansową, a co za tym idzie pracownicy są pod presją, żeby tworzyć nowe rozwiązania, które będzie można oferować klientom. I dzięki całej tej sytuacji odnalazłem coś ważnego. Przypomniałem sobie co to znaczy, gdy mam konkretną wizję tworzonego systemu, gdy z dnia na dzień widzę, że jest postęp, a rzeczy zaczynają działać zgodnie z zamierzeniami. Gdy po tygodniu rzeczywistej pracy mam działające, dobrze przemyślane demo. Przypomniałem sobie dlaczego tyle lat temu mogłem siedzieć nad PLD i dłubać w paczkach tyle czasu, napisać automatykę, czy robić pierwsze systemy dla w/w pracodawcy. Znowu jestem na bieżąco z LWN-em i listami PLD-owymi. Jest fajnie.

(Oczywiście mój blip na tym poważnie ucierpiał, ale doba nie jest z gumy. Zobaczymy jaki sobie wypracuję rytm dnia na najbliższe kilka tygodni/miesięcy. Wątpię, żebym przetrzymał bez przynajmniej niewielkiej regularnej dawki reddita.)

Uświadomiwszy sobie na powrót co jeszcze może mnie informatycznie kręcić [1], poszedłem sprawdzić co z tego jestem w stanie znaleźć w swojej lokalnej firemce (lokalna firemka!=firma z pierwszego akapitu). Wczoraj usiadłem ze wspólnikiem i pogadaliśmy sobie o tym, jak on widzi źródła przychodów firmy informatycznej w niezbyt dużym mieście (mając rok działalności i doświadczeń za pasem). Jego cele/przewidywania: 60% z umów serwisowych dla firm, pozostałe 40% to proste projekty programistyczne poprzetykane sporadycznie czymś minimalnie ambitniejszym (pomijam klientów indywidualnych na typowe "pogotowie informatyczne"). Czyli nic dla mnie.

[1] Używanie nowych/bardziej zaawansowanych umiejętności/doświadczenia do szybkiego tworzenia/prototypowania (dla mnie) nowych działających systemów. Bonusy za konieczność douczenia się nowej technologii w trakcie.

Umowy serwisowe to zazwyczaj jeżdżenie do klienta i naprawianie mu albo sprzętu, albo użeranie się z Windowsami/dziwnymi programikami. Projekty "programistyczne" to w 90% proste strony www (z flashem), a w pozostałych przypadkach jakieś proste systemy obsługi czegokolwiek, ale też z interfejsem po www. Nie znam się na tych rzeczach, poznać nie chcę (zwłaszcza piekiełka zwanego html/css/js), a w ogóle to wszystko straszne nudy.

Czyli pracy to ja tu nie znajdę. Zajmuję się adminką jednego serwera (PLD z vserverami pod xenem) i wystarczy. Nie mam natomiast nic przeciwko czerpaniu dochodów. Niestety na tak małym rynku jest to raczej utrudnione. Stawki mamy niskie, pracownicy zarabiają niewiele, więc firma większość przychodów przeznacza na koszty stałe i pensje dla pracowników. Płacić takim darmozjadom jak ja jakiś sensownych pieniędzy po prostu nie ma z czego.

No więc temu trzeba zaradzić. Wspólnik twierdzi, że tak naprawdę wszystkie firmy potrzebują obsługi informatycznej, bo prawie wszyscy mają komputery, a prawie nikt nie wie jak z nich sensownie korzystać i się nimi zajmować (stąd te 60% na umowy serwisowe) i praktycznie nikomu nie opłaca się zatrudniać na pełen etat informatyka. Zgoda. Czyli oferując tani [2], kompetentny i spersonalizowany [3] outsourcing IT powinno dać się załapać sporą część tych mas malutkich firemek, które są poutykane po biurach na zadupiu, bądź wręcz po prywatnych mieszkaniach. Nawet bardzo tanie rynki robią się dochodowe przy odpowiedniej skali.

[2] Tani tani. Paręset złotych dla jednoosobowej minifiremki to jest dużo, bo to są pieniądze, których dany człowiek nie może wydać na ubranie czy jedzenie.

[3] Spersonalizowany -- zgłaszając się do średniej/dużej firmy ładujesz się w dział obsługi klienta. W małej/średniej firmie możesz gadać bezpośrednio z szefem, obsługiwać cię może zawsze tych samych dwóch ludzi (z których jeden może być szefem ;), oni sami będą się pewnie interesować sposobami na usprawnienie działania twojej firmy, etc, etc. Moja teoria jest taka, że jeśli sam nie wiesz czego ci potrzeba, to zdecydowanie łatwiej jest sobie niezobowiązująco pogadać z szefem zaprzyjaźnionej firemki, niż próbować szczęścia z BOK-iem czegoś większego.

Ale podczas wczorajszej rozmowy jedna rzecz mi nie dawała spokoju -- czy nie powinniśmy być w stanie zaoferować czegoś więcej albo bardzo bardzo tanio, albo wręcz za darmo w ramach naszej oferty, tak, żeby nasz mały klient miał wrażenie, że nie jesteśmy tylko ludźmi od naprawiania komputerów, ale że rzeczywiście na swój sposób chcemy mu pomóc w lepszym prowadzeniu interesu, że zależy nam na jego wydajności i sukcesie (cholera, gadam jak marketoid). No i na podstawie opisów konkretnych firm, z jakimi miał do czynienia wspólnik ostatnimi czasy, w trakcie rozmowy wpadłem na bardzo prosty, nie wymagający od nas wielkich nakładów, pomysł, mogący potencjalnie osiągnąć wymienione cele i otworzyć nam dostęp do tego rynku. Wspólnik przyznał, że koncepcja jest bardzo dobra, ma potencjał i zdecydowanie trzeba ją wdrożyć i zobaczyć co da. A o co konkretnie chodzi? No cóż, tajemnica handlowa. ;) Jeśli docelowo nie wypali, to pewnie opiszę o co chodziło (i dlaczego moim zdaniem się nie udało).

P.S.
Właśnie mi się przypomniało. Nasza (większa) lokalna konkurencja wpadła na pomysł blokowania maili od nas na swoich serwerach, co oznacza, że nie możemy się kontaktować ze wspólnymi klientami (a mamy takich). Indagowana przeze mnie konkurencja powiedziała, żebym spadał na /dev/drzewo, bo nie jestem ich klientem, więc ze mną nie będą gadać. Strasznie mnie ta małomiasteczkowość ucieszyła, więc zapukałem do naszego wspólnego klienta z prośbą o pełnomocnictwo (w końcu robimy za ich outsourcowany dział informatyczny, więc ma sens, żebyśmy gadali z firmą u której się hostują), po czym udałem się do konkurencji. Co z tego wyniknie dowiem się w poniedziałek. Stay tuned.

Pomoce naukowe, hehe

09 VI 2008, 16:35

Chyba jednak się skuszę i napiszę ten tekst o własnej technice pisania bezwzrokowego. I to w wersji z dużą ilością obrazków i filmików. Bo te zapowiadają się bardzo ciekawie:


:)

Jak zostać power userem I -- ogólne zasady

08 VI 2008, 18:43

Tak jak wspomniałem w poprzednim wpisie, mam zamiar ze swojej kobiety zrobić sprawnego użytkownika komputera. Najprostsza metoda -- zaopatrzyć ją w takie środowisko pracy, jakiego sam używam, po czym powiedzieć jak z niego wydajnie korzystać[1]. Ponieważ moje kontakty z systemami windowsowymi od dawien dawna są bardzo sporadyczne, pierwsze poważne zetknięcie z Vistą było wybitnie nieprzyjemne. "Rany boskie, co za gówno" tłumaczy się głównie na zarzuty praktycznie całkowitego braku konfigurowalności oraz konieczności częstego googlania. Odinstalowanie Norton Internet Security (czy jakoś tak) wymagało znalezienia informacji, że tenże pakiet nie reaguje na standardowy windowsowy ficzer deinstalacji, za to wymaga ściągnięcia ze strony producenta specjalnego programu potrafiącego usunąć dowolny produkt Symanteca. Argh.

[1] Co nie jest równoznaczne z tłumaczeniem jak wszystko działa, a nawet jak co trudniejsze rzeczy należy konfigurować; chodzi o stworzenie sprawnego użytkownika, a nie informatyka.

Konfigurowalność natomiast... Eh. Praktycznie cała funkcjonalność, którą dostaję out-of-the-box w systemach linuksowych, na Windowsy musi być dogrywana przy pomocy niezliczonej ilości programików, które trzeba znaleźć, przetestować (czasami nie działają opluwając mnie dziwnymi, nietrace'owalnymi błędami, a czasami są pod inną wersję Windowsa), po czym za nie zapłacić 19,90$. Chyba, że jest dostępna wersja darmowa/open source. Ale ją też trzeba najpierw znaleźć. Acz o konkretnych aplikacjach i sposobach konfiguracji w następnej części, teraz tylko sporo ogólników.

Pierwsze przykazanie power usera -- będziesz pisał bezwzrokowo. Ale nie zgodnie z dziwnymi zaleceniami z dziwnych kursów, nadwyrężając sobie niepotrzebnie nadgarstki (albo wymuszając kupno "ergonomicznej" klawiatury) i starając się nie odrywać palców od klawiszy. Takie porady techniczne można do kosza wrzucić. Niestety konkretne wytłumaczenie składałoby się albo z bardzo dużej ilości tekstu, albo małej ilości tekstu oraz obrazków i filmików, a na takie blogowanie wątpię, żebym miał ochotę. Może kiedyś, gdy już będę miał feedback z postępów w nauce Magdy.

Drugie przykazanie power usera -- pisząc bezwzrokowo będziesz używał odpowiednich skrótów klawiszowych, tak przemyślanych, by bez zbędnego ruszania ręką być w stanie je wywoływać, niezależnie od tego, czy prawa ręka jest na myszce/touchpadzie, czy na klawiaturze (oznacza to rezygnację z lewego ctrl-a na korzyść lewego alta i winkey'a). Przełączanie wirtualnych pulpitów, tworzenie/zamykanie/przełączanie tabów w przeglądarce, globalne skróty do odpalania konkretnych programów (oraz alt+tab ;) -- to wszystko jest obsługiwane wyłącznie lewą ręką. Skróty mogą wymagać użycia prawej ręki tylko wtedy, gdy implementują tę samą funkcjonalność, co myszka (scrollować mogę albo myszką albo klawiszami (alt+)j/k), bądź też zaraz po nich należy coś napisać (ctrl+l w przeglądarce ma u mnie postać alt+l).

Trzecie przykazanie power usera -- nie będziesz się godził na używanie spowalniających cię programów tylko dlatego, że tak są domyślnie skonfigurowane. Zawsze jest jakieś wyjście. (Tyczy się to też samego systemu operacyjnego, który zawsze ma jakieś ułatwienia, o których niekoniecznie wiesz: alt+tab, alt+f4, etc., etc.)

Czwarte przykazanie power usera -- będziesz znał język angielski i pamiętał o tym, że materiały w nim są prawie zawsze ciekawsze i obszerniejsze od tych po polsku. Na szczęście moja kobieta jest fajna i lengłydż zna płynnie.

Dwa ostatnie punkty wraz z informacją o niewmuszaniu "zbędnej" wiedzy informatycznej mają trochę głębszy sens -- owszem, użytkownik nie musi wiedzieć dlaczego i jak coś działa, byle by potrafił tego sprawnie użyć, natomiast im więcej wie, tym łatwiej jest mu radzić sobie z nowymi sytuacjami oraz bardziej optymalizować środowisko pracy pod siebie, a docelowo o to właśnie chodzi. Idealny finał wyglądałby tak, że Magda sama odczuwałaby upierdliwości w swoim środowisku pracy (mnie autentycznie szlag trafia gdy muszę pracować na nieswoim systemie, bo tak powolny jestem), wymyślała konkretne usprawnienia, próbowała je wdrożyć (tu przydaje się wiedza oraz umiejętność szukania w anglojęzycznym Internecie), a dopiero w przypadku niepowodzenia przychodziła do mnie po rozwiązanie (przy okazji którego dowiadywałaby się kilku nowych rzeczy i następnym razem była w stanie nową wiedzę zastosować).

I to tyle wstępu. W następnym odcinku będzie konkretny opis mojego środowiska pracy na Linuksie oraz planach jego wdrożenia w Viście. Później będę już tylko opisywał konkretne rozwiązania poszczególnych problemów (w momencie pisania tego tekstu mam już opanowanego Firefoksa; ba, przez tę całą zabawę udało mi się zrezygnować z Konquerora :).

O, a tutaj poniżej będą linki do wszystkich odcinków:

« prev