Po-słowie na każdy temat

czyli programowanie i nie tylko

WordPress, wordpress, wordpress …

Nadszedł czas na co najmniej dziwny artykuł. Długo się zastanawiałem, czy go opublikować, ale przez apogeum irytacji, jakie osiągnąłem w związku z problemem, jakiego dotyczy, decyzja mogła być tylko jedna. Zatem rzecz ma się o WordPress’ie, dzięki któremu widzisz ten blog. Ciekawe, nieprawdaż?

Wordpress

Otóż pewne zimowego wieczoru postanowiłem (mając wyłącznie przyjemne doznania po wcześniejszych aktualizacjach) zaktualizować ten blogowy CMS do wersji 3.8. Wszystko przebiegło z powodzeniem, ale tylko pozornym. Nieświadomy sytuacji zostawiłem w ówczesnym stanie blog i zbagatelizowałem ją. Tutaj zaczyna się niemiła przygoda. Otóż wszyscy czytelnicy, bez względu na prędkość internetu odczuwali drastyczny spadek prędkości ładowania strony. W moim przypadku dopiero po 90 sekundach strona rozpoczęła ładowanie. Pomyślałem – to nie dzieje się naprawdę. A jednak! Zniesmaczony ochoczo udałem się do wujka, wujka Google. Okazało się, że wujek jest w temacie. Przewijało się mnóstwo wpisów, artykułów, zapytań dotyczących spowolnienia WP3.8. Pomijając przedstawione propozycje, wykonałem aktualizację do najnowszej wersji – z nadzieją, że Twórcy rozwiązali „jakiś” problem, będący przyczyną – WP3.8.1. Chcesz wiedzieć co się stało później?  Czytaj dalej…

MySQL – client crash – o co chodzi w HeidiSQL?

Każdy z programistów ma własne typy klientów bazodanowych do wprowadzania zmian w zasobach danych pisanej/ych aplikacji. Dla wielu jest to zapewne stary, zasłużony phpMyAdmin, a inni mają bardziej wyszukane propozycje. Jak się domyślacie, sam należę do tej drugiej grupy. W związku z tym proponuję wykorzystanie HeidiSQL.

heidisql_logoJednak każdy kij ma dwa końce. O ile praca z ww. klientem bazodanowym jest bardzo intuicyjna, sprawna i … w ogóle, o tyle zdarzają się czasami problemy, oj poważne problemy dla osób „świeżych” w branży. Chodzi o blokadę krotki w tabeli, na której wykonywaliśmy pewne operacje. W przypadku, gdy nastąpi błąd na pewnej krotce i nieumiejętnie napisaliśmy zapytanie (bądź korzystaliśmy z graficznego interfejsu klienta, który nie zapewnia obudowy transakcyjnej), w pewnych okolicznościach może dojść do pospolitego zawieszenia aplikacji. A i nie myślcie, że wówczas restart klienta wystarczy. Oj nieee 🙂 Byłby to bajkowy świat i spowodowałby, że nie czytalibyście tego wpisu. Wtedy to akurat świat mści się na nas nie pozwalając wykonać żadnej operacji na wskazanej krotce i na domiar złego – zawsze!

Czytaj dalej…

Google Maps + geolokalizacja

Znowuż strudzony codziennością i poirytowany brakiem czasu próbuję stworzyć wrażenie, że nie zaniedbuję czytelników. Spodziewam się, że tylko ciekawy artykuł może temu zaradzić. Zatem zapraszam do lektury. W niej geolokalizacja po IP i temat map.

Google-Maps-icon

Google Maps – czy jest jakiś czytelnik, który nie spotkał się z tą aplikacją Google? Domyślam się, że nie (śmiałe przekonanie). Jednak, jeśli chodzi o wykorzystywanie API w zewnętrznych aplikacjach, to ten procent czytelników maleje.

Z kolei, jeśli chodzi o geolokalizację, to z pomocą przychodzi z pomocą FreeGeoIP. Jest to rozwiązanie darmowe, jedno z nielicznych. Jeśli potrzebujemy dokładniejszych danych geolokalizacyjnych możemy skorzystać opcji płatnych, jakie dają m.in.: IPLigence, IPAddressLabs, IPInfoDB.

Czytaj dalej…

GIT – zmuszamy .gitignore do działania

Ruszamy zatem moi drodzy z cyklem artykułów w nowym roku 2014. Na początek krótki wpis, dotyczący systemu zarządzania wersjami GIT. Zajmiemy się ciekawym przypadkiem, który wśród początkujących użytkowników spędza sen z powiek. Mowa o sytuacji, kiedy w repozytorium „wersjonujemy” plik, który chcemy rozpocząć ignorować podczas wprowadzania zmian do systemu (commit). Cóż zrobić, gdy po odpowiednim uzupełnieniu .gitignore nie widać oczekiwanych rezultatów? Co uczynić, gdy nadal widnieje on w poczekalni przed commitem? Czytaj dalej…

Gource od podstaw

Witam wszystkich po małej przerwie, za którą przepraszam. Niemniej czasami ciężko pogodzić życie zawodowe, prywatne … i bloga. Mimo, że nie stanowiło to problemu dotychczas, teraz w natłoku przygotowań do Świąt, staje się to rzeczywistością.

Jednak do rzeczy. Dzisiaj będzie mowa o pewnym narzędziu, aplikacji, o której zapewne większość z Was nie słyszała. Względnie słyszała, jednak nie praktykowała z nią zbyt długo. Sam natknąłem się przez przypadek. Mowa o Gource! Czym jest to cudo?

Jest to aplikacja konsolowa, która generuje nam wizualizację zmian, zachodzących w repozytorium. Możemy wybrać określoną gałąź (dendrolodzy się skuszą :)) lub domyślnie pozwolić generatorowi przeczytać całego loga systemu kontroli wersji. Powstaje w domyśle piękna animacja – film – przedstawiający zmiany jakie zachodziły z biegiem czasu w projekcie. Wspiera takie systemy kontroli wersji, jak GIT, Mercurial, Bazaar, SVN, CVS. Posiada otwartą licencję GNU GPL v3. Gource pozwala nam cieszyć się wizją powstawania naszego dzieła. Już nie będę się rozpływał na programem 🙂 – zapraszam do dalszej części artykułu, gdzie wraz z przykładami zobaczymy, jak to ugryźć. Czytaj dalej…

JavaScript – CryptoJS

Tym razem mało odkrywczy artykuł. Chociaż dla osób, którzy poszukują sposobu szyfrowania po stronie JavaScriptu może okazać się bardzo pomocny. Rzecz rozchodzi się o bibliotekę CryptoJS, która oferuje nam funkcje skrótu, algorytmy szyfrujące, HMAC i inne. Biblioteka jest darmowa, rozprowadzana na licencji New-BSDco pozwala na dowolne wykorzystanie w aplikacjach internetowych.

Biblioteka udostępnia nam algorytmy mieszające (haszujące, in. funkcje skrótu) takie, jak MD5, SHA-1, SHA-2, SHA-3 oraz RIPEMD-160. Każda z funkcji rozszerzona jest o HMAC, czyli kod MAC z wmieszanym tajnym kluczem pozwalającym utrzymać zarówno ochronę integralności, jak i autentyczności danych.

cryptoPakiet został rozszerzony o funkcję PBKDF2 ściśle powiązaną z generowaniem ciągów kluczowych przy wykorzystaniu soli oraz wielokrotnego zastosowania funkcji skrótu. Nie tyle akurat ta funkcja, w opisywanej bibliotece jest godna uwagi, ale samo podejście do generowania klucza. W obecnych czasach bardzo dynamicznego rozwoju technologicznego wszelkie utrudnienia w umożliwieniu odgadnięcia hasła wejściowego są nie tyle zalecane, co konieczne.

Poza funkcjami skrótu pakiet CryptoJS oferuje również kryptograficzne algorytmy szyfrujące. Na liście w obecnej wersji jest AES, DES, 3DES, Rabbit, RC4, RC4Drop. Czytaj dalej…

JavaScript – funkcja isInt()

jsNiekiedy może wydawać się, że w JavaScripcie jest wszystko, ale to tylko złudzenie. Bardzo podstawowym przykładem, który warto tutaj przytoczyć, jest sprawdzanie czy zmienna jest typu integer. Przedstawiam funkcję isInt(), której zadanie polega na interpretacji zmiennej w tym kontekście. O tym właśnie jest ten krótki artykuł. Wydawać się może, że podstawowe sprawdzenie typu zmiennej może być łatwe i przyjemne. Niekoniecznie.
Czytaj dalej…

Framework Yii – przechowywanie stałych PHP

yiiProgramowanie w PHP bez ustrukturyzowania aplikacji wymagało niegdyś sporo wysiłku. Teraz część zadań wykonują za nas frameworki. Oprócz wbudowanego MVC (alternatywnie MVP lub pochodnych) otrzymujemy wraz z szablonem szereg klas pomocniczych, nierzadko mnóstwo komponentów, wsparcie techniczne na forach publicznych powiązanych ze stroną domową frameworku, a także mnóstwo wtyczek funkcjonalnych. To wszem i wobec wiadomo. Yii posiada bardzo rozbudowaną dokumentację (również w języku polskim), dlatego nie będę się rozwodzić o tworzeniu aplikacji na podstawie szablonu. Dzisiaj rozwiążemy problem zmiennych/stałych globalnych wewnątrz aplikacji Yii.  — Czytaj dalej…

„Mroczny” Eclipse

eclipse

Trochę odpoczęliście ode mnie. Zatem czas coś napisać i zaciekawić niektórych czytelników. Dzisiaj artykuł w całości poświęcony narzędziu Eclipse, bardzo popularnemu programowi wśród programistów Javy, ale też … PHP. Nie dziwcie się – sam pracuję z sukcesem przy systemach PHP na platformie Eclipse. Na razie w wersji Juno, ale niedługo przesiadam się na Keplera.

Do rzeczy. Pewnego dnia spojrzałem na Eclipse’a z daleka i pomyślałem: „prymitywnie wygląda, razi jaskrawością, męczy oczy”. Skoro tak to trzeba było znaleźć rozwiązanie. Głównie zależało mi na oczach. Gdy programuje się często „do poduszki” to w ciemności biel 80% ekranu, jaką serwował Eclipse podczas użytkowania źle wpływała na organizm. I tak powstała nić przyczynowo-skutkowa, która doprowadziła do rozwiązania jakim jest zmiana tematu i kolorów edytora. Świetna sprawa, tym bardziej, że wspierana natywnie przez aplikację.  Czytaj dalej…