20 maja 2011

APE (Ajax Push Engine) i SSL

Po długich poszukiwaniach rozwiązania tego problemu... utknąłem... W jednym miejscu piszą, że to działa tylko ze starą wersją stunnel (u mnie to nie działało) gdzie indziej robią sztuczki z przekierowaniami na Apachu (siedzę od jakiegoś czasu na lighttpd i nie wnikałem)... Po wnikliwej analizie co się dzieje w momencie negocjacji przez stunnel doszedłem, że chodzi o coś z timeoutami... Jedna z opcji wydawała się obiecująca... Poniżej działający bezproblemowo z APE, stunnel.conf
output = /var/log/stunnel.log
pid = /var/run/stunnel.pid
foreground = no

[ape]
TIMEOUTclose = 0
cert = <ścieżka do certyfikatu>
accept = <host na którym nasłuchujemy>:4443
connect = <ape serwer>:6969
Pogrubiłem opcję, która wszystko "naprawiła". Należy pamiętać także o zmianach w pliku config.js
APE.Config.baseUrl = '<serwer z którego pobieramy biblioteki>'; //APE JSF
APE.Config.domain = '<domena jak w pliku ape.conf>';
APE.Config.server = '<ape serwer>:4443'; //APE server URL
APE.Config.secure = true;
I możemy się cieszyć APE z SSLem. Należy tylko pamiętać o "wildcardowych" certyfikatach...

5 maja 2011

Google Maps API v2 + zumi.pl

Dzisiaj wracam do tematu map z zumi.pl. Ten mały projekt powstał jeszcze za czasów, gdy w Google Maps, zdjęcia satelitarne były mało szczegółowe. Wpadłem więc na pomysł, aby połączyć Google Maps API z kafelkami map z zumi.pl. Pierwszy był skrypt w perlu który... ściągał wszystkie kafelki z zumi.pl, dla każdego przybliżenia. Ale po ściągnięciu ich wszystkich stwierdziłem, że wykorzystanie tego jest bezcelowe. Drugim podejściem było połączenie właśnie z API Google, które to już trochę poznałem i wykorzystywałem do własnych celów. Problemem z połączeniem tych dwóch map polegał na tym, że odwzorowanie map, a raczej "pocięcie" całej mapy na kafelki znacznie różniło się w obu tych przypadkach. Kluczem do sukcesu było poznanie algorytmu kafelkowania map w zumi.pl. Myślałem, że wyjaśnię co z czego wynika, ale nie pamiętam już za wiele. Po prostu trzeba zajrzeć w źródła :) Stronka ta, to okrojona wersja czegoś co używam na co dzień, więc mogą tam być jeszcze jakieś niepotrzebne "śmieci". Kluczowym elementem jest funkcja getTileUrl, która na podstawie podanej szerokości i długości geograficznej oraz przybliżenia, wylicza nam, który kafelek ma być pobrany z serwera zumi.pl. Reszta to funkcje wyświetlające to wszystko.