Obsługa danych binarnych w PHP

W swojej pracy, jako programista PHP, zdarzało mi się, że zachodziła potrzeba komunikacji na poziomie tegoż języka z aplikacją stworzoną na przykład w C, czy C++. Zazwyczaj „rozmowa” z takim programem odbywała się na podstawie socketów, nazywanych po polsku gniazdami. Niestety, nie da się ukryć, że różnice między językami z grupy C i PHP są, mimo podobnego kodu, ogromne. O ile odczytywanie struktur, bo zazwyczaj w takim formacie przesyłane są dane w strumieniach języków pokroju C, C++, czy C#, jest banalnie proste, bo po prostu do pamięci wczytujemy bezpośrednio to, co otrzymaliśmy, o tyle w PHP jest pozornie mały, ale praktycznie ogromny problem: w tym języku nie istnieją struktury. Sam fakt, że ten typ zmiennych nie istnieje w języku, o którym będzie mowa w tym artykule, nie jest jedynym problemem: również w przeciwieństwie do wcześniej wspomnianych języków programowania, nie jesteśmy w stanie wczytać do pamięci surowych, binarnych danych, musimy je zdekodować, czyli, jak to jest nazwane w PHP, rozpakować.
read more »

HP Compaq T5135 – mini serwer domowy

Z pomijalnych względów okazało się, że potrzebuję kupić router z wsparciem modemów 3G i udostępniający Internet przez WiFi oraz kabel Ethernetowy. Przeglądając oferty okazało się, że wydać bym musiał na takowy około 150-200 PLN. Na swoje szczęście przez przypadek natknąłem się na ofertę używanego terminala HP Compaq T5135 za 73 PLN w sklepie AMSO.PL(polecam go zresztą). Czym jest takowy terminal? Jest to mały komputerek oparty na mało prądożernych podzespołach. Terminale zazwyczaj posiadają dyski Flash do jednego gigabajta pojemności. Model, którym się zainteresowałem, ma procesor VIA Eden 400Mhz(w pełni zgodny z architekturą x86, więc nie trzeba się bawić w kompilację co krok, jak to jest na przykład w ARMach), 128 MB pamięci i 64 MB pamięci flash. Od razu zainteresowała mnie ta oferta, ponieważ prądu pobiera to niedużo więcej(łącznie 20W około) niż zwykły router, a daje mi ogromne możliwości w połączeniu z modemem 3G i kartą WiFi wspierającą tworzenie AccessPointów, które już miałem. Okazało się, że taki komputerek bez problemu spełni rolę małego, bezgłośnego(posiada chłodzenie pasywne) i taniego w utrzymaniu serwera domowego, należy jedynie dokupić do niego dysk. Tutaj pojawia się mały problem, aczkolwiek sprzęt ten posiada złącze IDE 44pin(identyczne jak w laptopowych dyskach ATA 2,5″). Dyski, które pasują do takiego terminala są już przestarzałe, a więc i drogie, więc osobiście zdecydowałem się do tego nabyć dysk 80GB 5400RPM z 8MB cache’u ze złączem SATA(również używany), który umieszczę w jakiejś taniej, bo w końcu i tak będzie tylko leżała w miejscu, obudowie USB. Dysk okazał się niestety ciutkę droższy od samego sprzętu, co trzeba przyznać ciekawie wygląda w formularzu zamówienia, bo kosztował 79 PLN. Obudowę USB nabyłem w lokalnym sklepie komputerowym za 29 PLN. Z przesyłką całość wyniosła mnie równiutko 200 PLN. Wstępu by było na tyle, teraz przejdę do krótkiej recenzji tego sprzętu.

read more »

Nigdy więcej szablonu z ThemeForest

Pracując nad pewnym projektem, przez przypadek wyrzuciłem sobie(będąc pewien, że mam backup) szablon panelu administracyjnego dla tego systemu, nad którym pracowałem na szczęście jak na razie tylko 2 dni. Ze względu na to, że mam napięte, jak dla mnie ze względu na małą ilość „wolnego” czasu, terminy, postanowiłem skorzystać z szablonów panelów administracyjnych, które można kupić w ThemeForest.
read more »

PHP

Szybki start z Doxygen w PHP

Kiedy potrzebujemy, aby projekt był rozwijany przez więcej niż jedną osobę, zachodzi potrzeba wykonywania dodatkowych czynności. Jedną z nich jest pisanie dokumentacji dla kodu. W przypadku PHP, bo o nim będzie dalsza część artykułu, najszerzej stosowany jest phpDocumentor. Ma on jedną wielką zaletę: jest dostosowany do potrzeb PHP w stu procentach. Ma swoje mankamenty, ale o tym nie dzisiaj. Dzisiaj o świetnej, ciągle rozwijanej(w przeciwieństwie do phpDocumentor) alternatywy tego projektu, którą jest Doxygen. Jego głównym zadaniem jest generowanie dokumentacji dla projektów C i C++, lecz, dzięki podobieństwu składni PHP do C++, można go z powodzeniem używać do dokumentowania kodu PHP. Dzięki dużej zgodności składni komentarzy phpDocumentor i Doxygen, nie musisz się martwić, że przez tę zmianę utracisz szczegółowe podpowiedzi kodu w swoim IDE. Warto mieć na uwadze, że w poniższym artykule nie znajdują się wszelkie możliwe sposoby na wykonanie jednej i tej samej rzeczy, aby nie przerazić początkujących.
read more »

Strony: 1 2 3 4 5

Kwota słownie

Podczas generowania różnego rodzaju dokumentów, jak choćby blankiety wpłaty pieniędzy, czy faktur, napotykamy się na problem generowania słownej prezentacji kwoty. O ile wypełniając takie rzeczy ręcznie nie jest to trudne oraz oczywiście jeżeli ktoś nie ma problemów z pisownią na przykład „sześćset”(ile to razy widziało się mandaty czy inne rzeczy z napisem „szejset”), o tyle tworząc takie rzeczy, chcemy zautomatyzować jak najwięcej procesów. Głupstwem byłoby tworzenie ręcznego wprowadzania kwoty słownie, więc w każdym projekcie dochodzi się do zagadnienia generowania słownej reprezentacji kwoty. Od razu spieszę z pomocą. Mianowicie: stworzyłem klasę, która pozwala wygenerować ten zapis aż do kwoty 999 999 999 zł 99 gr. W Internecie można spotkać się z klasami do bilionów, trylionów itd., lecz powiedzmy sobie szczerze: kto to wykorzysta? Są to sporadyczne przypadki, gdzie już programista może się minimalnie bardziej zmęczyć i dopisać obsługę większych kwot, co przy już gotowym kodzie tysięcy i milionów, byłoby kwestią pięciu minut.
read more »