<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8484512169442325841</id><updated>2012-01-14T21:50:37.053+01:00</updated><category term='url'/><category term='cufon'/><category term='pozycjonowanie'/><category term='javascript'/><category term='hasło'/><category term='testowanie'/><category term='cache'/><category term='tekst'/><category term='extenssion'/><category term='ustawienia serwera'/><category term='bazy danych'/><category term='hosting'/><category term='wypromuj.net'/><category term='błąd'/><category term='obrazek'/><category term='HINTY'/><category term='brutto'/><category term='pseudoklasy'/><category term='generowanie grafiki'/><category term='programowanie'/><category term='cometchat'/><category term='vat'/><category term='subiekt'/><category term='css'/><category term='tworzenie stron'/><category term='odświeżanie treści'/><category term='prestashop'/><category term='antyplagiat'/><category term='daty'/><category term='windows'/><category term='like'/><category term='crontab'/><category term='picsengine'/><category term='opera'/><category term='optymalizacja'/><category term='praca magisterska'/><category term='zlecenie'/><category term='platnosci'/><category term='galeria'/><category term='netto'/><category term='reklama'/><category term='facebook'/><category term='roboty'/><category term='faktura'/><category term='justowanie'/><category term='śmieszne'/><category term='specyfikacja'/><category term='strony www'/><category term='graph api'/><category term='mysql'/><category term='znikanie treści'/><category term='php'/><category term='oferta'/><category term='ajax'/><category term='rotatory'/><category term='województwa'/><category term='wdowy'/><category term='sieroty'/><category term='alexa'/><category term='przeglądarki'/><category term='integracja'/><category term='wordpress'/><category term='jquery'/><category term='państwa'/><category term='czcionki na www'/><category term='domeny'/><category term='dns'/><category term='sklep'/><category term='projet'/><category term='tablica'/><category term='czat'/><category term='HTML'/><category term='lista województw'/><category term='wp'/><category term='IE'/><category term='htaccess'/><category term='magento'/><category term='praca licencjacka'/><category term='sklep phpmyadmin'/><category term='złe zdjęcie'/><category term='skrypt'/><category term='error'/><category term='zlib'/><category term='&#xD;przeglądarkifirefoxakceleracja sprzętowabugmiganie'/><category term='prototype'/><category term='platnosci.pl'/><title type='text'>O programowaniu stron www</title><subtitle type='html'>Rozwiązania związane z programowaniem w PHP i JavaScript, których zwykle trzeba się naszukać. Tutaj skrótowo i w języku polskim.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>36</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-8822945238335604824</id><published>2011-09-21T22:22:00.036+02:00</published><updated>2011-09-22T00:17:19.840+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='specyfikacja'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='zlecenie'/><category scheme='http://www.blogger.com/atom/ns#' term='projet'/><category scheme='http://www.blogger.com/atom/ns#' term='oferta'/><title type='text'>Specyfikacja</title><content type='html'>Po wakacjach wyraźnie wzrosła liczba zapytań kierowanych w różny sposób przez potencjalnych klientów, dotyczących projektów jakie zamierzają zrealizować. Pozwala to dostrzec pewne elementy, które ułatwiają wybór klienta, ponieważ mam wrażenie, że przy obecnej liczbie potencjalnych klientów sztuką jest odpowiedni dobór, a nie samo pozyskanie klienta.
&lt;br /&gt;
Pojęciem które zwykle wiąże się z przygotowaniem projektu jest specyfikacja, która to trafia do nas najczęściej w załączniku, lub po wcześniejszym zapytaniu o samą chęć podjęcia współpracy, bywa też tak genialna (zdaniem wysyłającego), że jest tajna i może być przesłana dopiero po podpisaniu umowy o poufności.
&lt;br /&gt;
Wśród specyfikacji wyróżniłbym następujące typy:
&lt;h3&gt;Specyfikacja wirtualna&lt;/h3&gt;
Jest to specyfikacja, która nie istnieje. Zwykle pojawia się kiedy ktoś ma jakąś wizję i jest napalony żeby jak najszybciej ją zrealizować, często jest gotowy uprościć ją do minimum byleby zacząć, a potem nie da już spokoju odkrywając przed nami coraz głębsze i co raz bardziej nietrzymające się kupy jej elementy. Wirtualna napisałem dlatego, żeby odróżnić ją od kolejnej sytuacji kiedy również nie ma specyfikacji, ale klient nie twierdzi że ma i nie twierdzi że wie :)
&lt;h3&gt;Brak specyfikacji&lt;/h3&gt;
Mam na myśli sytuację kiedy klient ma jakiś ogólny pomysł, a może nawet częściej potrzebę, ale nie zna się lub nie ma zamiaru narzucać szczegółów rozwiązania. Chociaż na pierwszy rzut oka mogłoby się wydawać, że to źle, to z moich doświadczeń wynika, że szczególnie przy małych i średnich projektach jest to najlepsze co może być. Narzucamy wtedy swoje rozwiązania o których mamy pojęcie i tłumaczymy mu tylko co i jak. Jeśli klient jest kumaty, to wszystko idzie sprawnie :) Piszę "kumaty", bo chodzi o to żeby łatwo rozumiał co mu mówimy i logicznie formułował swoje pomysły, a nie o to żeby znał się na komputerach... 
&lt;h3&gt;Specyfikacja baaaardzo szczegółowa&lt;/h3&gt;
Chyba jako człowiek leniwy szczególnie takich nie lubię. Wygląda to zwykle tak, że ktoś opisuje bardzo szczegółowo oczywiste funkcje, a w skrajnych przypadkach powtarza te opisy dla każdego elementu np opisuje każdą podstronę która różni się tylko treścią i jeszcze robi do tego makiety najlepiej w jakimś programie, który do tego nie służy. W takiej specyfikacji autor objaśni nam, że jak w wyszukiwarce ktoś wybierze Warszawę to mają się pokazać oferty z Warszawy, a jak Gdańsk to z Gdańska. Czytanie czegoś takiego jest męką, tym bardziej, że połowę (jeśli nie całość) czyta się często nie mając nawet informacji o czym się czyta, ponieważ autor skupiony na szczegółach zapomniał wpisać tytułu, czy krótkiego wstępu. Jak się już człowiek zorientuje o co chodzi to wypada przeczytać od nowa ze zrozumieniem, a potem przed rozpoczęciem pracy wypadałoby wyłapać i wyjaśnić każdy szczegół, który:
&lt;ul&gt;
&lt;li&gt;powinien być zrealizowany inaczej z przyczyn obiektywnych jak np: są gotowe rozwiązania działające trochę inaczej (czasem lepiej), więc np ze względu na koszty i czas lepiej wziąć gotowiec&lt;/li&gt;
&lt;li&gt;jest niemożliwy do zrealizowania - kiedyś mi klient napisał że strona ma mieć ekran pożegnalny, który jak potem nieszczęsny zrozumiałem miał się pokazywać po jej zamknięciu :)&lt;/li&gt;
&lt;li&gt;wydaje się dziwny, niepotrzebny, wynikający z niewiedzy...&lt;/li&gt;
&lt;/ul&gt;
Jeżeli tego nie przemielimy i nie wyjaśnimy narażamy się na ryzyko, że potem ktoś będzie nam mógł wypunktować niezgodności ze specyfikacją, a za analizę specyfikacji nikt nam nie płaci, więc szczególnie jeśli ich dużo nie możemy poświęcać na nie za wiele czasu. Osobiście mnie takie projekty trochę odstraszają - zamiast specyfikacją kieruję się opinią o kliencie - zarówno o firmie jak i osobie kontaktowej. Problem osoby kontaktowej jest dość ważny - większe firmy mają pracownika, który podczas realizacji projektu będzie nam ułatwiał pracę, a nawet wykonywał jej część, lub zatruwał życie debilnymi pomysłami. Źle jeśli jest to osoba, która dużo wymyśla, ale o wszystko musi pytać szefa, ponieważ najpierw coś wymyśla i pyta nas (boi się że szef uzna pomysł za głupi) my wyjaśniamy, wtedy jest mądrzejsza i albo pyta szefa albo nie, a potem szef albo się zgadza albo nie. Stajemy się więc trochę takim korepetytorem ;)
Dobrze jak jest to osoba komunikatywna, decyzyjna, inteligentna i sympatyczna.
&lt;h3&gt;Specyfikacja "taka jak" oraz specyfikacja "taka jak sprzeczna"&lt;/h3&gt;
Specyfikacja "taka jak" to krótkie pytanie w stylu:
Ile kosztowałaby u pana strona taka jak allegro/maxmodels/grupon/facebook. W sumie należałoby do tego opatentować typ odpowiedzi "tyle co". I odpowiadać tyle co allegro/maxmodels/grupon/facebook. Nie są to takie złe tematy jeśli mamy na oku jakiegoś gotowca działającego podobnie, zwykle prostszego. Posyłamy linka do dema i jeśli klientowi to odpowiada to jest git... Jeżeli nie ma gotowca to pewnie jest to za duży projekt do realizacji przez freelancera.&lt;br /&gt;
Specyfikacja "taka jak sprzeczna" to pytanie typu: chciałbym stronę coś jak nk.pl, lub wp.pl gdzie nie dostrzegamy żadnego podobieństwa poza dwuliterową domeną ;] W tej sytuacji proponuję poprosić klienta o przesłanie specyfikacji ;)
&lt;h3&gt;Specyfikacja marzeniowa&lt;/h3&gt;
Widać, że autor specyfikacji siedzi w temacie i pomyślał o wszystkim. Pisze o systemie który ma wszystkie funkcje o jakich można zamarzyć, może być rozbudowywany na wszelakie sposoby, komunikuje się z innymi dzięki funkcjonalnemu api, może zmieścić nieograniczone ilości danych działając przy tym szybko i bez zakłóceń. Jest to połączenie najlepszych wzorców, funkcje są jakby zbitką najlepszych haseł wziętych z opisów różnych dużych CMSów, czy sklepów, które nawet w nich nie koniecznie w praktyce sprawdzają się tak dobrze. Dzisiaj miałem zapytanie w którym sklep miał obsługiwać 7 systemów płatności wymienionych z nazwy i oczywiście mieć możliwość łatwego dodania kolejnych - nie wiem komu jest potrzebne 7 systemów płatności w 1 sklepie? Co zrobić z takim zapytaniem? wpadłem na to klepiąc ten wpis - należy polecić firmę która specjalizuje się w obiecywaniu cudów, a potem instaluje gotowca i zmienia CSS, lub podzleca to zadanie. Ktoś jednak musi napompować tą realizację by jej wyjątkowość odpowiadała oczekiwaniom zleceniodawcy :)
&lt;br /&gt;
&lt;br /&gt;
ps. obiecuję że się wezmę i napiszę coś przydatnego następnym razem&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-8822945238335604824?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/8822945238335604824/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/09/specyfikacja.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8822945238335604824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8822945238335604824'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/09/specyfikacja.html' title='Specyfikacja'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-7623665751014199604</id><published>2011-08-17T10:04:00.002+02:00</published><updated>2011-08-17T10:35:14.191+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>As we notified you earlier, this feature is temporarily unavailable because you've been making spammy and irrelevant posts on Facebook Pages.</title><content type='html'>Do niedawna facebook był miejscem w którym wstawienie linku było prostsze niż gdziekolwiek indziej. W dodatku przy dobrym ustawieniu strony (meta tagi dla FB) były to linki wzbogacone w grafikę. Wystarczyło kliknąć "Lubię to!" na jakiejkolwiek tablicy strony (najlepiej jakiejś popularnej) i wkleić link. Wydaje mi się, że jeszcze miesiąc temu nie było w tym zakresie żadnych ograniczeń. Sam akurat rozkręcałem portal, który doskonale nadawał się do popularyzowania na FB. Wrzucałem więc bardzo dużo linków na popularnych tablicach (np lady gagi ;]). Potem moja aktywność opadła. Ostatnio wrzuciłem kilka linków (jak się nie mylę to 3 razy ten sam link na różnych tablicach) i dostałem komunikat:&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-style:italic;"&gt;As we notified you earlier, this feature is temporarily unavailable because you've been making spammy and irrelevant posts on Facebook Pages.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
Co dla nieznających angielskiego (komunikatu nie raczyli/zdążyli przetłumaczyć co też by wskazywało na to, że to nowość) w moim genialnym tłumaczeniu oznacza:&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Ta funkcja jest chwilowo niedostępna (o czym już Cię informowaliśmy), ponieważ wrzucałeś spamerskie i nieodpowiednie posty na strony facebookowe.&lt;/span&gt;
&lt;br /&gt;&lt;br /&gt;
Akurat co do nieodpowiedniości tych postów miałbym wątpliwości, ponieważ nie są to posty typu: "Franek jest dzisiaj seksowny na 67%", tylko linki do video, lub artykułów związanych ze stroną danego artysty, które bardzo często są jeszcze likeowane przez użytkowników FB, lub samego właściciela strony. Nie da się wykluczyć zgłoszenia przez kogoś jako spam, ale stawiałbym na zwykłe wyliczenie - wrzuciłeś X razy ten sam link na różne tablice to spamujesz... ciekawe, czy jest ktoś w stanie to potwierdzić??&lt;br /&gt;&lt;br /&gt;
Niezależnie od tego jak to działa to wydaje mi się, że działa niedoskonale, ponieważ nie wiadomo dlaczego zostaliśmy zablokowani. Nie ma informacji kto i co zgłosił jako spam? albo chociaż ile było zgłoszeń. Moim zdaniem idealną funkcją ograniczającą zjawisko spamowania byłoby blokowanie użytkowników - po kliknięciu w krzyżyk obok posta oprócz opcji usuń/zgłoś spam dodatkowo - blokuj posty od tego użytkownika... ale pewnie nikt z facebooka nie czyta mojego cudownego bloga, który z bloga o programowaniu staje się chyba blogiem o marudzeniu...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-7623665751014199604?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/7623665751014199604/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/08/as-we-notified-you-earlier-this-feature.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7623665751014199604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7623665751014199604'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/08/as-we-notified-you-earlier-this-feature.html' title='As we notified you earlier, this feature is temporarily unavailable because you&apos;ve been making spammy and irrelevant posts on Facebook Pages.'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-6813013467664488464</id><published>2011-06-14T07:09:00.004+02:00</published><updated>2011-06-14T07:37:07.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reklama'/><category scheme='http://www.blogger.com/atom/ns#' term='wypromuj.net'/><category scheme='http://www.blogger.com/atom/ns#' term='rotatory'/><title type='text'>Rotatory - wypromuj.net, traffic4u.pl etc.</title><content type='html'>Jako, że bawię się ostatnio we własny portal szperałem trochę zarówno pod kątem możliwości promocji swojej strony jak i zarabiania na niej. Jednym ze sposobów promocji na jaki natrafiłem na allegro mają być wejścia z rotatorów. Na allegro będzie się to po prostu nazywało wejścia ;) Czyli ktoś sprzedaje 2000 unikalnych wejść na naszą stronę i taka atrakcja kosztuje 9 PLN. W aukcjach napisane jest, ze jest to lepsze niż mailing, bo gwarantuje wejścia - bzdura ale zamówiłem :) &lt;br /&gt;
Jednocześnie sam zarejestrowałem się w &lt;a href="http://www.wypromuj.net/?refid=blackpig" rel="nofollow"&gt;wypromuj.net&lt;/a&gt;. Jest to prosty skrypt, który wyświetla nam strony po 20 sek każdą i w zamian za każde wyświetlenie daje punkty, a za te punkty nasza strona może się wyświetlać innym. Sęk w tym, że żeby strony się wyświetlały to nie musimy być nawet przy komputerze, jak za pewne robi większość użytkowników programu, czyli nikt tej naszej strony nawet nie ujrzy. Od razu pojawiają się pomysły:
&lt;ul&gt;
&lt;li&gt;Rotator wyświetla stronę w ramce - dodajmy skrypt wyskakujący z ramki (tzw. zrywanie ramek) i taki delikwent co włączył rotator na noc obudzi się z otwartą naszą stroną i ją zobaczy!&lt;/li&gt;
&lt;li&gt;Wstawmy na stronie ramki z linkami do innych stron i rotator zamiast nabić 100 wejść nabije 1000, albo niech w ramkach będą linki partnerskie&lt;/li&gt;
&lt;li&gt;Wstawmy reklamy płatne od wyświetlenia (CPM) np z programu: &lt;a href='http://www.cpmprofit.com/?ref=cameralmusic' rel='nofollow'&gt;cpmprofit.com&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
Niestety wszystkie te pomysły nie są nowe, a co za tym idzie już się przed nimi zabezpieczono. Strona w rotatorze nie może zawierać ramek, ani ich zrywać - może za to wylecieć, co wielką stratą nie jest. Programy typu &lt;a href='http://www.cpmprofit.com/?ref=cameralmusic' rel='nofollow'&gt;cpmprofit.com&lt;/a&gt; nie zezwalają na automatyczne generowanie ruchu... Biorąc pod uwagę powyższe nie widzę żadnych pozytywnych aspektów reklamy przez rotator - właściwie tylko obciąża serwer, zżera transfer i utrudnia analizę odwiedzin :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-6813013467664488464?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/6813013467664488464/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/06/rotatory-wypromujnet-traffic4upl-etc.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6813013467664488464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6813013467664488464'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/06/rotatory-wypromujnet-traffic4upl-etc.html' title='Rotatory - wypromuj.net, traffic4u.pl etc.'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-2192011349807737480</id><published>2011-05-12T09:12:00.000+02:00</published><updated>2011-05-13T22:35:34.074+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&#xD;przeglądarkifirefoxakceleracja sprzętowabugmiganie'/><title type='text'>Firefox 4 - migający pasek adresu - dwa monitory</title><content type='html'>Po aktualizacji Firefoxa do wersji 4 zauważyłem że jeśli działa on na drugim monitorze to pasek adresu (i inne pola na których wyświetlają się podpowiedzi podczas wpisywania) migają i znikają. Po przeciągnięciu przeglądarki na pierwszy monitor jest OK. Okazuje się, że w nowej wersji jest opcja pozwalająca na używanie akceleracji sprzętowej w przeglądarce, która jest domyślnie włączona, a przy dwóch monitorach nie działa poprawnie. Aby ją wyłączyć wchodzimy w do menu (menu jest teraz w lewym górnym rogu i nazywa się Firefox), następnie najeżdżamy "opcje", a potem znowu "opcje" i w zakładce "zaawansowane" mamy podzakładkę "ogólne", gdzie odznaczamy pole: "Korzystaj z akceleracji sprzętowej, kiedy jest dostępna". Problem znika i można dalej pracować :)
&lt;br /&gt;&lt;br /&gt;
&lt;img src='http://programistawww.pl/przyklady/ffakceleracja.jpg' /&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-style:italic;"&gt;ps. najpierw wypisałem te kroki tak dokładnie żeby się wyżyć, bo byłem poirytowany, że menu jest w lewym górnym rogu, a do tego pole "opcje" jako pozycja submenu w menu "opcje" jest bez sensu, ale potem odkryłem, że te pierwsze "opcje" też można kliknąć, pomimo że mają submenu - jakąś nową kontrolkę chyba wymyślili od czasu jak an studiach używało się delphi ;]&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-2192011349807737480?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/2192011349807737480/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/firefox-4-migajacy-pasek-adresu-dwa.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2192011349807737480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2192011349807737480'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/firefox-4-migajacy-pasek-adresu-dwa.html' title='Firefox 4 - migający pasek adresu - dwa monitory'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-5360602353376249801</id><published>2011-05-10T16:57:00.003+02:00</published><updated>2011-05-10T17:02:21.275+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zlib'/><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='extenssion'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Abort class-pclzip.php : Missing zlib extensions</title><content type='html'>Błąd wyskoczył podczas próby instalacji wtyczki jwplayer do wordpressa na zagranicznym serwerze. Powód wyłączone rozszerzenie zlib do php, które służy do pakowania/rozpakowywania plików. Normalnie można to włączyć w php.ini - pod warunkiem że mamy do tego dostęp, jeśli nie mamy można spróbować tak:
&lt;textarea class='kod'&gt;
dl('zlib.so');
&lt;/textarea&gt;
Czyli próba załadowania zlib jako biblioteki dynamicznej. Dodałem to jako pierwszą linijkę w pliku wp-config.php i pomogło, więc komuś też może pomóc :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-5360602353376249801?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/5360602353376249801/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/abort-class-pclzipphp-missing-zlib.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5360602353376249801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5360602353376249801'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/abort-class-pclzipphp-missing-zlib.html' title='Abort class-pclzip.php : Missing zlib extensions'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-2470139475581629778</id><published>2011-05-06T22:37:00.004+02:00</published><updated>2011-05-06T22:44:22.717+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='obrazek'/><category scheme='http://www.blogger.com/atom/ns#' term='złe zdjęcie'/><category scheme='http://www.blogger.com/atom/ns#' term='graph api'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Facebook pobiera nie to zdjęcie co trzeba</title><content type='html'>Domyślnie podczas wstawiania linka na facebooka skrypt pobiera zdjęcia z naszej strony w kolejności takiej jak na niej występują. Jeśli serwis ma budowę kolumnową to często pobierze np zdjęcia produktów z lewej kolumny, którą najpierw napotkał, a dopiero potem zdjęcie właściwe ze środka. Można zmusić FB do pobrania właściwego zdjęcia wstawiając w sekcji head następujący tag:&lt;br /&gt;&lt;br /&gt;

&amp;lt;meta property="og:image" content="http://domena.pl/zdjecie_domyslne.jpg" &gt;
&lt;br /&gt;&lt;br /&gt;
Dzięki temu rozwiązaniu facebook wybierze właściwą fotkę (tej fotki nie musi nawet być na stronie).&lt;br /&gt;
Aha uwaga na jedną rzecz - w tym tagu trzeba podać pełny URL zdjęcia - nied ziała z relatywnym, przez co nie mogłem tego pojąć przez jakiś czas :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-2470139475581629778?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/2470139475581629778/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/facebook-pobiera-nie-to-zdjecie-co.html#comment-form' title='Komentarze (4)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2470139475581629778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2470139475581629778'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/facebook-pobiera-nie-to-zdjecie-co.html' title='Facebook pobiera nie to zdjęcie co trzeba'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-1523154229004706343</id><published>2011-05-05T11:35:00.005+02:00</published><updated>2011-05-05T13:16:46.518+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='graph api'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Facebook Graph API  i mała dziura</title><content type='html'>Wszyscy wstawiają już od dawna na strony facebookowe gadżety: likeboxy, feedy itd... Zabrałem się ostatnio za własny projekt portalowaty (&lt;a href='http://cameralmusic.pl/' title='CameralMusic.pl - więcej niż muzyka klasyczna'&gt;muzyka klasyczna&lt;/a&gt;) stąd może moje zainteresowanie tymi jak wcześniej sądziłem gadżetami stało się większe. Wcześniej ograniczało się to do wstawiania tego, co sobie klient zażyczy,a klient życzy sobie niewiele, bo nie wiele wie.&lt;br /&gt;
Wcześniej korzystałem też z logowania facebookowego, ale w sumie tylko dla uproszczenia autoryzacji. Teraz klikając po tych zakładkach: developers.facebook.com znalazłem tą dotyczącą &lt;a href='http://developers.facebook.com/docs/reference/api/' rel='nofollow'&gt;Graph API&lt;/a&gt;.&lt;br /&gt;
API przeznaczone chyba bardziej dla skryptów JS - dane przesyłane w formacie: JSON, ale odczyt w PHP jest bajecznie prosty:
&lt;textarea class='kod'&gt;
$wynik_json = file_get_contents('https://graph.facebook.com/331218348435');
$wynik_ob = json_decode($wynik_json);
&lt;/textarea&gt;
I już w zmiennej: &lt;b&gt;$wynik_ob&lt;/b&gt; mamy wszystkie publiczne informacje na temat wydarzenia, notatki, użytkownika, komentarzy, albumów użytkownika, lub strony. Część danych zabezpieczona jest tokenem (&lt;a href='http://developers.facebook.com/docs/authentication/#app-login' rel='nofollow'&gt;jak pobrać token&lt;/a&gt;). 
Token pobiera się prosto, ale musimy najpierw stworzyć aplikację i otrzymać do niej app key i secret.&lt;br /&gt;
Szczerze mówiąc z lenistwa korzystałem z tokena, który jest w przykładowych linkach w dokumentacji - czyli wygenerowanego dla mnie jako użytkownika a nie jako aplikacji (przynajmniej tak mi się wydaje). I dopiero pisząc tego posta stwierdziłem, że wypadało by to zrobić w cywilizowany sposób i tutaj pierwsza niespodzianka:
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Abyś można było wykonać tę operację, Twoje konto musi zostać zweryfikowane. Możesz to zrobić, dodając jedną z następujących informacji: telefon komórkowy lub credit card.&lt;/i&gt;&lt;/b&gt;
&lt;br /&gt;&lt;br /&gt;
Czyli na stronie:&lt;br /&gt;
&lt;a href='http://developers.facebook.com/docs/reference/api/' rel='nofollow'&gt;http://developers.facebook.com/docs/reference/api/&lt;/a&gt; dostaję token bez żadnej weryfikacji konta kartą kredytową, czy telefonem, wystarczy że jestem zalogowany :) - to ta mała dziura ;]&lt;br /&gt;
&lt;br /&gt;
Poza tym token wydaje się działać równie dobrze jak ten wycinany z URL-a ;]&lt;br /&gt;
Teraz dobry moment na przywołanie artykułu z TVN24.PL (&lt;a href='http://www.tvn24.pl/-1,1701667,0,1,facebook-_-przerazajaca-machina-do-szpiegowania,wiadomosc.html' rel='nofollow'&gt;Facebook - przerażająca machina do szpiegowania&lt;/a&gt;). Sugestia że spec służby maja mieć dostęp do danych z FB - np informację o sieci kontaktów użytkownika. Nie wiem czy FB udostępnia coś FBI, ale wiem, że z tego co udostępnia każdemu zalogowanemu userowi można spokojnie analizować sieć powiązań między użytkownikami. Nie da się podejrzeć znajomych użytkownika, ale ta niemożność jest dość pozorna. Można wiązać userów np po komentarzach w tych samych wątkach. &lt;br /&gt;&lt;br /&gt;
Ale można pomyśleć też o bardziej cywilizowanych zastosowaniach - np: prowadząc portal informacyjny można pobierać informacje o bieżących wydarzeniach np takim URLem:
&lt;textarea class='kod'&gt;
https://graph.facebook.com/119743164714329/events?access_token=[TWOJ_TOKEN]
&lt;/textarea&gt;
Wyciągniemy info o wszystkich wydarzeniach z profilu Pudziana, takim:
&lt;textarea class='kod'&gt;
https://graph.facebook.com/search?q=pudzian&amp;type=event&amp;access_token=[TWOJ_TOKEN]
&lt;/textarea&gt;
O wszystkich wydarzeniach ze słowem "pudzian". I już możemy stworzyć stronę o pudzianie, która będzie się sama aktualizowała newsami o naszym bohaterze ;]
&lt;br /&gt;&lt;br /&gt;
Można by pomyśleć o portalu informacyjnym w którym automatycznie publikowało by się wydarzenia z FB z wybranych profilów - wystarczy że user wybrał by jakiś szablon i podał linka do swojego profilu :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-1523154229004706343?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/1523154229004706343/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/facebook-graph-api-i-maa-dziura.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1523154229004706343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1523154229004706343'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/05/facebook-graph-api-i-maa-dziura.html' title='Facebook Graph API  i mała dziura'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-9220468624999356927</id><published>2011-02-09T21:02:00.011+01:00</published><updated>2011-02-09T21:32:10.051+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='przeglądarki'/><category scheme='http://www.blogger.com/atom/ns#' term='tworzenie stron'/><category scheme='http://www.blogger.com/atom/ns#' term='programowanie'/><title type='text'>Wtyczki firefox - NIEZBĘDNIK PROGRAMISTY</title><content type='html'>Postanowiłem podzielić się informacjami na tematy wtyczek jakich używam podczas pracy. Wtyczki jak webdeveloper czy firebug to już standardy, ale są też inne fajne i użyteczne narzędzia, a może ktoś coś dorzuci do listy do listy ;)??&lt;br /&gt;&lt;br /&gt;
&lt;a href='https://addons.mozilla.org/pl/firefox/addon/web-developer/' rel='nofollow' target='_blank'&gt;Web Developer&lt;/a&gt; - dokłada nam cały pasek narzędzi często używane to podgląd CSS, wyświetlanie źródła wygenerowanego przez skrypty, możliwość zaglądania i modyfikowania ciasteczek, szybkie wyłączanie javy, czy skryptów, wyświetlanie szczegółowych informacji o błędach i wiele innych...Część użytkowników narzeka na przymulanie, więc ewentualnie można wyłączyć poza pracą&lt;br /&gt;&lt;br /&gt;
&lt;a href='https://addons.mozilla.org/pl/firefox/addon/firebug/' rel='nofollow' target='_blank'&gt;FireBug&lt;/a&gt; - pozwala przeglądać i edytować kod bezpośrednio na stronie i od razu śledzić efekty, możemy też prześledzić wszystkie zapytania wysyłane podczas ładowania strony wraz z czasami odpowiedzi :)&lt;br /&gt;&lt;br /&gt;
&lt;a href='http://www.seoquake.com/' target='_blank' rel='nofollow'&gt;SeoQuake&lt;/a&gt; - dodatek głównie dla pozycjonerów, wyświetla masę informacji typu page rank, linki, statystyki słów itd... to dopiero jest przymulacz - dla programistów polecam włączanie w razie potrzeb ;)&lt;br /&gt;&lt;br /&gt;
&lt;a href='https://addons.mozilla.org/pl/firefox/addon/measureit/' rel='nofollow' target='_blank'&gt;MeasureIt&lt;/a&gt; - maleńka wtyczka objawiajaca się ikonką w lewym dolnym rogu przeglądarki, która pozwala szybko zmierzyć różne elementy, czyli szybka linijka - jak klient mówi że ma być 16px odstępu to bierzemy MeasureIt patrzymy ile jest teraz i dodajemy bądź odejmujemy właściwą liczbę, albo robimy screena i wysyłamy informację "przecież jest 16!!!" ;)&lt;br /&gt;&lt;br /&gt;
&lt;a href='https://addons.mozilla.org/en-US/firefox/addon/colorzilla/' rel='nofollow' target='_blank'&gt;ColorZilla&lt;/a&gt; - czyli kolejny maluszek siedzący w lewym dolnym rogu, który pozwala nam odczytać wartość koloru z dowolnego elementu strony :)&lt;br /&gt;&lt;br /&gt;
A teraz może ktoś coś dołoży ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-9220468624999356927?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/9220468624999356927/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/02/wtyczki-firefox-niezbednik-programisty.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/9220468624999356927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/9220468624999356927'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/02/wtyczki-firefox-niezbednik-programisty.html' title='Wtyczki firefox - NIEZBĘDNIK PROGRAMISTY'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-6081510154123045342</id><published>2011-01-31T20:30:00.006+01:00</published><updated>2011-01-31T20:47:00.521+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testowanie'/><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='domeny'/><title type='text'>hosts - czyli sposób na przetestowanie domeny przed podłączeniem</title><content type='html'>Często zdarza się, potrzebujemy przetestować działanie strony, a nie mamy jeszcze podpiętej właściwej domeny. Klient jeszcze nie wysłał danych lub tp. Niekiedy nie chcemy podpinać żeby nie było widać nie dokończonego serwisu, albo są jeszcze jakieś inne powody... Wiem, że można podpiąć stronę roboczo na subdomenie, pracować w podkatalogu, zabezpieczyć hasłem albo włazić po IP, ale wszystkie te rozwiązania mają swoje wady (pewnie po podpięciu domeny zawsze może nas coś zaskoczyć).&lt;br /&gt;
&lt;b&gt;Rozwiązanie?&lt;/b&gt;&lt;br /&gt;
Edytujemy plik:&lt;br /&gt;
&lt;b&gt;C:\Windows\System32\drivers\etc\hosts&lt;/b&gt;&lt;br /&gt;
(ścieżka dla windows 7, jak ktoś nie ma tam to proponuję użyć funkcji szukaj :) ) edycja wymaga uprawnień admina&lt;br /&gt;
Dopisujemy na końcu linijkę w formacie:&lt;br /&gt;
IP domena&lt;br /&gt;
np:&lt;br /&gt;
123.123.23.321 www.onet.pl&lt;br /&gt;
System przed odpytaniem DNS sprawdza ten plik, więc zachowa się tak jak by była przekierowana na ten IP :)&lt;br /&gt;&lt;br /&gt;
Można to też wykorzystać jeśli nie chce się czekać ok 20h po podpięciu domeny na odświeżenie DNS :)&lt;br /&gt;&lt;br /&gt;
ps. BTW plik hosts można też zastosować do blokowania dostępu do wybranych serwisów (przekierowując domeny na dowolny inny adres), poblokować jakiś spam itd...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-6081510154123045342?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/6081510154123045342/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/01/hosts-czyli-sposob-na-przetestowanie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6081510154123045342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6081510154123045342'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/01/hosts-czyli-sposob-na-przetestowanie.html' title='hosts - czyli sposób na przetestowanie domeny przed podłączeniem'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-3872839031302197498</id><published>2011-01-13T18:02:00.003+01:00</published><updated>2011-01-13T18:07:43.746+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='url'/><category scheme='http://www.blogger.com/atom/ns#' term='sklep phpmyadmin'/><category scheme='http://www.blogger.com/atom/ns#' term='magento'/><title type='text'>Magento zmiana URL</title><content type='html'>Jeśli kopiujemy magento pod inny adres (w moim wypadku kopia robocza) to w bazie danych np przez phpMyAdmina należy zmienić 2 wpisy w tabeli: &lt;b&gt;core_config_data&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;web/unsecure/base_url&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;web/secure/base_url&lt;/b&gt;&lt;br /&gt;
Na wartości aktualnego URL-a serwisu - inaczej skrypt przekierowuje uporczywie na stary adres.&lt;br /&gt;
Jeśli to nie pomoże to należy ręcznie wyczyścić cache w okrutny sposób ręcznie kasując całą zawartość katalogu: &lt;b&gt;var/cache/&lt;/b&gt;.&lt;br /&gt;
... i to tyle...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-3872839031302197498?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/3872839031302197498/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2011/01/magento-zmiana-url.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/3872839031302197498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/3872839031302197498'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2011/01/magento-zmiana-url.html' title='Magento zmiana URL'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-8436614373312895208</id><published>2010-12-29T20:15:00.009+01:00</published><updated>2010-12-30T10:58:07.990+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pozycjonowanie'/><category scheme='http://www.blogger.com/atom/ns#' term='like'/><category scheme='http://www.blogger.com/atom/ns#' term='reklama'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Automatyczny like na facebook</title><content type='html'>Wymyśliłem sobie dzisiaj automatycznego like'a na facebooka. Działanie: użytkownik klika w cokolwiek na stronie, a efektem kliknięcia jest dodanie posta na jego tablicy facebookowej (bez żadnego zezwalania na integrację itd...).&lt;br /&gt; 

Użytkownik musi być zalogowany na facebooku, a dalej jest to już dość proste: &lt;br /&gt;
1. Umieszczamy na stronie przycisk facebookowy, który można wygenerować tutaj:
&lt;a href='http://developers.facebook.com/docs/reference/plugins/like' rel='nofollow' target='_blank'&gt;http://developers.facebook.com/docs/reference/plugins/like&lt;/a&gt;&lt;br /&gt;
2. Przycisk otaczamy divem i za pomocą jquery pozycjonujemy tak żeby gonił pod kursorem
&lt;textarea class='kod'&gt;
$(document).mousemove(function(e){
 $('#facebook').css('left',e.pageX-2);
 $('#facebook').css('top',e.pageY-7);
}); 
&lt;/textarea&gt;
Efekt widać tutaj: &lt;a href='http://automat-facebook.programistawww.pl/example.php' target='_blank' rel='nofollow'&gt;http://automat-facebook.programistawww.pl/example.php&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
Pozostaje ukryć button za pomocą CSS i opacity i oprogramować zdarzenie onclick...
Niestety nie wpadłem na pomysł jak wykryć zdarzenie onclick (jest ono wewnątrz ramki do której nie mamy dostępu), więc oprogramowałem zdarzenie onblur dla dokumentu, gdzie chowam diva z facebookiem.
Całość w działaniu tutaj:
&lt;a href='http://automat-facebook.programistawww.pl/' target='_blank'&gt;http://automat-facebook.programistawww.pl/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
kod tutaj:
&lt;textarea class='kod'&gt;
&lt;script&gt;
document.write("&lt;div style='position:absolute;display:block;' id='facebook' onfocus='alert();'&gt;");
document.write('&lt;iframe id="facebookframe" name="facebookframe" src="http://www.facebook.com/plugins/like.php?href='+escape(document.location.href)+'&amp;amp;layout=standard&amp;amp;font=verdana&amp;amp;show_faces=false&amp;amp;width=100&amp;amp;colorscheme=light&amp;amp;height=30" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px !important; height:30px; top:0px; left:0px;" allowTransparency="true" scrolling="auto"&gt;&lt;/iframe&gt;');
document.write('&lt;/div&gt;');
$(document).mousemove(function(e){
 $('#facebook').css('left',e.pageX-2);
 $('#facebook').css('top',e.pageY-7);
}); 
window.document.onblur=function() {
 setTimeout("poKliku();",1000);
 
}; 
function poKliku(){
 $('#facebook').css('display','none');
}
&lt;/script&gt;
&lt;/textarea&gt;
&lt;br /&gt;&lt;br /&gt;
Ma ktoś pomysł jak zweryfikować, czy user zlikeował naszą stronę??&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-8436614373312895208?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/8436614373312895208/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/12/automatyczny-like-na-facebook.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8436614373312895208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8436614373312895208'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/12/automatyczny-like-na-facebook.html' title='Automatyczny like na facebook'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-2742822754777185920</id><published>2010-12-09T15:20:00.003+01:00</published><updated>2010-12-09T15:25:24.754+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cufon'/><category scheme='http://www.blogger.com/atom/ns#' term='czcionki na www'/><category scheme='http://www.blogger.com/atom/ns#' term='opera'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>CUFON Opera - nie działa, nie ładuje...</title><content type='html'>Odkryłem dzisiaj zabawne zachowanie znanego skryptu do specjalnych czcionek: CUFON. Jeżeli mamy w dokumencie podpięty jakikolwiek &lt;b&gt;PUSTY arkusz stylów CSS&lt;/b&gt;, to skrypt po prostu nie działa w przeglądarce opera...Trochę tajemny dla mnie ten związek, ale tak jest - odkryte po wykasowaniu zawartości pliku CSS z pluginu do systemu socialengine, w celu napisania ich od nowa :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-2742822754777185920?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/2742822754777185920/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/12/cufon-opera-nie-dziaa-nie-aduje.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2742822754777185920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2742822754777185920'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/12/cufon-opera-nie-dziaa-nie-aduje.html' title='CUFON Opera - nie działa, nie ładuje...'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-6952077199402417520</id><published>2010-09-21T18:05:00.004+02:00</published><updated>2010-09-21T18:35:02.780+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vat'/><category scheme='http://www.blogger.com/atom/ns#' term='brutto'/><category scheme='http://www.blogger.com/atom/ns#' term='faktura'/><category scheme='http://www.blogger.com/atom/ns#' term='netto'/><category scheme='http://www.blogger.com/atom/ns#' term='magento'/><category scheme='http://www.blogger.com/atom/ns#' term='subiekt'/><title type='text'>Brutto i netto na fakturach - ZAGADKA</title><content type='html'>Jestem w trakcie ciężkich bojów, w których bierze udział program Subiekt GT, mechanizm sklepu Magento, mój ukochany arkusz kalkulacyjny MS Excell oraz JA - PROGRAMISTA. Chodzi o import i synchronizację danych pomiędzy tymi delikwentami, co nawet zaczyna się udawać i jak tylko uda mi się zakończyć temat, tak, że nie będzie mi spędzał snu z powiek, to podzielę się częścią rozwiązań na blogu :) Ale nie o tym...&lt;br /&gt;
Dzisiaj zauważono, że w programie subiekt na fakturze w pozycji koszt wysyłki zamiast 16,00zł wchodzi kwota 15,99zł - wniosek: &lt;b&gt;programista oszukuje na grosiki&lt;/b&gt; (jak kiedyś ponoć jedna Pani w sklepiku szkolnym).
Na fakturę wchodzi pozycja z produktem z Subiekta, któremu wpisano cenę brutto 16zł, a subiekt sam wyliczył cenę netto (przy podatku VAT 22%) w kwocie: 13,11zł.&lt;br /&gt;
&lt;b&gt;Co robi program importu?&lt;/b&gt;&lt;br /&gt;
Łączy się z magento, pobiera zamówienia, dla każdego zamówienia tworzy fakturkę sprzedaży i do tej fakturki dodaje pozycje z zamówienia, na końcu sprawdza jeszcze rodzaj wysyłki wybrany do zamówienia i wstawia odpowiednią dostawę, która jest towarem typu: usługa w subiekcie ;)&lt;br /&gt;
Patrzy ile ten towar kosztuje i widzi cenę netto 13,11 :)&lt;br /&gt;
Wylicza więc VAT i wychodzi mu: 2,8842zł (13,11*22/100)&lt;br /&gt;
Radośnie dodaje VAT do kwoty netto: 13,11 + 2,8842 = 15,9942zł&lt;br /&gt;
Jako, że na fakturach musimy podać cenę w złotówkach kwota jest zaokrąglana do 2óch miejsc po przecinku robi więc round($cena_brutto,2); i wychodzi mu 15,99zł :)&lt;br /&gt;&lt;br /&gt;
Po długim bezskutecznym kombinowaniu jak by to wyliczyć, żeby wyszło 16,00zł wpadłem na pomysł - WPISZĘ 13,11 JAKO NETTO DO SUBIEKTA I ZOBACZĘ CO POWIE !&lt;br /&gt;
Subiekt mówi cena brutto: 15,99zł&lt;br /&gt;&lt;br /&gt;
Czyli cena netto z 16zł wynosi 13,11zł, a cena brutto z 13,11zł wynosi: 15,99zł ;)&lt;br /&gt;&lt;br /&gt;
Na koniec spróbowałem wystawić fakturę ręcznie dodając do niej dostawę - efekt: koszt dostawy na fakturze: 15,99zł :)
&lt;br /&gt;&lt;br /&gt;

Wydaje się to błahostką, ale jednak taki klient, który wybrał koszt dostawy 16zł w sklepie, może czułby się bardziej komfortowo, gdyby na fakturze też było 16zł. Np gdybym to ja kupował i żona by zobaczyła fakturę i że oszukałem ją o grosik, przecież nie chodzi o kwotę, chodzi o zasadę!!!... nie no trochę zabrnąłem, ale może ktoś mi potrafi wyjaśnić, &lt;b&gt;czy możliwe jest sprzedanie produktu w cenie 16zł brutto i wystawienie na niego faktury przy użyciu najnowszych technologii&lt;/b&gt;!?!?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-6952077199402417520?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/6952077199402417520/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/09/brutto-i-netto-na-fakturach-zagadka.html#comment-form' title='Komentarze (4)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6952077199402417520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6952077199402417520'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/09/brutto-i-netto-na-fakturach-zagadka.html' title='Brutto i netto na fakturach - ZAGADKA'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-5270085888602160714</id><published>2010-09-21T17:07:00.005+02:00</published><updated>2010-09-21T17:20:00.927+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='platnosci.pl'/><category scheme='http://www.blogger.com/atom/ns#' term='sklep'/><category scheme='http://www.blogger.com/atom/ns#' term='magento'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Magento i platnosci.pl brak kosztu wysyłki</title><content type='html'>Napotkałem niemiły błąd w sklepie opartym na magento związany z modułem platnosci.pl. Polega on na tym, że przy zamówieniu produktu i próbie zapłacenia za pomocą platnosci.pl do ceny &lt;b&gt;nie jest doliczany koszt wysyłki&lt;/b&gt;. Wynika to z błędu w module płatności (wersja 1.1).&lt;br /&gt;
Aby się go pozbyć należy w pliku: /app/code/local/Mage/Platnosci/Model/Payment.php&lt;br /&gt;
zmienić linię nr:
&lt;textarea class='kod'&gt;
$amount = $a-&gt;getBaseSubtotal () - $a-&gt;getBaseDiscountAmount ();
//czyli suma netto minus obniżki,
&lt;/textarea&gt;
zmienić na:
&lt;textarea class='kod'&gt;
$amount = $a-&gt;getGrandTotal();
//czyli rzeczywisty koszt brutto
&lt;/textarea&gt;
i już :) Rozwiązanie nie jest mojego autorstwa - leży sobie &lt;a href='http://www.magentocommerce.com/magento-connect/_/extension/233/lento_platnosci/reviews#reviews' rel='nofollow' target='_blank'&gt;tutaj&lt;/a&gt; schowane jako uwaga do modułu dodana przez "Janka".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-5270085888602160714?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/5270085888602160714/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/09/magento-i-platnoscipl-brak-kosztu.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5270085888602160714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5270085888602160714'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/09/magento-i-platnoscipl-brak-kosztu.html' title='Magento i platnosci.pl brak kosztu wysyłki'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-8374016124497148842</id><published>2010-09-14T13:08:00.005+02:00</published><updated>2010-11-15T10:31:44.956+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='błąd'/><category scheme='http://www.blogger.com/atom/ns#' term='galeria'/><category scheme='http://www.blogger.com/atom/ns#' term='error'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='picsengine'/><title type='text'>PicsEngine Declaration of AppOptions::get() should be compatible with that of SystemObject::get()</title><content type='html'>Błąd z tematu pojawia się po wejściu na stronę galerii PicsEngine po aktualizacji PHP do wersji 5.3.3 na serwerze, na którym galeria stoi ;) Problem polega na tym, że o takiej aktualizacji hostingowcy nas często nawet nie poinformują ;)&lt;br /&gt;
Cała niemiła sytuacja objawia się komunikatem z obrazka:
&lt;center&gt;
&lt;img src='http://programistawww.pl/przyklady/pe.jpg' alt='błąd picsengine' /&gt;
&lt;/center&gt;
Sprawę rozwiązuje aktualizacja PicsEngine do wersji 3.5 lub wyższej... w zależności od tego z której wersji korzystaliśmy dotąd problem sprowadza się do przeniesienia katalogów /admin/conf/ i /admin/cache/ o jeden poziom w górę i wgrania nowych plików, lub skorzystania z instrukcji pod adresem:  &lt;a href='http://www.picsengine.com/en/support/update-guide' target='_blank' rel='nofollow'&gt;http://www.picsengine.com/en/support/update-guide&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-8374016124497148842?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/8374016124497148842/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/09/picsengine-declaration-of-appoptionsget.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8374016124497148842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8374016124497148842'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/09/picsengine-declaration-of-appoptionsget.html' title='PicsEngine Declaration of AppOptions::get() should be compatible with that of SystemObject::get()'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-5456856726588751654</id><published>2010-08-07T19:08:00.009+02:00</published><updated>2010-08-20T16:33:28.875+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='justowanie'/><category scheme='http://www.blogger.com/atom/ns#' term='wdowy'/><category scheme='http://www.blogger.com/atom/ns#' term='sieroty'/><category scheme='http://www.blogger.com/atom/ns#' term='skrypt'/><category scheme='http://www.blogger.com/atom/ns#' term='tekst'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>SIEROTY i WDOWY na stronie, justowanie tekstu</title><content type='html'>Na stronach internetowych nie ma raczej zwyczaju doskonałego formatowania tekstu, ale zawsze możemy trafić na klienta, który ma coś więcej wspólnego z typografią i powie nam, że to niedopuszczalne żeby w wyjustowanym tekście były literki "i", czy inne pojedyncze znaki na końcu linii. Trudno żebyśmy teraz siedzieli i poprawiali każdy tekst na stronie, który często jest w dodatku kopiowany i wstawiany przez CMS...&lt;br /&gt;
Kiedyś wykombinowałem na to prosty skrypcik, który pozwolił uspokoić 2óch bardziej wymagających klientów, a wygląda on tak:
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
var tekst = document.getElementById('tresc').innerHTML;
tekst = tekst.replace(/(\s)([\S])[\s]+/g,"$1$2&amp;amp;nbsp;"); //jednoznakowe
//tekst = tekst.replace(/(\s)([^&lt;][\S]{1})[\s]+/g,"$1$2&amp;amp;nbsp;"); //dwuznakowe
//tekst = tekst.replace(/(\s)([^&lt;][\S]{2})[\s]+/g,"$1$2&amp;amp;nbsp;"); //trzyznakowe
document.getElementById('tresc').innerHTML = tekst;
&lt;/textarea&gt;
Skrypt wciska tzw. "twardą spację" (&amp;amp;nbsp; jak mówił Pan z PHP skrót od: "niech będą spacje") po każdym jednoznakowym słowie - wtedy automatycznie to słowo doklei się do kolejnego tak, jakby były jednym wyrazem. Dwu-znakowe i trzy-znakowe zakomentowane, bo uważam to za przesadę, a w dodatku z 3znakowymi jeśli mamy w tekście 3znakowe tagi to też pozamienia i nie zawsze to wyjdzie na dobre :)&lt;br /&gt;
tekst powinien się znajdować w elemencie o ID='tresc', ale to chyba widać ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-5456856726588751654?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/5456856726588751654/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/08/sieroty-i-wdowy-na-stronie-justowanie.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5456856726588751654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5456856726588751654'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/08/sieroty-i-wdowy-na-stronie-justowanie.html' title='SIEROTY i WDOWY na stronie, justowanie tekstu'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-1216635148172851833</id><published>2010-08-07T17:49:00.002+02:00</published><updated>2010-08-07T17:53:05.596+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='tablica'/><category scheme='http://www.blogger.com/atom/ns#' term='lista województw'/><category scheme='http://www.blogger.com/atom/ns#' term='województwa'/><title type='text'>Lista województw PHP tablica</title><content type='html'>Widzę, że &lt;a href='http://filip-lakomik.blogspot.com/2010/04/lista-panstw-php.html#comments'&gt;lista państw&lt;/a&gt; się przydała to może przyda się też lista województw. Krótsza, więc od biedy można zrobić ręcznie, ale chyba wygodniej skopiować poniższą tablicę PHP:
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
$wojewodztwa = array(
0=&gt;'dolnośląskie',
1=&gt;'kujawsko-pomorskie',
2=&gt;'lubelskie',
3=&gt;'lubuskie',
4=&gt;'łódzkie',
5=&gt;'małopolskie',
6=&gt;'mazowieckie',
7=&gt;'opolskie',
8=&gt;'podkarpackie',
9=&gt;'podlaskie',
10=&gt;'pomorskie',
11=&gt;'śląskie',
12=&gt;'świętokrzyskie',
13=&gt;'warmińsko-mazurskie',
14=&gt;'wielkopolskie',
15=&gt;'zachodniopomorskie'
); 
&lt;/textarea&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-1216635148172851833?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/1216635148172851833/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/08/lista-wojewodztw-php-tablica.html#comment-form' title='Komentarze (6)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1216635148172851833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1216635148172851833'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/08/lista-wojewodztw-php-tablica.html' title='Lista województw PHP tablica'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-7568723597958102166</id><published>2010-07-25T01:28:00.017+02:00</published><updated>2011-05-02T17:39:21.861+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pozycjonowanie'/><category scheme='http://www.blogger.com/atom/ns#' term='domeny'/><title type='text'>Domeny .co okazja?</title><content type='html'>22-07-2010 ruszyła rejestracja domen .co (Kolumbia). W Polsce pierwszy udostępnił je &lt;a href='http://tracking.novem.pl/z/12719/CD12881/' target='_blank'&gt;home.pl&lt;/a&gt; i okazały się ponoć niezłym hitem. "CO" może być kojarzone ze skrótem od takich angielskich słów jak company, corporation, czy commerce, dlatego domena ma być lepsza niż inne (podobnie jak .tv, czy .fm).&lt;br /&gt;
Zachęcony newsem spędziłem całe popołudnie sprawdzając dostępność różnych domen jakie wpadały mi do głowy ;)&lt;br /&gt;&lt;br /&gt;
Metody poszukiwań:&lt;br /&gt;
1. popularne frazy wg googla i rankingów&lt;br /&gt;
2. przegląd drogich/często odwiedzanych domen&lt;br /&gt;
3. nazwy miast i regionów&lt;br /&gt;
4. opcje z literówkami&lt;br /&gt;
5. przegląd poważniejszych witryn w popularnej domenie .co.uk&lt;br /&gt;&lt;br /&gt;
Efekty:&lt;br /&gt;
No cóż pojawiło się trochę domen, które na pozór wydały się atrakcyjne, ale po dłuższym na myślę nie kupiłem nic :)&lt;br /&gt;
Na początek coś z branży: &lt;b&gt;tworzenie-stron.co&lt;/b&gt;, a nawet &lt;b&gt;strony.co&lt;/b&gt; - tylko czy bycie na pierwszej stronie na te frazy nie będzie kosztowało więcej wysiłku niż przynosiło korzyści??&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;czcionka.co, czcionki.co, skrypty.co, chomik.co, chomikuj.co, sieci.co&lt;/b&gt; - niby fajne, ale chyba ciężko by było z tego wiele wycisnąć...&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;dziewczyny.co, azjatki.co&lt;/b&gt; - czyli coś pod stronę porno, która linkuje do kolejnej strony porno, a ta do kolejnej, w między czasie mamy już otwartych 20 okienek i wszystkie bez sensu, ale ktoś coś na tym chyba zarabia skoro się w to bawi :) &lt;br /&gt;&lt;br /&gt;
&lt;b&gt;windows-7.co&lt;/b&gt; - spóźniona, &lt;b&gt;beskidy.co&lt;/b&gt; - ale beskidy to nie bardzo korporacja ;), &lt;b&gt;kult.co&lt;/b&gt; - chyba tylko z sympatii do zespołu, &lt;b&gt;filmy-online.co&lt;/b&gt; - może jeśli ktoś ma ochotę konkurować z największymi, &lt;b&gt;cash-flow.co&lt;/b&gt; - jedyne co mi się spodobało po angielsku, &lt;b&gt;cieszyn.co&lt;/b&gt; - jako jedno z nielicznych niezajętych miast, &lt;b&gt;budownictwo.co&lt;/b&gt; - na kolejny katalog firm, &lt;b&gt;kursy.co&lt;/b&gt; - tutaj już prawie zarejestrowałem, ale wszedłem na kursy.pl i stwierdziłem, że to nie dla mnie ;)&lt;br /&gt;&lt;br /&gt;
Podstawowy problem: .co pasuje pod stronę angielskojęzyczną, a domeny z angielskimi słowami są pozajmowane ;) fajną zdobyczą mogłaby być domena pomysłowa typu: &lt;b&gt;kotly.co&lt;/b&gt;, domena z bardzo popularnym słowem/frazą, znana domena bez ".uk" na końcu - ale na to już chyba trochę za późno - zostały ochłapy :)&lt;br /&gt;&lt;br /&gt;
Koszt rejestracji 99zł netto to nie złotówka, więc człowiek nie wejdzie i nie zarejestruje 50 domen na zasadzie "a może się przyda"... &lt;br /&gt;&lt;br /&gt;
Myślę, że do wzięcia jest trochę krótkich abstrakcyjnych nazw typu: &lt;b&gt;westa.co&lt;/b&gt; i mniej hitowe ale niezłe do pozycjonowania domeny z popularnymi frazami...
&lt;a href="http://maja.co"&gt;maja&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-7568723597958102166?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/7568723597958102166/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/07/domeny-co-okazja.html#comment-form' title='Komentarze (3)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7568723597958102166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7568723597958102166'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/07/domeny-co-okazja.html' title='Domeny .co okazja?'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-2493506505583346789</id><published>2010-06-14T21:52:00.009+02:00</published><updated>2011-05-02T17:39:07.659+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='hosting'/><category scheme='http://www.blogger.com/atom/ns#' term='crontab'/><title type='text'>CRONTAB w home.pl</title><content type='html'>Na serwerach &lt;a href='http://tracking.novem.pl/z/12719/CD12881/' target='_blank'&gt;home.pl&lt;/a&gt; brakuje dostępu do crontaba :( ALE okazuje się, że mają swoje rozwiązanie - mające pewne ograniczenia, ale zdające egzamin w większości przypadków. Na serwerze w katalogu głównym umieszczamy plik, którego nazwa mówi, jak często ma być uruchamiany np:&lt;br /&gt;
&lt;b&gt;cron-daily.php&lt;/b&gt; - będzie uruchamiany raz na dzień...&lt;br /&gt;
&lt;b&gt;cron-hourly.php&lt;/b&gt; - będzie uruchamiany raz na godzinę...&lt;br /&gt;
Najczęściej pozwalają nam odpalać skrypt co 5 minut: &lt;b&gt;cron-5min.pl&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
Można też robić kombinacje typu:&lt;br /&gt;
&lt;b&gt;cron-04.php&lt;/b&gt; - codziennie o 4:00 &lt;br /&gt;&lt;br /&gt;
Jest tam jeszcze kilka opcji - szczegóły w &lt;a href='http://home.pl/dokumentacja/funkcjeserwera/skrypty/cron' rel='nofollow' target='_blank'&gt;dokumentacji&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
Nie zawsze chcemy nazywać pliki w ten sposób i nie zawsze pasuje nam umieszczanie ich w katalogu głównym, ale nie szkodzi nam w śmiesznym pliczku: cron-daily.php napisać:&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;file_get_contents('http://programistawww.pl/crontab.php');&lt;/b&gt;
&lt;br /&gt;&lt;br /&gt;
W niektórych wypadkach 5 minut to może być za rzadko, tylko, że w tych wypadkach zazwyczaj aplikacja stoi na serwerze dedykowanym, gdzie jest dostęp do crona ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-2493506505583346789?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/2493506505583346789/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/06/crontab-w-homepl.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2493506505583346789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/2493506505583346789'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/06/crontab-w-homepl.html' title='CRONTAB w home.pl'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-1864840146565862949</id><published>2010-05-27T21:31:00.019+02:00</published><updated>2010-11-15T10:32:55.855+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='platnosci.pl'/><category scheme='http://www.blogger.com/atom/ns#' term='platnosci'/><category scheme='http://www.blogger.com/atom/ns#' term='integracja'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>OBSŁUGA PŁATNOŚCI.PL W PHP</title><content type='html'>Musiałem ostatnio dorobić moduł &lt;b&gt;płatności&lt;/b&gt; do strony, gdzie nie dało się zainstalować gotowego modułu, bo go nie było :) Z szybkiego przeglądu forów wynika, że bractwo programistyczne niechętnie dzieli się kodem w tym temacie. Ja postanowiłem się podzielić podstawowym kodem. Pewnie będzie wymagał dopracowania, ale zawsze lepiej zacząć od czegoś, co chociaż w części jest zrobione.&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;Jak działają platnosci.pl w skrócie&lt;/h3&gt;
Oczywiście pisząc moduł dobrze się zapoznać z &lt;a href='http://www.platnosci.pl/download.php?files,11' rel='nofollow'&gt;dokumentacją techniczną&lt;/a&gt;, ale chodzi mi o skrót, który wygląda mniej więcej tak:&lt;br /&gt;
1. Nasz skrypt wysyła POST na stronę platnosci.pl z parametrami, z których obowiązkowe to:&lt;br /&gt; 
- pos_id - numer tzw POSa (punktu usługowego), czyli jakby jednostki przez którą ma to iść, można takich tworzyć wiele na jednym koncie i różnie je konfigurować,&lt;br /&gt; 
- pos_auth_key - kod autoryzacyjny nadany przez serwis płatności,&lt;br /&gt; 
- session_id - unikalny identyfikator,&lt;br /&gt;
- amount - kwota zakupu w groszach,&lt;br /&gt;
- desc - krótki opis,&lt;br /&gt;
- js - info, czy przeglądarka klienta obsługuje JS&lt;br /&gt;
- first_name, last_name, client_ip, email - czyli wiadomo.&lt;br /&gt;&lt;br /&gt;

2. Klient coś tam sobie klika po ich stronie i na końcu jest przekierowany na jeden z dwóch adresów, które podajemy w konfiguracji:&lt;br /&gt;
- pierwszy jest w sytuacji jak wszystko poszło OK np: mojadomena.pl/ok.php&lt;br /&gt;
- drugi w sytuacji kiedy coś nawaliło np: mojadomena.pl/error.php&lt;br /&gt;
do obydwu adresów mogą być przekazane dodatkowe parametry GETem np: mojadomena.pl/error.php?error=%error_id%&amp;order_id=%order_id%&lt;br /&gt;
UWAGA PRZEKIEROWANIE NA ok.php NIE OZNACZA, ŻE MAMY JUŻ KASĘ NA KONCIE - OZNACZA, ŻE RACZEJ POSZŁO OK, ALE TRZEBA TO SPRAWDZIĆ.&lt;br /&gt;&lt;br /&gt;

3. Ostatni etap to sprawdzanie statusów płatności. Nie potrzebujemy do tego crona. Platnosci.pl same informują nas o tym, że zaszła zmiana i wtedy musimy ją pobrać. Służy do tego 3 skrypt: mojadomena.pl/online.php Jest on wywoływany przez pltnosci.pl w momencie gdy zajdzie jakaś zmiana i wtedy on sam powinien zapytać płatności o zmianę i ją obsłużyć.&lt;br /&gt;&lt;br /&gt;
&lt;h3&gt;implementacja&lt;/h3&gt;

ad1. Ta część jest prosta i zrealizuje ją prosty formularz, przykładowy jest w klasie &lt;a href='http://programistawww.pl/przyklady/platnoscipl.php.txt'&gt;platnoscipl&lt;/a&gt; - mojego autorstwa, ale mocno inspirowana klasą z prestashopa ;)w metodzie: orderForm(). Prawie identyczny formularz jest w dokumentacji platnosci.pl. Przed wyświetleniem formularza należy stworzyć order metodą podobną do: createOrder(); żeby się ustawiły pola w klasie platnoscipl wykorzystywane w formularzu;]&lt;br /&gt;&lt;br /&gt;

ad2. Jako error.php i ok.php posłuży skrypt z szablonem naszej strony, który w części głównej wypluje coś w rodzaju:
&lt;textarea class='kod'&gt;
&lt;h2 class="h2s"&gt;BŁĄD PŁATNOŚCI&lt;/h2&gt;
&lt;?php
require('platnoscipl.php');
$ppl = new platnoscipl();
$dane_zamowienia = mysql_query("SELECT * FROM tabela_z_zamowieniami WHERE order_id='{$_GET['order']}'");
$dane_zamowienia= mysql_fetch_assoc($dane_zamowienia);
$kwotazl = $ppl-&gt;zlotowki($dane_zamowienia['amount']);
$status = $ppl-&gt;getStatus($dane_zamowienia['status']);
echo "
 kwota: {$kwotazl} PLN&lt;br /&gt;
 opis zamówienia: {$dane_zamowienia['desc']}&lt;br /&gt;
 status: {$status['message']}&lt;br /&gt;
 &lt;span style='color:#FF0000;'&gt;{$ppl-&gt;errorMsg($_GET['error'])}&lt;/span&gt;
";
?&gt;
&lt;/textarea&gt;
ok.php jest analogiczny, tylko bez errora i z weselszym tytułem, więc nie piszę...
&lt;br /&gt;&lt;br /&gt;

ad3. I na koniec zostaje plik komunikujący się "na serio" z płatnościami: &lt;a href='http://programistawww.pl/przyklady/online.php.txt'&gt;online.php&lt;/a&gt; - też mój, ale wykorzystane fragmenty kodu modułu płatności do prestashopa, bo tak prościej.&lt;br /&gt;&lt;br /&gt;

Pliki są wycięte z wersji beta aplikacji, którą piszę, następnie okrojone i dodatkowo okomentowane i po tym okrojeniu już nie testowane, więc mogły wkraść się drobne błędy ;) Myślę, że z nimi dużo łatwiej niż z samą treścią dokumentacji ;)&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-1864840146565862949?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/1864840146565862949/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/obsuga-patnoscipl-w-php.html#comment-form' title='Komentarze (14)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1864840146565862949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1864840146565862949'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/obsuga-patnoscipl-w-php.html' title='OBSŁUGA PŁATNOŚCI.PL W PHP'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>14</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-7336539021024006798</id><published>2010-05-24T23:41:00.007+02:00</published><updated>2010-05-27T21:31:31.528+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bazy danych'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='daty'/><title type='text'>Losowe daty w MySQL</title><content type='html'>Generowałem ostatnio bazę danych katalogu stron i już po uruchomieniu zorientowałem się, że dobrze by było jak by wpisy miały &lt;b&gt;zróżnicowane daty&lt;/b&gt;. &lt;br /&gt;
Można to uzyskać pisząc jedno sprytne zapytanie do bazy:&lt;br /&gt;
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
UPDATE nazwa_tabeli SET data= '2010-01-01′ + interval rand()*150 day
&lt;/textarea&gt;

2010-01-01 - to &lt;b&gt;data początkowa&lt;/b&gt;&lt;br /&gt;
150 - to liczba dni jaką MAKSYMALNIE dodajemy do daty początkowej generując kolejne daty&lt;br /&gt;
&lt;br /&gt;
Jeszcze by się jakiemuś robotowi nie spodobało, że wszystkie wpisy mają jedną datę ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-7336539021024006798?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/7336539021024006798/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/losowe-daty-w-mysql.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7336539021024006798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7336539021024006798'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/losowe-daty-w-mysql.html' title='Losowe daty w MySQL'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-1087637386943393140</id><published>2010-05-21T20:29:00.009+02:00</published><updated>2010-05-27T21:30:43.184+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HINTY'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>WYŁĄCZYĆ HINT z ALT-em OBRAZKA w IE</title><content type='html'>Korzystając ze skryptów prezentujących obrazki często wpadamy na pomysł, żeby wykorzystać atrybuty &lt;b&gt;alt&lt;/b&gt;, lub &lt;b&gt;title&lt;/b&gt; w sposób inny niż wynika z ich HTML-owego przeznaczenia.&lt;br /&gt;
W jednym z ostatnich projektów wykorzystywałem skrypt &lt;b&gt;imageflow&lt;/b&gt;, który atrybut alt obrazka wyświetla jako etykietę. Do alta wstawiłem więc ostylowaną tabelę. Wszystko działa, skrypt pobiera z atrybutu alt kod HTML i wstawia go do właściwego DIV-a...&lt;br /&gt;
PROBLEM W TYM, ŻE IE PO NAJECHANIU WYŚWIETLA KOD TABELI :(&lt;br /&gt;
Rozwiązanie okazuje się proste:
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
&lt;img src='link obrazka' alt='kod HTML' title='' /&gt;
&lt;/textarea&gt;
Czyli jeśli wpiszemy title='' to IE nie będzie wyświetlał hinta z altem. Żeby się za dużo nie napisać można to zmienić skryptem. W imageflow po linii 566 dopisać:
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
/* Display new caption */
var caption = thisObject.imagesDiv.childNodes[imageID].getAttribute('alt'); //pobranie etykiety
thisObject.imagesDiv.childNodes[imageID].setAttribute('title','');//dodane wyczyszczenie title
&lt;/textarea&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-1087637386943393140?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/1087637386943393140/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/wyaczyc-hint-z-alt-em-obrazka-w-ie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1087637386943393140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1087637386943393140'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/wyaczyc-hint-z-alt-em-obrazka-w-ie.html' title='WYŁĄCZYĆ HINT z ALT-em OBRAZKA w IE'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-7873471852259574749</id><published>2010-05-06T17:09:00.014+02:00</published><updated>2010-05-06T17:34:52.221+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='znikanie treści'/><category scheme='http://www.blogger.com/atom/ns#' term='strony www'/><category scheme='http://www.blogger.com/atom/ns#' term='roboty'/><category scheme='http://www.blogger.com/atom/ns#' term='alexa'/><title type='text'>ZNIKANIE TREŚCI STRONY - ROBOTY</title><content type='html'>Kilka dni temu robiłem modyfikacje na portalu opartym o live framework. Nie jestem autorem kodu, ale zmiany nie były duże, wymagały jedynie rozbudowy jednej tabeli i drobnych zmian w zapytaniach.&lt;br /&gt;&lt;br /&gt;
Po kliku dniach okazało się, że ze strony &lt;b&gt;zniknęła większość artykułów&lt;/b&gt; oraz ogłoszeń. Pomimo ciężkich rozmyślań nad możliwością namieszania czegoś przeze mnie nie mogłem dojść jak modyfikacja kilku selectów i skórek mogą by spowodować skasowanie danych z bazy mysql. Rozmyślanie było tym bardziej utrudnione, ponieważ spora część kodu strony była zaszyfrowana. &lt;br /&gt;
Właściwie pozostało mi zdenerwowanie, że z powodu zmian wartych kilka groszy wyjdę na gościa, co psuje portale... i wtedy znalazłem &lt;a href="http://blog.adiasz.pl/2007/12/13/bot-alexacom-i-znikajace-dane-w-serwisach/" rel="nofollow"&gt;ARTYKUŁ&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;
Okazało się, że rzeczywiście administratorka portalu miała zainstalowany &lt;b&gt;alexa toolbar&lt;/b&gt;, a w panelu linki do kasowania artykułów były zwykłymi linkami (bez żadnego skryptowego potwierdzenia itp...). Prawdopodobnie sama aplikacja alexa toolbar łazi po wszystkich linkach jakie widzi (a nie robot komunikujący się z aplikacją - to przypuszczenie, ale tak chyba prościej), ale wszystko jedno - pewne jest to, że jest to trudna do przewidzenia dziura, która może być w wielu systemach. Ciężko się zabezpieczyć przed czymś, co działa po stronie zalogowanej do panelu przeglądarki... Taka aplikacja może zrobić właściwie wszystko co może zrobić użytkownik: skasować, zrobić zakupy, a może nawet zrobić przelew??&lt;br /&gt;
Wczoraj robiłem porządek na komputerze żony i znalazłem na nim z 5 toolbarów: skype, winamp i jakieś mało znane. Oczywiście nie muszę dodawać, że żaden z nich nie był przez nią używany - nawet nie wiedziała co to jest ;)&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;DLATEGO LUDZIE PATRZCIE CO INSTALUJECIE, BO ONE SIĘ SAME NIE INSTALUJĄ!!!!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-7873471852259574749?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/7873471852259574749/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/znikanie-tresci-strony-roboty.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7873471852259574749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/7873471852259574749'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/znikanie-tresci-strony-roboty.html' title='ZNIKANIE TREŚCI STRONY - ROBOTY'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-8178226759676983074</id><published>2010-05-05T01:47:00.002+02:00</published><updated>2010-05-05T01:49:30.149+02:00</updated><title type='text'>Scuttle - tworzenie zaplecza</title><content type='html'>Polecam &lt;a href="http://www.fabrykaspamu.pl/niesamowity-scuttle/"&gt;artykuł&lt;/a&gt; :)&lt;br /&gt;
i zapraszam na stronę: &lt;a href="http://jezyk-angielski.eu/"&gt;jezyk-angielski.eu&lt;/a&gt;, która jest jednocześnie testem tego skryptu :) odezwę się w przyszłości, jeśli okaże się testem udanym :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-8178226759676983074?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/8178226759676983074/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/scuttle-tworzenie-zaplecza.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8178226759676983074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8178226759676983074'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/scuttle-tworzenie-zaplecza.html' title='Scuttle - tworzenie zaplecza'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-3438630523137676516</id><published>2010-05-03T13:24:00.004+02:00</published><updated>2010-05-03T13:31:05.286+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ustawienia serwera'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='htaccess'/><title type='text'>KOLEJNOŚĆ ŁADOWANIA PLIKÓW index.html, index.php - .htaccess</title><content type='html'>Krótka informacja jak zmusić serwer do załadowania tego, czego chcemy, jeśli użytkownik nie wpisze nazwy pliku. Domyślnie zwykle jest ładowany plik index.html, jeśli takiego nie ma to index.php itd...&lt;br /&gt;
Kolejność można zmienić w pliku .htaccess, jeśli mamy do niego dostęp za pomocą instrukcji:&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;DirectoryIndex index.php index.html&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;
możemy tam wypisać dowolne pliki oddzielone spacją. Należy zwrócić uwagę, że jeśli w katalogu nie znajduje się żaden z wymienionych plików, to serwer może wyświetlić listing katalogu, co nie zawsze jest wskazane.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-3438630523137676516?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/3438630523137676516/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/kolejnosc-adowania-plikow-indexhtml.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/3438630523137676516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/3438630523137676516'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/kolejnosc-adowania-plikow-indexhtml.html' title='KOLEJNOŚĆ ŁADOWANIA PLIKÓW index.html, index.php - .htaccess'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-1919823438863882306</id><published>2010-05-01T23:19:00.008+02:00</published><updated>2010-11-15T10:34:23.417+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='praca magisterska'/><category scheme='http://www.blogger.com/atom/ns#' term='praca licencjacka'/><category scheme='http://www.blogger.com/atom/ns#' term='antyplagiat'/><title type='text'>ANTYPLAGIAT CO POTRAFI?</title><content type='html'>Generalnie wydaje mi się, że &lt;b&gt;antyplagiat&lt;/b&gt;, jest przez środowiska uczelniane mocno przeceniany i jawi się jako system, który wykrywa w pracach podobieństwa, o których nawet sam "autor" nie wie. Nie znam tego systemu od strony technicznej, ale moim zdaniem w obecnych czasach przeciętny system informatyczny nie jest w stanie wykryć takich rzeczy jak:&lt;br /&gt;&lt;br /&gt;
- tłumaczenie tekstu - nie potrafi przetłumaczyć, więc tym bardziej porównać tłumaczenia, on chyba w ogóle nie sprawdza tłumaczenia, ale nawet gdyby sprawdzał to może to zrobić bardzo prymitywnie,&lt;br /&gt;&lt;br /&gt;
- streszczony większy fragment - nie "rozumie" sensu, więc nie widzi związku miedzy tekstem źródłowym a streszczeniem, zresztą streszczenie nie jest plagiatem,&lt;br /&gt;&lt;br /&gt;
- tekst sparafrazowany i przemieszany - jest w stanie na podstawie powtarzania się wyrazów (czy ich synonimów, chociaż tutaj pewnie w ograniczony sposób) w dłuższym fragmencie tekstu stwierdzić podobieństwo między tym fragmentem, a fragmentem źródłowym. ALE TYLKO w sytuacji jeżeli ktoś parafrazował zdanie po zdaniu (i to jeszcze prymitywnie, robiąc tylko jakieś przestawienia), jeżeli natomiast zdania są parafrazowane, a w dodatku przemieszane zdaniami własnymi, albo zaczerpniętymi z innego źródła, to nie ma wystarczająco długich fragmentów, żeby można było stwierdzić podobieństwo. Chyba, że próbował by składać różne fragmenty z ułożonych zdań i porównywać, ale złożoność by okropnie wzrosła, a i tak by pewnie niewiele z tego było, bo zaraz by się okazało, że każdy tekst jest plagiatem każdego :)&lt;br /&gt;&lt;br /&gt;
Dodatkowo:&lt;br /&gt;&lt;br /&gt;
- nie każde źródło internetowe z założenia jest w bazie antyplagiatu - pomijając same ograniczenia co do objętości internetu, dochodzą różne zabezpieczenia publikowanych materiałów (uniemożliwiające ich automatyczne kopiowanie), lub wynikające z samego formatu plików - np: analiza tekstu zawartego w pliku graficznym jest na tyle kłopotliwa, że z pewnością takie teksty nie są brane pod uwagę, pliki flash, zabezpieczone PDF-y, pliki spakowane (zabezpieczone hasłem), materiały dostępne po zalogowaniu, dostępne w sieciach P2P itd. itp.&lt;br /&gt;&lt;br /&gt;
Podsumowując moja uproszczona wizja tego systemu, jest taka, że:&lt;br /&gt;
- posiada bazę najpopularniejszych źródeł do najpopularniejszych tematów + bazę synonimów,&lt;br /&gt;
- szuka w tej bazie przede wszystkim powtarzających się fragmentów i fraz, oraz powtarzających się podobnych fragmentów (czyli z tymi samymi słowami, lub ich przestawieniami),&lt;br /&gt;
- potrafi do tego policzyć proste statystyki i tyle....&lt;br /&gt;&lt;br /&gt;
Dlaczego więc taki straszny?&lt;br /&gt;
Moje zdanie jest bezwzględne jak ten system:&lt;br /&gt;
Ludzie od dawna przeklepują (bardziej lub mniej bezmyślnie) książki. Jeszcze niedawno OCR był uważany za niezbędnik podczas pisania pracy, bo można przeskanować książkę i wkleić do pracy bez przepisywania - HURRA ;) W dodatku mają podobne i szablonowe tematy, które często dostają na liście do wyboru do obdzielenia się (ciekawe czy lista powtarza się co roku, czy chociaż co 2 lata). Korzystają z tych samych źródeł - zarówno jeśli chodzi o książki, bo albo biorą to co jest w bibliotece, albo to, co poleca promotor (trudno żeby każdemu polecił co innego), jak i o źródła internetowe (pierwsze wyniki google, wikipedia itp.). Ze strachu przed antyplagiatem robią masę przypisów, bo przecież mają przypis, więc to nie jest plagiat, a dla systemu tytuł książki w przypisie to tylko kolejny powtórzony tekst. Marnują czas na sztuczne przestawianie wyrazów i szukanie synonimów, zamiast przeczytać 2 strony w dwóch źródłach i napisać o czym one są... Boją się napisać czegokolwiek samemu, czegoś, co wynika z książki, ale nie jest w niej wyklepane czarno na białym. Przecież można napisać zdanie wniosku, własny przekład, cokolwiek. Jak to będzie naiwne, nieciekawe, czy bez sensu to nic się takiego chyba nie stanie - najwyżej będzie trzeba albo swój pomysł obronić, albo powiedzieć:  "OK nie mam racji" i albo zmienić, albo trudno - już poszło ;) Niestety ludzie uwielbiają używać argumentu: "Przecież tak jest w książce"...( w domyśle: "Sami mi ją kazaliście przeczytać to się teraz odczepcie").&lt;br /&gt;
Człowiek, którego praca jest frankensteinem złożonym na szybko z wikipedii, innych prac półfrankensteinów i książkowych definicji w momencie kiedy nie przepuszcza jej antyplagiat i robi się afera nie powie przecież:&lt;br /&gt;
"Tak skopiowałem to na szybko w ciągu ostatniego tygodnia i z braku czasu nie testowałem w necie za 30zł, tylko oddałem - co miałem do stracenia i tak już po terminie by było...". Będzie za to udawał wielkie zdziwienie, mówił jak to brutalny system jest niesprawiedliwy itd... Promotor ma masę prac do sprawdzenia, pełno studentów, którzy przychodzą, albo nie na te seminaria, mało czasu, dużo pracy, stara się być wyrozumiały, sam w końcu kiedyś przechodził coś podobnego i z perspektywy widzi, że nie była to najważniejsza sprawa w jego życiu. Stara się więc problem plagiatu załagodzić, trochę broni studenta, jest lekko sceptycznie nastawiony do systemu... Student skarży się kolegom na niedobry antyplagiat, sprawa roznosi się dalej i dalej... każdy dokłada swoje 3 grosze, że mu to i tamto podkreśliło, "a przecież zmieniał" (miał pisać a nie zmieniać)... Powstaje mit systemu, który jest tak sprawny, że autorom science fiction się o podobnym nie śniło.&lt;br /&gt;
ALE&lt;br /&gt;
Wszystko wskazuje na to, że jest to stosunkowo proste narzędzie, które wykrywa tylko najbardziej bezmyślne, bezczelne i leniwe kopiowanie ;)
&lt;br /&gt;&lt;br /&gt;
Dla wszystkich, którzy są przerażeni systemem wynik przetestowania 2óch pierwszych rozdziałów mojej pracy, które wielkim dziełem na prawdę nie są ;) (to 0.3 to tytuł ksiązkiw stawiony 3 razy jako op. cit.)&lt;br /&gt;&lt;br /&gt;
&lt;img src='http://programistawww.pl/przyklady/antyplagiat.jpg' alt='antyplagiat wyniki' /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-1919823438863882306?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/1919823438863882306/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/antyplagiat-co-potrafi.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1919823438863882306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1919823438863882306'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/05/antyplagiat-co-potrafi.html' title='ANTYPLAGIAT CO POTRAFI?'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-6506815563072437387</id><published>2010-04-29T19:33:00.013+02:00</published><updated>2010-05-01T23:41:15.640+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hasło'/><category scheme='http://www.blogger.com/atom/ns#' term='prestashop'/><title type='text'>RESET HASŁA administratora PRESTASHOP</title><content type='html'>Krótka informacja, ale przydatna, czyli jak &lt;b&gt;zrestartować hasło&lt;/b&gt; w sklepie prestashop mając dostęp do FTP i bazy danych.&lt;br /&gt;&lt;br /&gt;
1. otwieramy plik: config/settings.inc.php i szukamy w nim definicji stałej "&lt;b&gt;_COOKIE_KEY_&lt;/b&gt;" - jest to długi ciąg trudno zrozumiałych znaków ;)&lt;br /&gt;
2. w bazie danych wykonujemy następujące zapytanie:&lt;br /&gt;
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
UPDATE ps_employee SET passwd = md5("[_COOKIE_KEY_][nowe hasło]”) WHERE email = '[naszemail@gmail.com]';
&lt;/textarea&gt;
&lt;br /&gt;&lt;br /&gt;
[_COOKIE_KEY_] - to znaleziony w pliku ciąg znaków,&lt;br /&gt;
[nowe hasło] - to nowe hasło :),&lt;br /&gt;
[naszemail@gmail.com] - to e-mail admina sklepu&lt;br /&gt;
ps_ - to domyślny prefix nazw tabel w bazie danych, można go zmienić podczas instalacji, więc zamiast ps_employee, może się zdarzyć: XXXX_employee.&lt;br /&gt;&lt;br /&gt;
Oczywiście jak nie pamiętamy maila to można go zobaczyć w tabeli XXXX_employee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-6506815563072437387?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/6506815563072437387/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/reset-hasa-administratora-prestashop.html#comment-form' title='Komentarze (1)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6506815563072437387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6506815563072437387'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/reset-hasa-administratora-prestashop.html' title='RESET HASŁA administratora PRESTASHOP'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-8899667460299679323</id><published>2010-04-20T01:14:00.003+02:00</published><updated>2010-05-01T23:40:58.698+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='odświeżanie treści'/><title type='text'>ODŚWIEŻANIE AJAX I JQUERY</title><content type='html'>Witam dzisiaj krótki skrypt, robiący to samo, co opisany &lt;a href="/2010/03/cache-ie-ajax-odswiezanie-tresci.html"&gt;tutaj&lt;/a&gt;, tylko zamiast prototype, wykorzystany jest jQuery. Nie zawsze jest nam na rękę includować prototype ;]&lt;br /&gt;

&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
setInterval("aktualizuj(link,id);",1000);
function aktualizuj(link, id){
 $.post(link,{ ie: bebok }, function(data) {
   document.getElementById(id).innerHTML = data;
 });
}
&lt;/textarea&gt;
Dane wysyłane postem,ponieważ internet explorer cachuje pobrania GETem. &lt;br /&gt;
1000 to liczba milisekund, co jaką treść ma być odświeżana. &lt;br /&gt;
link to link do treści &lt;br /&gt;
id to id elementu, do którego będzie załadowana treść.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-8899667460299679323?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/8899667460299679323/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/odswiezanie-ajax-i-jquery.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8899667460299679323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8899667460299679323'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/odswiezanie-ajax-i-jquery.html' title='ODŚWIEŻANIE AJAX I JQUERY'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-6084053778784092900</id><published>2010-04-15T00:28:00.010+02:00</published><updated>2010-05-01T23:41:30.223+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pozycjonowanie'/><category scheme='http://www.blogger.com/atom/ns#' term='wp'/><title type='text'>NISKA POZYCJA W WP</title><content type='html'>Dawno, dawno temu moje nieliczne i średnio wykonane strony www zajmowały dobre pozycje w wyszukiwarce WP - zwykle wyższe niż w google. Mówiąc bardzo na oko ze 2 lata temu się to zmieniło i praktycznie nie miały żadnej istotnej pozycji.&lt;br /&gt;
W sumie olewałem ten temat, bo z WP nie ma za wiele wejść, a na jakieś szczególne zajmowanie się pozycjonowaniem nie mam czasu, ale nie dawno zupełnie przypadkowo natrafiłem na rozwiązanie problemu:&lt;br /&gt;
WP ma swój katalog: &lt;a href='http://katalog.wp.pl/' rel='nofollow'&gt;katalog.wp.pl&lt;/a&gt; i  najistotniejszą rzeczą ważącą na pozycji naszej strony jest to, czy jesteśmy do niego dopisani. Dlaczego? bo wpis kosztuje 9zł?&lt;br /&gt;
Wszystko jedno - moja skromna stronka jakiś tydzień po dodaniu do katalogu (może z lekkim okładem) z jakiejś dalekiej otchłani wskoczyła na 1 miejsce na frazę: &lt;b&gt;programista freelancer&lt;/b&gt;&lt;br /&gt;
&lt;img src='http://programista-bielsko.home.pl/przyklady/pozycja_wp.jpg' /&gt;
&lt;br /&gt;
Na kilka innych fraz ze słowami &lt;span style="font-weight:bold;"&gt;PHP&lt;/span&gt; i &lt;span style="font-weight:bold;"&gt;programista&lt;/span&gt; też jest dobrze, a w dodatku pokazał się różowy znaczek "nowa", który jeszcze bardziej ją wyróżnia. Opis wzięty jest z katalogu, więc mamy nad nim pełną kontrolę - i to wszystko za 9zł, w dodatku płatne SMS ;]&lt;br /&gt;
Nic tylko oferować klientom pozycjonowanie w WP za kilka stów/miesiąc ;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-6084053778784092900?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/6084053778784092900/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/niska-pozycja-w-wp.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6084053778784092900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6084053778784092900'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/niska-pozycja-w-wp.html' title='NISKA POZYCJA W WP'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-6040450627903330322</id><published>2010-04-13T00:16:00.003+02:00</published><updated>2010-05-01T23:41:50.323+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='tablica'/><category scheme='http://www.blogger.com/atom/ns#' term='państwa'/><title type='text'>LISTA PAŃSTW PHP</title><content type='html'>Lista państw świata, jako tablica PHP - do wykorzystania w aplikacjach :)
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
$lista_panstw = array(
"1"=&gt;"Abchazja",
"2"=&gt;"Afganistan",
"3"=&gt;"Albania",
"4"=&gt;"Algieria",
"5"=&gt;"Andora",
"6"=&gt;"Angola",
"7"=&gt;"Antigua i Barbuda",
"8"=&gt;"Arabia Saudyjska",
"9"=&gt;"Argentyna",
"10"=&gt;"Armenia",
"11"=&gt;"Australia",
"12"=&gt;"Austria",
"13"=&gt;"Azerbejdżan",
"14"=&gt;"Bahamy",
"15"=&gt;"Bahrajn",
"16"=&gt;"Bangladesz",
"17"=&gt;"Barbados",
"18"=&gt;"Belgia",
"19"=&gt;"Belize",
"20"=&gt;"Benin",
"21"=&gt;"Bhutan",
"22"=&gt;"Białoruś",
"23"=&gt;"Birma",
"24"=&gt;"Boliwia",
"25"=&gt;"Bośnia i Hercegowina",
"26"=&gt;"Botswana",
"27"=&gt;"Brazylia",
"28"=&gt;"Brunei",
"29"=&gt;"Bułgaria",
"30"=&gt;"Burkina Faso",
"31"=&gt;"Burundi",
"32"=&gt;"Chile",
"33"=&gt;"Chiny",
"34"=&gt;"Chorwacja",
"35"=&gt;"Cypr",
"36"=&gt;"Cypr Północny",
"37"=&gt;"Czad",
"38"=&gt;"Czarnogóra",
"39"=&gt;"Czechy",
"40"=&gt;"Dania",
"41"=&gt;"Demokratyczna Republika Konga",
"42"=&gt;"Dominika",
"43"=&gt;"Dominikana",
"44"=&gt;"Dżibuti",
"45"=&gt;"Egipt",
"46"=&gt;"Ekwador",
"47"=&gt;"Erytrea",
"48"=&gt;"Estonia",
"49"=&gt;"Etiopia",
"50"=&gt;"Fidżi",
"51"=&gt;"Filipiny",
"52"=&gt;"Finlandia",
"53"=&gt;"Francja",
"54"=&gt;"Gabon",
"55"=&gt;"Gambia",
"56"=&gt;"Ghana",
"57"=&gt;"Górski Karabach",
"58"=&gt;"Grecja",
"59"=&gt;"Grenada",
"60"=&gt;"Gruzja",
"61"=&gt;"Gujana",
"62"=&gt;"Gwatemala",
"63"=&gt;"Gwinea",
"64"=&gt;"Gwinea Bissau",
"65"=&gt;"Gwinea Równikowa",
"66"=&gt;"Haiti",
"67"=&gt;"Hiszpania",
"68"=&gt;"Holandia",
"69"=&gt;"Honduras",
"70"=&gt;"Indie",
"71"=&gt;"Indonezja",
"72"=&gt;"Irak",
"73"=&gt;"Iran",
"74"=&gt;"Irlandia",
"75"=&gt;"Islandia",
"76"=&gt;"Izrael",
"77"=&gt;"Jamajka",
"78"=&gt;"Japonia",
"79"=&gt;"Jemen",
"80"=&gt;"Jordania",
"81"=&gt;"Kambodża",
"82"=&gt;"Kamerun",
"83"=&gt;"Kanada",
"84"=&gt;"Katar",
"85"=&gt;"Kazachstan",
"86"=&gt;"Kenia",
"87"=&gt;"Kirgistan",
"88"=&gt;"Kiribati",
"89"=&gt;"Kolumbia",
"90"=&gt;"Komory",
"91"=&gt;"Kongo",
"92"=&gt;"Korea Południowa",
"93"=&gt;"Korea Północna",
"94"=&gt;"Kosowo",
"95"=&gt;"Kostaryka",
"96"=&gt;"Kuba",
"97"=&gt;"Kuwejt",
"98"=&gt;"Laos",
"99"=&gt;"Lesotho",
"100"=&gt;"Liban",
"101"=&gt;"Liberia",
"102"=&gt;"Libia",
"103"=&gt;"Liechtenstein",
"104"=&gt;"Litwa",
"105"=&gt;"Luksemburg",
"106"=&gt;"Łotwa",
"107"=&gt;"Macedonia",
"108"=&gt;"Madagaskar",
"109"=&gt;"Malawi",
"110"=&gt;"Malediwy",
"111"=&gt;"Malezja",
"112"=&gt;"Mali",
"113"=&gt;"Malta",
"114"=&gt;"Maroko",
"115"=&gt;"Mauretania",
"116"=&gt;"Mauritius",
"117"=&gt;"Meksyk",
"118"=&gt;"Mikronezja",
"119"=&gt;"Mołdawia",
"120"=&gt;"Monako",
"121"=&gt;"Mongolia",
"122"=&gt;"Mozambik",
"123"=&gt;"Naddniestrze",
"124"=&gt;"Namibia",
"125"=&gt;"Nauru",
"126"=&gt;"Nepal",
"127"=&gt;"Niemcy",
"128"=&gt;"Niger",
"129"=&gt;"Nigeria",
"130"=&gt;"Nikaragua",
"131"=&gt;"Norwegia",
"132"=&gt;"Nowa Zelandia",
"133"=&gt;"Oman",
"134"=&gt;"Osetia Południowa",
"135"=&gt;"Pakistan",
"136"=&gt;"Panama",
"137"=&gt;"Papua - Nowa Gwinea",
"138"=&gt;"Paragwaj",
"139"=&gt;"Peru",
"140"=&gt;"Polska",
"141"=&gt;"Portugalia",
"142"=&gt;"Republika Południowej Afryki",
"143"=&gt;"Republika Środkowoafrykańska",
"144"=&gt;"Republika Zielonego Przylądka",
"145"=&gt;"Rosja",
"146"=&gt;"Rumunia",
"147"=&gt;"Rwanda",
"148"=&gt;"Saint Kitts i Nevis",
"149"=&gt;"Saint Lucia",
"150"=&gt;"Saint Vincent i Grenadyny",
"151"=&gt;"Salwador",
"152"=&gt;"Samoa",
"153"=&gt;"San Marino",
"154"=&gt;"Senegal",
"155"=&gt;"Serbia",
"156"=&gt;"Seszele",
"157"=&gt;"Sierra Leone",
"158"=&gt;"Singapur",
"159"=&gt;"Słowacja",
"160"=&gt;"Słowenia",
"161"=&gt;"Somalia",
"162"=&gt;"Somaliland",
"163"=&gt;"Sri Lanka",
"164"=&gt;"Stany Zjednoczone",
"165"=&gt;"Suazi",
"166"=&gt;"Sudan",
"167"=&gt;"Surinam",
"168"=&gt;"Syria",
"169"=&gt;"Szwajcaria",
"170"=&gt;"Szwecja",
"171"=&gt;"Tadżykistan",
"172"=&gt;"Tajlandia",
"173"=&gt;"Tajwan",
"174"=&gt;"Tanzania",
"175"=&gt;"Timor Wschodni",
"176"=&gt;"Togo",
"177"=&gt;"Tonga",
"178"=&gt;"Trynidad i Tobago",
"179"=&gt;"Tunezja",
"180"=&gt;"Turcja",
"181"=&gt;"Turkmenistan",
"182"=&gt;"Tuvalu",
"183"=&gt;"Uganda",
"184"=&gt;"Ukraina",
"185"=&gt;"Urugwaj",
"186"=&gt;"Uzbekistan",
"187"=&gt;"Vanuatu",
"188"=&gt;"Watykan",
"189"=&gt;"Wenezuela",
"190"=&gt;"Węgry",
"191"=&gt;"Wielka Brytania",
"192"=&gt;"Wietnam",
"193"=&gt;"Włochy",
"194"=&gt;"Wybrzeże Kości Słoniowej",
"195"=&gt;"Wyspy Salomona",
"196"=&gt;"Wyspy Świętego Tomasza i Książęca",
"197"=&gt;"Zambia",
"198"=&gt;"Zimbabwe",
"199"=&gt;"Zjednoczone Emiraty Arabskie"
);
&lt;/textarea&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-6040450627903330322?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/6040450627903330322/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/lista-panstw-php.html#comment-form' title='Komentarze (4)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6040450627903330322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/6040450627903330322'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/lista-panstw-php.html' title='LISTA PAŃSTW PHP'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-4059323680236810284</id><published>2010-04-08T13:43:00.010+02:00</published><updated>2010-05-01T23:42:06.945+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='optymalizacja'/><title type='text'>Wolne działanie tabeli MySQL</title><content type='html'>Nie jestem specjalistą od baz danych, więc pewnie dlatego pojawił mi się dzisiaj dziwny problem z tabelą w bazie, której przeglądnięcie pomimo niewielkiej liczby rekordów (200 z hakiem) trwało wieki.&lt;br /&gt;
Co się okazuje? &lt;b&gt;MySQL&lt;/b&gt; podczas kasowania danych w tabeli nie usuwa ich fizycznie, tylko nadpisuje jakimiś swoimi zerami, nullami, czy czymś podobnym ;)&lt;br /&gt; 
NIe będę się tutaj rozpisywał, bo nie o to chodzi, ale dane typu tekstowego są przechowywane jako listy linkowane, więc 'pełne' usuwanie byłoby długie, ale za to przez taki śmietnik wyszukiwanie robi się dłuższe, bo wskaźnik chodzi po pustych rekordach. Informację o tym śmietniku MySQL pokazuje nam jako: &lt;strong&gt;NADMIAR&lt;/strong&gt;. Tabela, która mi się zamuliła jest częścią systemu mailingowego i służy jako bufor, wszystkie maile są wrzucane do niej, a skrypt działający w tle sobie je wyciąga, wysyła i po wysłaniu kasuje. W ten sposób zostaje dużo nadmiaru (w moim przypadku ponad 1 MB, czyli sporo jak na tekst). Rozwiązanie okazuje się banalne i oto ono:&lt;br /&gt;
&lt;h3&gt;OPTIMIZE TABLE nazwa_tabeli&lt;/h3&gt;
PO wykonaniu takiego zapytania wszystko zaczęło śmigać jak należy ;)&lt;br /&gt;
Proste, ale jeszcze wczoraj o tym nie wiedziałem - warto zaszyć taką optymalizację w swoich systemach, żeby jakoś okazjonalnie się wykonywała, co może nam czasem oszczędzić kłopotów ;)&lt;br /&gt;&lt;br /&gt;
AHA ODPOWIEDNIKIEM OPTIMIZE W PostgreSQL JEST VACUUM :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-4059323680236810284?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/4059323680236810284/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/wolne-dziaanie-tabeli-mysql.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/4059323680236810284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/4059323680236810284'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/wolne-dziaanie-tabeli-mysql.html' title='Wolne działanie tabeli MySQL'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-1727774080944828304</id><published>2010-04-06T18:52:00.011+02:00</published><updated>2010-11-15T10:35:46.333+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='czat'/><category scheme='http://www.blogger.com/atom/ns#' term='cometchat'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><title type='text'>Czat jak na FACEBOOK</title><content type='html'>Jednym z ciekawszych narzędzi na portalu facebook.com jest czat. Posiada kilka sympatycznych cech, które czynią go lepszym od tradycyjnych czatów i moim zadaniem są to:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;PRZYWRACANIE POPRZEDNIEGO STANU PO PRZEŁADOWANIU STRONY&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;mały, a jednocześnie umożliwia prowadzenie wielu rozmów jednocześnie i wygodne zarządzanie oknami&lt;/li&gt;
&lt;li&gt;integracja z samym portalem - emotki, przyjaciele, statusy&lt;/li&gt;
&lt;/ul&gt;
Takie udane rozwiązanie musiało szybko zdobyć popularność i pojawiły się gotowce podobne do chata z facebooka.&lt;br /&gt;
Pytanie co wybrać?&lt;br /&gt;
Ja trafiłem na &lt;a href="http://www.footerchat.com/social_engine.php"&gt;footerchat&lt;/a&gt;, który jest banalny jeśli chodzi o instalację - skopiowanie kilku linijek javascriptu, ale niestety tutaj kończą się plusy. Brak polskich znaków (nie tylko polskich:) ), nie zapamiętuje stanu przy przeładowaniu strony, wszystko działa na obcym serwerze, więc jesteśmy ograniczeni w zakresie modyfikacji.&lt;br /&gt;
Inne rozwiązanie jakie udało mi się znaleźć jest płatne (&lt;a href="http://www.cometchat.com/"&gt;cometchat&lt;/a&gt; $49 ). Wydaje mi się, że warte swej ceny, szczególnie, że posiada gotowe paczki instalacyjne do popularnych systemów, w tym socialengine -  a o to właśnie mi chodziło. Są też gotowce do forów (phpBB, VBuletin)... Jaka zaleta tych gotowców - w przypadku socialengine po instalacji, która polega na skopiowaniu plików, ustawieniu uprawnień i wklejeniu kilku linijek skryptu do strony, dostajemy od razu zintegrowane takie rzeczy jak avatary, czy statusy użytkowników, z czym trzeba by się pewnie troszkę pobawić. &lt;br /&gt;
Całość ma nie wiele słów, więc łatwo przetłumaczyć na inny język w pliku konfiguracyjnym, można tworzyć własne skórki, ogólnie wszystko sympatycznie...
&lt;br /&gt;&lt;br /&gt; poniżej screen z portalu abnormals.org, gdzie instalowałem rozwiązanie:&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://programistawww.pl/przyklady/abnormals_chat.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 640px;" src="http://programistawww.pl/przyklady/abnormals_chat.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-1727774080944828304?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/1727774080944828304/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/czat-jak-na-facebook.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1727774080944828304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1727774080944828304'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/04/czat-jak-na-facebook.html' title='Czat jak na FACEBOOK'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-5507015438187522082</id><published>2010-03-31T23:38:00.012+02:00</published><updated>2010-08-07T19:07:22.080+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><category scheme='http://www.blogger.com/atom/ns#' term='pseudoklasy'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Pseudoklasy CSS, które mogą pozytywnie zaskoczyć</title><content type='html'>Pewnie każdy pisząc arkusz stylów CSS korzysta z selektora :hover dla linków. Mi rzadko zdarza się wykorzystywać jakieś inne, ale chyba warto o nich pamiętać, tym bardziej, że niektóre działają bardzo sympatycznie i we wszystkich popularnych przeglądarkach.&lt;br /&gt;
Będę je tutaj dopisywał, aż uzbiera się kilka, żeby było po co wchodzić;)&lt;br /&gt;
&lt;br /&gt;
zachęcam też do dawania własnych propozycji:
&lt;ul&gt;
&lt;li&gt;
&lt;b&gt;:first-letter&lt;/b&gt; - pozwala nadać osobny styl dla pierwszej literki w treści pomiędzy znacznikami, span, div, p itp... &lt;a href="http://www.w3schools.com/CSS/tryit.asp?filename=trycss_firstline_letter" rel="nofollow" target="_blank"&gt;przykład&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;:first-line&lt;/b&gt; - pozwala nadać osobny styl dla pierwszej linijki w treści pomiędzy znacznikami, span, div, p itp... &lt;a href="http://www.w3schools.com/CSS/tryit.asp?filename=trycss_firstline_letter"  rel="nofollow" target="_blank"&gt;przykład&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;:first-child&lt;/b&gt; - pozwala się odwołać do pierwszego elementu np listy, lub pierwszej kolumny tabeli.
&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;:hover&lt;/b&gt; - do stosowania nie tylko w linkach, ale np: w wierszach tabeli do podświetlania, lub praktycznie w każdym innym elemencie. Nie wszędzie zadziała (np stare wersje IE), ale zwykle niezadziałanie nie skutkuje problemami ;) oczywiście można się bawić w skrypty onmouseover i onmouseout, ale nie zawsze będziemy chcieli śmiecić...
&lt;/li&gt;
&lt;li&gt;
&lt;b&gt;:before&lt;/b&gt; i &lt;b&gt;:after&lt;/b&gt; - niestety nie działają w ie7 i w GC, nie jest to jakaś rewelacja, ale można gdzieś wykorzystać ;) 
&lt;/li&gt;
&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-5507015438187522082?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/5507015438187522082/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/pseudoklasy-css-ktore-moga-pozytywnie.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5507015438187522082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/5507015438187522082'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/pseudoklasy-css-ktore-moga-pozytywnie.html' title='Pseudoklasy CSS, które mogą pozytywnie zaskoczyć'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-8354788742805596478</id><published>2010-03-30T15:06:00.006+02:00</published><updated>2010-11-15T10:36:11.824+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='śmieszne'/><title type='text'>Manualny crop</title><content type='html'>Wpis troszkę daleko powiązany z tematyka bloga, ale nie mogę się powstrzymać, przed zaprezentowaniem tego co znalazłem w jednym z realizowanych swoich projektów.&lt;br /&gt;
Może najpierw fota:
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://programistawww.pl/przyklady/kartki.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 600px; height: 450px;" src="http://programistawww.pl/przyklady/kartki_s.jpg" border="0" alt="" /&gt;&lt;/a&gt;
&lt;br /&gt;
Wyjątkowo kreatywny klient wstawiał zdjęcia produktów na stronę, ale niestety nie posiadał zdjęcia jednego z produktów. Posiadał natomiast katalog, w którym zdjęcie się znajdowało, ale otoczone niepożądanymi literkami :) Sprytny użytkownik przykrył więc litery kartkami papieru i wykonał to arcyzdjęcie :)&lt;br /&gt;&lt;br /&gt;
... aż mam ochotę przykryć ten wpis dookoła kartkami ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-8354788742805596478?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/8354788742805596478/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/manualny-crop.html#comment-form' title='Komentarze (2)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8354788742805596478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/8354788742805596478'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/manualny-crop.html' title='Manualny crop'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-3388532322445593404</id><published>2010-03-28T23:20:00.017+02:00</published><updated>2010-05-01T23:43:11.505+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='odświeżanie treści'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='prototype'/><title type='text'>CACHE IE + AJAX + ODŚWIEŻANIE TREŚCI</title><content type='html'>Potrzebowałem dzisiaj wyświetlić na stronie aktualny czas, ale nie czas z systemu użytkownika, tylko czas serwera. Myślałem, że sprawa prosta - i jest prosta, ale Internet Explorer postanowił robić figle.&lt;br /&gt;
Jeżeli chodzi o samo zastosowanie ajaxa, to nie mam z tym dużego doświadczenia, ale w tym przypadku można sprowadzić problem do kilku linijek wykorzystując bibliotekę &lt;span style="font-weight:bold;"&gt;prototype&lt;/span&gt;. &lt;br /&gt;
Kod wygląda tak:
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
&lt;div id='odswiezany'&gt;&lt;/div&gt;
&lt;script&gt;
new Ajax.PeriodicalUpdater('odswiezany', "http://domena.pl/plik.php", {
  method: 'get', frequency: 1, decay: 1
});
&lt;/script&gt;
&lt;/textarea&gt;
Dla wyjaśnienia parametry updatera to:&lt;br /&gt;
1. id elementu, którego treść odświeżamy,&lt;br /&gt;
2. link do pliku z treścią - w moim przypadku jest tam tylko: echo date("H:i:s");&lt;br /&gt;
3. konfiguracja - w tym przypadku: metoda get, częstotliwość co 1s, decay:1 oznacza stałą częstotliwość (wartości &gt;1 oznaczają że im dłuższy czas oczekiwania na odpowiedź tym rzadziej będzie pytał, a mniejsze od 1 odwrotnie &lt;a href="http://www.prototypejs.org/api/ajax/periodicalUpdater" target="_blank"&gt;szczegóły tutaj&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;


Wszystko działa pod FireFoxem, ale IE pokazuje ciągle pierwszy wynik, czyli cachuje pierwszy wynik i zegar stoi ;)&lt;br /&gt;&lt;br /&gt;

&lt;span style="font-weight:bold;"&gt;ROZWIĄZANIE:&lt;/span&gt;&lt;br /&gt;
1. zmieniamy GET na POST&lt;br /&gt;
2. dopisujemy jakiś parametr do linku, żeby miał co wysłać tym POSTem&lt;br /&gt;
Wygląda to tak:
&lt;textarea style='width:100%;height:100px;font-family:"Courier New";font-size:12px;font-weight:bold;'&gt;
&lt;div id='odswiezany'&gt;&lt;/div&gt;
&lt;script&gt;
new Ajax.PeriodicalUpdater('odswiezany', "http://domena.pl/plik.php?ie=bebok", {
  method: 'post', frequency: 1, decay: 1
});
&lt;/script&gt;
&lt;/textarea&gt;
Teraz wszystko działa w naszej kochanej przeglądarce.&lt;br /&gt;
Może to durne rozwiązanie, ale bardzo krótkie, dlatego uznaję go za dobre, a przede wszystkim skuteczne.&lt;br /&gt;&lt;br /&gt;
&lt;a href="/2010/04/odswiezanie-ajax-i-jquery.html"&gt;Odświeżanie za pomocą jQuery opisałem tutaj&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-3388532322445593404?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/3388532322445593404/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/cache-ie-ajax-odswiezanie-tresci.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/3388532322445593404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/3388532322445593404'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/cache-ie-ajax-odswiezanie-tresci.html' title='CACHE IE + AJAX + ODŚWIEŻANIE TREŚCI'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8484512169442325841.post-1524837527457046831</id><published>2010-03-27T21:06:00.021+01:00</published><updated>2010-11-15T10:36:39.252+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='generowanie grafiki'/><category scheme='http://www.blogger.com/atom/ns#' term='czcionki na www'/><title type='text'>Specjalne czcionki na stronie www</title><content type='html'>Pierwszy post o skrypcie umożliwiającym wzbogacenie strony www o specjalne czcionki, czyli takie jakich użytkownik może nie mieć zainstalowanych na komputerze.
Niestety nie ma 3-linijkowego rozwiązania problemu ładnych czcionek działającego pod różnymi przeglądarkami. &lt;br /&gt;
Popularne rozwiązanie to skrypt: sifr (oparty o flash i js). &lt;br /&gt;
Ja używam nieco innego skryptu bazującego na PHP i JS (&lt;a href="http://www.alistapart.com/articles/dynatext/" target="_blank"&gt;opis rozwiązania po angielsku&lt;/a&gt;). &lt;br /&gt;
Dla osoby nie znającej flasha jest na pewno bardziej zrozumiałe, a co za tym idzie łatwiej można go modyfikować, a ponadto zadziała również w przeglądarce bez zainstalowanej wtyczki adobe...&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Czego nam potrzeba:&lt;/span&gt;&lt;br /&gt;
1. plik fonta w formacie ttf (&lt;a href="http://onlinefontconverter.com/" target="_blank"&gt;konwersja fonta online&lt;/a&gt;)&lt;br /&gt;
2. skrypt php, który będzie nam generował napisy ładną czcionką (&lt;a href="http://www.alistapart.com/d/dynatext/heading.txt" target="_blank"&gt;heading.txt&lt;/a&gt; - po pobraniu zmień rozszerzenie na .php)&lt;br /&gt;
3. skrypt .js, który podmieni napisy napisane brzydką czcionką, na ładne (&lt;a href="http://www.alistapart.com/d/dynatext/replacement.js" target="_blank"&gt;replacement.js&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Krótkie wyjaśnienie działania:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;heading.php&lt;/span&gt; - generuje obrazek w formacie PNG, na którym wypisuje tekst przekazany w parametrze text - po prostu za pomocą funkcji: &lt;a href="http://php.net/manual/en/function.imagettftext.php" target="_blank"&gt;ImageTTFText&lt;/a&gt; wypisuje tekst na obrazek i zwraca tenże obrazek. Dodatkowo ma możliwość włączenia cache, żeby nie generować za każdym razem.&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;replacement.js&lt;/span&gt; - odpowiada za odnalezienie wszystkich napisów które mają być podmienione (np po tagu, czy klasie css) i  podmianę tekstu w nich zawartego na wygenerowane obrazki.&lt;br /&gt;
&lt;br /&gt;
Tutaj zwykle ktoś, kto coś słyszał o pozycjonowaniu się przeraża, bo widzi że tekst się nie zaznacza, czyli, że robot tego nie widzi i będzie źle w wyszukiwarkach... ale wystarczy zaglądnąć w źródło strony, żeby zobaczyć, że nic strasznego się nie stało, a wszystkie teksty są na swoim miejscu - całą zabawa odbywa się dopiero po załadowaniu strony za pomocą javascriptu, co raczej robota nie powinno interesować ;]&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Dobra teraz szybko co zrobić żeby zadziałało:&lt;/span&gt;&lt;br /&gt;
1. w sekcji head dokumentu wstawiamy:
&lt;textarea style='width:100%;'&gt;&lt;script type="text/JavaScript" src="replacement.js"&gt;&lt;/script&gt;&lt;/textarea&gt;
&lt;br /&gt;
2. Domyślnie replacement.js jest napisany tak, że sprawdza najpierw, czy przeglądarka klienta potrafi wyświetlać obrazki (jeśli nie to nie podmienia dla zaoszczędzenia transferu), żeby wykonać to sprawdzenie można wgrać 1-pixelowego png na serwer i podać ścieżkę do niego w 14 linijce. Ja nie widzę większego sensu, żeby to sprawdzać (raczej jak przeglądarka obsługuje JS to da radę wyświetlić obrazek), dlatego w linii 33 zmieniam wartość: var imageLoaded = true; (czyli już sprawdzone).
&lt;br /&gt;
3. W pliku heading.php w pierwszych linijkach ustawiamy kolor fonta, kolor tła (żeby były ładne krawędzie), rozmiar fonta i oczywiście ścieżkę do pliku z fontem.
&lt;br /&gt;&lt;br /&gt;
I to by było na tyle ;) Działający przykład do pobrania
&lt;a href="http://programistawww.pl/przyklady/replacement.rar"&gt;tutaj&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Przykłady wykorzystania:&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://shop.bagastyle.com/" target="_blank"&gt;shop.bagastyle.com/&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://filuteria.pl/" target="_blank"&gt;filuteria.pl/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Uwagi:&lt;/span&gt;&lt;br /&gt;
- polskie znaki w niektórych czcionkach powodują, że napis bywa przesunięty niżej w stosunku do napisu bez polskich znaków np: o kreskę nad "Ś" - można to rozwiązać np dopisując warunek w pliku heading.php, który przesunie w dół teksty bez polskich znaków, albo pobawić się CSSem i wyrównywać obrazki z tekstem do dołu.&lt;br /&gt;
&lt;br /&gt;
Aha i jeszcze jedna rzecz o której zapomniałem wstawianie specjalnych czcionek wymaga jak widać trochę fikołków. Nawet jeśli ktoś powie, że wystarczy wstawić skrypt i już to też nie jest do końca tak, bo nie każdy content jest od razu ładowany na stronie np: treści ładowane ajaxem, albo generowane za pomocą skryptów będą wymagały dogrzebania się odpowiedniego miejsca i dopisania kilku linijek odpalających replacement ponownie... to znowu może w pewnych przypadkach zamulać, albo głupio wyglądać, można coś kombinować z CSSem, ale to znowu moze być potraktowane jako clocking i znowu trzeba coś kombinować... i z powodu głupiej czcionki mamy dużo więcej pracy...&lt;br /&gt;
Biorąc pod uwagę powyższe wydaje mi się, że zanim zdecydujemy się na super czcionkę warto przejrzeć &lt;a href="http://blackpig.ovh.org/czcionki.html" target="_blank"&gt;listę czcionek&lt;/a&gt;, którą kiedyś dawno temu przygotowałem i zastanowić się, czy przypadkiem zastosowanie którejś z nich nie będzie takie straszne.&lt;br /&gt;
Na liście jest Helvetica, której nie ma w standardzie w windowsach, ale jak nie ma to system wyświetli ariala, który jest podobny i nic się nie stanie ;) Aha i lista jest według częstotliwości stosowania, którą gdzieś kiedyś znalazłem ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8484512169442325841-1524837527457046831?l=filip-lakomik.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://filip-lakomik.blogspot.com/feeds/1524837527457046831/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/specjalne-czcionki-na-www-bez-sifr.html#comment-form' title='Komentarze (4)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1524837527457046831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8484512169442325841/posts/default/1524837527457046831'/><link rel='alternate' type='text/html' href='http://filip-lakomik.blogspot.com/2010/03/specjalne-czcionki-na-www-bez-sifr.html' title='Specjalne czcionki na stronie www'/><author><name>Filip Łakomik</name><uri>http://www.blogger.com/profile/14850664636819231120</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry></feed>
