symfony 1.4.9 wydane

Po niemal 5 miesiącach od poprzedniej, zespół symfony pod kierownictwem Krisa Wallsmitha wydał kolejną wersje symfony 1.3/1.4 - 1.3.9/1.4.9. Co prawda wsparcie dla wersji 1.3 powinno być już zakończone, ale otrzymamy przynajmniej jeszcze jedną wersję, w momencie, gdy poprawki wprowadzone w do doctrine w tym wydaniu symfony zostaną wydane w kolejnej wersji stabilnej doctrine 1.2.

Unicode a python

Od paru miesięcy programuję w Pythonie. Najpierw oczywiście trzeba się było Pythona nauczyć, zanim zacząłem w robocie dostawać pierwsze zadania, ale źle nie było. Jedna rzecz mnie w Pythonie zdziwiła, a mianowicie podejście do kodowania stringów. Zresztą, po dziś dzień rozwiązanie tej kwestii w Pythonie sprawia mi niemały kłopot.

Otóż w Pythonie, by ciąg znaków mógł zawierać wszelkie krzaczki i ogonki, musi być unicodowym ciągiem znaków. Zwykłe stringi akceptują tylko i wyłącznie znaki ASCII.

I tak deklarując zmienną w kodzie, na pewno będzie stringiem.

zmienna = 'łańcuch'

Raczej bez różnicy, jakich znaków użyjemy. Jeśli jednak wartość zmienna zostaje wczytana z zewnętrznego źródła danych, wtedy możemy napotkać problem.

Załóżmy teraz, że wczytujemy i przetwarzamy jakiś dokument XML, są one kodowane przeważnie w utf-8. Wartości które będziemy przeważnie przetwarzali zazwyczaj zmieszczą się w spektrum kodowania ASCII i ich konwersja będzie jakby automatyczna, jednak co jakiś czas natrafimy w pobieranych wartościach na polskie ogonki, czeskie ptaszki albo chińskie krzaczki. Wtedy albo program się wywali (na naszym kodzie, np. złączeniu łańcuchów) stwierdzając, że znak w łańcuchu jest spoza zakresu ASCII (lub podobny błąd), albo błąd zwróci wywoływana przez nas funkcja. jakkolwiek wydaje się to zabawne, spora część funkcji nie radzi sobie z Unicode.

Jak to obejść? Wyłapać się wszystkiego w czasie pisania nie da, można chyba tylko przed wywołaniem, które zwraca błąd zastosować poniższą konstrukcję:

if isinstance(zmienna, unicode):
    zmienna = zmienna.encode('utf-8')

Gdy po raz pierwszy spotkałem się z tym problemem, znalazłem informację o możliwości zdefiniowania kodowania plików źródłowych:

# -*- coding: utf-8 -*-

Ta konstrukcja służy jednak tylko i wyłącznie zdefiniowaniu kodowania kodu źródłowego, nie kodowania używanego przez Pythona. Stąd w swoich pierwszych programach napisanych w pythonie używałem sporo wywołań metody encode i decode na stringu.

Symfony2 - Preview Release 4

Sensio Labs wypuściło dzisiaj kolejną wersję poglądową nowej wersji frameworka symfony - symfony2 PR4. Jest to pierwsza wersja tego frameworka zawierająca wszystkie elementy, kóre miały do niego trafić. Na mapie kolejną wersją powinna być beta, co oznacza, że sam framework ustabilizuje się na tyle, by można było zacząć tworzyć w nim projekty.

curlftpfs - zastąpić klienta ftp

Aktualizacja projektu poprzez serwer ftp może być żmudna. Idealnym rozwiązaniem byłoby patrzeć na zawartość serwera z projektem jak na maszynę, na której pracujemy. Jednak gdy to nie jest możliwe, a nie jest na zdecydowanej większości serwerów współdzielonych oferowanych przez polskie firmy, pozostaje spojrzeć na zawartość udostępnianą przez serwer ftp jak na system plików.

Czytaj więcej…