<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NameLess, the Jedi</title>
	<atom:link href="http://www.nl-j.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nl-j.org</link>
	<description>Odbite echo myśli</description>
	<lastBuildDate>Thu, 07 Apr 2011 10:38:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Dezynsekcja w praktyce</title>
		<link>http://www.nl-j.org/nlj/dezynsekcja-w-praktyce/</link>
		<comments>http://www.nl-j.org/nlj/dezynsekcja-w-praktyce/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 15:01:55 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[naGEEKowo]]></category>
		<category><![CDATA[NLJ]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[apps2sdext]]></category>

		<guid isPermaLink="false">http://www.nl-j.org/?p=194</guid>
		<description><![CDATA[Od dobrych paru tygodni mam jakiś wstręt do androidowych wnętrzności. Po części to efekt presji rzeczywistości, po części &#8211; jakaś głupia blokada. Waham się czy przejść już na kolejną wersję Androida (Gingerbread czyli 2.3) czy pozostać z FroYo. Jednak odłóżmy rozterki &#8216;młodego&#8217; wyrobnika na bok i zajmijmy się tępieniem robali czyli dezynsekcją właśnie. Chyba przedostatnia <a href='http://www.nl-j.org/nlj/dezynsekcja-w-praktyce/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Od dobrych paru tygodni mam jakiś wstręt do androidowych wnętrzności. Po części to efekt presji rzeczywistości, po części &#8211; jakaś głupia blokada. Waham się czy przejść już na kolejną wersję Androida (Gingerbread czyli 2.3) czy pozostać z FroYo. Jednak odłóżmy rozterki &#8216;młodego&#8217; wyrobnika na bok i zajmijmy się tępieniem robali czyli dezynsekcją właśnie.</p>
<p><span id="more-194"></span>Chyba przedostatnia wersja <a title="Froyo by Laszlo" href="http://laszloblog.pl/?category_name=android-os" target="_blank">Androidowego ROMu Laszlo</a> opublikowana na forum XDA miała dość ciekawy błąd mianowicie nie widziała aplikacji zainstalowanych na partycji Ext.</p>
<p>Dorabiając z Fireratem natywną obsługę SdExt prawie w ogóle nie zwracaliśmy uwagi na to czy stosowna partycja karty w ogóle istnieje (o podmontowaniu jej we właściwym miejscu nawet nie wspomnę). Ubocznym efektem (i, do pewnego stopnia, powodem moich programistycznych wypocin) był fakt, że telefon potrafił wpadać w bootloop (czyli w kółko się restartował).</p>
<p style="text-align: left;">Pierwszym krokiem było zmodyfikowanie Volda (VOLume Daemon &#8211; usługa systemowa zarządzająca &#8216;dyskami&#8217;), tak by montował odpowiednią partycję pod /sd-ext i sprzedał informację o sukcesie (lub porażce) reszcie systemu. Jak już umiał przekazać informację to trzeba było sprawić by framework wiedział co z tą informacją zrobić i tak powstała funkcja o nazwie getSdExtState(). Tak prosta, że nie sposób popełnić w niej błędu. Od razu też wykorzystałem ją do sprawdzania dostępności /sd-ext przed próbą skanowania zainstalowanych tam aplikacji przy starcie systemu. Kawałek kodu tak trywialny, że nawet nie przyszło mi do głowy jakieś większe testowanie.</p>
<pre>if (Environment.getSdExtState().equals(Environment.MEDIA_MOUNTED)) {
   scanDirLI(mSdExtInstallDir, PackageParser.PARSE_ON_SDEXT, scanMode);
}</pre>
<p>Jak podmontowane to skanuj, jak nie &#8211; to nie. Prawda, że proste? W samym frameworku jest parę newralgicznych miejsc (związanych z instalacją aplikacji) w których użyłem identycznego testu. Świat stał się lepszym miejscem <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  a ja mogłem się zająć dorabianiem informacji o SdExt w Ustawieniach czy czymś takim. Mniej więcej w tym momencie Laszlo zapewne zsynchronizował swoje źródła z moimi i wypuścił na świat kolejną wersję swojego ROMu. Chyba w sobotę Firerat dał mi znać na Twitterze, że ludzie mają kłopoty z Apps2SdExt na najnowszym FbL. Zerknąłem na forum i, na podstawie zamieszczonych tam postów, doszedłem do wniosku, że dochodzi do tzw race condition. Vold działa asynchronicznie względem reszty systemu i w czasie gdy jeszcze zajmuje się sprawdzaniem systemów plikowych uruchamiane są pozostałe komponenty systemu takie jak usługa PackageManagera. To ona właśnie przeprowadza początkowy skan katalogów z aplikacjami. Skoro nie widać aplikacji zainstalowanych na SdExt to (patrząc na powyższy kawałek kodu) getSdExtState zwraca coś innego niż MEDIA_MOUNTED i system nawet nie próbuje zajrzeć do /sd-ext/app. Wniosek z tego jest taki, że Vold jeszcze nie zdążył pozałatwiać swoich spraw z /sd-ext. Problem znany zatem teraz wystarczy znaleźć rozwiązanie. Na szybko Firerat przekompilował framework.jar z wywalonym sprawdzaniem getSdExtState(), wrzucił na XDA i &#8216;rozwiązał&#8217; problem (to był akurat weekend i, zdaje się, byłem po jakimś większym maratonie Singstara w towarzystwie sąsiadów i paru butelek Dark Whisky <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ).</p>
<p>To, co zrobił Firerat było jednak tylko obejściem problemu a nie jego rozwiązaniem. Poczytałem jeszcze raz posty na forum, popsioczyłem, że nikt z pomstujących nie zdobył się na złapanie logów ze startu systemu i doszedłem do identycznego wniosku jak wcześniej: Race condition. Na swoim telefonie nie miałem problemu z brakiem aplikacji z SdExt ale też miałem wtedy zainstalowaną wersję bardzo rozwojową (czyt: powiązaną sznureczkiem i podpartą patyczkiem z każdej strony). Złapałem logi z restartu swojego telefonu i patrzyłem w nie jak sroka w gnat. No nijak nie było szans na race condition. Zgodnie z tym co widziałem w logach /sd-ext było już dawno podmontowane. Przecież nie da się zrobić błędu w 6 linijkach kodu z jakich składa się getSdExt():</p>
<pre>    /**
     * Gets the current state of SD-Ext
     * Note: this call should be deprecated as it doesn't support
     * multiple volumes.
     */
   public static String getSdExtState() {
       try {
           if (mMntSvc == null) {
               mMntSvc = IMountService.Stub.asInterface(ServiceManager.getService("mount"));
           }
           return mMntSvc.getVolumeState(getSdExtDirectory().toString());
       } catch (Exception rex) {
           return Environment.MEDIA_REMOVED;
       }
   }</pre>
<p>Poza tym w innych miejscach kodu funkcja ta działa perfekcyjnie. Tak się zafiksowałem na tym race condition, że dobre dwa dni nad tym spędziłem. Albo raczej zmarnowałem. Zmarnowałem bo z całego logu (około 150+ KB tekstu) skoncentrowałem się wyłącznie na części związanej ze PackageManagerem i skanowaniem /sd-ext/app. W końcu mój umysł zaczął rejestrować inne linijki logu i wyłapał coś takiego:</p>
<pre>I/sysproc (  147): System server: starting Android runtime.
I/sysproc (  147): System server: starting Android services.
I/SystemServer(  147): Entered the Android system server!
I/sysproc (  147): System server: entering thread pool.
I/SystemServer(  147): Entropy Service
I/SystemServer(  147): Power Manager
I/SystemServer(  147): Activity Manager
I/ActivityManager(  147): Memory class: 16
D/dalvikvm(  147): GC_FOR_MALLOC freed 641 objects / 80848 bytes in 138ms
D/dalvikvm(  147): GC_FOR_MALLOC freed 2131 objects / 317920 bytes in 159ms
I/SystemServer(  147): Telephony Registry
I/SystemServer(  147): Package Manager
D/dalvikvm(  147): GC_FOR_MALLOC freed 5971 objects / 222640 bytes in 181ms
I/dalvikvm(  147): DexOpt: source file mod time mismatch (3e4c9ef4 vs 3e618cf4)
D/installd(  101): DexInv: --- BEGIN '/system/framework/android.test.runner.jar' ---
D/dalvikvm(  163): DexOpt: load 111ms, verify 722ms, opt 13ms</pre>
<p>Kilkanaście linijek niżej pojawia się:</p>
<pre>I/PackageManager(  147): Pruning dalvik file: sd-ext@app@com.twitter.android-2.apk@classes.dex
I/PackageManager(  147): Pruning dalvik file: sd-ext@app@com.keramidas.TitaniumBackup-1.apk@classes.dex
D/PackageManager(  147): Scanning app dir /system/framework
D/PackageManager(  147): Scanning app dir /system/app
D/dalvikvm(  147): GC_FOR_MALLOC freed 4987 objects / 280408 bytes in 193ms
W/PackageParser(  147): No actions in intent filter at /system/app/Bluetooth.apk Binary XML file line #124
I/PackageManager(  147): /system/app/CMParts.apk changed; collecting certs</pre>
<p>I jeszcze kilkadziesiąt linijek niżej:</p>
<pre>D/dalvikvm(  147): GC_EXPLICIT freed 7597 objects / 563168 bytes in 221ms
I/SystemServer(  147): Account Manager
I/SystemServer(  147): Content Manager
I/SystemServer(  147): System Content Providers
I/SystemServer(  147): Battery Service
I/SystemServer(  147): Lights Service
I/SystemServer(  147): Vibrator Service
I/SystemServer(  147): Alarm Manager
D/AlarmManagerService(  147): Kernel timezone updated to -60 minutes west of GMT
I/SystemServer(  147): Init Watchdog
I/SystemServer(  147): Sensor Service
I/SystemServer(  147): Window Manager
I/SystemServer(  147): Bluetooth Service
I/SystemServer(  147): Device Policy
I/bluedroid(  147): Starting hciattach daemon
I/SystemServer(  147): Status Bar
I/SystemServer(  147): Clipboard Service
I/SystemServer(  147): Input Method Service
I/SystemServer(  147): NetStat Service
I/SystemServer(  147): NetworkManagement Service
I/SystemServer(  147): Connectivity Service
V/ConnectivityService(  147): ConnectivityService starting up
D/ConnectivityService(  147): getMobileDataEnabled returning true
V/ConnectivityService(  147): Starting Wifi Service.
I/WifiService(  147): WifiService starting up with Wi-Fi disabled
D/Tethering(  147): Tethering starting
D/NetworkManagmentService(  147): Registering observer
I/bluedroid(  147): Starting bluetoothd deamon
I/SystemServer(  147): Throttle Service
I/SystemServer(  147): Accessibility Manager
I/SystemServer(  147): Mount Service
I/SystemServer(  147): Notification Manager</pre>
<p>Widać?<br />
Nie widać?? Hmmm&#8230; A teraz?</p>
<pre>I/SystemServer(  147): Entropy Service
I/SystemServer(  147): Power Manager
I/SystemServer(  147): Activity Manager
I/SystemServer(  147): Telephony Registry
<strong>I/SystemServer(  147): Package Manager</strong>
I/SystemServer(  147): Account Manager
I/SystemServer(  147): Content Manager
I/SystemServer(  147): System Content Providers
I/SystemServer(  147): Battery Service
I/SystemServer(  147): Lights Service
I/SystemServer(  147): Vibrator Service
I/SystemServer(  147): Alarm Manager
I/SystemServer(  147): Init Watchdog
I/SystemServer(  147): Sensor Service
I/SystemServer(  147): Window Manager
I/SystemServer(  147): Bluetooth Service
I/SystemServer(  147): Device Policy
I/SystemServer(  147): Status Bar
I/SystemServer(  147): Clipboard Service
I/SystemServer(  147): Input Method Service
I/SystemServer(  147): NetStat Service
I/SystemServer(  147): NetworkManagement Service
I/SystemServer(  147): Connectivity Service
I/SystemServer(  147): Throttle Service
I/SystemServer(  147): Accessibility Manager
<strong>I/SystemServer(  147): Mount Service</strong></pre>
<p>Jeszcze nie widać? No, dobra. Widzisz kiedy jest startowany Mount Service? A teraz zobacz gdzie jest Package Manager. Między jednym a drugim wpisem mija dobrych kilkanaście &#8211; kilkadziesiąt sekund.  W tym czasie skanowane są aplikacje systemowe (/system/app) i użytkownika (/data/app i ewentualnie /sd-ext/app). Poprawność działania getSdExtState() jest uzależniona od działania Mount Service a w chwili próby skanowania /sd-ext/app ta usługa jeszcze nie działa. I to właśnie było źródło problemu <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>W systemie Android część usług została zaliczona do usług krytycznych (w powyższym wyciągu z logów od Entropy Service do Bluetooth Service). Na moje nieszczęście Mount Service nie trafił do tej kategorii. Z punktu widzenia twórców Androida nie było takiej potrzeby. Usługa ta jest potrzebna tylko do dostępu do kart pamięci. Zmiana kategorii tej usługi nie jest za bardzo możliwa bez potężnej ingerencji w nią samą i szereg innych komponentów a to oznacza więcej potencjalnych bugów. Najprostszym rozwiązaniem było porozmawianie (prawie) bezpośrednio z Voldem. Ubocznym skutkiem jest potencjalne wydłużenie startu systemu o maksymalnie 20 sekund. W skrajnej sytuacji może się okazać, że i tak aplikacje zainstalowane na SdExt się nie pokażą (w przypadku kłopotów z filesystemem). Wygląda to mniej więcej <a title="GitHub" href="https://github.com/NameLessJedi/framework_base/commit/74e7e52a586f2520ff91f28886c364efc7a9a0f4" target="_blank">tak</a>. Zdaję sobie sprawę z braków tego rozwiązania. Właściwie jest to tylko nieco hakerskie obejście. Prawidłowym rozwiązaniem jest skanowanie aplikacji z SdExt już po starcie systemu, tak jak to jest robione z aplikacjami zainstalowanymi na partycji FAT karty. Mam już nawet mgliste pojęcie jak to zrobić <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Jako bonus dostaniecie wtedy możliwość odmontowania i wyjęcia karty pamięci bez wyłączania telefonu <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Cieszycie się?</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/nlj/dezynsekcja-w-praktyce/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Learning Java using Google</title>
		<link>http://www.nl-j.org/nlj/learning-java-using-google/</link>
		<comments>http://www.nl-j.org/nlj/learning-java-using-google/#comments</comments>
		<pubDate>Fri, 21 Jan 2011 14:05:24 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[naGEEKowo]]></category>
		<category><![CDATA[NLJ]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[dream]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.nl-j.org/?p=180</guid>
		<description><![CDATA[Tytuł wpisu wyjaśni się pewnie gdzieś niżej (bo jak zwykle zaczynam pisanie bez konkretnego planu, zaledwie z mglistym zarysem tego co ma się pojawić). Ogólnie rzecz ujmując będzie o Androidzie. Taki śmieszny system operacyjny stworzony przez Google dla urządzeń mobilnych. Chyba od samego początku Android kusił mnie swoją otwartością. Jakoś tak w połowie 2009 roku <a href='http://www.nl-j.org/nlj/learning-java-using-google/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Tytuł wpisu wyjaśni się pewnie gdzieś niżej (bo jak zwykle zaczynam pisanie bez konkretnego planu, zaledwie z mglistym zarysem tego co ma się pojawić). Ogólnie rzecz ujmując będzie o Androidzie. Taki śmieszny system operacyjny stworzony przez Google dla urządzeń mobilnych. Chyba od samego początku Android kusił mnie swoją otwartością. Jakoś tak w połowie 2009 roku stałem się właścicielem aparatu Era G1 &#8211; znanego bardziej jako HTC Dream. Z Androidem 1.5.</p>
<p><span id="more-180"></span></p>
<p>Zdaje się, że z niezmodyfikowanym systemem wytrzymałem jakieś 2-3 miesiące. Proces rootowania/odblokowania Dreama był wówczas nieco skomplikowany i wymagał przygotowania specjalnej karty. Bodaj w sierpniu pokazała się malutka aplikacja, dzięki której można było jednym kliknięciem odblokować Dream. No i się zaczęło.</p>
<p>Zainstalowałem wtedy jakiegoś CyanogenMod-a 4-coś. Przez jakiś czas wystarczało mi instalowanie kolejnych aktualizacji CM4, potem  CM5 i wreszcie CM6. Jakoś w wakacje zwróciłem uwagę na inne ROMy pojawiające się na <a title="XDA-Developers" href="http://forum.xda-developers.com/forumdisplay.php?f=448" target="_blank">forum XDA-Developers</a>. Początkowo traktowałem je identycznie jak CMy czyli wipe i flash.  Zainwestowałem nawet w <a title="Titanium Backup" href="http://matrixrewriter.com/android/" target="_blank">Titanium Backup</a>, żeby nie tracić danych. Raz mnie jednak podkusiło, że zajrzeć do środka zipa. Wydaje mi się, że to był jakiś SpeedTeam Froyo. Numerka nie pamiętam, za to głównym hmmm&#8230; &#8222;developerem&#8221; był (sympatyczny skąd inąd) Jacob Chu-Hing bardziej znany jako<a title="Twitter" href="http://twitter.com/XxKOLOHExX" target="_blank"> XxKOLOHExX</a>.</p>
<p>Developement w wykonaniu SpeedTeam polegał na podmianie paru grafik i xml-i (tzw theming) i dorzuceniu (nieco na oślep) paru cudownych skryptów do /system/etc/init.d. Dodatki typu &#8222;apps2sdext-out-of-the-box!&#8221; robione były poprzez wywoływanie (przy każdym starcie telefonu) bardzo popularnego (i przy okazji bardzo dobrze napisanego) skryptu <a title="Twitter" href="http://twitter.com/Firer4t">Firerata</a> o nazwie All in One Patch. Ten właśnie fakt sprawił, że zacząłem się bawić w modyfikowanie ROMów. Pierwsze kroki robiłem w znanym sobie terenie skryptów shellowych i ogólnie w tej części Androida, która leży na samiusieńkim spodzie i jest po prostu, przyciętym na miarę, Linuxem.</p>
<p>Parę tygodni później miałem na dysku komplet źródeł CyanogenModa a na telefonie samodzielnie skompilowany ROM. Znowu parę tygodni minęło i delikatnie zacząłem gmerać w kodzie. Pierwszym zupełnie samodzielnym dziełkiem było dołożenie możliwości kontrolowania swapu do CyanogenMod Settings. Trywialna modyfikacja javowego kodu i jeden czy dwa skrypty w shellu. Nic skomplikowanego. Dołożenie obsługi CPUFreq było trochę bardziej pracochłonne (i nie obyło się bez pomocy Joëla Bourquarda &#8211; autora Titanium Backup) ale się udało <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>W międzyczasie SpeedTeam zawiesił działalność a XxKOLOHExX przeszedł do Biff Squad. Wersja 2.0 BiffModa była w całości oparta o moją kompilację i pewnie byłaby sukcesem ale <a title="Twitter" href="http://twitter.com/#!/Royalknight6190" target="_blank">RoyalKnight</a> zdecydował się na inny kernel i trochę niefortunnie wkleił go w przygotowaną przeze mnie paczkę. Zdarza się a ja się czegoś nowego nauczyłem <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Potem był BiffMod 2.1 przygotowany przez <a title="Twitter" href="http://twitter.com/xdaterry" target="_blank">Ezterry&#8217;ego</a>, z jego kernelem i moimi dodatkami. Mogłem spocząć na laurach i grzecznie czekać na Gingerbreada.</p>
<p>I pewnie bym spoczął gdyby nie twitterowa rozmowa najpierw z Cyanogenem a potem Fireratem. Jakoś tak wyszło, że razem z Fireratem zajęliśmy się tzw natywnym apps2sdext. Do tej pory możliwość instalacji aplikacji na partycji Ext2/3/4 karty była realizowana przy pomocy skryptów shellowych i polegała na oszukiwaniu systemu co do faktycznej lokalizacji plików apk. Gdybym miał chociaż blade pojęcie jak skomplikowany to projekt pewnie bym sie nigdy nie odważył za to zabrać. Prace nad wbudowanym w system apps2sdext trwały dobrze ponad 2 miesiące. Choć rozwiązań kolejnych problemów poszukiwaliśmy wspólnie, to jednak gross rozwiązań znajdował Firerat. Wiele razy zdarzało się, że dłubaliśmy nad jakimś kawałkiem kodu i już miałem rozwiązanie problemu na końcu języka gdy Firerat zaćwierkał &#8222;Ok, I made it&#8221;. Nigdy go nie spytałem czy kiedyś przydarzyła mu się podobna sytuacja ale ze mną w roli głównej. Mam nadzieję, że tak <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  jest w tym wszystkim ładnych parę linijek mojego autorstwa.</p>
<p>No dobra ale co to ma wspólnego z tytułem wpisu? Ermm&#8230; zdradzę pewną tajemnicę&#8230; Nie znam Javy. Serio! Nie znam Javy. Nigdy wcześniej nie używałem tego języka (jestem przecież adminem a nie programistą!). Tymczasem całe to apps2sdext wymagało grzebania w jednym z kluczowych komponentów (framework.jar) <a title="GitHub" href="https://github.com/NameLessJedi/android_frameworks_base/tree/master" target="_blank">napisanym w całości w Javie</a>. Dziesiątki razy oglądałem kawałek kodu, dopisywałem kawałek kodu i bez przerwy odpytywałem Google na okoliczność składni tego czy innego polecenia Javy. Sprawdzałem dostępne funkcje, metody i temu podobne sprawy. O, właśnie! Metody! Dodatkowym smaczkiem jest to, że nigdy wcześniej nie pisałem niczego w jakimkolwiek obiektowo zorientowanym języku programowania <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Największym zaskoczeniem dla mnie jest to, że #LearningJavaUsingGoogle działa! <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  Nie wierzysz? To zerknij na</p>
<ul>
<li><a title="GitWeb" href="http://www.nl-j.org/gitweb/" target="_blank">Zupełnie prywatne repo NLJota <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </a></li>
<li><a href="https://github.com/NameLessJedi/">Coś jak oficjalne repo NLJota <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </a></li>
</ul>
<p>Miłego haczenia Androida!!</p>
<p style="text-align: right;">NameLess<br />
the Jedi</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/nlj/learning-java-using-google/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Miałem siedzieć cicho</title>
		<link>http://www.nl-j.org/bezimiennym-okiem/mialem-siedziec-cicho/</link>
		<comments>http://www.nl-j.org/bezimiennym-okiem/mialem-siedziec-cicho/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 13:07:22 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[BezImiennym okiem]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=172</guid>
		<description><![CDATA[Na prawdę chciałem siedzieć w kącie i pozwolić opaść wszelkim emocjom. Wpis o tragedii w Smoleńsku próbuję napisać od soboty ale mam zbyt duży mętlik w głowie by napisać więcej niż jedno zdanie, które ma jakiś sens. Jedyne na co było mnie stać, to zmiana szablonu na czarny.Tekstów, mniej lub bardziej nawiązujących do tego wydarzenia, <a href='http://www.nl-j.org/bezimiennym-okiem/mialem-siedziec-cicho/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Na prawdę chciałem siedzieć w kącie i pozwolić opaść wszelkim emocjom. Wpis o tragedii w Smoleńsku próbuję napisać od soboty ale mam zbyt duży mętlik w głowie by napisać więcej niż jedno zdanie, które ma jakiś sens. Jedyne na co było mnie stać, to zmiana szablonu na czarny.Tekstów, mniej lub bardziej nawiązujących do tego wydarzenia, czytam jednak sporo. Część z nich szarpie mną zdrowo budząc albo niesmak albo zdziwienie, wiele budzi we mnie żal po <strong>ludziach</strong>, którzy odeszli.<br />
Sam nie wiem czemu akurat <a href="http://www.azraelk.eu/2010/04/16/absurd-i-polityka-funeralna/" target="_blank">tekst Azraela</a> sprowokował mnie do napisania komentarza. Najpierw zacząłem pisać bezpośrednio na jego blogu ale zaczęło mi wychodzić długawe więc:<span id="more-172"></span><em><br />
</em></p>
<p><em>Mimo, że cenię sobie Twoje pisanie uważam mam do Ciebie pewien żal. Uważam, że powinno się uszanować żałobę narodową, żal rodzin, samych zmarłych i powagę ich urzędów. Na prawdę mogłeś się powstrzymać od pisania choć przez tych parę dni.<br />
Nie potrzeba nam dodatkowego jątrzenia. Nie potrzeba dorzucania drewna do polskiego piekiełka. Nawet przez chwilę nie miałem wątpliwości, że polskie życie polityczne zmieni się o jotę po 10 kwietnia. Miałem nadzieję, że przynajmniej czas żałoby spędzimy wszyscy razem, ponad politycznymi podziałami. Bałem się zgrzytów w postaci mniej lub bardziej raptownych ruchów stricte politycznych pełniącego obowiązki Prezydenta RP.<br />
W zamian ktoś zafundował nam aferę z Wawelem. Nie jestem z niej jakoś specjalnie dumny, wydaje mi się, że lepiej by było śp Prezydentowi Lechowi Kaczyńskiemu w Warszawie. Szanuję jednak wolę rodziny i nie biegam z transparentami. Szanuję tą decyzję nawet jeśli zarodek tej myśli pojawił się w głowach polityków. Ostatecznie zdecydowała jednak rodzina (mam taką nadzieję w każdym bądź razie). Mniej lub bardziej ostentacyjne demonstracje, tak przeciw pochówkowi na Wawelu jak i za, są wybitnie nie na miejscu. Choć na parę dni powstrzymajmy się od politykowania i politykierstwa. <strong>MY</strong>. Ja. Ty. Nawet jeśli ONI chcą się teraz bawić w politykę, to nie znaczy, że MY też musimy. Że odpowiedź musi być tu i teraz. Na wskazywanie palcami, tych co chcą zbić kapitał na tej katastrofie lotniczej będzie jeszcze mnóstwo czasu. Cała kampania prezydencka a i później pewnie też.</em></p>
<p><em>Nie kłóćmy się nad trumną. Żadną z tych 96.</em></p>
<p><em>Popatrzmy przez chwilę na Jarosława Kaczyńskiego. Jak to jest stracić bliźniaka? Jak to jest stracić swoje drugie ja, żywe odbicie. </em></p>
<p><em>Jak to jest stracić męża, żonę, ojca, matkę, córkę i syna. Choć do pogrzebu zobaczmy ludzi, w tych co umarli i tych co zostali przez nich osieroceni.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/bezimiennym-okiem/mialem-siedziec-cicho/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ech&#8230;</title>
		<link>http://www.nl-j.org/nlj/ech-2/</link>
		<comments>http://www.nl-j.org/nlj/ech-2/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 09:52:57 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[NLJ]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=162</guid>
		<description><![CDATA[Ci, co zaglądają tu częściej niż raz na rok, być może zauważyli, że nagle zniknęło parę wpisów (dosłownie parę!) z zeszłego roku. Powód jest prosty: admin z 15-letnim stażem zignorował kwestię backupów =o( &#8222;Zignorował&#8221; to może ciut za mocne słowo ale efekt jest właściwie identyczny. Backupy się robiły a i owszem. Nawet automat je robił, <a href='http://www.nl-j.org/nlj/ech-2/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Ci, co zaglądają tu częściej niż raz na rok, być może zauważyli, że nagle zniknęło parę wpisów (dosłownie parę!) z zeszłego roku. Powód jest prosty: admin z 15-letnim stażem zignorował kwestię backupów =o( &#8222;Zignorował&#8221; to może ciut za mocne słowo ale efekt jest właściwie identyczny. Backupy się robiły a i owszem. Nawet automat je robił, żebym głowy sobie nie zaprzątał&#8230; Ba! Automat nawet przerzucał je na serwerek do domu! Tyle, że akurat ta część automatu się wzięła i popsuła. Miałem ją naprawić. Proszę zwróćcie uwagę na &#8222;<span style="text-decoration: underline;">miałem</span>&#8222;. <span style="text-decoration: underline;">Miałem</span> na to z pół roku ale jakoś się nie zdarzyło naprawić. Backupy więc były tylko lokalnie. Leżały sobie grzecznie w /var/backups i czekały na koniec świata. No i koniec świata nadszedł nieco wcześniej niż się spodziewałem (tzn jakoś tak w styczniu 2010 czy coś a miał być w 2012 i jak tu wierzyć Majom, hę?). Jeden z dysków (fakt, że wysłużony co nieco) sypnął błędami a następnie odszedł do Krainy Wiecznego Przepływu Informacji. Zabrał ze sobą cały /var.</p>
<p>Przyznam się, że jak już postawiłem mój flagowy serwerek na nogi (z nowym dyskiem!!) poważnie rozważałem nie reaktywowanie tego bloga. Nie chciało mi się zaczynać od zera. Znowu. Życie jednak trochę zdecydowało za mnie. Blog, oprócz rzadkich okazji do wywnętrzania, stanowił również mój serwer autoryzacyjny OpenID. Przypomniał mi o tym <a class="aligncenter" style="display: inline !important;" title="Portal miłośników filmów" href="http://filmaster.pl/" target="_blank">Filmaster</a>. Ciasteczko autoryzacyjne zakończyło żywot i nie mogłem się już zalogować. Odtworzyłem co mogłem (czyli stan z czerwca 2009) i dalej nie mogłem się zalogować&#8230; Ech.. Dobrze, że <a title="^michuk na Blip.pl" href="http://michuk.blip.pl" target="_blank">Michuk</a> pomógł. Blog jednak już powstał z martwych więc pewnie sobie zostanie.</p>
<p>No to do poczytania! =o)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/nlj/ech-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bliskość Bluetootha</title>
		<link>http://www.nl-j.org/nlj/geek/bliskosc-bluetootha/</link>
		<comments>http://www.nl-j.org/nlj/geek/bliskosc-bluetootha/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 14:49:26 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[naGEEKowo]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=158</guid>
		<description><![CDATA[W moim własnym mniemaniu jestem geekiem czy też nerdem. Jedną z cech idących w parze z geekowatością jest gadżetomania. Uwielbiam gadżety. Najbardziej te realne ale czasem trafia się taki bardziej wirtualny. Pierwszy raz zwrócił moją uwagę w postaci maila na liście debian-mentors albo debian-devel. W pierwszej chwili pomyślałem, że to trochę głupie. Pierwsze wrażenie jednak <a href='http://www.nl-j.org/nlj/geek/bliskosc-bluetootha/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>W moim własnym mniemaniu jestem <a href="http://pl.wiktionary.org/wiki/geek" target="_blank">geekiem</a> czy też <a href="http://pl.wiktionary.org/wiki/nerd" target="_blank">nerdem</a>. Jedną z cech idących w parze z geekowatością jest gadżetomania. Uwielbiam gadżety. Najbardziej te realne ale czasem trafia się taki bardziej wirtualny. Pierwszy raz zwrócił moją uwagę w postaci maila na liście debian-mentors albo debian-devel. W pierwszej chwili pomyślałem, że to trochę głupie. Pierwsze wrażenie jednak mnie zwiodło.<span id="more-158"></span>Gadżet zwie się <a href="http://blueproximity.sourceforge.net/" target="_blank">blueproximity</a>. Idea jego działania zasadza się na sprawdzaniu dystansu między dwoma urządzeniami  BT. Jednym z nich jest komputer, drugim &#8211; na przykład telefon komórkowy. Po co to? Na przykład można automatycznie zablokować sesję w komputerze, w chwili gdy telefon komórkowy oddali się od komputera. Dla kogoś patrzącego na to z boku wygląda jakby komputer wykrywał (nie)obecność właściciela. Sprytne, nie?</p>
<p>Od razu podkreślę jedną rzecz. <strong>Bezpieczeństwo komputera może na tym ucierpieć.</strong> W domyślnej konfiguracji <a href="http://blueproximity.sourceforge.net/" target="_blank">blueproximity</a> nie tylko blokuje ekran, gdy się oddalisz, ale również odblokowuje sesję <strong>bez pytania o hasło</strong>, gdy się pojawisz w pobliżu.  Podobnie jak przy innych technikach sieciowych, tak i tu, można się, w miarę łatwo, podszyć pod telefon. Dobrze jest więc wyłączyć widoczność urządzenia w menu telefonu.</p>
<p>Sam programik jest banalny tak w obsłudze jak i w konfiguracji. Nie podam swoich ustawień, bo dla każdego zestawu nadajnik &#8211; odbiornik będą inne. Dojście do nich zajęło mi nie więcej jak 20 minut i trochę kręcenia się po pokoju =o)  Domyślnie blueproximity kontroluje gnome-screensaver, nic nie stoi na przeszkodzie by uruchomić dowolny inny programik czy skrypt. Parę przykładów można znaleźć pod koniec <a href="http://ubuntuforums.org/showpost.php?p=4368425&amp;postcount=1" target="_blank">tego</a> postu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/nlj/geek/bliskosc-bluetootha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nadchodzi taki dzień</title>
		<link>http://www.nl-j.org/nlj/nadchodzi-taki-dzien/</link>
		<comments>http://www.nl-j.org/nlj/nadchodzi-taki-dzien/#comments</comments>
		<pubDate>Fri, 08 May 2009 22:06:09 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[NLJ]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=149</guid>
		<description><![CDATA[Nadchodzi taki dzień, gdy trzeba powiedzieć sobie jasno: To koniec! Nie ma już wspólnej przyszłości.Trzeba się rozstać. Z żalem, bólem serca ale trzeba. Zaczyna się od drobiazgów. Nic szczególnego ale najpierw uwiera, potem drażni aż w końcu wkurza niemiłosiernie. Oczywiście wspólna przeszłość jest bardzo ważna, nie można jej odrzucić. Nie można jednak łudzić się, że <a href='http://www.nl-j.org/nlj/nadchodzi-taki-dzien/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Nadchodzi taki dzień, gdy trzeba powiedzieć sobie jasno: To koniec! Nie ma już wspólnej przyszłości.Trzeba się rozstać. Z żalem, bólem serca ale trzeba. Zaczyna się od drobiazgów. Nic szczególnego ale najpierw uwiera, potem drażni aż w końcu wkurza niemiłosiernie. Oczywiście wspólna przeszłość jest bardzo ważna, nie można jej odrzucić. Nie można jednak łudzić się, że znów będzie tak jak kiedyś. Nie będzie. Jak juz się to zaakceptuje, kolejny krok jest prosty i logiczny. Jedyny możliwy. Chyba lepiej rozstać się spokojnie niż trzasnąć drzwiami i pójść.</p>
<p>Nie twierdzę, że to łatwe.</p>
<p>Nie chcę się tłumaczyć.</p>
<p>Po prostu nadszedł taki dzień. <span id="more-149"></span></p>
<p>Dzień pożegnania ze starą przyjaciółką.</p>
<p><a href="http://nlj.plukwa.net/wp-content/uploads/2009/05/auta.jpg"><img class="size-full wp-image-153" title="Auta" src="http://nlj.plukwa.net/wp-content/uploads/2009/05/auta.jpg" alt="Auta" width="800" height="490" /></a></p>
<p>Toyota Carina II (wyżej) była ze mną przez ostatnie 10 lat. W zeszłym roku stała sie pełnoletnia, w tym roku licznik pokazał 300 tys km. Niby autko swoje już przeszło ale było całkiem dziarskie. Z rozrzewnieniem patrzę na powyższe zdjęcie. Lubię tą Toyotę. To nie pierwsze moje auto ale pierwsze, które darzę taką sympatią. Taka przytulanka dla dorosłego faceta <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Najgorsze w tym, że z przytulanek się wyrasta a ja z Toyoty nie wyrosłem tylko musiałem się z nią rozstać. Zastąpić ją. Miała być następna Toyota. Myślałem też o FreeLanderze. Koniec końców zwyciężyła pewność źródła pochodzenia samochodu a nie marka czy model (oczywisty współczynnik ceny pomijam). Srebrne auto ma teraz dokładnie tyle samo lat co Toyota, gdy ją kupowałem. Czy znajomość z Passatem też potrwa 10 lat? Czas pokaże&#8230; Na razie cieszę się klimą, przestrzenią i lekkością działania z domieszką niemieckiej toporności. Do zobaczenia na drodze (i do poczytania za czas jakiś <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/nlj/nadchodzi-taki-dzien/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Yes! The Gold is mine!</title>
		<link>http://www.nl-j.org/d-jak-dom/yes-the-gold-is-mine/</link>
		<comments>http://www.nl-j.org/d-jak-dom/yes-the-gold-is-mine/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 11:26:35 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[D jak Dom]]></category>
		<category><![CDATA[NLJ]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=143</guid>
		<description><![CDATA[Jak mawiał Pawlak (albo Kargul ale raczej ten pierwszy) &#8222;nadejszła wiekopomna chwila&#8230;&#8221;. Dla nas nadejszła, nieco znienacka, wczoraj w okolicach godziny 13.O tej porze właśnie podpisaliśmy akt notarialny sprzedaży mieszkania. Mieszkaliśmy tam 8 lat. Trochę żal się rozstawać ale nikt z nas nie chciałby tam wrócić. Ot, jest tam teraz za głośno, za tłoczno i <a href='http://www.nl-j.org/d-jak-dom/yes-the-gold-is-mine/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Jak mawiał Pawlak (albo Kargul ale raczej ten pierwszy) &#8222;nadejszła wiekopomna chwila&#8230;&#8221;. Dla nas nadejszła, nieco znienacka, wczoraj w okolicach godziny 13.<span id="more-143"></span>O tej porze właśnie podpisaliśmy akt notarialny sprzedaży mieszkania. Mieszkaliśmy tam 8 lat. Trochę żal się rozstawać ale nikt z nas nie chciałby tam wrócić. Ot, jest tam teraz za głośno, za tłoczno i za ciasno. Do dobrego szybko się człowiek przyzwyczaja. Nasze mieszkanko przysłuży się teraz w nieco inny sposób. Zrobimy drugą łazienkę, elewację i pewnie część drobiazgów typu żyrandole, karnisz, firanki, szklanki&#8230; A nie szklanki już mamy <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>PS.</p>
<p>Tytuł wpisu to okrzyk kończący wygraną rozgrywkę w mojej (nadal) ulubionej strzelance sieciowej BattleField: Bad Company. Yes! The Gold is mine! Margeritas and Malibus boys! <img src='http://www.nl-j.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<dl id="attachment_147" class="wp-caption aligncenter" style="width: 863px;">
<dt class="wp-caption-dt"><img class="size-full wp-image-147" title="goldismine" src="http://nlj.plukwa.net/wp-content/uploads/2009/04/goldismine.jpg" alt="Attackers Won!" width="853" height="480" /></dt>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/d-jak-dom/yes-the-gold-is-mine/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Gold Crate 1 taken!</title>
		<link>http://www.nl-j.org/d-jak-dom/gold-crate-1-taken/</link>
		<comments>http://www.nl-j.org/d-jak-dom/gold-crate-1-taken/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 21:00:48 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[D jak Dom]]></category>
		<category><![CDATA[NLJ]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=140</guid>
		<description><![CDATA[Tytuł tego wpisu wymyśliłem dobrych parę miesięcy temu. Tylko okazji nie było. Jak wymyślałem tytuł, to byłem pewny, że będę miał świetny humor i generalnie będę prawie w siódmym niebie.O co chodzi? W gruncie rzeczy o nic wielkiego. Od ponad pół roku próbujemy sprzedać mieszkanie. Parę razy byliśmy blisko podpisania umowy przedwstępnej ale&#8230; Właśnie. Byliśmy <a href='http://www.nl-j.org/d-jak-dom/gold-crate-1-taken/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Tytuł tego wpisu wymyśliłem dobrych parę miesięcy temu. Tylko okazji nie było. Jak wymyślałem tytuł, to byłem pewny, że będę miał świetny humor i generalnie będę prawie w siódmym niebie.<span id="more-140"></span>O co chodzi? W gruncie rzeczy o nic wielkiego. Od ponad pół roku próbujemy sprzedać mieszkanie. Parę razy byliśmy blisko podpisania umowy przedwstępnej ale&#8230; Właśnie. Byliśmy blisko. Tylko blisko. Raz gość się wystraszył, że nie wyrobi się z załatwieniem kredytu, raz się starsze małżeństwo pokłóciło (sic!). Ot, wymówki. Jedne bardziej wiarygodne, inne mniej. Tym razem jednak mam już w ręku podpisaną umowę przedwstępną, zaliczkę mam na koncie i widzę determinację kupujących. Nic tylko się cieszyć. I pewnie by tak było, gdyby cieniem nie kładły się wcześniejsze &#8222;przygody&#8221; ze sprzedażą. Umowa przedwstępna nie gwarantuje zakupu. Na zadatek (choć nie mały) zawsze można machnąć ręką. Ten głupi lęk, nie pozwala się cieszyć. A szkoda. Jedyną ekstrawagancją z okazji umowy była wizyta w komisie, po drodze do domu. Ech&#8230; I tak muszę poczekać.</p>
<p>Jeszcze tylko wyjaśnienie tytułu. Ostanimi czasy namiętnie (co nie znaczy, że często ;o) ) grywam w Battlefield: Bad Company na Xbox Live. Sieciowa strzelanka w realiach współczesnego pola walki. Super rzecz. Gorąco polecam. Jednym z trybów rozgrywki jest &#8222;Gold Crates&#8221;. Dwie drużyny walczą ze sobą o skrzynie ze złotem. Jedna z nich atakuje i próbuje zdobyć skrzynie, druga &#8211; broni tychże skrzyń. Każda mapka składa się z 3 -4 etapów, a każdy etap to zdobycie dwóch skrzyń. Po zdobyciu jednej z takich skrzyń, w &#8222;radiu&#8221; słychać zadowolony głos obwieszczający &#8222;Gold Crate One taken!&#8221;. Połowa etapu. Ani łatwiejsza, ani trudniejsza. Po prostu: połowa.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/d-jak-dom/gold-crate-1-taken/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trwałość</title>
		<link>http://www.nl-j.org/bezimiennym-okiem/trwalosc/</link>
		<comments>http://www.nl-j.org/bezimiennym-okiem/trwalosc/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 11:31:40 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[BezImiennym okiem]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[zabawne]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=136</guid>
		<description><![CDATA[I to wszystko bez żadnych konserwantów!]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-137" title="Trwalosc" src="http://nlj.plukwa.net/wp-content/uploads/2009/02/trwalosc-300x225.jpg" alt="Trwalosc" width="300" height="225" />I to wszystko bez żadnych konserwantów!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/bezimiennym-okiem/trwalosc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jakość, mości Panowie! Jakość!</title>
		<link>http://www.nl-j.org/bezimiennym-okiem/jakosc-mosci-panowie-jakosc/</link>
		<comments>http://www.nl-j.org/bezimiennym-okiem/jakosc-mosci-panowie-jakosc/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 06:05:05 +0000</pubDate>
		<dc:creator>NameLess, the Jedi</dc:creator>
				<category><![CDATA[BezImiennym okiem]]></category>
		<category><![CDATA[filmy]]></category>
		<category><![CDATA[napisy]]></category>
		<category><![CDATA[seriale]]></category>
		<category><![CDATA[subs]]></category>
		<category><![CDATA[tłumaczenia]]></category>

		<guid isPermaLink="false">http://nlj.plukwa.net/?p=126</guid>
		<description><![CDATA[Jak napisałem na stronie O &#8230; lubię oglądać filmy. Od dłuższego czasu oglądam znacznie więcej seriali niż filmów fabularnych (o tym też już pisałem ale może nie zaszkodzi powtórzyć).  Właściwie wszystkie te seriale są anglojęzyczne (wyjątkiem był &#8222;Teraz albo nigdy&#8221;). Sam mogę się pochwalić całkiem niezłą znajomością angielszczyzny i, w wielu przypadkach, mógłbym oglądąć filmy <a href='http://www.nl-j.org/bezimiennym-okiem/jakosc-mosci-panowie-jakosc/' class='excerpt-more'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Jak napisałem na stronie <a title="O ..." href="http://nlj.plukwa.net/about/" target="_blank">O &#8230;</a> lubię oglądać filmy. Od dłuższego czasu oglądam znacznie więcej seriali niż filmów fabularnych (o tym też już pisałem ale może nie zaszkodzi powtórzyć).  Właściwie wszystkie te seriale są anglojęzyczne (wyjątkiem był &#8222;Teraz albo nigdy&#8221;). Sam mogę się pochwalić całkiem niezłą znajomością angielszczyzny i, w wielu przypadkach, mógłbym oglądąć filmy bez napisów albo z angielskimi subami. Nader rzadko jednak oglądam filmy sam. Pozostali domownicy potrzebują napisów.<span id="more-126"></span>Źródłem napisów, niemal od chwili swojego powstania a nawet ciut wcześniej, jest serwis <a href="http://napisy24.pl/" target="_blank">Napisy24.pl</a>. W większości przypadków teksty są naprawdę dobrej jakości. Inna rzecz, że wybierając suby zawsze staram się zwracać uwagę na osobę tłumacza. Z doświadczenia wiem, że tekstom sygnowanym przez Grupę Hatak mogę ufać (jako pierwsi wprowadzili zasadę, że tekst przed wypuszczeniem przechodzi przez korektę). Spośród Hatakowców największym zaufaniem darzę <em>JediAdama</em>. I &#8222;<em>Jedi</em>&#8221; w nicku nie ma tu nic do rzeczy. Gość zna angielski naprawdę dobrze i jego napisy są przeważnie bez zarzutu. Przeważnie &#8211; bo nie myli się tylko ten co nic nie robi. Poza tym w jego przypadku błędy są błyskawicznie naprawiane. Nie zawsze jednak jest tak różowo.</p>
<p>Zaczęło się od 13 odcinka <em>Fringe</em>. Odcinek nawet całkiem &#8211; całkiem. Ale napisy&#8230;. Zaczęło się w pierwszej minucie. Co innego słyszę &#8211; co innego widzę. I nie chodzi mi tu o drobne różnice, mieszczące się w ramach <em>licentia poetica</em>, tylko o coś diametralnie różnego. Przełknąłem i poszedłem dalej. Dalej niestety było gorzej.  Hitem była niespójność i nielogiczność w tłumaczeniu dwóch następujących po sobie kwestiach. Nie przełknąłem. Zacząłem poprawiać. Poprawki (w liczbie około 40) wysłałem autorowi. Przyjął je nawet ciepło. Wytłumaczył się pośpiechem i zbytnim zawierzeniem angielskim napisom. To drugie jeszcze jakoś mogę zrozumieć &#8211; czasem ciężko uwierzyć, że i angielskie napisy nie muszą mieć nic wspólnego z filmem. Gorzej z tym pierwszym. Pośpiech jest wskazany w dwóch przypadkach: łapaniu pcheł i jedzeniu z jednej miski (prawda, Kaszi?). Przy tłumaczeniach, pośpiech prowadzi do błędów. Im bardziej początkujący tłumacz, tym ich więcej. Zaczyna się od bezmyślnego tłumaczenia oryginalnego tekstu, bez zrozumienia i zastanowienia. Potem wyłazi kiepskie rozumienie idiomów (nawet tych popularnych) czy nieznajomość rzadziej używanych zwrotów. A w efekcie otrzymujemy czasem tylko kiepskie a czasem po prostu złe tłumaczenie.</p>
<p>Nie ilość, panowie tłumacze, nie czas a jakość niech świadczy o waszym kunszcie (bądź jego braku). Przyłóżcie się choć trochę do tego co robicie. Nie twórzcie jakichś <em>lotniczych bakterii</em> (airborn bacteria) czy <em>win pleśniowych </em>(botritized wine). Tylko zerknijcie w jakiś <a href="http://ling.pl/" target="_blank">słownik</a> albo chociaż w <a href="http://www.google.pl/" target="_blank">Gógle</a> i sprawdźcie co to za bestia. Nie ma czegoś takiego jak lotnicze bakterie ani wina pleśniowe. Och, nie oczekuję, że tłumacz będzie znał się na bakteriologii czy winach. Nie musi! Wystarczy chwilę pomyśleć, pokombinować by wiedzieć, że wina z nadpleśniałych  winogron to <em>botrytyzowane wina</em> a nie <em>pleśniowe</em>.</p>
<p>Brzmi jak wymądrzanie się? Być może.Nie jestem aktywnym tłumaczem. W ciągu ostatniego roku przetłumaczyłem raptem dwa odcinki<em> <a href="http://www.tv.com/sanctuary/show/22115/summary.html" target="_blank">Sanctuary</a></em>. Pierwszy z nich dlatego, że to co miało być angielskimi napisami było jakimś dziwacznym tekstem anglojęzycznym z wplecionymi włoskimi słowami. Drugi &#8211; bo nikt tego nie zrobił przede mna, a ludzie pozytywnie zareagowali na wcześniejsze tłumaczenie. Każde z tych tłumaczeń zajęło mi minimum 6 godzin pracy. Tłumaczenie odcinka 12 robiłem 3 dni, a odcinka 13 &#8211; dobrze ponad tydzień. Z obu jestem dumny. Wiem, że nie byłbym w stanie przetłumaczyć tego lepiej a pod tym co stworzyłem, bez wstydu mogę się podpisać (co prawda pseudonimem, ale <strong>moim</strong> pseudonimem).</p>
<p>Winnymi całej sytuacji są jednak nie tylko tłumacze. Wcale nie tak dużo mniejszą winę ponoszą odbiorcy. Bezkrytycznie wystawiają najwyższe oceny nie za jakość tłumaczenia a za szybkość pojawienia się w serwisie. I tu muszę się walnąć w piersi. Zahuczało? Nie? A powinno. Nie, nie wystawiam ocen w ciemno. Ja ich w ogóle nie wystawiałem. Pozostawałem bierny. Zaniechałem. Ale z tym już koniec. Zacząłem wytykać błędy, wystawiać oceny, chwalić gdy dobrze i ganić gdy źle. Do tego samego namawiam i Ciebie. Jasne, nie wszyscy muszą znać język obcy na tyle, by móc ocenić je merytorycznie. Niektóre błędy można wyłapać i bez tej znajomości. Czasami nawet podstawy wystarczą by odróżnić słyszane <em>four weeks</em> od przeczytanych <em>czterech miesięcy</em> (napisy pewnego duetu, do jednego z odcinków <a href="http://www.tv.com/eleventh-hour/show/75271/summary.html" target="_blank"><em>Eleventh Hour</em></a> &#8211; to zresztą wyczyny tego duetu, w dużej mierze, sprowokowały ten wpis). Drobiazg? Taki mały błąd w tłumaczeniu? OK. Tylko skąd pewność, że nie ma tam większych baboli? Dlatego proszę o więcej krytycyzmu. Wszystkim nam to wyjdzie tylko na dobre.</p>
<p>I na koniec jeszcze jedna uwaga. W powyższym tekście wyżywam się na tłumaczeniach sieciowych. Robionych przez zapaleńców, poświęcających swój wolny czas. Nie czarujmy się jednak. To, co się dzieje w TV czy na płytach DVD nie odbiega aż tak bardzo.  Czasem odnoszę wrażenie, że dobre tłumaczenia występują tylko w przypadku filmów dla dzieci (na przykład genialny <em>Shrek</em>) albo filmach tłumaczonych ponad 10 lat temu. Rzuca mną jak słyszę na AXN &#8222;profesjonalne&#8221; tłumaczenie <em>Stargate SG-1</em>. Autora powinno się włóczyć koniem a potem resztki odesłać do jakiegoś studium językowego. Z tłumaczeniem przypiętym do piersi. Na postrach. Czy można coś na to zaradzić? Nie wiem. Może&#8230; a może nie&#8230;</p>
<p>Ale&#8230;</p>
<p>może&#8230;</p>
<p>warto próbować (?)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nl-j.org/bezimiennym-okiem/jakosc-mosci-panowie-jakosc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

