Wolność słowa w internecie

Wzięło mnie na przemyślenia odnośnie do tego “zamachu” na wolność słowa w internecie. Wydaje mi się, że trzeba rozgraniczyć dwie sprawy. Jedna to rzeczywiście wolność słowa i swoboda wypowiedzi. Druga natomiast to przyjmowanie odpowiedzialności za swoje wypowiedzi.

Jakiś czas temu dość mocno wzrosły emocje, gdy były plany wprowadzenia obowiązku podpisania się swoim imieniem i nazwiskiem pod głoszonymi przez siebie treściami w internecie. Oczywiście uważam za głupotę projekt, w którym autorzy np. blogów podchodzą pod prawo prasowe, a zatem muszą mieć swojego redaktora naczelnego itd., jednak identyfikacja moim zdaniem jest konieczna.

Jest takie stare powiedzenie “Wolność jednego człowieka kończy się tam, gdzie zaczyna się wolność innego”, więc nie możemy bezkarnie wypisywać bredni pod czyimś adresem. To nie jest wolność słowa, tylko oszczerstwo. Dalej - istotą swobody wypowiedzi jest to, że możemy krytykować np. rząd, czy ogólne zjawiska polityczno-społeczne bez obawy jakichkolwiek konsekwencji. Nikt natomiast nie wspominał o tym, że autor nie powinien brać odpowiedzialności choćby moralnej za to, co wygłasza.

Jaka jest wartość Twojego słowa, jeśli boisz się przyznać, że masz takie zdanie… W czasach represji taką wolność słowa też mieliśmy - póki nie wiedzą, że to Ty wydrukowałeś, możesz napisać taką ulotkę, jaką sobie wymyślisz. Papier wszystko przyjmie. Ileż mniej byłoby tzw. trolli, gdyby każdy Twój post był opatrzony imieniem i nazwiskiem. Ileż ludzi by się zastanowiło przed wysłaniem swoich rewelacji, gdyby wiedziało że na znanym portalu zaraz pojawi się bzdura opatrzona podpisem.

Pozostaje zanucić
- First post
- Fuckin’ gay
- Second post
- go away…

Posted on 19 January 2010
Under: Uncategorized | No Comments »

Nowy projekt + dobry promotor = praca dyplomowa

Ponieważ udało mi się uzyskać zgodę na realizację projektu, o którym wspominałem w poprzednim poście, w ramach mojej pracy dyplomowej, jestem wniebowziety. Oczywiście wiąże się to z paroma problemami, jak bardzo mało czasu na rozpracowanie takiego systemu, jaki chciałbym zrobić i sądzę, że do obrony nie uda mi się wprowadzić wszystkich funkcjonalności, które chciałbym widzieć w swoim systemie. Nie mniej poniżej znajdziecie wstępną dokumentację projektu.

Oczywiście wszystko idzie bardzo powoli, bo dopiero uczę się technologii J2EE, więc wiele rzeczy sprawdzam na żywo, jak będzie działało, testuję nowe narzędzia, itd. Jeszcze niestety stosuję przymiarki do ostatecznych rozwiązań. Póki co mogę podzielić się swoimi wrażeniami w ramach tego, co poznałem już od strony serwera aplikacji.

Java Server Pages jest dziwne… ale z niego głównie korzystam przy szczątkowym layoucie do testowania postępów.

Servlety są fajne, ale dają mniejszą wygodę przy projektowaniu responsów, niż JSP. To takie programowe pisanie Stringów do strumienia wyjściowego. Większa kontrola nad przepływem danych i sterowaniem, mniejsza wygoda przy formowaniu stringów w jakiś w miarę estetyczny sposób.

względem PHP - już samo JSP daje większą wygodę, ze względu na tagi, które są najdziwniejszym, ale bardzo ciekawym elementem w JSP. Właściwie poza wbudowanymi bibliotekami tagów, z których możemy korzystać, zawsze możemy napisać własne tagi, które będą składniowo przypominały html, ale wykonywały jeszcze dodatkowe zadania.

Dodatkowo super funkcjonalnością są filtry do servletów, załatwiają choćby sprawę headerów dodawanych masowo do wszystkich plików. Zamiast ręcznie dodawać do każdego pliku spełniającego kryteria (w szczególności np do wszystkich), robimy sobie filtr, który dodaje do response’a odpowiedni ciąg znaków (chociaż ich rola nie ogranicza się do tego)

Kolejną super kwestią jest choćby ServletContext, świetny sposób na to, by wszyscy użytkownicy działali na tych samych instancjach zmiennej, coś na zasadzie zmiennych globalnych, w ramach Deploy’a.


Dokumentacja

Posted on 12 November 2009
Under: Programming | 3 Comments »

Study, study, study, study, J2EE, study… Aha… i nowy projekt

Still no time for anything. Zacząłem naukę Java Enterprise Edition, w planach Hibernate, Spring, Struts… i by się miło uczyło będę wdrażał całkowicie nowy projekt bazujący trochę na pomyśle, który opisałem tutaj daaawno temu.

Otóż pomysł polega na wykorzystaniu Character Creatora do systemu D&D (wyszła rok temu 4 edycja, czas coś zrobić). Jednak CC ma stanowić tylko jeden z modułów aplikacji. Sam system zaś ma zarządzać kontami użytkowników, którzy z kolei tworzą sobie postaci do gry w D&D. Następnie udostępniają swoje postaci do sesji dla MG prowadzącego rozgrywkę w realu. Całe zarządzanie Punktami Doświadczenia, a więc i levelowaniem postaci będzie zrzucone właśnie na system. MG decyduje, ile przyzna PD konkretnym graczom (albo całej drużynie), a gracz może rozwinąć postać tylko w momencie, gdy liczba PD na to pozwala. Póki postać jest udostępniona MG, wszystkie zmiany w postaci są do wglądu przez niego, a nawet kontrolowane ich wprowadzenie (np. jeśli MG stwierdzi, że moment nie jest najlepszy na levelowanie postaci, blokuje taką możliwość nawet, jeśli zgromadzone PD na to pozwalają).

Dokładniejsza specyfikacja wkrótce. Nie trzeba wspominać, że wszystkie restrykcje biznesowe na tworzenie postaci również jest zrzucone na system (niedostępność pewnych opcji, jeśli wymagane są dodatkowe np. umiejętności do ich wyboru) Projekt będzie się rozwijał o różne pomocnicze narzędzia w całym procesie gry.

Posted on 5 August 2009
Under: Programming, General | 6 Comments »

JFileTree & no time for nothing

Wreszcie zaczęły się wakacje, ale czasu nie przybyło. Tak czy inaczej o to prezentuję swoją klasę, która wraz z małym dodatkiem pojawiła się w mojej bibliotece. MP na razie nie ma - mocna praca nad projektem do pracy, więc nie chce mi się wymyślać tematu MP. Jak ktoś podrzuci, może się zajmę.

Klasa to JFileTree i dziedziczy ona po JTree ze standardowej biblioteki swing. Co nowego? Konstruujesz za pomocą prostego konstruktora JFileTree(File rootDirectory), lub  wogóle bez parametrów, by uzyskać dostęp do całego systemu plików. Pliki pobierane są nie przez listowanie folderów z klasy File, ale poprzez klasę FileSystemView, która poza kilkoma innymi narzędziami, dba o to, by to co ukryte, takie pozostało.

Klasa również obsługuje obiekty FileFilter, by określić, jakie dane mają być wyświetlane w drzewie. Generalnie sporo funkcjonalności zaczerpniętych jest z klasy JFileChooser. Dodatkowo domyślny CellRenderer wyświetla ikony pobrane z natywnego systemu. Poniżej kilka screenów z działania klasy. Wysoka rekurencyjność przy wczytywaniu drzewa wyeliminowana dzięki dogrywaniu elementów na żądanie.

Dodatkowo z klasy można korzystać w IDE NetBeans przy graficznym tworzeniu aplikacji. Docelowo klasa ma być wyposażona w analogiczną do obecnych w JFileChooser metodę showFileSelectDialog.

Po szczegóły zapraszam na stronę api mojej biblioteki.

[edit]

Klasa obecnie obsługuje już wyświetlanie okna dialogowego do selekcji plików. Dodatkowo w bibliotece znalazła się klasa do przekształcania Stringów do postaci nie powodujących kolizji przy parsowaniu HTML, lub XML (np. “&lt;” zamiast “<”), kilka drobnych narzędzi dodanych do tej klasy. Szczegóły ponownie w javadoc.



qbixlib - biblioteka gotowa do ściągnięcia i używania
javadoc - api mojej biblioteki
qbixlib javadoc - api do ściągnięcia w postaci archiwum zip

Posted on 5 July 2009
Under: Programming | 2 Comments »

Korporacjonizm

Druga sprawa, nie związana z informatyką, dotyczy moich przemyśleń na temat obecnego stanu rzeczy i ogólnego fiaska demokracji, którą zabiła socjotechnika. Obecnie nie głosujemy na program, rzeczywiste działania, czy ludzi, na których wydaje nam się, że głosujemy… Głosujemy na tych, którzy lepiej nam wmówią, że to właśnie oni powinni rządzić krajem (de facto zarabiać pieniądze za występy publiczne). Przyszedł mi do głowy pewien ustrój, który niestety miałby sens tylko w momencie zrzeszenia się większej liczby krajów (na dobrą sprawę Unia Europejska dąży do takiego modelu). Otóż… Obecnie polityk zarabia tyle samo niezależnie od tego, czy wypełnia powierzoną mu przez naród misję, czy nie… w związku z tym wszystkie wysiłki może skupić na tym, by ponownie zostać wybranym. Niestety jak wspomniałem, obecnie nie decyduje o tym koncepcja władzy i jej wypełnianie, a dobra kampania wyborcza. Społeczeństwo jako masa niestety jest łatwe do manipulowania.

W tym miejscu pojawia się scena dla nowego ustroju - Korporacjonizmu, aczkolwiek w innym wydaniu, niż ten znany z historii, władza cechów itd.

Podstawowe założenia:

  1. Człowiek może przenieść się na teren dowolnej korporacji kiedy mu się to żywnie podoba (tak, jak teraz do innego kraju).
  2. Korporacjami rządzą zarządy, które dobierają się na zasadzie kompetencji. Im lepsi ludzie, tym więcej korporacja przynosi zysków, tym więcej do podziału w ekipie rządzącej.
  3. Korporacje muszą walczyć o to, by przyciągnąć mieszkańców innych korporacji poprzez dobrą organizację np. służby zdrowia, transportu, służby policyjnej, standardów prawnych itd.
  4. Istnieje instytucja ustalająca prawo międzykorporacyjne (np. właśnie dotyczące swobody podróży między korporacjami, lub dostępu do informacji  porównawczych miedzy korporacjami i innych praw, które muszą być respektowane, a korporacje w pogoni za zyskiem mogłyby chcieć je ograniczyć)

Tyle w zasadzie podstawowych informacji. Moż napiszę jakiś referacik na ten temat, ale jest to zbyt rozległy temat na pojedynczego posta. Jednocześnie mam świadomość, że obecnie przywiązanie do tożsamości narodowej i wartości swobody wyboru w systemie demokratycznym, iż wszystkie próby wprowadzenia takiego ustroju władzy skończyłyby się fiaskiem.

Posted on 12 May 2009
Under: Uncategorized | 1 Comment »

Brak MP i początki nowego projektu

Po długiej przerwie wracam do życia, aczkolwiek bez liniki kodu dla publiki. Moje obecne prace skupione są na aplikacji, która będzie działać wewnątrz firmy… Że formalnie nie należy to jeszcze do moich obowiązków (trzeba się jakoś sprzedać), robię to po pracy. Z tego powodu na dziś nie przygotowałem żadnego MiniProgramu… Drugi powód jest taki, że zwyczajnie nie miałem czasu i ochoty na wymyślenie pomysłu dla MP. Tradycyjnie wszelkie pomysły mile widziane w komentarzach.

No i wracając do projektów. Zacząłem rozmyślać nad uruchomieniem nowego projektu. Kolejny multicommunicator, ale…

  • Obsługuje różne protokoły różnych innych komunikatorów (nie ma własnego)
  • Zakłada implementację wszystkich funkcjonalności danego komunikatora (przesyłanie plików [które obecnie średnio działa np. poprzez protokół gg w tlen], rozmowy głosowe, skanowanie poczty [jak w przypadku tlena])
  • Protokoły, jak to się już obecnie przyjęło, działałyby na zasadzie pluginów, co daje łatwy sposób dodawania nowych pluginów i powoduje, że mogę przygotować jakieś małe sdk do ich robienia.
  • Projekt zakłada multiplatformowość

Mówiąc szczerze jeszcze nie wgryzałem się w dostępne w necie protokoły i niewykluczone, że rzeczywistość jeszcze zrewiduje moje poglądy na temat możliwości, lub sensu przedsięwzięcia. Tym czasem pozdrawiam.

Posted on 12 May 2009
Under: Programming, General | No Comments »

MP#3 & MP#4 i pare słów na temat NetBeans na Ubuntu

W końcu gdy znalazłem trochę czasu na pisanie. Oto dwie aplikacje w ramach projektu MiniProgram. Jedna to wariacja na temat proponowanego w komentarzach Panica.

Druga aplikacja, to saper lub minesweeper, jak kto woli. Też dość niestandardowy, bo zrobiony na hexach (sześciokąty - dla nieanglojęzycznych). Wydawało się, że będzie więcej problemów, ale jednak nie było aż tak inaczej. W sumie zrobiłem model danych do sapera, który dość łatwo przerobić na dowolne siatki, więc wiecej czasu poświęciłem na przypomnienie sobie zabaw na Graphics’ach.

Jeśli chodzi o grafikę, to nie jest to moja własność - jest całkowicie skopiowana z gnomemine - saper w wersji linux’owej

Ze względu na wspomnianą zabawę wzbogaciłem swoją bibliotekę o kolejne metody, tym razem tworzące BufferedImage na podstawie ścieżki dostępu. Niestety nie napisałem tego w docsach, jeśli nie zapomnę, to przy następnej okazji się pojawi - ścieżka dostępu we wszystkich ImageUtils prowadzi od pliku z klasą wywołującą, nie od folderu, w którym jest uruchamiany plik. Dzięki temu można przechowywać grafikę wewnątrz archiwum jar i udostępniać całą aplikację w jednym archiwum. Bazuje to na mechanizmie refleksji i klasach, nie na plikach, dzięki czemu było to możliwe.

Obie aplikacje, wraz z źródłami, jak również bibliotekę można pobrać z linków poniżej. Biblioteka jest również dołączona do samej aplikacji Saper. Życzę miłej zabawy, a sobie licznych komentarzy i kolejnych pomysłów.

I w końcu oberwie się również NetBeans’owi. Pomijając fakt, że na linux GDI dla swingów nie do końca działa (nie mogę zmieniać wielu właściwości, ale również wygląd okna, szerokość przycisków itd. różni się znacząco od tego zamieszczonego w GDI). Problem pojawia się również z zapisywaniem wersji za pomocą Subversion na dysk zewnętrzny z systemem plików NTFS. Część rzeczy dopisało, części nie… Obecnie staram sie nie stracić historii wersji i jednocześnie przywrócić stan repozytorium sprzed próby wprowadzenia zmian. Historia pokaże, czy się uda. W konkluzji mimo iż już zaczynałem lubić ubuntu niestety programowanie pozostanie u mnie domeną systemów spod znaku motyla.



qbixlib - qbixlib w wersji binarnej, do pobrania i używania
qbixlib javadoc - API do wspomnianej wyżej biblioteki
Saper - Wspomniany już saper na hexach
Panic - kliknij i spróbuj kliknąć jeszcze raz, jak najszybciej się da

Posted on 22 March 2009
Under: Programming | No Comments »

Simple Installer

Ponownie pewien postęp na drodze do stworzenia mojej aplikacji i właściwie ostatni krok do tego, by można było ją udostępnić testerom. Najpierw kilka warunków, które musiały być spełnione przez mój installer:

  • instaler i rzeczy instalowane muszą zawierać się w jednym pliku
  • możliwość wprowadzenia instalacji na koncie z ograniczeniami
  • program napisany w javie, bo obecnie jest mi to najbliższy język programowania

Może instaler jest słowem nadwyrost względem kodu, który napisałem, ale po dorobieniu GUI robi to, co do niego należy - kopiuje odpowiednie pliki w odpowiednie miejsca. Na podstawie klasy JShortcut, z której też w aplikacji korzystam, można dodać tworzenie skrótu na pulpicie, a w następnych wersjach byćmoże dodam skrót do autostartu i MenuStart. Na razie jest to bezwzględne minimum, by zapewnić jako taką wygodę w operowaniu.

Sposób korzystania bardzo prosty - do archiwum jar z instalerem i jakimś mainclassem do uruchamiania installera dogrywamy folder Install i ewentualnie Optional. W folderach umieszczamy pliki do skopiowania i tyla roboty - wystarczy stworzyć obiekt.

Druga sprawa to fakt, że chyba już na stałe przerzuciłem się na NetBeans. Ma kilka mankamentów, kilka skrótów rozwiązało moje poprzednie zastrzeżenia, więc jest ok. A dodatkowo ładnie generuje html bez żadnych pluginów.

Dodatkowo: nadal czekam na propozycje miniprogramów w komentarzach.


Linki i załączniki:
installer

Posted on 25 February 2009
Under: Programming | 5 Comments »

Updater

Wreszcie po sesji (częściowo zdanej) mam trochę czasu, by przysiąść do swojego projektu. Jednym z ważniejszych modułów przed wkroczeniem do fazy testów jest możliwość robienia w prosty sposób aktualizacji, by moi “testerzy” się nie męczyli kopiując co chwilę jakieś pliki, które modyfikowałem.

Poniżej prezentuję więc moją implementację prostego systemu aktualizującego:


Linki i załączniki:
updater

Posted on 10 February 2009
Under: Programming | No Comments »

Miniprogram #2 + kawałek filantropii

Tak się jakoś stało, że ostatnio zostałem poproszony o zrobienie małej pracy w C# na jeden z przedmiotów… Efektem jest gierka symulująca w pewnym ograniczeniu grę BlackJack z krupierem korzystającym z zasady tzw. miękkiej siedemnastki.

Program działa na jednej talii, ale zaimplementowane klasy obsługują dowolną ich liczbę. Jest możliwość sterowania również, czy krupier ma korzystać z wspomnianej zasady hit’owania przy miękkiej siedemnastce. Tym razem z uwagi na fakt, że jest to C#, dawno w tym nie pisałem i nie chce mi się oddzielać rzeczy potrzebnych od mniej potrzebnych związanych z projektem, a nie źródłami, nie zamieszczam źródeł. Program do ściągnięcia pod tym postem.

Drugą sprawą jest baner, który pojawił się po prawej stronie bloga. Nie jest to baner płatny, a raczej ideologiczny. Jestem dawcą krwi od 2004 roku i mocno popieram tę ideę. Obecnie są wielkie braki krwi w każdym z województw. Sam byłem świadkiem, jak w punkcie krwiodawstwa był pewien pan, który nie mógł mieć przeprowadzonej operacji, bo nie było odpowiedniej grupy. Szczęściem akurat ja miałem odpowiednią, ale to tylko kropla w morzu.

Jeśli nie robicie tego z choćby prozaicznego “mnie też może coś takiego spotkać”, to dodam:

  • masz dzień wolny od pracy, lub szkoły (dostajesz zaświadczenie i zgodnie z ustawą masz ten dzień normalnie pełnopłatny).
  • Dostajesz ekwiwalent w słodyczach za krew (zależnie od ośrodka, w moim ośrodku jest to 8 czekolad)
  • Po oddaniu 18 litrów jeździsz komunikacją miejską na legitymację krwiodawcy (da się to zrobić w 3 lata oddając regularnie płytki krwi)
  • Od zeszłego roku możesz odpisać ekwiwalent pieniężny od dochodu w rocznym zeznaniu podatkowym.
  • W jakichś przypadkach masz pierwszeństwo w kolejce (z krwią rzecz jasna na czele w wypadku takiej konieczności) w placówkach medycznych, niestety nie orientowałem się, jakich.

Jeśli twierdzisz “mam popularną grupę krwi, na co ona komu”, to pomyśl - jeśli jest ona tak popularna, to dużo więcej osób potrzebujących posiada tę właśnie grupę krwi, więc jest ona również cennym darem dla innych.

Po szczegóły odsyłam na stronę internetową krewniaków. Znajdziecie tam najbliższe punkty krwiodawstwa i informacje, co powinniście zrobić, by nie jechać na darmo.


BlackJack

Posted on 3 February 2009
Under: Programming, General | No Comments »