<?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 13:16:24 +0100</lastBuildDate><generator>JoggerPL</generator><item><title>Czuję się staro...</title><link>http://jamlasica.jogger.pl/2012/02/07/czuje-sie-staro/</link><description>Ostatnio przeglądałem swoje konta emailowe:

Nazwa konta	*****@interia.pl
Data utworzenia	2002-01-10 12:50:20

Podobnie na sf.net:

Member Since  2002-12-16

Podejrzewam, że mój adres onetowy jest jeszcze starszy, ale dokładnie nie pamiętam... I jeszcze te trzyliterowe loginy w popularnych serwisach ;)</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>Zazwyczaj w filmach widzimy mniej lub bardziej wymaiginowany system operacyjny
napisany w fotoszopie. Tym razem w
najnowszej produkcji Polańskiego,
możemy przez kilka sekund podziwiać oprogramowanie open source w akcji ;)



</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>Strona www.therestartpage.com 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 :) [src]</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>
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

Niestety eject szybko wyczerpał wszystkie możliwości.
Co ciekawe K3b dał radę poprzez menu -&gt; Device -&gt; Eject.
I na koniec znalazłem ciekawy ficzer, który kontroluje fizyczny przycisk wysuwania tacki: eject -v -i off.
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 :)
</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>11 miesięcy, 19 dni... (and still counting ;)</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>Vini-Tape

Wygląda stylowo
Łatwo się odkleja i przykleja
Dostępna w rożnych kolorach na każdą okazję
Ognioodporna
Made in Japan
</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>Nie tylko wygląda świetnie, ale również pozwala na łatwe skopiowanie
całego komunikatu, w celu dalszego zgłoszenia problemu ;)

Download


</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>Gdy człowiekowi bardzo chce się pić,
to na dnie opakowania zawsze zostaje małyk (</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>Fragment patcha OpenJDK:

private String toNetscapeHeaderString() {
- StringBuilder sb = new StringBuilder();
-
- sb.append(getName() + &quot;=&quot; + getValue());
-
- return sb.toString();
+ return getName() + &quot;=&quot; + getValue();
}

Użycie StringBuildera wskazuje na średnio nowy kod. Może wcześniej jeszcze coś tam było, co uzasadniałoby użycie powyższej optymalizacji, tylko nowy programista wolał raczej już niczego nie dotykać ;) Na dodatek, jeśli już, to powinno być sb.append(getName()).append('=').append(getValue()), o czym większość osób zapomina...</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>Wczoraj: Miliony drukarek HP można podpalić. Zdalnie. Przez internet.
Dzisiaj: Miliony drukarek HP można spalić. Zdalnie. Przez internet.

Wczoraj: Pompa wodna zhackowana. Kolejne ataki na SCADA
Dzisiaj: Pompa wodna jednak nie została zhackowana</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> </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>Polecenie sudo mc 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:


sudo mc --colors=&quot;selected=white,red:markselect=yellow,red&quot;


Opcja --colors zmienia domyślne kolory programu. W tym przypadku ustawia kolor wybranego pliku na czerwony. mc --help-color wyświetla pozostałe opcje.
Co ciekawe można wybrać całkowicie nowy zestaw kolorów za pomocą opcji -S jakaś_nazwa, gdzie jakaś_nazwa to jeden z plików w /usr/share/mc/skins/ (np. mc -S darkfar).</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> </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>
A HDTV-LOL odtwarza się bez problemów... ;)</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>W poprzednim odcinku.


Tym razem wykorzystałem JLayer
również do rysowania nad innym komponentem. W efekcie powstała
mała klasa, która służy do zaznaczania elementów w dowolnym JTree.
Kod jest dość uniwersalny, więc można łatwo dostosować do własnych potrzeb ;)




Poniższe demo prezentuje działanie programu:

Demo (Web Start)
Program i źródła (2 w 1)</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>
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.



Ostatnio postanowiłem (czasem jak tak siąde i myślę...) zrobić coś identycznego przy użyciu nowego
komponentu javax.swing.JLayer.
Cały kod ma mniej niż 60 linii, a użycie sprowadza się do new JScrollPane(new JLayer(editorPane, new BrowseLayerUI())).


Poniższe demo prezentuje działanie (lub fail) programu - trzeba kliknąć w tekst i poruszać myszą :)

Demo (Web Start)
Program i źródła (2 w 1)</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>Niech naszym przykładowych kodem będzie ta oto copypasta
(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 trochę przydługi, a co za tym idzie - również mało czytelny* i niezrozumiały dla studentów ;). Zmieńmy to!



Program w Java 6 (przed zmianami)


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: &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();
				}
			}
		}
	}

}



String-in-switch
Na rozgrzewkę można zastąpić wszystkie if/else pojedynczym switch/case (dobre IDE 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ą null, które spowoduje (uwaga: niespodzianka) NullPointerException :)


		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);
					}
			}
		}



AutoCloseable

Zawsze warto pamiętać o zamykaniu wszystkich nieużywanych &quot;streamów&quot; i innych zasobów systemowych. Od wersji 7 wszystkie autozamykalne obiekty można umieścić w jednej składni try (). Kompilator sam doda niewidzialny blok &quot;finally&quot;, który wywoła odpowiednią metodę &quot;close&quot;.


		- BufferedReader reader = null;
		File file = new File(args[0]);
		+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file), &quot;UTF8&quot;))) {
			- 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();
		}
		- Sio! finally {
			if (reader != null) {
				try {
					reader.close();
				}
				catch (IOException exception) {
					exception.printStackTrace();
				}
			}
		}
	}

}



Multi-catch
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 ;)


		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 | URISyntaxException exception) {
			exception.printStackTrace();
		}
		- catch (URISyntaxException exception) {
			exception.printStackTrace();
		}
	}

}



Nowe New IO
Po zmianach powyższy kod wygląda trochę lepiej, ale obsługa IO nadal ssie... new BufferedReader(new InputStreamReader wygląda strasznie paskudnie. Na szczęście z pomocą przychodzi java.nio.file z licznymi udogodnieniami.



+ import java.nio.charset.StandardCharsets;
+ import java.nio.file.Files;
+ import java.nio.file.Path;
+ import java.nio.file.Paths;


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

}



Files.readAllLines
W ramach bonusu, dużo krótsza (i pewnie mniej optymalna przy dużych plikach) metoda wczytywania tekstu:


		Path file = Paths.get(args[0]);
		- try (BufferedReader reader = Files.newBufferedReader(file, StandardCharsets.UTF_8)) {
			String line;
			while ((line = reader.readLine()) != null) {
		+ 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();
		}
	}

}



Program w Java 7
Teraz nasz program wygląda pięknie... I na koniec współczujemy wszystkim użytkownikom JDK 1.4, 1.5 i 1.6 :P



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: &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();
		}
	}

}



*) Nie interesuje nas Scala.</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>Wiedziałem, że ten ludzik do czegoś jeszcze się przyda... Trochę więcej na flickerze (w tym Ewolucja IT) :)





</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>
Opera crashed while trying to show the crash dialogue for a previous crash.
</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>Zainstalowałem NetBeans IDE 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:



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
przesiadką na Xfce ;)</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>Krótkie podsumowanie nowych opcji JDK (1.)7.0-b147 (RC) w porównaniu do  wersji (1.)6.0:

java -help

-    -jre-restrict-search | -jre-no-restrict-search // ?
+    -jre-restrict-search | -no-jre-restrict-search
                   include/exclude user private JREs in the version search


javac -help

-Werror                    Terminate compilation if warnings occur
@                Read options and filenames from file


java -X

-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


javac -X
Osobiście polecam -Xlint:all :)

   -Xlint:{
   all,
   cast,
+  classfile,
   deprecation,
+  dep-ann,
   divzero,
   empty,
   fallthrough,
   finally,
+  options,
   overrides,
   path,
+  processing,
+  rawtypes,
   serial,
+  static,
+  try,
   unchecked,
+  varargs,
+  -Xpkginfo:{always,legacy,nonempty} Specify handling of package-info files

</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>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 install...</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>Tak trochę nawiązując do wydania Firefoksa 5.0 ;)
</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>Dostałem kolejnego bana przez głupiego PunkBustera. To już drugi ulubiony serwer, z którym mogę się pożegnać.
A wszystko to przez zły chmod katalogu &quot;pb&quot;... O_o</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>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:

- Hej! Możesz na chwilę przerwać gierkę i mi w czymś pomóc?
- Nie mogę.
- Dobra, nie to nie.

I tak za każdym razem ;)</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>Super czytelna nazwa klasy, prawda? :)


Co ciekawe, w przypadku wodza-który-leczy można naprzemiennie używać dwóch wersji zapisu - Kim Dzong Il lub Kim Dzong II, bo i tak nie widać różnicy ;)</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> </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>Upgrade z wersji Lucid do Natty jest możliwy, ale najpierw trzeba* zainstalować Mavericka. *) A ja mówię, że nie trzeba.

apt-get uznał, że musi pobrać dodatkowo 200 MB dokumentacji texa, którego nawet nie miałem i nie używam.

Podczas upgradu wyświetlają się śmieszne komunikaty, np.: &quot;niemożliwie stara data 1970-01-01 01:00:00&quot;

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.


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


rsyslogd próbuje tworzyć miliony komunikatów po uruchomieniu systemu. Użycie poświęconego jajka podobno pomaga.

Starsze programy i gry korzystają teraz z nowego urządzenia dźwięku /dev/null, który zastępuje wysłużonego /dev/dsp.

Jak to mówili w Zmiennikach: &quot;w sumie wóz na medal&quot; ;-)</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>True Combat
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. [src]

Supaplex
As far as I know, the source code to the game has been lost 'in history'. [src]

PowerGG
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. [src]

Muszę przyznać, że przez lata też mi się pogubiło trochę kodu..</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>Na tych miniaturkach wygląda jak wczesne KDE 4.x sprzed dwóch lat...</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>
