Autoryzacja gdy PHP jest zainstalowane jako CGI w Apache

06 maja 2010

Czas najwyższy na jakiś wpis z konkretnymi poradami bo ostatnio jest tutaj z tym kiepsko... :)

Jak wiemy (albo i nie :P ) autoryzacja w PHP działa tylko wtedy gdy PHP jest zainstalowane jako moduł Apache (o innych serwerach dzisiaj pisać nie będę). Tak przynajmniej oficjalnie głosi dokumentacja. Jest jednak światełko w tunelu dla tych, którzy mają hosting z PHP postawionym jako CGI.

Poniżej opisane jest jedno z rozwiązań. Nie ma pewności, że będzie u Ciebie działało, zależy to od możliwości/ustawień Twojego konta hostingowego. U mnie działa ;) W komentarzach do wyżej podlinkowanej dokumentacji znajdziesz inne rozwiązania więc próbuj do skutku.

Pierwszy wymagany krok to ustawienie w pliku .htaccess odpowiedniej regułki. Wygląda ona tak:

CODE:
  1. RewriteEngine on
  2. RewriteRule \.php$ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

W ten sposób ustawiamy w PHP specjalną wartość w tablicy $_SERVER z kluczem HTTP_AUTHORIZATION i danymi autoryzacyjnymi. Teraz wystarczy w PHP odczytać to co zaserwuje nam Apache takim kodem:

PHP:
  1. if(isset($_SERVER['HTTP_AUTHORIZATION']) AND $_SERVER['HTTP_AUTHORIZATION'] != '') {
  2.   list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
  3. }

Przemyśl dokładnie gdzie to wstawić w swój kod. Dzięki takiej sztuczce PHP dostanie dwie wartości, Twój login i hasło, tak jakbyś korzystał z modułu Apache.

Gdyby powyższe nie działało to można spróbować jeszcze takiego kodu w .htaccess (zamiennie do powyższego):

CODE:
  1. SetEnvIf Authorization "^(Basic .+)$" HTTP_AUTHORIZATION=$1

U siebie akurat stosuje ten drugi kod bo to było pierwsze rozwiązanie na które natrafiłem. Jednak na większości serwerów bardziej dostępny jest mod_rewrite niż mod_setenvif dlatego wybrałem taką kolejność podawanych rozwiązań.


Precz z ISO-8859-2, niech żyje UTF-8

05 maja 2010

Dzisiaj banalny wpis ale mimo to ważny. Otóż dawno temu, gdy zdarzało mi się jeszcze zaglądać do różnych kursów podstaw HTML, PHP, MySQL, książek na ten temat etc. to wszędzie (o ile autorem był polak) zalecano używanie kodowania polskich znaków ISO-8859-2. Było to uzasadnione bo w tamtych latach wielu domorosłych webmasterów zaczynało swoją przygodę z tworzeniem stron internetowych od takich programów jak Microsoft FrontPage, który to usilnie promował kodowanie CP-1250 (domyślnie ustawione). Trzeba było wszystkich edukować, że to nie jest najlepsze kodowanie dla polskich znaków diakrytycznych.

Nie wiem jakie rady padają w aktualnych kursach, książkach itd. ale "niestety" te stare materiały nadal są dostępne. I nadal namawiają do kodowania ISO-8859-2 gdzie standardem światowym już od lat jest UTF-8.

Czemu ISO-8859-2 jest be? Z dwóch głównych powodów. Ma ograniczoną liczbę znaków do dyspozycji i może powodować stany depresyjne gdy będziemy musieli np. współpracować z zewnętrznym oprogramowaniem lub popierdzielimy coś z bazą danych etc.

Czemu UTF-8 jest cacy? Bo zapominasz o problemie kodowania.

Tak, wiem wiem. Powyższe argumenty są na poziomie "Tak bo tak" czy "Ja tak mówię i tak ma być" :) Głównie z jednego powodu. W sieci jest bardzo dużo materiałów na temat zalet UTF-8 i bez sensu żebym to teraz powtarzał. Ja tylko chcę zasygnalizować niewtajemniczonym, że mogą robić coś lepiej i wyłysieć trochę później.

Oczywiście niektórzy twierdzą, że im ISO-8859-2 wystarcza. Pozornie przy jakiejś małej stronce firmowej z pięcioma podstronami faktycznie nie ma sensu stosować UTF-8. Pozornie... Wszystko jest pięknie dopóki szef/klient nie zażyczy sobie wersji swojej strony po grecku bo jakimś dziwnym trafem produkowane przez niego żelki zaczęły tam schodzić jak ciepłe bułeczki i facet rozgląda się za inwestorem/wspólnikiem.

Nie przekonuje Cię to? Ten sam szef/klient zobaczył na stronie konkurencji, że "tam strona nie miga" co po 10 minutach myślenia "o co mu do cholery chodzi?!" wreszcie doprowadza Cię do celu: miał na myśli AJAX. I tym sposobem masz kilka godzin z głowy bo niestety nijak nie potrafisz sprawić aby znaleziona przez Ciebie biblioteka JS do obsługi AJAX potrafiła prawidłowo sobie radzić z ISO-8859-2.

Takich przykładów można mnożyć w nieskończoność. Mnie ostatnio na przykład szlag trafiał gdy musiałem pracować jednocześnie z plikami PHP kodowanymi w ISO-8859-2 i innymi kodowanymi w UTF-8. Co chwila trzeba było przełączać edytor na inne kodowanie żeby nie było krzaków...

Standard musi być jeden. Pamiętaj o tym przy starcie Twojego nowego projektu. Powyższe przykłady to tylko banały przy tym co Cię może spotkać gdy zastosujesz ISO-8859-2 na jakiejś naprawdę bardzo dużej stronie www.

Dwa główne (dla mnie) problemy z UTF-8:

  • Pamiętaj o BOM :) Jak widać, nie ma róży bez kolców. BOM w UTF-8 jest nieobowiązkowy ale autorzy edytorów często robią po swojemu...
  • Dopiero PHP 6 będzie w pełni obsługiwał Unicode. To oznacza, że dzisiaj takie funkcje jak np. strlen() czy strpos() zwrócą błędny wynik. Jak temu zaradzić można poczytać w komentarzach w dokumentacji do poszczególnych funkcji i/lub korzystać z funkcji mb_*().

PS
O czym ja tu piszę jak onet.pl, gazeta.pl i pewnie wiele, wiele innych dużych portali i witryn nadal wita nas w ISO-8859-2... Ech... Może to być jednak dowód na to jakie problemy są z... ISO-8859-2 :) Przypuszczam, że chętnie przesiedliby się na UTF-8 ale przez lata zgromadzili tyle danych, trzeba byłoby przeprowadzić tyle konwersji, plików, baz danych itd., że nie ma takiego odważnego, który by się tego podjął lub wyliczyli, że im się nie opłaca w to bawić.


Wyrażenia regularne trochę łatwiej…

25 kwietnia 2010

Pewnie wielu z Was, tak jak i ja kiedyś, ma problem z wyrażeniami regularnymi. Przez długi czas znałem tylko ich podstawy nie mogąc przemóc się do dalszej nauki. Każdy przyzna, że ich wygląd potrafi odstraszyć... Oczywiście mimo wszystko polecam kształcenie się w tym kierunku, wyrażenia rozwiązują teraz dla mnie naprawdę skomplikowane czynności. Ale pamiętając swój własny opór przed ich nauką mam dla Was ciekawą alternatywę.

W sieci można znaleźć wiele przykładowych rozwiązań najpopularniejszych problemów. Bez wysiłku znajdziemy wyrażenia do wyciągania adresów email ze stron www, do podlinkowywania adresów www w stringu itd. Problem pojawia się gdy napotykamy na nietypowe zadanie do wykonania. Wtedy musi powstać wyrażenie i albo sam je sobie napiszesz albo ubłagasz kogoś, ewentualnie mu za to zapłacisz :) Czytaj dalej »


Podstawy typów danych w PHP

04 marca 2010

PHP ma bardzo liberalne podejście do typów danych jakich możemy używać. Dzięki dynamicznemu rzutowaniu typów nie musimy się bawić w żadne deklaracje typu tuż przy inicjacji zmiennej. Zmieni się on automatycznie gdy przypiszemy do tej zmiennej jakąś wartość. W jednej chwili zmienna może być typu string aby po chwili ta sama zmienna zwracała jako typ integer.

Oczywiście są zwolennicy i przeciwnicy takiego rozwiązania. Na pewno dla niektórych brak konieczności deklarowania i zapamiętywania typu każdej zmiennej to duży plus. Z drugiej strony robi nam się lekki bałagan (programiści potrafią zrobić niezły bajzel gdy nie są dyscyplinowani przez język w którym piszą), łatwiej o pomyłkę i powstaje wiele pytań kiedy tak naprawdę zmienna jest pusta, kiedy zwróci FALSE itd.

Dwóch pierwszych problemów nie rozwiążemy, co do trzeciego to przyda nam się ściągawka. Taka jak na stronie www.blueshoes.org/en/developer/php_cheat_sheet/. Znajdują się tam ładne i wygodne w użytkowaniu tabelki, które obrazują różnice między zmiennymi z przypisanymi różnymi wartościami, jak na te wartości reagują wbudowane funkcje PHP oraz który warunek if będzie prawdziwy przy użyciu == a który przy użyciu ===.

Polecam się z tym zapoznać, może to Was uchronić przed wieloma błędami logicznymi w Waszych skryptach. A jak wiemy, takie są często bardzo trudne do wykrycia...

Przy okazji wyrażę swoje zdanie na temat tego, że PHP automatycznie zmienia typ danych.

Przyznam, że mam co do tego mieszane uczucia. W swoich skryptach staram się unikać sytuacji gdy zmienna bez jakiegoś szczególnego powodu zmienia swój typ. Co więcej, możliwość takiej automatycznej zmiany sprawia, że czasami mam tylko więcej pracy przy zabezpieczaniu swoich stron.

Z drugiej strony konieczność deklaracji typu także nastręczałaby problemów. Zawsze musielibyśmy pamiętać o typie i asekuracyjnie sprawdzać czy jest prawidłowy przy przypisywaniu wartości do zmiennej bo inaczej wygenerujemy błąd.

Jeżeli miałbym decydować o najbliższej przyszłości języka PHP to chciałbym aby wprowadzono możliwość deklarowania typu. Nie konieczność a możliwość. Tak abym mógł przy inicjacji zmiennej zadeklarować jej typ i zmienić go tylko za pomocą dostępnych funkcji rzutowania. Zmienne bez deklaracji typu zachowywałyby się tak jak dotychczas. Czekam aż ktoś się przyczepi do tego pomysłu :P


HipHop for PHP

04 lutego 2010

Nie mam w zwyczaju pisać na blogu o nowościach. Jest wystarczająco dużo stron www, które dostarczają programistom itp. codzienną dawkę informacji i silenie się przez niektórych blogerów aby pisać o wszystkich niuansach (co przeważnie sprowadza się do napisania własnymi słowami tego co przed chwilą przeczytało się na dużym portalu) jest żałosne. Tym razem jednak złamię swoją zasadę bo wydarzyło się coś naprawdę interesującego :)

Język PHP, mimo iż niektórzy starają się usilnie tego nie zauważać, ma sporo zalet. Najwidoczniej nie tylko ja tak uważam skoro największy portal na świecie, Facebook, jest wykonany właśnie w tej technologii. Jednocześnie nie da się ukryć niektórych wad PHP, które przy ruchu 400mld odsłon miesięcznie są z pewnością szczególnie uciążliwe. Ludzie z Facebook postanowili coś z tym zrobić i tak powstała idea HipHop for PHP.

Jak wszyscy dobrze wiemy, instrukcje PHP są interpretowane od nowa za każdym razem gdy wywołamy jakiś skrypt PHP. To niestety musi powodować zwiększone obciążenie i wolniejsze działanie od języków, które kompilujemy. HipHop for PHP ma na celu "przeczytać" kod źródłowy PHP a następnie zamienić go na wysoko wydajny kod C++, który potem możemy sobie z łatwością skompilować. Taki stwór ma nam znacząco zwiększyć wydajność naszych aplikacji.

Przyznam, że mam mieszane uczucia co do tej wiadomości. Niby jest to jakiś rozwój PHP ale nie cieszy mnie fakt, że trzeba uciekać się do takich sztuczek aby znacząco zwiększyć wydajność kodu. W ten sposób szybko dojdziemy do wniosku, że w takim razie wypadałoby pisać strony w C++ i jedynie prostota PHP nas przed tym powstrzymuje.

Należy również wspomnieć, że nie zostały upublicznione żadne informacje o metodach przeprowadzonych testów. Jedyna informacja jaką wyczytałem to około 50% mniejsze obciążenie procesorów. Ciekaw jestem jak na tej samej maszynie wypadłby Zend Optimizer i tym podobne aplikacje.

Szkoda, że ludzie z Facebook nie dogadali się z Zend i nie powstało jakieś oficjalne rozwiązanie bo może się okazać, że HipHop for PHP będzie użyteczny tylko dla garstki osób. Mam nadzieję, że twórcy PHP wyciągną pewne wnioski z tego wydarzenia. PHP 5 wniosło wiele dobrego ale od tamtego czasu rozwój tak jakby zwolnił a PHP 6 nie zapowiada się na żadną rewolucję a ponadto nie słychać nic o premierze chociaż prace zaczęły się podobno już w roku 2005.

Miło byłoby aby wreszcie pozbierać ten język do kupy. Olać kompatybilność wsteczną, zrobić porządek z nazewnictwem a być może nawet całkowicie przejść na obiektowość. Nie cieszy również mnogość niektórych rozwiązań co wprowadza tylko zamęt. Osobiście nie jestem również do końca zadowolony z postaci czy rozwoju takich narzędzi jak PEAR czy Zend Framework (chociaż ZF podobno staje się coraz lepsze ale jakoś ostatnio nie śledzę tego projektu). Oby ktoś nad tym wszystkim nareszcie zapanował bo PHP to naprawdę przyjemny język.

Mam nadzieję, że mój sceptycyzm okaże się nieuzasadniony :) Wkrótce HipHop for PHP zostanie upublicznione, wraz z kodem źródłowym. Właściwie to już powinno być dostępne ale jakoś się nie doszukałem :)

PS
Zdecydowanie polecam przeczytać oryginalny news zapowiadający HipHop for PHP na Facebook.

PS2
Jeszcze ciekawszy tekst z którego wyczytamy sporo o technicznych aspektach uruchomienia i działania HipHop for PHP.


Pokochać JavaScript

25 stycznia 2010

Stało się i nie ma już odwrotu. Trzeba nauczyć się JavaScript. Nie, nie mówię o sobie bo ja już go znam (na jakimś tam akceptowalnym poziomie :) ). Mówię do Ciebie.

Nie pamiętam kiedy pierwszy raz zetknąłem się z JavaScript ale wiem na co wtedy była moda. Implementacja tego języka w wielu przeglądarkach kulała a jeżeli nawet coś bardziej złożonego działało to w każdej przeglądarce trzeba było to napisać trochę inaczej. Z tego powodu nie było wielu zaawansowanych koderów JS a w sieci krążyły różne skrypciki, które webmasterzy dzisiaj zgodnie określają mianem wodotrysków. Implementacja zegarka albo kalkulatora, "padający śnieg" czy animowany tekst podążający za kursorem myszki - oto na co było stać większość programistów JS i czym zachwycali się twórcy stron www.

Wreszcie przyszło jednak opamiętanie i wszystkie straszydła zaczęły znikać z sieci. Bo na cholerę komuś zegarek na stronie skoro każdy ma go w prawym dolnym rogu... ?

Nadeszły gorsze czasy dla JS... co wyszło temu językowi tylko na dobre :) Na całe szczęście język nadal się rozwijał a producenci przeglądarek nie zapomnieli o nim i pomału programowanie ze znośnego stawało się przyjemne. Co mądrzejsi zaczęli się zastanawiać jak wykorzystać potencjał, niemały potencjał należy dodać, tego języka. Po cichu zaczęły się pojawiać jakieś bardziej ambitne próby stworzenia czegoś praktycznego w JavaScript.

Może i Google Maps nie przyniosłoby ze sobą otrzeźwienia (mimo zaawansowanego użycia JS) gdyby nie to, że wykorzystano obiekt XMLHttpRequest (wymyślony przez Microsoft) dzięki któremu od tamtej chwili webmasterzy na całym świecie mogą się cieszyć technologią znaną pod nazwą AJAX.

I zaczęło się :) Wchodzisz sobie na stronę, klikasz, coś się dzieje, ewidentnie pobierane są nowe informacje z serwera a strona się nie przeładowała... To była rewolucja, technika ta szybko stała się pragnieniem każdego właściciela www. JavaScript nareszcie został doceniony, to były jego drugie narodziny. Szczęśliwie zbiegło się to w czasie z już całkiem przyzwoitymi implementacjami JS w przeglądarkach.

Dalej opowiadać chyba już nie trzeba, gdyby nie powyżej opisane wydarzenia to Internet z pewnością wyglądałby dzisiaj i działał zdecydowanie gorzej. Właściwie to nawet może nie mielibyśmy dzisiaj Web 2.0? Kto wie, w końcu JS i AJAX miały w tym trendzie bardzo duży udział a nowe możliwości były inspiracją dla pierwszych pionierów.

Dzisiaj programowanie w JS to zupełnie inna bajka niż wtedy gdy pierwszy raz się nim zainteresowałem. Twórcy przeglądarek prześcigają się w implementacji ekstremalnie szybkich silników JavaScript, mamy do wyboru wiele frameworków i bibliotek ułatwiających życie webmasterom a Google jasno daje do zrozumienia swoimi rozwiązaniami (Gmail, Google Maps, Google Docs etc. oraz cała idea Chromium OS), że bez JS już się nie da...

Zachęcam wszystkich do poznawania możliwości JS. Zapewniam Cię, że jeżeli wiążesz swoją przyszłość z tworzeniem stron www to nie masz wyjścia ;)

Na nasze szczęście istnieją takie projekty jak jQuery, dzięki któremu programowanie w JS to poezja. Wybór frameworka należy do Ciebie ale podpowiem Ci, że ja już nie zabieram się za żaden projekt bez jQuery :) Oczywiście czasami coś prostego lepiej zaprogramować w czystym JS niż ładować dużą bibliotekę tylko po to aby obsłużyć jeden przycisk. Pamiętaj o tym.

Jeżeli na początku Twojej przygody brakuje Ci wielu rozwiązań z PHP to polecam zainteresować się projektem php.js. Nie radzę dodawać tej biblioteki do swoich stron (chociażby z powodu jej rozmiarów) ale łatwiej będzie Ci się czegoś nauczyć gdy zobaczysz jak zaimplementowane są w JS funkcje z dobrze znanego Ci języka.

Jest też coś dla programistów Java. Napisz wszystko w Javie i użyj Google Web Toolkit a kompilator sam zbuduje całą aplikację łącznie ze skryptami JS. Chociaż nie wszyscy są zdania, że to dobre rozwiązanie...

Podsumowując, chociażbyś bardzo chciał to JavaScript nie unikniesz. Ale nie ma ku temu powodów, czasy się zmieniły zdecydowanie na korzyść tego języka. Zacznij go odkrywać a zobaczysz ile nowych możliwości otworzy się przed Tobą i jak łatwo uzyskać niektóre efekty (zwłaszcza z pomocą narzędzi typu jQuery :) ).


NaszTomaszow.pl – epilog

07 stycznia 2010

Logo NaszTomaszow.pl

W ostatnich dniach i tygodniach decydowała się przyszłość portalu NaszTomaszow.pl. Trzeba było podjąć pewne decyzje, obecny stan rzeczy nie mógł trwać wiecznie. Powodów było kilka:

  • Przede wszystkim w Tomaszowie jest fatalna sytuacja na rynku reklam. Długo by opowiadać...
  • Po drugie, bardzo ciężko przebić się z nowym medium. Rynek jest hermetyczny, jest wiele znajomości, układów, niepisanych umów. Wszystko już zostało podzielone i nowa konkurencja nie jest mile widziana.
  • Po trzecie wreszcie, w Tomaszowie świadomość potencjału jaki niesie ze sobą internet jest na wyjątkowo niskim poziomie. Ciężko jest przekonać do kupna reklamy czy "sprzedaniu" dobrego tematu kogoś kto nie jest pewien którym przyciskiem włącza się komputer.

Do tego dochodzi jeszcze niejasna sytuacja na samym portalu. Nie tylko ja włożyłem w niego dziesiątki a może nawet setki godzin pracy. Obowiązywały mnie pewne słowne ale dżentelmeńskie umowy o współpracy, których wypadało dotrzymać.

To wszystko spowodowało, że z nowym rokiem przestałem być właścicielem portalu NaszTomaszow.pl. Ci, którzy znają mnie trochę lepiej i/lub czytają dokładniej mojego bloga wiedzą, że to nie pierwsza taka sprzedaż w moim życiu. Tym razem jednak, oprócz zapewnień słownych, gwarancja dalszego rozwoju portalu (w czym mam brać czynny udział) została zapisana w umowie sprzedaży. Oczywiście o wszystkim decydował będzie nowy właściciel ale można mieć nadzieję, że strona nie skończy tak jak osada.pl i jeszcze przez długie lata będzie służyła mieszkańcom Tomaszowa Mazowieckiego, również mi.

Przy okazji chciałbym rozwiać pewien mit jakoby NaszTomaszow.pl powstał tylko na złość właścicielowi tomaszow.pl. Słyszałem takie oskarżenia wielokrotnie a to zupełne bzdury... Nie wiem jak bardzo nienawistnym człowiekiem trzeba byłoby być aby poświęcać tyle czasu, rezygnować przez tyle miesięcy z odpoczynku, tworzyć kod tyle tygodni i miesięcy po godzinach i robić to wszystko tylko po to aby dopiec komuś innemu.

Prawda jest taka, że NaszTomaszow.pl powstał dlatego, że była luka na rynku. Tomaszow.pl był (i nie licząc krótkiej przerwy gdy coś się tam działo, nadal jest) zaniedbany i opuszczony. Uznałem, że jest to szansa i postanowiłem ją wykorzystać. Taka działalność idealnie wpasowałaby się w moje plany ponieważ chciałem oferować usługi tworzenia i utrzymywania stron www na rynku tomaszowskim. NaszTomaszow.pl miał być moją wizytówką, portfolio i darmowym ogłoszeniem moich usług. Plany zmieniły się gdy pojawiła się ciekawa oferta sprzedaży osada.pl na którą przystałem. W ten sposób został mi osamotniony NaszTomaszow.pl z którym nie było co zrobić :)

Nieprawdą jest również, że to ja odpowiadam za upadek tomaszow.pl. Owszem, był czas gdy byłem administratorem tamtejszego forum ale z pewnych powodów zrezygnowałem z tego stanowiska na około rok przed powstaniem NaszTomaszow.pl. Sam portal otworzyłem w połowie października, gdy forum tomaszow.pl od dawna było zaspamowane przez roboty spamujące, które, jak wszyscy wiemy, są plagą internetu. Mimo to jeszcze wiele miesięcy nic się nie zmieniło i roboty zostały zablokowane dopiero w marcu (mogę się mylić ale jestem pewien na 80%, że to był marzec) następnego roku. Tak więc właściciel tomaszow.pl nie zajrzał na własne forum przez 5, może 6 miesięcy mając wiedzę, że źle się tam dzieje (wielu użytkowników go o tym informowało). Nie przeszkodziło mu to wszystko aby to mnie obarczać winą za zaistniałą sytuację... Pomijam fakt, że cała reszta strony była również opuszczona i mimo upływu lat jest tak nadal. I tak pewne osoby ostatecznie powiedzą, że to wszystko moja wina :) A przecież od tak dawna nie mam z tą stroną zupełnie nic wspólnego...

Ufff... Tyle wystarczy. Musiałem to w końcu napisać. Ktoś może stwierdzić, że wylewam tu swoje żale ale milczałem od dawna jednak minęło już kilka lat a ja nadal jestem pomawiany i obwiniany za wszystko. A prawda jest taka, że każdą stronę trzeba pielęgnować, opiekować się nią a nie zrzucać winę na innych zamiast szukać błędów we własnym postępowaniu.

Mimo sprzedaży NaszTomaszow.pl mam nadzieję, że jeszcze tomaszowianie będą mieli okazję z zadowoleniem korzystać z moich stron www :) Kroki, które podjąłem pozwalają mi myśleć z nadzieją o moim nowym, już ogólnopolskim serwisie. W odpowiednim czasie na pewno dowiecie się ode mnie na ten temat więcej :)


Domyślny program dla plików bez rozszerzeń

05 stycznia 2010

Jak wszyscy pewnie wiecie, rozszerzenia plików to informacja dla systemu w jakim programie dany plik ma zostać otworzony/uruchomiony. Dzięki temu po dwukrotnym kliknięciu np. na nasze zdjęcie z wakacji automagicznie otwiera się przeglądarka plików graficznych.

W Windowsie (opisuję Windows Vista ale we wszystkich wygląda to podobnie) możemy dowolnie przypisywać rozszerzenia do programów, usuwać te przypisania itd. Z jednym wyjątkiem...

W pracy zawodowej wielokrotnie napotykam pliki bez rozszerzenia. Są to zwykłe pliki tekstowe o nazwach README, TODO, LICENSE itd. Za każdym razem gdy chcę taki plik otworzyć system pyta mnie jakiego programu użyć. W niektórych wersjach Windowsa mogę zaznaczyć aby już zawsze otwierać tego typu pliki wybranym programem ale system i tak zignoruje to ustawienie. W innych wersjach "ptaszek" jest nieaktywny, nie da się go zaznaczyć. Czemu Bill, czemu... ?

W końcu miarka się przebrała. Rozwiązanie jest i to całkiem proste chociaż wymaga modyfikacji przez nas rejestru systemu. Jeżeli ktoś jest niecierpliwy, ma Windows Vista i chciałby pliki bez rozszerzeń otwierać w notatniku to wystarczy uruchomić ten plik i w ten sposób dodamy odpowiednie ustawienia do rejestru. Jeżeli masz inny system, chcesz użyć innego programu etc. to czytaj dalej :)

  • Klikasz Start->Uruchom...
  • W nowym oknie wpisujesz słowo regedit i wciskasz Enter/klikasz OK
  • Na liście wyszukujesz HKEY_CLASSES_ROOT, klikasz prawym klawiszem i z menu kontekstowego wybierasz Nowy->Klucz
  • Nowo utworzonemu kluczowi musisz nadać nazwę . (czyli po prostu wpisz kropkę)
  • Klikasz na ten klucz (upewniamy się w ten sposób, że jesteśmy w dobrym miejscu)
  • Z prawej strony masz jedną, domyślną wartość ciągu - kliknij tam dwa razy aby ją zmodyfikować
  • W otwartym okienku wpisujesz txtfile i wciskasz Enter/klikasz OK

Rozwiązanie przetestowane dla Windows Vista ale bez wątpienia działa na innych wersjach tego systemu. Po takich modyfikacjach pliki bez rozszerzenia będą się otwierały w notatniku. Wyczytałem, że w innej wersji systemu (nie wiem jakiej) zamiast txtfile wpisuje się NOTEPAD. Poeksperymentujcie, nic tutaj się nie da popsuć. Jeżeli chcesz mieć pewność, że wszystko zadziała lub po prostu chciałbyś użyć innego programu to możesz zrobić tak (ponownie opis bazujący na Windows Vista ale te same opcje posiadają inne wersje tego systemu):

  • Wejdź do Panelu Sterowania
  • Zależnie od tego czy masz włączony nowy wygląd czy wygląd klasyczny klikaj:
    • nowy wygląd: Programy->Programy domyślne->Skojarz typ pliku lub protokół z programem
    • wygląd klasyczny: Programy domyślne->Skojarz typ pliku lub protokół z programem
  • Wyszukaj inne rozszerzenie, które jest otwierane przez program którym chciałbyś również otwierać pliki bez rozszerzeń
  • Przejdź do okienka edytora rejestru i odnajdź rozszerzenie, które przed chwilą wyszukałeś (wszystkie rozszerzenia są ustawione alfabetycznie w kluczu HKEY_CLASSES_ROOT)
  • Skopiuj zawartość wartości domyślnej (dwa razy klikasz, otwiera się okienko edycji, kopiujesz wartość)
  • Odnajdź klucz odpowiedzialny za pliki bez rozszerzeń czyli o nazwie . (kropka)
  • Modyfikujesz zawartość wartości domyślnej i wklejasz wcześniej skopiowaną wartość

Gotowe. U mnie ustawienia zadziałały natychmiast po ich wprowadzenia, nie musiałem ponownie uruchamiać systemu. Od dzisiaj mniej klnę :)


Dobry ruch, zły ruch

29 grudnia 2009

Tytuł wcale nie nawiązuje do szachów chociaż jestem zapalonym graczem. Koniec roku sprzyja podsumowaniom i z tego powodu zdecydowałem się napisać kilka słów o ruchu jaki był na tym blogu przez ostatnie kilkadziesiąt miesięcy.

Związane jest to z moimi przemyśleniami i postanowieniami czego efektem jest taki oto wykres statystyk bloga:

Statystyki bloga

Już spieszę z tłumaczeniami. Otóż... Upraszczając do maksimum, każdemu właścicielowi strony www zależy na jak największym ruchu na jego stronie. Ja, mając za sobą już tyle projektów, mam niejako we krwi aby na każdym etapie tworzenia i prowadzenia strony www postępować tak aby słupki rosły... Jednak czy aby na pewno najważniejsza jest jedynie unikalna liczba użytkowników odwiedzających nasze witryny?

Jak widać na powyższym wykresie, był czas gdy statystyki tego bloga rosły jak oszalałe. Powinienem być w takim razie zadowolony. Na stronę trafiało dużo więcej mało doświadczonych użytkowników, którzy poszukiwali łatwych metod ściągania plików z wrzuta.pl (wpis na ten temat) czy komentujących działania nasza-klasa.pl (chociażby ten wpis) itp. Zastanówmy się co mi ten ruch dał:

  • zwiększone opłaty za serwer
  • trzeba było poświęcać więcej czasu na moderację
  • mnóstwo nic nie wnoszących komentarzy pod wpisami

To te najważniejsze "zalety" wysokich słupków. Jak widać, nie ma się z czego cieszyć... Oczywiście, gdyby blog miał na celu zarabianie i byłyby tu reklamy, liczba odsłon reklam wygenerowałaby dodatkowe przychody. To jedyna zaleta takiego "pustego" ruchu. Pamiętajmy jednak, że tendencje są takie aby rezygnować z opłat za odsłony i płacić za kliknięcia. Pewnie już dawno królowałaby w internecie ta druga metoda gdyby nie problem z fałszywymi kliknięciami...

Jakie można wyciągnąć wnioski z powyższego? Oczywiście, ruch na stronie jest zawsze pożądany. Pamiętajmy jednak, że powinno nam zależeć na wartościowych odwiedzinach. Na osobach, które mogą na dłużej zadomowić się w naszym serwisie, wzbogacić go, wnieść coś od siebie.

Ja nijak tego bloga nie promuję jednak był czas gdy prostymi metodami pozycjonowałem go na wybrane, popularne frazy. Zaprzestałem tego (co łatwo zauważyć na wykresie :) ) gdy dotarło do mnie, że bardziej sobie i stronie szkodzę niż pomagam. Przy prowadzeniu swoich stron pamiętajcie aby nie dać się ponieść magii cyferek. Czasami naprawdę lepiej mieć mniejsze statystyki...

Na koniec nie pozostaje mi nic innego jak tylko życzyć wszystkim bardzo popularnych serwisów z bardzo zaangażowanymi społecznościami :) Do zobaczenia w roku 2010!


Dbaj o klienta swego

25 listopada 2009

Niezależnie od tego czy prowadzimy duży serwis internetowy czy spożywczaka na rynku, powinniśmy dbać o swoich klientów. Nieprawdopodobne, że niektórzy potrafią pracować kilkanaście godzin dziennie, inwestować oszczędności swojego całego życia i stawać na głowie aby ich interes funkcjonował a na samym końcu nie uśmiechną się do klienta i wszystko zaprzepaszczą...

Do napisania tego tekstu skłoniło mnie zachowanie administratorów portalu goldenline.pl. Dawno temu (ponad rok) skorzystałem z jakiegoś formularza kontaktowego na stronie aby podsunąć autorom malutkie acz wygodne udogodnienie. Sami mnie zresztą do tego zachęcali jakimś krótkim tekstem gdzieś na stronie aby aktywnie uczestniczyć w budowaniu goldenline.pl.

Nie w tym rzecz o co chodziło. Zmiana tego kosztowała programistę trzy minuty pracy a znacznie ułatwia nawigację. Mój pomysł wprowadzono w życie... po roku czasu.

To dobry przykład na to, że zaniedbanie jednego elementu (kontakt z użytkownikami) może negatywnie wpłynąć na wizerunek całego serwisu. Nawet mi nic nie odpisali...

Oczywiście powyższy problem jest wyolbrzymiony, na nikogo się nie obraziłem, że mnie olali :) Moja opinia na temat goldenline.pl zupełnie się nie zmieniła, nadal będę miał tam swoje konto bo raz na jakiś czas pojawiają się ciekawe oferty pracy :) Gdyby jednak od razu ktoś zajął się moim zgłoszeniem i wprowadziliby zmianę, którą i tak w końcu zdecydowali się wprowadzić to na pewno moja sympatia do tego portalu by wzrosła.

Inny przykład. Raz na jakiś czas zdarza mi się zamówić jakieś jedzenie z dowozem. Raz pizza, innym razem kebab, niekiedy chińskie żarcie. Dostawcy zwykłem dawać jakiś napiwek. Ale nie zawsze...

Nigdy nad tym głębiej się nie zastanawiałem, dzisiaj jednak ponownie coś zamówiłem i gdy otworzyłem drzwi aby odebrać jedzenie ujrzałem człowieka trochę nieśmiałego, bez wyrazu na twarzy, jakby się wstydził własnej pracy. Coś burknął i poszedł. Napiwku nie dostał.

Ja wiem, że ciężko tak na prawo i lewo rozdawać uśmiechy, zwłaszcza, że z różnymi debilami ma się styczność i łatwo w jednej chwili stracić humor na cały dzień. Mimo to pogodne podejście do życia znacznie je ułatwia ;)

Gdyby na twarzy tego samego dostawcy chociaż na ułamek sekundy zarysowało się coś na wzór uśmiechu, powiedział coś, chociażby przyjaznym głosem "Dzień dobry" to by pewnie dostał "coś extra". Mój mózg niejako automatycznie by go pozytywnie ocenił i byłbym bardziej skłonny mu ten napiwek dać, pewnie nawet nie w pełni świadom całego procesu.

To koniec moich niepoukładanych i oderwanych od siebie myśli. Dość chaotycznie wszystko napisane ale pora późna :)

...a tak w ogóle to uśmiechajcie się do siebie bez powodu, będzie nam się wszystkim żyło lepiej ;) .