Niezalogowany [ logowanie ]
Subskrybuj kanał ATOM Kanał ATOM

Autor wpisu: bastard13, dodany: 29.04.2013 09:38, tagi: oop

a zaczęło się to tak...

Wydajność mojego zespołu zwiększyła się w ostatnich miesiącach kilkukrotnie. Oczywiście jest to powód do zadowolenia, ale generuje to również wiele code review, które wcześniej czy później trzeba przejrzeć. Co prawda, nie wszyscy muszą oglądać wszystko, ale tak czy inaczej, ich ilość ostatnimi czasy jest przytłaczająca. Zazwyczaj rano przy kawie przeglądam ich listę i po kolei, jeden po drugim, zamykam bądź oglądam, w zależności od tego, ile osób przede mną już miało przyjemność patrzyć na ten kod. Tak też zrobiłem ostatnio. Gorąca, czarna, parzona i aromatyczna kawa powoli cuciła mnie i przywracał do świata żywych, a ja w między czasie przedzierałem się przez kolejne linijki kodu. W pewnym momencie trafiłem na bardziej złożone zadanie i po ilości klas byłem w stanie stwierdzić, że zrozumienie wszystkiego będzie wymagało ode mnie trzeźwości umysłu i skupienia, o jakie ciężko we wczesnych godzinach porannych. Ale któż powiedział, że życie lekkie jest:) Łyk, już tylko ciepłego, napoju i do dzieła.Czytaj więcej »

Autor wpisu: Jakub, dodany: 27.04.2013 22:37, tagi: apache, php/mysql

System kodowania Unicode UTF-8 jest najlepszym, i zarazem najpopularniejszym który obsługuje znaki diakrytyczne. Niestety często spotykanym problemem jest to, że wykonany skrypt PHP ma problemy z ich wyświetleniem lub przetworzeniem. Może to być spowodowane zła konfiguracją serwer, brakiem meta tagu lub kodowaniem pliku. Poniżej postaram się pokazać, jak w prosty sposób temu zaradzić.   1. Zła konfiguracja serwera. Może się zdarzyć, że Twój serwer ma ustawione błędne kodowanie. Aby to sprawdzić wywołaj funkcję phpinfo(), a następnie odszukaj pozycję default_charset. Jeżeli przyjmuje ona wartość no value lub utf-8, to twój serwer jest skonfigurowany poprawnie. W przeciwnym wypadku, jeżeli posiadasz Windows’a wystarczy odtworzyć w edytorze plik php.ini, a następnie zakomentować linijkę default_charset(u mnie 814). Jeżeli postawiłeś serwer na systemie Linux, w pliku httpd.conf dodaj AddDefaultCharset utf-8 (o ile nie jest już tak ustawione. Możesz zrobić to jeszcze w całkiem inny sposób, dodając zaraz po otwarciu klamry PHP:

1ini_set('default_charset', 'UTF-8');

  2. Kodowanie pliku. Każdy plik wykonywany wraz z uruchomieniem Twojej strony (zaincludowany też), musi mieć ustawione odpowiednie kodowanie. Zmienić je możesz za pomocą większości edytorów, jak np. Notepad++. Wystarczy że wejdziesz w sekcję Format, a następnie wybierzesz Koduj w UTF-8 (bez BOM).   3. Nagłówek. Jeżeli Twój kod znajduję się w szkielecie dokumentu HTML, upewnij się że zawiera on meta-tag:

1<meta http-equiv="Content-type" content="text/html; charset=utf-8">

W przypadku samego kodu PHP, dodaj na samym początku:

1header('Content-Type: text/html; charset=utf-8');

  4. Zapytanie MySQL. Jeśli Twoje dane pobierane są z bazy danych, to właśnie w niej może tkwić problem. Aby to naprawić, dodaj to zaraz po połączeniu się z bazą danych:

1mysql_query("SET NAMES utf8");

  I to by było na tyle. Pozdrawiam Jakub Cieślak.

Autor wpisu: matiit, dodany: 27.04.2013 16:22, tagi: php

Nawigacja

Na wstępie pragnąłbym zaznaczyć, że jest to tylko pierwszy wpis, mam nadzieję cotygodniowej serii wprowadzającej do frameworka Laravel.

Jako, że tak na prawdę jest to mój początek z blogowaniem i pisaniem czegokolwiek innego niż kod, maile, wypracowania w czasach liceum lub <160 znakowe wiadomości na blipie czy innym twitterze. Tylko nie przypominajcie mi o moim poprzednim blogu. Powiedzieć, że jestem niezadowolony z jego wartości merytorycznej to za mało.

Pozwolę sobie zarzucić sucharem rozluźniającym atmosferę:

A SQL query goes into a bar, walks up to two tables and asks, „Can I join you?”  

Czas jednak przejść do rzeczy, mianowicie czym będzie, a raczej czym chcę aby była ta seria. Moim celem jest napisanie kompletnego wprowadzenia do frameworku Laravel,  nauczenie kogoś, kto zna PHP tylko w podstawowym stopniu. O MVC coś tylko słyszał (lub nawet nie). Nie będzie to seria wpisów przydatna dla kogoś, kto od 2 lat pisze w Symfony lub kogoś kto choć raz w życiu pisał swój własny framework. Najbardziej chciałbym aby tą serią zainteresowały się osoby całkowicie nowe w świecie programowania, które obrały PHP jako coś czego chcą się uczyć. Zależałoby mi też na osobach, które nawet zarabiają na pisaniu kodu jednak nie są świadome możliwości jakie dają im frameworki, biblioteki, dobre praktyki.

Pozwolę sobie zwracać się do czytelnika, jakby był bardzo początkujący. Proszę przy okazji osoby, które są bardziej doświadczone, aby nie czuły się obrażone.

„Czemu miałbym się uczyć Laravel skoro…co to jest w ogóle framework?!”

Wyobraź sobie, że jesteś freelancerem przyjmującym zlecenia na tworzenie różnych prostych stron oraz bardziej zaawansowanych aplikacji internetowych. Nie stronisz także od poprawek w istniejących serwisach. Czemu miałbyś je odrzucać, przecież to duża część rynku.  Dostajesz maila z powiedzmy taką treścią:

Witam, jestem właścicielem małej firmy, w której pracuje 5 osób. Wszystkie te osoby siedzą w jednym biurze. Lwią częścią ich pracy jest rozmowa przez telefon oraz praca w excelu. Ważnym szczegółem jest jednak to, że zbiory zewnętrznych rozmówców pracowników nachodzą na siebie. Innymi słowy pracownicy często rozmawiają z osobami, do których wcześniej dzwonił, któryś z współpracowników. Klienci często są bardzo specyficzni i potrzebują specjalnej opieki (nie troski). Na jednego na przykład nie wolno w ogóle krzyczeć ponieważ jego lekarz twierdzi, że może to spowodować u niego zawał, inny w ogóle nie odbiera telefonów przed 14. Jeszcze inny chce rozmawiać tylko z kobietami. Są też tacy, którzy wymagają włączenia im rosyjskiego hymnu zanim się w ogóle można przywitać.

Obecnie w mojej firmie funkcjonuje aplikacja zainstalowana na wewnętrznym firmowym serwerze, gdzie każdy klient ma swoją podstronę z tekstem, który opisuje zasady rozmowy z nim. Niestety (dla mojego portfela wprost przeciwnie) w ostatnim roku baza naszych stałych klientów zwiększyła się z 2 aż do 400. Można sobie tylko wyobrazić jak to wpłynęło na przydatność owego rozwiązania (aplikacji). Pracownicy zaczęli się przerzucać na żółte karteczki. Dziś przyjeżdża kolejna ciężarówka z dostawą karteczek – mówię Panu, te karteczki śnią mi się już po nocach, chcę z tym skończyć!

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: matipl, dodany: 25.04.2013 17:04, tagi: php, mysql

MySQL - logo

Dzisiejszy wpis jest tym z rodzaju błahych, ale nie do końca. Często zapominamy, że przeniesienie słowa z życia codziennego (w tym wypadku: float) do świata maszyn nie zawsze jest właściwe.

Często w projektach, w których uczestniczę projektowanie bazy danych oddaje się w ręce niedoświadczonych osób. Bo dlaczego nie może jej zaprojektować osoba, która będzie tworzyła logikę w aplikacji do niej?

Zaprojektować owszem – może, ale często osoba odpowiedzialna za część programistyczną aplikacji ma nikłe pojęcie o projektowaniu bazy, a szczególnie dostępnych typach, procedurach itp.

INT(10) != VARCHAR(10)

Szczególnie studenci i osoby z firm, gdzie wyznaje się zasadę „człowiek-orkiestra” popełniają ten błąd. Korzystając z typu VARCHAR i podając jego wielkość (10) sądzą, że tak samo można ograniczyć wielkość (długość) pól liczbowych, np. INT.

Tym bardziej powielają ten błąd, gdy silnik bazodanowy podczas tworzenia tabeli nie zwraca błędu. Zapis INT(10) jest poprawny, ale nie powoduje on, że ograniczymy INT do 10 miejsc (pomijam fakt, że niektórzy sądzą, że podając INT(18) przeskoczą definicję długości samego INT-a). Z założenia zapis INT(X) powinien iść w parze z opcją ZEROFILL. Konstrukcja:

CREATE TABLE `codes` (

`code` INT(5) ZEROFILL COMMENT 'kod, ktory zostanie dopełniony zerami'

)

To spowoduje, że gdy dodamy kod o wartości 1, to wynik zapytania zwróci nam 00001 (czyli cyfrę 1 uzupełnioną do 5 miejsc zerami – ZEROFILL). I tylko dlatego istnieje zapis INT(X), a nie z powodu ograniczenia długości pola danego typu numerycznego. Od tego mamy masę aliasów (jak SMALLINT czy TINYINT).

FLOAT czy DECIMAL/INT?

Jedną sprawę mamy wyjaśnioną. Teraz poważniejsza sprawa, która wpływa na wyniki zapytań bazy danych. Raz na jakiś czas zdarza mi się zetknąć z kodem, gdzie kwoty z faktur, rachunków są umieszczane w polach typu FLOAT. Wydaje mi się, że autorów takich konstrukcji popycha posługiwanie się tłumaczeniem FLOAT na język polski jako liczba zmiennoprzecinkowa. Człowiek widzi hasło „liczba … przecinkowa” i sądzi, że służy do zapisu ogólnie pojętych cen. Dlatego lepiej odwołać się do angielskich definicji, które moim zdaniem są jaśniejsze: float jest to liczba aproksymowana, czyli przybliżona. A najlepiej posłużyć się przykładem. Utwórzmy tabelę:

CREATE TABLE `invoice_record` (

`price` FLOAT NOT NULL

)

Następnie umieśćmy w niej dane z wartościami po przecinku, np. kwotę „29.99„. Cała operacja się powiedzie, a zapytanie SELECT zwróci nam odpowiednie wyniki. Oto nam chodziło. Na pewno?

W przypadku, gdy będziemy chcieli uzyskać faktury, które mają pozycje z ceną ”29.99” lub są większe równe to nie zobaczymy żadnych wyników. Dlaczego? Ponieważ jest to liczba zmiennoprzecinkowa, a prościej nieprecyzyjna. Nasze „29.99” wygląda tak naprawdę tak:

Czytaj dalej tutaj (rozwija treść wpisu)
Czytaj dalej na blogu autora...

Autor wpisu: Kamil, dodany: 25.04.2013 01:14, tagi: javascript, jquery

Często słyszę oburzenie przeciwników JavaScriptu, jakoby przez wieczne funkcje zwrotne (callbacks) JavaScript był prymitywnym i strasznym językiem narzucającym trudne do opanowania zależności i zagnieżdżenia kodu. Owszem, JavaScript ma wiele słabych stron i można mu sporo zarzucić, jednak sterowanie poprzez zdarzenia jest piękną cechą tego języka. Często można trafić na kod początkujących programistów JavaScript, przypominający ten [...]

Autor wpisu: zleek, dodany: 17.04.2013 12:04, tagi: javascript, jquery

Unia Europejska uszczęśliwiła nas przepisami, które wymuszają umieszczanie na stronie www informacji o polityce dotyczącej cookies, gdy strona korzysta z ciasteczek. W związku z tym stworzyłem gotowy skrypt, który będzie wyświetlał stosowne informacje na stronie www wraz z linkiem do polityki prywatności dla strony www. Skrypt jest tak skonstruowany, że w momencie zamknięcia informacji o [...]

Autor wpisu: JoShiMa, dodany: 15.04.2013 23:12, tagi: php, mvc, mysql, skrypty

Na jednym z forów trafiłam na świetną prezentację na temat programowania w PHP, w której autor podejmuje się pokazać różnice między programowaniem w PHP a klepaniem kodu nazwanym przez niego PHPowaniem. Błądzić jest rzeczą ludzką, ale najważniejsze by się umieć krytycznie przyjrzeć sobie. Na szczęście stać mnie na to, więc się sobie przyglądam. Od kilku [...] No related posts.
Wszystkie wpisy należą do ich twórców. PHP.pl nie ponosi odpowiedzialności za treść wpisów.