‘ Internet ’ Kategoria archiwum

VPS od freecast.pl

04 października 2011

Trochę mi głupio, że to drugi wpis na blogu o firmie hostingowej i drugi z negatywną oceną. Ktoś w końcu dojdzie do wniosku, że potrafię tylko narzekać.

Z drugiej strony, gdy sam wybieram hosting, to szukam w Internecie rzetelnych recenzji. Szczególnie biorę pod uwagę opinie blogerów bo ktoś kto prowadzi swój blog od kilku lat, raczej nie będzie kłamał i koloryzował faktów. Nie jest już taki anonimowy i nie da się też ukryć, że jest się jakoś powiązanym z daną firmą.

Podsumowując: nie chcę narzekać ale trzeba ludzi informować jak wygląda sytuacja. Każdy sam wyciągnie wnioski.

Od kilku miesięcy, z przerwami, posiadam serwer VPS zarejestrowany na freecast.pl. Nigdy nie stało na nim nic poważnego, służy mi do rozrywki i nauki zarządzania LAMP. Nie jestem w stanie obiektywnie ocenić jego wydajności bo nigdy nie wygenerowałem na nim ruchu, który dostarczyłby mi jakichś miarodajnych danych. Zdążyłem sobie jednak już wyrobić opinię o tej firmie i jej usługach.

Spotkały mnie dwie nieprzyjemne sytuacje. Pierwsza, ewidentnie z mojej winy. Skasowałem sobie pliki. Żeby było śmieszniej, zrobiłem to podczas próby stworzenia backupu… :D Wszystko wydarzyło się w niedzielę około godziny 16 lub 17. Napisałem do BOK zapytanie czy mają backup mojego serwera ale nie liczyłem na pozytywną odpowiedź i zabrałem się od razu za odtwarzanie (czytaj: robienie od nowa..) straconych danych.

Odpowiedź od freecast.pl nadeszła w poniedziałek około południa. Oto ona:

Witam

kopie tworzone są o godzinie 22 każdego dnia

Kosztem niedzielnego wieczoru odzyskałem już wszystko co straciłem ale ta odpowiedź mnie zaintrygowała więc dopytałem czy to oznacza, że kopie są nadpisywane. Musiałem czekać aż do środy do godziny 11 aby dostać niezwykle rozbudowaną odpowiedź, która brzmiała: „Tak”.

Wnioski? Backup na VPS’ach od freecast.pl niby jest ale trzeba mieć trochę szczęścia żeby z jego dobrodziejstw skorzystać. Jeżeli będziesz chciał coś z niego przywrócić to masz czas do godziny 22:00 tego samego dnia. W weekend się raczej nie doprosisz. W dni powszednie jest pewnie lepiej ale też trzeba się modlić aby usterka nie wystąpiła tuż przed godziną 22:00 i aby ktoś po drugiej stronie kabla przeczytał Twój e-mail na czas.

Oczywiście należy być obiektywnym. To ja sobie skasowałem pliki i to moja wina, że nie miałem ich kopii zapasowych. W ofercie VPS’ów na freecast.pl nie ma wzmianki o backupach więc nie mogę mieć do nich pretensji, że nie zabezpieczyli moich danych. Mimo to, skoro robią te backup’y to mogliby je już tak robić aby były użyteczne dla ich klientów. To by z pewnością poprawiło wizerunek firmy w moich oczach. Ta bezsilność jest okropna gdy podejrzewasz/wiesz, że Twoje dane jednak gdzieś się zachowały ale i tak wkrótce zostaną skasowane i nie masz na to żadnego wpływu.

To jednak nic w porównaniu z drugą sytuacją, która wydarzyła się kilka dni temu. Oto treść maila jaki otrzymałem 29 września o godzinę 18:15 (formatowanie oryginalne):

W dniu 28.09.2011 około godziny 19.40 doszło do ingerencji osób trzecich na główny serwer odpowiadający za usługi VPS . W wyniku tego doszło do wykasowania danych z dysku serwera , dane osobowe nie zostały naruszone .Cała sprawa jest w toku dochodzenia przez organy ścigania .

Za zaistniałą sytuacje firma Marcin Kostrzewa S.M.pl

Bardzo Przeprasza

P.S.

W ramach rekompensaty nasza firma zobowiązuje się dla osób poszkodowanych udzieleniem 30 dniowego korzystania z usług za darmo , tym samym informujemy że usługi VPS zostaną na nowo aktywowane .

Poczuwamy się do odpowiedzialności

Administracja

Domyślałem się odpowiedzi, dopytałem jednak jeszcze czy backup’y także zostały skasowane. Odpowiedź była twierdząca. Klientom po jakimś czasie przywrócono czyste instalacje ich serwerów VPS.

Padli ofiarą przestępstwa i z pewnością nie są zadowoleni z takiego obrotu spraw. Mimo to, trudno ocenić całą sytuację inaczej niż totalną katastrofę. Czy na pewno wszystko było należycie zabezpieczone? Czy backup’y były na tej samej maszynie czy na osobnej? Czy żaden pracownik nie popełnił błędów, które przyczyniły się/spowodowały ten armagedon? Nie mam pojęcia i pewnie nigdy się nie dowiem.

Sam nie ucierpiałem w tym jakoś strasznie. Serwer i usługi trzeba skonfigurować od nowa, przepadły też niektóre dane ale z rozmysłem ich nie kopiowałem, nie były mi już niezbędne. Natomiast wszystko to co ważne, mam skopiowane i trzymam w bezpiecznym miejscu. Obawiam się jednak, że inni klienci freecast.pl nie są w takiej dobrej sytuacji.

Próby (czasami udane) ataków/włamań na serwery to codzienność administratorów. Bez względu na przyczyny takich zdarzeń, klient ma prawo oczekiwać, że nawet w najczarniejszym scenariuszu jego dane przetrwają. Chociażby kopie sprzed kliku dni ale żeby coś zostało. Freecast.pl nie zdało egzaminu.

Życzę podniesienia się z tej klęski. Dostałem „gwarancje ze taka sytuacja się nie powtórzy”. Mam nadzieję, że będą w stanie dotrzymać słowa i znajdą się jeszcze klienci, którzy im zaufają.

PS
Oby sprawcy zostali wykryci. Trzeba być naprawdę łajdakiem żeby robić takie rzeczy!

EDIT 2011-10-18
Byłem wyjątkowo wyrozumiały dla freecast.pl ale bałagan jaki tam mają skutecznie mnie do nich zniechęca. Mimo obiecanych 30 dni zadośćuczynienia za to, że przepadły moje dane, nadal automat kazał mi opłacić rachunek za następny miesiąc. Gdy nie opłaciłem, konto wygasło i przez weekend nie działało. Po mojej interwencji przywrócili je w poniedziałek. Na szczęście ze wszystkimi danymi.

EDIT 2011-10-25
Warto pisać o nieprawidłowościach! Ktoś z freecast.pl czytał mój wpis bo link podano w dyskusji o hostingu na webhostingtalk.pl i doczekaliśmy się nawet odpowiedzi na moje zarzuty. A przed chwilą w mojej skrzynce pojawił się taki oto e-mail:

Witamy

mamy dla Państwa miłą informacje z dniem dzisiejszym wszystkie serwery VPS naszych klientów będą posiadały kopie bezpieczeństwa , która będzie wykonywana codziennie o 5 rano na osobny serwer .Dziękujemy za uwagę.

Chyba można zaryzykować stwierdzenie, że miałem na to jakiś wpływ :) Cieszy mnie taki obrót spraw, nie wszystko jeszcze stracone! :)

EDIT 2011-11-02
Nie mogę sobie odmówić kolejnego dopisku :D Otóż dostałem dzisiaj rano informację od freecast.pl o konieczności opłacenia faktury bo za dwa tygodnie mój VPS wygasa. Taki zwykły komunikat, nic specjalnego. Problem w tym, że od godziny 5:00 do godziny 5:59 włącznie takich maili dostałem… 61! Oni to jednak mają talent :D


W Internecie nic nie ginie

31 sierpnia 2011

Ostatnio mało tu piszę i sam jestem z tego powodu zawiedziony… Niestety praca mi się nigdy nie kończy i bardzo ciężko znaleźć chwilę na przyjemne rozmyślanie i przelewanie tego na ekran.

Mimo tego trzymam się mojej żelaznej zasady przynajmniej jednego tekstu na miesiąc :) Dlatego dzisiaj dodaję ostatni artykuł jaki napisałem dla Przeglądu Lokalnego Famka. Nigdy nie został opublikowany. Teksty okazały się chyba za ambitne, tabloidyzowanie wszystkiego postępuje…

Z oczywistych powodów artykuł nie jest techniczny ale polecam jego lekturę aby zapisać sobie w pamięci, że jeżeli naprawdę mocno potrzebujemy jakichś informacji to warto sięgnąć po narzędzia o których na co dzień nie pamiętamy i z których nie korzystamy.


Internet to ogromna baza informacji, która cały czas ewoluuje, zmienia się. Zdarza się również, że jakieś dane z Internetu znikają, trwale (są usuwane przez autora) lub tymczasowo (np. awaria serwera). Czy jesteśmy zdani na łaskę i niełaskę ludzi i maszyn przy dostępie do wiadomości? Czy istnieją inne sposoby dotarcia do wiedzy, gdy wszystko wskazuje na to, że nie jest już ona dostępna z poziomu naszej przeglądarki internetowej?

Błąd 404 – nie odnaleziono strony sieci Web
Ileż to razy poszukiwaliśmy pilnie jakiejś informacji i znajdując potencjalnie interesujący nas link do jakiegoś artykułu, okazywało się, że serwer z daną stroną WWW akurat uległ awarii, wyczerpał się jego transfer na aktualny miesiąc lub nastąpiła inna z tysięcy plag, jakie nękają witryny internetowe. Wielu z nas odchodzi „z kwitkiem” i mozolnie przeszukuje kolejne, niezliczone ilości stron. Nie wolno się jednak tak łatwo poddawać.

Mamy swoje sposoby
Z pomocą przyjdą nam wyszukiwarki internetowe. Indeksując Internet nie zapisują jedynie wybranych informacji o stronach a często całe witryny. W łatwy sposób możemy je poprosić, aby wyświetliły nam swoje kopie.

W Google istnieje prosty operator specjalny, cache:. Znając adres poszukiwanej przez nas witryny wystarczy zadać zapytanie w takiej postaci cache:radiofama.com.pl. Jeżeli mamy trochę szczęścia to ujrzymy kopię strony radiofama.com.pl z czasu, gdy robot Google odwiedzał tą witrynę ostatnim razem. Można również zwyczajnie wpisać zapytanie o interesującą nas treść do wyszukiwarki i przy wynikach kliknąć link Kopia.

Oczywiście nie jest to metoda zapewniająca sukces. Po pierwsze, nie cały Internet jest w ten sposób zapisywany jako kopie i może się zdarzyć tak, że akurat interesujące nas treści nie zostały zapamiętane. Po drugie, taka kopia jest czasami sprzed godziny, czasami sprzed dwóch dni a czasami sprzed tygodnia. Wszystko zależy od tego, kiedy ostatnim razem robot wyszukiwarki zapisał kopię witryny. To powoduje, że wyszukiwarka nie zawsze zwróci nam to, czego byśmy oczekiwali.

Google to nie wszystko
W Polsce i na świecie istnieją inne wyszukiwarki, które tworzą kopie odwiedzanych stron. Należy tu przede wszystkim wymienić bing.com, search.yahoo.com, polskie netsprint.pl, gooru.pl i szukacz.pl (w dwóch ostatnich kopie potrafią być nawet sprzed kilku lat) czy chociażby tak mało u nas znanego chińskiego giganta wyszukiwarkowego, baidu.com. Możliwości jest więc wiele i tylko od naszego zawzięcia zależy czy dotrzemy do upragnionych informacji.

Archiwum Internetu
Istnieje w Internecie pewien osobliwy wehikuł czasu. Nie ma lepszej metody, aby zobaczyć jak wyglądała Twoja ulubiona strona np. 5 lat temu. Wgląd do przeszłości umożliwi Ci strona archive.org. Jest to ambitny projekt zachowania elektronicznych śladów dziedzictwa kulturowego. Interesujący nas element działalności ludzi z Internet Archive nazywa się Wayback Machine i w praktyce pozwala podglądać jak powstawały nowe i zmieniały się stare strony internetowe. Zawartość Internetu indeksowana jest od 1996 roku. Jeżeli chcesz wiedzieć jak wyglądała pierwsza wersja portalu Onet.pl to archive.org jest dla Ciebie.


Zachęcam do dodawania w komentarzach do artykułu własnych pomysłów w jaki sposób odnajdywać to co w Internecie jest już pozornie niedostępne.


Praca zdalna

30 czerwca 2011

Jedna z moich niedawnych rozmów zmotywowała mnie aby wreszcie opisać jak wygląda praca zdalna, z mojego punktu widzenia. Od kilku lat pracuję tylko zdalnie. W różnych firmach, w różnej formie ale zawsze w domu.

Niektórym osobom tryb pracy zdalnej jawi się jako brama do raju. Takie beztroskie myślenie towarzyszy większości moich znajomych. Rzeczywistość wygląda trochę inaczej i należy przeprowadzić naprawdę konkretną i bezkompromisową analizę żeby móc wyciągać wnioski.

Chciałbym opisać tryb pracy zdalnej zarówno z punktu widzenia pracownika jak i pracodawcy. Dodatkowo, część będzie dotyczyła momentu poszukiwania pracy/pracownika a część już samej pracy. Posłuży mi do tego wszystkiego dość luźna forma listy zalet i wad. Myślę, że bez względu na to kim jesteś (pracownik czy pracodawca) warto chyba przeczytać całość żeby być w pełni świadomym z czym mamy do czynienia.

Tekst dotyczy zdalnej pracy programisty/webdevelopera w sytuacji gdy istnieje zespół stacjonarny, pracujący na miejscu. Trochę inaczej wygląda sytuacja gdy wszyscy pracują zdalnie, jeszcze inaczej gdy mamy do czynienia z innym zawodem np. tłumacz. Jestem pewien, że poradzisz sobie z przefiltrowaniem moich wskazówek pod kątem własnej, konkretnej sytuacji :)

Z punktu widzenia pracownika

Zalety

  • Większy wybór pracodawców a więc większa szansa znalezienia pracy. Co prawda, ofert pracy zdalnej nie jest zatrzęsienie ale każda z nich to i tak o jedną więcej niż to co masz na miejscu. Jeżeli w Twojej okolicy nie ma dla Ciebie pracy i pozostaje tylko praca zdalna lub przeprowadzka to tym bardziej docenisz taką formę zatrudnienia.
  • Oszczędność czasu, pieniędzy i nerwów na dotarcie do pracy, przebicie się przez korki itd.
  • Jeżeli mieszkasz w Pacanowie a zarabiasz w Warszawie to jest to dla Ciebie atrakcyjny układ, masz mniejsze koszty utrzymania, w Twojej kieszeni zostaje więcej pieniędzy.
  • Możesz się obudzić pięć minut przed rozpoczęciem pracy i nikt nie będzie miał o to pretensji. Lepiej jednak nie praktykować tego stale, praca w kapciach i szlafroku rozleniwia. Im bardziej poczujesz, że „idziesz” do pracy tym lepiej dla Ciebie i pracodawcy.
  • Łatwiej Ci podjąć pracę jeżeli masz kłopoty ze zdrowiem.

Wady

  • Istnieje bardzo poważne zagrożenie, że nigdy nie staniesz się pełnoprawnym członkiem zespołu jeżeli tylko część pracowników jest pracownikami zdalnymi. Zagrożenie to wzrasta wraz ze wzrostem liczby pracowników stacjonarnych i/lub spadkiem liczby pracowników zdalnych.
  • Pracodawcy trudno jest kontrolować Twój czas pracy. Nie widzi Cię, nie może zobaczyć, że siedzisz nad kodem. W takiej sytuacji każde Twoje wyjście do WC, każda przerwa na obiad itd. jest wyraźniej widoczna niż ma to miejsce w biurze. Jesteś oceniany i pilnowany tylko na podstawie zegarka, Twoje przerwy wydłużają się dla szefa w nieskończoność i nie ma miejsca na poranną kawkę i ploteczki.
  • W związku z powyższym, nie każdy pracodawca potrafi się uporać z fałszywą sugestią, że robisz mniej. Będą kłopoty.
  • Musisz być bardziej samodzielny, lepiej radzić sobie z problemami itd. niż inni. Łatwo poprosić o radę kolegę z biurka obok, trudniej komuś marudzić co jakiś czas na Skype.
  • Swoje rachunki za prąd płacisz Ty, nie pracodawca :)
  • Najprawdopodobniej będziesz pracował na swoim sprzęcie i to Ty poczujesz ubytek w kieszeni gdy coś się zepsuje.
  • Każda inna awaria (np. brak prądu) będzie także Twoim problemem.
  • Musisz sobie zorganizować stanowisko pracy. Zapomnij o pracy na kanapie z laptopem na kolanach. Idealnym rozwiązaniem jest wydzielenie sobie kącika albo nawet całego małego pokoju tylko do pracy. Ja tak zrobiłem :)
  • Twoi współlokatorzy będą od Ciebie oczekiwać, że poodkurzasz, pozmywasz i wyprowadzisz psa na spacer. Jak odmówisz to powiedzą żeś leń. Daj im do zrozumienia, że do 16 (17 czy do którejś tam) jesteś w pracy, nie w domu.
  • Bardzo trudno oddzielić życie prywatne od pracy.
  • Bardzo trudno nie poddać się takim pokusom jak mała drzemka, obejrzenie czegoś w TV, zajęcie się czymkolwiek tylko nie pracą. Trzeba mieć naprawdę silny charakter.
  • Tracisz większość a nawet wszystkie przywileje jakie przysługują innym w Twojej firmie np. bezpłatna stołówka, bezpłatne napoje czy niepubliczna opieka zdrowotna.
  • W kryzysie będziesz zapewne pierwszy na liście do wywalenia. Łatwiej zwolnić Ciebie niż kolegę z którym się chodzi na piwo. Wskazówka: jak szef zaprasza Cię na piwo to jedź bez względu na wszystko :)

Inne wskazówki

  • Zapomnij o pracy w dowolnych godzinach. To w znacznej większości przypadków się nie sprawdza. Cały zespół musi pracować mniej więcej w tym samych godzinach. Jak Ci się marzy dowolność w tej kwestii to załóż firmę, zostań freelancerem. W pracy zdalnej nie pobyczysz się do południa. Wyjątkiem są tylko baaaardzo luźne zadania.
  • Uczestnicz we wszystkich inicjatywach jakie proponuje firma by integrować pracowników. To Twoja jedyna szansa żeby nawiązać z nimi normalne relacje. Jeżeli jest taka szansa, namów wszystkich na jakiś wyjazd integracyjny w Twoje strony, do Twojego miasta etc.
  • Fajnie jest posiedzieć w domu ale po jakimś czasie zaczniesz coraz bardziej tęsknić za pracą w biurze, będziesz szukał każdej możliwości aby wyrwać się poza cztery ściany. Musisz sobie jakoś zorganizować czas po pracy bo siedzenie przed TV i picie zimnego piwka nie będą już wcale takim miłym scenariuszem na wieczór.
  • Nawet jeżeli nie prowadzisz aktywnego trybu życia to pracując w biurze wykonujesz ten minimalny wysiłek fizyczny potrzebny do normalnego funkcjonowania Twojego organizmu. Jeżeli tego zabraknie a Ty będziesz się tylko przesiadał z fotela przed biurkiem na fotel przed TV to prędzej czy później podupadniesz na zdrowiu. Ostrzegam całkiem poważnie. Wystarczy chociażby codzienny półgodzinny spacer.

Z punktu widzenia pracodawcy

Zalety

  • Dobrze wypracowany system pracy zdalnej ułatwia rekrutację. Problemy ze znalezieniem pracowników będą zawsze ale od teraz będzie trochę łatwiej.
  • Teoretycznie możesz zatrudnić każdego.
  • Nie ponosisz kosztów nowego stanowiska pracy. A już na pewno nie w takim stopniu jak przy pracy stacjonarnej.
  • Pracownik jest raczej punktualny. Wymówka, że stał w korku nie przejdzie :)
  • Kobiety w ciąży i po porodzie mogą prawie cały czas pracować.

Wady

  • Komunikacja w zespole jest utrudniona. Nie przeskoczysz tego ale można osiągnąć dobry poziom.
  • Mogą się pojawić problemy czysto technologiczne takie jak dostęp pracownika zdalnego do firmowego serwera produkcyjnego itd.

Inne wskazówki

  • Zespoły pracowników zdalnych i stacjonarnych powinny mieć ze sobą stały kontakt ale każdy z takich zespołów powinien mieć własnego lidera do najważniejszych spraw. Oczywiście nie dotyczy to sytuacji gdy w którejś grupie jest tylko jeden pracownik :)
  • Bądź sprawiedliwy. Pracownik zdalny na wielu płaszczyznach współpracy ma trudniej.
  • Odległość pracownika od firmy nadal może być ważna. Jeżeli pracownik zdalny może dojechać do firmy maksymalnie w kilka godzin to chyba nie jest źle. Osobiście nigdy nie miałem potrzeby takiego pilnego spotkania ale może kogoś taka możliwość uspokaja ;)
  • Samodyscyplina, samodzielność i terminowość – bardzo ważne cechy, których powinieneś oczekiwać od pracowników zdalnych jeżeli nie chcesz mieć z nimi ciągle pod górkę.
  • Czasami jest trudniej kontrolować postępy pracy pracowników zdalnych a czasami nie. Zależy od trybu pracy, konkretnego zlecenia itd. Nie daj się jednak nabrać przekonaniu, że jak ktoś pracuje zdalnie to na pewno się obija i nie da się nad nim zapanować.

Każdy sam powinien wyliczyć sobie bilans zalet i wad ale mam nadzieję, że uświadomiłem przynajmniej niektórym, że praca zdalna to duże wyzwanie. Ja nie mam wielkiego wyboru, albo muszę pracować zdalnie albo przeprowadzić się do innego miasta. To w końcu nastąpi (przeprowadzka) ale póki co, dalej będę pracował zdalnie. Gdybym jednak miał łatwiejszy wybór, wybrałbym powrót do pracy w biurze (pracowałem tak ponad dwa lata nim zacząłem pracę zdalną).


Łatwiejsze zarządzanie serwerem Minecraft

09 maja 2011

Wygląda na to, że temat Minecraft’a zagości na tym blogu na dłużej bo zarządzanie Debianem i samym serwerem Craftbukkit sprawia mi wielką frajdę ;)

Szukając jakiegoś gotowca do robienia backupów map Minecrafta natrafiłem na arcyciekawy wpis kolegi ze Słowacji gdzie można znaleźć pakiet skryptów *.sh do podstawowej obsługi serwera Craftbukkit. Lekko je dostosowałem do własnych potrzeb (tak aby były kompatybilne z tym co opisałem we wcześniejszym wpisie).

Co dają nam te skrypty?

  • Zgrabne startowanie, restartowanie i zatrzymywanie serwera. Wszystko z powiadomieniami dla graczy.
  • Automatyczny backup naszych map.
  • Automatyczny restart serwera w wybranych godzinach (w przykładzie o 5:30 rano) aby oczyścić RAM serwera, pozwolić mu zaczerpnąć powietrza ;)
  • Automatyczne sprawdzanie co pół godziny czy serwer nadal działa. Gdy coś padnie a Ciebie nie będzie to jest duża szansa, że serwer sam wstanie.

Skrypty:

bukkit_start.sh – prosty skrypt startujący serwer. Od siebie dodałem obsługę pobierania nowych wersji serwera Craftbukkit. Raczej nie wywołuj go bezpośrednio, jest stworzony na potrzeby reszty skryptów.

#!/bin/sh

if [ $# -eq 1 ]
then

    if [ $1 = 'l' -o $1 = '-l' ]
    then

        echo "Pobieranie ostatniej wersji Bukkit"

        wget http://ci.bukkit.org/job/dev-CraftBukkit/lastBuild/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar
        mv -T craftbukkit.jar craftbukkit-last.jar
        mv -T craftbukkit-0.0.1-SNAPSHOT.jar craftbukkit.jar

    elif [ $1 = 'r' -o $1 = '-r' ]
    then

        echo "Pobieranie ostatniej rekomendowanej wersji Bukkit"

        wget http://ci.bukkit.org/job/dev-CraftBukkit/promotion/latest/Recommended/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar
        mv -T craftbukkit.jar craftbukkit-last.jar
        mv -T craftbukkit-0.0.1-SNAPSHOT.jar craftbukkit.jar

    fi

fi

java -d64 -Xincgc -Xmx1280M -jar craftbukkit.jar nogui

start.sh – nasz główny skrypt do startowania serwera. Sam martwi się o utworzenie screen’a dla Minecrafta (ale nie zakotwicza go do naszego okna). Nadal możesz używać parametrów -r i -l do pobierania nowych wersji Craftbukkit (opisane tutaj)

#!/bin/bash

if [ $# -eq 1 ]
then
    screen -S minecraft -t world -d -m /opt/craftbukkit/bukkit_start.sh $1
else
    screen -S minecraft -t world -d -m /opt/craftbukkit/bukkit_start.sh
fi

backup.sh – skrypt robi backup map serwera. Powiadamia grających użytkowników o przebiegu procesu, troszczy się o zapisanie mapy, kopiuje pliki i sam usuwa stare kopie bezpieczeństwa. Możesz skorzystać z wersji, która pakuje wszystko do plików zip ale ja stosuję proste kopiowanie wszystkich plików i folderów (działa szybciej a miejsca na dysku i tak nie brakuje). Ten skrypt kopiuje mapy o nazwach normal, nether i survival. Będziesz pewnie musiał dostosować skrypt do własnych potrzeb.

Jest też jedna wada. Skrypt robi backup nawet gdy między jedną kopią bezpieczeństwa a drugą nie było żadnych graczy. W takiej sytuacji nie ma powodu do robienia kopii bo nic się nie zmieniło na mapach. Można to załatwić poprzez użycie pluginu Backup. Przez jakiś czas go używałem i sprawuje się znakomicie. Zrezygnowałem z niego tylko dlatego, że wolę mieć pełnię władzy nad wszystkimi procesami związanymi z serwerem Minecrafta a dodatkowe, niepotrzebne kopie nie są dla mnie problemem (i tak się same usuną po dwóch dniach).

#!/bin/bash
# Minecraft AutoBackup

cd /opt/craftbukkit/

if [ -e server.log.lck ] #check if server is running
then
    screen -S minecraft -p world -X stuff "say Generowanie kopii bezpieczenstwa"`echo -ne '\015'`
    screen -S minecraft -p world -X stuff "save-off"`echo -ne '\015'`
    screen -S minecraft -p world -X stuff "save-all"`echo -ne '\015'`

    #zip -v backups/normal-`date "+%Y-%m-%d-%H-%M-%S"`.zip -r normal
    #zip -v backups/nether-`date "+%Y-%m-%d-%H-%M-%S"`.zip -r nether
    #zip -v backups/survival-`date "+%Y-%m-%d-%H-%M-%S"`.zip -r survival

    cp -r normal backups/normal-`date "+%Y-%m-%d-%H-%M-%S"`
    cp -r nether backups/nether-`date "+%Y-%m-%d-%H-%M-%S"`
    cp -r survival backups/survival-`date "+%Y-%m-%d-%H-%M-%S"`

    screen -S minecraft -p world -X stuff "save-on"`echo -ne '\015'`
    screen -S minecraft -p world -X stuff "say Kopia wygenerowana"`echo -ne '\015'`

    #dla plikow zip
    #find /opt/craftbukkit/backups/ -type f -mmin +2880 -exec rm {} \;

    find /opt/craftbukkit/backups/ -type d -mmin +2880 -exec rm -r {} \;
fi

restart.sh – restartuje serwer i ładnie powiadamia użytkowników o całym procesie.

#!/bin/bash
# Minecraft AutoRestart

cd /opt/craftbukkit/

screen -S minecraft -p world -X stuff "say Automatyczny restart za minute"`echo -ne '\015'`

sleep 50

screen -S minecraft -p world -X stuff "say Automatyczny restart za dziesiec sekund!"`echo -ne '\015'`

sleep 5

screen -S minecraft -p world -X stuff "say Automatyczny restart za piec sekund!"`echo -ne '\015'`
screen -S minecraft -p world -X stuff "save-all"`echo -ne '\015'`

sleep 5

screen -S minecraft -p world -X stuff "stop"`echo -ne '\015'`

sleep 10

screen -S minecraft -t world -d -m /opt/craftbukkit/bukkit_start.sh

sleep 20

screen -S minecraft -X stuff "say I po restarcie..."`echo -ne '\015'`

check.sh – sprawdza czy serwer działa. Jeżeli nie to go startuje i zapisuje logi z wydarzenia.

#!/bin/sh

cd /opt/craftbukkit/

if [ -e server.log.lck ]
then

    echo "Serwer dziala!"

else

    echo "Server nie dziala!"

    screen -S minecraft -t world -d -m /opt/craftbukkit/bukkit_start.sh

    NOW=$(date +"%b-%d-%y %H:%M")
    echo '[' $NOW ']: Serwer nie dzialal... Ale juz dziala!' >> /opt/craftbukkit/ServerCheck.log

fi

stop.sh – mój prosty skrypt do zatrzymania serwera, bez restartu.

#!/bin/sh

cd /opt/craftbukkit/

if [ -e server.log.lck ]
then

    screen -S minecraft -p world -X stuff "say Zatrzymanie serwera za 10 sekund"`echo -ne '\015'`

    sleep 10

    screen -S minecraft -p world -X stuff "stop"`echo -ne '\015'`

else

    echo "Server nie dziala!"

fi

Na koniec podaję wpisy jakie powinny znaleźć się w Cronie aby móc w pełni korzystać z dobrodziejstw wyżej wypisanych skryptów:

## Minecraft
#Backup map co godzine
0  *  *  *  *   cd /opt/craftbukkit && ./backup.sh > /dev/null 2>&1
#Restart serwera o godzinie 5:30
30  5  *  *  *  cd /opt/craftbukkit && ./restart.sh > /dev/null 2>&1
#Sprawdzamy co pol godziny czy serwer dziala, jezeli nie to go podnosimy
*/30  *  *  *  * cd /opt/craftbukkit && ./check.sh > /dev/null 2>&1

Pamiętajcie o uprawnieniach dla skryptów! Komenda chmod +x NAZWA_PLIKU.


Instalacja serwera Minecraft

28 kwietnia 2011

Gry Minecraft nie muszę chyba nikomu przedstawiać. A jeżeli ktoś jej naprawdę nie zna to w sieci jest o niej zatrzęsienie materiałów i nie ma sensu ich tutaj powielać. Jakiś czas temu postanowiłem połączyć przyjemne z pożytecznym i w ramach podnoszenia swoich umiejętności obsługi systemów Linux postawiłem serwer Minecraft na serwerze VPS z systemem Debian.

Minecraft ma swoje własne oficjalne oprogramowanie do serwerów multiplayer ale serwery budowane przez społeczność* są lepsze, bardziej rozbudowane, dają większe możliwości konfiguracji i rozszerzania itd. Zgaduję, że w tej chwili najpopularniejszy jest Bukkit**. Właśnie jego wybrałem i na nim się teraz skupimy.

Tak naprawdę instalacja jest banalna ale zauważyłem, że wiele osób szuka informacji i chyba przyda się taka mała ściągawka. Dodam w tym miejscu tylko tyle, że nie chcę się tutaj przesadnie skupiać na obsłudze samego Debiana. Musisz sobie z tym poradzić sam ale wskazówek w sieci jest pod dostatkiem.

Niektóre elementy poniższej listy zostały napisane pod osoby, które swój serwer VPS/dedykowany zakupiły trzy minuty temu. Jeżeli administrujesz serwerem już jakiś czas to nie wszystko musisz robić ale pewnie sam zdajesz sobie z tego sprawę ;)

Robiłem wszystko z poziomu root’a.

Jedziemy:

  • Przeczytaj to http://wiki.bukkit.org/Setting_up_a_server. Zrobimy trochę inaczej ale przeczytanie oficjalnych zaleceń nikomu nie zaszkodzi :)
  • Połącz się z serwerem. Nie wiesz jak? Skorzystaj z PuTTY i tym tropem podążaj w google :) Przy okazji dodam, że najprawdopodobniej możesz się także połączyć ze swoim serwerem za pomocą klienta SFTP. Ja polecam WinSCP. Jeżeli trudno Ci się poruszać po serwerze za pomocą konsoli to klient SFTP będzie dla Ciebie bardzo pomocny.
  • Przejdź do pliku /etc/apt/sources.list. Znajdują się tu adresy skąd Twój system powinien pobierać paczki oprogramowania. Ja mam tam wpisane następujące adresy:

    Debian 5

    deb http://ftp.de.debian.org/debian/ lenny main non-free contrib
    deb-src http://ftp.de.debian.org/debian/ lenny main non-free contrib
    deb http://security.debian.org/ lenny/updates main contrib non-free
    deb-src http://security.debian.org/ lenny/updates main contrib non-free
    
    deb http://www.backports.org/debian etch-backports main contrib non-free
    

    Debian 6

    deb http://ftp.pl.debian.org/debian/ squeeze main non-free contrib
    deb-src http://ftp.pl.debian.org/debian/ squeeze main non-free contrib
    deb http://security.debian.org/ squeeze/updates main contrib non-free
    deb-src http://security.debian.org/ squeeze/updates main contrib non-free
    deb http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib
    deb-src http://ftp.pl.debian.org/debian/ squeeze-updates main non-free contrib
    
    deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
  • Dokonaj aktualizacji wszystkich paczek. Zrobisz to za pomocą następującej komendy:
    apt-get update
  • Sprawdź czy masz zainstalowaną Jave (polecenie java -version powinno zwrócić jakieś informacje o Javie). Wyczytałem, że Bukkit nie zadziała z Javą w wersji OpenJDK (kiedyś chyba działał). Jeżeli nie masz Javy to uruchom następujący kod:
    apt-get install sun-java6-jre

    Teraz wypadałoby napisać czym różni się Java w wersji JRE od JDK. Ten cytat z Wikipedii wyjaśnia wszystko:

    JRE (Java Runtime Environment) – udostępnia kod bajtowy wszystkich klas standardowych i wirtualną maszynę do ich uruchamiania, zaś JDK (Java Development Kit) dodatkowo udostępnia źródła tych klas oraz dodatkowe narzędzia takie jak kompilator, paker czy debuger. Podział ten wprowadzono dlatego, że użytkownik Javy do uruchamiania programów potrzebuje tylko JRE, natomiast do programowania działających aplikacji potrzeba już JDK.

    Administrując serwerem Minecraft nigdy nie miałem potrzeby czegokolwiek kompilować więc moim oczywistym wyborem jest JRE. Jeżeli jednak z jakiegoś powodu chcesz mieć JDK to pakiet ten instaluje się identycznie, wystarczy zmienić literki na końcu polecenia.

    Wskazówka: podczas instalacji Javy pojawią się dwa „okienka” z informacjami o licencji. Aby w pierwszym „kliknąć” na Ok a w drugim zgodzić się na warunki licencji używaj klawisza Tab.

  • W /opt/ stwórz katalog o nazwie craftbukkit.
  • Do /opt/craftbukkit/ wgraj plik o nazwie start.sh o następującej zawartości:
    #!/bin/sh
    
    if [ $# -eq 1 ]
    then
    
        if [ $1 = 'l' -o $1 = '-l' ]
        then
    
            echo "Pobieranie ostatniej wersji Bukkit"
    
            wget http://ci.bukkit.org/job/dev-CraftBukkit/lastBuild/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar
            mv -T craftbukkit.jar craftbukkit-last.jar
            mv -T craftbukkit-0.0.1-SNAPSHOT.jar craftbukkit.jar
    
        elif [ $1 = 'r' -o $1 = '-r' ]
        then
    
            echo "Pobieranie ostatniej rekomendowanej wersji Bukkit"
    
            wget http://ci.bukkit.org/job/dev-CraftBukkit/promotion/latest/Recommended/artifact/target/craftbukkit-0.0.1-SNAPSHOT.jar
            mv -T craftbukkit.jar craftbukkit-last.jar
            mv -T craftbukkit-0.0.1-SNAPSHOT.jar craftbukkit.jar
    
        fi
    
    fi
    
    java -d32 -Xincgc -Xmx768M -jar craftbukkit.jar nogui
    

    W ostatniej linijce masz taki ciąg znaków: -d32. Jeżeli Twój system jest 32-bitowy to zostawiasz tak jak jest. Jeżeli system jest 64-bitowy to zamieniasz na -d64. W tej samej linijce masz ciąg znaków: 768M. Musisz tu wpisać ile RAM’u Twojego serwera chcesz przeznaczyć na Minecrafta. Niestety gra jest napisana w Javie i zżera ogromne zasoby :/ Wydajność to wielki problem tej gry.

  • Uruchom poniższą komendę aby umożliwić uruchamianie stworzonego przed chwilą pliku:
    chmod +x start.sh
  • Uruchom nasz skrypt z wymuszeniem ściągnięcia serwera (./start.sh -r o ile jesteśmy w katalogu /opt/craftbukkit/)
  • Olej wszystkie błędy :) Serwer na razie tworzy pliki konfiguracyjne etc.
  • Gdy serwer się uruchomił napisz stop i naciśnij Enter.
  • Teraz czeka nas konfiguracja serwera. Opiszę ją bardzo krótko, każdy powinien się bardziej w to zagłębić bo każdy ma inne potrzeby.
    • Najpierw plik ops.txt. Wpisujemy tu linijka pod linijką kolejne nicki operatorów serwera. Wpisuj wszystko małymi literami.
    • Następnie przechodzimy do pliku server.propeties. Tu jest kilka ustawień:
      level-name – nazwa Twojego świata. Może pozostać domyślna wartość.
      hellworld – decydujesz czy ma być dostępne tzw. piekło w Minecraft. Proponuję ustawić na false a dodatkowe światy obsługiwać za pomocą odpowiedniego pluginu np. MultiVerse.
      spawn-monsters – mają się pojawiać potwory?
      online-mode – podczas logowania użytkownika serwer ma sprawdzać czy posiada on oryginalną wersję gry?
      spawn-animals – mają się pojawiać zwierzęta?
      max-players – maksymalna ilość graczy jednocześnie
      server-ip – zostaw puste
      pvp – czy gracze mogą ze sobą walczyć i zadawać sobie rany?
      level-seed – seed mapy***. Można pozostawić puste, wtedy seed wylosuje się sam.
      server-port – port pod jakim ma być dostępny serwer. Można zostawić domyślną wartość.
      allow-flight – czy dozwolone jest latanie?
      white-list – wpuszczać tylko tych użytkowników, którzy są na białej liście?
      spawn-protection – nie jestem pewien do końca za co odpowiada to ustawienie. Nie chce mi się szukać ;) Domyślam się, że określa ilość kratek od punktu startu gry (tzw. spawn) w obrębie których to klatek nie działa np. PVP, bez względu na ustawienia serwera.
    • Plik white-list.txt wypełniamy tylko gdy w server.propeties ustawiliśmy opcję white-list na true. W pliku tym wpisujemy nicki osób, jeden pod drugim. Tylko osoby z tej listy będą wpuszczane na serwer.
  • Na tym konfiguracja serwera się kończy. Możemy ponownie go uruchomić (./start.sh). Nie powinno być już żadnych błędów. Wszystko co „wypluwa” serwer do konsoli możesz przeglądać w pliku server.log.

Serwer działa ale przestanie działać gdy tylko wyłączysz PuTTY. Jak temu zaradzić? Najprościej za pomocą pakietu screen. Najpierw instalacja (wcześniej wyłącz serwer Minecrafta poprzez polecenie stop):
apt-get install screen

Następnie w katalogu /opt/craftbukkit/ wpisujemy to:
screen -dR minecraft

Teraz uruchamiamy serwer:
./start.sh

Działa tak jak zawsze z tym, że teraz spokojnie możemy zamknąć PuTTY a serwer dalej działa. Jeżeli po wyłączeniu konsoli zapragniemy wrócić do naszego serwera to po zalogowaniu na swoje konto serwerowe wystarczy wpisać ponownie screen -dR minecraft i włączy nam się w konsoli nasz serwer. Aby z niego wyjść (oczywiście bez jego wyłączania) naciśnij kombinację przycisków Ctrl+a, puść je i naciśnij literkę d. W ten sposób wrócisz do konsoli ale serwer dalej będzie działał.

Bukkit jest aktualizowany praktycznie codziennie, czasami kilka razy na dzień. Część aktualizacji jest ustawiana jako rekomendowane, część to tylko drobne lub niepełne zmiany. Wszystkie buildy znajdziesz na stronie www.ci.bukkit.org/job/dev-CraftBukkit/. Swój serwer możesz łatwo zaktualizować dzięki tym komendom (najpierw oczywiście zatrzymaj serwer):
./start.sh -r
Zaktualizuje serwer do najnowszej rekomendowanej paczki
./start.sh -l
Zaktualizuje serwer do najnowszej paczki, niekoniecznie rekomendowanej

Po każdej aktualizacji automatycznie uruchamiany jest serwer. Jeżeli po aktualizacji coś jest nie tak (serwer się nie uruchamia, są jakieś błędy etc.) to Twoja ostatnia wersja serwera jest pod nazwą craftbukkit-last.jar.

Gratuluję, Twój serwer powinien już działać. Możesz się na niego zalogować jako gracz podając w kliencie Minecraft adres IP swojego serwera oraz port w postaci IP:port. Jeżeli port zostawiłeś domyślny (25565) to możesz go pominąć i podać tylko IP. Oczywiście można również ustawić to w taki sposób aby nie wpisywać IP a jakąś domenę ale to już sprawa na inny wpis… :)

Prawdziwą siłą Bukkita jest duża baza pluginów, które ułatwiają pracę administratorom/moderatorom, dodają nowe funkcjonalności itd. Namawiam do regularnego sprawdzania bazy pluginów.

Ciekawe artykuły o instalacji/uruchomieniu/obsłudze serwera Bukkit: [1], [2], [3]. Czytaj je jednak z głową bo nie wszystko tam jest prawidłowe… Na przykład zachęta do instalacji OpenJDK lub gorszy sposób uruchomienia serwera (komenda java -Xmx2048M -Xms2048M -jar minecraft_server.jar, która jest odradzana na oficjalnym forum Bukkita).

EDIT 09-05-2011
Gorąco namawiam do przeczytania mojego drugiego wpisu na temat serwera Minecraft. Znajdziesz tam kilka bardzo pomocnych skryptów do zarządzania Craftbukkit.

Przypisy
* – Nigdy nie sprawdzałem jak to wygląda od strony technicznej ale wyczytałem, że CraftBukkit to nakładka na oficjalny serwer, która udostępnia nowe możliwości/ulepszoną komunikację z oficjalnym serwerem. A więc nie jestem pewien czy można tu mówić o samodzielnym serwerze. Dla mnie to nie ma znaczenia ale wyjaśniam żeby ktoś mnie nie posądził, że podaję błędne informacje ;)

** – Tak naprawdę to serwer nazywa się CraftBukkit a Bukkit to API dla deweloperów dzięki któremu łatwiej im się komunikować w ich pluginach z serwerem Minecrafta. Dla uproszczenia będę nazywał serwer jako Bukkit. Sami twórcy tak postępują :)

*** – Każda mapa w Minecraft ma tzw. seed czyli ciąg znaków na podstawie którego generator terenu generuje kolejne porcje mapy. Dla graczy oznacza to ważną informację: jeżeli sami podamy seed to ilekroć będzie on taki sam tyle razy wygeneruje nam się identyczna mapa.


Nowe php.net

10 lutego 2011

Oficjalna witryna PHP raczej nie zachęca potencjalnych nowych programistów tego języka do zapoznania się z jego możliwościami. Strona wizualnie nie zmieniła się prawie wcale od roku 2001. Dziesięć lat!

Nowa wersja jest jeszcze w fazie Alpha i nie należy się po niej zbyt wiele spodziewać… Mimo to, cieszy, że w ogóle dostrzegli problem.

Zmiany można oglądać po odwiedzeniu tego linka: www.php.net/?beta=1. Nie wiem co już jest gotowe a co będzie jeszcze dodawane/poprawiane ale na razie wygląda na to, że jedynie górne menu jest jako tako dopracowane. Na resztę trzeba czekać.

Kod strony jest teraz lepiej przygotowany. Nastawili się na HTML5, wykorzystują nowe tagi. Zanosi się również na szersze wykorzystanie jQuery.

Do starej wersji php.net można w każdej chwili wrócić klikając na ten link: www.php.net/?beta=0.


Wyciąganie adresów filmów z YouTube zamieszczonych w tekście

15 grudnia 2010

Temat YouTube przypadkowo pojawia się na moim blogu drugi raz w krótkim czasie. Nie wiedziałem jaki tytuł nadać temu newsowi, najlepiej będzie gdy na przykładzie wytłumaczę w czym dzisiaj chciałbym Wam pomóc :)

Na nasztomaszow.pl w treści artykułów można oczywiście wpisywać kod HTML. Co za tym idzie, nie ma problemu ze wstawianiem filmików z YouTube. Problem z takim rozwiązaniem jest wtedy gdy chcielibyśmy móc jakoś zarządzać tymi filmami, zrobić ich katalog etc. Nie ma się czego uczepić bo filmy nie są zapisane w bazie w jakiś uporządkowany sposób.

Można byłoby utworzyć katalog filmów a potem wymyślić jakieś znaczniki np. BBCode i za ich pomocą umieszczać filmy w treści artykułów. To byłoby jednak kłopotliwe. Najprościej wejść na stronę filmu, skopiować kod HTML i zapomnieć o całej sprawie.

Nie pozostaje nam nic innego jak przetworzyć tekst i wyciągnąć z HTML'a potrzebne adresy. Oto gotowe rozwiązanie:

PHP:
  1. preg_match_all('@youtube\.(?:com|pl)/(?:watch\?v=|v/){1}([^&?#/"<]+)@si', $body, $youtube);
  2.  
  3. if(isset($youtube[1]) AND is_array($youtube[1]) AND !empty($youtube[1])) {
  4.  
  5.   $youtube = array_unique($youtube[1]);
  6.  
  7.   // wsadzamy informacje do bazy danych
  8. }

W zmiennej $body jest tekst gdzie może znajdować się także kod HTML jakiegoś filmu z YouTube (lub filmów, może ich być wiele ale może nie być żadnego). Wyrażenie wyciąga identyfikatory filmów, ostatecznie pojawiają się one w tablicy $youtube. Wcześniej upewniamy się jeszcze, że filmy się nie zdublują.

Powyższy kod wyciąga adresy filmów zarówno z HTML, który odpowiada za umieszczenie odtwarzacza na stronie jak i ze zwykłych odnośników do strony youtube.com.

W ten prosty sposób mamy informacje o wszystkich filmach w danym tekście. Identyfikatory możemy zapisać do bazy danych i robić z nimi co nam się podoba.

Konkretny przykład. W poprzednim newsie dodałem swój wywiad na temat osady. Adres tego filmu to http://www.youtube.com/watch?v=CGzTCNn5Zos. W takim razie identyfikator filmu to CGzTCNn5Zos. Ta informacja wystarczy nam aby wygenerować gdzie indziej link do tego filmu, kod HTML odtwarzacza czy wstawić screen z filmiku.

Generowanie linku lub kodu odtwarzacza to pikuś. Skupmy się na screenach. Mają one swoje konkretne adresy w postaci http://img.youtube.com/vi/IDENTYFIKATOR/X.jpg gdzie:
IDENTYFIKATOR - Tego chyba nie trzeba tłumaczyć.
X - Cyfra od 0 do 3. 0 to duży, główny screen a 1, 2 i 3 to trzy małe klatki wyciągnięte z filmu.

Przykład:

http://img.youtube.com/vi/CGzTCNn5Zos/0.jpg
http://img.youtube.com/vi/CGzTCNn5Zos/1.jpg
http://img.youtube.com/vi/CGzTCNn5Zos/2.jpg
http://img.youtube.com/vi/CGzTCNn5Zos/3.jpg

Congratulations! Your account is now enabled for uploads longer than 15 minutes. Click the Upload button below to select a video.

10 grudnia 2010

Tytuł tego wpisu to dokładny cytat komunikatu jakim mnie dzisiaj przywitał youtube.com. Nareszcie chłopaki!

Kiedyś na YouTube można było wrzucać długie filmy. Chyba do godziny, chociaż nie pamiętam dokładnie. Szybko okazało się, że nie wyrabiają się technicznie i od tamtego czasu mieliśmy limit 10 minut (podobno jak ktoś zarejestrował się wcześniej to został mu ten większy limit, godzinny). Niedawno wszystkim podarowano 5 minut więcej. Natomiast wczoraj pojawił się zaskakujący news. Otóż wybranym użytkownikom, którzy byli do tej pory grzeczni (nie łamali praw autorskich itd.), zniesiono limit 15 minut. Jaki jest nowy limit? Zacytuję:

As long as it’s your original content, it’s fair game regardless of length.

Czyżby limitu nie było w ogóle? :)

Mam to szczęście, że na moim prywatnym koncie również zniesiono limit. Pewnie nie będzie zbyt wielu okazji aby to wykorzystać ale dobrze jest wiedzieć, że nic mnie nie ogranicza.

Jeżeli masz konto na YouTube to przejdź do podstrony przesyłania nowego filmu (link "Prześlij film"). Jeżeli jesteś wybrańcem to odpowiedni komunikat pojawi się na górze strony. Powodzenia!

PS
Opisywana historia limitów na YouTube dotyczy oczywiście tylko zwykłych użytkowników. Partnerzy serwisu (duże firmy, znane marki itd.) nie mieli nigdy limitów.


Było sobie włamanie

25 października 2010

Wpis pisany na gorąco. Nie dość, że pracy mam mnóstwo, ciągle za czymś gonię to jeszcze w niedzielę wieczorem było włamanie na serwer gdzie jest konto hostingowe na którym leży np. nasztomaszow.pl. Ucierpiał również ten blog.

Wybór hostingu to zawsze trudna sprawa. Ja nie chciałem za wszelką cenę oszczędzać każdej złotówki, wolę płacić więcej ale mieć mniej problemów na głowie, nie martwić się obciążeniem serwera itd. W końcu padło na dhosting.pl. To było ponad rok temu.

Nie żałuję, ich usługi są naprawdę na wysokim poziomie. Awarie zdarzają się rzadko, serwery są bardzo wydajne. Kilka miesięcy temu podnieśli limity transferu i teraz są przyzwoite. Można byłoby popracować jeszcze nad panelem zarządzania kontem, brakuje mi np. możliwości samodzielnej konfiguracji cron ale podobno (sam nie miałem takiej potrzeby) wystarczy wysłać zgłoszenie do BOK i wszystko nam szybko ustawią. Pięknie byłoby jeszcze gdyby udostępnili ImageMagick ale to chyba mało gdzie jest dostępne na hostingu współdzielonym. Dopytywałem się, nie ma na to szans :(

Z dhosting.pl miałem tylko dwie przygody, których zdecydowanie nie powinno być.

Pierwsza (marzec 2010) dotyczy uprawnień na dysku. Nagle wszystkie nowo tworzone pliki zaczęły dostawać uprawnienia 600 a foldery 700. Problem bardzo mocno dotknął portal nasztomaszow.pl ponieważ jest tam rozbudowany mechanizm cache, który ciągle tworzy pliki i foldery. Stworzyłem ten mechanizm żeby oszczędzać serwer i teraz mi to wyszło bokiem :/ Oczywiście w BOK nie przyznano się do winy. Stwierdzili, że z serwerem jest wszystko ok i to moje skrypty PHP nawaliły. Tak się jednak składa, że klasy i funkcje do obsługi cache są w głównym pliku mojej aplikacji do sterowania całym portalem. Plik ten nie był zmieniany od miesięcy. Problem więc MUSIAŁ być po stronie serwera. Teraz już zawsze przy tworzeniu czegoś nowego na dysku używam dodatkowo chmod(), nawet jeżeli serwer jest domyślnie poprawnie skonfigurowany.

Drugi problem to ten wczorajszy włam. Takie rzeczy się oczywiście zdarzają, kiedyś już miałem takie przygody. W takiej sytuacji naprawdę nie interesują mnie dziecinne przepychanki czyja to wina. Ja chcę wiedzieć kto popełnił błąd nie po to żeby się na kimś wyżyć. Potrzebuję tej informacji żeby móc zapobiec w przyszłości podobnym sytuacjom :/ Jak się dowiaduję w niedzielę przed północą, że na wszystkich stronach widnieje napis "hacked by coś tam" to MUSZĘ wiedzieć czy włamano się z mojej winy czy nie. Jeżeli z mojej, to wiem, że trzeba szukać luki w swoim kodzie ale jeżeli problem dotyczy całego serwera to mogę iść spać, nic nie zwojuję i przy okazji wiem, że walczy ktoś inny, z firmy hostingowej. Niestety, ponownie zawiodłem się na BOK. Panowie jak zwykle nie widzieli problemu. Najlepiej zacytuję korespondencję:

Nie potwierdzamy, aby atak dotyczył głównego serwera.

Oczywiście backup możemy przywrócić, zalecamy jednak blokadę kont FTP lub zmianę haseł.

Teraz, gdybym zawierzył tej informacji, to mam nockę z głowy na szukaniu dziury przez którą ktoś się włamał. Na szczęście poszukałem innych stron, które są na tym samym serwerze. Efekt? Znalazłem kilkanaście na które również się włamano! Znowu w dhosting.pl nie potrafią się przyznać do błędu, wolą robić z klientów idiotów. Wysłałem zgłoszenie o przywrócenie plików z backupu (były prawie sprzed 24h chociaż dostałem wiadomość iż "Pliki index* zostały przywrócone z backupu z dzisiejszej nocy." :/ ) i podałem listę serwisów na które również się włamano. Pan z BOK dyplomatycznie przemilczał moje zarzuty, że to ich wina. Jednocześnie rozpoczęło się chyba wielkie przywracanie plików z backupów bo witryny sukcesywnie, jedna po drugiej, wracają do "życia".

Awarie, włamania i inne kataklizmy zdarzają się wszędzie. Hosting na dhosting.pl jest na wysokim poziomie, nie czepiałbym się niczego ale, do cholery, przestańcie mnie kłamać! :/ Fajnie, że nawet w środku nocy można do Was napisać i przywróciliście bardzo szybko backup ale jeżeli jeszcze raz nie będziecie ze mną szczerzy to już do Was nie wrócę.

Dobranoc.


Tak prezentował się przez jakiś czas również mój blog. Ponownie pożałowałem, że poświęciłem tyle czasu na system cache na nasztomaszow.pl. Gdyby nie on to miałbym do podmiany kilka plików a tak miałem kilka tysięcy. Bez pomocy dhosting.pl byłby niezły cyrk :/

EDIT
Dowód na to, że problem nie dotyczył tylko jednego konta: http://www.zone-h.org/archive/ip=195.88.51.10


Tajemnice wyszukiwarki Google

01 października 2010

Trzeci z artykułów napisany dla Przeglądu Lokalnego Famka. Gazeta ukazuje się w cyklu tygodniowym, w dwóch wydaniach, dla Tomaszowa Mazowieckiego i Piotrkowa Trybunalskiego.

Pamiętajcie kim są czytelnicy takich gazet nim ocenicie merytoryczność tekstu :P


Dzisiaj nikt z nas nie potrafi sobie wyobrazić efektywnego korzystania z Internetu bez wyszukiwarki internetowej. Z tej najpopularniejszej w naszym kraju, Google, korzystają codziennie miliony Polaków. Jednak czy potrafimy w pełni wykorzystać jej potencjał?

Operatory specjalne

Google, oprócz wpisywania podstawowych zapytań oferuje specjalne komendy za pomocą których możemy dokładnie wskazać komputerowi, czego szukamy i zawęzić w ten sposób wyniki wyszukiwania.

Zacznijmy od najpopularniejszych operatorów. Załóżmy, że planujemy napisać własne CV i szukamy w Internecie jakiegoś ciekawego wzoru. Wpisujemy w Google frazę wzór CV i otrzymujemy mnóstwo wyników. Znalezienie w tym gąszczu przykładowego pliku *.doc (dokument Worda) może być kłopotliwe. Z pomocą przychodzi operator specjalny filetype:. Edytujemy nasze zapytanie, teraz wygląda ono tak: wzór CV filetype:doc. Po jego wpisaniu na liście wyników wyszukiwania znajdą się tylko dokumenty Worda.

W Google wbudowany jest tzw. operator alternatywy. Po angielsku OR, na język polski tłumaczymy go jako „lub”. Nic nie stoi na przeszkodzie aby rozbudować poprzedni przykład i wyszukać CV zapisane również w formacie PDF. Gotowe zapytanie będzie wyglądało tak: wzór CV filetype:doc OR filetype:pdf.

Bywa tak, że szukając czegoś w Google jesteśmy pewni, że dana informacja znajduje się gdzieś w konkretnym serwisie WWW. Niestety, akurat ta strona nie ma wewnętrznej wyszukiwarki i musimy liczyć na to, że Google będzie sprytne i znajdzie wśród miliardów stron to, czego szukamy. Jednak czy aby na pewno jesteśmy skazani na przeszukiwanie otchłani całego Internetu?

Google udostępnia w swojej wyszukiwarce operator site:. Dzięki niemu możemy zawęzić wyniki wyszukiwania do konkretnej strony. I tak na przykład wpisując zapytanie site:nasza-klasa.pl Tomaszów gastronomik szybko znajdziemy na portalu nasza-klasa.pl popularny „gastronomik”, czyli Technikum Gastronomiczne. Bez operatora site: byłoby to znacznie trudniejsze.

Operatorów specjalnych Google posiada wiele. Zarówno tych wymienionych w oficjalnej dokumentacji jak i kilku ukrytych. Dokładne opisanie wszystkich zajęłoby zbyt dużo miejsca, dlatego zachęcam do osobistego zainteresowania się tym tematem i wyszukania informacji o operatorach w… Google. Pamiętaj, że operatory można łączyć i tworzyć przez to bardzo skomplikowane zapytania.

Można jeszcze łatwiej

Oprócz typowych operatorów specjalnych istnieją również inne sposoby na lepszą komunikację z wyszukiwarką. Pierwszy to znak minusa. Postawiony przed wyrazem lub operatorem powoduje wykluczenie z wyników wyszukiwania części informacji. I tak na przykład po wpisaniu zapytania Tomaszów -Mazowiecki spowodujemy, że zostaną znalezione tylko te strony gdzie w treści nie występuję słowo „Mazowiecki” a występuje „Tomaszów”.

Drugi sposób to objęcie wyrazu lub frazy cudzysłowami. Gdy wpiszemy w wyszukiwarkę frazę w radiu Fama to Google samo odmieni sobie użyte w zapytaniu wyrazy i znajdzie nam strony najbardziej pasujące do frazy radio Fama. Natomiast gdy użyjemy cudzysłowów „w radiu Fama” to wyszukiwarka potraktuje nasze zapytanie dosłownie i odszuka te witryny gdzie znajdziemy poszukiwany przez nas zwrot.

Zwykło się mówić, że jeżeli czegoś nie ma w Google to to nie istnieje. Jeżeli więc mamy problem ze znalezieniem informacji w Internecie to bardzo prawdopodobne, że to nie wina wyszukiwarki tylko nasza oraz tego, że nie potrafimy zadać precyzyjnego zapytania.


Artykuł musiał się zmieścić w wyznaczone miejsce dlatego nie mogłem rozwinąć tematu (zresztą to nie gazeta komputerowa żeby wdawać się w szczegóły) ale polecam na własną rękę zgłębiać tajniki Google ;) Operatorów specjalnych, możliwości kombinacji etc. jest naprawdę wiele a umiejętność mądrego szukania jest bezcenna. Jak powiedział kiedyś Pablo Picasso, "Ja nie szukam, ja znajduję". Proponuję również zainteresować się terminem "Google hacking".