26 Ostatnio edytowany przez drac030 (2006-01-05 11:34:48)

jellonek napisał/a:

pamietaj ze C to wlasciwie tylko nieco bardziej przenosny assembler, tak wiec jesli dobrze zaprojektuje sie kod C - wynik w assemblerze, przy dobrym kopulatorze, niewiele sie bedzie roznil od perfekcyjnie napisanego recznie.

Pamiętam. Jednak podtrzymuję, że zachodzi tu wyjątek, mianowicie w postaci programu, który jest silnikiem emulacji innego CPU. Tutaj C niestety polegnie, bo jest JEDNAK językiem stosunkowo wysokiego (za wysokiego) poziomu.

gcc dla m68k to było kolejno 2.7.2, 2.8.1, 2.95.2. Wszystkie wersje generują dość przyzwoity kod wynikowy, zresztą chyba nie może być inaczej, skoro gcc przeprowadza optymalizację jeszcze na etapie niezależnym od maszyny, a dopiero to co mu wychodzi przekłada na mnemoniki. Podejrzewam, że na innych platformach z jakością kodu jest dokładnie tak samo.

Pytanie jest idiotyczne z dwóch względów:

a) masz wyżej napisane, że silnik asemblerowy jest szybszy od ANALOGICZNEGO kodu w C (czyli: algorytm ten sam)

b) asembler to jednak nie jest C, więc wymyślenie programu w C, a potem przełozenie go ręczne na asembler nie może dawać wyników znacząco lepszych niz w przypadku produktu kompilatora; implementacja algorytmu musi być nie tylko w asemblerze napisana, ale tez w asemblerze wymyślona.

Dla ułatwienia dodam, że ten program chodzi na procesorach od 68020 do 68060 i nie zawiera nieczystych sztuczek w rodzaju samomodyfikującego się kodu (bo to na Motorolach powoduje problemy z cache'em).

Cały program z gcc nie ma nic wspólnego, poza tym, że gcc występuje tu jako wartość porównawcza. Ale twierdzę, że to jest właśnie taki przypadek, gdzie nie tylo gcc, ale dokładnie każdy kompilator zawiedzie. A to z tego powodu, że kompilator jest bezmyślnym automatem. Może optymalizowac znane sobie (czyli swoim twórcom) konstrukcje pod względem formalnym, oraz dokonywac analizy programu na np. częstotliwośc użycia pewnych zmiennych, żeby zdecydować, które zmienne umieścić w rejestrach, które na stosie a które gdzie tam. Oraz dysponuje repertuarem tym podobnych chwytów.

To wszystko jednak nie zmienia faktu, że kompilator nie ma bladego pojęcia, co kompilowany program robi, oraz jak można wykorzystać architekturę danej maszyny do zrobienia tego lepiej. To wie tylko człowiek, bo tylko człowiek jest w stanie zrozumieć algorytm.

Fox: zagadnienie nie ma nic wspólnego z opcjami optymalizacji kompilatora C, a raczej z tym, jak kompilator w ogóle działa, no i jak jest zdefiniowany język C jako taki.

KMK
? HEX$(6670358)

27

drac030: Z przykrością muszę stwierdzić, że wykazujesz ignorację w zakresie budowy kompilatorów.

Praktycznie wszystkie kompilatory C wykonują również optymalizację pod konkretną maszynę, czasami również przez analizę wygenerowanego przez nie "wprost" kodu asemblerowego. Rezultaty są rewelacyjne. Np. cc65 analizuje kod 6502 i może stwierdzić takie rzeczy, jak np. że w określonym miejscu kodu rejestr X ma zawsze wartość zero, więc LDX #0 jest tam zbędne.

Pytanie o optymalizację było jak najbardziej na miejscu. Jeśli jej nie włączysz, to generowany jest kod, który najprościej wygenerować. Ma on wtedy wydajność porównywalną z BASICiem (jeśli nie gorszą w przypadku lepszych BASICów). Różnica może być nie tylko 6-krotna, lecz 60- i więcej-krotna.

kompilator nie ma bladego pojęcia, co kompilowany program robi, oraz jak można wykorzystać architekturę danej maszyny do zrobienia tego lepiej.

Jest dokładnie odwrotnie. Program jest precyzyjnym zapisem algorytmu, więc kompilator dobrze go rozumie.
Kompilator ma mnóstwo informacji o architekturze konkretnych modeli procesorów, które ciężko znaleźć w opasłych dokumentacjach dla ludzi, np. w jakiej kolejności umieścić instrukcje, aby jak najwięcej z nich wykonało się równolegle. Tego typu rzeczy znacznie się różnią między poszczególnymi modelami procesorów (np. Pentium a Pentium Pro).

To wie tylko człowiek, bo tylko człowiek jest w stanie zrozumieć algorytm.

Samo zrozumienie nic tu nie wnosi, dopóki nie zmienisz algorytmu. Nie ma tu żadnej różnicy między asemblerem, C ani BASICiem.

https://www.youtube.com/watch?v=jofNR_WkoCE

28 Ostatnio edytowany przez drac030 (2006-01-05 11:59:04)

Fox, zgodzę się z Twoimi twierdzeniami zawartymi powyżej bardzo chętnie, jeśli siądziesz do gcc i napiszesz silnik 6502, który po skompilowaniu z dowolnymi opcjami optymalizacji będzie na tej samej maszynie (68030/16 MHz) działał chociaz o połowę wolniej niż mój silnik asemblerowy.

I póki to nie nastąpi, może zawieśmy tę dyskusję, bo niestety ja wiem, co mówię, a Ty nie (oczywiście, bo nie znasz mojego kodu, a ja owszem).

KMK
? HEX$(6670358)

29

drac030: Bardzo niegrzecznie z Twojej strony. Chwalisz się, że zrobiłeś coś lepszego niż grupa ludzi tworzących od 10 lat projekt Atari800 oraz sztab ludzi tworzących gcc, a nie pokazałeś nic konkretnego i sam twierdzisz, że nie masz ochoty pokazać. To nie ja, tylko Ty masz coś do udowodnienia.

Jestem wielce ciekaw, jak zmierzyłeś wydajność samej emulacji 6502 zawartej w Atari800 oraz jakich programów Atari używałeś do porównań.

https://www.youtube.com/watch?v=jofNR_WkoCE

30 Ostatnio edytowany przez jellonek (2006-01-05 12:22:51)

drac030: przeslij foxowi swoj kod, a GWARANTUJE CI (gwarancja w postaci litra finlandii), ze jesli znajdzie czas i checi (to drugie bedzie pewnie motywowane mozliwoscia zastosowania twoich rozwiazan w atari800) to przeniesiony przez niego Twoj kod do postaci C, bedzie spelnial twoje wymagania.

i powyzszym - jesli Drac030 zgodzi sie pokazac foxowi (a moze i komus wiecej) swoj kod emulacji 6502 - deklaruje ze otrzyma odemnie 1l finlandii (lub porownywalnego trunku):
a) Drac030 - jesli Foxowi nie bedzie sie chcialo, lub przepisany przez niego do C kod okaze sie wolniejszy bardziej niz o 50% w stosunku do drac030owego
b) Fox - jesli jednak uda sie mu wysc zwyciezko z powyzszego zadania...

btw. fox: zauwaz ze drac030 nigdzie nie wspomnial ze porownywal swoj assemblerowy kod z kodem zaczerpnietym z atar800. skoro, jak wyzej wspomnial, jego kod jest niekompatybilny z atari800, to pewnie analogiczny kod C emulacji 6502 opiera sie o inne algorytmy... tak wiec nie odbieraj tego jako "moj kod jest szybszy niz twoj" :D
a co do tego ze nieladnie jest chwalic sie bez poparcia - nie smialem wytknac, ja taki maluczki :D

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

31 Ostatnio edytowany przez Fox (2006-01-05 12:32:12)

jellonek napisał/a:

fox: zauwaz ze drac030 nigdzie nie wspomnial ze porownywal swoj assemblerowy kod z kodem zaczerpnietym z atar800

rzeczywiście, umknał mojej uwadze opis drac030: "Król Offtopiku" ;)

https://www.youtube.com/watch?v=jofNR_WkoCE

32 Ostatnio edytowany przez alex (2006-01-05 12:47:29)

Nosty: te 20% to tak na oko i o smartphonie mówiłem :) główy nie dam ile dokładnie było. Mój PPC czyli iPaq h4150 chodzi na bateriach prawie 10h. Zawsze można zwolnić zegar i przyciemnic obraz - to wydłuzy czas pracy. WiFi i BT niestety zżerają baterie :(
Atari800 na smartphone chodzi u mnie dziwnie - jedne demka chodzą szybko inne wolno. Jakkolwiek w Spy vs Spy gram ostatnio dość często i bez żadnego dyskomfortu związanego z opóźnieniami.
Nie wiem jak jest z Mitac Mio - jak dla mnie jest to dziwne, że tylko 35%... może źle podaje prędkość? ;) Jak miałem kiedyś iPaq h1940 gdzie był 200MHz Arm to Numen działał na 100% a miałem wrażenie niekiedy, że nawet szybciej ;) Niestety Pocket Pocketowi nie równy....

Jelloonek: oj, no zjadłem jeden "+" ;) Co do efektów to była tylko przenośnia. Chodziło mi o to, że jeśli stosuje się wyuzdane techniki programistyczne ;) typu self modyfing code, rozpisywanie pętli czy tablicowanie czego się da to są to rzeczy dla kompilatora raczej nie do przyjęcia. Kompilator zawsze będzie się starał wyprodukować szybki i poprawny kod zgodnie z zasadami, a żeby osiągnąć zysk trzeba czasami pokombinować i pewne zasady złamać (patrz: nielegalne rozkazy). Fakt, nie ma może zbyt wiele dobrych kompilatorów na 6502, ale nawet jakby były to nie uwierze (póki nie zobaczę), że taki kompilator mógłby bardziej przyśpieszyć efekty np. występujące w Numenie czy jakimkolwiek innym powalającym na kolana demku.

Co do większych procesorów zgadzam się - kompilator lepiej potrafi optymalizować, bo nowe procki mają zaszyte rozmaite cuda (jasnowidzenie, kolejkowanie, cacheowanie, potoki, strumyki i inne rzeczki ;) ) i żaden z programistów nie jest w stanie sprawdzić kodując real-time, że jeśli zamieni dwa rozkazy miejscami to akurat w piątym potoku zwolni się jakiś rejestr i wtedy wykonają się ona 3x szybciej, bo w drugim potoku będzie następny dostęp do rejestru wykorzytanego za pięć linii :)))
Jakkolwiek algorytm działania programu dobiera programista i w ten sposób jest w stanie optymalizować dane zagadnienie na dany procesor. Chodzi mi o to, że każdy procesor jest w czymś lepszy, jeden liczy szybciej, drugi przetwarza dane szybciej etc.

Fox: A kiedy przyśpieszysz to co się da? ;) Jeśli chodzi o Pockety to jak już gdzieś rozmawialiśmy sprawa się rozwiąże po zmienie obsługi pamięci dodatkowej.

33 Ostatnio edytowany przez drac030 (2006-01-05 13:14:39)

Fox napisał/a:

drac030: Bardzo niegrzecznie z Twojej strony. Chwalisz się, że zrobiłeś coś lepszego niż grupa ludzi tworzących od 10 lat projekt Atari800 oraz sztab ludzi tworzących gcc, a nie pokazałeś nic konkretnego i sam twierdzisz, że nie masz ochoty pokazać. To nie ja, tylko Ty masz coś do udowodnienia.

Drogi Foxie, chyba niezbyt uważnie czytasz to, co napisałem. W takim wypadku na Twoim miejscu nie ośmielałbym się pisać odpowiedzi, że już nie wspomnę to nadaniu jej tonu nagany, jaki tu wyczuwam.

Osobiście nie uważam, żebym miał jakikolwiek - nawet moralny - obowiązek uczestniczenia w każdym będącym obecnie w toku projekcie na Ziemi. Dlatego też nie przypuszczam, żeby jakąkolwiek niegrzecznością z mojej strony było niepodzielenie się moim kodem z "grupą ludzi tworzących od 10 lat" coś tam. Jeśli jest to grupa ludzi, i pracuje od 10 lat, to spokojnie może się tego samego, co ja, dopracować sama, o ile składa się z ludzi myślących oraz o ile jej na tym zalezy i jej to jest potrzebne (podkreślam trzy warunki). Czy to nie aby Ty jesteś autorem powiedzenia "napisz se"? No.

Co do "sztabu ludzi tworzących gcc", napisałem chyba wyraźnie wyżej, że to ani gcc ani języka C jako takiego nie dotyczy - sprecyzuję może: trzeba byłoby zmienić definicję języka C. Ani mi to na myśl nie przyjdzie.

Żeby wszystko było zupełnie jasne, ja nie mam nic do udowadniania, ja wiem swoje. Co więcej, koncepcję, o której mowa, zrealizowałem w postaci działającego kodu. Mój emulator jest niedokończony, zgadza się, ale akurat silnik 6502 w nim działa dobrze.

KMK
? HEX$(6670358)

34

jellonek napisał/a:

drac030: przeslij foxowi swoj kod, a GWARANTUJE CI (gwarancja w postaci litra finlandii), ze jesli znajdzie czas i checi (to drugie bedzie pewnie motywowane mozliwoscia zastosowania twoich rozwiazan w atari800) to przeniesiony przez niego Twoj kod do postaci C, bedzie spelnial twoje wymagania.

Nie będzie. Język C nie pozwala na zastosowanie takiej konstrukcji. I wolałbym, żebyście jako ludzie inteligentni obaj czytali ze zrozumieniem to, co piszę.

KMK
? HEX$(6670358)

35

drac030 napisał/a:

Czy to nie aby Ty jesteś autorem powiedzenia "napisz se"?

Jest mi ono niesłusznie przypisywane. :)

https://www.youtube.com/watch?v=jofNR_WkoCE

36

alex napisał/a:

Fox: A kiedy przyśpieszysz to co się da? ;)

Tak szybko, jak się da. :)

https://www.youtube.com/watch?v=jofNR_WkoCE

37

Fox napisał/a:

Jest mi ono niesłusznie przypisywane. :)

Jeśli niesłusznie, to uznaj aluzję za niebyłą.

KMK
? HEX$(6670358)

38

Fox napisał/a:
drac030 napisał/a:

Czy to nie aby Ty jesteś autorem powiedzenia "napisz se"?

Jest mi ono niesłusznie przypisywane. :)

Oj, Foxik, Foxik, tak się składa, że słusznie... Przypomnij sobie pewną giełdę pod Stodołą, Miker może to potwierdzić, bo był przy rozmowie. Czekałem wtedy na Isbrandta i rozmawialiśmy w kilka osób luźno pod budką przy wjeździe na parking (główna brama giełdy). O ile pamiętam, był przy tym także Lewis.
Co prawda było to ładnych kilka lat temu, ale takie stwierdzenia się pamięta. Aha, przy spotkaniu wtedy pożyczałeś ode mnie albo oddawałeś mi padalce do Atarki, tak tytułem odświeżenia pamięci ;)

Sikor umarł...

39

drac030 napisał/a:

Na ARM-ie nie ma dostępu do słów spod nieparzystego adresu?

O ile wiem, sprzętowo nie.

Przy okazji: w emulatorze taki ficzer jest stosowany lub nie w zależności od procka. Kto posiada wiedzę o tym, czy opłaca się go stosować na konkretnych prockach, proszony jest o uzupełnienie/korektę poniższego fragmentu Atari800:

 alpha* | arm* | hppa* | ia64 | mips* | sparc*)
     enable_unalignedwords=no
     ;;
 i*86 | m68* | powerpc* | x86_64)
     enable_unalignedwords=yes
     ;;
https://www.youtube.com/watch?v=jofNR_WkoCE

40

A ja myślałem, że chodziło o to:

http://atariarea.krap.pl/forum/viewtopic.php?id=219

:)

Sikor napisał/a:

Przypomnij sobie pewną giełdę pod Stodołą, Miker może to potwierdzić, bo był przy rozmowie. ... O ile pamiętam, był przy tym także Lewis.

Na 99% nie spotkałem się nigdy na giełdzie jednocześnie z Tobą, Mikerem i Lewisem.

Sikor napisał/a:

Aha, przy spotkaniu wtedy pożyczałeś ode mnie albo oddawałeś mi padalce do Atarki, tak tytułem odświeżenia pamięci ;)

Pożyczyłeś mi je (a raczej wepchnąłeś, bo ja ich nie chciałem) w swoim mieszkaniu.

https://www.youtube.com/watch?v=jofNR_WkoCE

41

Brakowało mi dyskusji takiej jak ta:

http://atariki.krap.pl/index.php/Dyskus … lik%C3%B3w

:)

drac030 napisał/a:

Żeby wszystko było zupełnie jasne, ja nie mam nic do udowadniania, ja wiem swoje.

Oczywiście masz prawo do oryginalnych poglądów i wcale nie musisz ich uzasadniać.
Nie podobało mi się to, że podważasz argumenty większości bez podania namacalnych (dla większości) faktów.
Np. argumenty Jellonka przeciwstawiasz obserwacjom, których nikt oprócz Ciebie nie może zweryfikować:

drac030 napisał/a:

Jellonek, ty teoretyzujesz, a ja napisałem w asemblerze silnik 6502 sześć razy szybszy od analogicznego kodu generowanego przez gcc. Taka jest różnica między zdaniem moim a twoim.

Natomiast tę wypowiedź:

drac030 napisał/a:

może zawieśmy tę dyskusję, bo niestety ja wiem, co mówię, a Ty nie

widocznie źle odczytałem w ten sposób, że ja nie wiem, co mówię i m.in. dlatego odpowiedziałem:

Fox napisał/a:

Bardzo niegrzecznie z Twojej strony.

Myślę, że teraz wiem, że mówiłeś, że ja nie wiem, co Ty mówisz. W takim razie zgadzam się i cofam posądzenie o niegrzeczność z Twojej strony.

https://www.youtube.com/watch?v=jofNR_WkoCE

42 Ostatnio edytowany przez Sikor (2006-01-05 15:18:20)

Fox napisał/a:

Na 99% nie spotkałem się nigdy na giełdzie jednocześnie z Tobą, Mikerem i Lewisem.

A jednak!!!

Fox napisał/a:
Sikor napisał/a:

Aha, przy spotkaniu wtedy pożyczałeś ode mnie albo oddawałeś mi padalce do Atarki, tak tytułem odświeżenia pamięci ;)

Pożyczyłeś mi je (a raczej wepchnąłeś, bo ja ich nie chciałem) w swoim mieszkaniu.

Hmm, dziwne, bo rozmowa była typu:

Kiedyś_u_sikora_w_mieszkaniu_mniej/więcej_tak napisał/a:

Fox-Masz Paddle? Fajnie by było przetestować...
sikor-oki, tylko nie popsuj.

Dziwna argumentacja dla "wepchnąłeś", ale widocznie inaczej pojmujemy to pojęcie...
Faktycznie, pożyczałem u mnie w domu, ale odbierałem na giełdzie. I wtedy padło to słynne "napisz se", ale nieważne.  Twoje stwierdzenie posłużyło jakiś czas później do tytułu pewnej produkcji, gdzie znajdują się wyłącznie wypowiedzi z atariarea, zresztą jest ona w bazie ;)
W każdym razie: pozdrawiam!!

Sikor umarł...

43

czyli jasno widac ze komus ANTIC siada (i zawodzi odswierznie pamieci :D )
pytanie komu ;)

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

44

Cieszę się, że nieporozumienie zostało wyjaśnione.

kompilator nie ma bladego pojęcia, co kompilowany program robi, oraz jak można wykorzystać architekturę danej maszyny do zrobienia tego lepiej.

Jest dokładnie odwrotnie. Program jest precyzyjnym zapisem algorytmu, więc kompilator dobrze go rozumie.

Zgadza się, o tyle o ile. Kompilator faktycznie "rozumie" program pod względem formalnym, "wie" co robią poszczególne instrukcje oraz złożone z nich wyrażenia. Nie rozumie jednak programu jako całości, nie wie, do czego on ma służyć i co W ISTOCIE robić. Nie może tego wiedzieć, bo jest tępym automatem o zerowej inteligencji i coś takiego jak "koncepcja" czy "idea" jest mu kompletnie obce.

W 9999 przypadków na 10000 ta wiedza nie jest mu do niczego potrzebna, a efekty i tak są zadowalające. Zachodzi jednak wyjątek, o którym tu mowa, przy którym kompilator nie jest w stanie wykorzystać zasobów maszyny, bo nie wie, że mogą być ewentualnie do tego przydatne. A nie wie tego, bo nie wie do czego mają być przydatne, a tego z kolei nie wie, bo nie rozumie, co program ma robić. Itd.

KMK
? HEX$(6670358)

45

Sikor napisał/a:
Fox napisał/a:

Na 99% nie spotkałem się nigdy na giełdzie jednocześnie z Tobą, Mikerem i Lewisem.

A jednak!!!

kto jeszcze był i po co się spotkaliśmy?

Sikor napisał/a:

I wtedy padło to słynne "napisz se".

Apropos czego? Ciężko mi sobie wyobrazić, abym coś takiego powiedział Tobie, Mikerowi albo Lewisowi.

Sikor napisał/a:

Twoje stwierdzenie posłużyło jakiś czas później do tytułu pewnej produkcji, gdzie znajdują się wyłącznie wypowiedzi z atariarea, zresztą jest ona w bazie ;)

Czyli nie było w niej "napisz se" ?

Moja wersja zdarzeń w HQ SikorSoftu napisał/a:

Fox- mógłbyś na chwilę podłączyć paddle do atarki, żebym mógł coś sprawdzić?
Sikor coś się tłumaczy, że nie ma jak podłączyć żadnej z wielu swoich atarek do telewizora, ale że może mi pożyczyć paddle
Fox- ale ja nie chcę pożyczać, dobra, dzięki, zapomnij
Sikor (jak to Sikor) - ja i tak nie używam, a Ty może zrobisz jakąś grę
Fox- hahaha
Sikor- no weź
Fox- ale nie będę miał czasu, żeby się spotkać i oddać
Sikor- możesz trzymać ile chcesz
Fox (nie chcąc robić przykrości) - no dobra...

https://www.youtube.com/watch?v=jofNR_WkoCE

46

Fox - mylisz sie. Znaczy moze i gubio ale za diabla tego nie widac. A na Atari800 juz przy 1:3 widac jak cholera. O tym ze mam warczenie w glosniku to juz nawet nie pisalem...

47

drac030: Zgadza się. Np. pisząc if-a nijak nie można wytłumaczyć kompilatorowi, że warunek będzie np. w 90% spełniony. W asemblerze jest tu większe pole do popisu. To jednak może tłumaczyć 50% a nie 600% różnicy w wydajności. Taką różnicę w przypadków programów na Atari "migających" bankami pamięci mogłoby tłumaczyć użycie sprzętowego mechanizmu stronicowania, zamiast przepisywania pamięci. Jednak sprzętowe stronicowanie można również osiągnąć w C wywołując odpowiednie funkcje systemowe. Co więcej, w asemblerze też trzeba wywołać te same funkcje systemowe, o ile emulator pracuje pod kontrolą systemu operacyjnego (a nie np. DOSa).

https://www.youtube.com/watch?v=jofNR_WkoCE

48

drac030: ciagle odwracasz kota ogonem, twierdzac iz przyczyna tego ze kod tworzony przez kompilator lezy w jego "braku inteligencji" - ja natomiast twierdze (co napewno poprze fox) ze problemem jest to ze czlowiek niepoprawnie implementuje w danym jezyku (nie chodzi tu tylko o C) algorytm.

mozesz tez powiedziec na zastosowanie jakiej konstrukcji nie pozwala C?

arogancja w postaci

Jellonek, ty teoretyzujesz, a ja napisałem w asemblerze silnik 6502 sześć razy szybszy od analogicznego kodu generowanego przez gcc. Taka jest różnica między zdaniem moim a twoim.

daje sie jedynie skwitowac slowami foxa(mam nadzieje ze nie sie obrazisz za cytowanie prywatnej korespondencji):

0xf napisał/a:

Ta, a ja zrobiłem wersję Numena na ZX81, tyle że w wyższej rozdzielczości niż na Atari i w 16.7 mln kolorów. ;-)

mala prosba: postaraj sie rozmawac z innymi traktujac ich inaczej niz "z góry".

The UNIX Guru`s view of Sex:
unzip; strip; touch; finger; mount; fsck; more; yes; umount; sleep

49

nosty napisał/a:

Fox - mylisz sie. Znaczy moze i gubio ale za diabla tego nie widac. A na Atari800 juz przy 1:3 widac jak cholera.

Podaj dokładne nazwy i wersje tych emulatorów oraz na jakim sprzęcie je uruchamiasz.

https://www.youtube.com/watch?v=jofNR_WkoCE

50

Fox: spotkaliśmy się właśnie w celu odebrania padalcy, z Mikerem byłem umówiony a Lewisa spotkałem przypadkiem (chyba był z Ewą, ale głowy nie dam - dawno to było). "Napisz se" było Twoją wypowiedzią na temat wyświetlania HTMLu na atarce, o czym wtedy luźno wszyscy trzej rozmawialiśmy.  Niestety, takie są fakty ;(

Sikor umarł...