Posts Tagged ‘howto’

Gdy konfiguracja apache nie pozwala na „php_flag magic_quotes_gpc Off”

Maj 19th, 2010

Na niektórych hostingach bywa tak,  że z pewnych względów poniższy kod nie zadziała, a wskutek tego np ckeditor też poprawnie nie będzie interpretowała tworzonych linków.


php_flag magic_quotes_gpc Off

Rozwiązanie problemu okazało się banalne:


SetEnv MAGIC_QUOTES 0

„ORA-06553: PLS-382: expression is of wrong type” i tablica dual

Maj 5th, 2010

Kilka dni temu zacząłem się trochę więcej bawić z bazą danych Oracle i od razu napotkałem klika niespodzianek ;) Oto jedna z nich. Pisałem funkcje składowaną, która po wykonaniu jakiś zapytań na bazie i sprawdzeniu kilku warunków miała zwrócić true lube false, a z racji że PL/SQL udostępnia cudowny typ BOOLEAN to zapragnąłem własnie z niego skorzystać.


create or replace function czy_spelnione_wymagania(
 pesel IN varchar2,
 temat IN varchar2)
 return boolean
 is

....

Funkcja się skompilowała poprawnie, więc cały szczęśliwy chciałem ją przetestować korzystając z zabawnej tablicy DUAL.


SELECT czy_spelnione_wymagania('8089123243','Oaza Nowego Zycia 1') FROM DUAL;

I tu mnie spotkało niemiłe zaskoczenie:


ORA-06552: PL/SQL: Statement ignored
ORA-06553: PLS-382: expression is of wrong type

Zasięgnąłem informacji o błędzie i byłem dość  zaskoczony tym co było przyczyną. A mianowicie poczciwy SQL nie obsługuje udostępnianego przez PL/SQL typu BOOLEAN! Więc trzeba to obejść jakoś ładnie i poniżej przedstawiam moją propozycje rozwiązania tego problemu za pomocą bloku PL/SQL.


DECLARE
VAR_BOOL BOOLEAN;
BEGIN
VAR_BOOL :=czy_spelnione_wymagania();
IF( VAR_BOOL = TRUE ) THEN
DBMS_OUTPUT.PUT_LINE( ‘TRUE’ );
END IF;
END;

Tak więc nie jesteśmy zmuszeniu do modyfikacji formatu zwracanych danych przez naszą funkcje składowaną, ale oczywiście jak ktoś bardzo lubi to może sobie przyjąć, że będzie zwracał int, gdzie FALSE = 0 a TRUE = 1.

System dla maszyny z 128MB ramu.

Marzec 24th, 2010

Maszyna ma dobrego procka i będzie potrzebna do testów projektów na przedmiot „Obliczenia równoległe na klastrach”, lecz mała ilość  pamięci ram uniemożliwia instalacje standardowych dystrybucji Linuxa.

W pierwszej kolejności pomyślałem o jakieś bardziej odchudzonej wersji Ubuntu. Szybko trafiłem na Xbuntu, które jak twierdzą twórcy u mnie powinno zadziałać:

You need 192 MB RAM to run the Live CD or 192 MB RAM to install. The Alternate Install CD only requires you to have 64 MB RAM at install time.

Tak więc pobrałem najnowszą stabilną kompilacje (obecnie 9.10) i wypaliłem ją szybciutko na CD. Niestety proces instalacji na mojej maszynie w pewnym momencie się przerywał i już nie chciał za żadne skarby posunąć się dalej. Tak więc spróbowałem wcześniejszej kompilacji z przed roku (8.10), lecz niestety ta próba zakończyła się podobnie.

Poszukałem jeszcze dokładniej i znalazłem modyfikacje Ubuntu o jeszcze mniejszej złożoności.

Flexbuntu jest ekstremalnie okrojoną dystrybucją wymagającą do działania zaledwie 64MB ramu :) Jednak nie było dane jej prawidłowo bootować się na tym komputerze, z niewiadomych mi do tej pory powodów… Więc szukałem dalej…

Następnie spróbowałem ArchLinux który charakteryzuje się dużą wydajnością i małą ilością procesów standardowo włączonych do dystrybucji. W procesie instalacji kierowałem się bardzo dobrze napisaną instrukcją.

Po przejściu procesu instalacyjnego, który nie okazał się tak strasznym jak go malują, komputer się zrestartował i początkowo wszystko szło pięknie … do czasu … moim oczom ukazał się taki ekran:

The superblock could not be read or does not describe a correct ext4
filesystem. If the device is valid and it really contains an ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

******************* FILESYSTEM CHECK FAILED *************
* Please repair manually and reboot. Note that the root *
* filesystem is currently mounted read-only. To remount *
* it read-write type: mount -n -o remount,rw /          *
* When you exit the mantenance shel the system will     *
* reboot automatically.                                 *
*********************************************************

Give root password for mantenance

Okazało się że dystrybucja losowo przydziela nazwy partycjom przy każdym uruchomieniu, więc trzeba było je bardziej jednoznacznie wyspecyfikować w pliku konfiguracyjnym. Na szczęście każda partycja ma niezmienny UUID, który można podejrzeć wydając polecenie ‘blkid’ w konsoli. Ostatecznie tak musiałem zmodyfikować plik /etc/fstb aby udało się poprawnie uruchomić system.

UUID=b30cadc0-5e0f-4766-98e9-2ae97d53d930 /boot ext2 defaults 0 1
UUID=f61ed654-d7d3-41e0-b301-ce8d60fe910e swap swap defaults 0 0
UUID=c1263d23-c359-42aa-bca0-f518d9963e89 / ext2 defaults 0 1
UUID=57cde885-b368-4575-9434-3db28f2c5c2a /home ext2 defaults 0 1

Tu można trochę więcej poczytać o źródle problemu: http://wiki.archlinux.org/index.php/Persistent_block_device_naming#by-label

mp3 zła długość nagrania

Marzec 8th, 2010

Niedawno napotkałem na pewien dziwny błąd podczas nagrywania głosu za pomocą mikrofony. Mianowicie po zakończeniu nagrania plik wynikowy pokazywał nieprawidłową długość nagrania, bo wynoszącą 1 sekundę choć nagranie miało ponad 44 minuty! Co w konsekwencji uniemożliwiało niektórym programom prawidłowe odtworzenie utworu.
Na szczęście nie tylko ja miałem taki problem, po wpisaniu w Google frazy „mp3 wrong time” odnalazłem odpowiedź no mój problem.

Pobrałem program VBRFix MP3, załadowałem wadliwy plik i uruchomiłem naprawianie. Po krótkiej chwili miałem naprawiony plik mp3.

zend studio polskie znaki

Luty 15th, 2010

Aż głupio przyznać, ale najnowszy Zend Studio (wersja 6.x i 7.x) nie pozwala na wprowadzanie polskich znaków do edytora :/

Na szczęście coś z tym można zrobić :) Odnajdujemy w opcjach ustawienia skrótów klawiszowych:

Window -> Preferences -> General -> Keys

I pozostaje nam odnaleźć wszystkie kombinacje skrótów zasłaniających polskie znaki. Najłatwiej to uczynić odfiltrowując skróty napewno nie wchodzące w grę, wystarczy wpisać w pole „Szukaj” „Alt”.

Po poprawieniu wszystkiego będziemy mogli korzystać z wszystkich polskich znaków poza „ń”, cóż taki psikus…

Aby skorzystać z „ń” trzeba wykonać jeszcze jedną czynność:

Window -> Customize Perspective -> Commands

I tu odznaczamy „New PHP Document”. Teraz możemy się cieszyć z polskich znaków w ZendStudio.