Starym sposobem – mnemoniki w Swingu (Java)

Dziś ponownie Java; dotarło do mnie, że Swing nie obsługuje znak & w nazwach menusów i przycisków do nich, mają na to osobną funkcję, lub też przeładowane konstruktory. Ma to kilka swoich plusów, ma też kilka minusów. Ot chciałem w prosty sposób dorobić w moim programie klawisze skrótów w menu, z tym, że oczywiście teksty samego menu, byłby wczytywane z klasy zasobów – tutaj nieco szerzej o tym – nie mogę z tego powodu wklepać ich na stałe.

Postanowiłem więc dorobić na szybko taką małą metodę, która dorabiała by “mnemonic” na podstawie samego tylko stringu (dzięki zastosowaniu znaku &).

public JMenuItem newMenuItem(String label) {
	JMenuItem resItem = null;
	int tmp = label.indexOf('&');
 
	// Sprawdzamy, czy w ogóle w etykietce jest zaznaczony klawisz skrótu.
	if (tmp > -1) {
		// usuwamy znak & przez podział stringu label wedłu znaku ktoruy chcemy usunąc
		String[] strArray = label.split('&', 2);
		// teraz sklejamy obie połówki, ako skrót określamy znak, stojący na prawo od &
		res = new JMenuItem(strArray[0] + strArray[1], label.charAt(tmp +1));
	}
	else
		res = new JMenuItem(label);
	return res;
}

Kod jak widzicie dość prowizoryczny, ale mi wystarczył. Jeśli ktoś ma jakieś 3 grosze do niego, zapraszam tu na dole można je wklepać.

Film: Back to the Future

Eh… ostatni raz oglądałem filmy z tej trylogii jako dzieciak jeszcze. Oczywiście wtedy byłem nimi zachwycony, zresztą nadal jestem, tylko nie wiem, czy to z sentymentu, czy z samych filmów.

Nie, nie będe streszczał fabuły, jak ktoś nie zna to niech sobie obejrzy, ewentualnie wyszuka np.: pod tym linkiem.

Z cyklu dojrzalszych refleksji, to ciekawą wizję przyszłości zaprezentowano w filmie – dolar niema się za dobrze, czego dowodzi inflacja, a dzieciaki oglądają kilka kanałów na raz – symbol zepsucia czasów. Mała aluzja do producenta (podobnie zresztą jak np.: w “Men in Black 2”), przez reklamę filmu “Szczęki 19”. Wizja miasta na przestrzeni dziejów też oczywiście mocno uproszczona, to w sumie zabieg komediowy, który zupełnie nie przeszkadza w oglądaniu.

Tak swoją drogą w serialu Battlestar Galactica ta sama wizja – dzieci przejmujące pracę rodziców była przedstawiona w zupełnie innym świetle.

Co do przeszłości; rok 1955, to Ameryka jaką możemy podziwiać w pozostałościach tego kraju w postapokaliptycznej wizji Fallouta – stąd pierwsza część (i sporo drugiej) mi się dodatkowo podobały. Tak mnie ciekawi, czemu doktor w 1955 wybrał właśnie takie ciuchy dla Martiego – czyżby wtedy tak właśnie widziano w USA Dziki Zachód (przynajmniej w filmach)? czy może on tylko coś pokręcił.

No to i pora na podsumowanie: warto (obejrzeć)!

Pytanie do kogoś kto zna się na Javie (lub wzorcach projektowych).

Przyznam się bez bicia, że nie za wiele miałem okazji po programować w Javie. Stąd zastanawiam się, czy tak się robi, jak robię ja.

Chciałem w programie wykorzystać klasę ResourceBundle, jak wiemy, mniej więcej tak wygląda jej wykorzystanie:

Ja jednak chciałem uniknąć wklepywania z palca tych Stringów (parametrów metody getString, trochę dla wygody (dopełnienia w Eclipsie), trochę, żeby nie było błędów (literówek w nazwach).

Stworzyłem więc enuma (w końcu na Javie 1.6 – o pardon – 6.0, robię, a one nowością były w 5tce) nazwijmy go teksty:

Enum eTeksty {
	OkKey,
	CancelKey;
}

Dorobiłem do tego klasę, taką “nadbudówkę” (to się chyba ładnie dekorator nazywa) na klasę ResourceBundle, nazwę ją tutaj PobierzTekst:

public class PobierzTekst {
	private ResourceBundle resource;
 
	public PobierzTekst() {
		// Tutaj inicjowanie zmiennej resource - w normalny sposób, mamy potworzone w programie klasy obsługujące języki.
	}
 
	public String getTekst(eTeksty text) {
		try {
			return resource.getString(text.toString());
		}
		catch(...) {
			/*
				Tutaj w zależności od wypadku zwracam albo pusty tekst,
				albo krótką notkę np.: "[brak tekstu dla" + text.toString() + "]";
			*/
		}
	}
 
}

A w programie wykorzystanie tego wygląda następująco:

PobierzTekst myResources = new PobierzTekst();
button1 = new Button(myResources.getTekst(eTekst.OkKey));

Pytanie więc do osób, które się znają na Javie, czy to rozwiązanie jest w porządku? Czy zawsze będzie działać (np.: różne maszyny wirtualne różnie reagują na enumy) itp? Czy w ogóle, tak się robi, czy nie można prościej?

Jeszcze dopowiem, że mam też inne klasy zasobów, np.: z tekstami o błędach, do nich kolejnego enuma, i przeciążoną metodę getTekst.

Rule nr 1: The clock is the enemy

Jak wiedza, niektórzy, pracuje po 8 godzin na dobę. W sumie nie narzekam, ale czasem zdarzają się dni w których czas w pracy dłuży mi się niemiłosiernie. Np.: w których pisane przeze mnie programy działają w perfidnie nieprzewidywalny sposób, albo to może od aury zależy jakoś?

Dziś trafił się dzień w sumie średnio “długi”. Postanowiłem więc nieco temu zaradzić. Pomny nauk wyniesionych z lektury filmu “Cashback“, postanowiłem zwalczyć wyświetlany na ekranie zegar. W pracy używam Ubuntu, większość ustawień jest “fabryczna”, tak więc zapewne sporo osób kojarzy ten zegar w górnym prawym rogu ekranu. Ponieważ nie chciałem go usuwać z panelu, zmieniłem w jego właściwościach wyświetlany format godziny na standardowy UNIKS-owy, czyli: liczbę sekund jaka upłynęła od tzw początku epoki uniksowej (bodaj, 1 stycznia 1970).

No i taka oto owca syta i wilk cały (czy jakoś tak). Tylko współpracownicy teraz mnie za jakiegoś ortodoksyjnego geeka mają:P

Jeśli zastanawia Cię, jak to wygląda, bo nie wiesz, a nie masz Ubuntu + GNOME (nie wiem jak pod KDE), to wklep w konsoli:

date +%s

Jeśli masz Windowsa, to pozwolę sobie zacytować znanego hakera.

Pozdrawiam lud pracujący.

PS.: inna sprawa, że zaczynam już powoli wyliczać sobie właściwą godzinę.

Wyniki (odnośnie wpisu poprzedniego)

Jak w tytule, chodzi o ten wpis. Oto i one:

14      994     18.42%          139     14.77%

W pierwszej kolumnie: data (nr dnia miesiąca), wywołania, procent wywołań na miesiąc, wizyty, procent wizyt na miesiąc.

I proszę, dnia 14stego lipca miałem największą ilość wejść w tym miesiącu (jak dotąd). Statystyki z dat innych wpisów w lipcu:

9       671     12.43%          105     11.16%
10      778     14.42%          96      10.20%

Nie jest to najlepszy wynik jaki osiągnąłem na jogerze, większą popularnością cieszył się choćby wpis o konfiguracji MySQLa – no ale tam był jakiś odzew czytelników.

Wnioski: osoby czytające joggera, to ludzie ciekawi, ale jednocześnie rozsądni (o czym dobitnie świadczy brak komentarzy pod wpisem z Bolkiem. I dobrze, mi to przywraca wiarę w jakaś społeczność, gdzie nie liczy się kto pierwszy postawi komentarz i obwieści to światu.

Sorry, że bez zdjęć, ale jeszcze nie wybrałem sobie hostingu na nie, nie chciałem też zaśmiecać sobie miejsca na serwerze.

Bolkiem był… Kaczyński!

Zapraszam do lektury:

No to tak tylko żartowałem – przy okazji to taki mój mały komentarz do tej całej afery.

Wiem, że nieco przedawniony, ale powiedzmy, że “nie poddaje się współczesnym trendom” (to chyba z jakiegoś filmu wziąłem).

To tez mały test na skuteczność “kontrowersyjnych wpisów” – ktoś ostatnio o tym wspominał.

Dziękuję za uwagę.

PS.: no co? wy spędzacie ośmiu godzin w robocie?

Weekend z Pilipiukiem (“Czarownik Iwanow”, “Kuzynki”)

Z powodu pewnych powiązanych ze sobą w sumie okoliczność zostałem odcięty od sieci w sobotę (poprzednią) około popołudnia do poniedziałku wieczór. O dziwo jednak podarowanego mi czasu nie poświęciłem na budowę wspaniałych cywilizacji, czy na inne bardziej bierne rozrywki. No nie zupełnie – dorwałem zgromadzony – nawet nie pamiętam już kiedy – katalog z ebookami, które oczywiście od dawna obiecywałem sobie przeczytać. Nie na myśląc się długo otworzyłem pierwszy z brzegu katalog o nazwie: “Andrzej Pilipiuk“.

Zaczęło się od książki “Czarownik Iwanow“, to druga część (o ile mi wiadomo) przygód Jakuba Wędrowycza. Jeśli chodzi o fabułę, to jak wiadomo, Wędrowycz walczy ze złem, unika milicji (akcja rozgrywa się wcześniej niż poprzedni tom) i uczy magii Monikę – studentkę piszącą pracę magisterską niejako o głównym bohaterze. Zło w tytułowym opowiadaniu reprezentuje kapłan pewnego pogańskiego bożka, jakiego posąg wciąż znajduje się gdzieś w Chełmie (plus stadko wampirów). Trzeba by jeszcze wspomnieć o kilku innych wątkach, ale jak kogoś to ciekawi, to niech przeczyta książkę.

Ps.: opowiadanie “Kocioł” jest świetne!

Jako, ze te książki czyta się dość szybko zdążyłem jeszcze przeczytać “Kuzynki“. Dużo o tej książce słyszało. Nawet książka dość popularna była, przynajmniej na tyle, by doczekać się 2 kolejnych części (których nie mam:/ ). Całkiem nie dawno napisałem, że “Operacja dzień wskrzeszenia” jest pisana innym stylem niż wspomniane przygody Wędrowycza. Jak dla mnie “Kuzynki” i “Operacja …” są dość podobne. W obu mamy do czynienia z polskimi tajnymi i potężnymi organizacjami, które w jakiś sposób czynią bohaterów wyjątkowych (w “Kuzynkach” tylko jedną co prawda, ale jednak). W obu powiewa taką realną historią, co zresztą nie przeszkadza. We wszystkich wspomnianych książkach czuć swoista nostalgię za carską Rosją, lub Kozakami (co niejako wynika z twierdzeń autora odnośnie swojej osoby). Na zakończenie wymieniania podobieństw, wspomnę, że wszystkie te książki przeczytałem jednym tchem, nie mogąc się od nich oderwać.

Wracając do “Kuzynek“, trzeba przyznać autorowi ten ciut autoironii, czy jak kto woli autoreklamy innej swojej książki (jedna z bohaterek krótko recenzuje opowiadania o Jakubie Wędrowyczu), całego gatunku (ponownie recenzja jednej z “kuzynek”), środowiska czy nawet własnej osoby (to znaczy, tak mi się wydaje, że ten “pisarz” pojawiający się podczas “konwentów staropolskich” to sam Piipiuk, o opinii bohaterki “Kuzynek” nie wspominając).

Krótko: polecam!

O nowym znaczeniu SQL – czyli o tym, jak jestem zacofany.

Szukając pomocy na temat zapytań SQL w necie, natrafiłem na dziwny dla mnie tytuł “Ubierz do SQL – Ubieranki, Gry Dla Dziewczyn”, strona jednak zupełnie z tym językiem nie miała nic wspólnego… WTF? Z odpowiedzią pospieszyła jakaś mika9585:

do nataleńki123: nie ma czegoś takiego jak dawn..jest down,a to istotna różnica..ta choroba wcale nie jest śmieszna..tytuł : ubierz do sql” mi się bardzo podoba,ale niektórzy są tak zacofani,że nie wiedzą iż jest to skrót od nagielskiej nazwy “school”..moi wszyscy znajomi urzywają skrótu sql..bo to się czyta “skul” identycznie jak angielskie “school”..pozdro

Pierwsze słyszę, jeszcze chwila, a pewnie będą i te swoje skróty skracać: dziś SQL, jutro “QL”, pojutrze “L”. Wtedy to już nie będzie żadna podobna do ludzkiej mowa…

Na własną odpowiedzialność: http://www.ubieranki.eu/gry.php?id=20406. Ostrzegałem!

Kilka dziwów w Ubuntu

Jakiś czas temu na mojego kompa – ściślej moje pokiereszowane Ubuntu – przybył nowy problem; system montował pendrive’a, ale “widział” na nim tylko 64 MB wolnego miejsca, niezależnie od tego ile na nim faktycznie było. Przyczyny łatwo się domyślić “wymontowanie bez wymontowania” – tak wyszło, w każdym razie dopiero dziś poszukałem jakiegoś rozwiązania.

No i szybko znalazłem opis swojego problemu:
http://robsoft.wordpress.com/2007/07/23/ubuntu-i-pendrive-porada/
ucieszony przystąpiłem do realizacji opisanego tam rozwiązania. I tu mały zonk – nie ma katalogu .Trash który należało wyrzucić (uprzedzając pytanie: umiem wyświetlać ukryte pliki). Dla pewności jednak wklepałem rm -f .Trash, “zrestartowałem” pendrive’a. I o dziwo pomogło!

Inna sprawa to Firefox, jaki po aktualizacji (w końcu ją zrobiłem) zaczął mi się wykrzaczać, tutaj długo szukałem, reinstalowałem, usuwałem itp… a rozwiązanie okazało się być na stronie:
http://www.psychocats.net/ubuntu/firefox
i też zadziałało.

Choć czemu tak się stało, to nie wiem, ale nie przeszkadza mi to;) Pozdrawiam