Friday, March 27, 2009

Tcl/Tk & Google Summer of Code 2009

Udział Tcl/Tk w programie Google Summer of Code 2009 ruszył pełną parą - w pigułce o co w tym chodzi starałem się napisać na slajdach adresowanych do polskich studentów przygotowanych w związku z wizytą Richarda Hippa i wczoraj dla reszty świata. Oficjalna strona na ten temat jest na głównej witrynie Tcl/Tk pod adresem http://www.tcl.tk/gsoc ale i tak wszystko co ważne dzieje się na Tcler's Wiki - Project Ideas for Google Summer of Code 2009

Właściwie obowiązki zawodowe i związanie z zadeklarowaniem się pełnienia roli administratora organizacji Tcl Community Association całkowicie pozbawiły mnie czasu na dopisanie do tego bloga tych wszystkich wspaniałych rzeczy, które przydarzyły mi się dzięki zaangażowaniu w społeczność Tcl.

  • Pod koniec sierpnia 2008 czterech Polskich studentów pozytywanie zakończyło udział w programie GSoC 2008 z ramienia społeczności Tcl. Gratulacje i jak widać jest to do zrobienia, chociaż czasami bywa ciężko.
  • W paździeniku 2008 udało mi się wybrać na 15 konferencję Tcl/Tk organizowaną w pod Waszyngtonem w USA i poznać osobiście tylu świetnych ludzi, których od lat znałem z postów na listach Tcl-a (oto moja prywatna kolekcja zdjęć na której można zobaczyć kto jak wygląda). A tutaj jak moje wystąpienia opisano na wiki (mam też film i audio). Potem nie omieszkałem odwiedzić znajomych i miejsc w USA: Washington DC, San Francisco z Silicon Valley is SF Bay Areas, L.A czyli Los Angeles z Holywood i Santa Monica Boulevard oraz New York City (N.Y.C). Okazuje się że jeśli się chce to do tego wielkiego świata nie jest tak dalego i to chciałbym uzmysłowić studentom, z którymi mam okazję się kontaktować.
  • W marcu 2009 dzięki kontaktom w środowisku Tcl miałem przyjemność zorganizować wykłady w Polsce dla D. Richarda Hippa (twórcę m. in. SQLite i Fossil SCM) na mojej macierzystej uczelni WETI PG oraz pomóc znaleźć kontakty, które doprowadziły do kolejncyh 2 wykładów p. Hipp we Wrocławiu. Spotkanie osobiste z Richardem u mnie w firmie było naprawdę warte tego całego wysiłku. Studentom też się podobało - niektórym nawet bardzo
  • A teraz jestem oficjalnie administratorem udziału społeczności Tcl/Tk w Google Summer of Code 2009. Tcl/Tk znowu zostało zaakceptowane przez Google i działamy, aby dotrzeć do studentów i pomóc im napisać dobre aplikacje.

    Na dniach planuje zapostować moje prywatne wskazówki dla polskich studentów ubiegających się o stypendium z Tcl/Tk w ramach GSoC 2009. Ale zachęcam zainteresowanych do kontatkowania się ze mną bezpośrednio mailem - wtedy wiem, że mam odpowiedzić na jakieś konkretne pytania.

    Ten blog też chciałbym uzupełnić o dokładniejszy opis wspomnianych wydarzeń, bo każdemu z nich mogłobym poświęcić osobnego posta lub nawet kilka.

    Chciałbym też pokazać więcej zdjęć niż linkować niecnie do studenckich blogów.
    .

  • Thursday, April 17, 2008

    Dodatkowe 5 slotów dla Tcl/Tk w Google Summer of Code 2008

    Teraz dopiero mam czas napisać, że strasznie się cieszę, że dostaliśmy (jako Tcl/Tk Community) dodatkowe 5 slotów na stypendia dla studentów chcących popracować nad rozwojem Tcl/Tk w ramach Google Summer of Code 2008. Teraz Tcl/Tk ma 9 slotów do rozdysponowania i myślę, że wszystkie wartościowe zgłoszenia studenckie zostaną skierowane do realizacji.

    Ciekawi mnie na ile moje lobbowanie o dodatkowe sloty dla Tcl/Tk miało wpływ na te przydzielone nam w ostatniej chwili extra sloty. Może uda mi się to jakoś dowiedzieć.

    Prezentacja Programowanie w Internecie na WETI PG

    Dzisiaj 2008-04-14 o 14:15 w sali NAUD2 (audytorium w nowym gmachu ETI) wygłosiłem prezentację o budowaniu skalowanych aplikacji internetowych w oparciu o AOLserver+Tcl w ramach wykładu "Programowanie w Internecie" na Wydziale ETI PG, prowadzonego przez dr Tomasz Dziubicha dla III roku Informatyki - .

    Bardzo miło było poprowadzić wykład na uczelni, którą samemu się ukończyło. Trochę zabrakło mi czasu na dopracowanie wystąpienia (tzn. prezentację skończyłem przygotowywać na 30 minut przed wykładem), co odbiło się na tym, że trochę za dużo starałem się zamieścić w udostępnionych mi 105 minutach. Informacje o aplikacjach RIA, które tworzymy w DAC System udało mi się tylko zasygnalizować, ale bez pokazania ich w działaniu (a szkoda, bo to byłoby ciekawe). Ponadto zapomniałem wspomnieć, że kod źródłowy platformy Digital City (AOLserver nsdci module) jest dostępny jako projekt open-source na http://code.google.com/p/nsdci/.

    Dr. Dziubich zwrócił mi słuszną uwagę, że mogłem skupić się tylko na stronie serwera (server-side), a o stronie client-side opowiedzieć przy innej okazji. Wtedy pozostałby czas na pytania ze strony studentów. Na pocieszenie myślę, że człowiek uczy się na błędach i ogólnie nie wypadło źle - przynajmniej jak na wystąpienie przygotowane trochę na ostatnią chwilę.

    Zresztą jak byliby chętni na sesję Q&A to jestem do dyspozycji - podałem kontakt do mnie. Jak zbierze się parę osób to możemy zorganizować spotkanie. Intuicja podpowiada mi, że będziemy mieli ku temu jeszcze okazję.

    Oto link do omówionej prezentacji "Programowanie w Internecie w PRAKTYCE - czyli How to "make HTML sing"? w formacie HTML i PowerPoint

    Wednesday, April 02, 2008

    Prezentacja o Tcl/Tk na WETI PG

    Dzisiaj będę miał przyjemność poprowadzić prezentację o języku Tcl/Tk w ramach wykładu "Języki skryptowe" na Wydziale ETI PG prowadzonego przez dr R. Janczewskiego dla IV roku Informatyki - 2008-04-02 11:15 w sali EA27.

    Oto link do prezentacji "Tcl/Tk - Mature but Evolving Dynamic Language" w formacie HTML i PowerPoint

    Tuesday, March 18, 2008

    Wprowadzenie do Tcl/Tk

    Tcl (oficjalnie ang. Tool Command Language) to w rzeczywistości wysokopoziomowa biblioteka w C z 20 letnią historią (inny nieoficjalny skrót to ang. The C Library), która rozwiązuje wiele problemów pojawiających się przy tworzeniu złożonych systemów. Jak popatrzy się na jej API (http://www.tcl.tk/man/tcl8.5/TclLib/contents.htm) to znajdzie się tam wieloplatformowe abstrakcje takich problemów jak: systemu I/O, system plików, programowanie zdarzeniowe i wielowątkowe, arytmetyka o definiowalnej precyzji, alokatory pamięci, zarządzanie stringami z pełnym wsparcie dla UTF-8 (w tym regexp), struktury danych: listy, wektory, tablice hashujące, zliczanie referencji, limitowanie wykorzystania zasobów, debugowanie, parsowanie wyrażeń arytmetycznych, modułowe budowanie i linkowanie kodu. Bibliotece Tcl towarzyszy chyba nawet popularniejszy od niej wieloplatformowy toolkit okienkowy Tk i równie znany pakiet Expect do automatyzacji interaktywnych programów programów terminalowych (jest on podstawą wielu środowisk do automatyzacji testów oprogramowania i sprzętu używanych np. w GCC/GDB, Intelu, Motoroli, Cisco, AMD, czy open-source DejaGNU).

    Ze względu na jakość tego kodu biblioteka Tcl i Tk otrzymała prestiżowe nagrody ACM i USENIX - jej kod jest naprawdę wspaniałym przykładem jak należy pisać w C.

    Tcl: award-winning software
    In the spring of 1998 I learned the wonderful news that Tcl had won two major awards. The first is the ACM Software System Award, awarded each year for "a software system that has had a lasting influence". Past winners of the award include such seminal systems as the TCP/IP protocols, the first spreadsheets, the first relational databases, the World-Wide Web, Unix, PostScript, and Smalltalk. The second award was the USENIX Software Tools User Group (STUG) Award, given each year in recognition of an outstanding software tool.

    Główną stroną o Tcl/Tk jest http://www.tcl.tk/, ale bardziej żywą witryną jest Tcl/Tk Wiki: http://wiki.tcl.tk/, gdzie znajdują się aktualne referencje co i gdzie nt. Tcl/Tk można znaleźć w sieci.

    Oprócz podstawowej implementacji Tcl w C jest wiele implementacji w C dla środowisk wbudowanych, z których najbardziej zaawansowaną jest wspomniany JIM. Oprócz tego istnieją implentacje w Javie (Jacl przeznaczona bardziej dla środowisk J2EE i mniejsza Hecl dla J2ME).


    Faktem jest, że Tcl (pronounced tickle -
    http://en.wikipedia.org/wiki/Tcl) jako środowisko programowania przez szerokie grono ludzie nie jest znany lub po prostu jest nierozumiany.

    see: Tcl the Misunderstood
    http://antirez.com/articoli/tclmisunderstood.html
    http://programming.reddit.com/info/2t7m/comments

    A tutaj dyskusja, w której moim zdaniem najlepiej udało się w formie
    żartu uchwycić sedno sprawy:

    http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/8ba7b3e2e65dda9e

    Poniżej wybrałem z niej najważniejsze stwierdzenia:

    >I'm all for having many sensible languages floating around. But the
    >fact that tcl is so obscure works to my disadvantage as a builder of
    >modest applications. In the IT world, I found it hard to convince
    >people to use a product built from something they never heard of.

    Another approach several of us have employed--often
    successfully!--is to say, "I built this project with
    a high-quality C library."
    I'm entirely serious.

    =========

    So... TCL stands for:
    The high quality
    C
    Library

    ==========

    Or even better:
    >The< C Library

    ==========

    "It was *that* high-quality I didn't even need to write a single line of
    C to make my application work." ;-)

    ===========

    In fact ...

    That was just a few runtime configuration settings. Not programming at
    all. After all, programming requires tens of thousands of Indian wage
    slaves and investments of hundreds of millions of dollars. Everyone
    knows that!

    ===========

    Boss: Which bit of code did you modify to fix that bug?
    Tcler: None. I just modified the config files!
    saves me from having to write code change documentation ;-)

    ===========

    i do tego przykłady programowanie obiektowego w Tcl (TclOO
    http://wiki.tcl.tk/18152) zaprzeczające zarzutowi, że Tcl nie jest językiem obiektowym. (W moim odczuciu to tak naprawę Tcl jest bardziej językiem "komponentowym" - co jest naprawdę cennym wkładem podejścia obiektowego, bo prowadzi do budowania "reusable software" - see:


    U. Zdun. Language Support for Dynamic and Evolving Software
    Architectures. PhD thesis, University of Essen, Germany, January 2002.
    http://wi.wu-wien.ac.at/~uzdun/publications/ile.pdf
    wersja HTML:
    http://64.233.183.104/search?q=cache:XWPmOd9SYlMJ:wi.wu-wien.ac.at/~uzdun/publications/ile.pdf+Support+for+%22Evolving+Software+Architectures%22+xotcl&hl=pl&ct=clnk&cd=1&gl=pl&client=firefox-a


    Warto zobaczyć także:

    W końcu zebrałem się na napisanie, że TCL w Polsce jest jednak używany:
    http://tclmentorpl.kocjan.org/2007/09/ja-czuj-e-si-rodzi-co-zupenie-nowego.html
    http://tclmentor.kocjan.org/2007/10/is-tcl-alive-and-well-or-dying.html
    http://journal.dedasys.com/articles/2006/03/06/ruby-vs-tcl

    Tcl/Tk zakwalifikowany do udziały w Google Summer of Code 2008

    Właśnie została opublikowana lista organizacji uczestniczących w Google Summer of Code 2008. Społeczność rozwijająca na zasadzie open-source skryptowy język Tcl/Tk jest jedną z organizacji zaakceptowanych przez Google
    (http://code.google.com/soc/2008/tcl/about.html). Jako jedna z osób, które miały znaczący udział w realizacji tego przedsięwzięcia, bardzo się cieszę, że w tym roku nam się udało.

    W poprzednim roku zgłaszałem udział Tcl Community w Google Summer of Code 2007 (http://wiki.tcl.tk/17872, http://objectmix.com/tcl/15343-google-code-summer-2007-tcl-tk.html), ale ponieważ był to wysiłek podjęty w kilka godzin przed terminem składania wniosków, nie udało się nam zaklasyfikować.