<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>Jam Łasica Research Facility</title><link>http://jamlasica.jogger.pl/</link><description>Wpisy z dziennika internetowego Jogger, wspomaganego przez Jabbera</description><lastBuildDate>Mon, 13 Feb 2012 12:36:07 +0100</lastBuildDate><generator>JoggerPL</generator><item><title>Czuję się staro...</title><link>http://jamlasica.jogger.pl/2012/02/07/czuje-sie-staro/</link><description>&lt;p&gt;Ostatnio przeglądałem swoje konta emailowe:&lt;/p&gt;
&lt;pre&gt;
Nazwa konta     *****@interia.pl
Data utworzenia &lt;b&gt;2002&lt;/b&gt;-01-10 12:50:20
&lt;/pre&gt;
&lt;p&gt;Podobnie na sf.net:&lt;/p&gt;
&lt;pre&gt;
Member Since  2002-12-16
&lt;/pre&gt;
&lt;p&gt;Podejrzewam, że mój adres onetowy jest jeszcze starszy, ale dokładnie nie pamiętam... I jeszcze te trzyliterowe loginy w popularnych serwisach ;)&lt;/p&gt;
</description><pubDate>Tue, 07 Feb 2012 19:26:07 +0100</pubDate><guid>http://jamlasica.jogger.pl/2012/02/07/czuje-sie-staro/</guid><category>Ogólne</category></item><item><title>OpenOffice na dużym ekranie</title><link>http://jamlasica.jogger.pl/2012/01/30/openoffice-na-duzym-ekranie/</link><description>&lt;p&gt;Zazwyczaj w filmach widzimy mniej lub bardziej &lt;span style=&quot;border-bottom: 1px dashed red&quot;&gt;wymaiginowany&lt;/span&gt; system operacyjny napisany w fotoszopie. Tym razem w &lt;a href=&quot;http://www.imdb.com/title/tt1692486/&quot;&gt;najnowszej produkcji Polańskiego&lt;/a&gt;, możemy przez kilka sekund podziwiać oprogramowanie open source w akcji ;)&lt;/p&gt;
&lt;p&gt;&amp;lt;ACTA type=&quot;illegal&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6787648229/&quot; title=&quot;OpenOffice.org in Carnage movie by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7146/6787648229_8b7af4f143_z.jpg&quot; width=&quot;640&quot; height=&quot;272&quot; alt=&quot;OpenOffice.org in Carnage movie&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;/ACTA&amp;gt;&lt;/p&gt;
</description><pubDate>Mon, 30 Jan 2012 07:35:40 +0100</pubDate><guid>http://jamlasica.jogger.pl/2012/01/30/openoffice-na-duzym-ekranie/</guid><category>Ogólne</category><category>TV</category><category>UI</category><category>Wyrwane z Kontekstu</category></item><item><title>The Restart Page</title><link>http://jamlasica.jogger.pl/2012/01/10/the-restart-page/</link><description>&lt;p&gt;Strona &lt;a href=&quot;http://www.therestartpage.com/&quot;&gt;www.therestartpage.com&lt;/a&gt; symuluje wszystkie najpopularniejsze UI zamykania i bootowania systemu. Jakby tego było mało, wyświetla ekran BIOS-u i odtwarza dźwięki startowe :) [&lt;a href=&quot;http://www.osnews.com/story/25494/The_Restart_Page&quot;&gt;src&lt;/a&gt;]&lt;/p&gt;
</description><pubDate>Tue, 10 Jan 2012 09:22:23 +0100</pubDate><guid>http://jamlasica.jogger.pl/2012/01/10/the-restart-page/</guid><category>Ogólne</category><category>UI</category></item><item><title>Stara nagrywarka + eject -v</title><link>http://jamlasica.jogger.pl/2012/01/04/stara-nagrywarka-eject-v/</link><description>&lt;pre&gt;
eject: użycie domyślnego urządzenia `cdrom'
eject: nazwa urządzenia to `cdrom'
eject: pełna nazwa to `/media/cdrom'
eject: `/media/cdrom' jest dowiązaniem do `/media/cdrom0'
eject: `/media/cdrom0' nie jest zamontowany
eject: `/dev/cdrom1' może być zamontowany jako `/media/cdrom0'
eject: `/dev/cdrom1' nie jest urządzeniem z wieloma partycjami
eject: próba wysunięcia `/dev/cdrom1' z użyciem polecenia eject
eject: Wykonanie plecenia wysunięcia płyty CD-ROM nie powiodło się
eject: próba wysunięcia `/dev/cdrom1' przy użyciu poleceń SCSI
eject: wysunięcie SCSI nie powiodło się
eject: próba wysunięcia `/dev/cdrom1' przy użyciu polecenia wysunięcia dyskietki
eject: Wykonanie polecenia wysunięcia dyskietki nie powiodło się
eject: próba wysunięcia `/dev/cdrom1' przy użyciu polecenia wyłączania taśmy
eject: Wykonanie polecenia zatrzymania taśmy nie powiodło się
eject: nie mozna wysunąć, ostatni błąd : Niewłaściwy ioctl dla urządzenia
&lt;/pre&gt;
&lt;p&gt;Niestety &lt;code&gt;eject&lt;/code&gt; szybko wyczerpał wszystkie możliwości. Co ciekawe &lt;a href=&quot;http://www.k3b.org/&quot;&gt;K3b&lt;/a&gt; dał radę poprzez menu -&amp;gt; Device -&amp;gt; Eject.&lt;/p&gt;
&lt;p&gt;I na koniec znalazłem ciekawy ficzer, który kontroluje fizyczny przycisk wysuwania tacki: &lt;code&gt;eject -v &lt;b&gt;-i off&lt;/b&gt;&lt;/code&gt;. Pomimo wyświetlenia błędu &quot;ioctl on CDROM_LOCKDOOR: Urządzenie lub zasoby zajęte&quot;, w jakiś magiczny sposób (chwilowo) wszystko się naprawiło :)&lt;/p&gt;
</description><pubDate>Wed, 04 Jan 2012 09:52:27 +0100</pubDate><guid>http://jamlasica.jogger.pl/2012/01/04/stara-nagrywarka-eject-v/</guid><category>Fail</category><category>KDE</category><category>Linux</category><category>Ogólne</category></item><item><title>Do końca świata pozostało:</title><link>http://jamlasica.jogger.pl/2012/01/01/do-konca-swiata-pozostalo/</link><description>&lt;p&gt;11 miesięcy, 19 dni... (and still counting ;)&lt;/p&gt;
</description><pubDate>Sun, 01 Jan 2012 19:02:32 +0100</pubDate><guid>http://jamlasica.jogger.pl/2012/01/01/do-konca-swiata-pozostalo/</guid><category>Ogólne</category><category>Teorie Spiskowe</category><category>Wyrwane z Kontekstu</category><category>X Files</category></item><item><title>Najlepsza wstążka do pakowania prezentów</title><link>http://jamlasica.jogger.pl/2011/12/24/najlepsza-wstazka-do-pakowania-prezentow/</link><description>&lt;p&gt;&lt;a href=&quot;http://www.vinitape.pl/oferta_vt.htm&quot;&gt;Vini-Tape&lt;/a&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Wygląda stylowo&lt;/li&gt;
&lt;li&gt;Łatwo się odkleja i przykleja&lt;/li&gt;
&lt;li&gt;Dostępna w rożnych kolorach na każdą okazję&lt;/li&gt;
&lt;li&gt;Ognioodporna&lt;/li&gt;
&lt;li&gt;Made in Japan&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Sat, 24 Dec 2011 12:51:08 +0100</pubDate><guid>http://jamlasica.jogger.pl/2011/12/24/najlepsza-wstazka-do-pakowania-prezentow/</guid><category>Humor</category><category>Ogólne</category></item><item><title>BSOD4J - klasyczny sposób na wyświetlenie błędu w Javie/Swing</title><link>http://jamlasica.jogger.pl/2011/12/20/bsod4j-klasyczny-sposob-na-wyswietlenie-bledu-w-javie-swing/</link><description>&lt;p&gt;Nie tylko wygląda świetnie, ale również pozwala na łatwe skopiowanie całego komunikatu, w celu dalszego zgłoszenia problemu ;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kdt.users.sourceforge.net/java/bsod4j.zip&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6542572003/&quot; title=&quot;BSOD4J by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm8.staticflickr.com/7172/6542572003_31645f3cd8.jpg&quot; width=&quot;500&quot; height=&quot;351&quot; alt=&quot;BSOD4J&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Tue, 20 Dec 2011 09:45:42 +0100</pubDate><guid>http://jamlasica.jogger.pl/2011/12/20/bsod4j-klasyczny-sposob-na-wyswietlenie-bledu-w-javie-swing/</guid><category>Humor</category><category>Java</category><category>Ogólne</category><category>Programowanie</category></item><item><title>Głupie kartony Tetra Pak ;)</title><link>http://jamlasica.jogger.pl/2011/12/15/glupie-kartony-tetra-pak/</link><description>&lt;p&gt;Gdy człowiekowi bardzo chce się pić, to na dnie opakowania zawsze zostaje małyk (&amp;lt;- kompresja tekstu) soku, którego nie można wylać w normalny sposób.&lt;/p&gt;
</description><pubDate>Thu, 15 Dec 2011 12:07:51 +0100</pubDate><guid>http://jamlasica.jogger.pl/2011/12/15/glupie-kartony-tetra-pak/</guid><category>Fail</category><category>Ogólne</category><category>Teorie Spiskowe</category></item><item><title>CSI: OpenJDK</title><link>http://jamlasica.jogger.pl/2011/12/08/csi-openjdk/</link><description>&lt;p&gt;Fragment &lt;a href=&quot;http://hg.openjdk.java.net/jdk8/tl/jdk/rev/387190e1f782&quot;&gt;patcha&lt;/a&gt; OpenJDK:&lt;/p&gt;
&lt;pre&gt;
private String toNetscapeHeaderString() {
&lt;span style=&quot;color:red&quot;&gt;- StringBuilder sb = new StringBuilder();
-
- sb.append(getName() + &quot;=&quot; + getValue());
-
- return sb.toString();&lt;/span&gt;
&lt;span style=&quot;color:green&quot;&gt;+ return getName() + &quot;=&quot; + getValue();&lt;/span&gt;
}
&lt;/pre&gt;
&lt;p&gt;Użycie &lt;code&gt;StringBuildera&lt;/code&gt; wskazuje na średnio nowy kod. Może wcześniej jeszcze coś tam było, co uzasadniałoby użycie powyższej &lt;em&gt;optymalizacji&lt;/em&gt;, tylko nowy programista wolał raczej już niczego nie dotykać ;) Na dodatek, jeśli już, to powinno być &lt;code&gt;sb.append(getName()).append('=').append(getValue())&lt;/code&gt;, o czym większość osób zapomina...&lt;/p&gt;
</description><pubDate>Thu, 08 Dec 2011 14:07:18 +0100</pubDate><guid>http://jamlasica.jogger.pl/2011/12/08/csi-openjdk/</guid><category>Java</category><category>Ogólne</category><category>Programowanie</category></item><item><title>Częste aktualizacje na stronie niebezpiecznik.pl ;)</title><link>http://jamlasica.jogger.pl/2011/12/02/czeste-aktualizacje-na-stronie-niebezpiecznik-pl/</link><description>&lt;p&gt;&lt;i&gt;Wczoraj:&lt;/i&gt; Miliony drukarek HP można podpalić. Zdalnie. Przez internet.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Dzisiaj:&lt;/i&gt; Miliony drukarek HP można spalić. Zdalnie. Przez internet.&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Wczoraj:&lt;/i&gt; Pompa wodna zhackowana. Kolejne ataki na SCADA&lt;/p&gt;
&lt;p&gt;&lt;i&gt;Dzisiaj:&lt;/i&gt; Pompa wodna jednak nie została zhackowana&lt;/p&gt;
</description><pubDate>Fri, 02 Dec 2011 12:08:48 +0100</pubDate><guid>http://jamlasica.jogger.pl/2011/12/02/czeste-aktualizacje-na-stronie-niebezpiecznik-pl/</guid><category>Ogólne</category><category>Wyrwane z Kontekstu</category></item><item><title>Ten przycisk na stronie Google zawsze mnie przeraża ;)</title><link>http://jamlasica.jogger.pl/2011/11/01/ten-przycisk-na-stronie-google-zawsze-mnie-przeraza/</link><description>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6303582084/&quot; title=&quot;✝You by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6056/6303582084_0bb568f730_m.jpg&quot; width=&quot;240&quot; height=&quot;101&quot; alt=&quot;✝You&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Tue, 01 Nov 2011 20:35:11 +0100</pubDate><guid>http://jamlasica.jogger.pl/2011/11/01/ten-przycisk-na-stronie-google-zawsze-mnie-przeraza/</guid><category>Humor</category><category>Idiotyzm</category><category>Ogólne</category><category>WWW</category></item><item><title>mcsudo</title><link>http://jamlasica.jogger.pl/2011/10/25/mcsudo/</link><description>&lt;p&gt;Polecenie &lt;code&gt;sudo &lt;a href=&quot;http://en.wikipedia.org/wiki/Midnight_Commander&quot;&gt;mc&lt;/a&gt;&lt;/code&gt; często się przydaje podczas psucia systemu. Oczywiście zawsze zapominam o tym, że program nadal działa z uprawnieniami roota, co niechybnie powoduje różne ciekawe problemy ;) Jeśli też jesteś równie nieroztargniony, to ten jednolinijkowy skrypt jest właśnie dla Ciebie:&lt;/p&gt;
&lt;pre&gt;
sudo mc --colors=&quot;selected=white,red:markselect=yellow,red&quot;
&lt;/pre&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6280129512/&quot; title=&quot;mcsudo by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6099/6280129512_8330707c6f.jpg&quot; width=&quot;329&quot; height=&quot;141&quot; alt=&quot;mcsudo&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Opcja &lt;code&gt;--colors&lt;/code&gt; zmienia domyślne kolory programu. W tym przypadku ustawia kolor wybranego pliku na czerwony. &lt;code&gt;mc --help-color&lt;/code&gt; wyświetla pozostałe opcje.&lt;/p&gt;
&lt;p&gt;Co ciekawe można wybrać całkowicie nowy zestaw kolorów za pomocą opcji &lt;code&gt;-S jakaś_nazwa&lt;/code&gt;, gdzie &lt;code&gt;jakaś_nazwa&lt;/code&gt; to jeden z plików w &lt;code&gt;/usr/share/mc/skins/&lt;/code&gt; (np. &lt;code&gt;mc -S darkfar&lt;/code&gt;).&lt;/p&gt;
</description><pubDate>Tue, 25 Oct 2011 15:54:10 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/10/25/mcsudo/</guid><category>Linux</category><category>Ogólne</category><category>Użyteczność</category></item><item><title>Wynik wyboru</title><link>http://jamlasica.jogger.pl/2011/10/09/wynik-wyboru/</link><description>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/jamieanne/4704792547/&quot; title=&quot;Peanut Butter Milk Chocolate Chip Cookie Cake by jamieanne, on Flickr&quot;&gt;&lt;img src=&quot;http://farm5.static.flickr.com/4012/4704792547_6f9339842f_z.jpg&quot; width=&quot;640&quot; height=&quot;379&quot; alt=&quot;Peanut Butter Milk Chocolate Chip Cookie Cake&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Sun, 09 Oct 2011 19:07:58 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/10/09/wynik-wyboru/</guid><category>Ogólne</category><category>Wyrwane z Kontekstu</category></item><item><title>W końcu ktoś przypomniał sobie również o użytkownikach Linuksa</title><link>http://jamlasica.jogger.pl/2011/09/30/w-koncu-ktos-przypomnial-sobie-rowniez-o-uzytkownikach-linuk/</link><description>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6197702907/&quot; title=&quot;DRM by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6157/6197702907_6a1a2350f7_z.jpg&quot; width=&quot;639&quot; height=&quot;416&quot; alt=&quot;DRM&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A HDTV-LOL odtwarza się bez problemów... ;)&lt;/p&gt;
</description><pubDate>Fri, 30 Sep 2011 17:26:49 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/09/30/w-koncu-ktos-przypomnial-sobie-rowniez-o-uzytkownikach-linuk/</guid><category>Fail</category><category>Linux</category><category>Ogólne</category><category>TV</category></item><item><title>Selection LayerUI</title><link>http://jamlasica.jogger.pl/2011/09/25/selection-layerui/</link><description>&lt;p&gt;&lt;a href=&quot;http://jamlasica.jogger.pl/2011/09/11/browse-layerui/&quot;&gt;W poprzednim odcinku.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tym razem wykorzystałem &lt;a href=&quot;http://download.oracle.com/javase/7/docs/api/javax/swing/JLayer.html&quot;&gt;JLayer&lt;/a&gt; również do rysowania &lt;em&gt;nad&lt;/em&gt; innym komponentem. W efekcie powstała mała klasa, która służy do zaznaczania elementów w dowolnym &lt;code&gt;JTree&lt;/code&gt;. Kod jest dość uniwersalny, więc można łatwo dostosować do własnych potrzeb ;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6177936776/&quot; title=&quot;SelectionLayerUI by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6158/6177936776_6fbf912203_m.jpg&quot; width=&quot;196&quot; height=&quot;133&quot; alt=&quot;SelectionLayerUI&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Poniższe demo prezentuje działanie programu:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kdt.users.sourceforge.net/java/selectionlayer/selectionlayer.jnlp&quot;&gt;Demo (Web Start)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kdt.users.sourceforge.net/java/selectionlayer/selectionlayer.jar&quot;&gt;Program i źródła (2 w 1)&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Sun, 25 Sep 2011 10:03:18 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/09/25/selection-layerui/</guid><category>Java</category><category>Ogólne</category><category>Programowanie</category><category>Techblog</category></item><item><title>Browse LayerUI</title><link>http://jamlasica.jogger.pl/2011/09/11/browse-layerui/</link><description>&lt;p&gt;Różne wyświetlarki plików PDF mają tzw. &quot;tryb przeglądania&quot;, gdzie po kliknięciu myszą w środku tekstu, całą stronę można przesuwać w górę i w dół podobnie jak papier toaletowy.&lt;/p&gt;
&lt;p&gt;Ostatnio postanowiłem (czasem jak tak siąde i myślę...) zrobić coś identycznego przy użyciu nowego komponentu &lt;a href=&quot;http://download.oracle.com/javase/7/docs/api/javax/swing/JLayer.html&quot;&gt;javax.swing.JLayer&lt;/a&gt;. Cały kod ma mniej niż 60 linii, a użycie sprowadza się do &lt;code&gt;new JScrollPane(new JLayer&amp;lt;&amp;gt;(editorPane, new BrowseLayerUI&amp;lt;&amp;gt;()))&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Poniższe demo prezentuje działanie (lub fail) programu - trzeba kliknąć w tekst i poruszać myszą :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kdt.users.sourceforge.net/java/browselayer/browselayer.jnlp&quot;&gt;Demo (Web Start)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://kdt.users.sourceforge.net/java/browselayer/browselayer.jar&quot;&gt;Program i źródła (2 w 1)&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Sun, 11 Sep 2011 20:23:46 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/09/11/browse-layerui/</guid><category>Java</category><category>Ogólne</category><category>Programowanie</category><category>Techblog</category></item><item><title>Java 7 w jednej krótkiej lekcji</title><link>http://jamlasica.jogger.pl/2011/09/09/java-7-w-jednej-krotkiej-lekcji/</link><description>&lt;p&gt;Niech naszym przykładowych kodem będzie ta oto &lt;i&gt;copypasta&lt;/i&gt; (wł. potwór spaghetti). Poniższy program wyświetla nazwy hostów z podanego pliku (funkcjonalność nie jest w tym przypadku istotna). Kod działa jak należy, ale jest &lt;em&gt;trochę&lt;/em&gt; przydługi, a co za tym idzie - również mało czytelny* i niezrozumiały dla studentów ;). Zmieńmy to!&lt;/p&gt;
&lt;h3&gt;Program w Java 6 (przed zmianami)&lt;/h3&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

public class Test1 {

        static void usage() {
                System.out.println(&quot;Usage: &amp;lt;input file&amp;gt;&quot;);
        }

        public static void main(String[] args) {
                if (args.length == 0) {
                        usage();
                        return;
                }
        
                for (String i : args) {
                        if (i.equals(&quot;-help&quot;) || i.equals(&quot;--help&quot;) || i.equals(&quot;-h&quot;)) {
                                usage();
                                return;
                        }
                        else if (i.equals(&quot;-version&quot;) || i.equals(&quot;--version&quot;) || i.equals(&quot;-v&quot;)) {
                                System.out.println(&quot;Version 1.0  Public Domain&quot;);
                                return;
                        }
                        else {
                                if (i.startsWith(&quot;-&quot;)) {
                                        System.out.println(&quot;Unknown argument: &quot; + i);
                                        System.exit(1);
                                }
                        }
                }
                
                BufferedReader reader = null;
                File file = new File(args[0]);
                try {
                        reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), &quot;UTF8&quot;));
                        String line;
                        while ((line = reader.readLine()) != null) {
                                URI uri = new URI(line);
                                System.out.println(uri.getHost());
                        }
                }
                catch (IOException exception) {
                        exception.printStackTrace();
                }
                catch (URISyntaxException exception) {
                        exception.printStackTrace();
                }
                finally {
                        if (reader != null) {
                                try {
                                        reader.close();
                                }
                                catch (IOException exception) {
                                        exception.printStackTrace();
                                }
                        }
                }
        }

}
&lt;/pre&gt;
&lt;p&gt;
&lt;h3&gt;String-in-switch&lt;/h3&gt;
&lt;p&gt;Na rozgrzewkę można zastąpić wszystkie if/else pojedynczym switch/case (&lt;a href=&quot;http://netbeans.org/&quot;&gt;dobre IDE&lt;/a&gt; zrobi to za Ciebie). Switch dla Stringów działa dokładnie tak jak się tego spodziewamy. Jedyne na co trzeba uważać, to &quot;i&quot; z wartością &lt;code&gt;null&lt;/code&gt;, które spowoduje (uwaga: niespodzianka) &lt;code&gt;NullPointerException&lt;/code&gt; :)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;
                for (String i : args) {
                        switch (i) {
                                case &quot;-help&quot;:
                                case &quot;--help&quot;:
                                case &quot;-h&quot;:
                                        usage();
                                        return;
                                case &quot;-version&quot;:
                                case &quot;--version&quot;:
                                case &quot;-v&quot;:
                                        System.out.println(&quot;Version 1.0  Public Domain&quot;);
                                        return;
                                default:
                                        if (i.startsWith(&quot;-&quot;)) {
                                                System.out.println(&quot;Unknown argument: &quot; + i);
                                                System.exit(1);
                                        }
                        }
                }
&lt;/pre&gt;
&lt;p&gt;
&lt;h3&gt;AutoCloseable&lt;/h3&gt;
&lt;p&gt;Zawsze warto pamiętać o zamykaniu wszystkich nieużywanych &quot;streamów&quot; i innych zasobów systemowych. Od wersji 7 wszystkie &lt;a href=&quot;http://download.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html&quot;&gt;autozamykalne&lt;/a&gt; obiekty można umieścić w jednej składni &lt;code&gt;try ()&lt;/code&gt;. Kompilator sam doda niewidzialny blok &quot;finally&quot;, który wywoła odpowiednią metodę &quot;close&quot;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;
                &lt;b style=&quot;color:red&quot;&gt;- BufferedReader reader = null;&lt;/b&gt;
                File file = new File(args[0]);
                &lt;b style=&quot;color:green&quot;&gt;+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), &quot;UTF8&quot;))) {&lt;/b&gt;
                        &lt;b style=&quot;color:red&quot;&gt;- reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), &quot;UTF8&quot;));&lt;/b&gt;
                        String line;
                        while ((line = reader.readLine()) != null) {
                                URI uri = new URI(line);
                                System.out.println(uri.getHost());
                        }
                }
                catch (IOException exception) {
                        exception.printStackTrace();
                }
                catch (URISyntaxException exception) {
                        exception.printStackTrace();
                }
                &lt;b style=&quot;color:red&quot;&gt;- Sio! finally {
                        if (reader != null) {
                                try {
                                        reader.close();
                                }
                                catch (IOException exception) {
                                        exception.printStackTrace();
                                }
                        }
                }&lt;/b&gt;
        }

}
&lt;/pre&gt;
&lt;p&gt;
&lt;h3&gt;Multi-catch&lt;/h3&gt;
&lt;p&gt;Kolejną małą nowością jest możliwość łapania paru różnych wyjątków w jednym bloku. Typy wyjątków rozdziela się &quot;|&quot;. Zawsze to trochę mniej klepania i unikniemy pokusie łapania wszystkich pokemonów ;)&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;
                File file = new File(args[0]);
                try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), &quot;UTF8&quot;))) {
                        String line;
                        while ((line = reader.readLine()) != null) {
                                URI uri = new URI(line);
                                System.out.println(uri.getHost());
                        }
                }
                catch (IOException&lt;b style=&quot;color:green&quot;&gt; | URISyntaxException exception&lt;/b&gt;) {
                        exception.printStackTrace();
                }
                &lt;b style=&quot;color:red&quot;&gt;- catch (URISyntaxException exception) {
                        exception.printStackTrace();
                }&lt;/b&gt;
        }

}
&lt;/pre&gt;
&lt;p&gt;
&lt;h3&gt;Nowe New IO&lt;/h3&gt;
&lt;p&gt;Po zmianach powyższy kod wygląda trochę lepiej, ale obsługa IO nadal ssie... &lt;code&gt;new BufferedReader(new InputStreamReader&lt;/code&gt; wygląda strasznie paskudnie. Na szczęście z pomocą przychodzi &lt;a href=&quot;http://download.java.net/jdk7/docs/api/java/nio/file/package-summary.html&quot;&gt;java.nio.file&lt;/a&gt; z licznymi &lt;a href=&quot;http://download.java.net/jdk7/docs/api/java/nio/file/Files.html&quot;&gt;udogodnieniami&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;
&lt;b style=&quot;color:green&quot;&gt;
+ import java.nio.charset.StandardCharsets;
+ import java.nio.file.Files;
+ import java.nio.file.Path;
+ import java.nio.file.Paths;
&lt;/b&gt;

                &lt;b style=&quot;color:red&quot;&gt;- File file = new File(args[0]);&lt;/b&gt;
                &lt;b style=&quot;color:green&quot;&gt;+ Path file = Paths.get(args[0]);&lt;/b&gt;
                &lt;b style=&quot;color:green&quot;&gt;// Path file = new File(args[0]).toPath(); // wersja dla leniwców&lt;/b&gt;
                try (BufferedReader reader = &lt;b style=&quot;color:green&quot;&gt;Files.newBufferedReader(file, StandardCharsets.UTF_8)&lt;/b&gt;) {
                        String line;
                        while ((line = reader.readLine()) != null) {
                                URI uri = new URI(line);
                                System.out.println(uri.getHost());
                        }
                }
                catch (IOException | URISyntaxException exception) {
                        exception.printStackTrace();
                }
        }

}
&lt;/pre&gt;
&lt;p&gt;
&lt;h3&gt;Files.readAllLines&lt;/h3&gt;
&lt;p&gt;W ramach bonusu, dużo krótsza (i pewnie mniej optymalna przy dużych plikach) metoda wczytywania tekstu:&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;
                Path file = Paths.get(args[0]);
                &lt;b style=&quot;color:red&quot;&gt;- try (BufferedReader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
                        String line;
                        while ((line = reader.readLine()) != null) {&lt;/b&gt;
                &lt;b style=&quot;color: green&quot;&gt;+ try {
                        for (String line : Files.readAllLines(file, StandardCharsets.UTF_8)) {&lt;/b&gt;
                                URI uri = new URI(line);
                                System.out.println(uri.getHost());
                        }
                }
                catch (IOException | URISyntaxException exception) {
                        exception.printStackTrace();
                }
        }

}
&lt;/pre&gt;
&lt;p&gt;
&lt;h3&gt;Program w Java 7&lt;/h3&gt;
&lt;p&gt;Teraz nasz program wygląda pięknie... I na koniec współczujemy wszystkim użytkownikom JDK 1.4, 1.5 i 1.6 :P&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;pre&gt;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.net.URI;
import java.net.URISyntaxException;

public class Test6 {

        static void usage() {
                System.out.println(&quot;Usage: &amp;lt;input file&amp;gt;&quot;);
        }

        public static void main(String[] args) {
                if (args.length == 0) {
                        usage();
                        return;
                }
        
                for (String i : args) {
                        switch (i) {
                                case &quot;-help&quot;:
                                case &quot;--help&quot;:
                                case &quot;-h&quot;:
                                        usage();
                                        return;
                                case &quot;-version&quot;:
                                case &quot;--version&quot;:
                                case &quot;-v&quot;:
                                        System.out.println(&quot;Version 1.0  Public Domain&quot;);
                                        return;
                                default:
                                        if (i.startsWith(&quot;-&quot;)) {
                                                System.out.println(&quot;Unknown argument: &quot; + i);
                                                System.exit(1);
                                        }
                        }
                }
                
                Path file = Paths.get(args[0]);
                try {
                        for (String line : Files.readAllLines(file, StandardCharsets.UTF_8)) {
                                URI uri = new URI(line);
                                System.out.println(uri.getHost());
                        }
                }
                catch (IOException | URISyntaxException exception) {
                        exception.printStackTrace();
                }
        }

}
&lt;/pre&gt;
&lt;p&gt;
&lt;p&gt;*) Nie interesuje nas Scala.&lt;/p&gt;
</description><pubDate>Fri, 09 Sep 2011 23:58:41 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/09/09/java-7-w-jednej-krotkiej-lekcji/</guid><category>Java</category><category>Ogólne</category><category>Programowanie</category><category>Techblog</category></item><item><title>Mały Admin (Lego)</title><link>http://jamlasica.jogger.pl/2011/08/25/maly-admin-lego/</link><description>&lt;p&gt;Wiedziałem, że ten ludzik do czegoś jeszcze się przyda... Trochę więcej &lt;a href=&quot;http://www.flickr.com/photos/hoped/sets/72157627514290320/&quot;&gt;na flickerze&lt;/a&gt; (w tym &lt;a href=&quot;http://www.flickr.com/photos/hoped/sets/72157594578540948/&quot;&gt;Ewolucja IT&lt;/a&gt;) :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6078697021/&quot; title=&quot;Mały Admin #1&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6077/6078697021_4e4bf421b0_z.jpg&quot; width=&quot;640&quot; height=&quot;480&quot; alt=&quot;Mały Admin #1&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6079248446/&quot; title=&quot;Mały Admin #4&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6086/6079248446_c7259e4eec_z.jpg&quot; width=&quot;640&quot; height=&quot;450&quot; alt=&quot;Mały Admin #4&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6079248450/&quot; title=&quot;Mały Admin #5 by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6195/6079248450_7cae15652c_z.jpg&quot; width=&quot;640&quot; height=&quot;480&quot; alt=&quot;Mały Admin #5&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6078719949/&quot; title=&quot;Mały Admin #6 by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6084/6078719949_e13c54f767_z.jpg&quot; width=&quot;640&quot; height=&quot;480&quot; alt=&quot;Mały Admin #6&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6078719953/&quot; title=&quot;Mały Admin #8 by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6190/6078719953_6fc11812a1_z.jpg&quot; width=&quot;640&quot; height=&quot;512&quot; alt=&quot;Mały Admin #8&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Thu, 25 Aug 2011 11:01:40 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/08/25/maly-admin-lego/</guid><category>Humor</category><category>Ogólne</category></item><item><title>Opera + Wine :)</title><link>http://jamlasica.jogger.pl/2011/08/22/opera-wine/</link><description>&lt;blockquote&gt;Opera crashed while trying to show the crash dialogue for a previous crash.&lt;/blockquote&gt;
</description><pubDate>Mon, 22 Aug 2011 19:51:39 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/08/22/opera-wine/</guid><category>Fail</category><category>Linux</category><category>Ogólne</category></item><item><title>Skróty w menu KDE</title><link>http://jamlasica.jogger.pl/2011/08/04/skroty-w-menu-kde/</link><description>&lt;p&gt;Zainstalowałem &lt;a href=&quot;http://netbeans.org/&quot;&gt;NetBeans IDE&lt;/a&gt; 7.0.1. Wpisuję &quot;netb&quot; w menu KDE, a tam siedem różnych skrótów, ale żaden do wersji 7.0.1:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/6006900924/&quot; title=&quot;KDE Menu by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm7.static.flickr.com/6003/6006900924_cb3aaee48b.jpg&quot; width=&quot;305&quot; height=&quot;313&quot; alt=&quot;KDE Menu&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Chyba jedynym działającym sposobem na odświeżenie zawartości menu jest restart całej plazmy, albo po prostu ponowne zalogowanie się do KDE... Może Linus Torvalds miał rację z &lt;a href=&quot;http://www.osnews.com/story/25022/Linus_Torvalds_Not_a_Fan_of_Gnome_3&quot;&gt;przesiadką na Xfce&lt;/a&gt; ;)&lt;/p&gt;
</description><pubDate>Thu, 04 Aug 2011 00:44:36 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/08/04/skroty-w-menu-kde/</guid><category>Fail</category><category>Java</category><category>KDE</category><category>Linux</category><category>Ogólne</category></item><item><title>Nowe opcje linii poleceń w &quot;java&quot; i &quot;javac&quot;</title><link>http://jamlasica.jogger.pl/2011/07/26/nowe-opcje-linii-polecen-w-java-i-javac/</link><description>&lt;p&gt;Krótkie podsumowanie nowych opcji &lt;a href=&quot;http://jdk7.java.net/&quot;&gt;JDK (1.)7.0&lt;/a&gt;-b147 (RC) w porównaniu do wersji (1.)6.0:&lt;/p&gt;
&lt;h3&gt;&lt;a href=&quot;http://download.oracle.com/javase/7/docs/technotes/tools/solaris/java.html&quot;&gt;java&lt;/a&gt; -help&lt;/h3&gt;
&lt;pre&gt;
&lt;span style=&quot;color:red&quot;&gt;-    -jre-restrict-search | -jre-no-restrict-search&lt;/span&gt; // ?
&lt;span style=&quot;color:green&quot;&gt;+    -jre-restrict-search | -no-jre-restrict-search&lt;/span&gt;
                   include/exclude user private JREs in the version search
&lt;/pre&gt;
&lt;h3&gt;&lt;a href=&quot;http://download.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html&quot;&gt;javac&lt;/a&gt; -help&lt;/h3&gt;
&lt;pre&gt;
-Werror                    Terminate compilation if warnings occur
@&amp;lt;filename&amp;gt;                Read options and filenames from file
&lt;/pre&gt;
&lt;h3&gt;java -X&lt;/h3&gt;
&lt;pre&gt;
-Xdiag            show additional diagnostic messages
-XshowSettings    show all settings and continue
-XshowSettings:all
                  show all settings and continue
-XshowSettings:vm show all vm related settings and continue
-XshowSettings:properties
                  show all property settings and continue
-XshowSettings:locale
                  show all locale related settings and continue
&lt;/pre&gt;
&lt;h3&gt;javac -X&lt;/h3&gt;
&lt;p&gt;Osobiście polecam -Xlint:all :)&lt;/p&gt;
&lt;pre&gt;
   -Xlint:{
   all,
   cast,
&lt;span style=&quot;color:green&quot;&gt;+  classfile,&lt;/span&gt;
   deprecation,
&lt;span style=&quot;color:green&quot;&gt;+  dep-ann,&lt;/span&gt;
   divzero,
   empty,
   fallthrough,
   finally,
&lt;span style=&quot;color:green&quot;&gt;+  options,&lt;/span&gt;
   overrides,
   path,
&lt;span style=&quot;color:green&quot;&gt;+  processing,&lt;/span&gt;
&lt;span style=&quot;color:green&quot;&gt;+  rawtypes,&lt;/span&gt;
   serial,
&lt;span style=&quot;color:green&quot;&gt;+  static,&lt;/span&gt;
&lt;span style=&quot;color:green&quot;&gt;+  try,&lt;/span&gt;
   unchecked,
&lt;span style=&quot;color:green&quot;&gt;+  varargs,&lt;/span&gt;
&lt;span style=&quot;color:green&quot;&gt;+  -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files&lt;/span&gt;
&lt;/pre&gt;</description><pubDate>Tue, 26 Jul 2011 15:50:29 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/07/26/nowe-opcje-linii-polecen-w-java-i-javac/</guid><category>Java</category><category>Ogólne</category><category>Programowanie</category></item><item><title>Ostatni raz użyłem aptitude ;)</title><link>http://jamlasica.jogger.pl/2011/07/11/ostatni-raz-uzylem-aptitude/</link><description>&lt;p&gt;Uruchomiłem &quot;sudo aptitude install bchunk&quot; (zamiast zwyczajowego apt-get). Program owszem zainstalował się, ale przy okazji został usunięty Dolphin i jakaś biblioteka. Przyznaję się, że nie czytałem komunikatu i od razu dałem &quot;T&quot;. Ale kto by się spodziewał takich rzeczy po &lt;b&gt;install&lt;/b&gt;...&lt;/p&gt;
</description><pubDate>Mon, 11 Jul 2011 09:29:22 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/07/11/ostatni-raz-uzylem-aptitude/</guid><category>Fail</category><category>Linux</category><category>Ogólne</category></item><item><title>Numeracja wersji przeglądarek 1994-2011 (wykres)</title><link>http://jamlasica.jogger.pl/2011/06/22/numeracja-wersji-przegladarek-1994-2011-wykres/</link><description>&lt;p&gt;Tak trochę nawiązując do wydania Firefoksa 5.0 ;)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/5858705769/&quot; title=&quot;Browser Release History by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3024/5858705769_a727d19564_z.jpg&quot; width=&quot;640&quot; height=&quot;295&quot; alt=&quot;Browser Release History&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Wed, 22 Jun 2011 07:19:48 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/06/22/numeracja-wersji-przegladarek-1994-2011-wykres/</guid><category>Ewolucja Internetu</category><category>Ogólne</category></item><item><title>pb</title><link>http://jamlasica.jogger.pl/2011/06/14/pb/</link><description>&lt;p&gt;Dostałem kolejnego bana przez głupiego PunkBustera. To już drugi ulubiony serwer, z którym mogę się pożegnać.&lt;/p&gt;
&lt;p&gt;A wszystko to przez zły chmod katalogu &quot;pb&quot;... O_o&lt;/p&gt;
</description><pubDate>Tue, 14 Jun 2011 19:16:42 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/06/14/pb/</guid><category>Fail</category><category>Gry</category><category>Idiotyzm</category><category>Ogólne</category></item><item><title>Dawniej grało się łatwiej...</title><link>http://jamlasica.jogger.pl/2011/05/26/dawniej-gralo-sie-latwiej/</link><description>&lt;p&gt;Grasz sobie online. Jesteś w środku akcji. Od jednego celnego strzału zależy życie całej twojej drużyny, aż tu nagle do izby wchodzi jakaś osoba i:&lt;/p&gt;
&lt;pre&gt;
- Hej! Możesz na chwilę &lt;strong&gt;przerwać&lt;/strong&gt; gierkę i mi w czymś pomóc?
- Nie mogę.
- &amp;lt;foch&amp;gt;Dobra, nie to nie.&amp;lt;/foch&amp;gt;
&lt;/pre&gt;
&lt;p&gt;I tak za każdym razem ;)&lt;/p&gt;
</description><pubDate>Thu, 26 May 2011 12:27:40 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/05/26/dawniej-gralo-sie-latwiej/</guid><category>Gry</category><category>Humor</category><category>Ogólne</category><category>Wyrwane z Kontekstu</category></item><item><title>Ill formed</title><link>http://jamlasica.jogger.pl/2011/05/16/ill-formed/</link><description>&lt;p&gt;Super czytelna nazwa klasy, prawda? :)&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/5727472477/&quot; title=&quot;Ill formed by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5188/5727472477_0292cef2bf.jpg&quot; width=&quot;339&quot; height=&quot;55&quot; alt=&quot;Ill formed&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Co ciekawe, w przypadku wodza-który-leczy można &lt;a href=&quot;http://wiadomosci.wp.pl/kat,1356,title,Kim-Dzong-II-jest-w-pelni-formy,wid,10624796,wiadomosc_video.html?ticaid=1c50f&quot;&gt;naprzemiennie używać&lt;/a&gt; dwóch wersji zapisu - Kim Dzong Il lub Kim Dzong II, bo i tak nie widać różnicy ;)&lt;/p&gt;
</description><pubDate>Mon, 16 May 2011 23:27:48 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/05/16/ill-formed/</guid><category>Fail</category><category>Java</category><category>Ogólne</category><category>Wyrwane z Kontekstu</category></item><item><title>Google wie nawet jak zdenerwować użytkownika</title><link>http://jamlasica.jogger.pl/2011/05/09/google-wie-nawet-jak-zdenerwowac-uzytkownika/</link><description>&lt;p&gt;&lt;a href=&quot;http://www.flickr.com/photos/hoped/5703699924/&quot; title=&quot;Google Search by Konrad Twardowski, on Flickr&quot;&gt;&lt;img src=&quot;http://farm6.static.flickr.com/5150/5703699924_cd22022631.jpg&quot; width=&quot;498&quot; height=&quot;126&quot; alt=&quot;Google Search&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</description><pubDate>Mon, 09 May 2011 16:47:25 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/05/09/google-wie-nawet-jak-zdenerwowac-uzytkownika/</guid><category>Fail</category><category>Ogólne</category><category>Użyteczność</category><category>WWW</category><category>Wyrwane z Kontekstu</category></item><item><title>Easter eggs w Ubuntu Natty</title><link>http://jamlasica.jogger.pl/2011/05/02/easter-eggs-w-ubuntu-natty/</link><description>&lt;p&gt;Upgrade z wersji Lucid do Natty jest możliwy, ale najpierw trzeba* zainstalować Mavericka. *) A ja mówię, że nie trzeba.&lt;/p&gt;
&lt;p&gt;apt-get uznał, że musi pobrać dodatkowo 200 MB dokumentacji texa, którego nawet nie miałem i nie używam.&lt;/p&gt;
&lt;p&gt;Podczas upgradu wyświetlają się śmieszne komunikaty, np.: &quot;niemożliwie stara data 1970-01-01 01:00:00&quot;&lt;/p&gt;
&lt;p&gt;Cały proces aktualizacji jest w pełni automatyczny i nie wymaga nadzoru. Wystarczy odpowiedzieć na 12 (policzyłem) pytań w losowych odstępach czasu.&lt;/p&gt;
&lt;p&gt;Easter Egg właściwy: Uruchom &quot;kcmshell4 kdm&quot;, a wszystkie czcionki w KDE zresetują się na &quot;Ubuntu 9&quot;. Aby wyłączyć easter egg, otwórz &quot;~/.kde/share/config /kdeglobals&quot; i dodaj [$i] do każdego klucza z ustawieniami czcionki. Jeśli nie wiesz co to $i, to lepiej tego nie ruszaj :P&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://e-mats.org/2011/04/rsyslogd-stuck-at-eating-100-or-more-cpu-after-upgrading-to-ubuntu-natty-narwhal/&quot;&gt;rsyslogd&lt;/a&gt; próbuje tworzyć miliony komunikatów po uruchomieniu systemu. Użycie poświęconego jajka podobno pomaga.&lt;/p&gt;
&lt;p&gt;Starsze programy i gry korzystają teraz z nowego urządzenia dźwięku /dev/null, który zastępuje wysłużonego /dev/dsp.&lt;/p&gt;
&lt;p&gt;Jak to mówili w &lt;a href=&quot;http://www.zmiennicy.com/&quot;&gt;Zmiennikach&lt;/a&gt;: &quot;w sumie wóz na medal&quot; ;-)&lt;/p&gt;
</description><pubDate>Mon, 02 May 2011 17:18:58 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/05/02/easter-eggs-w-ubuntu-natty/</guid><category>Fail</category><category>Linux</category><category>Ogólne</category></item><item><title>Minusy zamkniętego oprogramowania ;)</title><link>http://jamlasica.jogger.pl/2011/04/13/minusy-zamknietego-oprogramowania/</link><description>&lt;h3&gt;True Combat&lt;/h3&gt;
&lt;blockquote&gt;Jednak pęd jaki nabrały prace nad grą szybko został zatrzymany. Acrid przestał się udzielać i zaniechał kontaktów ze społecznością. Pojawił się około rok później by oznajmić, że stracił wszystkie pliki źródłowe gry, gdy padł mu dysk twardy. Powiedział również, że nie zrobił żadnych kopii zapasowych. [&lt;a href=&quot;http://www.truecombat.pl/q3tc/history&quot;&gt;src&lt;/a&gt;]&lt;/blockquote&gt;
&lt;h3&gt;Supaplex&lt;/h3&gt;
&lt;blockquote&gt;As far as I know, the source code to the game has been lost 'in history'. [&lt;a href=&quot;http://www.elmerproductions.com/sp/faq.html#q_sourcecode&quot;&gt;src&lt;/a&gt;]&lt;/blockquote&gt;
&lt;h3&gt;PowerGG&lt;/h3&gt;
&lt;blockquote&gt;Intensywnie rozwijany w latach 2002-2003, w roku 2004 rozwój został zakończony ze względu na fakt, iż komputer, na którym między innymi znajdowały się źródła projektu, został skradziony. [&lt;a href=&quot;http://pl.wikipedia.org/wiki/PowerGG&quot;&gt;src&lt;/a&gt;]&lt;/blockquote&gt;
&lt;p&gt;Muszę przyznać, że przez lata też mi się pogubiło trochę kodu..&lt;/p&gt;
</description><pubDate>Wed, 13 Apr 2011 16:01:22 +0200</pubDate><guid>http://jamlasica.jogger.pl/2011/04/13/minusy-zamknietego-oprogramowania/</guid><category>Fail</category><category>Ogólne</category><category>Programowanie</category></item><item><title>GNOME 3</title><link>http://jamlasica.jogger.pl/2011/01/27/gnome-3/</link><description>&lt;p&gt;Na &lt;a href=&quot;http://www.gnome3.org/&quot;&gt;tych miniaturkach&lt;/a&gt; wygląda jak &lt;a href=&quot;http://www.kde.org/announcements/4.1/screenshots/desktop.png&quot;&gt;wczesne KDE 4.x&lt;/a&gt; sprzed dwóch lat...&lt;/p&gt;
</description><pubDate>Thu, 27 Jan 2011 15:41:12 +0100</pubDate><guid>http://jamlasica.jogger.pl/2011/01/27/gnome-3/</guid><category>KDE</category><category>Linux</category><category>Ogólne</category></item></channel></rss>
