Przejdź do głównej zawartości

Posty

DeliveryServer - DynaMents - Pobranie ścieżki węzła/liścia

Ostatnio zmagałem się z problemem pobrania ścieżki węzła/liścia w języku DynaMents, który używany jest po stronie DeliveryServer'a. W XSLT można tego dokonać stosując: <xsl:value-of select= "name()" /> Po długich bojach, udało mi się to osiągnąć przy pomocy DynaMent'u attribute działającego w trybie read . W DynaMencie tym można podać atrybut value . W atrybucie tym można podać 3 różne wartości, są to: value - pobierana jest wartość węzła/liścia, path - pobierana jest ścieżka węzła/liścia, name - pobierana jest nazwa węzła/liścia.  Listing poniżej przedstawia kod, który wypisuje wszystkie ścieżki węzłów z globalnej zmiennej REQUEST wraz z wartościami znajdującymi się w węzłach. Linia 3 tego listingu odpowiada za wypisanie ścieżki węzła. 1. <rde-dm:attribute type= "children" mode= "for-each" alias= "reqAttr" source= "request" > 2. <rde-dm:attribute attribute= ...

XSLT 1.0 - lowercase i uppercase

 XSLT 2.0 udostępnia dużo więcej wbudowanych funkcji niż wersja 1.0 tego standardu. Są to między innymi funkcje lower-case() i upper-case(): <xsl:variable name= "var" > ŚmIeSzNy NaPiS </xsl:variable> <xsl:value-of select= "upper-case($var)" /> Czasem jednak pojawia się konieczność poprawienia kodu, który napisany został w specyfikacji XSLT 1.0 i nie ma możliwości jej zmiany na nowszą. W takim wypadku część funkcji dostępnych w XSLT 2.0 trzeba będzie zaimplementować samemu. Niestety tutaj pojawia się kolejny problem - w starej XSLT nie ma możliwości tworzenia własnych funkcji. Całe szczęście możemy osiągnąć efekt jaki udostępniają lower-case() i upper-case() poprzez użycie funkcji translate() . Oto jak można to zrobić: <xsl:variable name= "lowerCase" > abcdefghijklmnopqrstuvwxyz </xsl:variable> <xsl:variable name= "upperCase" > ABCDEFGHIJKLMOPQERTUVWZYZ </xsl:variable> ...

LaTeX - nowa linia w tabelkowym elemencie \caption{}

Jeśli tworzysz jakiś tekst w LaTeX i chcesz w elemencie \caption{} to być może natknąłeś się na podobny problem jak ja. Poniżej przedstawiam kilka rozwiązań, które mogą zadziałać. Spróbuj każdego z nich, zanim się poddasz :) Użycie standardowego \\: \ caption { first line \\ second line } Na przykład: \begin { document } \begin { table }[ !ht ]   \ centering   \begin { tabular }{ cc }    lorem ipsum & dolor sit amet \\    \ hline   \end { tabular }   \ caption { first line \\ second line }   \ label { table:multilined_caption } \end { table } \end { document } Jeśli to rozwiązanie nie zadziała, to spróbuj: \ caption { first line \newline second line } lub: \ caption { first line \protect\\ second line } Zwróć uwagę, iż tekst z \caption{} często jest prezentowany na spisie tabel, więc może się zdarzyć, iż wszystkie linie będą tam wyświetlane (nie zawsze jest to pożądany efekt). Artykuł udostępniany na licencji CC-BY-...

Poko Rocket - czyli Chu Chu Rocket w przeglądarce

Dla frajdy, w ramach wolnego czasu postanowiłem zaimplementować swoją pierwszą grę, która będzie dostępna w każdej przeglądarce pod każdym systemem operacyjnym. Z powodu, iż wspomnianego wolnego czasu nie mam zbyt wiele oraz dlatego, że do dziś łezka mi się kręci, gdy przypomnę sobie prostą, ale wspaniałą grę "Chu Chu Rocket" stworzoną na platformę Sega Dreamcast (oraz później GameBoy Advance) doszedłem do wniosku, iż to właśnie ten oryginalny i kultowy tytuł stanie się moją inspiracją. Moim celem nie jest jednak zaimplementowanie dokładnie takiej samej gry, z dokładnie takimi samymi zasadmi. Już w obecnym stadium (a jest to jeszcze BETA) dodałem jeden element, który nie był dostępny w oryginalnej wersji. Tym elementem jest strzałka zmieniająca domyślny kierunek poruszania się kotów i myszek (z prawej w lewo, a przy ponownym kontakcie z lewej na prawo itp). Pomysłów na rozwój mam zdecydowanie więcej, jednakże postanowiłem już teraz podzielić się z potencjalnymi odbiorcami t...

OpenSUSE Linux 12.3 - czarny ekran

 Ze względu na moduł KMS, który jakiś czas temu został dodany do jądra systemu GNU/Linux, sporo sterowników kart graficznych musiało zostać przepisanych. Niestety do tej pory niektórzy użytkownicy mogą doznawać różnego rodzaju problemów z tym związanych. W OpenSUSE 12.3 (najprawdopodobniej też w innych oznaczonych 12.x) występuje problem braku prawidłowego funkcjonowania podświetlenie matrycy w laptopach typu emachines (między innymi w modelach emachines e525) wyposażonych w karty graficzne Intel GM45. Problem ten również może występować w innych dystrybucjach systemu GNU/Linux, które wykorzystują jądra Linux w tych samych wersjach. Żeby rozwiązać ten problem jako podstawowy test wykonaj próbę uruchomienia systemu z dodatkowym parametrem uruchomienia jądra " nomodeset ". Dopisz ten parametr do linii argumentów podczas wyświetlania menu probramu GRUB. Jeśli po uruchumoniu działa podświetlenie, to najprawdopodobniej występować może problem z rozdzielczością, która np. będzi...

Dlaczego nie PHP - $this w metodach statycznych (odc. 4)

W języku PHP widziałem już kilka dziwnych zjawisk. Jednak to na co natknąłem się niedawno, powaliło mnie zupełnie na kolana. PHP w momencie gdy nie ma ustawionego poziomu raportowania błędów na "strict" pozwala na wywoływanie metod, które nie są zadeklarowane jako statyczne przy użyciu operatora :: oraz odwrotnie - metody statyczne można wywoływać w kontekście obiektu poprzez $this. Dla przykładu przedstawię kod. <?php class A { public function test () { return B :: test (); } } class B { public function test () { return get_class ( $this ); } } $obj = new A (); echo $obj -> test (); ?>   Zazwyczaj takie działania w innych językach powodują błędy. W PHP, które nie jest ustawione na "strict" wykona powyższy kod. Co ciekawe wynik będzie dosyć zaskakujący. Na logikę w kontekście statycz...

Dlaczego nie PHP - kompatibilność wsteczna (odc. 3)

Na początku marca 2012 wydano  nową wersję 5.4 języka PHP. Nowa wersja wprowadza wiele udogodnień oraz kilka nowinek do gramatyki. Na przykład możliwość używania operatora tablicowego za operatorem funkcji $obiekt->funkcja()[4]; , składni $klasa::funkcja(). Jako zupełna nowość pojawiły się długo oczekiwane cechy (ang. traits). Niestety ze względu na porzucenie części kompatybilności wstecznej niektóre skrypty/programy pisane pod 5.3 mogą przestać działać. Na taki problem napotkałem się po aktualizacji oprogramowania przez pewnego administratora, który nie informując nikogo a swoim zamiarze nagle zmienił na serwerze dedykowanym wersję PHP z gałęzi 5.3.x na 5.4.x.   Problem dotyczył konkretnie framework'a Kohana 2.3.4. Zdaję sobie sprawę, że framework ten był pisany z myślą o PHP 5.2 jednak pod 5.3 wszystko działało jak dawniej. Po kilku godzinach ciężkich prób i walki na podstawie informacji znalezionych na forum debiana udało się wprowadzić stosowną poprawkę do kodu. C...