Any fool can make things bigger, more complex, and more violent. It takes a touch of genius and a lot of courage to move in the opposite direction. Albert Einstein

o Ruby

Nowości i zmiany w Ruby 1.9 #3 - zmiany odnośnie argumentów metod

2 komentarze | Kategorie: Ruby, Techblog | trackback
Tagi:
ruby 1.9 changes approved - logo

Wpis ten jest jedną z części cyklu pt "Nowości i zmiany w Ruby 1.9". Pełną listę wpisów znajdziesz pod adresem http://radarek.jogger.pl/2008/11/30/nowosci-i-zmiany-w-ruby-1-9/.

Kontynuując mały cykl tym razem chciałbym opisać zmianę dotyczącą parametrów metod. Do tej pory deklaracja metody wyglądała następująco: def fun(r1, r2, .., rm, o1=v1, o2=v2, ..., on=vn[, *rest][, &block]).

Suchy zapis jest często ciężki w odbiorze, zatem opisując słownie mamy: lista parametrów wymaganych (może być pusta), lista parametrów opcjonalnych (może być pusta), opcjonalny argument zbierający pozostałe parametry, opcjonalny parametr bloku. Prezentuje to przykładowy kod:

def foo(a, b = 1, *rest, &block)
  p [a, b, rest, block]
end

foo(10)
foo(10, 20)
foo(10, 20, 30)

Czytaj dalej...

Nowości i zmiany w Ruby 1.9 #2 - nowa składnia Hasha

5 komentarzy | Kategorie: Ruby, Techblog | trackback
Tagi:
ruby 1.9 changes approved - logo

Wpis ten jest jedną z części cyklu pt "Nowości i zmiany w Ruby 1.9". Pełną listę wpisów znajdziesz pod adresem http://radarek.jogger.pl/2008/11/30/nowosci-i-zmiany-w-ruby-1-9/.

Tym razem chciałbym pokazać Wam nową zmianę w składni języka, która dotyczy także Hasha. Zmiana ta dotyczy nowej składni dla literału hasha, którego kluczami są symbole. Do tej pory taki hash definiowaliśmy w następujący sposób:

h = {:foo => 1, :bar => 2}
p h
# => {:foo=>1, :bar=>2}

Od wersji 1.9 można to zrobić trochę inaczej

h = {foo: 1, bar: 2}
p h
# => {:foo=>1, :bar=>2}

Czytaj dalej...

Nowości i zmiany w Ruby 1.9 #1 - ordered Hash

16 komentarzy | Kategorie: Ruby, Techblog | trackback
Tagi:
ruby 1.9 changes approved - logo

Wpis ten jest jedną z części cyklu pt "Nowości i zmiany w Ruby 1.9". Pełną listę wpisów znajdziesz pod adresem http://radarek.jogger.pl/2008/11/30/nowosci-i-zmiany-w-ruby-1-9/.

Od wersji 1.9 Ruby zachowuje kolejność elementów w Hashu ("ordered Hash", czyli Hash zachowujący kolejność). Oznacza to, że iteracja po elementach hasha następuje dokładnie w takiej samej kolejności w jakiej były wstawiane elementy. Podkreślam słowo "wstawiane", co nie ma związku z sortowaniem kluczy (np. leksykograficznie).

Czytaj dalej...

Nowości i zmiany w Ruby 1.9

Brak komentarzy | Kategorie: Ruby | trackback
Tagi:

Blisko rok temu pisałem o zmianach jakie zaszły w wersji 1.9 Rubiego. W kilku następnych wpisach opiszę bardziej szczegółowo najważniejsze z nich. Prócz samego pokazania na czym dana zmiana/nowość polega postaram się także pokazać jakiś użyteczny kod, który wykorzystuje nowy "ficzer". Jak zwykle będą osoby, które pokochają nowe elementy języka, a także takie, które będą kręcić nosem. Tym bardziej, że o niektórych modyfikacjach języka można powiedzieć, że są kontrowersyjne (a przynajmniej po pierwszym spojrzeniu). W takich wypadkach opiszę także jak należy prawidłowo (co oczywiście będzie tylko moim punktem widzenia) używać konstrukcji lub czego się wystrzegać. Innymi słowy: to czego nie znajdziecie w "suchym" manualu (tudzież Changelogu).

Czytaj dalej...

Python (Ruby) Challenge #2, poziomy 6-10

5 komentarzy | Kategorie: Python, Ruby, Techblog | trackback
Tagi:

Jakiś czas temu starałem się zachęcić Was do zabawy pod nazwą "Python Challenge". Umieściłem wtedy rozwiązania pierwszych 5 zagadek. Brak większego odzewu spowodował, że do tej pory nie opisałem rozwiązań kolejnych zagadek. Uważam jednak, że temat jest wart odświeżenia.

Jeśli jeszcze nie wiesz jaka jest idea tej zabawy to opiszę Ci ją w kilku zdaniach. Idea jest następująca. Zabawę zaczynasz od strony startowej. Twoim celem jest odgadnięcie adresu następnego etapu. Podpowiedzi należy szukać w obrazku widocznym na stronie jak i w samym jej źródle. Przykładowo w zagadce oznaczonej numerem zero widać monitor, na którym jest napis "238". Jeśli obliczymy wartość tego wyrażenia a następnie podmienimy w adresie URL 0 na tą wartość dostaniemy się do następnego etapu. Następny poziomy są co raz trudniejsze.

Czytaj dalej...