Od około dwóch lat uważam, że JavaScript to język w którym nie da się przyjemnie programować bez użycia frameworka typu jQuery. Przedtem uważałem, że w JavaScript nie da się w ogóle przyjemnie programować, więc nie trudno zauważyć jak bardzo jQuery zmieniło moje nastawienie w tym temacie. Z jQuery wiele rzeczy stało się prostszych i koniec.
W zeszłym tygodniu przyjrzałem się dokładniej innemu produktowi ze stajni jQuery: jQuery UI (User Interface). UI jest rozszerzeniem jQuery zawierającym serię pluginów, widgetów i efektów związanych z interfacem użytkownika (plus kilkanaście tematów graficznych). W zestawie dostajemy kalendarz, dialog, paletę kolorów, pasek postępu, przyciski, obsługę drag&drop, zakładki i jeszcze kilka innych rzeczy. Każdemu, kto musi zmagać z budową interface użytkownika po stronie JS, a jeszcze nie zapoznał się z jQuery UI polecam wizytę na stronie projektu i obejrzenie demosów poszczególnych efektów.
Paweł Zawodowo HTML, JavaScript, jQuery, Programowanie
Może i stare, ale im dłużej siedzę w tym biznesie, tym bardziej rzeczywiste i prawdziwe mi to się wydaje:

Źródło: http://www.eos-india.net/abhisek/
Paweł Zawodowo Dokumentacja, IT, Programowanie
Wstęp
MySQL jest chyba najpowszechniej używaną bazą danych w różnego typu aplikacjach internetowych: od portali, przez fora, blogi, gry i inne rodzaje stron. Dlaczego? Bo jest szybka, prosta, darmowa i się przyjęła. Oprócz ewidentnych zalet ma też serię wad: standardowy engine MyISAM nie jest transakcyjny, nie jest bezpieczny, przy zapisie blokuje całą tabelę, a nie pojedynczy rekord. Jakby tego jeszcze było mało, to w 95% procentach przypadków, właśnie baza MySQL jest wąskim gardłem całej aplikacji i to jej wydajność (szybkość przetwarzania zapytań) decyduje o wydajności całego rozwiązania. Pracując nad pewną aplikacją (Pulsar-Online), przez ostatni tydzień starałem się skupić właśnie nad sprawą wydajności MySQL na której oparty jest Pulsar i podzielić się swoimi spostrzeżeniami na ten temat.
Po pierwsze, specyfika aplikacji internetowych, a przynajmniej ich większość, więcej odczytuje z bazy danych, niż do niej zapisuje. UPDATE i INSERT stanowią mniejszość w porównaniu z liczbą wykonywanych SELECTów. Wydajność pobierania rekordów z bazy ma więc dość duże znaczenie.
Ogólnie
Zastanówmy się, jak MySQL pobiera dane z tabeli, jeśli wybrana tabela nie posiada indeksów na polach które uwzględnimy w zapytaniu (zarówno w JOIN jak i WHERE lub ORDER BY). Dla każdego zapytania skanuje od początku wszystkie rekordy w tabeli, aż warunek nie zostanie znaleziony. Jeśli nie uwzględnimy LIMIT, MySQL będzie skanował dalej, aż do końca tabeli. Co to dla nas oznacza? Wyjaśnię na przykładzie.
Czytaj więcej…
Paweł Wujek Dobra Rada, Zawodowo Bazy danych, MyISAM, MySQL, PHP, Poradniki, Programowanie, Pulsar Online, WWW
Przysiadłem dziś troszkę nad psDebug i przygotowałem nowy release. Zmian wiele nie ma, kosmetyka i usunięty jeden błąd związany z wyświetlaniem backtrace. Dodatkowo, dodałem kod źródłowy do repozytorium na sourceForge. I to tyle.
Wersję 0.6 można pobrać ze strony projektu na sourceForge.
Paweł Zawodowo Błędy, PHP, Programowanie, psDebug, Wyjątki
Jak iść w OpenSource, to iść w OpenSource. Od dziś klasa psDebug o której pisałem jakiś czas temu jest dostępna jako projekt na sourceForge. W najbliższym czasie postaram się o kawałek dokumentacji po angielsku.
Paweł Zawodowo Błędy, PHP, Programowanie, psDebug, Wyjątki
PHP, szczególnie od wersji 5 w górę jest całkiem przyjemnym językiem i swoimi możliwościami nie odstaje aż tak bardzo od C++, czy Java. Fakt, jest prostszy, ale odkąd działa w nim prawdziwa obiektówka i wyjątki, dobre programowanie stało się wygodniejsze.
Niestety, PHP nie jest pozbawione kilku niedociągnięć, czasami przeradzających się gigantyczny ból w tyłku. Jednym z nich jest niekonsekwencja zachowania funkcji na błędy. Część rzuca wyjątki, część rzuca błędy, a jeszcze inne zwracają FALSE lub NULL gdy coś nie idzie po ich myśli. Z tego powodu, sensowym wyjściem jest napisanie własnej funkcji obsługi błędów przekształcających je na wyjątki. A skoro można napisać coś takiego, to czemu od razu nie napisać własnej funkcji obsługi wyjątków i dodać kilka innych usprawnień?
Z tych powodów, bazując na klasie wfErrorHandler Grzegorza Godlewskiego, napisałem własną klasę obsługi błędów: psDebug. Jej główne cechy to:
- wszystkie błędy są przekształcane na wyjątki w celu ich późniejszego przechwycenia
- wyjątki które nie zostały przechwycone mogą być raportowane na następujące sposoby:
- elegancki komunikat dla użytkownika nie zawierający szczegółów
- pełny komunikat o błędzie razem ze ścieżką wykonania
- przesłanie w tle komunikatu o błędzie do phHelpdesk (który kiedyś wreszcie opublikuję jako OpenSource)
- dodatkowe funkcje wspomagające obsługę błędów
Czytaj więcej…
Paweł Projekty, Zawodowo Błędy, PHP, Poradniki, Programowanie, psDebug, Wyjątki
Właśnie. Czy w ZUS można normalnie? Na tak postawione pytanie część osób która miała styczność z tą instytucją pewnie odpowie: nie. Ja też tak uważałem, lecz w piętek częściowo zmieniłem zdanie.
Zacznijmy od początku. Prowadzę firmę, więc co miesiąc odprowadzam do ZUS pewną kwotę pieniędzy. Pieniędzy, których pewnie nigdy w życiu nie zobaczę. Ale mus to mus, więc płacę i nie marudzę za bardzo. Do tej pory miałem to szczęście, że płaciłem stawkę “promocyjną” (w sumie około 300zł miesięcznie). Promocja jednak się skończyła i czas płacić pełną najniższą stawkę (około 740zł). Zakładałem, że skoro kończy się promocja, to raz wyślę ZUS-DRA i będę miał problem deklaracji z głowy (skoro tylko zmieniają się stawki). Okazało się, że nie jest to jednak takie proste. Przez przypadek, odbierając druki deklaracji ZUS-DRA, dowiedziałem się, że nie wystarczy zacząć płacić więcej. Najpierw trzeba się wyrejestrować, później zarejestrować ponownie, raz wypełnić DRA i dopiero wtedy można płacić co się ZUS należy. Moim zdaniem absurd. Gdy podzieliłem się tą myślą z osobą wydającą druki, zostałem odesłany na salę obsługi klientów.
Czytaj więcej…
Paweł Trudno powiedzieć / inne, Zawodowo Przemyślenia, ZUS