środa, 12 listopada 2008

Zend_View_Helper_HeadScript->appendFile() psuje integrację z Google Maps API

Zend Framework umożliwia specjalizację finalnego widoku(layoutu) dla każdej z akcji poprzez tzw. helpery("pomocniki") widoku. Jak to się dzieje odsyłam do podręcznika.

Wszystko działało idealnie do dnia gdy nadeszła chwila integracji stronki z Google Maps API.
W widoku akcji korzystam z wymiotnego w temacie pomocnika:

$this->headScript()
->appendFile('http://maps.google.com/maps?file=api&v=2&key='.$this->apiKey);


nagłówek strony produkuje mi coś takiego:

<script src="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=ABQIAAAAnCqO9l1WMOgTCJlg9kVlMRREqxHjot-MVdGv4W7rNtdAWxNh4hS2-gRBnLrWFzhAC8SpBzYmGVYZgA" type="text/javascript"/>


a powinien

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAnCqO9l1WMOgTCJlg9kVlMRREqxHjot-MVdGv4W7rNtdAWxNh4hS2-gRBnLrWFzhAC8SpBzYmGVYZgA" type="text/javascript"></script>


jak łatwo zauważyć problem leży w &amp; -> &.
Inicjowanie map googla tej zmiany nie lubi. Problem tkwi w funkcji htmlspecialchars, użytej w Zend_View_Helper_HeadScript::append() itd.
Żeby nie ingerować w kod w/w klasy można zastosować funkcję htmlspecialchars_decode w szablonie w następujący sposób...

// &amp; -> & becouse gmaps crash!
print htmlspecialchars_decode($this->headScript());


.. i wszystko działa, tak jak powinno od samego początku.

(Zastanawiam się czy ZF nie jest aż nad to ostrożny w wszystkim [ma to plusy .. i minusy])

Pozdrawiam.

wtorek, 4 listopada 2008

Pełen ekran - gry się sypią - Ubuntu 8.10 64bit ATI HD3200

Problem grania na pełnym ekranie? paski, szumy? Jak zwykle rozwiązanie jest banalne (:
Kombinacja klawiszy Ctrl + Enter, zmienia nam możliwość gry w "fullscrean" na "window".

A jak grać bez tego "hacka" na pełnym ekranie?
Dyskusja trwa na ubuntuforums.org
link bezpośredni:http://ubuntuforums.org/showthread.php?t=958400&highlight=HD+3200

Monitoruję ten wątek, zobaczę czy zostanie rozwikłany ten problem, na chwilę obecną wygląda na to że wina leży po stronie x.org i jedyne rozwiązanie to granie w opcji "window".

Touchpad z scrollerm w Ubuntu 8.10 na HP 6735s

By cieszyć się możliwością przewijania tekstu za pomocą touchpada wystarczy dodać wpis w pliku: /etc/X11/xorg.conf.

Otwieramy plik do edycji poleceniem w terminalu:
sudo gedit /etc/X11/xorg.conf

Jeżeli nie ma w nim sekcji "Section "InputDevice"" to wklejamy poniższy kod,
w przeciwnym wypadku ostrożnie i na własną odpowiedzialność tą sekcje modyfikujemy.


Section "InputDevice"
Driver "synaptics"
Identifier "TouchPad"
Option "Device" "/dev/input/mouse1"
Option "Protocol" "auto-dev"
Option "LeftEdge" "1700"
Option "RightEdge" "5300"
Option "TopEdge" "1700"
Option "BottomEdge" "4200"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "VertScrollDelta" "100"
Option "MinSpeed" "0.09"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0015"
Option "SHMConfig" "on"
EndSection

Wszystko pięknie działa na Ubuntu 8.10 64bit i HP 6735s (:

niedziela, 19 października 2008

Instalacja OpenOffice3 w Ubuntu 8.10 64bit

Na chwilę obecną nie ma gotowej paczki OpenOffice3 na 64bit Ubuntu, aby to obejść należy postępować dokładnie jak opisano w tej instrukcji instalacji OpenOffice3.
Jedyna zmiana jaka nas czeka to modyfikacja polecenia:

sudo dpkg -i *.deb
na:
sudo dpkg --force-architecture -i *.deb

Została zastosowana flaga --force-architecture, która wymusza przetworzenie pakietów dla innej architektury.

piątek, 17 października 2008

Eclipse Ganymede + PDT2.0 na ubuntu 64bit

PHP Development Tools w wersji 2.0 ujrzy światło dzienne 29 grudnia 2008 roku, ale to mi nie przeszkadza by pracować na wersji rozwojowej (:.
Poniżej przedstawiam przetłumaczony poradnik instalacji PDT2.0 na najnowszej wersji mojego ulubionego IDE Eclipse.

Pobieramy i rozpakowujemy Eclipse IDE for Java EE Developers (162 MB) do wybranego katalogu.
Do pełni szczęścia brakuje nam jeszcze trzech paczek.

  1. DLTK (Integration) link bezpośredni do paczki
  2. PDT2.0 (2.0.0 Integration Builds) link bezpośredni
  3. WTP (tą paczkę sugeruję pominąć, bo w Java EE już jest!)
Powyższe paczki rozpakowujemy i dodajemy do managera pakietów
  1. Help > Software Updates... > Available Software
  2. Add Site... > Local > dodajemy katalog rozpakowanego pakietu DLTK
  3. Add Site... > Local > dodajemy katalog rozpakowanego pakietu PDT2.0
  4. Add Site... > Local > dodajemy katalog rozpakowanego pakietu WTP
  5. Gdy odświeżenie listy pakietów nie wykona się automatycznie - wciskamy "Refresh"
  6. Zaznaczamy pakiet the "Dynamic Languages Toolkit - Core Frameworks .."
  7. Zaznaczamy pakiet "PDT Feature"
  8. Zaznaczamy "WTP Feature" (jeżeli jeszcze nie jest jest zainstalowany)
  9. Klikamy "Install"
Gdy wszystko przebiegnie pomyślnie uruchamiamy ponownie Eclipse i mamy PHP Development Tools w wersji 2.0 :). Teraz tylko New PHP Project i zabawa się zaczyna (:.

Uwaga na koniec, w Eclipse Ganymede w okienku "Software Updates" jest możliwość wpisywania nazw pakietów należy w tym polu wpisywać pełne nazwy pakietów do instalacji a nie ich akronimy tj. zamiast DLTK należy wpisać Dynamic Languages Toolkit

czwartek, 16 października 2008

Ubuntu 64bit i HP 6735s

Nowy nabytek laptop HP 6735s i nowe Ubuntu 8.10 w drodze.
Jako że laptop jest wyposażony w procesor AMD Puma z wsparciem 64bit instalacja Ubuntu będzie również dla tej architektury procesora.

Grafika ATI 3200:
Sterownik został zainstalowany automatycznie, a jako całość działa szybko i stabilnie.

WiFi
Jeszcze nie testowałem.

Bluetooth
Łączenie z Samsung L760 i wymiana plików bezproblemowo.

Dźwięk
Na starcie dźwięku z głośników nie usłyszymy. Usłyszymy je za to z podłączonych słuchawek (dlaczego? uwielbiam zagadki)!
Rozwiązanie tego problemu ogranicza się do następujących kroków:

Edytujemy plik /etc/modprobe.d/alsa-base
sudo gedit /etc/modprobe.d/alsa-base

na koncu pliku dodajemy
options snd-hda-intel model=laptop

zapisujemy zmiany.

Edytujemy plik /boot/grub/menu.lst
sudo gedit /boot/grub/menu.lst
i dodajemy wpis
nolapic iommu=off noirqdebug
u mnie wygląda to tak:
title Ubuntu intrepid (development branch), kernel 2.6.27-7-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.27-7-generic root=UUID=4212f199-d346-40e2-8d77-deee73d92d5c ro quiet splash nolapic iommu=off noirqdebug
initrd /boot/initrd.img-2.6.27-7-generic
quiet

Edit: Zauważyłem że zastosowanie parametru nolapic powoduje wykrycie procesora zamiast dwu-rdzeniowego jako jednego-rdzeniowego.

Ponowne uruchomienie komputera i znajome odgłosy dochodzą do naszych małżowin usznych (:

Pierwsze wrażenia
Generalnie laptop jest niesłyszalny, głośność pracy wentylatora zaczyna być odczuwalna gdy pracujemy na pełnej mocy. Wydajność jest zadowalająca. Operacja kopiowanie pliku z dysku na dysk utrzymuje się na średnim poziomie 18Mb/s co w porównaniu do poprzedniego laptopa ASUS A6R-B002 odbywa się 2x szybciej.
Długości pracy na baterii jeszcze nie miałem przyjemności sprawdzić.

PS.
Notebook HP 6735s zakupiłem w sklepie primakomp.pl. Jest to mój drugi laptop kupiony w tym sklepie. Poleciłem nabycie, drogą kupna, laptopa w tym sklepie już sześciu osobą, z efektem pozytywnym! Jeżeli dokonuje się zakupu w salonie a nie poprzez stronę internetową online można liczyć na rabacik - zaoszczędziłem ok. 40zl!!.

piątek, 19 września 2008

Eclipse SVN vs. NetBeans SVN

Kilka projektów WWW na głowie, przeskakiwanie z jednego do drugiego i kontrolowanie zmian wprowadzonych w każdym z nich.
Nic prostego SVN!
Google umożliwia hosting SVN OpenSource'owych projektów.

W utrzymaniu wszystkiego pod kontrolą pomoże nam NetBeans 6.5 z wsparciem dla PHP lub plugin do Eclipse Subversive.

Pomijam proces instalacji SVN na komputerze i inne programy wspierające jak np. RapidSVN gdyż zależy mi wyłącznie na integracji SVN z IDE.

NetBeans 6.5 jest w wersji deweloperskiej ale obsługa SVN jest nadzwyczajnie przyjemna!

  • automatyczne wykrywanie katalogów SVN w projekcie i oznaczanie odpowiednią wizualizacją zakładek, plików, katalogów


    kolory
    • zielony - nowy plik
    • niebieski - plik zmodyfikowany różny od wersji SVN

  • wizualizacja katalogów podpiętych pod SVN

    Jak można zuwazyć na załączonym obrazku, nie koniecznie cały projekt (np.: "kontorx-cms") musi być podpięty do repozytorium SVN jako całość (np.: "widmogrod.info") jest możliwość wyselekcjonowania pojedynczego katalogu w projekcie (np. "KontorX" czy "application") poddanego kontroli wersji.
  • szybka analiza zmian (można sprawdzić określoną gałąź projektu np.: wybrany plik lub katalog)
  • wizualizacja różnic wersji lokalnej i na serwerze, IDEALNA!


Eclipse Subversive
  • wizualizacja projektu jako SVN
    W przeciwieństwie do NetBeans brak możliwości posiadania kilku oddzielnych repozytoriów SVN w jednym projekcie.
  • Analiza zawartości zdalnego repozytorium SVN

  • Nie znalazłem wizualizacji różnic pomiędzy wersją lokalną a serwerową
    brak diff .. chyba że jestem ślepy ..

Głownem kryterium, na którym bazuje jest możliwość posiadania w projekcie kilku oddzielnych bibliotek, które są wsparte obsługa SVN.
Ponadto brak kontroli różnic lokalnych i zdalnych w Eclipse dyskwalifikuje je całkowicie.

Wygrywa NetBeans 6.5 z wczesnym wsparciem dla PHP!

Dla zainteresowanych konfiguracją Subversive na Eclipse źródła, z których korzystałem.