oskarj.wordpress.com blog

marzec 24, 2009

Język Ruby – lekkie i krótkie wprowadzenie :)

Zaszufladkowany do: 1, Academic, Recenzja, przemyślenia, ruby — oskarj @ 2:00 am
Tags:

Inspiracja rozdziałem 29-tym, Joel Spolsky, „Sztuka pisania oprogramowania”

W zamieszłych czasach, których wielu z nas zapewne nie zaznała (aczkolwiek nie tak bardzo odległych, nie mówię tutaj o epoce gdy składano komputer Odra z części przywiezionych wagonem, około 10-15 lat później), istniał taki komputer Apple II (8-bitowy komputer domowy z lat 70-tych), który to dostarczany był z podręcznikiem napisanym w iście artystycznym stylu.

Nie chciałbym się rozpisywać o historii informatyzacji, w tym celu można sprawdzić na Wiki takie hasła, jak: Odra, Apple, Commodore (na którym zresztą znajomy rodzinny podobno pisał pracę dyplomową), a pragnąłem pokazać, w jaki sposób zmienił się styl pisania wszelkiej maści książek użytkownika, podręczników i tutoriali.

Chwytano się iście Monty-Pythowskiego humoru, historyjek komiksowych, anegdot, przede wszystkim aby zaciekawić użytkownika i łagodnie wprowadzić go w temat z danej dziedziny, który mógł być następnie poszerzony już w różnej innej technicznej literaturze.

Dzisiaj? Niektórzy powiedzieliby, że dominują książki o możliwie grubym grzbiecie i koncentracji faktów w jednym. Niech spojrzę na swoją półkę: „Java 2 Podstawy”, „Thinking In Java”, „SCJP..” (ta jeszcze zachowała odpowiednią dozę humoru), „EJB 3.0”, „PHP Programming”.. każdą z tych pozycji można z sukcesem nastawić bark w przychodni (tak jak to kiedyś ujrzałem w filmie, ale tam użyto Tołstoja „Wojna i pokój”).

Ale w temacie wyraźnie jest napisane że miało być o Rubym.

Ruby nie koniecznie jest językiem komputerowym, jest po prostu językiem. Językiem programowania zrozumiałym również dla szarych ludzi (aczkolwiek nie od razu). Spójrzcie na składnię:

5.times { print „Odelay!” }
co można przeczytać jako:
Five times print “Odelay”

exit unless „restaurants”.include? „aura”
czyli:
Exit unless the word restaurant includes the word aura

[toast, cheese, wine].each { |food| eat food }
to chyba trudniejsze:
With toast, cheese, and wine, take each type of food and eat that food.

thefoxes-3

Zaciekawiłem?
Do sprawdzenia:
http://whytheluckystiff.net/

komiksowy humor w służbie edukacji

http://poignantguide.net/ruby/

w jaki sposób można w przyjemny sposób przedstawić język z 1995 roku stworzony przez Yukihiro Matsumoto, czyli RUBY

kwiecień 13, 2008

Milionerzy ?

Zaszufladkowany do: 1, Recenzja, przemyślenia — oskarj @ 2:14 pm
Tags:

Pewnie każdy z nas od czasu ogląda ten tvn-owski teleturniej, ale nie wie dokładnie, jak wygląda proces eliminacji. Należy wysłać dokładnie 3 smsy na numer 7244, z czego pierwszy jest tylko zgłoszeniowy, dwa następne to twoje odpowiedzi na pytania z bazy danych pytań, a wygląda ona następująco:

1. Blues narodził się w:
B) Ameryce Północnej

2. Czy słodka włóknista masa z nasion oleistych i karmelu to:
C) chałwa

3. Słynny 24-godzinny wyścig samochodowy odbywa się we Francji w
C) Le Mans

4. Czy łacińska maksyma chwytaj dzień to w oryginale
A) carpe diem

5. Marszałkiem pierwszego sejmu III RP zwanego kontraktowym był
C) Kozakiewicz

6. Przechodzenie ciała stałego w stan lotny bez topnienia to
B) sublimacja

Jeżeli jesteś w pierwszej setce osób, które odpowiedziały najszybciej (dlatego najlepiej wysyłać odpowiedzi z komputera poprzez PC-Suite), to w przeciągu miesiąca do trzech miesięcy zadzwoni do ciebie konsultant, po czym wypyta o dane osobowe, zainteresowania i zada od siedmiu do dwudziestu pytań.. i teraz nie ma wariantów abc, tylko musisz znać odpowiedź ;P Finalnie zaproszenie do studia w Krakowie. Ja na razie czekam aż ktoś oddzwoni ;P. Może będę miał równie łatwe pytania jak te, które zostały zadane przy głównej wygranej.

wrzesień 22, 2007

Digital Fortress – Dan Brown się pomylił

Zaszufladkowany do: Dan Brown, Kryptografia, Recenzja — oskarj @ 5:57 pm

Z chęci przeczytania jakiejś lektury na zakończenie wakacji zdecydowałem się na wydanie anglojęzyczne. W Empiku dorwałem „Cyfrową twierdzę” (tak to się tłumaczy?) Dan Browna w cenie 35zł, minus zniżka z Euro26. Ale to nieistotne. Tłem w tej lekturze są komputery i kryptografia, i choć w tej drugiej dziedzinie nie jestem ekspertem, zauważyłem wiele drażniących nieścisłości, które moim zdaniem, potrafią zepsuć odbiór książki.

Autor wynalazł parę rzeczy, szczególnie w dziedzinie matematyki oraz informatyki, które tak naprawdę nie istnieją. Co najlepsze, wg. Browna, dwóch eks-agentów NSA pomagało współtworzyć utwór „Digital Fortress”, co wydaję się trochę śmieszne.

Ostrzeżenie: poniżej szczegóły fabuły.

“The notion of a rotating cleartext function was first put forth in an obscure, 1987 paper by a Hungarian mathematician, Josef Harne. Because brute-force computers broke codes by examining cleartext for identifiable word patterns, Harne proposed an encryption algorithm that, in addition to encrypting, shifted decrypted cleartext over a time variant. In theory, the perpetual mutation would ensure that the attacking computer would never locate recognisable word patterns and thus never know when it had found the proper key. The concept was somewhat like the idea of colonising Mars—fathomable on an intellectual level, but, at present, well beyond human ability.”

O ile wspomniany matematyk – Josef Harne – tak naprawdę nie istniał, o tyle zdaje się, że możemy uwierzyć w owy pomysł nowatorskiego algorytmu kodowania. Niesłusznie, skoro algorytm produkował dane które zmieniały się w pewnym odstępstwie czasowym, to i tak zakodowana treść byłaby do odczytania – po prostu do klucza dodano by trochę więcej informacji (związanych cyfrowo z czasem), a każdy klucz pasujący do szyfru można odgadnąć metodą brute-force, prędzej czy później.

“Susan had learned about the Bergofsky Principle early in her career. It was a cornerstone of brute-force technology. It was also Strathmore’s inspiration for building TRANSLTR. The principle clearly stated that if a computer tried enough keys, it was mathematically guaranteed to find the right one. A code’s security was not that its pass-key was unfindable but rather that most people didn’t have the time or equipment to try.”

Kolejna niespodzianka – coś takiego jak zasada, reguła Bergofskiego nie istnieje i została wymyślona na potrzeby utwory, tak, aby fabuła trzymała się kupy, czego i tak nie osiągnięto. Wg niej komputer byłby w stanie ZNALEŹĆ każdy klucz do szyfru jeżeli posiadałby wystarczającą moc obliczeniową. Komputer nie znajduje, komputer TESTUJE wszystkie możliwe kombinacje i znajduje tą właściwą.

“Now Susan was even more doubtful. Encryption algorithms were just mathematical formulas, recipes for scrambling text into code. Mathematicians and programmers created new algorithms every day. There were hundreds of them on the market—PGP, Diffie-Hellman, ZIP, IDEA, El Gamal. TRANSLTR broke all of their codes every day, no problem. To TRANSLTR all codes looked identical, regardless of which algorithm wrote them.”

PGP – system który pozwala szyfrować i deszyfrować dane jest programem, który bazuje na algorytmie RSA – PGP sam w sobie algorytmem nie jest. ZIP – format kompresji, zaprojektowany przez Phila Katza dla PKZIP, w aktualnej postaci korzysta z algorytmu deflate.

“Public-key encryption was a concept as simple as it was brilliant. […] The only way to unscramble the message was to enter the sender’s “pass-key”—a secret series of characters that functioned much like a PIN number at an automatic teller.”

Dan zapewne pomylił szyfrowanie asymetryczne z symetrycznym – w tym pierwszym wykorzystuje się parę kluczy – jeden publiczny, jeden prywatny, W tym drugim, np. AES klucz jest jeden.

Może teraz coś na rozluźnienie:

“Cranberry juice was a popular drink in Spain, but drinking it alone was unheard of.”

Czy jemu nie chodziło przypadkiem o Sangrię, pitą z owocami i lodem w wysokich szklankach, od Katalonii po Andaluzję?

Na początku powieści Dan Brown stwierdza, że tylko 3% procent amerykanów jest świadoma istnienia ‘National Security Agency’.. czy to możliwe ? Heh

Mimo tego wszystkie zamierzam skończyć czytać Digital Fortress do końca.

Blog na WordPress.com.