poniedziałek, 16 listopada 2009

Ubuntu: legalna wirtualizacja Windows XP, Vista z różnymi wersjami IE


Tworząc strony internetowe, bardzo ważne jest, by były homogeniczne.
Niezależnie, od używanej w danej chwili przeglądarki internetowej, strona powinna wyświetlać się w sposób jak najbardziej zbliżony do pierwowzoru!

Jest to nie lada wyzwanie.
Pracując na Ubuntu wielką zaletą jest brak IE ;)...
Niestety dla twórcy stron internetowych jest to niedogodność (z punktu widzenia powszechności tego programu i niezgodności z standardami ;)).

Na szczęście jest coś takiego jak wirtualizacja
Ponadto Microsoft udostępnia do pobrania za darmo(!) wirtualne obrazy Windows:

Poniższy opis instalacji Virtual Box, konwersji obrazów .vhd -na .vmdk oraz instalacji sterowników do karty sieciowej pod procesory z rodziny AMD zaczerpnięty jest z ubuntuforums.org

1. Pobierz potrzebne pakiety virtualbox qemu wine:
apt-get install virtualbox qemu wine

2. Pobierz darmowy obraz VPC z interesującą nas wersją Internet Explorer.
http://www.microsoft.com/Downloads/details.aspx?FamilyID=21eabb90-958f-4b64-b5f1-73d0a413c8ef&displaylang=en

3. Rozpakuj pobrane pliki.

4. Skonwertuj obraz VPC na VMWare (który jest kompatybilny z Virtual Box)
qemu-img convert -f vpc image.vhd -O vmdk image.vmdk

5. Uruchom Virtual Box i utwórz nową wirtualną maszynę wybierając podczas instalacji utworzony wyżej obraz wirtualnego dysku

TYLKO DLA POSIADACZY AMD

Po uruchomieniu wirtualnego XP brakuje sterowników dla karty sieciowej by móc nawiązać połączenie internetowe.

1. Pobierz sterowniki do AMD PCnet drivers here:
http://www.amd.com/us-en/Connectivit...5E2486,00.html

2. Utwórz obraz z pobranymi plikami używając np. Brasero.

3. Zamontuj utworzony obraz ISO w wirtualnej maszynie i zainstaluj sterowniki.

To wszystko, miłej deWWWeloperki ;)
Pozdrawiam!

Epika: Webmaster vs. przeglądarki Microsoftu


Problem z rozbieżnościami w interpretacji standardu W3C jest powszechny, tym bardziej jeżeli mowa o różnych wersjach Internet Explorer.

Wszystko było by "prawie" OK, gdyby nie fakt że teraz oprócz reliktu internetu jakim jest IE6 musimy się jeszcze borykać z IE7 i IE8, które również ważą sobie lekce standardy (ale już w mniejszym stopniu)

Na domiar złego każda z nich teraz ma ok 33% "rynku IE" (tak przynajmniej wskazują statystyki na jednym z moich infoportali lekarz Kraków czy dentysta Kraków)

Na szczęście problem (nie) homogenizacji, nie jest żadnym novum i w internecie można znaleźć wiele sposobów na IE.

Najgorsze w tym wszystkim jest to że tworząc strony internetowe pod systemami z rodziny Linux trudny jest dostęp do przeglądarek IE. Korzystając z Wine "można dostać oczopląsu".

Jakie ewentualności pozostają...?
Otóż jest ich kilka:

  1. browsershots.org - narzędzie pozwalające sprawdzić jak Twoja strona wygląda nie tylko w różnych przeglądarkach ale również na różnych systemach operacyjnych (Linux, Windows, Mac OS, BSD).
    Zaletą tego rozwiązania jest liczba dostępnych przeglądarek.
    Wadą natomiast jest to, że można wykonać tylko dwa zrzuty ekranu dla pojedyńczej strony dziennie oraz to że dłuższą chwilę należy czekać na wynik.
    Jest to bardzo dobre rozwiązanie do sprawdzenia już "gotowych" stron internetowych.
  2. browserlab.adobe.com - fantastyczne narzędzie od Adobe.
    Pozwala na porównanie wyświetlania się strony w kilku wersjach popularnych przeglądarek internetowych. Całość odbywa się dużo szybciej aniżeli w sposobie pierwszym. Dodatkowo mamy możliwość przedstawienia widoku w trzech trybach:
    • pojedyńczym
    • dzielonym - strona wyświetlana jest w dwóch blokach obok siebie
    • maski - wyświetlana strona nachodzi na siebie (świetnie ukazuje drobne różnice w wyświetlaniu strony)
  3. Wirtualizację Windows XP lub Vista z wybraną wersją IE została opisana w poprzednim poście. Dodatkowo można posiadając własny wirtualny obraz XP/Vista pobawić się z taką przyjemną zabawką jak: http://www.spoon.net/Browsers/
Czy ktoś z Was - drodzy czytelnicy - zna inne sposoby dbania o prezentację widoku na różnych przeglądarkach internetowych (patrz IE)?
Pozdrawiam.

niedziela, 9 sierpnia 2009

Titanium + python

W poprzednim poście pokrótce omówiłem RIA Titanium.
Bawiąc się w tym środowisku pisze projekt monitora dla Blip.pl.

Wszystko wychodziło w miarę sprawnie aż do momentu gdy chciałem załączyć bibliotekę pythona.
W dokumentacji jest opisane jak dodać własny moduł pythona do Titanium ale niestety po kilkunastu próbach ten sposób u mnie nie zadziałał!

Dzisiaj rano znalazłem rozwiązanie problemu załaczania modułów pythona do Titanium.
(nie na Google ale na Tweeterze coraz bardziej podoba mi się micro bloging)

Całość jest trywialna! wystarczy dołączyć swoją bibliotekę pythona do Titanium w następujący sposób:

<script type=”text/python” src=”app://app.py”></script>

Titanium, RIA dla webmasterów

Titanium jest narzędziem do tworzenia RIA (bogatych aplikacji internetowych) i przypomina delikatnie Adobe AIR.

Główne różnice pomiędzy Titanium a Adobe AIR to (w/g jednodniowego audytu):
- Titanium jest otwarto źródłowe
- w Titanium można kodować w python-ie i ruby - wystarczy umieścić ot.. taki kawałek kodu (np. w pliku: index.html)


<script type="text/python">
def getLatest():
return 'test pythona'
</script>

<script type="text/javascript">
window.document.write(getLatest()); // wynik: "test pythona"
</script>

Ponadto Titanium posiada świetne narzędzie do zarządzania projektami (Bardzo Web 3.0).
Również jak w Adobe AIR i w Titanium wystarczy znajomość (x)HTML i JavaScript by zbudować pierwszą aplikację internetową.

Minusem jest jeszcze niepełna dokumentacja ale jak zawsze zachęcam do zajrzenia do "środka" by wiedzieć więcej :)

Więcej szczegółów na stronie głównej Titanium, a poniżej filmik demonstrujący możliwości tworzenia bogatych aplikacji.

Titanium Developer - Preview Release 3 Features from Appcelerator Video Channel on Vimeo.

ś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 (: