Wykorzystaj dobrze czas, który chcę Ci podarować.
Programowanie
Days since Unix epoch
Nov 24th
Potrzeba wygenerowania liczby sekund od początku epoki UNIX-a zdarza się często. W Internecie nie trudno znaleźć informacje jak zdobyć taką liczbę w różnych językach programowania. Liczbę sekund można uzyskać także online na http://www.epochconverter.com/. Ostatnio jednak robiłem wpisy do pliku /etc/shadow w Solaris 10. Aby określić wygasanie konta, należy ustawić odpowiednią wartość na 8 pozycji w wierszu w postaci liczby dni od 1 stycznia 1970. [1] Tak więc jeśli chcemy, aby konto wygasło dnia 20.07.2013 musimy tam ustawić wartość 15906. Tylko skąd ja to wziąłem? Policzyłem na piechotę? Z pomocą przyszły dwie funkcje dostępne w PHP.
print floor(mktime(12,0,0,$MONTH,$DAY,$YEAR)/86400); //Zwroci liczbe dni od daty zasanej zmiennych $DAY, $MONTH oraz $YEAR print floor(time()/86400); //Zwroci liczbe dni od 01.01.1970 do dzis
Gotowy generator mojego autorstwa możesz znaleźć tutaj:
[1] shadow(4) – shadow password file, http://docs.sun.com/app/docs/doc/816-0219/6m6njqbc2?a=view
Symulacja działania sieci SMO w języku Modsim
Feb 24th
Z góry zaznaczam, że w poniższym artykule nie zamieściłem kursu Modsima, ani opisów użytych w programie rozwiązań. Szanuję swój czas, a sądzę, że trochę by mi to zajęło. Nie mniej jednak publikuję moją pracę, ponieważ uważam, że sama w sobie jest dość dużą pigułką wiedzy, a na pewno też cennym materiałem dla studentów WAT. Przechodząc do meritum, Modsim jest procesowym językiem symulacyjnym zorientowanym obiektowo. W poniższym artykule postaram się przedstawić sposób rozwiązania problemu symulacji działania sieci SMO z poniższym schematem:

Parametry zadania:
- Generator z rozkładem: normalnym
- Gniazdo1 z rozkładem: jednostajnym, 3 kanały
- Gniazdo2 z rozkładem: trójkątnym, 4 kanały
- Gniazdo3 z rozkładem: Weibulla, 1 kanał
- Kolejka1: LIFO, ograniczona (możliwe straty)
- Kolejka2: Priorytetowana, nieograniczona
- Kolejka3: FIFO, ograniczona (możliwe straty)
Windows 7 – uszkodzony plik Excel generowany przez PHPExcel 1.7.0
Oct 8th
Jeśli do tej pory webdeveloperzy, którzy generują pliki Excel w wersji Ms Excel 2003 (.XLS) przy pomocy PHPExcel w wersji 1.7.0 byli zadowoleni z działania tego pakietu mogą być niemile zaskoczeni podczas próby otwarcia wygenerowanego arkusza pod kontrolą nowego systemu Windows 7.
UMS 0.1 – System Zarządzania Użytkownikami (PHP)
Sep 26th
Po kilku dniach pracy postanowiłem wydać do testów, pierwszą rozwojową wersję aplikacji webowej UMS (User Management System).
Strona domowa projektu
http://piotr.kwiatek.org/projekty/ums
Jako, że jest to pierwsze wydanie pozwolę sobie napisać nieco więcej. Kolejne wpisy tego dziennika zmian będą miały charakter skromnego changelog’a z opisem poprawek i nowych funkcji, które zostały wprowadzone.
Dlaczego aplikacja powstała?
System powstał na potrzeby jednej z firm, dla której pracuję, jednak prawa do aplikacji zatrzymałem dla siebie, dzięki czemu wszyscy możecie z niej korzystać zgodnie z warunkami licencji, pod którą została wydana.
Cele
Aplikacja ma za zadanie spełniać podstawowe funkcje panelu zarządzania użytkownikami oraz monitorować aktywność użytkowników na stronie internetowej. Dla przedsiębiorcy, który zamówił u mnie tą aplikację najważniejszym z celów było zabezpieczenie strony internetowej przed dostępem osób trzecich, a udostępnienie jej na hasło wybranym agencjom. Dzięki takiemu rozwiązaniu właściciel witryny może kontrolować:
- który użytkownik najczęściej przegląda witrynę
- jakie strony odwiedzał użytkownik, oraz który produkt najczęściej przegląda
- jakie produkty są najczęściej przeglądane ogółem
A także korzystając z panelu zarządzania użytkownikami może kontrolować dostęp konkretnych użytkowników wykorzystując mechanizmy banowania oraz zmiany hasła.
Zalety
- Darmowy
- Łatwy w instalacji
- OpenSource
Jak to działa? (DEMO)
- Panel logowania: http://webmaster.kwiatek.org/umsdemo/
- Panel administracyjny: http://webmaster.kwiatek.org/umsdemo/ums/
- Hasło dostępu do panelu administracyjnego: umsdemo
Pobierz tą wersję
System obsługi totolotka (ASP.NET, C#)
May 29th
Wymagania funkcjonalne aplikacji internetowej do obsługi totolotka.
- dodawanie wyników kolejnego losowania (dostępne po zalogowaniu),
- zobrazowania wyników wszystkich losowań w postaci tabelarycznej,
- przedstawienie statystyki wystąpienia danego numeru w ostatnich n-losowaniach,
- przedstawienia statystyki najczęściej wylosowanych numerów w ostatnich n-losowaniach,
- przedstawienia statystyki najrzadziej losowanych numerów w ostatnich n-losowaniach,
- wygenerowania określonej liczby zestawów numerów uwzględniając kryteria z dwóch poprzednich punktów,

Powyżej miniatura strony głównej systemu imitującego system obsługi totolotka.
Funkcja sprawdzająca poprawność (parsująca) adresu IP
May 28th
Zamieszczam napisaną w języku C funkcję do sprawdzania poprawności (parsowania) adresu IP. Funkcja nie korzysta z wyrażeń regularnych, tak więc nie potrzeba załączać do programu żadnych dodatkowych bibliotek. More >
PHP – pobieranie adresu MAC
Nov 2nd
Wielu administratorów sieci LAN wprowadza filtrację adresów MAC i ustawia reguły przydzielania adresów IP w zależności od adresu fizycznego karty sieciowej. W małych sieciach można zrobić to “na piechotę”, jednak tam gdzie pracuje ponad 200 leniwy inżynier stara się ułatwić sobie życie.
Systemy operacyjne – komunikacja międzyprocesowa
Jun 28th
Opracować zestaw programów typu producent – konsument realizujących przy wykorzystaniu mechanizmu kolejek komunikatów następujący schemat komunikacji międzyprocesowej:
- Proces 1: czyta dane (pojedyncze wiersze) ze standardowego strumienia wejściowego i przekazuje je w niezmienionej formie do procesu 2.
- Proces 2: pobiera dane przesłane przez proces 1. Oblicza ilość znaków w każdej linii i wyznaczoną liczbę przekazuje do procesu 3.
- Proces 3: pobiera dane wyprodukowane przez proces 2 i umieszcza je w standardowym strumieniu wyjściowym. Każda odebrana jednostka danych powinna zostać wyprowadzona w osobnym wierszu.
Należy zaproponować i zaimplementować mechanizm informowania się procesów o swoim stanie. Należy wykorzystać do tego dostępny mechanizm sygnałów i łączy nazwanych (kolejek FIFO). Scenariusz powiadamiania się procesów o swoim stanie wygląda następująco: do procesu 3 wysyłane są sygnały . Proces 3 przesyła otrzymany sygnał do procesu macierzystego. Proces macierzysty zapisuje wartość sygnału do kolejek FIFO oraz wysyła powiadomienie do procesu 1 o odczytaniu zawartości kolejki FIFO. Proces 1 po odczytaniu sygnału wysyła powiadomienie do procesu 2 o odczytanie kolejki FIFO. Proces 2 powiadamia proces 3 o konieczności odczytu kolejki FIFO. Wszystkie procesy powinny być powoływane automatycznie z jednego procesu inicjującego.
Dodatkowo trzeba zapewnić, aby wszystkie procesy oprócz Procesu 3 miały ignorowały wysyłane z zewnątrz sygnały SIGTERM, SIGTSTP, SIGCONT. Sygnał stopu (pauzy) powinien zatrzymywać czytanie wierszy, a po wznowieniu sygnałem kontynuacji czytanie powinno zostać dokończone. Natomiast sygnał SIGTERM nie powinien przerwać czytania wierszy – cały proces powinien zostać dokończony i po zakończeniu czytania i wypisywania program powinien się zakończyć.
Dla łatwiejszego zrozumienia zasady działania powyższego programu stworzyłem diagram pokazujący jak będą komunikować się procesy.
Program do pobrania:
Drzewo procesów – funkcja fork();
May 21st

Zaprojektować drzewo procesów przedstawione na powyższym grafie. Wypisać parametry procesu według szablonu:
P(nr_procesu) ID:(id_procesu) PID:(id_rodzica) OFFSETs:(id_dzieci)
Projekt i implementacja sklepu internetowego
Jan 17th
Stworzona przeze mnie aplikacja sklepu internetowego z faktu, iż została napisana w języku C++ jest jedynie symulatorem prawdziwych systemów sklepów internetowych napisanych np. w języku PHP z wykorzystaniem bazy danych np. MySQL. Założeniem moim było, aby zaprojektować w aplikacji wszystkie podstawowe funkcje sklepu internetowego:
- funkcje dostępne dla klienta: wyświetlanie wszystkich produktów, wyszukiwanie produktów, kupowanie, rejestracja, logowanie, koszyk (lista zamówień)
- funkcje dostępne z poziomu administratora: wyszukiwarka, wyświetlanie produktów, dodawanie produktów, sortowanie, lista zamówień klientów, edycja produktów w bazie, logowanie do panelu administratora.
- funkcje bazy danych spełniają pliki: magazyn.txt (baza produktów), users.txt (baza klientów), zamowienia.txt (baza zamówień).
Pobierz:
- Symulator sklepu internetowego (0,5MB)
- Sprawozdanie (PDF) (0,2MB)

Zawodowo inżynier informatyk, administrator sieci IT, programista, webdeveloper. Prywatnie przeciętny facet usiłujący spełnić kilka swoich marzeń. Strona powstała po to, aby podzielić się z Wami moimi osiągnięciami. Zapraszam ;)
