Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: Śpiechu, dodany: 21.08.2011 18:58, tagi: php

Mamy niedzielę. W ramach leniuchowania zachciało mi się poznać jakiś nowy język programowania. Padło na Pythona (nieznacznie wygrał z Rubym).

Na pierwszy rzut oka to w zasadzie taki JavaScript ogólnego przeznaczenia bez przeglądarki. Python reklamowany jest jako język typu batteries included, czyli standardowa biblioteka powinna zawierać wszystko to, co w typowych zastosowaniach programista potrzebuje.

Od razu widać puryzm kodu Pythona. Żadnych klamerek, żadnych średników — wszystko załatwiamy wcięciami i końcami linii. „Kompresja kodu” widoczna jest na każdym kroku, np. funkcje deklarujemy poprzez def, a nie przydługawe function, obiekty tworzymy bez new. Weźmy na przykład najprostszą funkcję żądającą od użytkownika wpisania z klawiatury jakiejś liczby:

def getIntInput(message):
    while True:
        try:
            return int(input(message))
        except ValueError:
            print("You were supposed to enter integer!")

W 6 liniach mamy załatwioną prośbę o wpisanie czegoś, przetworzenie wejścia i wyłapanie ewentualnych błędów. Funkcja nie odczepi się od użytkownika dopóki nie wpisze poprawnie jakichś cyferek.

wiek = getIntInput("Podaj rok urodzenia")

Poniżej w punktach ciekawostki, które w Pythonie są, a których nie ma w PHP (tyle co w ciągu kilku godzin udało mi się wyłapać):

  • wspomniane już braki klamerek i średników — czy naprawdę potrzebujemy tego wszystkiego w PHP?
  • wszystkie metody publiczne — tego nie popieram, może powodować bajzel w API; zgodnie z konwencją metody prywatne należy oznaczać przedrostkiem _
  • fajne konstrukcje przy iterowaniu: for zmienna in array oraz for zmienna in range(5)
  • dziwne zasady dokumentowania kodu — komentarze idą po deklaracji klasy czy metody
  • array comprehension (nawet nie wiem jak to przetłumaczyć) — w jednej linijce możemy stworzyć nową tablicę na podstawie starej i przejechać jakąś funkcją po każdej wartości przed dodaniem:
    nowaTablica = [funkcja(wartosc) for wartosc in staraTablica]
  • proste losowanie:
    zagadka = random.choice(["wartosc1","wartosc2","wartosc3"])
  • tuple, czyli niedająca się modyfikować tablica; co ciekawe, funkcje bardzo często zwracają to ustrojstwo, możemy od razu złapać je do dwóch różnych zmiennych
    wynik1, wynik2 = funkcja()
  • obiekt None zamiast null
  • == i != do sprawdzania wartości zmiennych, is i is not do porównywania z None lub referencji, mało tego, możliwa jest konstrukcja 0 <= a <= 10
  • próba porówania if „3” < 4 wywali TypeError
  • konstrukcja final do kompletu z try/except
  • bajer dla mnie: if szukanaZmienna in tablica oraz if „wyraz” in przeszukiwanyString

Tyle na początek. Widzę, że Python to fajna sprawa. O wszystkim pomyśleli. Nawet o wbudowaniu bazy danych sqlite w bibliotekę standardową. Jeżeli ktoś waha się czego by tu nowego się pouczyć to polecam!

P.S.: Tak, wiem, na tych waszych polibudach Pythona uczą już na I roku, ble ble srutututu. Samoucy typu np. ja muszą sami. Dobra, kończę, bo i piwo mi się skończyło :-(

Autor wpisu: Tomasz Kowalczyk, dodany: 19.08.2011 23:58, tagi: php, doctrine, sql, symfony

Pobieranie informacji z baz(y) danych to jedna z podstawowych czynności, jaką wykonujemy podczas tworzenia różnego rodzaju stron internetowych. Aby uzyskać potrzebne dane w zdecydowanej większości przypadków wystarczy proste zapytanie SQL [w przypadku Doctrine możemy też wykorzystać język DQL]. Niektóre przypadki wymagają jednak potrzeba bardziej ambitnej ekwilibrystyki, aby przygotować odpowiedni zbiór rekordów. W dzisiejszym wpisie chciałbym [...]

Autor wpisu: batman, dodany: 17.08.2011 09:00, tagi: css

Zastanawialiście się kiedyś jak działają przeglądarki internetowe? Tali Garsiel, izraelska programistka była zainteresowana znalezieniem odpowiedzi na to pytanie do tego stopnia, iż wzięła na warsztat Firefoxa, Chrome’a oraz Safari (czyli około połowy rynku przeglądarek). Wspomniana programistka zaczęła od lektury specyfikacji technicznych, a skończyła na czytaniu kodu źródłowego. Swoją pracę podsumowała w następujący sposób:

(…)it’s a good time to take a peek under the engine’s hood and see what’s inside a web browser. Well, what’s inside are millions of C++ lines…

Co znajdziemy w wynikach opracowanych przez Tali? Wszystko – cały proces renderowania strony został rozłożony na czynniki pierwsze i dokładnie opisany. Przeczytamy m.in o sposobie parsowania kodu HTML i CSS, budowaniu drzewa DOM, czy modelu pudełkowym (box model).

Wynik prac można znaleźć pod adresm http://www.html5rocks.com/en/tutorials/internals/howbrowserswork/. Lektura obowiązkowa dla wszystkich osób, które na co dzień mają do czynienia z HTML.

Autor wpisu: Tomasz Kowalczyk, dodany: 16.08.2011 23:50, tagi: symfony, framework

Framework symfony, jak praktycznie każdy na rynku ma swoje "smaczki", które czasem umilają, a czasem bardzo utrudniają tworzenie kolejnych funkcji projektu - zamiast zająć się właściwą pracą musimy przeszukiwać strony manuala i "czeluści" Internetu, aby znaleźć Jedyną Słuszną (tm) drogę wykonania danego zadania. W dzisiejszym wpisie chciałbym pokazać, w jaki sposób "dobrać się" do "niewyescape'owanych" [...]

Autor wpisu: Kamil, dodany: 16.08.2011 01:18, tagi: javascript

Frameworka jQuery nie trzeba nikomu przedstawiać. I choć nie wszystkim podoba się ta biblioteka to nie można zaprzeczyć jednemu – jQuery jest bardzo proste w nauce, jak i dalszej rozbudowie o nowe funkcje (pluginy, selektory i inne). W tym wpisie zajmę się przydatną, aczkolwiek rzadko wykorzystywaną możliwością rozszerzania jQuery o niestandardowe selektory. Wbudowane selektory w [...]

Autor wpisu: widmogrod, dodany: 14.08.2011 13:16, tagi: javascript, php

Dzisiaj zabrałem się za porządkowanie mojej wiki, która jest dla mnie najlepszym sposób kolekcjonowania informacji. Wiki znajdziecie pod adresem wiki.widmogrod.info.

Tak „biblioteka wiedzy” wzbogaciła się m.in. w:

Jak by ktoś z was był zainteresowany różnego rodzaju dodatkowymi informacjami o Cappuccino Framework i społeczności wokuł niego to zapraszam do działu Szkice i różne materiały dodatkowe o Cappuccino Framework.

Z działu programowanie najbardziej podoba mi się ciekawy wzorzec projektowy Circuit Breaker. Umieściłem w tym dziale link do artykułu, który zawiera  POC implementacji go w Zend Framework.

Natomiast w dziale JavaScript podoba mi się nowy język programowania, który jest kompilowany do JavaScript – CoffeeScript.

To tyle, pozdrawiam!

Autor wpisu: batman, dodany: 14.08.2011 12:00, tagi: javascript

Dzisiejszy odcinek “Wyciągnięte z Twittera” sponsoruje literka J jak JavaScript.

  1. DnD and Friends – praktyczny przewodnik po Drag and Drop, dostępnym w HTML5. Przykładowy kod oraz demo obrazujące działanie kodu. Obowiązkowa pozycja dla wszystkich zainteresowanych HTML5.
  2. PouchDB (Portable CouchDB JavaScript implementation) – implementacja API CouchDB wykonana w JavaScript. Jeśli jesteś fanem baz NoSQL oraz JavaScript powinieneś sprawdzić możliwości tego projektu.
  3. WebODF – biblioteka JavaScript pozwalająca pracować z dokumentami ODF.
  4. cdn js – publicznie dostępny CDN, pozwalający hostować dowolną bibliotekę JavaScript.
  5. JSIL – kompilator kodu platformy .NET do języka JavaScript.
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.