Krótki kurs poprawnego htmla (potrzebny)

28 VIII 2006, 02:30:26

Czy mógłby ktoś (Patrys?) popełnić jakiś bardzo krótki wpis na temat trendy htmla, tzn. że się używa <p>, a nie br-ów, że się używa emfazy i stronga, a nie bolda i italiców, jak się poprawnie cytuje, etc., etc.? Coś takiego z miminalną ilością najbardziej niezbędnych tagów htmlowych i bardzo krótkim rationale do całości i gdzieś to wciepnąć w bardzo widocznym miejscu przy zakładaniu nowych jogów. Gdybym ja coś takiego miał kilka lat temu, to moje wpisy sprzed paru lat wyglądałyby o niebo bardziej czytelnie.

(Oczywiście jeśli taki tekścik już się gdzieś znajduje, to nie pisać, tylko liknkąć. I mi też tu zapodać linka, bo ciekawym, czy o czymś jeszcze nie wiem.)

Dużo się ucz, gorzej wypadniesz w pracy (wstęp)

28 VIII 2006, 02:12:49

Czytając ostatnie wynurzenia Joela Spolsky'ego na temat sposobów zarządzania przyszło mi do głowy, że dzielenie dłuższych tekstów na kawałki jest jednak bardzo dobrym pomysłem tak z punktu widzenia czytelników, jak i mojego. Wy będziecie dostawać krótsze teksty w pewnych odstępach czasowych, zamiast jednego wielkiego, co ułatwi wam czytanie, ja natomiast nie muszę spędzać cięgiem kilku godzin nad całością, bo wystarczy, że domknę jakiś "podwątek" i mogę odstawić resztę na inny dzień. A więc poniżej część pierwsza, będąca tylko wstępem. Resztę, która powinna się zamknąć najwyżej w dwóch dodatkowych częściach, dopiszę w ciągu najbliższych kilku dni. Miłego czytania.

Dłuższy czas temu Tomasz Staniak opisał był problemy związane z pracą w domu. Napisał m.in. (podkreślenie moje):

Jest to [praca w domu] wspaniałe wyjście dla osób zdyscyplinowanych, ambitnych i pracowitych. (...) Owszem, każdą z tych cech można w sobie wyrobić. Zwłaszcza, po którejś porażce z rzędu przychodzą one nader łatwo (o ile wcześniej porażkami nie zrobisz sobie "opinii". negatywnej, jak najbardziej).

Zaryzykowałbym stwierdzenie, że problemy, które opisał Tomek, to tylko czubek góry lodowej. Cała góra owych problemów jest natomiast własnością pewnego internetowego tworu, znanego jako kompetentni technicznie młodzi ludzie.

Klasyfikacja i występowanie

Nie wiem od czego zacząć, więc może zacznę od uściślenia o kim mówię. Zastanówcie się ilu ludzi kojarzycie z jakiś ich konkretnych osiągnięć, mimo, że ich wiek, w najlepszym wypadku "wczesnostudencki", w teorii nie powinien na żadne "osiągnięcia" pozwalać. Nie będę podpowiadał, ale mimo to zapewne większość z was jest w stanie wymienić co najmniej kilka nazwisk (no, nazwisk może niekoniecznie, prędzej nicków :). Na potrzeby tego tekstu skupię się tylko na różnej maści "informatykach", gdyż akurat to jest moje środowisko, acz zakładam, że przynajmniej część z tego, o czym będę mówił, odnosi się także do innych dziedzin.

Jak to mi powiedział niedawno mój czterdziestopięcioletni ojciec -- Internet otwiera oczy. Jego pokolenie w pewnym sensie cechowała zawsze pewna "zaściankowość". Dostęp do wiedzy, takiej prawdziwej, był zawsze ograniczony, choćby przez czasochłonność jej zdobywania. Moje pokolenie natomiast ma natychmiastowy dostęp do czego tylko chce. Dla czystej rozrywki intelektualnej, na potrzeby jakiejś dyskusji na ten przykład, możemy dokopać się do źródła jakiejś informacji, możemy zweryfikować informacje podane przez media, możemy też znaleźć opis działania dowolnego mechanizmu.

Ma to ciekawe implikacje z punktu widzenia rozwoju zawodowego, zwłaszcza dla ludzi zajmującymi się tzw. nowymi technologiami. Kiedyś zdobywanie wiedzy i doświadczenia wymagało albo bycia zatrudnionym w odpowiedniej firmie, albo też uczenia się na odpowiednim uniwersytecie. Obecnie byle gimnazjalista (ze wskazaniem raczej na licealistów), jeśli tylko przyjdzie mu na to ochota, może przyswoić sobie podstawy teoretyczne na przykład zasad działania projektów open source, po czym aktywnie włączyć się w rozwój jakiegoś. I jego wybór nie ogranicza się tylko do jakiś hobbystycznych projekcików -- linux i przyległości to już od dawna oprogramowanie klasy enterprise (żeby użyć poważnie brzmiącego określenia). Pamiętacie może ile lat miał Marcelo Tosatti, gdy przejął opiekę nad jądrami serii 2.4?

Wolny dostęp do wiedzy (wolny od wolności; powolność miał mój ojciec) to bardzo dobra rzecz i obiektywnie rzecz biorąc działa jak najbardziej na korzyść tych młodych ludzi, którzy z niego korzystają. Niestety wiedza techniczna to nie wszystko i na takich młodych zdolnych czeka sporo pułapek, których konsekwencje mogą być nieprzyjemne...

Employee of the year, isn't

27 VIII 2006, 03:50:00

Nie potrafię pracować. Nie potrafię organizować sobie czasu. Nie jestem systematyczny. A co najważniejsze, nie jestem w stanie realistycznie oceniać czasochłonności tego, co jest mi zadawane. I to tak pod względem czasochłonności samego zadania, jak i biorąc poprawkę na moją nieumiejętność radzenia sobie z czasem.

Gdybym był moim szefem, dawno bym siebie samego wywalił.

Od paru dni łazi mi po głowie notka mniej więcej na ten temat i to może nawet wyszłaby interesująca. Ale zanim się za nią w końcu zabiorę, to pewnie kompletnie zapomnę co chciałem napisać :/

(I w takich momentach człowiek sobie uświadamia, że jednak zostawianie sobie zaliczeń na wrzesień może nie być najszczęśliwszym pomysłem. Oh well. Live and learn.)

FTP/Builder TODO

14 VIII 2006, 18:51:47

Linus rozumie jak bardzo bardzo ważne są odpowiednie narzędzia. Rozumiał to wtedy, gdy postanowił używać BitKeepera pomimo zastrzeżeń co do licencji, rozumiał to też później, gdy po przetestowaniu wszystkich dostępnych opensourcowych distributed scmów stwierdził, że żaden nie odpowiada jego wymaganiom, więc najlepiej będzie napisać swój własny.

Pojedynczy człowiek ma bardzo ograniczone moce przerobowe i żeby rzeczywiście stworzyć coś dużego, musi umieć delegować zadania. Jeśli jest menedżerem -- stworzyć sobie zgrany zespół. Jeśli jest informatykiem -- stworzyć sobie środowisko automatyzujące jak największą ilość wykonywanych czynności.

Przewaga, jaką ma zespół posiadający rozwinięte i dobrze działające narzędzia nad takim, który ma tylko ludzi, jest nie do opisania. Powiem tylko tyle -- jeśli wymienić moim zdaniem najważniejszą różnicę między takim Gentoo, Debianem, czy też PLD, a różnymi malutkimi dystrybucyjkami, to byłyby to właśnie kilogramy skryptów, automatów, systemów i procedur, które można znaleźć w tych pierwszych.

Pisałem już wielokrotnie, ale powtórzę jeszcze raz -- potencjał jakościowy dla PLD, który nadal drzemie w naszych niedoborach infrastrukturalnych, jest po prostu ogromny. Naprawienie tego, o czym teraz wiemy, że jest źle, dałoby bardzo duże efekty, a to nie wszystko. Tak jak Linus, który dopiero po użyciu BitKeepera wyrobił sobie zdanie na temat tego, jak powinien wyglądać porządny rozproszony scm, tak my, zrobiwszy to, co teraz chcielibyśmy zrobić, pewnie zajęlibyśmy się następnymi, bardziej już subtelnymi usprawnieniami.

Głównym ludziem od naszej infrastruktury ftpowo/builderowej zostałem jakieś dwa lata temu i główna rzecz, jaką się przez ten czas nauczyłem, brzmi -- nie ma prącia, żebym ja to wszystko zakodował.

Dlatego też postanowiłem to wszystko pospisywać. Oto opisy funkcji dla naszej automatyki builderowej i ftpowej, które, po wprowadzeniu, w drastycznym stopniu poprawiłyby komfort utrzymywania każdej linii PLD, jednocześnie na stałe "uniemożliwiając" użytkownikom natknięcie się na pewne klasy (popularnych) błędów.

Nadzieję mam taką, że prędzej, czy później, któryś z nowszych pldziarzy (w których już dawno temu straciłem orientację) się tym zainteresuje i może coś tam dokoduje, ewentualnie jakaś firma w przypływie dobrego humoru postanowi oddelegować swojego pracownika, żeby poświęcił kilka godzin w tygodniu na pokodowanie dla nas.

(Nawiasem mówiąc na pldzianej stronie TODO będę przez najbliższe dwa, trzy tygodnie umieszczał różne propozycje, niektóre dosyć, hmmm, rewolucyjne, so stay tuned (będę tutaj też informował o co ciekawszych kawałkach; no i pewnie na maillistach)).

Środowisko testowe vs. rzeczywistość

11 VIII 2006, 18:10:12

Kolejny duhism -- to, że system mi pięknie działa w moim środowisku testowym w żaden sposób nie uprawnia mnie do twierdzenia, że rzecz jest przetestowana. Po zamienieniu środowiska testowego na rzeczywiste, okazało się, że (a) kilka z założeń, jakie zrobiłem, jest okdr i (b) Whitney, mamy problem.

Jak ja nie cierpię robienia R&D.

Python, a niedobory shellowe

10 VIII 2006, 19:01:16

Python pythonem, ale jednak są takie zadania, które zdecydowanie wygodniej załatwić mi szybkim skryptem shellowym. Czasami użycie i jednego i drugiego narzędzia razem jest sensowne, a czasami nie, więc w tym drugim przypadku muszę się męczyć z robieniem niektórych rzeczy w pythonie.

Z samej swej natury shell jest takim wynalazkiem, że nic go nie zastąpi jeśli idzie o łatwość używania narzędzi shellowych (sed, grep, cut, sort, uniq, żeby wymienić te najpopularniejsze), a użycie tychże jest często jednak znacznie sensowniejsze, niż tworzenie danej funkcjonalności w pythonie.

(Ostatnio ktoś mówił, że ruby ma to fajniej rozwiązane, nie wiem, możliwe, ciekawym jak.)

Chętnie bym zobaczył w pythonie jakiś moduł "shell", czy podobnie nazwany, który po zrobieniu "from shell import *" nie zaśmieciłby mi przestrzeni nazw żadnymi zbędnymi rzeczami, ale jednocześnie dałby mi dostęp do zestawu prostych funkcji, dzięki którym mógłbym bezproblemowo odpalać narzędzia shellowe, łączyć je w potoki, przechwytywać potoki, przekierowywać im wejście i wyjście, mieć łatwy dostęp do zmiennych środowiskowych i w ogóle robić wszystkie te rzeczy, dzięki którym shell w pewnych zastosowaniach jest jednak najwygodniejszy.

Wymagałoby to pewnie sporo pomyślunku, żeby jakoś sensownie zrobić, ale imho jednak byłoby do zrobienia.

Redesign bloga: reaktywacja

08 VIII 2006, 20:58:37

Jakiś czas temu wspominałem, że przydałby się facelifting mojego bloga i że się za cholerę na tym nie znam [1], więc czy znalazłaby się jakaś dobra dusza z jakimś gotowym szablonem i instrukcją jak go użyć. I o ile mnie pamięć nie myli zgłosiły się dwie osoby.

A ja nie potrafię znaleźć tego wpisu... :)

Patrys mnie że tak powiem zmotywował do ponowienia prośby -- czy znalazłaby się jakaś dobra duszyczka, z bezgraficznym, prostym, czytelnym (czcionka jak na obecnym), dwukolumnowym (nawigacja z prawej) szablonem, zajmującym środek ekranu w szerokości tak do 800px, na górę którego może możnaby wsadzić tego boćka i w którym te dzyndzle ze stat4u byłyby umieszczone gdzieś na końcu htmla, a nie na początku, dzięki czemu całość by się szybko ładowała? I co najważniejsze, instrukcją jak go użyć w wersji for dummies?

W zamian oferuję... eee, nie wiem. Swoją wątpliwą cnotę? Kobiety, sławę i pieniądze? Podpisany krwią cyrograf? Ewentualnie zawartość bramki numer trzy.

[1] Do cssa i htmla mam stosunek jeszcze bardziej alergiczny, niż do php -- nie ma takich pieniędzy, żebym ja się miał kiedyś nauczyć obchodzenia różnych idiotyzmów w różnych wersjach IE.

Update: Dobra, ruszyłem tyłek i wrzuciłem Kubrick-Oldschool po czym go poprzerabiałem. W firefoksie pokazuje się gdzieś tak 60-65 liter na linię, więc raczej jest ok (jak ja nie cierpię obsługi czcionek w przeglądarkach).

Natomiast nad głowami widzicie boćka, którego jakiś rok temu, już nie pamiętam dokładnie skąd, wytrzasnęła mi i przyretuszowała YaaL. URATOWAAANIIIIII!!!!!!!

Jak działają buildery pldziane

08 VIII 2006, 17:43:03

Ponieważ przez ten miesiąc opiekuję się (sześcioletnim) bratem, a sam obiadów raczej nie gotuję, to codziennie w okolicach południa spędzamy u mojej babci jakieś trzy godziny, coby sobie zjeść obiad i coby mały miał też jakąś odmianę (pogoda pod zdechłym Fafikiem, ani nie ma co wyściubiać nosa z domu). Ja w tym czasie teoretycznie nie mam żadnych konkretnych zajęć, więc wpadłem na genialny pomysł zabierać sobie laptopa i w tym czasie pisać prozę. Do pracy i na bloga.

Ale zamiast bloga, można przecież trochę bardziej konstruktywnie! Dokumentację do PLD popisać, a jak. Tutaj jest dokument tłumaczący na jakiej zasadzie u nas działa infrastruktura builderowa (autorstwa malekitha.NET, z późniejszymi moimi i nie tylko moimi poprawkami i usprawnieniami).

Dwie rzeczy -- to nie jest pisane po to, żebym ja se mógł popisać, tylko, żeby nie trzeba było nowoprzybyłym tłumaczyć za każdym razem o co biega. Więc bardzo by mi zależało, żeby osoby niepeeldziane, które zainteresują się przeczytaniem całości, zostawiły w komentarzach swoje ewentualne wątpliwości (tzn. co wydaje się w tym tekście niejasne). Przyda mi się to do poprawy tekstu, albo dodania kilku pytań i odpowiedzi na samym końcu wyjaśniających co bardziej niezrozumiałe kwestie.

Odnośnie zaś samego pisania. 99% tego ośmiokilowego tekstu (tzn. wszystko poza początkowym ascii artem) napisałem w ciągu jakiś dwóch godzin intensywnego pisania. Przy standardowej stronie maszynopisu wynoszącej 1800 znaków, to wychodzi, że piszę gdzieś tak jedną stronę w pół godziny. Nie wiem, czy źle to, czy dobrze.

Odnośnie zaś samego użytego angielskiego -- jeśli dużo się czyta, to się człowiekowi utrwalają pewne popularne w danym języku formy, dzięki czemu przy pisaniu ma się większy zasób 'rozwiązań' do zastosowania. Wpływa do pozytywnie na tekst, bo się go dzięki temu płynniej czyta i bardziej przypomina napisany przez kogoś oryginalnie anglojęzycznego.

Ale komfort pisania jest jednak znacznie gorszy w porównaniu z pisaniem po polsku. W co drugim zdaniu nie jestem do końca pewien, czy zastosowana forma jest poprawna. Mam na tyle obycia z językiem (językami) w ogóle, żeby kwestionować poprawność użytych przez siebie form, o ile nie jestem ich całkowicie pewien, co w przypadku polskiego zdarza się rzadko, natomiast tutaj jest "na porządku dziennym". I jest to strasznie irytujące. To jest tak, jakbym napisał, że, hmm, "partycypuję w rozwój PLD", albo że jestem "deweloperem odpowiedzialnym za aspekty związane z infrastrukturą PLD". Niby blisko poprawnego znaczenia i użycia, a jednak każdego rzeczywiście znającego język wybitnie taki potworek razi w oczy.

Tylko nie wiem jak to poprawiać w przypadku angielskiego. Musiałbym pomyśleć gdzie w jakiś wydajny sposób konsultować użyte przez siebie konstrukcje językowe.

Python uber alles

07 VIII 2006, 22:01:04

W mojej robocie generalnie kluczowym jest dobre opanowanie C i różnego rodzaju kombinacje, jak duże ilości bardzo ciężkich serwerów w owym C napisanych, ze sobą w jakiś wydajny sposób zsynchronizować (z jednego konkretnego swojego rozwiązania jestem szczególnie dumny, bo działa bardzo ładnie :).

Międzymordzie usera jest napisane w pehapie z użyciem smarty'ego, oryginalnie przeze mnie (choć w rzeczywistości pehapa praktycznie nie znam; i nie chcę znać ;), a obecnie jest to rozwijane przez mojego znajomego.

Do tego dochodzi kawałek kodu odpowiedzialny za zasysanie 'logów' z poszczególnych serwerów, obrabianie ich lekko i wsadzanie do lokalnej bazy danych. To postanowiłem zrobić w pythonie i od już gdzieś roku działa bez problemów. Znajomy nawiasem mówiąc w przerwach od pehapienia też coś podobnego robi. Też w pythonie :)

Ostatnio natomiast przyszło mi przerobić jeden z serwerów na coś zbierającego i analizującego dane. Więc kod w C przerobiłem na zbierający dane, natomiast kombinacją pythona i shella zarządzam odpalaniem owego serwera, po czym obrabiam wynikowe dane. Działa pięknie i pozwala na wręcz gigantyczną swobodę.

Ostatnio natomiast szef mi kazał doprowadzić do jakiegoś stanu mieszaninę kodu C i C++ w wersji bardzo bardzo alpha (ledwo proof of concept). Powiedziałem mu, że to będzie duuużo roboty i będzie to długo trwało, na co odpowiedział, że mam to tylko na szybko przyciąć, coby było zdatne na demo dla potencjalnych klientów.

Python rządzi! Robienie w nim gluecodu po prostu wymiata. Zamiast martwić się przerabianiem wnętrzności tego kodu C/C++, po prostu podzieliłem go logicznie na coś w rodzaju modułu synchronizującego i programik 'kliencki' robiący jak najprostszą rzecz, a sterowany z linii komend. A synchronizację jednemu i drugiemu zapewniłem przy pomocy dwóch skryptów pythonowych i kawałka shella. Miodzio. Gdyby nie python, to bym się pewnie posiekał, bo musiałbym to robić nie dość, że w C/C++, co samo z siebie byłoby powolne, to jeszcze cały czas by mi w paradę wchodził oryginalny kod.

Luuudzie! Uczcie się (dobrych) języków skryptowych, bo bez nich jak bez fujarki, znaczy, wróć, bez ręki. Nawet sobie nie wyobrażam co by ze mną było, gdybym się te bodajże dwa lata temu owego pythona nie nauczył.

Szczypta kontrowersji

07 VIII 2006, 17:15:11

(Piszący blogi dzielą się na dwa rodzaje -- na tych, którzy w prosty sposób próbują szufladkować resztę ludzkości i na tych, którzy tego nie czynią.)

Osoby czytające teksty wszelakie dzielą się na trzy rodzaje. Pierwsi, którzy, jeśli tylko nie podoba im się jakakolwiek część czytanej wypowiedzi, uznają to za wystarczający powód do zdyskredytowania całości (często wraz z osobą autora). Drudzy, którzy, nawet jeśli nie podchodzi im część argumentacji autora, to i tak doceniają te kawałki, w których autor rzeczywiście mógł wpaść na coś ciekawego. I trzeci, którzy wpisują swoje miasta!(!!!11oneone1)

Od razu mówię, że zaliczam się do tych drugich. Ale...

Jeśli na jakiś wewnątrzprojektowych listach dyskusyjnych jeden geek bez skrupułów zjeżdża drugiego za błąd, to przynajmniej ja uznaję to za normalne, bo to takie środowisko po prostu jest. Niektórym to z czasem przechodzi, ale generalnie całkiem wyplenić się tego nie da, bo prosta ekonomia mówi, że cenniejsze są czyjeś umiejętności techniczne, niż słabe umiejętności kontrolowania się podczas dyskusji. Treść ważniejsza jest od formy.

Ale to uznajmy za przypadek szczególny. Co z pozostałymi? Redaktorzy gazet, felietoniści, eseiści i inni blogiści -- na co sobie mogą pozwolić, a jakie zachowanie dyskredytuje ich całkowicie w oczach wymagających czytelników?

Ostrożny autor przy każdej wyrażonej opinii będzie jasno zaznaczał, że "moim zdaniem", "z mojego doświadczenia wynika", "o ile się orientuję", etc, etc. A już w szczególności jak ognia będzie unikał wyrażania opinii o innych ludziach. Odnieść się do czyichś opinii -- tak. Próbować oceniać czyjeś argumenty przez pryzmat osoby ich autora -- bardzo śliski grunt.

Temat odnoszenia się do innych ludzi zostawię -- mógłbym o tym pisać w nieskończoność, a w sumie i tak sprowadza się do wyczucia czytelnika, co uznaje on za dopuszczalne, a co już go razi jako niekulturalne.

Ale co z ogólnie pojętym generalizowaniem? Jeśli pominę w tekście te wszystkie IMHOizmy (uwaga -- od tego momentu "ja" to jest ten teoretyczny redaktor/felietonista/eseista/blogista), to część czytelników po prostu założy, że nie chciało mi się ich pisać, ale w rzeczywistości one tam są, więc bez zbędnych ceregieli przejdą do analizowania moich opinii i wyciągania z nich tych kawałków, które mogą im się przydać i/lub z którymi się zgadzają.

Druga grupa natomiast stwierdzi, że próbuję prawić kazania, swoje własne opinie przedstawiać jako prawdy objawione, jestem głupi, śmierdzę i mam wszy na pępku.

Pierwsza reakcja -- no to powinienem pisać z dużą ilością IMHOizmów.

Druga reakcja -- stali czytelnicy, osoby, które mnie znają, najprawdopodobniej wiedzą lepiej i o ile nie napiszę jakiś kompletnych pierdół, to ich opinia o mnie się raczej nie zmieni. Reszta natomiast na trochę kontrowersji [1] zareaguje w taki sposób, że zwiększy mi czytelnictwo.

Kuszące, nie powiem. A na pewno w niektórych sytuacjach warte rozważenia. Bo jeśli udało mi się wydobyć z tekstu jakiegoś autora informację/punkt widzenia dla mnie przydatny, to czy mogę mu mieć za złe stosowanie kontrowersyjnej formy, bez której najprawdopodobniej nigdy bym o danym autorze nawet nie usłyszał?

[1] Kontrowersji, a nie kompletnych pierdół. Na kompletne pierdoły nie zareaguje praktycznie nikt, o ile autor nie jest już względnie popularny. Kontrowersje natomiast zdefiniuję tutaj jako bezIMHOizmowo przedstawione opinie, które zapewne nie są całkowicie poprawne (generalizowanie z definicji nie może być), acz dotykają jakiegoś czułego punktu, więc o ile nie przeszkadza nam forma, to treść może okazać się ciekawa.

Nauka języka -- podsumowanie

06 VIII 2006, 17:30:57

Krótkie podsumowanie ostatnio poruszonej kwestii nauki języków obcych.

Od pewnego poziomu nauka języka następuje automatycznie, poprzez jego używanie, w tym wypadku znajdowanie interesujących tekstów (publicystycznych) w internecie i ich czytanie. W ten sposób utrwalają się poprawne formy użycia wyrazów i całych zwrotów.

Żeby być w stanie czytać takie teksty, potrzebny jest zasób najpopularniejszych słów i to nawet w podstawowych formach. Tzn. do zrozumienia treści wystarczy znajomość języka na poziomie "Kali chcieć ukraść krowa", natomiast wielokrotne spotykanie formy poprawnej, czyli "Kali chciałby ukraść krowę" prowadzi do jej utrwalenia i w efekcie zastąpienia prostego zbioru zapamiętanych słów znacznie bardziej skomplikowaną, w większości intuicyjną umiejętnością posługiwania się językiem.

W przypadku osiągniecia już poziomu wystarczającego do czytania tekstów publicystycznych (beletrystyka jest zazwyczaj znacznie kwieciściej pisana, a przez to trudniejsza), jedyna "pomoc" sprowadziłaby się do znalezienia odpowiedniego źródła takich tekstów. Zapewne wystarczy lista najpopularniejszych niemieckojęzycznych serwisów informacyjny i ichni odpowiednik reddita/wykopa.

Kluczową kwestią jest uzyskanie owego zasobu słów. Proponowany sposób polega na ich automatycznym podstawianiu w miejscu ich odpowiedników z innego, znanego już czytelnikowi, języka i liczenie na to, że dzięki temu czytelnik w sposób bierny sobie je przyswoi.

Wersja trudniejsza do zalgorytmizowania polega na podstawianiu słów i zwrotów w sposób jak najbardziej zbliżony do oryginału.

Celem wersji prostszej byłoby tylko i wyłącznie umożliwienie czytelnikowi przyswojenia dużej ilości słów ("Kali chcieć ukraść krowa"), natomiast poprawne ich użycie byłoby ćwiczone dopiero po przestawieniu się czytelnika na czytanie kompletnych tekstów obcojęzycznych.

Przygotowanie takiego programu wymagałoby programisty oraz lingwisty znającego dobrze tak język bazowy (dla mnie polski, lub, co bardziej wskazane, angielski), jak i docelowy (dla mnie niemiecki). Wymagałoby to opracowania listy najważniejszych słów i zwrotów w języku docelowym oraz opracowania najsensowniejszych zasad podstawiania do języka bazowego. Lista słów zapewne nie jest problemem, gdyż trudno sobie wyobrazić, żeby lingwiści nie dysponowali zbiorem słów wymaganych do efektywnej komunikacji w danym języku.

Do tego zapewne dobre byłoby opracowanie kilku krótkich tekstów wprowadzających uczącego się w najważniejsze kwestie odnośnie "zasad działania" języka, którego ma zamiar się nauczyć.

Przykładowy sposób działania -- wtyczka do firefoksa, dodająca przycisk, po naciśnięciu którego wyświetla się lista proponowanych do podstawienia słów, z której czytelnik eliminuje słowa mu już znane (wtyczka te wskazówki zapamiętuje i nie męczy użytkownika cały czas tymi samymi propozycjami), po czym ją akceptuje i od tego momentu dane słowa zostają w tekście danej strony podmienione. Cała operacja w najpopularniejszym wypadku (zaakceptowanie wyborów dokonanych przez wtyczkę) trwa jakąś sekundę, a odpowiednie zestawy regułek mogą wręcz pozwolić skonfigurować automatyczne podstawianie dla określonych serwisów.

Tyle. Pytanie za 100 punktów -- kto mi to wszystko przygotuje (i najlepiej udostępni za darmo), albo przynajmniej wskaże badania sugerujące, że coś takiego nie ma prawa działać.

Zgłaszam patent na sposób uczenia języków obcych :)

06 VIII 2006, 00:50:31

Na początku małe dzieci uczą się pojedynczych wyrazów. Mama, tata, listonosz.

Gdy już mają wyrobiony jakiś minimalny słownik, przechodzą do uczenia się całych zwrotów. Tata kup rower, mama zrobiłem kupę, szarap.

Dobra, w tym ostatnim przypadku trochę oszukuję, bo za młodu myślałem, że to jest jedno słowo (takoż zapewne moi koledzy), na dodatek ewidentnie nie wiedziałem jak je poprawnie wypowiadać, o zapisie nawet nie wspominając (dla niekumatych -- to jest shut up w wersji dla małych dzieci).

W każdym razie dążę do tego, że istota ludzka rozszerza swoje możliwości językowe poprzez wielokrotne "odsłuchiwanie" jakiegoś zwrotu, po którym następuje próba użycia, i tak kilka razy, aż dany zwrot nam się utrwala w naszej sieci neuronowej, przez co jego użycie robi się niejako naturalne, a gdy słyszymy użycie błędne, to od razu czujemy, że coś z nim jest nie tak.

Stoi to w jawnej sprzeczności z próbami nauki języka poprzez świadome zrozumienie jego zasad gramatycznych. Oczywiście jest to możliwe, ale ostatecznym celem nie jest rozumienie owych zasad, tylko poprzez odpowiednią ilość powtórzeń, takie wytrenowanie swojej sieci neuronowej, żeby potrafiła to robić bez naszego świadomego udziału. A imho są na to znacznie efektywniejsze sposoby.

Właśnie przez kucie regułek i słówek próbowano mnie nauczyć niemieckiego w liceum. Nie umiem. Natomiast swoją płynność w posługiwaniu się językiem angielskim przypisuję głównie temu, że za młodu oglądałem duże ilości Cartoon Network, a wtedy do wersji polskojęzycznej dostępu nie miałem (nie było chyba nawet takiej). Moja teoria jest taka, że właśnie wtedy rozbudowałem swoje słownictwo do niezłego poziomu na zasadzie przyswajania słów z kontekstu, czyli tak jak to robią niemowlaki nie posiadające jeszcze żadnego utrwalonego języka i, co ważniejsze, wyrobiłem sobie obwody intuicji językowej. Tzn. od tamtego czasu nie musiałem się uczyć regułek językowych, żeby poprawnie używać angielskiego. Ot po prostu byłem to w stanie robić (za czym szła też płynna mowa). Analogicznie jak każdy z was się nauczył języka polskiego. Nie musicie rozumieć zasad odmiany przez przypadki (ba, kto poza językoznawcami je zna), bo wasze mózgi to potrafią.

(A, w ramach treningu aktywnego, poza kursami angielskiego w podstawówce, bardzo często myślałem po angielsku. Po prostu zamiast myśleć po polsku, myślałem po angielsku. Obecnie zdarza mi się to bardzo rzadko, ale moja teoria jest taka, że wtedy robiło to za bardzo bardzo dobry substytut dla normalnej rozmowy na żywo.)

Czemu ja się nad tym rozwodzę? Ponieważ przez ten miesiąc opiekuję się swoim bratem, więc mam okazję wraz z nim pooglądać trochę bajek na niemieckich kanałach dla dzieci. Okazuje się, że jestem w stanie zrozumieć gdzieś tak połowę używanych tam zwrotów, a moja ocena jest taka, że brakuje mi gdzieś tak 300-500 słów i zwrotów, żeby być w stanie rozumieć całość.

Nauczyć się jeszcze jednego języka? Brzmi bardzo kusząco, bo znajomość li tylko angielskiego, nawet w stopniu zaawansowanym, to i tak jest raczej mało. Problem polega na tym, że nie mam się z czego owego języka nauczyć. Jakikolwiek czasochłonny tradycyjny kurs od razu odpada, bo mi się po prostu nie będzie chciało.

Najlepiej byłoby użyć sposobu już sprawdzonego, czyli oglądania bajek, no ale, sami rozumiecie. Zanudziłbym się na śmierć i skutek byłby taki, jak z owymi kursami, czyli żaden. Potrzebuję czegoś działającego na takiej samej zasadzie, ale jednocześnie mogącego mnie aktywnie zainteresować.

Miałem się poddać, ale podczas pisania tego tekstu (dlatego warto jest spisywać swoje przemyślenia) wpadłem na pewien pomysł. Otóż poprzez reddita i kilka innych stron moja dzienna dawka angielskich tekstów waha się na oko między 20, a 30. Oznacza to, że jest fizyczną niemożliwością, żebym przy każdym nieznanym mi słowie (a jest tego jednak całkiem sporo, głównie jakieś rzadko spotykane przymiotniki) używał słownika. Zabiłoby mi to całą przyjemność czytania i trwało zdecydowanie za długo. Dlatego też w 99% przypadków zdaję się na rozumienie z kontekstu, natomiast w pozostałym 1%, gdy dane słowo jest kluczowe dla zrozumienia treści, sięgam po słownik. Przy czym na moim poziomie nie tyle słownictwo jest już ważne, ile całe zwroty, które dzięki czytaniu w dużych ilościach sobie utrwalam.

A co, gdyby rozumienie i zapamiętywanie z kontekstu, czyli ten najbardziej podstawowy i najlepiej działający (bo dzięki niemu uczymy się języka ojczystego), a jednocześnie w bardzo dużym stopniu bierny mechanizm nauki języka zaprząc do nauki języków obcych? Ale jak? Dosyć prosto.

"Na skraju pola stał las, a przez ten forest przechodziła autostrada. Po tej highway jeździły samochody."

Może brzmi głupio, ale wcale takie nie jest. Opowiem małą anegdotę -- w czwartym akapicie tego zdecydowanie już za długiego wpisu jest taki zwrot: "wielokrotne odsłuchiwanie jakiegoś zwrotu, po którym następuje próba użycia". W momencie, w którym napisałem przecinek po słowie 'zwrotu', mój mózg zasugerował mi użycie przeciwieństwa słowa 'poprzedzone', ale przy zachowaniu strony biernej.

No i dup. W języku polskim nie ma czegoś takiego. Mózg mi zasugerował, bo zna taki zwrot, ale z języka angielskiego i prawdę mówiąc byłem całkiem bliski napisania tam "followed by", zanim się nie pokapowałem, że to by jednak dziwnie wyglądało i lepiej po prostu użyć strony czynnej.

Oczywiście prawda jest taka, że nikt takich tekstów z podmienionymi słowami/zwrotami nigdy nie przygotuje, bo (a) musiałoby ich być bardzo dużo, (b) musiałyby być rzeczywiście ciekawe i (c) musiałyby być ustawione w odpowiedniej kolejności i z odpowiednio dawkowanymi obcymi zwrotami.

Chyba, że by znalalazł się jakiś germanista zapaleniec z zacięciem edukacyjnym i postanowił przygotować serię takich tekstów powiedzmy o lingwistyce w ogóle, germanistyce w szczególe, kulturze niemieckiej, etc. Tylko musiałyby być to rzeczywiście ciekawe i niezbyt specjalistyczne rzeczy, a na dodatek napakowane odpowiednio przygotowanymi i przemyślanymi zwrotami. Jakby co, to ja się zgłaszam na ochotnika, to bycia objętym takim eksperymentalnym kursem niemieckiego.

Acz chyba bardziej realną alternatywą jest opracowanie odpowiednich algorytmów, coby kawałek oprogramowania potrafił podmieniać wyrazy i zwroty w gotowych tekstach. Raczej nie z języka polskiego, bo byłoby to zapewne dosyć upierdliwe, ale już z angielskiego, to czemu nie, byłoby chyba całkiem prosto. A sam kod i opis wszystkiego byłby zapewne wart tytułu doktora dla jakiejś pary magistrów -- germanistyka i informatyka.

No cóż, można pomarzyć.

Update: żeby było jasne -- celem powyższej techniki jest tylko i wyłącznie opanowanie takiej ilości zwrotów, by być w stanie oglądać te wspomniane bajki i czytać ze zrozumieniem niespecjalistyczne teksty niemieckie (głównie chodzi o publicystykę, bo beletrystyka jest zazwyczaj ciężka, ze względu na kwieciste opisy wszystkiego). "Poziom zaawansowany" w tym wypadku, to by było po prostu przerzucenie się na czytanie całkowicie po niemiecku.

f(t)

01 VIII 2006, 21:42:45

W dyskusjach internetowych często widać dwa koronne argumenty. Pierwszy, który na cześć mości nam panujących braci nazwę "spieprzaj gówniarzu".

I będący na niego bezpośrednią odpowiedzią coś w rodzaju "co to za poziom dyskusji, że wiek dyskutanta używa się za argument!" (oczywiście zazwyczaj używany przez rzeczonego spieprzaj gówniarza).

No i niby prawda, że co to za stanowisko, którego nie potrafisz wytłumaczyć inaczej, jak "młodyś, głupiś", które to z kolei jest argumentem ad personam i w ogóle herezja, bezeceństwo, pedalstwo i pedofilstwo.

Ale prawda jest taka, że jest to tylko skrót myślowy od "nie jestem w stanie ci tego wytłumaczyć, zrozumiesz, jak sam doświadczysz" i jako taki jest jak najbardziej słuszny, z racji tego, że niektórych rzeczy po prostu nie jest się w stanie zrozumieć, zanim się ich nie doświadczy (na tym polega edukacja człowieka, o czym się już naprodukowałem tonami).

(Abstrahuję tu od tego, że nie powinno się mówić "spieprzaj gówniarzu", tylko raczej starać się wyrażać mniej ofensywnie i z mniejszą dawką emocji. "Poszukaj, czy nie ma cię gdzie indziej, gołowąsie" brzmi zdecydowanie lepiej.)

Dlatego też niniejszym nawołuję wszystkich blogerów (jaka będzie forma żeńska? "blogaska"? hyhyhy), no więc nawołuję wszystkich blogerów i wszystkie blog(l)aski do wpisywania w widocznym miejscu swoich blogów ile kto ma lat. Pozwoli to na znacznie łatwiejszą klasyfikację na gołowąs/całkiem sensowny gołowąs, ale i tak gołowąs/stary, a głupi, niereformowalny/sensowny człowiek/stary zramolały pierdziel, homo marudus gerantricus.

A, i note to self: prawdę rzecze enbweu, że zarządzanie własnym czasem ssie, więc następnym razem jak powiem szefowi, że 'cztery dni to aż nadto na zakodowanie i przetestowanie tego', to powinienem zacząć robotę dnia pierwszego, a nie ostatniego. Zapowiada się late night coding.

« | »