Moja ramka jest najmojsza!

Kilka dni temu naczelnik Wiadomości24.pl zaserwował internautom smieszno straszny spektakl wylewając żale na agregatory. w24.pl EPIC fail oskarża, że kradną content i użytkowników, że trzepią kasę na cudzej pracy (przypominam redaktor w firmie która zarabia sprzedając treści tworzone za darmo przez własną społeczność), etc.
Poszło między innymi o ramkę (frameset) którą serwis Wykop dodaje do wykopaliska na wyraźne życzenie własnych użytkowników (każdy może ten ficzer wyłączyć w konfiguracji, czyli jeśli ramka jest znaczy luser sobie życzy right?) który ułatwia kopanie. Artykuł oczywiście trafił na Wykop, gdzie w krótkim czasie zyskał ponad 400 punktów i wygenerował w kilka dni około 20’000 odsłon jeśli wierzyć licznikowi w serwisie wiadomosci24.pl. Zresztą efekt można zobaczyć na wykresie Alexy .
W necie na chwilę zawrzało i generalnie ocena artykułu była jedna. „Strzał do własnej bramki”. Ktoś podpowiedział, naczelnik zadziałał i w serwisie wiadomości24.pl pojawił się kod odpowiedzialny za „uciekanie z frameset”. Można było tak od razu, ale wtedy nie byłoby tyle śmiechu, więc z mojego chorego punktu widzenia, jest dobrze jak jest, bo przynajmniej coś się dzieje.

I to byłby praktycznie koniec historii, gdyby nie to, że cała sprawa uświadomiła mi, że tak na prawdę serwis uciekający z wykopowej ramki robi mi koło pióra. I nie chodzi tylko o wiadomosci24.pl ale też np. wikinews.pl. Oraz pewnie wiele innych, ale akurat w przypadku wikinews sprawa była o tyle istotna, że kilka razy zdażyło mi się, że mi uciekło. No to się wariat zaczął był zastanawiać, czy jak chce uciekać to musi mu się udać? Bo w końcu jesteśmy na moim końcu internetu, znaczy w mojej przeglądarce, to dlaczemu ….

  1. Wyłączyć firefoksa
  2. Otworzyć ~/.mozilla/firefox/profil/user.js w edytorze
  3. Naklepać w środku:
    $ cat user.js
    // Nie będzie nam uciekał z ramki kto chce ;-)
    user_pref("capability.policy.policynames", "noframebuster");
    user_pref("capability.policy.noframebuster.sites", "http://www.wiadomosci24.pl http://pl.wikinews.org");
    user_pref("capability.policy.noframebuster.Window.location", "noAccess");
    
  4. Włączyć Fx
  5. działa? U mnie działa 😀

To niech teraz spróbują uciec! Moja ramka jest najmojsza :D.

Cały myk wykorzystuje niejakie Configurable Security Policies firefoksa, czyli mechanizm pozwalający na selektywne włączanie i wyłączanie pewnych akcji dla konkretnych stron. Całkiem sprytna zabawka nieprawdaż?

I na koniec jeszcze uwaga. Fx tak jak kiedyś Mozilla kopiuje całą zawartość user.js do prefs.js i stamtąd ją uruchamia. Znaczy to tyle, że jeśli będziemy się chcieli tych ustawień pozbyć nie wystarczy wyczyścić plik user.js, ale należy te same wpisy wykasować w pliku prefs.js który leży w profilu tuż obok. Jak dla mnie to zawsze był Bug, ale widać jestem w tym dość odosobniony skoro działa to tak samo przez tyle lat. Wiem, wiem mogę spróbować zarobić wontfixem na bugzilli, ale mi się kurka nie chce, może kiedyś 😀

Dobry hint nie jest zły

Awesomebar firefoksa zrobił się mniej awesome, a bardziej slooooow? Pomóc może fizyczne usunięcie rekordów oznaczonych jako skasowane z plików sqlite3 w których Fx-3 trzyma preferencje i inne cuda. Wyłączamy Firefoksa…

$ for f in ~/.mozilla/firefox/*/*.sqlite; do sqlite3 $f 'VACUUM;'; done

I powinno być lepiej… a jeśli nawet nie to przynajmniej trochę miejsca na dysku się zwolni.

Źródło: Ruben Vermeersch: Performance tip of the day

replacePNGwithGIF, bo software to się aktualizuje

Jasnym jest dla każdego chyba, że software powinno się aktualizować możliwie najszybciej po ukazaniu się kolejnej stabilnej (oznaczonej jako stabilna) wersji programu, bo zwykle jest lepszy, pojawiają się nowe możliwości, znika część niedociągnięć i błędów poprzednich wersji, etc. Wg. mnie to powinno się aktualizować zamienić należy na koniecznie trzeba jeśli mówimy o oprogramowaniu spełniającym przynajmniej warunek free as in free beer, a jeśli się celowo olewa taki wypadek, to nie należy się dziwić, że się cierpi.

Jasnym jest dla każdego chyba, że software powinno się aktualizować możliwie najszybciej po ukazaniu się kolejnej stabilnej (oznaczonej jako stabilna) wersji programu, bo zwykle jest lepszy, pojawiają się nowe możliwości, znika część niedociągnięć i błędów poprzednich wersji, etc. Wg. mnie to powinno się aktualizować zamienić należy na koniecznie trzeba jeśli mówimy o oprogramowaniu spełniającym przynajmniej warunek free as in free beer, a jeśli się celowo olewa taki wypadek, to nie należy się dziwić, że się cierpi.

Ale o co chodzi?! Jak nie wiadomo o co chodzi, to oczywiście chodzi o … Internet Explorer, i w tym wypadku o to, że mamy do dyspozycji od jakiegoś czasu jego siódmą wersję, która doskonała to może nie, ale na pewno jest lepsza od przedpotopowej i zarazem poprzedniej wersji MSIE-6.0. Ktoś się nie zgadza?

No to do sedna, skoro ustaliliśmy, że darmowe oprogramowanie należy aktualizować, to spokojnie można w pewnym sensie przestać przejmować się problemami wersji poprzednich. Jedną z nich jest znany problem z 24-ro bitowymi plikami PNG z przyciemnionym kanałem alpha, czyli potocznie z przejrzystymi PNG, których Internet Explorer starszy niż 7.0 nie trawi.
Jest na to hack z filtrami, ale mało wygodny w stosowaniu, jest wreszcie, skrypt dodający tenże hack na żywo ( Normal display of PNG Alpha Transparency with MSIE (en) ) tylko tym co tego wymagają, wygodniejszy niż ręczne hackowanie kodu, ale nadal bez rewelacji, choć … jest ważny bo stał się podstawą pomysłu.

No bo skoro IE-7.0 problemów z 24ro bitowym PNG nie ma, co stoi na przeszkodzie, aby wszystkim innym użytkownikom IE podmienić PNG na gify i niech mają? Że brzydsze? No brzydsze, chcesz ładniejsze upgraduj soft… najlepiej od razu do Mozilla Firefox 2.0 ;-).
Poza tym pamiętajmy, że podmieniając PNG na GIF nie ograniczamy dostępu do strony użytkownikom którzy nie aktualizowali IE. Nie zabraniamy im dostępu do treści, nie wyłączamy nawigacji. Po prostu wysyłamy im takie obrazki, aby ich przeglądarka pokazała stronę możliwie przyzwoicie (a nie wypełnioną kremowymi prostokątami) na miarę swoich <sic> możliwości.

Skrypt powstał na bazie wspomnianego wyżej ReplacePngTags.php tyle, że jest znacznie prostszy bo mniej musi robić, aby cel osiągnąć. Aby użyć należy:

  • obrazki które mają zostać podmienione nazwać zgodnie ze schematem {nazwa}-transparent.png, np. logo-transparent.png
  • wykonać ich kopie w formacie gif, umieścić w tym samym katalogu i nazwać analogicznie czyli: {nazwa}-transparent.gif
  • w skrypcie na początku dokumentu wstawiamy:
    <?php 
    
        ob_start();
    ?>
    

    a na końcu:

    <?php
        include_once 'replacePNGwithGIF.php';
        echo replacePNGwithGIF(ob_get_clean());
    ?>
    

i już. Podczas przesyłania strony do klienta skrypt sprawdzi czy przypadkiem nie gada do MSIE w wersji prehistorycznej i jeśli tak to zamiast obrazków w formacie PNG każe pobrać GIFy. I niech spadają albo aktualizują przeglądarkę. Jest za darmo, więc nie ma wymówki, na co mamy czekać?

Na koniec sam (mocno powiedziane) skrypt replacePNGwithGIF:

<?php

function replacePNGwithGIF( $content ) {

    $msie = 
        '/msie\s(5\.[05]|6\.0).*(win)/i';

    if ( !isset      ( $_SERVER['HTTP_USER_AGENT']            ) ||
         !preg_match ( $msie,$_SERVER['HTTP_USER_AGENT']      ) ||
          preg_match ( '/opera/i',$_SERVER['HTTP_USER_AGENT'] )
       )
        return $content; 


    $pattern = 
        '/<img[^>]*src\s*=\s*[\"\']\s*([^>]*-transparent\.png)[^>]*>/i';
    preg_match_all($pattern, $content, $images);

    for( $num_images = 0; $num_images 

Że niedoskonały, że w niektórych wypadkach działa nie do końca tak jak ma? Się poprawi, to powyżej to wersja 0.1pre-alpha-test-3 przecież ;-).

Przewiduję problemy :D

No to się zaczęło. Dotychczas co chwila ktoś opowiadał, że IE7 nie zyskuje w rankingach tak jak konkurencja, ale jednocześnie, żeby zaktualizować IE trzeba było wiedzieć, że Internet można instalować ;-). A Ci co wiedzieli w większości przypadków już zainstalowali Firefoksa lub Operę. Jednocześnie Ci użytkownicy w większości są świadomi, że przeglądarka raz na jakiś zcas wychodzi w nowej wersji i migrują wyżej.
W tej chwili wielu polskich użyszkodników Windows zostanie uraczonych IE7 i wielu go użyje choćby po to, żeby zobaczyć jak to cudo wygląda.
Tak czy siak, małe szanse aby IE jako taki przestał tracić, a może się okazać, że IE7 odstraszy pewną liczbę zagorzałych użytkowników Misia, bo przecież oni chcieli mieć swoją przeglądarkę do której się przyzwyczaili, a do tej bardziej podobny jest Firefox niż IE7.
Ok czas wysłać notkę i zaryzykowac pobieranie 😀

Kłopoty z czytaniem :D

To jest jakoś tak…

  • Firefox-2.0 pojawił się w październiku br.
  • Firefox jako taki pojawia się jesienią
  • Wsparcie dla Fx-1.5.x bedzie prowadzone do marca czy kwietnia (nie pamiętam) 2007, i wtedy też nastąpi ostateczna migracja na wersję 2.0

Tymczasem wszyscy już mówią o Fx-3.0 … Chip również i to jak 😀

Wersja finalna została zapowiedziana na maj 2007. Aktualna wersja alfa jest jeszcze niestabilna i przeznaczona dla deweloperów do celów testowych.

No to teraz jest jasne, dlaczego Fx-1.5.x nie wymusza upgrade do Fx-2.0. Nie chodzi o to, jak myślałem, żeby nie drażnić tych którzy świadomie chcą zostać z Fx-1.5 tak długo jak to możliwe (jak długo będzie wspierany przez Mozillę). Po prostu programiści w Mozilla chcą upgradeować Fx-1.5 od razu do wersji 3.0 … i wszystko jasne 😀

Bądź tu mądry i pisz wiersze

Pogubiłem się … na mozilla.org o podpisywaniu skryptów piszą, że signtool znajduje się w paczce z nss.

Use SignTool to sign scripts. SignTool is a program that signs scripts and HTML files, and packages them in a JAR file with the signature. It can be download from ftp.mozilla.org as part of the NSS package. You’ll also need to download NSPR

Pogubiłem się … na mozilla.org o podpisywaniu skryptów piszą, że signtool znajduje się w paczce z nss.

Use SignTool to sign scripts. SignTool is a program that signs scripts and HTML files, and packages them in a JAR file with the signature. It can be download from ftp.mozilla.org as part of the NSS package. You’ll also need to download NSPR

No to mam …

mickey ~ # equery l dev-libs/nss
[ Searching for package 'nss' in 'dev-libs' among: ]
 * installed packages
[I--] [  ] dev-libs/nss-3.11.3 (0)
[I--] [ -] dev-libs/openssl-0.9.8d (0)
mickey ~ # equery l dev-libs/nspr
[ Searching for package 'nspr' in 'dev-libs' among: ]
 * installed packages
[I--] [  ] dev-libs/nspr-4.6.3 (0)

Ale …

mickey ~ # locate signtool
mickey ~ #
mickey ~ # equery f nspr | grep bin
/usr/bin
/usr/bin/nspr-config
mickey ~ # equery f nss | grep bin
/usr/bin
/usr/bin/nss-config

… Reasumując … WTF?! Idę spać.

Gentoo Firefox tez sux?!

Jaki zwiazek ma użycie pseudo klasy first-letter w akapicie gdzie znajduje się jakakolwiek literka z zestawu Latin2? Znaczy co ma jedno do drugiego? Nic? W Gentoo firefox* ma :> I jak mam byc szczery nie wiem z ktorej strony mam to ugryźć.
To może ja pokażę… 😀 first-letter testcase
Pierwsze dwa akapity nie zawierają polskich znaków jednak „posiadają” styl first-letter. Kolejne dwa zaiwerają polskie znaczki, akapit trzeci w pierwszym słowie, czwarty w słowie ostatnim. Akapit piąty i szósty mają polskie literki, ale nie mają „first-letter”.

Akapis 3 i 4 się w Gentoo firefoksie rozjeżdża, przy czym nie rozjeżdża się w Epiphany zbudowanym na tym samym gecko, właściwie na tym samym firefoksie.

To ja się teraz pytam … WTF?!

* Gentoo firefox – firefox kompilowany z ebuilda Gentoo i jesli cos tu jest popsute to nie firefox jako taki tylko właśnie gentoo firefox

Korekta wyników czy skok na kasę? ;-)

Ostatni ranking Gemiusa wskazuje nieznaczny (i zapewne chwilowy) wzrost popularności IE, i jednocześnie spadek udziałów prawdziwych przeglądarek. I normalnie, każdy by powiedział, że to pewnie korekta wyników, że po malu wakacje się zaczynają to dzieciaki (z wystawionymi już ocenami) olewają szkołę, że maturzyści włączyli komputery bo czas w końcu zacząć się uczyć, że …
I pewnie tak właśnie jest, tylko dlaczego mam jednocześnie wrażenie, że nagłą zmianę spowodowała dość szeroko krytykowana akcją Explorer Destroyer, czyli krótko mówiąc tym, że ktoś zaczął płacić za zmianę browsera z IE na spatchowanego Firefoxa (jeśli dobrze rozumiem, jest to Firefox z google bar extension w pudełku, vel instalce).
BTW jeśli ktoś się zdecydował niech się pochwali za jakiś czas jakie zyski sobie wygenerował 😉

A jak już jesteśmy przy promowaniu to przypominam, że najważniejsze są dobre argumeny, te z Kill Bill’s Browser bardzo mi odpowiadają. 😀

P.S. Tak … nie ma to jak sobie pogdybać przy kawusi 🙂