Jak obiecałem tak zrobiłem. Stworzyłem swój system do prowadzenia bloga oparty na frameworku Kohana. Są tam moje wszystkie wpisy z tego bloga. Serdecznie zapraszam na godlark.com/index.php. Jeszcze przez jakiś czas będę tutaj pisał, dopóki na tamtym blogu nie wprowadzę podziału na kategorie, oraz podziału na miesiące. Aha i tam działa dodawanie komentarzy, w Wordpressie z tym sobie nie mogłem poradzić.
Zapraszam na godlark.com
Nowy blog
Konkord na Windowsie – MinGW, Boost
Człowiek robi męczące rzeczy z dwóch powodów. Pierwszy powód to czysta ciekawość, a drugi powód to konieczność. Otóż mój kolega posiada Windowsa i chce testować mój program do nauki słówek Konkord, też lubi tak jak uczyć się języków obcych. Niestety nigdy nic nie kompilowałem na Windowsie, musiałem opierać się na skromnych informacjach z Internetu, a najlepsze jest to, że nie było nic po polsku.
MinGW kontra Cygwin
Przechodząc do sedna sprawy, na moim Debianie kompiluję swój program gcc, gdy kiedyś na Windowsie pracowałem, programy kompilowałem MinGW dołączonym do środowiska developerskiego DevC++ (lecz wtedy nie wiedziałem, że używam jakiegoś MinGW). Lecz teraz wiedziałem, że chcą budować aplikację linuksową na Windowsa, mam dwie możliwości, albo zainstalować Cygwina - implementację standardu POSIX dla systemów z rodziny Windows, albo użyć kompilatora MinGW - gcc przeportowanego na systemy z rodziny Windows.
Cygwin zapewniał by mi to, że nie musiałbym zmieniać kodu programu, ani przekompilowywać zewnętrznych bibliotek, których w nim używam, lecz zmusiłbym również tym użytkowników do instalacji Cygwina, a oni raczej nie chcieli by instalować takiego kombajna dla jednego kilkudziesięcokilobajtowego (bez wkompilowanych bibliotek) programu.
MinGW tworzy mi program z rozszerzeniem .exe, który będzie działał na każdym Windowsie i będzie samowystarczalny. Jednak w tym wypadku będę musiał przekompilować biblioteki i je dołączyć do program i czasem zmienić kod programu.
Zdecydowałem się na drugie rozwiązanie, dużo czasu poświęciłem na wstępne przygotowywania, czyli na to, żeby zainstalować i skompilować to, co będzie mi potrzebne do skompilowania programu. Nie żebym aż tak długo się zastanawiał, lecz te pakiety trochę ważą.
Instalacja MinGW
- Ściągamy MinGW-5.1.6, uruchamiamy, klikamy dalej i mamy w folderze
C:\MinGWzainstalowany kompilator. - Lecz przydałoby się jeszcze, żeby nie trzeba było wpisywać całej ścieżki, aby uruchomić kompilator i w tym celu klikamy prawym na
Mój Komputer -> Właściwości -> Zaawansowane -> Zmienne Środowiskowe. I tam mamy napis Zmienne Systemowe, pod nim mamy zmienną Path, edytujemy jej wartość, dopisując na końcu;C:\MinGW\bin. - Hmm... ale mamy wersję 3.4.5 kompilatora. Czyż to nie jest zbyt stara wersja? Aby „zainstalować” nowszą wersję ściągamy z tej strony:
- gcc-ada-4.5.0-1-mingw32-bin.tar.lzma
- gcc-c++-4.5.0-1-mingw32-bin.tar.lzma
- gcc-core-4.5.0-1-mingw32-bin.tar.lzma
- gcc-fortran-4.5.0-1-mingw32-bin.tar.lzma
- gcc-objc-4.5.0-1-mingw32-bin.tar.lzma
- libgcc-4.5.0-1-mingw32-dll-1.tar.lzma
- libgfortran-4.5.0-1-mingw32-dll-3.tar.lzma
- libgmp-5.0.1-1-mingw32-dll-10.tar.lzma
- libgnat-4.5.0-1-mingw32-dll-4.5.tar.lzma
- libgomp-4.5.0-1-mingw32-dll-1.tar.lzma
- libmpc-0.8.1-1-mingw32-dll-2.tar.lzma
- libmpfr-2.4.1-1-mingw32-dll-1.tar.lzma
- libobjc-4.5.0-1-mingw32-dll-2.tar.lzma
- libssp-4.5.0-1-mingw32-dll-0.tar.lzma
- libstdc++-4.5.0-1-mingw32-dll-6.tar.lzma
- mingwrt-3.18-mingw32-dll.tar.gz
i wypakowujemy to do folderu
C:\MinGW(za pomocą programu 7zip).
Można oczywiście też próbować edytować plik mingw.ini, jeszcze zanim zainstalujemy starego MinGW, ale zastanawiam się jak zapisać wersję libmpc, libmpfr i libgmp, gdyż wersje, które są domyślnie ściągane, są zastare i nie działają z nowszym gcc.
MSYS
No dobra niby wszystko to, co potrzebne jest zainstalowane, ale przecież, aby skompilować większość programów, nie tylko wydajemy polecenie make, ale wcześniej wydajemy polecenie ./configure, czyli bez Basha ani rusz.
Musimy ściągnąć: msysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzma i bash-3.1.17-2-msys-1.0.11-bin.tar.lzma i wypakować to do folderu C:\MinGW. Aby zobaczyć naszego dolara w konsoli poleceń wpisujemy: C:\MinGW\msys. Możemy oczywiście sobie „doinstalować” (ściągnąć i wypakować do wiadomo jakiego folderu) inne pakiety MSYS.
Boost
Boost jest to użyteczna kolekcja bibliotek, bardzo przydaje się przy programowaniu w C++ i jej właśnie użyłem w moim programie. Kompilacja źródeł tej biblioteki do bibliotek statycznych wygląda następująco:
- Upewniany się, że mamy na jakiejś partycji około 3 GB wolnego miejsca, budowanie boost-a wymaga trochę miejsca
- Ściągamy
boost-jam-3.1.18-1-ntx86.zipz tej strony. - Wypadkowujemy, a plik
bjam.exeprzenosimy do folderuC:\MinGW\bin. - Ściągamy
boost_1_42_0.tar.bz2z tej strony. - Wypakowujemy
boost_1_42_0.tar.bz2tam, gdzie mamy dużo miejsca - Uruchamiamy
C:\MinGW\msys, wchodzimy do folderu, tam gdzie wypakowaliśmy naszego boosta (aby wejść np. na dysk D: wpisujemycd \d. - Wpisujemy
bjam --build-dir=boost-build --toolset=gcc --build-type=complete stage release --without-python - Sprzątamy mieszkanie
- Wpisujemy
bjam --build-dir=boost-build --toolset=gcc install --without-python
Jeśli wszystko poszło dobrze, to mamy katalog C:\Boost i tam w katalogu lib mamy statyczne biblioteki, a w include nagłówki.
Korzystałem w dużej cześci z http://ascendwiki.cheme.cmu.edu/Binary_installer_for_Boost_on_MinGW.
Konkord
Ze strony http://github.com/godlark/Konkord pobieramy źródła programu. Można oczywiście odrazu wypakować i wpisać mingw32-make, lecz to nic nie da, bo to jest wersja dostosowana do Windowsa. Plik configure do programu stworzę w późniejszym czasie, teraz musimy sami trochę poprzerabiać.
Prawidłowy plik Makefile:
CXX=g++
CXXFLAGS=-Wall
SOURCE=engine.cpp kurs.cpp main.cpp nakladka.cpp RegisterOfErrors.cpp SingleWord.cpp
OBJ=engine.o kurs.o main.o nakladka.o RegisterOfErrors.o SingleWord.o
%.o : %.cpp
$(CXX) -ggdb3 -c $^ -o $@
konkord.e: $(OBJ)
$(CXX) $^ -ggdb3 -Wl,--enable-auto-import libboost_regex-mgw45-mt.lib -o $@
Również w pliku nakladka.cpp funkcję sleep() musimy zamienić na funkcję Sleep() i argument należy pomnożyć przez 1000, bo windowsowska funkcja przyjmuje czas w milisekundach. I jeszcze w pliku nakladka.h musimy dodać linijkę #include . Teraz wystarczy skopiować libboost_regex-mgw45-mt.lib z naszego folderu C:\Boost\lib\… do katalogu programu i w tym katalogu wydać polecenie mingw32-make.
Zakończenie
Narazie nie wiem jak wykombinować polskie znaki w programie. Jeszcze zobaczę, może wystarczy zmiana kodowania. Wracając jednak do MinGW to zamierzam jeszcze o nim napisać, oczywiście jeśli będzie możliwe skompilowanie źródeł gcc przez mingw. I zastanawia mnie jeszcze jedno, jak skonfigurować boosta, żeby dał się skompilować na linuksie, ale pod windowsa.
Jeśli ktoś ma jakieś przemyślenia na ten temat, to serdecznie proszę o podzielenie się nimi
Już wiem, jak zrobić polskie znaki, wystarczy pliki zapisać w formacie OEM 852 za pomocą jakiegoś sensownego edytora. Lecz to tylko będą znaki dla Europy Środkowej, chyba trzeba specjalnie przerobić kod dla Windowsa, aby był UTF :/
Książki – marzec i kwiecień
Ostatni wpis o książkach był 11 marca, co nie oznacza, że od tamtego czasu nie czytałem. Wręcz przeciwnie, na świętach i w ostatnią sobotę przeczytałem masę książek, dopiero wczoraj wziąłem się za pisanie ich krótkich opisów, wystawiania ocen. Wczoraj nie opublikowałem wpisu, bo w przypadku dłuższych wpisów daję im czas na dojrzenie, to co wczoraj brzmiało mądrze, dzisiaj niekoniecznie takie się wydaje.
Lista książek
-
Seria „Cherub” Roberta Muchamore
„Rekrut” - tom I
Pisałem o książce „Sekta” z tej samej serii. „Rekrut” to pierwszy tom tej serii. W książce poznajemy Jamesa Adams wtedy, gdy nie nazywał się jeszcze James Adams, gdy jeszcze miał mamę i mieszkał w „normalnym” domu. James nie radzi sobie z agresją, jest zepsutym, ale zdolnym dzieciakiem. Jego wybuch agresji w szkole pewnie załatwił by mu kuratora, gdyby nie śmierć jego mamy. On i jego siostra Laura trafiają do domu dziecka. Niestety zostają rozdzieleni, ojciec Laury zabiera ją. James w domu dziecka również pakuje się kłopoty i po kilku latach spędzonych w domu dziecka pewnie wyrósłby na jakieś przestępce, ale szczęście mu widocznie dopisuje i zostaje zwerbowany do "CHERUBA". Tam przechodzi trening charakteru i trening fizyczny, zmienia się. Po powrocie ze szkolenia czego go miła niespodzianka. Po szkoleniu wyrusza na swoją pierwszą misję, z której wraca chojnie nagrodzony.
„Kurier” - tom II
Drugi tom serii „Cherub”. James Adams zostaje posłany akcję skierowaną przeciwko najpotężniejszemu handlarzowi narkotyków w Europie. Na akcję zostaje posłany wraz z Nicole, Kerry i Kylem. Dostają jednak bezwględny zakaz spożywanie narkotyków pod groźbą wydalenia z organizacji.
James aby dostać się w pobliże JT Martina musi zaprzyjaźnić się z jego synem. James zaczyna rozprowadzać narkotyki, uczęszczać do tego samego klubu bokserskiego, co jego syn Junior. James odkrywa, że ciężko dystansować się do osób, które ma wykorzystać do osiągnięcia celu misji. James na akcji często postępuje nierozsądnie, ale ma dużo szczęścia (nawiązanie do narkotyków).
W tym czasie jego siostra zostaje skierowana na szkolenie podstawowe i bardzo brakuje jej brata.„Ucieczka” - tom III
Siostra Jamesa Laura wraz z Gabrielle wykonuje ostanie zadanie w ramach szkolenia podstawowego na Alasce.
Tymczasem James zostałby posłany na misję rekrutacyjną w ramach „nagrody” za swoje zachowanie, ale ratuje go od tego misja, na którą wyrusza m.in. z Davem do Ameryki. James musi zaprzyjaźnić się z synem pewnej kryminalistki, który siedzi w więzieniu, wzbudzić w nim zaufanie oraz musi go z tego więzienia wyciągnąć. Ucieczka nie jest taka łatwa, bo o akcji wie tylko Cherub, angielski wywiad i częściowo FBI. Poprzez tego syna musi dotrzeć do jego matki.„Świadek” - tom IV
Kerry zrywa z Jamesem, wzbudzając w nim gniew, który on wyładowuje na pierwszym lepszym dzieciaku. Spotyka go za to ostracyzm z całej społeczności Cheruba i kara, która m.in. polega na sprzątaniu łazienek. James pewnie nie wytrzymałby nerwowo w towarzystwie tak do niego nastawionym, wybawia go od tego nowa koordynatorka misji, która posyła go wraz z Davem na rutynową misję. Musi wybadać skąd podrzędny przestępca nagle się wzbogacił. Zadanie wydaje się proste, lecz jego rozwiązanie wstrząsa całym miasteczkiem i nie tylko. W rozwikłaniu łamigłówki na pewno pomogły mu jego miłosne problemy i zmarły rok wcześniej zamknięty w sobie 18 latek.
„Bojownicy” - tom VI
James, Laura popełniają wykroczenie w Cherubie, ale tym razem to Laurze się obrywa. James, Laura i Kyle wyruszają na trudną misję, muszą dostać się do groźnej Organizacji Wyzwolenia Zwierząt. Ryan Quinn - przywódca legendarnej organizacji obrońców zwierząt, składając propozycję współpracy pozycji w zamian za wcześniejsze wyjście z więzienia jeszcze nie wiedział na co się godzi - będzie musiał przez chwilę poudawać przybranego ojca trzech Cherubinów i pomóc im w dostaniu się do OWZ. Cherubinki działają wśród fanatyków, muszą zachować zimną krew i podejmować rozsądne decyzje w trudnych sytuacjach.
Seria bardzo mi się podoba. Myślę, że to dlatego bo sytuacje tam przedstawione wydają się realne i tworzą logiczną całość i sprawia, że chciałbym być Jamesem. Również porusza wiele wątków, nie tylko jest o misjach nastolatków, ale również o nich, o ich uczuciach, co przeżywają i jak podchodzą do rozwiązywania podrzuconych przez życie problemów. Wszystkie książki z tej serii otrzymują dotychczas ocenę 5.
-
„Nocna Aleja” Rachel Caine
Rachel Caine „Nocna aleja”
Trzeci tom serii „Wampiry z Morganville”. Główna bohaterka to Clairie, szesnastolatka mieszkająca poza domem i uczęszczająca do Colleague. Mieszka z kilkoma przyjaciółmi: Shanem, Eve i Michaelem (najmłodszym wampirem). Morganville to spokojne z pozoru miasteczko, przynajmniej tak się wydaje przejezdnym. Tak na prawdę w miasteczku toczy się walka o wpływy między ludźmi i wampirami. Wampiry dawno już by tą walkę wygrały, gdyby nie to, że mają pewien wielki problem, o którym ludzie nie wiedzą.
Claire oddała się wcześniej pod opiekę Amelie, królowej wampirów w tym mieście. Nie wiedziała na czym ta opieka będzie polegać, nie wiedziała również, że zaburzy równowagę sił wśród wampirów i stanie się obiektem zainteresowania innych wampirów, których będzie ciekawić jaki interes ma Amelie w chronieniu Claire.
Oprócz problemów z wampirami dotykają jej również problemy osobiste, problemy jej przyjaciół i musi przekonywać rodziców, żeby nie przyjeżdzali do niej, żeby im się nie stało coś złego.
Jak widać książka nie porusza tylko jednego wątku. Claire również musi wybierać, szkoda tylko, że te wybory nie są trudniejsze. Książka również wciąga i biorąc wszytko pod uwagę, daję jej ocenę 5. -
„Krucze Wrota” Anthony Horowitz
Jest to pierwszy tom serii tom serii „Mroczna gwiazda”. Głównym bohaterem Matt(hew) Freeman, który jest kilkunastoletnim chłopcem mieszkającym w Anglii ze swoją ciotką i jej konkubinem. Popada w konflikt z prawem, trafił w złe towarzystwo. Trafiłby do ośrodka opiekuńczego, ale ostatnio został powołany do życia nowy rządowy program, którego celem jest zmniejszenie przestępczości wśród nastolatków. I tak trafił pod opiekę demonicznej opiekunki, a mieszkańcy pobliskiej wioski na dodatek też zachowują się dziwnie. Próbuje się uwolnić od nieznośnego towarzystwa oraz odkryć tajemnicę, lecz wszystkim osobom, które próbują mu pomóc spotykają dziwne nieszczęścia. W rozwiązaniu tajemnicy pomoże mu hasło „Krucze Wrota”.
Książka nie jest ciężką lekturą, nie prawi nam morałów i jest tylko jeden główny wątek. Lecz jest wciągająca i w skali od 1 do 6 dostaje ocenę 4. -
„Tygrysi Księżyc” Antonia Michaelis
Krótko - książka o Indiach. Opowiada historię o miłości, przyjaźni i przygodzie w Indiach XIX wieku - kraju kontrastów, ścierania się kilku różnych kultur. W historię tą wplecione są elementy baśni, hinduizmu. Główną postacią jest Fahrad - drobny i młody złodziejaszek. Otrzymuje on misję, ma uratować w ciągu miesiąca uwięzioną w pałacu na pustyni na drugim końcu Indii młodą kobietę. Chcąc ją uwolnić musi zdobyć szybkiego „wierzchowca” i pewien kamień, którym przekupi strażnika. O ile pierwsze zadanie okazuje się łatwe, o tyle drugie ciągnie się do końca książki, bo musi chronić kamień przed mężczyzną, który pragnie tego kamienia.
Podczas tej misji spotyka go wiele przygód, dzięki którym w końcu staje się warty tytułu bohatera. Niestety jego przemiana bohatera pociąga ze sobą złe skutki dla jego „wierzchowca”. Książka mimo śmierci wielu postaci kończy się szczęśliwie, daje nam nadzieję i przesłanie: „Baśnie są wokół nas”. Akcja jest trzymana aż do ostatniej strony książki. Jest warta przeczytania (ocena 6). -
„Opowieści z Niebezpiecznego Królestwa” J.R.R. Tolkien
Zbiór kilku baśni:
- „Łazikanty” – dla dzieci,
- „Gospodarz Giles z Ham”,
- „Przygody Toma Bombadila” – wiersze Toma Bombadila z „Władcy Pierścieni”,
- „Kowal z Przylesia Wielkiego”,
- „Liść, dzieło Niggle'a” – poruszające opowiadanie,
- „O baśniach” – wywód Tolkiena na temat baśni, co nią nie jest, a co nią nie jest
Tragedia w Smoleńsku

Łączę się w bólu z rodzinami ofiar katastrofy lotniczej pod Smoleńskiej, w której zginął prezydent RP Lech Kaczyński wraz z małżonką Marią Kaczyńską.
Jest to wielka strata dla Polski, straciliśmy nie tylko wielkich polityków, ale również najważniejszych dowódców WP. Konsekwencje tej tragedii będą wielkie, nie wyobrażam sobie polskiej sceny politycznej bez tych osób.
Pytań nie będę zadawał, bo każdy wie jak będą wyglądały. Najważniejsze, żebymśy z tej tragedii wyciągneli wnioski.
W imieniu Polaków chciałbym również podziękować całemu światu, a szczególnie Rosjanom za wyrazy współczucia i miłe gesty.
„Potop” – film
W poniedziałek mam sprawdzian z treści „Potopu" H. Sienkiewicza. Książkę przeczytałem jeszcze przed świętami, a zacząłem miesiąc wcześniej, 50 stron dziennie to nie tak dużo. W celu utrwalenia treściu utworu postanowiłem sobie oglądnąć film, na filmwebie użytkownicy pisali , że zgodny z lekturą. Po dobrnięciu połowy piątej godziny filmu nie wytrzymałem, stwierdziłem, że filmu tak niezgodnego z lekturą to jeszcze na oczy nie widziałem, nie będę marnował jeszcze pół godziny na oglądanie reszty i na zastanawianie się, czy to w filmie namieszali, czy ja źle pamiętam z lektury. Przykłady elementów i znacząco różniących się
- Ucieczka Oleńki
- Listy do Kmicic od hetmana i oświadczyny Wołodyjowskiego Oleńce
- Anna Borzobohata-Krasicka
- Miecznik rosieński
- podróż Kmicic z królem
- posłowie od Szwedów do klasztoru w Jasnej Górze
- podróż Kmicic spod chaty smolarza do klasztoru w Jasnej Górze
Jakbym dorwał tego, co tą bzdurę na filmwebie napisał, to... To tyle na temat wiarygodności niektórych źródeł w Internecie.
Bezpieczne hasła
Znalazłem na Hard Core Security Lab artykuł o tworzenie superbezpiecznych haseł i to tylko przy użyciu żółtej karteczki. Przed wgłębianiem się dalej w mój wpis proponuję przeczytać HCSL - Superbezpieczne hasła zapisane na żółtej karteczce.
Pewnie artykuł się spodobał, ale mam kilka uwag, część jest w komentarzach innych użytkowników portalu. Po pierwsze lepiej stosować karteczkę, np. 10x10. Wtedy można stosować już jakąś lepszą metodą, kwadrat, prostokąt, lub kształt jakiejś literki, ruchy z szachów itd. Po drugie wygenerowane hasło pierwsze przepisywałbym z karteczki, a później nauczyłbym się na pamięć i karteczkę wywalił.
A jeśli komuś już się nie chce tak strasznie wymyślać znaków, jakie mógłby wpisać na tą karteczkę, to proponuję skompilować to:
#include <iostream>
#include <cstdlib>
#include <sys/time.h>
using namespace std;
char znak(int number) {
if(number > 25)return '0'+(number-26)%10;
else return 'a'+number;
}
int main() {
timeval t1;
gettimeofday(&t1, NULL);
srand(t1.tv_usec);
for(int i = 0; i < 100; i++) {
cout << znak(rand()%46) << " ";
if((i+1)%10 == 0)cout << endl;
gettimeofday(&t1, NULL);
srand(t1.tv_usec);
}
}
PS Aby zapamiętać takie hasło proponuję wpisać w google „mnemotechniki”.
Nie dla mnie SaaS
SaaS, czyli oprogramowanie jako usługa - internetowe serwisy takie jak desktopowe programy, np. Google Docs. Oznacza to, że nie mam dostępu do kogu programu, a nawet jakbym miał, to nie mógłbym go edytować, bo wpłynęłoby to na innych użytkowników. Nie widziałbym czy oprogramowanie mnie inwigiluje czy nie, wyobraźmy sobie, że wkracza ABW i każe zamieścić funkcję w edytorze tekstu (zmiana natychmiastowo objęła by wszystkich użytkowników), która będzie ich informowała czy ktoś wpisał np. "cenzura". Ze 100% pewnością mogę stwierdzić, że byłoby notowane, kto i kiedy używał programu.
Kolejną przeszkodą jest to, że byłaby pojemność dysku by się marnowała, a sieć byłaby strasznie obciążona, a dużych korzyści jak na razie z tego nie widać. Jedyną korzyścią może być to, że np. mając zainstalowany system pracujący jak przeglądarka i dane na serwerze nie byłoby dużej różnicy czy korzystalibyśmy z laptopa czy komputera stacjonarnego. Ale to zniknie, gdy upowszechni się IPv6.
Wyobraźmy sobie, że mamy jakieś elektroniczne urządzenie, takie coś w rodzaju routera, które mogłoby uruchamiać inne urządzenia w całym mieszkaniu i byłoby z nimi połączone przez sieć. Jesteśmy w pociągu i chcemy uzyskać przez laptopa dostęp do danych na dysku naszego komputera. No to wpisujemy adres tego naszego routera w przeglądarce, wpisujemy hasło i nazwę użytkownika, włączamy nasz komputer, łączymy się za pomocą zdalnego pulpitu z naszym komputerem (gdy już się włączy), kopiujemy te dane, wyłączamy komputer. I po co nam w tym wypadku dane na jakimś zewnętrznym serwerze.
Tor, usługi ukryte i Apache
Gdy jeszcze miałem Ubuntu, słyszałem o tej popularnej „pedofilskiej” sieci jaką jest Tor. Tak na prawdę żadną „pedofilską” siecią nie jest, on po prostu zapewnia anonimowość (patrz http://www.torproject.org/overview.html.pl), a tak określają go ludzie, którzy są przeciwni anonimowości w sieci i którzy oceniają go tylko przez pryzmat tego, że część użytkowników sieci stanowią pedofile, którzy wymieniają się pornografią dziecięcą przez tą sieć.
Wracają do głównego wątku, wtedy nie czułem potrzeby, żeby z niej korzystać, nie zależało mi na anonimowości oraz co najważniejsze uważałem się za żółtodzioba w sprawach konfiguracji czegokolwiek na Linuksie. Jedyne co potrafiłem skonfigurować to edytor programistyczny i serwer Apache (a i to nie bardzo). Kilka lat minęło, moje doświadczenie związane z internetem wzrosły i stwierdziłem, że w niektórych przypadkach anonimowość w sieci jest bardzo ważna. Moje umiejętności posługiwania się Linuksem wzrosły, dlatego stwierdziłem, że mogę spokojnie zainstalować Tora.
Instalacja i konfiguracja Tora
Instalacja i konfiguracja Tora jest dziecinnie prosta. Poniżej przedstawiam sposób instalacji i konfiguracji.
- Robimy według instrukcji podanych na stronach: „Tor: Instrukcje instalacji dla Linux/BSD/Unix”, „Tor: Mac OS X Install Instructions”, „Tor: MS Windows Install Instructions” (po polsku).
- Jeśli chcemy być przekaźnikiem, to robimy jeszcze Konfiguracja przekaźnika sieci Tora. Jeśli zaś mamy Linuksa lub chcemy konfigurować ręcznie, to musimy znaleźć w pliku konfiguracyjnym Tora (/etc/tor/torrc) następujące linijki
SocksPort 9050 # what port to open for local application connections SocksListenAddress 127.0.0.1 # accept connections only from localhost RelayBandwidthRate 20 KBytes RelayBandwidthBurst 30 KBytes ORPort 9001 ExitPolicy reject *:* # no exits allowed
i je odkomentować, jeśli są zakomentowane.
RelayBandwidthRateto limit prędkości dla Tora, nie może on używać więcej niż 20KB/s, ale pozwala mu sięRelayBandwithBurstna chwilowe skoki do 30KB/s.
LinijkaExitPolicy reject *:*oznacza, że nie chcemy być ostatnim węzłem, który łączy się punktem docelowym. Nie będziemy ostatnim widocznym węzłem. Gdy usuniemy tą linijkę, czasami możemy być ostatnim widocznym węzłem, moglibyśmy być czasami oskarżenie o np. rozpowszechnianie pornografii dziecięcej, gdyby to pedofil korzystał z naszego węzła.
Usługi ukryte i Apache
Jeśli już zainstalowałem Tora, to skorzystam z wszystkich jego możliwości. Uruchomiłem więc usługę wg „Tor: instrukcja konfiguracji usług ukrytych”. Moje linijki wyglądają tak:
#katalog radzę zmienić
HiddenServiceDir /media/godlark/tor_hidden_service/
HiddenServicePort 80 127.0.0.1:4619
Czyli ktoś wpisuje moj_adres.onion, jego komputer myśli, że na porcie 80, a ja mu wysyłam odpowiedź aplikacji nasłuchującej na porcie 4619.
Ten port zmieniłem, bo nie chciałem, aby ludzie z tora nie mieli dostępu do głównego katalogu strony, tylko do strony specjalnie przygotowanej dla nich.
Teraz trzeba zająć się Apachem, aby nasłuchiwał na porcie 4619 i 80 oraz, żeby w zależności od tego, z którego portu zostanie nawiązane połączenie była wyświetlana inna strona i tutaj są przydatne VHosty. Wystarczy dodać do pliku konfiguracyjnego Apache (w Debianie /etc/apache2/httpd.conf) dodać (i pozmieniać):
#dla Debiana te dwie linijki zalecałbym dodać do pliku /etc/apache2/ports.conf
NameVirtualHost *:4619
Listen 4619 #nasłuchuje na porcie 4619
<VirtualHost *:80>
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
<VirtualHost *:4619>
#katalog z osobną stroną dla Tora
DocumentRoot /var/www/tor_hidden_service/
<Directory /var/www/tor_hidden_service/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Zrestartujmy teraz Apache i Tora, w Debianie będzie to odpowiednio /etc/init.d/apache2 restart i /etc/init.d/tor restart. Możemy testować, wpiszmy w przeglądarce http://localhost:80, a później http://localhost:4619, ale różnicy nie zobaczymy, jeśli nie umieścimy jakiegoś przykładowego pliku index.html w katalogu /var/www/tor_hidden_service/.
Musimy jeszcze sprawdzić, czy działa to przez tora. Kopiujemy adres z pliku /media/godlark/tor_hidden_service/hostname (plik znajduje się katalogu przez nas wybranym w pliku /etc/tor/torrc) i wklejamy do przeglądarki, która obsługuje tora. Wszystko powinno działać.
Oczywiście to nie wyczerpuje całej gamy możliwości jakie dają nam vhosty. NameVirtualHost *:4619 oznacza, że na wszystkich adresach będę robił VHosty na porcie 4619 (czyli niezależnie czy ja wpiszę localhost:4619, czy ktoś mój_adres_w_sieci_lokalnej:4619, czy adres IPv6). Dwa sposoby na ograniczanie działanie VHostów zależnie od adresu lub nazwy jaką ktoś podał są przedstawione tutaj: baseciq.org » Apache i vhosty, Tworzenie VHost'a w Apache.
Trochę przybliżyłem konfigurację tora i jego usług ukrytych w oparciu o Apache. Myślę, a raczej mam taką nadzieję, że to nie koniec mojej przygody z torem i znajdę w nim jakieś ciekawe rzeczy, które będą warte opisania
Patenty
Z patentami mocno powiązana jest tematyka prawa autorskiego, co wspólnie określa się mianem własności intelektualnej. O prawie autorskim przeczytałem ostatnio fajną książkę „Wolna Kultura”. Dzięki niej m.in. dowiedziałem się dużo o historii prawa autorskiego na świecie, autor również rozwiał niektóre moje wątpliwości dotyczącego tego prawa. Książkę bardzo polecam. Wracając do patentów, to ich są one bardziej kontrowersyjne niż prawa autorskie, szczególnie patenty na oprogramowanie. Nie zamierzam się tutaj o patentach rozpisywać, zajmę się tylko niektórymi kwestiami.
Nie patentom na oprogramowanie
Patenty są po to, aby chronić wynalazców przed komercyjnym wykorzystaniem przez innych ich wynalazków, zabierając im przy tym zarobek, na który słusznie zapracowali. Dla przykładu, jeśli ktoś wymyśli rower, a jego bogatszy sąsiad podpatrzy proces produkcji, a później sam założy firmę produkującą rowery, to nie byłoby to uczciwe. Ja przynajmniej nie potrzebuję prawa, aby odczuć, że to jest niespecjalnie sprawiedliwe.
Z patentami na oprogramowanie jest inaczej, taka sytuacja nie występuję. Po pierwsze kod źródłowy programów jest chroniony przez prawo autorskie, a po drugie w oprogramowaniu nie ma nic innowacyjnego. No bo co może być takie innowacyjne? Algorytmy? Nie, bo zabrania się patentowania rozwiązań matematycznych i słusznie. Pomysły takie jak Koszyk zakupów czy Przesyłanie transmisji wideo w czasie rzeczywistym? Gdyby można było patentować takie pomysły w przypadku zwykłych patentów, to opatentowałbym bym pomysł z wpisu „Przyszłość pisania odręcznego”. No bo jak można opis przesyłanie transmisji wideo w czasie rzeczywistym? Aplikacja uruchomiona na komputerze u użytkownika pobiera w drobnych pakietach dane wideo od serwera i równocześnie odtwarza odebrana już dane wideo. I to ma być dokumentacja techniczna. Oczywiście można by z tego zrobić dokumentację techniczną, ale okazałoby się to zbyt ogólne, aby cokolwiek chronić.
Patenty a innowacyjność
Z jednej strony patenty zwiększają innowacyjność, bo zachęcają do szukania nowych rozwiązań i tworzenia nowych wynalazków. Jednak niektórzy twierdzą w tym i ja, że patenty powinny mieć trochę inny charakter, bo na razie równocześnie zmniejszają innowacyjność, dając producentowi monopol na sprzedaż wynalazku, dzięki czemu może on windować ceny, jak mu się podoba.
Moje rozwiązanie polegałoby na tym, że z patentu mógłby korzystać każdy w swoim produkcie, lecz musiałby płacić pewną opłatę od każdego produktu wykorzystującego patent. Ta opłata byłaby równa jakiejś części kosztów (% kosztów byłby ustalony w ustawie) wykorzystania tego rozwiązania w produkcie producenta posiadającego prawa do tego produktu. W przypadku gdyby wiele producentów posiadałoby prawa do tego patentu, brana byłaby pod uwagę najniższa opłata. Sumą zebranych opłat producenci dzieliby się według warunków w podpisanych w umowach przy okazji sprzedawania praw do patentu.
Zyskuje i wynalazca i społeczeństwo, bo cena nie może być za wysoka, bo konkurencja to uniemożliwi i to również zmotywuje konkurencję do tego, aby zmniejszyć koszty produkcji tak, by po nawet po doliczeniu opłat ich produkty okazały się tańsze od rozwiązania oryginalnego.
Jak już wspominałem, nie jest i nie miał być to esej o patentach. Zamierzałem tylko przedstawić moje odczucia związane z patentami. Poruszyłem problem patentów na oprogramowanie, którym mówię zdecydowane „nie”, nie są one potrzebne i nie są one zgodne z warunkami jakie są stawiane wynalazkom. Zaproponowałem również rozwiązanie problemu ograniczania innowacyjności przez patenty. Patenty ogólnie nie są złe, ale we wszystkim należy zachować umiar.
Boćki
Przyzwyczailiśmy się w Polsce do bocianów. Kojarzą nam się z polską wsią, latem, wiosną, łąkami, weszły do przysłów, wielka szkoda by była gdyby miały one zniknąć z Polski (i tak już jest ich coraz mniej), dlatego dbajmy o nie. Przykładem strony, która pomoże nam zadbać o bociany kilkoma kliknięciami jest dbajobociany.pl. Tworząc tam wirtualnego boćka przyczyniamy się do zbudowania realnej platformy - miejsca na bocianie gniazdo, bo każdy 1000 wirtualnych bocianów to jedna taka platforma. Gdy stworzycie z tego linku bociana, stanie się on moim potomkiem... znaczy mojego bociana.
Nie należy również zapominać, że o bociany będziemy również dbać, gdy nie będziemy wspierać rozwoju elektrowni wiatrowych, bo po pierwsze wtedy likwidujemy bocianom łąki, a po drugie wiele ptaków ginie przelatując nad takimi farmami wiatrakowymi.
O akcji dowiedziałem się od Polarnego.