28 stycznia 2009

Stackless Python z microwątkami steruje kosmicznymi pojazdami ;-)

Zdrowo czasem spojrzeć na ulubione strony a nie tylko ich kanały RSSowe, istnieje duża szansa na natchnienie, odnalezienie ciekawego zagadnienia ... ot tak właśnie klikając :) Poczytałem zatem sobie o sukcesie kilku popularnych i ogromnych przedsięwzięć t.j.:

  • EVE Online - gry massive multiplayer i portalu społecznościowego

  • Second Life - czegoś w rodzaju wirtualizacji sfer prywatnych w sieci


... a to wszystko ściśle powiązane z tym oto wężem z klubu wyznawców węży ;)

Większość wtajemniczonych ludzi zna temat od podszewki, byćmoże niektórzy posiadają tam prywatne konta. Ja chciałbym spojrzeć z punktu widzenia programistycznego na zagadnienie, jakim jest wykorzystanie szczególnej implementacji języka programowania Python o nazwie Stackless Python. Całkowicie podzielam zdanie osób, które myślą sobie "kolejne gorące i słodnie ciastko w tematyce Pythona ... czemu by go trozeczkę nie nadgryźć" ;-)
Prezentuję garstkę linków z materiałami, które przeczytałem i już biorę się za wykonanie przykładów oraz ich analizę. Chciałbym zachęcić do lektury oraz dyskusji na ten nowy dla mnie i intrygujący temat. Ciekawe dlaczego akurat firma ccpgames wykorzystała ten język programowania w tym konkretnym wydaniu do realizacji gry sieciowej czasu rzeczywistego z całkiem sporą listą możliwości i efektów. Ciekawi mnie również, czemu w takim drugim świecie zdecydowano się na użycie szczególnie pielęgnowanych kodów napisanych w języku Stackless Python ... kto może mi to rozjaśnić, ale tak na chłopski rozum ;) ?

Oczywiście próbuję sobie odpowiedzieć czytając literaturę temetyczną oraz prezentację i nadal mnie ten fenomen węża intryguje ...



Linki tematyczne:
Continuations and Stackless Python Or "How to change a Paradigm of an existing Program"
Eventlet
Nested Worlds
The project hosts multiple examples of stackless usage combined with other libraries.
Multithreaded Game Scripting with Stackless Python
Implementations for Python - Coroutine
eventlet-libevent-2 secondlife trac
Comet (programming)
In Kamaelia you build systems from simple components that talk to each other.
Module k.tasklet
multitask
Chiral is a lightweight coroutine-based networking framework for high-performance internet and Web services.
py.magic.greenlet: Lightweight concurrent programming
Coroutines via Enhanced Generators
cogen - crossplatform asynchronous network oriented python framework based on python 2.5 enhanced generators
Umbrella term
Meebo is an Ajax-based in-browser instant messaging
JotSpot
stackless python - official website
Stackless python 2.5 article in eve-online devblog
eve online architecture
PyPy
http://www.massively.com/2008/09/28/eve-evolved-eve-onlines-server-model/
Infiniband
optimizations, optimizations, optimizations
stackless python used for

27 stycznia 2009

elePHPant - obsesja na temat PHP słonia

Jakiś czas temu zachciałem wraz z grupą znajomych "zapolować" na słonia :) Wszystko byłoby pięknie, gdyby słonie były dostępne w sprzedaży - bo jak się domyślacie chodzi mi o zakup niniejszego słoniątka o wdzięcznym imieniu elePHPant :-)


elePHPant poster


Niektórzy znający zakamarki języka programowania PHP, chcąc ukazać jego cechy zmutowali elePHPanta i można go podziwiać na poniższych wizerunkach:

















Kilka linków:
Słóń afrykański (wikipedia)
PHP - portal społeczności zrzeszonej wokół języka programowania PHP

5 stycznia 2009

Ewolucja robotów - przegląd

Po zapoznaniu się z pewnym artykułem p.t. Bunt maszyn - początek już był! stwierdzam, że bardzo niewiele brakuje, aby technologie, które w bazach wojskowych przechodzą testy wymknęły się spod kontroli i zaszkodziły populacji. Być może to jest nieco tragiczny początek .... bynajmniej prawdopodobny ;-)
W patykiem po wodzie pisanym kodeksie robota nie jest przecież istotne co ten robot robi, ale ważne jest do czego zaprogramował go człowiek. I będzie to robił z precyzją na jaką pozwalają podzespoły, z jakością napisanych dla robota algorytmów oraz w ramach dostępnych zasobów sprzętowych/peryferiów.
Istnieje wiele pomysłów na roboty. Ba istnieje spora liczba zaprogramowanych robotów, które na dzień dzisiejszy są dość skomplikowanymi maszynami mechaniczno-elektronicznymi, lecz za kilkadziesiąt lat będą to maszyny podstawowego wyposażenia naszych gospodarstw domowych. Te oparte o jednostki centralne sporej mocy obliczeniowej urządzenia czeka w dobie rozproszonych sieci komputerowych niebanalny rozkwit. Pytanie tylko, jak długo jeszcze będą odbywały się próby naśladowania istoty żyjących i podstaw mechaniki podczas konstruowania robotów...
Moim zdaniem prawdziwa era robotów nadejdzie, gdy człowiek wyzbędzie się podczas ich tworzenia zasad, których wyuczył się i zna z życia codziennego a zacznie szukać robotów, które żyją w dniu dzisiejszym jako wirtualne twory przeszukujące i przemierzające ogólnodostępną sieć internet. Nie mam tutaj na myśli wirusów komputerowych, lecz można je spokojnie wykorzystać jako wagon transportowy dla takiego tworu :-)
Nie byłbym sobą, gdybym nie wspomniał o roli programistów w tym procesie.
Już dziś można otwarcie napisać Panowie i Panie to do nas świat należy. Programista zaczyna od wielu na całym świecie być ceniony za swoją abstrakcyjną pracę, lecz jak dotąd nic nie przebija - od początków cywilizacji - zwykłych i niezwykłych handlarzy (bez urazy oczywiście) Pozwolę sobie ich nazwać współczesną gwarą biznesmenami, bo właśnie potencjalni handlowcy napędzają sprzedaż tworów programistycznych :-) Jak najbardziej nie mam zamiaru wywyższać zawodów, pisać, że tym jest być lepiej lub gorzej. Nie osądzam - tak tylko fantazjuję ;)
O ile mogę polecić literaturę fantastyczną zasygnalizowany dziś temat Pana Stanisława Lema, o tyle też zachęcam do spojrzenia na dzisiejsze osiągnięcia w dziedzinie robotyki chociażby okiem youtube. Odkrywając dziś i przyzwyczajając się do egzystencji robotów w naszym życiu tworzymy dalej technologicznie sprawniejszą cywilizację. Ci których interesuje od strony kinematografii również znajdą coś dla siebie.


Linki:
Gwiezdne wojny: Prawo robotyki – część 1
Asimo - robotyka
Robo Sapiens. Ewolucja nowego gatunku