Tablet Lark FreeMe 70.2S - pierwsze wrażenia
Dodane 03 maja 2012 w kategorii Techblog.
Strasznie się ostatnio rozrzutny zrobiłem - raptem pół roku temu kupiłem sobie czytnik, dwa miesiące temu nowe flaki do komputera, teraz tablet, a jeszcze z powodu Euro zacząłem się zastanawiać nad nowym telewizorem. Ani chybi wpadłem w końcu w sidła szalonego konsumpcjonizmu;-).
A przy okazji w sidła speców od marketingu - zasadniczo nie planowałem zakupu nowej zabawki, ale skoro w Wyborczej zrobili promocję, to stwierdziłem, że specyfikacja przyzwoita, 370 złotych nie majątek, a zabawka do przeglądania netu bez konieczności włączania komputera by mi się przydała. Czytnik niby też dawał taką możliwość, ale na pół gwizdka - wolno, topornie, na czarno-białym ekranie, z kursorem poruszanym klawiszami - to zdecydowanie nie to, co tygrysy lubią najbardziej. Wystarczyło tylko do rozbudzenia apetytu - przypuszczam, że gdyby nie doświadczenia z czytnikiem, raczej bym nie kupił tabletu. Steve Jobs miał jednak sporo racji, kiedy twierdził, że klienci nie są od tego, żeby wiedzieć czego chcą.
Upgrade komputera - teoria i praktyka
Dodane 18 lutego 2012 w kategorii Techblog.Na przykładzie wymiany płyty głównej.
Teoria: kupuję nową płytę, wykręcam starą, wkręcam nową, odpalam kompa, instaluję sterowniki, mission accomplished.
Praktyka: nową płytę muszę wziąć od razu z nowym procesorem i RAM-em, bo te moje starocie już z żadną współczesną nie są kompatybilne. Po długich rozkoszach wycierania kurzu z najgłębszych zakamarków obudowy i przepinania tych wszystkich kabelków zauważam, że dysku również nie podepnę, bo to jeszcze IDE, a płyta obsługuje już tylko SATA. Klnąc swoje gapiostwo kupuję przejściówkę, podpinam, odpalam, bootuje się jak trzeba, ale próba uruchomienia systemu kończy się restartem. Żadne tryby awaryjne i inne kombinacje nic nie dają, pewnie trzeba będzie przeinstalować:-[. Ale żeby to zrobić, trzeba zbootować system z płytki, a tu nie ma jak zmienić opcji bootowania, bo nie da się wejść do BIOS-u (brak reakcji na wciśnięcie klawisza). Niemoc mnie ogarnia i już nawet guglać za rozwiązaniem mi się dzisiaj nie chce.
Ech...
Amazon Kindle - pierwsze wrażenia
Dodane 07 grudnia 2011 w kategorii Literatura,Techblog.
No, może nie tak całkiem pierwsze, bo używam tej zabawki już prawie dwa tygodnie. Zacznijmy jednak od początku.
Wrażenie numer zero - kurde, jaka drożyzna! Model, który wybrałem (Kindle Keyboard 3G) kosztował niby nie tak dużo - 189 dolarów, czyli 600 złotych z kawałkiem - ale przy finalizacji zakupu okazało się, że koszty wysyłki, cła i podatki podnoszą cenę w sumie prawie o 80$, a potem jeszcze bank ją przeliczył po kursie o 20 groszy wyższym niż oficjalny (nie da się ukryć, Pawlak miał sporo racji z tymi spreadami), co koniec końców dało ponad 900 złotych. Grr. Ale co tam, coś mi się od życia należy.
Wrażenie numer jeden - jejku, jakie to malutkie! Z jednej strony fajnie, bo czytnik lekki i poręczny, porównywalny z książką formatu prawie że kieszonkowego, można go schować byle gdzie - z drugiej strony ekran mógłby być jednak trochę większy, bo nawet przy najmniejszej czcionce mieści się na nim jakieś 1500-2000 znaków, czyli mniej więcej trzy akapity niniejszego wpisu. Trochę mało, przy szybkim czytaniu przerzuca się strony praktycznie co chwila. Nie żeby było to specjalnie kłopotliwe (odświeżenie ekranu zajmuje ułamek sekundy, na dobrą sprawę mniej niż przewrócenie strony w papierowej książce), ale lekki niedosyt pozostaje.
Dalsze wrażenia - jak wiadomo, e-papier nie świeci, więc czytnik w lekturze praktycznie nie ustępuje tradycyjnej książce - ekran wydaje się wręcz ciemniejszy niż np. papier w nowej gazecie, ale może to tylko moja autosugestia;-). Tak czy siak z ekranem monitora nie ma porównania, czyta się prawie równie dobrze jak ze zwykłego papieru, a wygoda użytkowania pod wieloma względami zdecydowanie papier przewyższa - dość wspomnieć wyszukiwanie słów w tekście, pojemność dysku pozwalającą zmieścić naprawdę solidną bibliotekę (trzy gigabajty, gdy rozmiar książki rzadko osiąga choćby pięć mega, to istny bezmiar - moje trzy szafy książek nie zapełniłyby pewnie nawet połowy) czy możliwość kupowania książek w sieci. No i nie trzeba używać zakładek ani pamiętać, gdzie się przerwało lekturę - odkłada się czytnik i tyle, nawet wyłączać nie trzeba. Pełen luksus.
Facebook Animation
Dodane 22 grudnia 2010 w kategorii Techblog.Facebook zdecydowanie nie jest "developer friendly" - pisanie aplikacji na ten serwis to droga przez mękę, a dokumentacja to jeden wielki śmietnik, w połowie nieaktualny, w połowie napisany na kolanie. Ale przynajmniej jedną fajną rzecz zrobili - tytułową bibliotekę do animowania obiektów za pomocą JS. Fajną, bo małą, lekką i banalnie prostą, czego nie da się powiedzieć o większości popularnych frameworków, w których często trzeba sięgać lewą ręką do prawej kieszeni, żeby uzyskać jakiś banalny efekt. Odkryłem ją jakiś rok temu i od razu przypadła mi do gustu, ale akurat nie była mi potrzebna, więc tylko zapamiętałem sobie, żeby ją wykorzystać w przyszłości.
Ale jak ta przyszłość w końcu nadeszła, to nagle się okazało, że Facebook z sobie tylko wiadomych powodów pozbył się tej zabawki nie tylko ze swojej strony, ale nawet wywalił ją z GitHuba (link niby jest, ale nie działa), co już trudno wytłumaczyć inaczej niż czystą złośliwością. Szukam w Google - nie ma, przynajmniej w pierwszej setce wyników. Szukam na facebookowym forum dla developerów - ludzie pytają co się stało i skąd to wziąć, jak na złość nikt nie ma, ewentualnie link nie działa. No żesz cholera, a podobno w necie nic nie ginie.
Szczęśliwie na moim dysku naprawdę nic nie ginie, więc bibliotekę odkopałem i wrzucam pod choinkę dla potrzebujących: animation.zip (11KB). Manuala niestety nie przyszło mi do głowy ściągać, a w Web Archive go nie ma, ale obsługa jest banalnie prosta. Parę przykładów:
// płynnie chowamy element
Animation(element).to("opacity", 0).hide().go();
// ...pokazujemy ponownie...
Animation(element).show().to("opacity", 1).from(0).go();
// ...albo zamiast tego powoooli rozwijamy...
Animation(element).to("height", "auto").from("0px").show().duration(5000).go();
// ...i równie płynnie zmieniamy parę jego właściwości
Animation(element).to("borderColor", "#FF0000").to("color", "#00FF00").go();
Chyba wszystko jest jasne, a pozostałe możliwości łatwo wydedukować z samego kodu. Myślę, że niejednemu Joggerowiczowi się przyda:-).
Komputerowy kryzys tożsamości
Dodane 07 grudnia 2010 w kategorii Techblog.Stwierdziłem ostatnio, że przez sześć lat z kawałkiem, odkąd mam obecny komputer, wymieniłem w nim, w kolejności z grubsza chronologicznej:
- RAM
- zasilacz
- głośniki
- dysk
- monitor
- kartę graficzną
- system operacyjny
- mysz
- stację DVD
- klawiaturę
I tu się pojawia problem filozoficzny: czy można uważać, że to ciągle ten sam komputer co na początku, czy już raczej inny?
Marzenie programisty
Dodane 13 września 2010 w kategorii Techblog.Program, który by brał plik z kodem, parsował go i rysował ładny graf powiązań między metodami, pokazując przy okazji miejsca użycia poszczególnych zmiennych klasowych.
Albo lepiej - program, który by brał katalog z projektem i rysował graf powiązań między plikami, pokazując na czerwono miejsca użycia zmiennych globalnych i innych trefnych rozwiązań.
Albo jeszcze lepiej - program, który po odpaleniu skryptu po prostu by pokazywał, gdzie dana zmienna była używana i jakie wartości przyjmowała.
Życie programisty byłoby znacznie milsze i łatwiejsze, gdyby taka zabawka oszczędzała mu wielogodzinnej analizy kodu i żmudnego śledzenia kilkunastu zmiennych po kilkudziesięciu plikach.
Oczywiście najlepiej by było, gdyby programiści po prostu pisali kod porządnie i z rozmysłem, używając komentarzy i generalnie biorąc pod uwagę, że ktoś kiedyś może chcieć coś w nim zmienić - ale o tym to ja już (nauczony doświadczeniem) nawet nie marzę.
Jednakowoż z okazji Dnia Programisty życzę sobie i kolegom po fachu, żeby taki cud się w końcu zdarzył. A tym, którzy o jakość i przejrzystość kodu nie dbają, życzę z całego serca, żeby ten dzień jak najszybciej przestał być ich świętem;-).
Postęp
Dodane 10 lipca 2010 w kategorii Techblog.1995
Procesor: 75 MHz
RAM: 8 MB
Dysk: 850 MB
1999
Procesor: 300 MHz
RAM: 64 MB
Dysk: 5 GB
2004
Procesor: 2,4 GHz
RAM: 512 MB
Dysk: 40 GB
2010 (netbook)
Procesor: 1,6 GHz
RAM: 1 GB
Dysk: 160 GB
Ciekawe, jaką zabawkę będę mógł sobie kupić za kolejne kilka lat;-).
Jogger - technologia czy społeczność?
Dodane 27 maja 2010 w kategorii Net,Techblog.Tak jakoś wyszło (mniejsza o przyczyny), że w trwającej już kilka dni wielkiej debacie o rozwoju Joggera nie zabrałem dotąd głosu - ale może to i lepiej, bo po paru kolejnych odcinkach można już zrobić małe podsumowanie.
Przede wszystkim, spora część dyskutantów wykazała się zboczeniem zawodowym programistów, czyli myśleniem przede wszystkim o kodzie. Co tam społeczność, co tam funkcjonalności - najważniejsze, żeby było open source. OK, może i fajnie by było, ale to tak naprawdę trzeciorzędna kwestia. Nieważne, czy kod będzie otwarty czy zamknięty - ważniejsze, jakie będą efekty jego działania i jak będzie wyglądał jego rozwój. Ale i to jest kwestią drugorzędną. Najważniejszy jest - jak zawsze - efekt końcowy, czyli rozwój społeczności. A to ma już naprawdę niewiele wspólnego z samym kodem.
Żeby nie być gołosłownym - w obecnej pracy zajmuję się rozwijaniem serwisu, który ma 100k UU dziennie, a niektóre partie kodu to po prostu burdel na kółkach: niekończące się elseify, masa zmiennych globalnych, skamieniałości z czasów pehapa łupanego, dziki gąszcz powiązań między dziesiątkami plików i generalnie pokaz, jak nie należy programować. Jakim cudem to wszystko się nie wywala dziesięć razy dziennie, nie jestem w stanie pojąć. Ale użytkownicy tego nie widzą, więc dla nich problem nie istnieje, a serwis się trzyma - może na słowo honoru, ale jednak.
Wracając do Joggera - nie wiem oczywiście, jak wygląda jego kod (D4rky twierdzi, że tragicznie, ale to pojęcie względne), na pewno jednak nie tam tkwi przyczyna spadku popularności platformy. Owszem, źle napisany kod trudniej się rozwija, ale da się z tym żyć, przynajmniej do pewnego momentu. Rzecz w tym, żeby w ogóle ktoś się tym regularnie zajmował, bo nie ma (no, prawie nie ma) takich problemów, których przy odrobinie wysiłku nie dałoby się obejść.
Sprytne komentowanie
Dodane 26 kwietnia 2009 w kategorii Techblog.Każde dziecko, które miało do czynienia z programowaniem, dobrze wie, że komentarze w kodzie pełnią dwie funkcje: po pierwsze, oczywiście komentowanie kodu (co za niespodzianka, nie?), po drugie - "wyłączanie" kawałków kodu, których nie chcemy wykonywać, ale nie chcemy ich także kasować. Banał. Jest jednak pewna nie do końca banalna kwestia - zdarza się, że podczas pisania i testowania kodu na przemian "włączamy" i "wyłączamy" jakiś fragment, sprawdzając jego działanie oraz działanie kodu bez niego. Żaden problem, jeśli fragment jest krótki i można go zakomentować/odkomentować w dwie sekundy - ale jeśli zajmuje on, powiedzmy, kilka ekranów, a nasz edytor nie ma automatycznego usuwania znaków końca komentarza po usunięciu początku, to ciągłe latanie kursorem w te i wewte może być dość męczące. Co więcej, jeśli odkomentujemy kod, a potem coś dopiszemy i zechcemy go znowu zakomentować, to nierzadko stracimy chwilę na znalezienie miejsca, w którym fragment do zakomentowania się kończy. Niby drobiazg, ale czasem przeszkadza.
Cóż zatem począć? Na pewno wygodniej by było, gdyby początek i koniec komentarza był widoczny także po jego chwilowym usunięciu, a włączanie i wyłączanie komentarza dało się zrobić w jednym kroku, zamiast w dwóch. Niektórzy radzą sobie z tym problemem, obejmując kod klamrami i dając na początku warunek "if(0)". Efekt niby taki sam jak przy komentarzu, no i wystarczy zmienić zero na jedynkę, żeby kod się wykonał. Nie jest to jednak ani eleganckie, ani nie odpowiada w pełni komentarzowi - raz, że "zakomentowany" w ten sposób kod musi być poprawny, żeby kompilator/interpreter się nie wywalił, a dwa, że nie widać na pierwszy rzut oka, że kod jest nieaktywny, bo kolorowanie składni pozostaje.
Kółko i krzyżyk w CSS
Dodane 01 marca 2009 w kategorii Techblog.Były już Lemingi w DHTML-u, był Mario w JS, był nawet Defender w favikonce, więc postanowiłem też się wykazać w tej nieco absurdalnej konkurencji i w mitycznym wolnym czasie wystrugałem Kółko i krzyżyk w CSS.
Nie jest to może osiągnięcie porównywalne z powyższymi, ale i CSS nie daje wielkich możliwości interakcji. Cała sztuczka opiera się na sprytnym wykorzystaniu hovera - każde z pustych pól zawiera w sobie planszę z układem znaczków po kolejnym ruchu, gdzie znowu każde z pustych pól zawiera planszę itd. a najechanie na pole powoduje pokazanie tej planszy, która dzięki odpowiednim stylom zasłania poprzednią. Chyba nie muszę dodawać, w jakIEj przeglądarce to nie działa;-).
Jak nietrudno policzyć, nawet w tak prostej gierce liczba węzłów w drzewie wynosi 1 + 9 + (9*8) + (9*8*7) + (9*8*7*6) + ... = cholernie dużo. Dlatego właśnie krzyżykami gra komputer, co pozwoliło zmniejszyć liczbę kombinacji do niecałej setki. To oczywiście i tak było zbyt wiele, żeby kodować to ręcznie, ale tę czarną robotę odwalił już za mnie prosty skrypt.
Cóż dodać - mogę tylko życzyć miłych zmagań, aczkolwiek bez szans na zwycięstwo [tu wstawić demoniczny śmiech].
Formatowanie CSS – zagadka
Dodane 10 lipca 2008 w kategorii Net,Techblog.Kwestia, która mnie nurtuje od jakiegoś czasu – dlaczego wszyscy (no dobra, prawie wszyscy) formatują kod CSS tak:
.something
{
width: 100px;
height: 30px;
border: 2px solid #ABC;
}
.something a
{
text-transform: uppercase;
color: #666;
}
.somethingElse
{
float: left;
clear: both;
display: block;
padding: 5px;
}
...a nie tak?
.something { width: 100px; height: 30px; border: 2px solid #ABC; }
.something a { text-transform: uppercase; color: #666; }
.somethingElse { float: left; clear: both; display: block; padding: 5px; }
Jakoś nie przychodzi mi do głowy żadna odpowiedź, poza „no bo przecież wszyscy tak robią”. Wyższość drugiego sposobu wydaje mi się bowiem oczywista – kilkakrotna różnica w liczbie zajętych linijek (w powyższym przykładzie cztery zamiast dwudziestu) to nie w kij dmuchał, a chyba mało kto lubi mieć kod rozciągnięty na dziesięć ekranów, gdy można go praktycznie bez straty dla czytelności zmieścić na dwóch. Oczywiście „zwinięty” kod wymaga przyjęcia jakiejś ustalonej kolejności znaczników, żeby je łatwo znajdować wzrokiem, ale odrobina wewnętrznej dyscypliny to chyba nie taki wielki problem.
OK, rozumiem, że niektórym (a może nawet większości) mimo wszystko wygodniej mieć każdy znacznik w osobnej linijce – ale żeby ci „niektórzy” stanowili 99% webmasterów? Tego jakoś nie kumam.
Potrafi mi to ktoś wytłumaczyć?



