Co jakiś czas czytuję książki o Kosmosie, Wymiarach, czy Hiperprzestrzeni, by nie zapomnieć, by odświeżyć poglądy itd... Tak też w ostatnich dniach powróciłem do "Hiperprzestrzeni" Michio Kaku.

Pisze on, że istoty trójwymiarowe nie mogą zobaczyć wyższych wymiarów, ponieważ te są nieskończenie małe, a w dodatku nie potrafimy ich sobie wyobrazić, zaś nasze zmysły już dawno przestały je postrzegać (jeśli kiedykolwiek to robiły). W książce przedstawiona jest wyraźnie teoria, iż mogą istnieć istoty żyjące w wyższych wymiarach, których nie widzimy i nie czujemy. One jednak mogłyby nas wyciągnąć do np. czwartego wymiaru przestrzennego, "obrócić" nas w nim i spowrotem umieścić w naszym świecie.

Jakkolwiek takie podejście wydaje się logiczne, zaś my, jako istoty trójwymiarowe nie widzielibyśmy nicponia w jego pełnym sensie wymiarowym, tak zadałem sobie pytanie: dlaczego nie ma istot dwuwymiarowych?

Istoty takie żyłyby na "kartce papieru", nieskończenie cienkiej, zaś my moglibyśmy je tak samo "wyciągnąć" do trzeciegu wymiaru, "odwrócić" i "włożyć" spowrotem. Tu się chwilę zastanowiłem. Czy aby na pewno?

Skoro istoty te żyłyby w dwóch wymiarach, ich "wielkość" w trzecim wymiarze byłaby nieskończenie mała. Skutkiem tego, nie potrafilibyśmy ich zobaczyć, tak samo, jak nie umiemy zobaczyć nieskończenie małych wymiarów wyższych. W moim mniemaniu, idealnego punktu, linii, czy płaszczyzny dwuwymiarowej nie sposób zobaczyć z trzeciego wymiaru, bowiem są nieskończenie cienkie w innych wymiarach, lub nie są w nich w ogóle określone.

Możliwe więc, że istnieją istoty dwu-, a nawet jednowymiarowe, których nie widzimy, a one nas. Istoty trójwymiarowe możemy zobaczyć, bowiem sami jesteśmy w pełni "określeni" w tych trzech wymiarach. Jeśli rozszerzyć to twierdzenie na czas, możemy dojść do wniosku, że w istocie w tym samym miejscu i różnym czasie mogą istnieć inne Wszechświaty i istoty, z którymi żyjemy w harmonii, nawet o tym nie wiedząc.

Na myśl przychodzi od razu wizja duchów, jednak jako osoba mająca pewien dystans (póki co) do wiary, nie podciągałbym tej teorii pod powyższy wywód. Chcę jedynie zwrócić uwagę, że tak, jak my podejrzewamy, iż mogą istnieć istoty w wyższych wymiarach, tak też mogą istnieć w niższych. I wcale nie musimy widzieć tych drugich, podobnie jak tych pierwszych. Zaś one nas.

Dodatkowo, jeśli przyjąć propozycje Riemanna, jakoby siły elektrostatyczności, grawitacji i magnetyzmu były efektami zagięcia przestrzeni w wyższych wymiarach, można uznać, iż my możemy wywoływać pewne oddziaływania na istoty żyjące w niższych wymiarach, nawet sobie z tego nie zdając sprawy. Podobnie, jak istoty np. czterowymiarowe na nas. W takim porządku świata sens miałaby nawet definicja Boga, wysunięta w książce, jakoby była to istota określona w nieskończonej liczbie wymiarów. Tak więc mająca władzę nad wszystkimi niższymi.

Przyznam, iż ta koncepcja poruszyła mnie. Wczoraj, leżąc w środku nocy, opracowałem prototyp. Dzisiaj, na podstawie dwóch zdań zapisanych naprędce w komórce, rozwinąłem ją w trakcie pisania wpisu. Wraz z dalszą lekturą książki mogą pojawić się w mojej głowie nowe koncepcje... Jednak już tą uważam za coś nowego - podczas poprzednich lektur tej pozycji, nigdy nie wpadłem na taki oczywisty wniosek. Zobaczymy, co przyszłość przyniesie...

Niemal rok temu cieszyłem się z przyjęcia na UJ - wbrew wszystkiemu, co mi przepowiadano, a nawet - w co sam zacząłem wierzyć. Niech mnie gęś kopnie, jeśli spodziewałem się, jaka to będzie rewolucja. Uczelnia, do której chce się chodzić z racji na zajęcia, a nie uczęszczających - zupełnie odwrotnie, niż za czasów LO. Swój zachwyt opisywałem już kiedyś (teraz bym do tego dodał kilka razy tyle, zaś UJ nie zamienił nawet na wymarzony Princeton).

Swój zachwyt głosiłem wszem i wobec, aż w końcu wymyśliłem - zorganizować spotkanie "licealiści konta studenci" w moim LO. Sposób na propagandę, a na dodatek poznanie mnóstwa nowych ludzi ;) Poszedłem więc do LO - odzew władz był bardzo pozytywny. Gorzej ze studentami - ci cały czas się uczyli i robili ogólnie wszystko, co zbędne. Przekładanie z tygodnia na tydzień... W tym czasie pojawiła się okazja uczestniczenia w Dniach Otwartych UJ, z której skorzystałem - coby sprawdzić, jak się nadaję na gadanie o tej uczelni ;) W końcu trafiło mnie, ustaliłem deadline na 25 kwietnia i zorganizowałem wykładzik ;) Publika była średnio liczna (ok. 50 osób), bowiem trzecie klasy już były po klasyfikacji. Studentów, prócz mnie, przyszło sztuk jeden. Niemniej, sam wykład był, myślę, bardzo przyjemny dla obu stron, w miarę śmieszny i konkretny. Skecz, pisany na godzinę przed akcją, był następujący:

  1. Co miało być, a co jest. Kontakt w razie czego. Czego się dowiecie…
  2. Matura – co, gdy się nie zdaje lub obleje (studium zazwyczaj płatne)
  3. WKU 3 razy: maturalne, złożenie papierów, przyjęcie
  4. Składanie papierów: ilość podań, notariusz w AP
  5. Rekrutacja: załóżcie terminarze, listy rezerwowe
  6. Przyjęcie: legitymacje, ubezpieczenie ~30zł
  7. Terminy: wydział, kierunek, specjalność (specjalizacja), kolokwium (przekładanie bez problemów), kolokwium zaliczeniowe, sesja, wykłady, ćwiczenia/laboratoria/pracownia, sesja poprawkowa, dziekan, prodziekan, rektor, prorektor, dziekanat (sekretariat), ilość zajęć i przedmiotów w tygodniu, starosta, warunek (w zależności od wydziału), punkty ECTS, index, zakładanie konta w bibliotekach (8zł bez legitki elektronicznej), system ocen
  8. Studiowanie: e-mailowanie, fora roków, materiały w necie, zeszyty (ich brak), nieobecności (bez czepialstwa, 2nieuspr), książeczka zdrowia teorią, WF (tylko na stacj. dziennych; sekcje), zaliczanie eksternistyczne przedmiotów, odpytywanie przy tablicy na ocenę NIE na UJ
  9. Studia: stacjonarne, niestacjonarne, licencjackie, magisterskie, inżynierskie (nie ma na UJ), w syst. Sob-nd.
  10. Różnice między tymi samymi kierunkami na wydziałach
  11. Specjalności lub bloki programowe na 3. roku
  12. O samych uczelniach: AE, AGH (kilka ciekawych wydziałów), AP, AR, AWF, ASP, PK, Państwowa Wyższa Szkoła Teatralna, KSW, WSZiB, UJ (luzy na zajęciach, opóźnienia dozwolone, regulamin zmieniony że nie można wylecieć na 1. sesji, warun na 1 .roku).
  13. The End. Any questions – priv or mail/gg.

Podsumowując, myślę, że dla osób dostających się teraz na studia jest to świetna okazja do poznania, pokazania się, poćwiczenia... W moim przypadku motywacją była chęć poznania nowych ludzi, zdobycia jakiegoś nowego doświadczenia, czy wreszcie - odpłacenia swojemu liceum za, bądź co bądź, wpojenie poziomu wiedzy, przy którym kozaki z czołowych krakowskich liceów wymiękają. Poza tym, chciałem (i wciąż chcę) prowadzić serię wykładów na UJ - musiałem sprawdzić, czy nie mam tremy ;) Poza tym, że miejscami się lekko mieszałem i odbiegałem od tematu, nie było źle. Zdecydowanie polecam takie akcje.

Zaraz po zakończeniu wykładu wparował kolejny student (brawo za wyczucie czasu), z którym ruszyłem jego bryką na Kraków... i nie byłoby w tym nic ciekawego, gdyby nie to, że uświadomiłem sobie, iż jeśli ktoś inny siedzi za kółkiem, frajda może być przednia dla pasażera. Pozdrawiam wszystkich, na których darłem mordę na przystankach w stylu "iiiiihaaaaa", włączając w to robotników :P Na następny dzień ból gardła, ale co tam... 25 kwietnia 2007 - worth memoring ;)

Po ok. tygodniu pisania i testowania kodu, mogę wreszcie udostępnić wersję 0.9 aplikacji będącej chatem AJAXowym.

AJAX Chat w akcji

Features, czyli co mną kierowało:

  • Internauta może za pomocą kliknięcia rozwinąć lub schować chat - nie przeszkadza mu w przeglądaniu witryny, będąc domyślnie schowanym.
  • Internatura może sprawnie poruszać się po witrynie mając rozwinięty chat: nie jest to pop-up, lecz stanowi integralną część strony, będąc wraz z nią przesuwalnym suwakami. Sprawne poruszanie oznacza także, że przy przejściu do innej podstrony, chat zostanie automatycznie otwarty.
  • Chat jest estetyczny: nie zawiera żadnych grafik, jednak świetnie komponuje się z witrynami społecznościowymi - głównie forami, czy stronami hobbystycznymi. Adresy są automatycznie zamieniane na odnośniki. Przewijanie okna jest podobne do znanego z Gmaila: chat sprawdza, czy użytkownik nie czyta wcześniejszych wiadomości, zanim przesunie się, pokazując nową treść. Dodatkowo dodany jest przyjemny dla oka efekt znikania i pojawiania się chata.
  • Z punktu widzenia developera, stanowi w miarę kompaktowy skrypt: całość zajmuje 31KB (po usunięciu niektórych zbędnych części pakietu Script.Aculo.Us). Oparty jest na Prototype i MySQL, a kod jest na tyle przejrzysty, że zbędne są komentarze. Naturalnie, jest odporny na XSS i tego typu atrakcje.
  • Skrypt nie generuje dużego obciążenia: aktualizuje treść jedynie przy rozwiniętym oknie, z czasem ustawionym domyślnie na 2 sekundy. Pobiera generowany przy wysyłaniu wiadomości plik stały z odpowiednimi nagłówkami, które gwarantują korzystanie z cache przeglądarki w przypadku braku zmiany treści.
  • Działa bez zarzutu pod przeglądarkami: Firefox 1.5.0.4, IE 6.0, Opera 8.52. Pod innymi nie sprawdzałem, jednak powinien chodzić pod wszystkim, co jest obsługiwane przez script.aculo.us i prototype. Oczywiście trzeba być przygotowanym na błędną interpretację CSS - nie przykładałem do tego wielkiej wagi, ponieważ większość osób i tak stworzy własny szablon

Wszystko spakowałem haxorskim winrarem. Do pobrania: wersja 0.9. Licencja... naturalnie darmowa do zastosowań niekomercyjnych. W przypadku komercyjnych - jakaś symboliczna opłata ;) Wymagam jedynie, by zostawić w okienku chata odnośnik do http://ajax.eldoras.com. Demo działającego skryptu można obejrzeć na garfiku.

Instalacja:

  • Rozpakowujemy archiwum, modyfikujemy w pliku newmsg.php dane do połączenia z bazą danych (login, hasło, nazwa bazy). Całość wgrywamy na serwer.
  • Używamy db.sql do stworzenia tabel w bazie danych MySQL.
  • Do każdej strony, na której chcemy mieć chat, dołączamy w nagłówku 5 plików, jak widać w pliku sample_index.php (1 CSS i 4 skrypty, przy czym fixed.js to hack dla IE umożliwiający uzyskanie pozycji typu fixed). W treści strony (może być zaraz po znaczniku body) dodajemy diva "openchat" oraz includujemy chat.php (przykład w sample_index.php).
  • Opcjonalnie możemy zmodyfikować arkusz styli chat.css do naszych potrzeb. Nie zalecam zmiany identyfikatorów CSS - są do nich przypisane funkcje w JavaScript.

Wszelkie uwagi mile widziane, zmiany można nadsyłać na e-mail. Ufam, że będzie to coś, co rozejdzie się po necie i zostanie udoskonalone - mój wkład w open source community :)

Community jednak także mi trochę pomogło. Główne podziękowania należą się Patrysowi za cenne uwagi i praktyczną pomoc oraz Riddle'owi za uświadomienie mnie odnośnie zagadnień XHT cross-subdomain :)

Pora już wczesna... więc przejdę od razu do rzeczy.

Doszedłem do wniosku, że shoutboxy to dziadostwo - używają iframe, rzadko się same odświeżają. Do tego mają podobną wadę jak chaty na www - jesteśmy zmuszeni cały czas mieć otwartą tą samą stronę. Chwila myślenia, 4 dni kodowania i oto jest: AJAXowy chat, który szybciutko można dołączyć na dowolną stronę serwisu, pozbawiony powyższych wad.

EDIT: Projekt można pobrać z http://ajax.eldoras.com.

Projekt ma w zamierzeniu być open-source, jednak dopiero, gdy przejdzie pierwsze testy. Narazie wersję roboczą można zobaczyć na garfiku. Wygląda jak wygląda - nie miałem już dziś siły bawić się w layout pod różne przeglądarki. Skrypt idealnie pasował do tego bloga, ale dzięki temu, że jogger nie ma możliwości uploadu *.php, zaś XHR blokuje cross-subdomain queries, to pies pogrzebany. Przyznam, że przydałoby się jakieś lepsze środowisko testowe. Marzy mi się forum - jeśli ktoś chce zaryzykować, proszę o kontakt na JID zar@uaznia.net.

Sam projekt obsługuje (a przynajmniej powinien) cacheowanie, nie pobiera treści, gdy chat jest schowany, transformuje http na linki, chyba nie jest podatny na XSS i w sumie tyle :)

Mile widziane próby znalezienia słabych stron, pomysły itp... jak widać, stadium można określić jako wczesną alfę ;) Z rzeczy, które mi teraz przychodzą do głowy... podrasować działanie paska przewijania, poprawić widok w różnych browserach, pamiętanie nicka i coś tam jeszcze...

[04:56:15] Kasia> ale uczucia chyba juz powoli wygasja
[04:57:20] ZaR> wiesz jak to jest... jeden podmuch wiatru i ognisko znowu plonie
Zapraszam na http://eldoras.com :)
Ja nie negocjuję. Ja żądam.
Silence is all i hear. Nothing is all I feel.
To przez nieuwage potykamy sie na kamieniach, rozrzuconych na sciezce naszego zycia. Sila czlowieka objawia sie przez to, ze wstaje, i idzie dalej.
"Jeb! - kula w łeb"
"A gdy było już tak blisko, znów zburzyłaś wszystko."
"Oczekujcie nieoczekiwanego."
Z cyklu "piekna tworczosc wlasna" odzwierciedlajaca moje uczucia w ostatnich dniach: Ludzie mnie zawodzą,
inni pocieszają.
Jedni dają nadzieję,
kolejni - odbierają...

I cos, co warto zanotowac... z opisu bota joggerowego...
Wśród wielu wspomnień
Miej choć jedno o mnie !

Żegnaj na zawsze
Zapomnij co było
Przepraszam za kłopot
Dziękuję za miłość
"Każdy kolejny dzień jest jak policzek w twarz po pocałunku".
Równouprawnienie oznacza, że kobiety mają takie same prawa jak mężczyźni, lecz nie odwrotnie.
Następnie ustawiamy opis na "tym razem chodzi tylko o Ciebie :)" i podziwiamy, ile ludzi daje się złapać po raz drugi :)
Wpadłem właśnie na pewien pomysł. Ustawcie sobie status na "ktoś tu się chyba ukrywa ;)" i zobaczcie, ile ludzi się zapyta czy o nich nam chodzi :)
[21:35:51] Adam> zajebiste sa te zdjecia
[21:36:04] Lord_ZaR> wyczuwam sarkazm
[21:36:50] Adam> nie, serio
[21:37:03] Lord_ZaR> mam inne zdanie :)
[21:37:49] Adam> ty zawsze amsz inne zdanie
[21:38:05] Lord_ZaR> mam inne zdanie
Trynkiewicz, Siemiątkowski i Koziara. Wasza czwórka jest nagłośniej.

Leoczyk, znowu się spóźniłeś. Rzekłbym, że hamujesz postęp.

Kuba był chłopem Boryny.
GG nie działa nigdy. Jabber nie działa jedynie, gdy jest niezbędny.