Linkdump #50: Co za font!

Czym byłyby nasze programy, strony internetowe, skrypty i inne twory wyobraźni, gdyby nie czcionki, które wdzięcznie wyświetlają powierzoną im treść? Na to pytanie nie ma jednoznacznej odpowiedzi, aczkolwiek każdy zgodzi się, że gdyby nie mnogość krojów pisma, nie bylibyśmy w stanie tak zręcznie sterować wyglądem produktu, sugerując użytkownikowi końcowemu niewerbalne znaczenie danego tekstu. Dlatego dzisiejszy Linkdump po raz kolejny jest poświęcony właśnie czcionkom, które dają nam tego typu możliwości.

Windows, PHP, Cygwin, bash: Wykonywanie poleceń w konsoli.

Pracując z wieloma technologiami codziennie zachwycamy się możliwościami różnego rodzaju oprogramowania. Kolejne wersje funkcji, bibliotek, frameworków to bezsprzecznie nasz żywioł, w którym słychać tylko głosy mówiące: “a widziałeś, co nowego wprowadzono w wersji 2.0?”. Oczywiście rozwój pojedynczych narzędzi jest ważny, aczkolwiek należy mieć na uwadze fakt, iż najpiękniejsza w tym wszystkim jest harmonia, którą osiąga dopiero zbiór różnych elementów świata oprogramowania, który współpracuje ze sobą. W dzisiejszym wpisie chciałbym zaprezentować prosty sposób na zachęcenie do współpracy języka PHP z powłoką bash.

Redmine: Jak połączyć użytkowników SVN z użytkownikami projektu?

Od dłuższego czasu jestem bardzo zadowolonym użytkownikiem systemu zarządzania projektami Redmine. Pomimo tego, że jest on napisany w Ruby, używa się go bardzo wygodnie, w miarę bezproblemowo można go także skonfigurować według własnych wymagań. Jednym z problemów jest jednak dosyć niestandardowe rozmieszczenie linków do niektórych funkcji systemu, przez co o niektórych możliwościach nie wiemy lub dowiadujemy się przypadkiem. W moim przypadku takie “przypadkowe” trafienie na stronę zawierającą interesujące ustawienia zdarzyło się dzisiaj z samego rana, a więc jeszcze ciepłe przekazuję Wam.

Linkdump #49: Symfonia symfony 1.x / Symfony2.

Pomimo raczej niezbyt odległej w czasie premiery stabilnej wersji Symfony2 wiele istniejących aplikacji zostało napisanych w pierwszej wersji tego frameworka i niestety przeniesienie ich na “dwójkę” nie jest możliwe z wielu powodów. W związku z tym, że pomimo tego, że ekscytujemy się nowymi możliwościami w kodzie, nadal musimy utrzymywać te starsze, dzisiejszy Linkdump chciałbym poświęcić zarówno Symfony2, jak i symfony 1.x, z którym będziemy mieli do czynienia jeszcze przez co najmniej parę lat. Zobaczmy, co można “wycisnąć” z obu wersji tego frameworka.

PHP: Sprawdzanie rozdzielczości pliku graficznego.

Kilka dni temu trafiłem na pytanie o pomoc w przeskalowaniu obrazka do uploadu na pewnej stronie internetowej. Pomyślałem sobie: “kurczę, znowu ktoś nie umie takich podstawowych rzeczy”, aczkolwiek w opisanych wymaganiach znalazły się nie tylko informacje na temat docelowego rozmiaru, ale także rozdzielczości. Nauczony doświadczeniem zasugerowałem, żeby ten ostatni parametr zostawić w spokoju, ponieważ “i tak go nie sprawdzą”. W odpowiedzi dostałem jednak informację, że właśnie dlatego próby samodzielnej zmiany wymiarów nie przechodzą walidacji formularza. Stwierdziłem, że warto będzie zobaczyć, w jaki sposób można sprawdzić taki parametr na własną rękę.

WAMPServer, PHP: Problem z aktywacją rozszerzenia php_intl.

W przypadku wielu programów ich twórcy chwalą swoje produkty jako działające bezbłędnie, mimo nieustannych prób użytkownika skierowanych w stronę zakłócenia tego błogostanu. O ile zdecydowana część tychże spełnia wspomniane warunki, o tyle kosztem osiągnięcia takiego celu jest głównie poprawność działania wyłącznie w zakresie podstawowych funkcji. Jeśli użytkownik zechce zrobić coś bardziej zaawansowanego - wtedy zaczynają się schody. W dzisiejszym wpisie chciałbym omówić jeden taki problem związany ze stosem WAMP, jakiego sam używam, czyli WAMPServerem.

Linkdump #48: Poczytajmy... sobie.

W karierze programisty ważne jest, aby ciągle rozwijał się poprzez lekturę różnego rodzaju materiałów dotyczących technologii, z jakich korzysta w pracy. Dlatego w serii Linkdump pojawiają się serie linków dotyczących narzędzi wykorzystywanych podczas tworzenia stron internetowych. Czasem jednak warto też spojrzeć na inne artykuły, pozwalające na wzniesienie się ponad typowe problemy z kodem i zobaczenie większej całości, dzięki której można o wiele lepiej zrozumieć cel, do którego dążymy. Zapraszam do lektury dzisiejszego zbioru linków poświęconych właśnie tej tematyce.

(My)SQL: Aktualizowanie pola typu TIMESTAMP.

Oprogramowanie komputera zawiera w sobie wiele pułapek, o których trzeba wiedzieć, żeby w nie nie wpaść. Szczęśliwym trafem jeszcze nie miałem okazji cierpieć przez opisywany dzisiaj problem - przeczytałem o nim podczas poszukiwania informacji na temat innego, który już opisałem na niniejszym blogu. Serwer SQL, a dokładnie MySQL, to jedno z najpopularniejszych rozwiązań tej klasy, a co za tym idzie pewnego rodzaju standard. W dzisiejszym wpisie chciałbym pokazać jeden z problemów, na jaki możemy się natknąć podczas pracy z bazą danych opartą właśnie o niego.

PHP: Dzielenie stringa według separatora z wyłączeniem znaku ucieczki.

Szukałem ostatnio szybkiego sposobu na podzielenie stringa według jednoznakowego separatora, aczkolwiek w taki sposób, by omijał jego “escape’owaną” formę. W ten sposób mógłbym np. parsować pewne dane tekstowe równocześnie umożliwiając wykorzystanie separatora w samym tekście. Zadanie teoretycznie nie wydawało się trudne, aczkolwiek faktyczne rozwiązanie okazało się co najmniej “nietrywialne”. W dzisiejszym bardzo krótkim i treściwym wpisie chciałbym podzielić się z Wami znalezionym przeze mnie rozwiązaniem.

Linkdump #47: WordPress, Jaśnie Panie!

Wśród gotowych rozwiązań dostępnych na rynku oprogramowania open-source niewiele jest skryptów, które można określić mianem “kultowych”. Bezsprzecznie WordPress jest jednym z nich, ponieważ od lat zdecydowana większość ludzi związanych, lub chcących rozpocząć swoją przygodę z blogowaniem wybierają tą właśnie platformę. W dzisiejszym Linkdumpie, zgodnie z postulatem opublikowania czegoś więcej o tym właśnie skrypcie, “Pan Kowalczyk” publikuje specjalnie dla Pana Charliego. ;]