<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title> :: komentarze do wpisu &quot;Najpiękniejszy kawałek kodu jaki widziałem&quot;</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/</link><description>Wpisy z dziennika internetowego Jogger, wspomaganego przez Jabbera</description><lastBuildDate>Mon, 21 May 2012 10:04:47 +0200</lastBuildDate><generator>JoggerPL</generator><item><title>jajcus</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272897</link><description>Mnie się teraz dziwne wydają języki w których nie można funkcji, czy klasy potraktować jak każdego innego obiektu i np. przekazać jako argument... Musząc coś poprawiać w Javie czułem się strasznie przez to ograniczony.</description><pubDate>Mon, 13 Oct 2008 14:30:15 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272897</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272902</link><description>To właśnie dzięki Tobie wiem o takich &quot;niezwykłych&quot; (dla programisty PHP głównie) właściwościach Pythona i jego zdolności dobierania się do wszystkiego jak do obiektu. W ogóle języki z enterprajsowego mainsteamu, jak Java czy C# są po prostu nudne, natomiast prawdziwe perełki leżą na obrzeżach - Javascript, Python, Erlang. W takiej kolejności mam ochotę się nimi zainteresować.</description><pubDate>Mon, 13 Oct 2008 14:36:24 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272902</guid></item><item><title>e</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272906</link><description>delegatki w dżawce:http://chaoticjava.com/posts/delegates-in-java-why-not/http://www.egjug.org/delegateshttp://www.onjava.com/pub/a/onjava/2003/05/21/delegates.htmli na deser Microsoft vs Sun:http://java.sun.com/docs/white/delegates.html</description><pubDate>Mon, 13 Oct 2008 14:42:26 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272906</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272913</link><description>e, wiemy że się da. Ale po prostu delegaty nie są wpisane w naturę tego języka. Innymi słowy, pisząc w Javie pewnie użyłbym wzorca Command. W Javascripcie delegaty/domknięcia są dość naturalne, a składnia zachęca do ich stosowania.</description><pubDate>Mon, 13 Oct 2008 14:54:12 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272913</guid></item><item><title>teamon</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272921</link><description>Mi sie bardziej podoba: http://pastie.org/private/ve3erjtihwussq5knl0mq ;]</description><pubDate>Mon, 13 Oct 2008 15:07:34 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272921</guid></item><item><title>jajcus</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272923</link><description>teamon: za dużo znaków interpunkcyjnych ;-P</description><pubDate>Mon, 13 Oct 2008 15:08:47 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272923</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272926</link><description>teamon, o jezu - głowa boli i nogi ;-) Domyślam się, że to Ruby (btw, składnia tablica do |x| jest również godna pozazdroszczenia)</description><pubDate>Mon, 13 Oct 2008 15:15:46 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272926</guid></item><item><title>Teamon</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272927</link><description>Ruby, ruby ;] Masz na myśli |*args| ?</description><pubDate>Mon, 13 Oct 2008 15:19:53 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272927</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272931</link><description>Que oui!</description><pubDate>Mon, 13 Oct 2008 15:23:24 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272931</guid></item><item><title>Teamon</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272934</link><description>To jest po prostu zamiana wszystkich parametrów bloku (w tym wypadku to w sumie metody która jest tworzona poprzez blok) na tablice ;)</description><pubDate>Mon, 13 Oct 2008 15:29:55 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272934</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272953</link><description>Miałem pisać, żebyś Ruby’ego dodał do listy – ale widzę, że koledzy ubiegli. :)</description><pubDate>Mon, 13 Oct 2008 15:56:17 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272953</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272957</link><description>Z Rubym mam ten problem, że jak dla mnie robi on mniej więcej to, co Python, tylko ma węższe pole zastosowań i/lub mniej okrzepłą praktykę (np. bindingi GTK+), derfor wolę go poświęcić na rzecz czegoś na prawdę innego, np. Erlanga. Poza tym, mam kilka zastrzeżeń do Rubiego, które mogą posłużyć za niezły flamebait.</description><pubDate>Mon, 13 Oct 2008 16:03:27 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272957</guid></item><item><title>Teamon</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272958</link><description>Co kto lubi. Ja przeszedlem do Ruby z PHP. Próbowałem ostatnio troche pythona, ale jakos mi nie lezy. A podyskutować zawsze mozna ;)</description><pubDate>Mon, 13 Oct 2008 16:05:06 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272958</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272963</link><description>Czemu węższe pole zastosowań? (Bindingów nie obczajałem, to siedzę cicho.)Jeśli faktycznie musisz wybrać, to jasna sprawa; też bym się nie zastanawiał, jeśli więcej rzeczy Ci za Pythonem przemawia. Ale flame’a poprosimy, tak. :)(A co rzeczy innych – czemu Erlang/Haskell, a nie Lisp?)</description><pubDate>Mon, 13 Oct 2008 16:09:24 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272963</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272974</link><description>Wiesz Shot, to nie kwestia musu tylko zwykłego komonsensu - w praktyce będę szczęśliwy gdy starczy mi czasu na zgłębienie nawet jednego języka (zapomniałem, że priorytet na razie ma hiszpański ;-)Za Pythonem przemawia choćby to, że pisanie aplikacji tak webowych jak i okienkowych jest powszechne, sprawdza się też jako język dla komponentów UNO w OpenOffice. No i zawsze będę mógł zawrócić gitarę Jajcusiowi po starej znajomości ;-)Erlang z racji tego, że bardzo interesuje mnie CouchDB oraz zagadnienia związane z Map-Reduce i jego ograniczeniami. W ogóle to polecam podcast o tym języku na Software Engineering radio - http://se-radio.net/podcast/2008-03/episode-89-joe-armstrong-erlangA Lisp? Nie chce mi się uczyć języka tylko po to, by sobie podkonfigurować edytor ;-) Chyba że znasz jakieś zastosowania Lispa, które będzie dobrze wyglądać w CV?</description><pubDate>Mon, 13 Oct 2008 16:55:18 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272974</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272982</link><description>Niech stracę. Kulturalne tu ludzie, nawet interpunkcji używajo, może nie będzie flejma.Po pierwsze primo, pierwszy argument podnoszony głównie przez Railsowców mówiących, że każdą część frameworka czy biblioteki można nadpisać, przepisać, zreimplementować. Odrzuca to mnie z powodów praktycznych. Co jeśli zastępcza implementacja psuje inną część aplikacji, która współpracowała z jej poprzednią wersją? Nadpisanie metody może również powodować niespójność z dokumentacją (tak - dokumentuję swój kod). Jaki jest koszt błędów popełnianych przez nowych programistów w projekcie, oczekujących starej implementacji?Po drugie primo, Mixins, czyli w nomenklaturze PHP Traits. Cechy to narzędzie, które oducza myślenia i gwarantuje, że przeciętni programiści będą tworzyć trudny do śledzenia kod z licznymi zależnościami. Dzięki cechom można szybko i sprawnie powiązać ze sobą klasy i funkcjonalności w sposób, który jest obrazą dla zdrowego rozsądku. Jest to klasyczny przypadek good intentions gone bad.Po trzecie primo, co nie jest już winą samego języka, to relatywnie niska podaż ofert pracy. Lub raczej, ofert pracy w pożądanej przeze mnie lokalizacji.</description><pubDate>Mon, 13 Oct 2008 17:13:20 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272982</guid></item><item><title>Teamon</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272983</link><description>I tak i nie. Twórcy Railsow (i pluginów do nich) czesto kożystają z tzw. monkey patching. Merb odchodzi od takich praktyk - http://oldwiki.merbivore.com/pages/it-is-a-bug-if. Jednak dopisywanie metod do klas czasami moze byc jest bardzo przydatne (np do String, warto spojzec na extlib merba/dm)Co do mixinów, imo lepiej mieć niż nie mieć. Juz choćby podstawowe moduły jak Comparable czy Enumerable ułatwiją operacje na własnych obiektach.</description><pubDate>Mon, 13 Oct 2008 17:17:05 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272983</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272990</link><description>Moim zdaniem Lisp sam w sobie wygląda dobrze w CV, przynajmniej u tych „pracodawców”, u których chciałbym pracować.Ludzi od Rails olej, mówienie, że Ruby jest super z powodu X, bo tak mówią ludzie od Rails, to jak mówienie, że PHP jest super, bo masz tysiąc funkcji w głównej przestrzeni nazw. Otwieranie klas to dla sensownych programistów w Rubym raczej ostateczność, ew. bardzo wygodny hack na bardzo rzadkie okazje – zresztą prawie nigdy nie należy otwierać klas, co najwyżej konkretne obiekty (a i to z caveatem jak wyżej).Trochę podobnie ze złym wykorzystywaniem mixinów – zły kod można napisać w każdym języku, pracujesz w PHP to sam dobrze wiesz najlepiej.Z argumentem pracowym nie podyskutuję, zresztą rozumiem, że jest dealbreakerem, więc nie za bardzo jest nad czym dywagować. :)</description><pubDate>Mon, 13 Oct 2008 17:32:25 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1272990</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273008</link><description>A fakt, widziałem &quot;Lisp an advantage&quot; gdy startowałem do Xilinksa. Ok, odkładam opowieści Railsowców między starodruki. I tak to jest, że przyjdzie jeden rozsądny koder i spali moje argumenty swoim zdrowym podejściem do sprawy ;-)Teamon, natomiast co do mixinów - mam diametralnie odmienne zdanie. Lepiej ich nie mieć niż mieć, nawet gdyby unikać stosowania. Cena, którą musisz zapłacić za stosowanie interfejsów i/lub kompozycji w miejsce mixinów jest stosunkowo niewielka w porównaniu z tym, ile i jak łatwo możesz coś zepsuć zmieniając samego mixina. Na nieszczęście mixiny są bardzo proste w użyciu, a programiści lubią chadzać na skróty. Również liczba zależności rośnie niebezpiecznie w przypadku użycia mixinów, w przeciwieństwie do tradycyjnego dziedziczenia jednobazowego z interfejsami. Zależności = problemy. Zależności + przeciętnie doświadczenie programiści = duże problemy.</description><pubDate>Mon, 13 Oct 2008 17:51:12 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273008</guid></item><item><title>Khorne</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273251</link><description>qsort (x:xs) = qsort (filter (&lt; x) xs) ++ [x] ++ qsort (filter (&gt;= x) xs)Takie standardowe 0.03zł ;-)</description><pubDate>Mon, 13 Oct 2008 23:17:47 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273251</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273272</link><description>No tak, możemy się tak przerzucać – naiwne kolorowanie wierzchołka w grafie w Rubym (zakładając GRATR) też wygląda jak poezja:adjacent_colours = adjacent(vertex).map { |v| vertex_label v }colour = colour.next while adjacent_colours.include? colourvertex_label_set vertex, colour…ale trochę nie o to chodzi.:)</description><pubDate>Tue, 14 Oct 2008 00:16:14 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273272</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273277</link><description>A w kontekście rozważań językowych: http://avdi.org/devblog/2008/10/13/languages-i-want-to-learn/ :)</description><pubDate>Tue, 14 Oct 2008 00:57:24 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273277</guid></item><item><title>Eluś</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273280</link><description>A widziałeś gdzieś rekurencję w funkcjach anonimowych? :)http://pastie.org/291645</description><pubDate>Tue, 14 Oct 2008 01:25:18 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273280</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273292</link><description>Eluś, śliczne. Domknięcia rulezują.Atsd, antydomknięcia (czyli coś spieprzonego ponad wszelkie wyobrażenie) to z całą pewnością domena PHP. Gdy wywołamy statycznie metodę niestatyczną PHP nie dość, że na to zezwoli to jeszcze za $this uzna obiekt, z którego wywołanie zostało wykonane. W efekcie np. metoda save() DAO jest wywoływana na obiekcie kontrolera, co prowadzi do nonsensownego komunikatu o błędzie.</description><pubDate>Tue, 14 Oct 2008 03:50:21 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273292</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273299</link><description>„Gdy wywołamy statycznie metodę niestatyczną PHP nie dość, że na to zezwoli” – taki język, panie kolego. No i na serio to się powinno się kodować przy E_STRICT, który to wyłapie – tylko jaki procent bibliotek jest wtedy używalny? ;]</description><pubDate>Tue, 14 Oct 2008 07:10:46 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273299</guid></item><item><title>Jajcuś</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273307</link><description>Domknięcia, przynajmniej takie jak w Ruby, jakoś nigdy do mnie nie trafiały. Czytałem ileś wyjaśnień Rubystów czemu one są lepsze od wszystkiego co daje Python i jakoś żadne mnie nie przekonało.Anonimowych funkcji nie lubię (poza najprostszymi przypadkami typu  x -&gt; 2*x). Niepotrzebnie zaciemniają kod. W Pythonie można zrobić zwykle to samo, pisząc troszkę więcej, za pomocą zwykłej, zagnieżdżonej funkcji. Jedyny minus to kolejny ząbek zagnieżdżenia kodu.A wywołanie &quot;statyczne&quot; metody niestatycznej bardzo fajnie jest rozwiązane w Pythonie. Można to robić (w Pythonie mało jest rzeczy &quot;nie, bo nie!&quot;), ale trzeba odpowiedni obiekt podać jawnie jako pierwszy argument. Co ciekawsze, to jest jedna z niewielu operacji w których Python sprawdza typ argumentu (nie pozwoli wywołać takiej metody z obiektem innej klasy jako 'self').</description><pubDate>Tue, 14 Oct 2008 08:30:20 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273307</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273433</link><description>Jajcuś, bluźnisz heretyku! ;-)Serio, nie bardzo potrafię sobie wyobrazić dlaczego ktoś chciałby statycznie wywoływać metodę niestatyczną. Jeśli taka potrzeba istnieje to metoda najpewniej powinna zostać zadeklarowana jako statyczna.Domknięcia rzeczywiście mają sens głównie w Javascripcie, ale taka jest specyfika domeny tego języka. Środowisko webowe po stronie klienta (mod_js na razie pomijamy) jest bardzo hmm.. żywe, ale jednocześnie nietrwałe.Co do funkcji anonimowych, świetnie sprawdzają się jako proste callbacki, np. przy renderowaniu tabel. Czasem renderery są tak proste, że &quot;public function xxxx()&quot; zajmuje więcej miejsca niż ciało funkcji.</description><pubDate>Tue, 14 Oct 2008 14:03:08 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273433</guid></item><item><title>Jajcuś</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273444</link><description>Źle się chyba zrozumieliśmy. Przez &quot;statyczne wywołanie&quot; rozumiem tylko wywołanie inne niż przez obiekt.metoda. Metoda dalej nie działa jak statyczna, bo operuje na konkretnym obiekcie, tyle że sama metoda jest pobrana nie z tego obiektu, a z klasy. Zresztą, to standardowy sposób na wywołanie metody z klasy nadrzędnej. Po prostu metodę niestatyczną można przetwarzać nawet gdy nie jest przywiązana do konkretnego obiektu, byle jej przy wywołaniu odpowiedni obiekt podać.Właściwie &quot;klasa.metoda_niestatyczna&quot; (unbound method) to inny obiekt niż &quot;instancja.metoda_niestatyczna&quot; (bound method). A i statyczne metody są w pythonie różnego rodzaju: staticmethod i classmethod. Pierwsza jest po prostu funkcją, druga jest związana z klasą tak jak zwykła metoda jest związana z instancją (ma coś w rodzaju &quot;this&quot;, które wskazuje odpowiednią klasę). &quot;classmethod&quot; jest bliższym odpowiednikiem statycznych metod z Javy, ale w wielu wypadkach wystarcza &quot;staticmethod&quot;.</description><pubDate>Tue, 14 Oct 2008 14:18:38 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273444</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273447</link><description>@stronger: „Domknięcia rzeczywiście mają sens głównie w Javascripcie” – no nie wiem, w Rubym one są wszędzie i trochę sobie bez nich nie wyobrażam choćby najprostszych iteracji.A z rzeczy wygodnych:module Enumerable  def every_pair    every_pair_with_indices do |a, b, i, j|      yield a, b    end  end  def every_pair_with_indices    each_with_index do |a, i|      each_with_index do |b, j|        yield a, b, i, j if i &lt; j      end    end  end  def parallel &amp;block    case ArtDecomp::Conf.processes    when 1 then map &amp;block    else forkoff ArtDecomp::Conf.processes, &amp;block    end  endendPierwsze i drugie pozwala mi na&gt;&gt; [1,2,3,4].every_pair { |a,b| p [a,b] }[1, 2][1, 3][1, 4][2, 3][2, 4][3, 4]Trzecie zaś mówi, że w zależności od konfiguracji rzeczy typu[1,2,3,4].parallel { |e| cośtam e }wykonają się mniej lub bardziej równolegle (gem forkoff).</description><pubDate>Tue, 14 Oct 2008 14:29:50 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273447</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273457</link><description>Czy ja miałem pisać o domknięciach, a napisałem o blokach? A mówili, żeby nie pisać do internetu o piątej nad ranem…@Jajcuś: „Źle się chyba zrozumieliśmy. Przez «statyczne wywołanie» rozumiem tylko wywołanie inne niż przez obiekt.metoda. Metoda dalej nie działa jak statyczna, bo operuje na konkretnym obiekcie, tyle że sama metoda jest pobrana nie z tego obiektu, a z klasy.” – my niestety w PHP przez „statyczne wywołanie” rozumiemy wywołanie metody „obiektowej” bez obiektu, tylko przez podanie klasy. Tak, niestety wolno i działa i tylko rzuca (prawie-zawsze-ignorowane) ostrzeżenie.</description><pubDate>Tue, 14 Oct 2008 14:54:13 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273457</guid></item><item><title>stronger</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273463</link><description>No wiesz co, a ja tu siedzę i męczę manuale do Rubyego, żeby Ci coś o tych closures odpisać ;-) 5 rano? Gdzie to, GNU/York?Jajcuś, Pythonowe statyczne wywołania to zupełnie inny świat. Dodam tylko że ponieważ stosuję trzyenterowe odstępy pomiędzy metodami, to przy omyłkowym statycznym wywołaniu komunikat błędu w PHP dość często wskazuje na pustą linijkę. Zdziwienie widzącego to poraz pierwszy - bezcenne.</description><pubDate>Tue, 14 Oct 2008 15:06:06 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273463</guid></item><item><title>Shot</title><link>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273466</link><description>GNU/Ess-Eff. W weekend był http://badcamp.net/ a teraz idę właśnie rękami machać na http://civicrm.org/node/445 :)</description><pubDate>Tue, 14 Oct 2008 15:15:38 +0200</pubDate><guid>http://stronger.epsi.pl/2008/10/13/najpiekniejszy-kawalek-kodu-jaki-widzialem/#c1273466</guid></item></channel></rss>
