<?xml version="1.0" encoding="utf-8" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<link href="http://varabi.ovh.org/aktualnosci.xml" rel="self" />
	<title>Paweł Talacha - witryna domowa</title>
	<updated>2012-04-06T19:06:30+02:00</updated>
	<id>http://varabi.ovh.org</id>
	<entry>
		<title>ViCMS 2.1.1 - Kolejna wersja świąteczna</title>
		<published>2012-04-06T19:06:30+02:00</published>
		<updated>2012-04-06T19:06:30+02:00</updated>
		<link rel="alternate" href="/news.php?nr=30" />
		<id>http://varabi.ovh.org/news.php?nr=30</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Wymyśliłem sobie, że będę to robił w każde święta. A co! <img class='emoticon' src='./themes/emots/pfft.gif' alt=':P' /><br /><br />Chciałem, aby <a href='./strona.php?nr=11#download'>ta wersja</a> tylko i wyłącznie wprowadzała poprawki. Miała być najbardziej dopracowana pod względem działania istniejących już elementów ze wszystkich wersji, które pojawiły się do tej pory. Mam nadzieję, że się udało, bo od teraz będę już tylko psuł. <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /><br /><br />Z listą zmian można zapoznać się <a href='http://varabi.ovh.org/vicms-changelog.html'>tam, gdzie zwykle</a>.<br /><br />Ponadto dokumentacja użytkownika została w końcu uzupełniona, można więc sobie poczytać trochę i pooglądać obrazki umieszczone na stronach poświęconych funkcjom ViCMS.<br /><br />Pozostaje mi tylko życzyć wszystkim <span style='color: #FF1100;'>Wesołych Świąt</span>! <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /></div></content>
		<category term="ViCMS" label="ViCMS" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>ViCMS 2.1 - Wersja świąteczna ;)</title>
		<published>2011-12-23T22:13:59+01:00</published>
		<updated>2012-01-22T12:01:06+01:00</updated>
		<link rel="alternate" href="/news.php?nr=29" />
		<id>http://varabi.ovh.org/news.php?nr=29</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml"><div class='right'><img src='./pliki/vicms/vicms2.1star_small.png' alt='obrazek' /></div>Dziś wyjątkowa aktualizacja ViCMS. Po pierwsze - świąteczna. <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /> Po drugie - dodanych zostało kilka rzeczy usprawniających działanie systemu i poprawiających błędy. Jest też trochę nowości, a są to:<br /><br /><ul class='list2'><li class='list2'>Zagnieżdżone kategorie aktualności - Pozwalają na lepsze grupowanie wpisów. Numerek w nawiasie obok nazwy mówi teraz o liczbie aktualności danej kategorii, a także wszystkich kategorii podrzędnych. Ponadto nazwa kategorii znajduje się teraz w stopce każdego wpisu, skąd informacja o dalszym ciągu tekstu (o ile taki istnieje) przeniesiona została na koniec treści pierwszej jego części. Będzie także umieszczana na końcu skrótów wiadomości w kanale informacyjnym.</li><li class='list2'>Panele - Mogą zawierać dowolną treść, formatowaną identycznie jak sam wpis. Widoczne są na pasku bocznym. Mogą być wyświetlane poniżej menu witryny - na samym dole, powyżej - na samej górze, lub tylko na górze strony głównej witryny.</li></ul><br />Działanie tych funkcji przedstawia poniższy film. Był on tworzony w trakcie pisania programu - widać na nim drobny błąd, który został później wyeliminowany. <i>Film zawiera też paskudną reklamę.</i> <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /><br /><br /><div style='text-align: center;'><object type="application/x-shockwave-flash" style="width:560px; height:340px;" data="http://www.youtube.com/v/skYzNvAFySc?fs=1"><param name="movie" value="http://www.youtube.com/v/skYzNvAFySc?fs=1" /><param name="allowFullScreen" value="true"/></object></div><br />Ponadto:<br /><br /><ul class='list2'><li class='list2'>Panele stron - Zasada działania jest identyczna, jak w przypadku paneli ogólnych, dotyczą jednak tylko konkretnej strony. Tworzone są przy dodawaniu lub edycji strony i mogą pełnić rolę dodatkowego dla niej menu.</li><li class='list2'>Opcjonalny przycisk &quot;+1&quot; poniżej aktualności pozwalający na rekomendowanie treści wpisów w serwisie <a href='https://plus.google.com/'>Google+</a>.</li><li class='list2'>Ulepszone funkcje odpowiedzialne za formatowanie i sprawdzanie poprawności zagnieżdżenia znaczników <a href='http://www.bbcode.org/'>BBcode</a>, dzięki czemu wykrywana jest większa ilość błędów, a jednocześnie zwiększona została elastyczność poprzez umożliwienie stosowania dowolnej kolejności zagnieżdżeń w ramach dopuszczalnej w danym momencie.</li></ul><div style='clear: both;'></div><div class='right'><img src='./pliki/obrazki/html5_logo_512.png' alt='obrazek' /></div><ul class='list2'><li class='list2'>Dokumenty generowane przez system są teraz zgodne z HTML5, który zastąpił poprzednio używany standard opisu - XHTML 1.0 Transitional. Dzięki temu możliwe było m.in. zrezygnowanie z <a href='http://pl.wikipedia.org/wiki/XHTML#Negocjacja_zawarto.C5.9Bci'>negocjowania typu zawartości</a> lub osadzania obiektów flash z użyciem <a href='http://code.google.com/p/swfobject/'>SWFObject</a>, aby zapewnić zgodność i poprawne wyświetlanie w przeglądarkach z grupy Internet Explorer. Poziom użycia nowych elementów języka znaczników HTML5 jest znikomy z powodu śladowej ich obsługi przez IE8. Starsze wersje oraz przeglądarki z włączonym widokiem zgodności będą na samej górze wyświetlały komunikat o możliwości niepoprawnej prezentacji strony.<div style='clear: both;'></div></li><li class='list2'>Wymienione emotikony i zwiększona ich ilość.</li><li class='list2'>Nowa, trzecia już skórka w paczce. <a href='http://varabi.ovh.org/galeria.php?album=1&amp;zdjecie=13#zdjecie'>Blue</a> dostosowuje się do szerokości okna przeglądarki, nie ładuje także zbyt wielu elementów z plików graficznych. Założeniem było stworzenie &quot;lekkiej&quot; szaty graficznej, a więc zaokrąglone rogi nie działają w IE8 i starszych. <img class='emoticon' src='./themes/emots/pfft.gif' alt=':P' /></li></ul><br />Co do błędów - niektóre z nich:<br /><br /><ul class='list2'><li class='list2'>Album nie był zapisywany w bazie, jeżeli szerokość wskazanego przy jego edycji lub tworzeniu zdjęcia była mniejsza niż wymagana szerokość miniaturki.</li><li class='list2'>Zapis długich treści (bliskich limitu długości) zawierających emotikony mógł powodować błąd - długość była sprawdzana przed, a nie po zamianie znaczników BBcode na HTML.</li><li class='list2'>Nie dało się dodać administratora z pełnymi uprawnieniami (super administratora).</li><li class='list2'>Grafika PNG na miniaturkach albumów i zdjęć w galerii traciła przezroczystość.</li><li class='list2'>Część administracyjna &quot;wystawała poza ekran&quot; w rozdzielczości 1024x768.</li><li class='list2'>Brakowało stronicowania na liście albumów w galerii oraz na liście zdjęć.</li></ul><br /><div style='text-align: center;'><a href='http://varabi.ovh.org/vicms-changelog.html'>Zobacz pełną listę zmian</a><br /><a href='./strona.php?nr=11#download'>Pobierz najnowszą wersję</a></div><br /><hr/><br /><span style='color: #2B1CFF;'>Korzystając z okazji - wszystkim odwiedzającym tę stronę chciałbym złożyć życzenia radosnych Świąt Bożego Narodzenia oraz uśmiechu i życzliwości na każdy dzień Nowego Roku.</span> <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /></div></content>
		<category term="ViCMS" label="ViCMS" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>ViCMS 2.0.12 - Wyszukiwarka</title>
		<published>2011-10-22T15:24:18+02:00</published>
		<updated>2011-12-09T15:05:29+01:00</updated>
		<link rel="alternate" href="/news.php?nr=28" />
		<id>http://varabi.ovh.org/news.php?nr=28</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Wyszukiwarka pozwalająca na znalezienie interesującej treści w obrębie witryny to funkcja, którą ViCMS posiada prawie od początku swojego istnienia. Była ona wtedy wykonana na szybko, jako prowizoryczna - proteza ostatecznej wersji. Zasada działania była tak prosta, że już prostsza być nie mogła. <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /> Przeszukiwała treść pod kątem wystąpienia danej frazy w sposób dosłowny (tak, jak została wprowadzona) - bez żadnej analizy. Jak powszechnie wiadomo, prowizorki są najtrwalsze - toteż działała w prawie niezmienny sposób po dziś dzień stając się najsłabszym elementem systemu.<br /><br />Wyszukiwarka w takiej postaci nie spełniała swojej funkcji (była mało skuteczna) i nie mogłem już na nią patrzeć. <img class='emoticon' src='./themes/emots/pfft.gif' alt=':P' /> Czas więc najwyższy było napisać ją bardziej porządnie. Nowy sposób przeszukiwania treści analizuje aktualności, strony i galerię pod kątem wystąpienia poszczególnych elementów frazy, sortując wyniki w grupach według trafności (procent zawartości frazy) i powtarzalności (taka prawie ilość wystąpień <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' />). Ale gdyby ktoś jeszcze marudził - zawsze może zaznaczyć pole obok i zmusić silnik <a href='http://www.google.pl/'>Google</a> do wykonania brudnej roboty. <img class='emoticon' src='./themes/emots/cool.gif' alt='cool' /><br /><br /><u>Pozostałe zmiany w wersji 2.0.12</u><br /><ul class='list2'><li class='list2'>Obrazki w treści stron i aktualności mogą być teraz również umieszczane po lewej lub po prawej stronie tekstu, który będzie je &quot;opływał&quot;. Służą do tego odpowiednio znaczniki <i>img2</i> i <i>img3</i>. Należy pamiętać, że sekcja taka musi być zamknięta za pomocą <i>clear</i> i <i>/clear</i>. W przeciwnym razie może zrobić się mały bałagan. Dlatego też funkcję zaznaczam jako &quot;dla użytkowników zaawansowanych&quot;.</li><li class='list2'>Skórki mogą posiadać teraz ikonkę w formacie PNG - plik <i>icon.png</i>. Oczywiście Internet Explorer starszy niż 9 ich nie obsługuje, więc załaduje sobie plik <i>favicon.ico</i>, o ile taki będzie znajdował się w folderze. Pozostałe przeglądarki, użyją tego pierwszego pliku. Zalety? Ładniej się prezentuje, kolor 32-bit, przezroczystość, w większej rozdzielczości (ponad 200x200) np. Opera używa jako miniaturki w <a href='http://www.opera.com/browser/tutorials/video/speeddial/'>SpeedDial</a>, itp.</li><li class='list2'>Drobne poprawki w skórkach i aktualizatorze.</li></ul><div class='right'><img src='./pliki/vicms/vicms_small.png' alt='obrazek' /></div><br /><br /><br /><br /><hr/><br /><div style='text-align: center;'>- <a href='http://varabi.ovh.org/strona.php?nr=11#download'>Pobierz nową wersję</a> -</div><br /><hr/><br /><div style='clear: both;'></div>Jeżeli nic dziwnego się nie przytrafi i będę miał znowu napad na dłubanie w PHP to kolejna wersja będzie już prawdopodobnie z serii 2.1 z czymś bardzo fajnym. <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /></div></content>
		<category term="ViCMS" label="ViCMS" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>ViCMS 2.0.11 - Lepsze formatowanie treści</title>
		<published>2011-09-18T18:23:51+02:00</published>
		<updated>2011-12-09T15:23:23+01:00</updated>
		<link rel="alternate" href="/news.php?nr=27" />
		<id>http://varabi.ovh.org/news.php?nr=27</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">System zarządzania treścią, jak wskazuje nazwa, powinien przede wszystkim umożliwiać swobodne kształtowanie sposobu prezentacji tekstu. Brak kompletnego formatowania, w skład którego wchodzi kolorowanie tekstu, możliwość powiększania czy zmniejszania czcionki oraz wstawianie wykazów był wadą ViCMS. Był. <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /><br /><br /><u>Co w nowej wersji?</u><br /><ul class='list2'><li class='list2'>Możliwość tworzenia wykazów zawierających elementy uporządkowane (ponumerowane) lub nieuporządkowane (wypunktowane - jak ten <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' />) Wygląd można sobie doprecyzować w pliku skórki używając klas - odpowiednio <i>list1</i> i <i>list2</i>. Numeracja w pierwszym przypadku może zaczynać się od konkretnej wartości, jeśli znacznik rozpoczynający będzie miał postać np. list1=6. Listy mogą być zagnieżdżone.</li><li class='list2'><span style='color: #FF2432;'>Kolorowanie</span> <span style='color: #4B1FFF;'>tekstu</span>. Na dzień dzisiejszy tylko przeglądarka <a href='http://www.opera.com'>Opera</a> obsługuje input type color, więc w celu umożliwienia wybierania barwy użyty został komponent <a href='http://jscolor.com/'>JSColor</a> autorstwa Jana Odvárko (screen poniżej). Nie było sensu pisania czegoś od podstaw, skoro istnieje dobre i fajne rozwiązanie. Został więc włączony do systemu.</li></ul><br /><div style='text-align: center;'><img src='./pliki/obrazki/color_picker.jpg' alt='obrazek' /></div><br /><ul class='list2'><li class='list2'>Zmiana rozmiaru czcionki - za pomocą znacznika <i>size=wartość</i>. Nie ma do tego przycisku, bo raczej rzadko przychodzi potrzeba, żeby zmieniać określony w skórce rozmiar, ale opcja jest.</li><li class='list2'>Odtwarzacz filmów z <a href='http://www.youtube.com/'>YouTube</a> można już przełączać w tryb pełnoekranowy bezpośrednio ze stron. <img class='emoticon' src='./themes/emots/pfft.gif' alt=':P' /></li><li class='list2'>Dla wygody na dole aktualności zostały dodane strzałki do nawigacji.</li></ul><br />Oprócz tego poprawki błędów, które udało się zauważyć od ostatniej wersji:<br /><br /><ul class='list2'><li class='list2'>Nie dało się dołączyć stron do menu (zepsułem chyba w przedostatniej wersji <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' />)</li><li class='list2'>Przy dodawaniu plików do stron i aktualności powrót z kategorii plików wyświetlał komunikat braku upoważnienia.</li><li class='list2'>Jeżeli istniały jakieś strony, a wyłączona została ich obsługa w obrębie całej witryny, zostawały one w menu górnym.</li><li class='list2'>Brak odstępu pomiędzy częściami aktualności (widoczną od razu i po kliknięciu na &quot;czytaj dalej&quot;) w podglądzie.</li><li class='list2'>Numerki w listingu kodu wyświetlały się brzydko przy większej liczbie linii niż 9.</li><li class='list2'>Tytuł i podtytuł witryny nie znajdowały się pomiędzy znacznikami <i>h1</i> w przypadku, gdy menu było powyżej (na samej górze) - np. dla skórki <i>infrared</i>.</li></ul><br /><div style='text-align: center;'>- <a href='http://varabi.ovh.org/strona.php?nr=11#download'>Pobierz nową wersję</a> -</div></div></content>
		<category term="ViCMS" label="ViCMS" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>Opera vs. Google</title>
		<published>2011-08-09T16:32:28+02:00</published>
		<updated>2011-12-09T18:28:01+01:00</updated>
		<link rel="alternate" href="/news.php?nr=26" />
		<id>http://varabi.ovh.org/news.php?nr=26</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Od niepamiętnych czasów niektóre usługi <a href='http://www.google.pl/'>Google</a> nie działają w 100% poprawnie w przeglądarce <a href='http://www.opera.com/'>Opera</a>. Czasami faktycznie bywa to problem Opery, ale błędy są zwykle dość szybko poprawiane i od momentu zgłoszenia znikają wraz z pojawieniem się kolejnej wersji. Nawet jeśli Opera zachowuje się prawidłowo, a błąd jest po stronie serwisu WWW, jej twórcy próbują obejść problem stosując tzw. <a href='http://my.opera.com/sitepatching/blog/'>łatki</a>. Czasem łatki są używane doraźnie, jeśli trzeba trochę poczekać na poprawkę w silniku. Po jej wprowadzeniu łatka jest usuwana.<br /><br />Ale... Niestety mało kto wie (psiocząc na Operę), że często błędy powoduje umyślnie samo Google. Swego czasu nawet kwestię poruszył Paweł Wimmer wysyłając do Google Polska <a href='http://poradnikwebmastera.blox.pl/2006/12/List-otwarty-do-Google-Polska.html'>list otwarty w tej sprawie</a>. Skąd pewność, że umyślnie?<br /><br />Otóż Opera, chyba mniej więcej w tamtym okresie, wprowadziła ciekawą funkcję pozwalającą jej na udawanie innej przeglądarki. Wystarczy gdzieś na otwartej stronie kliknąć prawym przyciskiem myszy, z menu kontekstowego wybrać opcję „preferencje witryny”, następnie zakładkę „sieć” i tam, na dole ustawić udawanie.  Po zatwierdzeniu i odświeżeniu strony zdarza się cud! <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /> W znacznej większości przypadków serwisy działają poprawnie. I nagle okazuje się, że z Opera radzi sobie świetnie i nie ma problemów z wyświetlaniem żadnego elementu witryny.<br /><br /><div style='text-align: center;'><img src='./pliki/obrazki/preferencje.jpg' alt='obrazek' /></div><br />Praktyka blokowania Opery przez Google mimo upływu lat w ogóle się nie zmieniła. Metody stają coraz trudniejsze od obejścia. Wystarczy spojrzeć na najnowsze dziecko firmy – serwis społecznościowy <a href='https://plus.google.com/'>Google+</a>. Maskowanie w tym przypadku nie wystarczyło, aby górne menu działało poprawnie (tylko zaczęło się wyświetlać), <a href='http://my.opera.com/community/forums/topic.dml?id=1036432&amp;t=1309881218&amp;page=1#comment9792832'>ale jak się okazuje</a> po dodaniu „AppleWebKit/535.1” do user agent (ciągu znaków identyfikującego przeglądarkę) – serwis nagle zaczyna działać zgodnie z oczekiwaniami. Wystarczą trzy kroki:<br /><br /><ol class='kod'><li class='kod'><pre>W pasku adresu wpisujemy: opera:config#ISP|Id</pre></li><li class='kod'><pre>Wprowadzamy wartość: AppleWebKit/535.1</pre></li><li class='kod'><pre>Zapisujemy zmainy, restartujemy Operę</pre></li></ol><br />To dowodzi, że wina leży tylko i wyłącznie po stronie Google, który z sobie znanych tylko powodów blokuje użytkowników Opery. Można zastanawiać się, dlaczego firma posuwa się do stosowania chwytów poniżej pasa? Czyżby bała się uczciwej konkurencji? Może zdaje sobie sprawę, że Opera pod względem funkcjonalnym bije na głowę ich produkt - <a href='http://www.google.com/chrome'>Google Chrome</a>? <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /><br /><br />Odpowiedzcie sobie sami. Przy okazji przypomnę, że najnowszą wersję Opery znaleźć można na <a href='http://www.opera.com/browser/'>stronie firmy</a>. <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /><br /><br /><i>Edit:</i><br />Już użytkownicy napisali skrypty, a nawet <a href='https://addons.opera.com/addons/extensions/details/google-injector/'>wtyczkę</a>, która naprawia serwis Google+. <img class='emoticon' src='./themes/emots/cool.gif' alt='cool' /></div></content>
		<category term="Soft" label="Soft" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>ViSUD - zapowiedź #1</title>
		<published>2011-07-26T13:51:34+02:00</published>
		<updated>2011-12-09T15:05:28+01:00</updated>
		<link rel="alternate" href="/news.php?nr=25" />
		<id>http://varabi.ovh.org/news.php?nr=25</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Mamy wakacje, a więc tempo prac nad ViSUDem także jest iście wakacyjne. Średnio – kilka linijek na dobę – w końcu są ciekawsze rzeczy do roboty. <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /> Ale prace posuwają się niezmiennie do przodu i powoli z czeluści losowych znaków wyłaniają się bardziej uporządkowane fragmenty, których to zbiory zaczynają ze sobą wzajemnie współgrać tworząc kod. Jest już gotowych mnóstwo rzeczy – jeśli ktoś czytał wpisy <a href='http://varabi.blip.pl/'>na blipie</a>, wie, co zostało zrobione. Nie o wszystkim tam jednak pisałem (na razie są one tajemnicą) i nie prezentowałem dotychczas większych fragmentów interfejsu. Dziś jednak zamierzam pokazać kilka rzeczy z silnika.<br /><br />Przede wszystkim – questy. To one – obok obsługi przedmiotów i walki – stanowią istotę tekstowych gier przygodowych. Dzięki nim możliwe jest budowanie fabuły i tworzenie ciągu zależnych od siebie zadań, które gracz będzie musiał wykonać, aby odblokować kolejne fragmenty gry. W jaki sposób działać będą w ViSUD? Zapraszam do obejrzenia filmu (najlepiej bezpośrednio w serwisie YouTube, na pełnym ekranie <a href='http://www.youtube.com/watch?v=6ir2yCF6V6A&amp;amp;hd=1'>w najwyższej rozdzielczości</a>).<br /><br /><div style='text-align: center;'><object type="application/x-shockwave-flash" style="width:560px; height:340px;" data="http://www.youtube.com/v/6ir2yCF6V6A?fs=1"><param name="movie" value="http://www.youtube.com/v/6ir2yCF6V6A?fs=1" /><param name="allowFullScreen" value="true"/></object></div><br />Należy pamiętać, że nadal jest to bardzo wstępna wersja i sporo rzeczy może jeszcze ulec zmianie. Na pewno do poprawki jest wzór liczący limit inwentarza, bo przy niskich poziomach jest zbyt mały i komicznie to wygląda. <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /> Oczywiście „gra” zaprezentowana na filmie nie jest żadną grą – są to tylko fragmenty testowe.</div></content>
		<category term="ViSUD" label="ViSUD" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>Apache OpenOffice</title>
		<published>2011-06-02T09:05:14+02:00</published>
		<updated>2012-02-19T18:07:14+01:00</updated>
		<link rel="alternate" href="/news.php?nr=24" />
		<id>http://varabi.ovh.org/news.php?nr=24</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Bardzo ciekawe rzeczy wydarzyły się w kwestii pakietu biurowego <a href='http://www.openoffice.org/'>OpenOffice.org</a>. Otóż <a href='http://www.marketwire.com/press-release/statements-on-openofficeorg-contribution-to-apache-nasdaq-orcl-1521400.htm'>firma Oracle ogłosiła</a>, że przekazuje go <a href='http://www.apache.org/'>Apache Software Foundation</a>. Luke Kowalski, vice prezes, Oracle Corporate Architecture Group, określił akt ten jako manifestację zobowiązań wobec twórców i społeczności open source. Jego zdaniem, zapewni to popularnemu pakietowi dojrzałą opiekę, otwartą i stabilną infrastrukturę oraz dobre warunki dla dalszego rozwoju.<br /><br />Do społeczności Apache należał będzie więc kod projektu, prawa autorskie oraz znak handlowy. Oracle zachowa dla siebie patenty związane z OpenOffice.org, uzyskane przy okazji przejęcia <a href='http://en.wikipedia.org/wiki/Sun_Microsystems'>Sun Microsystems</a>.<br /><br />Od czasu, kiedy w ręce firmy <a href='http://www.oracle.com/index.html'>Oracle</a> trafił <a href='http://www.openoffice.org/'>OpenOffice.org</a>, nie zrobiono właściwie nic w celu jego rozwoju. Część programistów w obawie przed zamknięciem projektu i innymi dziwnymi decyzjami kierownictwa zbuntowała się, zakładając <a href='http://www.documentfoundation.org/'>The Document Foundation</a>, w ramach której rozwijany jest <a href='http://www.libreoffice.org/'>LibreOffice</a>, bazujący na OpenOffice.org.<br /><br />TDF <a href='http://blog.documentfoundation.org/2011/06/01/statement-about-oracles-move-to-donate-openoffice-org-assets-to-the-apache-foundation/'>wyraża nadzieję na współpracę</a> z Apache Software Foundation i połączenie wysiłków obu społeczności, co będzie możliwe dzięki zmianie licencji projektu.<br /><br />Pozostaje więc czekać na rozwój wydarzeń i trzymać kciuki, żeby się wszyscy dogadali i zaczęli dynamicznie rozwijać soft współpracując, zamiast każdy z osobna bawić się w swojej piaskownicy swoimi zabawkami. Takie rozwiązanie powinno przynieść korzyść nie tylko dla użytkowników, ale również dla podmiotów zewnętrznych zaangażowanych w rozwój projektu. Swoją drogą – ciekawe w jaki sposób zareagują wydawcy różnych dystrybucji systemów linuxowych, jeśli do fuzji nie dojdzie? Czekamy więc.<br /><br />Tymczasem lada dzień, zgodnie z harmonogramem, The Document Foundation powinno wypuścić LibreOffice 3.4.</div></content>
		<category term="Soft" label="Soft" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>Komunikacja applet - kontroler Java Spring</title>
		<published>2011-05-18T13:41:13+02:00</published>
		<updated>2011-12-09T18:09:14+01:00</updated>
		<link rel="alternate" href="/news.php?nr=23" />
		<id>http://varabi.ovh.org/news.php?nr=23</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Przeglądając sieć zauważyłem, że trochę osób <a href='http://forum.springsource.org/showthread.php?91423-Applet-to-Spring-communication'>ma problem</a> z komunikacją applet – kontroler <a href='http://www.springsource.org/'>Java Spring</a> (<a href='http://pl.wikipedia.org/wiki/Model-View-Controller'>model MVC</a>). Trudno znaleźć opis zagadnienia. Postanowiłem więc napisać kilka słów.<br /><br />Założenie jest takie, aby kontroler odebrał dane, przetworzył i przekazał do widoku lub ewentualnie odpowiedział wysyłając komunikat do appletu. Oczywiście najlepiej byłoby przesyłać całe obiekty (serializacja), aby móc np. potem korzystając z JPA (mapowanie obiektowo-relacyjne) zapisać dane wygodnie do bazy. Dlatego też użyjemy strumieni obiektowych (<i>ObjectOutputStream</i> oraz <i>ObjectInputStream</i>).<br /><br />Zanim jednak przejdę do rzeczy – kilka słów na temat sposobu osadzania appletu.<br />Po pierwsze – nabywamy ładnych nawyków, więc <u>używamy znacznika <i>object</i></u>, nie <i>applet</i>.<br />Po drugie – jeżeli nasz applet był tworzony z wykorzystaniem <i>AbsoluteLayout</i>, należy też dołączyć odpowiednią bibliotekę. Umieszczamy więc w pliku widoku kod:<br /><br /><ol class='kod'><li class='kod'><pre>&lt;object type=&quot;application/x-java-applet&quot; width=&quot;800&quot; height=&quot;600&quot;&gt;</pre></li><li class='kod'><pre>     &lt;param name=&quot;classid&quot; value=&quot;java:pakiet.Klasa.class&quot; /&gt;</pre></li><li class='kod'><pre>     &lt;param name=&quot;archive&quot; value=&quot;naszApplet.jar, AbsoluteLayout.jar&quot; /&gt;</pre></li><li class='kod'><pre>&lt;/object&gt;</pre></li></ol><br />W ten sposób nasz applet będzie wyświetlany na wybranej stronie. A co z komunikacją?<br /><br /><div style='text-align: center;'><b>applet → kontroler</b></div><br />Aby wysyłać dane do kontrolera, w metodzie appletu, która ma to robić, umieszczamy kod:<br /><br /><ol class='kod'><li class='kod'><pre>URL url = new URL(&quot;http://adresSeriwsu/odebranieDanych.html&quot;);</pre></li><li class='kod'><pre>URLConnection uc = url.openConnection();</pre></li><li class='kod'><pre>uc.setDoInput(true);</pre></li><li class='kod'><pre>uc.setDoOutput(true);</pre></li><li class='kod'><pre>uc.setUseCaches(false);</pre></li><li class='kod'><pre>uc.setDefaultUseCaches(false);</pre></li><li class='kod'><pre>uc.setRequestProperty (&quot;Content-Type&quot;, &quot;application/octet-stream&quot;);</pre></li><li class='kod'><pre>OutputStream out = uc.getOutputStream();</pre></li><li class='kod'><pre>ObjectOutputStream oos = new ObjectOutputStream(out);</pre></li><li class='kod'><pre>oos.writeObject(&quot;chrząszcz brzmi w trzcinie ;)&quot;);</pre></li><li class='kod'><pre>oos.flush();</pre></li><li class='kod'><pre>oos.close();</pre></li></ol><br />Kolejno - tworzymy połączenie z odpowiednim adresem, przygotowujemy wejście i wyjście oraz upewniamy się, że nie będzie użyta wersja połączenia z pamięci podręcznej. Następnie definiujemy typ zawartości i ustawiamy strumienie. Do celów przykładu przesyłany jest obiekt String czyli ciąg znaków. Metoda kontrolera odbierająca informacje może wyglądać następująco:<br /><br /><ol class='kod'><li class='kod'><pre>@RequestMapping(value = &quot;/odbieranieDanych&quot;, method = RequestMethod.POST)</pre></li><li class='kod'><pre>public void savindProcess(HttpServletRequest req, HttpServletResponse res) throws Exception {</pre></li><li class='kod'><pre>     ServletInputStream in = req.getInputStream();</pre></li><li class='kod'><pre>     ObjectInputStream ois = new ObjectInputStream(in);</pre></li><li class='kod'><pre>     String data = (String) ois.readObject();</pre></li><li class='kod'><pre>     System.out.println(&quot;oderano: &quot;+data);</pre></li><li class='kod'><pre>}</pre></li></ol><br />I w ten oto sposób &quot;<i>chrząszcz brzmi w trzcinie <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /></i>&quot; będzie widoczny z poziomu kontrolera.<br /><br /><div style='text-align: center;'><b>kontroler → applet</b></div><br />Załóżmy, że chcemy, aby powyższa metoda zwracała jakieś informacje do appletu. Uzupełniamy ją więc o poniższy kod.<br /><br /><ol class='kod'><li class='kod'><pre>ServletOutputStream out = res.getOutputStream();</pre></li><li class='kod'><pre>ObjectOutputStream oos = new ObjectOutputStream(out);</pre></li><li class='kod'><pre>oos.writeObject(&quot;wysyłamy coś do appletu&quot;);</pre></li><li class='kod'><pre>oos.flush();</pre></li><li class='kod'><pre>oos.close();</pre></li></ol><br />Tu również przesłany jest ciąg znaków. Applet odbierze dane w następujący sposób:<br /><br /><ol class='kod'><li class='kod'><pre>InputStream in = uc.getInputStream();</pre></li><li class='kod'><pre>ObjectInputStream ois = new ObjectInputStream(in);</pre></li><li class='kod'><pre>String data;</pre></li><li class='kod'><pre>try {</pre></li><li class='kod'><pre>     data = (String) ois.readObject();</pre></li><li class='kod'><pre>     System.out.println(&quot;applet dostał: &quot;+data);</pre></li><li class='kod'><pre>} catch (ClassNotFoundException ex) {</pre></li><li class='kod'><pre>}</pre></li></ol><br />I tak mamy zapewnioną komunikację pomiędzy appletem, a kontrolerem Java Spring. Łatwo zauważyć, że jest ona dość podobna do komunikacji ze zwyczajnymi servletami. Po wykonaniu takiej operacji można spokojnie przetworzyć dane i przekazać do widoku lub zapisać do bazy. <img class='emoticon' src='./themes/emots/cool.gif' alt='cool' /></div></content>
		<category term="Java" label="Java" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>ViSUD – podstawowe informacje</title>
		<published>2011-04-28T16:10:20+02:00</published>
		<updated>2011-12-09T15:05:28+01:00</updated>
		<link rel="alternate" href="/news.php?nr=22" />
		<id>http://varabi.ovh.org/news.php?nr=22</id>
		<content type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">Dawno, dawno temu, w odległej galaktyce... W każdym razie dawno temu strasznie chciałem napisać przygodową grę tekstową. Zaczęło się od fascynacji grami paragrafowymi („Dreszcz” Jacka Ciesielskiego zamieszczony w jednym z numerów Fantastyki był chyba pierwszy), potem gry na komputerze, m.in. świetny polski Single User-Dungeon - <a href='http://otchlan.pl/'>Otchłań</a> - nadal rozwijany! Na fali oczarowania postanowiłem zrealizować swoje własne pomysły. I tak zacząłem pisać w Pascalu. Powstał system walki, kilka lokacji, potworków i NPC, z którym można było pogadać albo go zabić. <img class='emoticon' src='./themes/emots/wink.gif' alt='mruga' /> Zabrakło mi wtedy cierpliwości w pisaniu i umiejętności (było to z 10 lat temu - ale ten czas leci!).<br /><br /><div style='text-align: center;'><img src='./pliki/sud/hidden_screen.jpg' alt='obrazek' /><br /><i>Kilka screenów moich ówczesnych wypocin</i></div><br />Niestety, jak zauważyłem, tak często bywa w projektach tego typu. Gry próbują tworzyć ludzie, którzy mają świetne pomysły - ale, proces wytwarzania jest długi i żmudny. Dodatkowo złe rozplanowanie i obmyślenie mechanizmów często prowadzi do niepowodzenia i zarzucenia projektu.<br /><br />Od jakieś czasu chodziło mi po głowie napisanie narzędzia wspomagającego tworzenie tekstowych gier RPG. Projektowałem i obmyślałem, jak całość ma działać. Wyszedł całkiem zaawansowany system. Jednym z jego modułów będzie edytor gier. Kolejnym – środowisko uruchomieniowe dla nich – silnik. Implementacją tych dwóch modułów będę się teraz głównie zajmował w wolnym czasie. Ewentualne informacje o postępach prac będą zamieszczane na <a href='http://varabi.blip.pl/'>blipie</a>.</div></content>
		<category term="ViSUD" label="ViSUD" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
	<entry>
		<title>NetBeans 7.0</title>
		<published>2011-04-24T14:51:56+02:00</published>
		<updated>2011-12-09T15:05:28+01:00</updated>
		<link rel="alternate" href="/news.php?nr=21" />
		<id>http://varabi.ovh.org/news.php?nr=21</id>
		<summary type="xhtml"><div xmlns="http://www.w3.org/1999/xhtml">W połowie tego tygodnia <a href='http://netbeans.org/community/news/show/1519.html'>wydana została</a> nowa wersja <a href='http://netbeans.org/'>NetBeans</a> - darmowego, otwartego środowiska programistycznego. Nowości to m.in. obsługa <a href='http://www.oracle.com/pl/products/database/index.html'>Oracle Database</a> i <a href='http://glassfish.java.net/'>GlassFish 3.1</a>. Dodano możliwość korzystania z tagów <a href='http://www.w3.org/TR/html5/'>HTML5</a> i dopieszczono sam edytor poprawiając mechanizm uzupełnienia kodu i podpowiedzi. NetBeans 7 zintegrowany został z <a href='http://www.junit.org/'>JUnit 4.8.2</a>, wspiera także <a href='http://maven.apache.org/'>Maven 3</a>. Poprawiono także moduły odpowiedzialne za tworzenie aplikacji, np. nowy sposób projektowania <i>GridBagLayout</i>. <img class='emoticon' src='./themes/emots/smile.gif' alt=':)' /> Ważniejsze zmiany prezentuje poniższy filmik.<br /><br /><div style='text-align: center;'><object type="application/x-shockwave-flash" style="width:560px; height:340px;" data="http://www.youtube.com/v/4CLUtc8jDpE?fs=1"><param name="movie" value="http://www.youtube.com/v/4CLUtc8jDpE?fs=1" /><param name="allowFullScreen" value="true"/></object></div><br />Więcej informacji znaleźć można <a href='http://netbeans.org/community/releases/70/'>na stronie projektu</a>.<br/><br/><a href='/news.php?nr=21'>Czytaj dalej...</a></div></summary>
		<category term="Soft" label="Soft" />
		<author> 
			<name>varabi</name>
		</author>
	</entry>
</feed>

