Archive for Culture

lonu pilno be loi sucta bei tu’a la lojban.

2010-10-05 23:01

Używanie abstrakcji w lojbanie.

W jednej z wcześniejszych notek na temat lojbanu wspominałem o tym, że często posługujemy się w nim konstrukcjami, które określa się jako abstrakcje. Pojawiały się one kilka razy nawet tutaj. Osobiście uważam je za jedną z ciekawszych cech języka, dlatego też chciałbym dzisiaj opisać ją nieco dokładniej.

Przypomnijmy, że “zdanie” w lojbanie – czyli bridi – to pewna relacja określona na swoich argumentach, zwanych sumti:

lo bolci cu gunro fa’a le vorme
Piłka toczy się w kierunku bramki.

Ta relacja może opisywać jakieś zdarzenie, fakt, właściwość, itp. Dopóki jej argumentami są proste pojęcia (takie jak piłka czy bramka), do jej wyrażenia wystarczają równie nieskomplikowane konstrukcje gramatyczne. Jednak nie zawsze tak jest. Nierzadko chcemy mówić nie tyle o konkretnych obiektach, co właśnie o zdarzeniach, faktach lub właściwościach, które w lojbanie należą do grupy pojęć zwanych abstrakcjami.
Aby to zrobić, należy jedno bridi uczynić argumentem innego. Jest to możliwe przy pomocy tzw. abstraktorów, z których najczęściej używanym jest nu. Zaaplikowanie go do bridi daje w wyniku zdarzenie, które owo bridi opisuje. Zapewne najłatwiej zobaczyć to na przykładach takich, jak poniższe:

mi klama lo zarci — Idę to sklepu.
ti nu mi klama lo zarci — To jest zdarzenie mojego pójścia do sklepu.
lo nu mi klama lo zarci cu pluka mi — Pójście do sklepu sprawiło mi przyjemność.

Ostatnie wyrażenie prawdopodobnie przetłumaczylibyśmy raczej jako: “Cieszę się, że poszedłem do sklepu”, czyli używając pewnego rodzaju zdania złożonego. W lojbanie to samo wyrażamy nieco inaczej, odnosząc się do ‘pójścia do sklepu’ (lonu mi klama lo zarci) w ten sam sposób, w jaki wcześniej odwoływaliśmy się do bardziej konkretnych obiektów. Ten trochę inny schemat myślenia jest według mnie całkiem interesujący.
Oczywiście przy bardziej skomplikowanych wypowiedziach konieczne może się okazać wielokrotne zagnieżdżanie – tak jak w poniższym przykładzie potencjalnej dyskusji po meczu pewnej znanej i lubianej gry strategicznej:

lonu mi fliba cu jalge lonu lerci fa lonu mi zbasu le .ekspo
Moja przegrana była wynikiem tego, że spóźniłem się z budową expa.

Jak widać to, co lojban wyraża jednolicie za pomocą abstraktora nu, w języku polskim wymaga fraz typu ‘to, że’ albo rzeczowników pochodzących od czasowników – jak ‘przegrana’ czy ‘budowa’.

Jak można się domyślić, nu nie jest jedynym abstraktorem, a zdarzenia nie są jedynym rodzajem abstrakcji w lojbanie. Innym często spotykanym słówkiem tego typu jest du’u, którego używamy, dyskutując o faktach, opiniach czy wiedzy, gdyż jest to abstraktor stwierdzenia:

mi djuno lodu’u la berlin. raltca lo dotco — Wiem, że Berlin jest stolicą Niemiec.
la robert jdice lodu’u litru lo fraso — Robert zdecydował się na podróż do Francji.

W końcu jest też abstraktor ka, wskazujący na właściwości lub cechy. Jego użycie jest już trochę bardziej wyrafinowane, ale typowym przykładem są porównania analogiczne do stopniowania przymiotników. Wówczas właściwość jest “skalą” lub kryterium porównawczym:

do zmadu mi loka nelci lo grute — Lubisz owoce bardziej niż ja.
mi sisku loka xunre lo’i karce — Szukam czerwonego samochodu (wśród innych).

Jak widać skalą może być “czerwoność” (loka xunre), “lubienie owoców” (loka nelci lo grute) i w zasadzie cokolwiek, co tylko możemy sobie wymyślić i jest poprawnym bridi. Możliwości są tu więc bardzo, bardzo duże.

Istnieją też oczywiście inne, rzadziej używane abstraktory, jak ni czy si’o. Zainteresowanych odsyłam do odpowiednich źródeł :)

Tags: ,
Author: Xion, posted under Culture » 1 comment

ta’i ma la lojban. bangu fi lo na’e satci

2010-08-28 21:58

Jak w lojbanie można wyrażać się nieprecyzyjnie?

Każdy, kto zetknie się z lojbanem, najczęściej szybko dowiaduje się, skąd pochodzi jego nazwa. Źródłem jest określenie logji bangu, czyli język logiczny. Logika sugeruje zaś dokładność, jednoznaczność i precyzję. Sugeruje to, że w lojbanie nie można wyrażać się niejasno, mgliście czy metaforycznie. Gdyby tak było rzeczywiście, to trudno byłoby to uznać za jego siłę, skoro aspiruje on do miana języka, którym mogą się posługiwać (także) ludzie.
Można więc podejrzewać, że to nieprawda – i tak jest istotnie. Dzisiaj chciałbym pokazać kilka przykładów na to, że mimo swojej “logiczności” lojban jak najbardziej dopuszcza przenośnie, niedopowiedzenia, skróty myślowe i inne tego rodzaju niuanse.

Więcej: nie tylko je dopuszcza, ale wręcz do nich zachęca – między innymi za pomocą pojęcia kontekstu, które samo w sobie nie jest precyzyjnie określone. Nietrudno jednak zrozumieć je intuicyjnie. Kontekst to po prostu… no cóż, kontekst :) Przyjmuje się, że gdy coś z niego wynika, to jest to mniej lub bardziej oczywiste zarówno dla nadawcy, jak i odbiorcy wypowiedzi.
A z kontekstu może w lojbanie wynikać bardzo wiele. Za każdym razem, gdy opuścimy jakieś miejsce w zdaniu, to właśnie kontekst je uzupełnia – lub pozostawia nieokreślone:

mi jinvi lodu’u ba carvi ca le cabdei
Sądzę, że dzisiaj będzie padać deszcz.

Tutaj nie musimy na przykład troszczyć się o wypełnienie drugiego miejsca carvi (powierzchni, na którą pada) lub trzeciego (źródła deszczu), bo kontekst mówienia o pogodzie aż nadto wystarcza, żeby wywnioskować, co mamy na myśli. Na tej samej podstawie możemy często pomijać zaimki osobowe, nawet mimo tego, że lojban nie ma odmiany czasowników (że o samych czasownikach nie wspomnę ;P):

ju’i do’u klama le zarci .i xu kansa
Hej, idziemy do sklepu. Idziesz z nami?

Pomijanie czasów (przeszły/teraźniejszy/itd.) jest z kolei tak powszechne, że wyjątkiem są raczej te sytuacje, gdy potrzebne jest ich użycie. Wówczas też chodzi bardziej o określenie punktu odniesienia (ca le cabdei – dzisiaj) niż o wymagania samej gramatyki.

Powyższe przykłady pokazują, jak pomijanie niektórych części wypowiedzi nie musi wpływać negatywnie na jej zrozumiałość. Innym mechanizmem wprowadzania “niejasności” jest tanru, czyli metafora. Polega on na połączeniu dwóch predykatów tak, że pierwszy modyfikuje znaczenie drugiego. Szczegóły tej modyfikacji nie są dokładnie określone i jest tak by design. Użycie tanru wprowadza więc pewną nieprecyzyjność jako cenę za skrócenie wypowiedzi:

mi xabju lo barda zdani — Mieszkam w dużym domu.
mutce xamgu fa lonu cilre fi la lojban. — Uczenie się lojbanu jest bardzo pożyteczne. (;P)
ko sutra bajra klama fa’a mi — Biegnij szybko w moją stronę.

Jak widać odpowiednikami tanru w innych językach są m.in. połączenia rzeczowników z przymiotnikami, a także stopniowanie tych drugich. Da się więc tutaj zauważyć pewne schematy użycia, ale w gruncie rzeczy możliwości tworzenia tanru są nieograniczone – podobnie jak możliwości ich interpretacji.

Takie stwierdzenie może nieco dziwić wobec często podkreślanej jednoznaczności lojbanu. Trzeba jednak pamiętać, że dotyczy ona wyłącznie gramatyki i objawia się tym, że poprawny tekst w lojbanie jest parsowalny zawsze w dokładnie jeden sposób. To zupełnie inaczej niż w typowych językach naturalnych, czego często przytaczanym przykładem jest “angielskie tanru“:

pretty little girls school

W zależności od “nawiasowania” może ono znaczyć: szkołę dla całkiem małych dziewczynek, całkiem małą szkołę dla dziewczynek, małą ładną szkołę dla dziewczynek – i jeszcze kilkanaście innych kombinacji. Lojbański odpowiednik (milxe cmalu nixla ckule) jest z kolei zawsze odczytywany od lewej do prawej i jednoznacznie wyraża pierwszą interpretację.

Tags: ,
Author: Xion, posted under Culture » 4 comments

Starcraft 2 ukończony

2010-08-04 16:45

Trochę to trwało, ale w końcu udało się :) Ukończyłem wreszcie kampanię w Starcraft 2. Zajęło mi to nieco więcej czasu niż przewidywałem głównie ze względu na wybitnie niezbalansowany poziom trudności ostatniej misji. Poprzeczka jest tam podniesiona tak wysoko i tak gwałtownie, że nawet na normalnym poziomie trudności przez prawie cały czas nie za bardzo wiadomo, w co ręce włożyć ;] Po kilku próbach rzecz na szczęście okazała się wykonalna… Nie chcę jednak nawet myśleć, jak to wygląda na najwyższym poziomie trudności ;P

Mimo tej drobnej niedoróbki mogę jednak z czystym sumieniem polecić grę każdemu, komu odpowiada ten rodzaj rozgrywki. Starcraft 2: Wings of Liberty jest zdecydowanie godnym następcą “jedynki” i nie zdziwię się, jeśli osiągnie tę samą albo nawet większą popularność.
Tak więc warto było czekać, chociaż nie jest to nawet definitywny koniec – na wydanie czekają jeszcze kampanie Zergów i Protossów. W międzyczasie można się już jednak zająć bardziej produktywnymi rzeczami, co też niniejszym obiecuję uczynić ;-)

Tags:
Author: Xion, posted under Games » 11 comments

Pylonem w zerglingi

2010-07-27 18:54

Doczekaliśmy się. Po kilkunastu (!) latach od wydania pierwszej części, Starcraft 2 ujrzał dzisiaj światło dzienne (w Europie). Sam oczekiwałem na tę premierę bardzo długo, mimo że nie jestem jakimś wielkim fanem oryginału, a moje umiejętności kierowania którąkolwiek z trzech ras są raczej skromne :) Od dawna tęskniłem jednak za grą niewymagającą dużą czasu, a jednocześnie nie będą jakimś – tfu, tfu – casualem. RTS-y świetnie w tej roli spisują.

Oczywiście nie znaczy to, że rzucę SC2 w kąt po rozegraniu trzech misji ;P O nie, nie ma mowy. Już teraz mogę bowiem stwierdzić, że mimo podążania za kilkoma nieco denerwującymi trendami w obecnym przemyśle gier (czyli wszechobecnymi achievementami, koniecznością rejestracji online i całymi tymi niby-facebookowymi bajerami), Starcaft 2: Wings of Liberty jest bardzo udaną kontynuacją jedynki.

Tak więc narodowy sport Korei Południowej doczekał się sequela, natomiast blog przynajmniej w tym miesiącu nowej notki na pewno się nie doczeka ;P

Tags:
Author: Xion, posted under Games, Life » 8 comments

le ba’urtadji be lo valsi be fi la lojban.

2010-07-20 15:51

Wymowa słów w lojbanie.

Moje trwające już kilka miesięcy zainteresowanie lojbanem pewnie nie przetrwałoby tak długo, gdyby był on czymś w typie esperanto – a tym, jak wiemy, na pewno nie jest. Przeglądanie jego “formalnej definicji” (czyli The Lojban Reference Grammar) sprawia raczej wrażenie czytania dokumentacji języka programowania, biblioteki lub innego API. Jest to więc całkiem przyjemna lektura :)
Nie zapominajmy jednak, że lojban jest mimo wszystko pomyślany jako język (również) dla ludzi, i to także do – szok! horror! – mówienia. Posiada więc również określone reguły wymowy wyrazów. Są one zresztą określone bardzo dobrze, gdyż niewielki poziom ich skomplikowania nijak ma się do złożonych i nie zawsze jasnych niuansów wymowy języków naturalnych. Można to łatwo zauważyć, kiedy przyjrzymy się im z bliska.

Tags: ,
Author: Xion, posted under Culture » 6 comments

le ciste be fi lo’i namcu bei bau la lojban.

2010-06-22 11:47

System liczb w lojbanie.

Jako kolejny temat odnośnie lojbanu zdecydowałem się opisać jego system numeryczny, czyli sposób wyrażania liczb. W dużym stopniu zainspirował mnie do tego pewien komentarz stwierdzający, że w lojbanie – biorąc pod uwagę jego nietypowość – używa się pewnie liczb Churcha albo innej, równie pokręconej konstrukcji :) Pewnie byłoby to jakoś zgodne z jego ideą, ale na szczęście w rzeczywistości jest zupełnie inaczej ;P

Zacznijmy od prostych cyfr, które to przedstawia poniższa tabelka:

no pa re ci vo mu xa ze
0 1 2 3 4 5 6 7
bi so dau fei gai jau xei/rei vai
8 9 A (10) B (11) C (12) D (13) E (14) F (15)

Powinna ona od razu wzbudzić przyjazne uczucia, jako że wyraźnie pokazuje wielce interesujący fakt: lojban ma natywne wsparcie dla systemu szesnastkowego! I chociaż domyślnie używanym jest nadal ten dziesiętny, taka zapobiegliwość u twórców języka jest z pewnością godna uznania ;)

Nie bez powodu też ciągle używam pojęcia ‘cyfr’ zamiast ‘liczb’. Tak jak notacji matematycznej, liczby w lojbanie składa się bowiem z cyfr, i to dokładnie w ten sam, pozycyjny sposób. Powyższy zestaw słówek (są to oczywiście cmavo) jest wobec tego zupełnie wystarczający do wyrażenia każdej skończonej liczby naturalnej; nie ma żadnych osobnych form gramatycznych dla dziesiątek czy setek. Oto przykłady, które powinny ukazywać dokładną analogię między zapisem dziesiętnym a słownym w lojbanie:

paxa vore muno xaso parebi revoci repavono sononopa
16 42 50 69 128 243 2140 9001

Przy liczbach sięgających dziesiątek czy setek milionów pomocny jest separator ki’o, który jest oddziela tysiące (podobnie jak spacja w języku polskim lub przecinek w angielskim). Tak więc 4096 to vo ki’o nosoxa, a ilość bajtów w megabajcie (czyli 1048576) wyrazimy jako pa ki’o novobi ki’o muzexa. Przy okazji nadmienię, że spacje w zapisie tekstowym mogę wstawiać między cyframi w dowolny sposób (również nigdzie), co dotyczy zresztą każdego ciągu cmavo w lojbanie.

Co z większymi zbiorami liczb, jak całkowite czy wymierne? Mamy oczywiście znak minus, pozwalający tworzyć liczby ujemne: ni’u (dla spójności istnieje też znak plus: ma’u). Do ułamków niezbędny jest z kolei separator dziesiętny pi, którego nie należy mylić z liczbą π (ona sama ma zresztą swoje własne oznaczenie: pai). Wreszcie, jest też kreska ułamkowa, czyli fi’u. Przy pomocy tych słów możemy już wyrazić całkiem sporo różnych liczb:

ni’u mu re pi voxa ni’u pamu pi ze re fi’u mu
-5 2,46 -15,7 2/5

Na tym zestawie chwilowo zakończymy, mimo że lojban posiada gramatykę “obsługującą” nawet liczby zespolone (!). Ciekawsze będzie raczej pokazanie sposobu użycia liczb w wypowiedzi. W ‘normalnych’ językach liczby służą zazwyczaj do określania ilości czegoś, najczęściej w sztukach. Dość podobnie jest w lojbanie, gdzie możemy liczbą opatrzyć sumti, jak w poniższym przykładzie:

mi renro vo rokci
Rzucam czterema kamieniami.

Jako ciekawostkę mogę dodać, że powyższe bridi nie specyfikuje tego, czy były to cztery osobne rzuty czy też jeden rzut wszystkimi czterema kamieniami naraz. Możliwe jest aczkolwiek dokładniejsze określenie, ale oczywiście nie będę się tym zajmował :)


loi patlu

Drugi sposób użycia liczb to sytuacje, gdy stanowią one samodzielne sumti. Dzieje się to nieco częściej niż w innych językach, gdzie zdania typu “Dwa plus dwa równa się cztery.” są relatywnie niezbyt powszechne poza samą matematyką. Tutaj jest trochę inaczej między innymi z tego względu, że użycia wszelkich jednostek miar – takich jak metry czy kilogramy – odbywają się za pośrednictwem odpowiadających im predykatów (czyli selbri), na przykład takich jak ten:

grake :: x1 ma masę x2 gramów wg standardu x3

Miejsce (“argument”) x2 wymaga tutaj właśnie liczby jako samodzielnego sumti. Tworzymy go za pomocą rodzajnika li. Stąd mamy np. li revo – liczba 24, a także:

loi patlu poi mi te vecnu cu grake li cinono
Ziemniaki, które kupiłem, ważą 500 gramów.

Tym, jak mógłby wyglądać dialog w sklepie, który do tego zakupu doprowadził, być może zajmę się w przyszłości :)

Tags: , ,
Author: Xion, posted under Culture, Math » 4 comments

Standardy kodowania jako choroba dziedziczna

2010-05-25 18:38

Ponieważ programowaniem zajmuję się już od dość długiego czasu, mam w tym nieco doświadczenia praktycznego. Przez ten czas zdążyłem też zmienić część swoich poglądów na niektóre rzeczy z tym związane. Mówiąc trochę górnolotnie: stałem się bogatszy o wiedzę z życia wziętą :)
Jedną z takich nauczek życiowych jest to, by nie ufać zbytnio standardom, zaleceniom i innym tzw. dobrym praktykom podpowiadających (a czasem wręcz nakazujących), jak powinien wyglądać pisany przez nas kod. Dotyczy to na przykład instrukcji rzekomo złych “z natury” i innych tego rodzaju przesądów. Tak, uważam określenie ‘przesądy’ za uprawnione w wielu przypadkach.

Nie jestem ponadto odosobniony w tych poglądach – ba, wśród swoich kolegów po fachu mógłbym wskazać wielu kilku, którzy są pod tym względem nawet bardziej… radykalni :) Jak już jednak wspomniałem na początku, nie zawsze tak było. Kiedyś miałem bardziej rygorystyczne i pryncypialne podejście do kwestii tego, jak kodować należy lub nie należy. Skąd brałem dla niego uzasadnienie, jeśli nie z praktyki, której wtedy zbyt wiele jeszcze nie miałem?…
Ano właśnie – tu dochodzimy do sedna. Przekonanie to brało się głównie – jeśli nie wyłącznie – ze wszelkiego typu materiałów pomocniczych do nauki programowania: książek, kursów, artykułów, czasem dokumentacji. Choćby nie wiem jak techniczne i merytoryczne były te teksty, w każdym – co do jednego, z moim skromnym dziełem włącznie – znajdą się rady, zalecenia, wskazówki i inne “metainformacje” odnośnie tego, jak programować należy – a nie tylko o tym, jak można. Czy ktoś widział w kursie programowania opis instrukcji goto (że pozwolę sobie użyć najbardziej typowego przykładu), który nie zawierał chociaż śladowej wzmianki o tym, iż.. no, w zasadzie to nie należy jej używać?… …Tak myślałem ;-)

Nasuwającą się od razu repliką w obronie autorów jest sugestia, że w sumie to przecież całkiem dobrze, iż uczą oni nowicjuszy tego, co sami musieli wcześniej wypracować przez lata. Nie wątpię wręcz, że taka intencja – oszczędzenia początkującym trudności – rzeczywiście autorom przyświeca. Dodają oni do pisanych przez siebie tekstów, kursów, tutoriali, itp. liczne wskazówki, te wszystkie dos and don’ts właśnie dlatego, iż wierzą w to, że w ten sposób pomogą swoim czytelnikom od razu, już na starcie kodować w sposób przejrzysty, efektywny, elastyczny, elegancki, “łatwo konserwowalny”, i tak dalej.


“Pamiętaj synku, by się zabezpieczać:
dawaj const, gdzie tylko możesz.”
(Źródło obrazka)

Chwalebne intencje – nie da się ukryć. Ale nietrudno jest wskazać przynajmniej dwa błędy takiego rozumowania. Pierwszym jest założenie, że każdą wiedzę i każdą umiejętność da się przekazać innym – czyli że w ogóle istnieje “droga na skróty”, niejako omijająca zdobywanie doświadczenia praktycznego w danej dziedzinie (w tym przypadku w programowaniu). Żeby stwierdzić, że to jednak nieprawda, wystarczy zastanowić się, czy ukończenie podstawowego kursu szachów u arcymistrza da nam od razu ELO 2500. Niestety w rzeczywistości dojście do takiego poziomu wymaga dziesiątków tysięcy rozegranych partii – i nic się na to nie poradzi.
Drugim błędem jest przyjmowanie, że przekazywane mądrości są faktycznie odpowiednie dla odbiorców. Nie, nie chcę wcale sugerować, że ktoś może mieć traumę z powodu wczesnych doświadczeń z hermetyzacją czy wzorcem fabryki ;) Raczej sugeruję, że przywiązując zbyt wielką wagę do przekazywanych zaleceń, początkujący mogą stracić wiele czasu na dopasowywanie swoich pierwszych programów do ich wysoko zawieszonej poprzeczki – najczęściej zupełnie niepotrzebnie. Gra w zgadywanie liczby, kółko i krzyżyk czy tetris nie potrzebują zwykle skomplikowanej, wewnętrznej architektury z dokładnie zaprojektowanymi relacjami między klasami i starannym oddzieleniem interfejsu od implementacji. Prosi się to bowiem o przytoczenie znanego powiedzenia na temat artylerii i pewnego gatunku insekta :)

Tak oto okazuje się więc, że zalecenia i rady tudzież – szumnie nazywane – standardy kodowania są “dziedziczone” przez początkujących programistów od autorów książek, kursów i tutoriali, którzy je tam umieszczają pomiędzy objaśnieniami kolejnych konstrukcji językowych czy elementów API. A że ponadto, jak opisałem wyżej, standardy te zbyt wcześnie poznane mogą być nie tyle nawet zbędne, co wręcz szkodliwe, pozwalam sobie nazwać je ‘chorobami dziedzicznymi’. Nic tak bowiem nie trafia do wyobraźni jak obrazowe porównanie ;>
Zakończyć chcę jednak optymistycznym akcentem. Otóż choroby te są jak najbardziej uleczalne. Terapia jest też nieskomplikowana i – jak sądzę – skuteczna. Trzeba po prostu kodować, kodować i jeszcze raz kodować :)

Tags: , ,
Author: Xion, posted under Books, Programming, Thoughts » 4 comments
 


© 2018 Karol Kuczmarski "Xion". Layout by Urszulka. Powered by WordPress with QuickLaTeX.com.