• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)


Date: Thursday, 19 Nov 2009 12:33

Jako, że na razie proces rekrutacji mam już za sobą na kilka lat to nie będzie mnie to dotyczyć bezpośrednio. No ale jak wygląda rozmowa kwalifikacyjna w da’big corpo:

Author: "Koziolek" Tags: "Humor"
Send by mail Print  Save  Delicious 
Date: Wednesday, 18 Nov 2009 20:42

Mam podręczniki, a jak przetoczy się mi przez chałupkę kolejna impreza to zainwestuję około 300PLN i rozpocznę swoją przygodę z produkcją piwa.

Wcześniej jednak mam zamiar pobawić się trochę w produkcję chleba. Ciekawe jak wyjdzie.

Author: "Koziolek" Tags: "Różności"
Send by mail Print  Save  Delicious 
Date: Wednesday, 18 Nov 2009 09:52

Na stary, bo ten był wyjątkowo paskudny.

Author: "Koziolek" Tags: "Różności, miniblog, koziolekweb"
Send by mail Print  Save  Delicious 
Date: Tuesday, 17 Nov 2009 15:02

I nie chodzi mi o ciągoty do kotów i redtube w quicksearch w przeglądarce ;) Chodzi tu o sposób patrzenia na świat.

W Warszawie otworzono pierwszą samoobsługowa stację do ładowania samochodów elektrycznych. jednym z pierwszych klientów był właściciel Tesla Roadster. Samochód moich marzeń ;) Osiągi Ferrari przy cenie… no dobra połowy Ferrari, ale utrzymanie jest znacznie tańsze. W czym jednak rzecz. Otóż w naszej stacji samochód będzie ładował się do 10 godzin. Trochę długo. Ja bym chciał inaczej. Podjeżdżam, pracownik stacji wymienia ogniwo paliwowe i wio dalej. Maksymalny czas “tankowania” 15 minut.

W tym celu należało by zrobić dwie rzeczy. Po pierwsze standaryzować sposób w jaki są montowane baterie w samochodach. Potrzebna jest uniwersalna złączka oraz pojemnik na ogniwa. Do tego jego umieszczenie musi być tak zaplanowane by wymiana nie wymagała np. rozmontowania części karoserii. Jako ciekawostkę podam, że w Citroenie C5 by wymienić żarówkę z przodu trzeba z jednej strony wymontować akumulator, a z drugiej najłatwiej zrobić to z kanału od dołu albo zdjąć część błotnika. Francuskie gówno.
Drugą rzeczą powinna być standaryzacja kontrolera ogniwa tak by można było montować ogniwa jednego producenta w samochodach innego. Coś na kształt standaryzacji baterii.

Pytanie czy producenci samochodów pójdą tą drogą jak najszybciej czy też będziemy w bólach tworzyć standardy gdy będzie ich wiele do dyspozycji?

Moje zboczenie programistyczne opiera się na modularyzacji każdego napotkanego rozwiązania.

Author: "Koziolek" Tags: "Inżynieria Oprogramowania, Różności,..."
Send by mail Print  Save  Delicious 
Date: Tuesday, 17 Nov 2009 08:50

Nie należę do ludzi, którzy wietrzą wszędzie spisek NWOW. Mam swoje zdanie na ten temat, które wyrobiłem sobie parząc od środka jak niektóre mechanizmy świata działają. Bliżej temu do Teorii Chaosu niż do jakiegoś uporządkowanego systemu. Czasami jednak gdy obserwuję świat zastanawiam się czy niektórzy ludzie aż tak nienawidzą ludzkości, że są gotowi zniszczyć ją jako gatunek czy też są aż tak głupi i zadufani w sobie, że myślą iż instynkty można zwalczyć.
W czym rzecz. Jest sobie taka fundacja “Wiedzieć jak”. Generalnie jej działania można porównać do znanej z “1984″ Orwela młodzieżowej organizacji – “Ligi Antyseksulanej”. czym innym jest nawoływanie do zachowania abstynencji seksualnej i działania w myśl zasady jeden stosunek – jedno dziecko. Stąd blisko do “Sztudsemu” (dziś in vitro) i eugeniki. Wkurzają mnie nawiedzeni goście, którzy “wiedzą lepiej”. To, że dzieciaki uprawiają seks jest normalne i wynika z takiego, a nie innego podejścia do świata w naszej kulturze. To, że dzieciaki się mnożą nie jest też niczym nadzwyczajnym, pomnę tylko z innego klasyka “Wydadzą ją za mąż za jakiegoś hrabiego czy barona jak tylko zacznie przypominać kobietę”. Swoją drogą dziś świat zachodni wpędza się w kłopoty demograficzne na własną prośbę na siłę zwalczając pociąg seksualny. Moim zdaniem w najbliższej przyszłości największy wkład do urodzeń będą miały właśnie młodzieńcze “wpadki”.
W każdym bądź razie. fundacji “Widzieć jak” oraz jej lidze Antyseksualnej mówimy nie.

Author: "Koziolek" Tags: "Różności, filozofia, Polska, Społecz..."
Send by mail Print  Save  Delicious 
Date: Monday, 16 Nov 2009 16:01

S.O.L.I.D.ne programowanie – część 0, czyli wstęp
S.O.L.I.D.ne programowanie – część 1, czyli monogamia
S.O.L.I.D.ne programowanie – część 2, czyli spoufalamy się
S.O.L.I.D.ne programowanie – część 3, czyli podkładamy świnię

Witam w czwartej części cyklu S.O.L.I.D.ne Programowanie. Dzisiejszy temat zajęć to Interface Segregation Principle (ISP).

Co mnie to obchodzi?

Często gdy trafiamy na jakiś interfejs pierwszą myślą jest po kiego wała oni tu wpakowali tyle metod? Nadmiernie rozbudowana lista metod zaciemnia interfejs i powoduje, że jest on trudny w użyciu. ISP mówi nam, że:

Klient nie powinien być uzależniony od interfejsów z których nie korzysta.

Mówiąc prościej klient powinien operować na interfejsie zawierającym tylko potrzebne mu metody.

Nietzscheańska idea nad interfejsu

Jako, że sam popełniam ten błąd to zacznę od określenia czym jest super interfejs.
Super Interfejs jest to interfejs, który skupia w sobie wszystkie potrzebne w danej chwili metody i nie uwzględnia ich zadań. Inaczej mówiąc jest to interfejs, który łamie zasadę SRP. Zdefiniujmy przykładowy interfejs Robotnik:

Listing 1. Super interfejs – Robotnik

package pl.koziolekweb.solid.isp;

public interface Robotnik {

	public void pracuj();

	public void pobierzWyplatę();

}

Przyjrzyjmy się teraz dwóm innym interfejsom, które korzystaja z naszego robotnika. Manager i Księgowy.

Listing 2. Interfejsy klienckie – Manager i Księgowy

package pl.koziolekweb.solid.isp;

public interface Manager {

	public void dodajPracownika(Robotnik robotnik);

	public void zarządzaj();
}
// .... //
package pl.koziolekweb.solid.isp;

public interface Księgowy {

	public void przyjmijNaStan(Robotnik robotnik);

	public void wypłaćPensję();

}

Od razu widać co jest nie tak?

Czy roboty mają uczucia?

Dobre pytanie. Przypowieść programistyczna na temat ISP. Dawno dawno temu była sobie fabryka. W fabryce pracowali robotnicy, managerowie i księgowi. Robotnicy wykonywali swoje zadania, managerowie kontrolowali robotników i zlecali księgowym wypłacanie pensji. Jednak któregoś dnia prezes postanowił, że część prac wykonywać będzie robot. Zgodnie z procedurą robot został wciągnięty na listę nadzoru managerskiego i był pod opieką jednego z managerów. Gdy nadszedł dzień wypłaty manager przekazał listę swoich pracowników do księgowych, a ci rozpoczęli wykonywanie przelewów. Nastąpiła jednak konsternacja wielka wśród księgowych bo nikt nie wiedział jak poradzić sobie z problemem robota. Z jednej strony był on pracownikiem i należało mu się wynagrodzenie, a z drugiej jednak był tylko maszyną… konsternacja trwała tak długo, że inni robotnicy nie otrzymali swych wypłat, spalili opony przed siedzibą zarządu fabryki, a ta upadła.
Jedynie robot zaśmiał by się z zaistniałej sytuacji oczywiście gdyby miał uczucia.

Zmiana punku widzenia

Gdy zapytasz się twórcy interfejsu co miał na myśli tworząc interfejs Robotnik najprawdopodobniej usłyszysz, że robotnik przecież pracuje i otrzymuje wypłatę. Jeżeli jednak popatrzymy na ten problem z punktu widzenia managera to ważna jest tylko praca, ale znowu punkt widzenia księgowego bierze pod uwagę tylko wypłatę wynagrodzenia. Interfejs powinien definiować metody związane z zadaniem, ale z punktu widzenia użytkownika tego zadania, a nie klasy implementującej. Bardzo dobrym przykładem jest tu interfejs Comparable i jego użycie w narzędziach do sortowania kolekcji. Metoda sortująca żąda tylko czegoś co jest Comparable, czyli ma tylko jedną metodę compareTo. Nie jest dla narzędzia istotne jakie inne zadania ma obiekt. Ma tylko mieć możliwość porównania się z innym obiektem.

Naprawiamy świat

Interfejs Robotnik jest zły. Ponieważ klasa, która będzie go implementować MUSI uwzględniać zarówno fakt, że robotnik pracuje jak i fakt, że otrzymuje pensję. Jeżeli na stan wprowadzimy klasę Robot, której obiekty nie będą wymagały pensji, ale będą pracowały to albo księgowy będzie musiał jakoś sobie poradzić z błędami albo programista będzie musiał jakoś tak zaprojektować robota, żeby ten przyjmował bezpieczną pensję (np. 0). Rodzi to kolejne trudności jak na przykład uwzględnienie przy wypłacie grupy zaszeregowania, wysługi lat, amortyzacji itp. Problem taki będzie propagował się na inne części systemu, a lokalnie tworzone obejścia będą tylko utrudniały utrzymanie kodu.
Prawidłowym rozwiązaniem jest rozbicie interfejsu Robotnik na dwa interfejsy. Pracujący i Opłacany:

Listing 3. Interfejsy – Pracujący i Opłacany

package pl.koziolekweb.solid.isp;

public interface Pracujący {

	public void pracuj();

}
// .... //package pl.koziolekweb.solid.isp;

public interface Opłacany {

	public void pobierzWyplatę();

}

Zmianie ulegną oczywiście interfejsy Manager i Księgowy.

Listing 4. Interfejsy klienckie – Manager i Księgowy, nowa wersja

package pl.koziolekweb.solid.isp;

public interface Manager {

	public void dodajPracownika(Pracujący robotnik);

	public void zarządzaj();
}
// .... //
package pl.koziolekweb.solid.isp;

public interface Księgowy {

	public void przyjmijNaStan(Opłacany robotnik);

	public void wypłaćPensję();

}

Oczywiście te zmiany to tylko początek. Kolejnymi powinno być pozmienianie klas fabrykujących poszczególne rodzaje obiektów tak by roboty i ludzie trafiali do odpowiednich kolejek. Refaktoryzacja kodu, którą powoduje ISP zazwyczaj jest bardzo głęboka. Dlatego też należy stosować segregację interfejsów już na samym początku, a jeżeli zachodzi konieczność podziału interfejsu należy robić to natychmiast po zauważeniu tak by zmiany dotknęły jak najmniejszą część systemu.

Inne zalety

ISP powoduje tworzenie dużej ilości małych interfejsów (w skrajnym przypadku jedna metoda na interfejs) oraz rozwlekanie się definicji metod o kolejne elementy do implementacji. Choć wydaje się to głupie to takie rozwiązanie ma same zalety. Po pierwsze kod kliencki zawsze dostanie to czego potrzebuje w danej chwili. Po drugie nic nie broni łączyć interfejsów:

Listing 4. Interfejs połączony – RobotnikCzłowiek

package pl.koziolekweb.solid.isp;

public interface RobotnikCzłowiek extends Pracujący, Opłacany {
}

Jeżeli zachodzi taka potrzeba. Jest to szczególnie przydatne w klasach fabrykujących, które pracują według wzorca budowniczego. Dostarczają one potrzebny element zachowując jednocześnie wszystkie właściwości jego części. Po trzecie znacznie ułatwia to pisanie testów jednostkowych. Testowaniu podlega wtedy prosty interfejs co pozwala na znacznie lepsze napisanie przypadków testowych uwzględnienie różnych danych skrajnych i uzyskanie lepszego pokrycia kodu. Test staje się prawdziwie jednostkowy ponieważ testuje najmniejszą jednostkę kodu jaką jest metoda. Po czwarte podobnie jak z testami sprawa ma się z dokumentacją. Łatwiej jest udokumentować działanie pojedynczej metody. Można dokładnie opisać co robi, niż napisać dokumentację dla złożonego interfejsu w której uwzględniamy kontekst wywołania czy wpływ innych nie powiązanych metod (opis jak działa wypłacanie pensji dla robota skoro nie powinien on w ogóle pensji dostawać).
ISP jest jedną z najprzydatniejszych zasad programowania obiektowego i warto ją stosować zawsze i wszędzie.

Author: "Koziolek" Tags: "Inżynieria Oprogramowania, S.O.L.I.D.ne..."
Send by mail Print  Save  Delicious 
Date: Saturday, 14 Nov 2009 21:25

Wczoraj z Myszą wieczorową porą udaliśmy się do Sali Kongresowej na występ GregorianW. Po przebiciu się przez szatnie i dotarciu na miejsca zaczęliśmy imprezę.
Generalnie pierwsza uwaga jest taka, że muzyka Gregorian łączy pokolenia. Nie mam pewności ilu ludzi przyszło na koncert, a ilu na Gregorian, ale Kongresowa była pełna.

Koncert zaczął się od “Brothers in Arms” i “Tears in Heaven” wiadomego autorstwa. Później, kilka bardziej popowych kawałków, a pierwszą część zakończyły “Wish You Were Here” i “Stairway to Haven”. Następnie była około 30minutowa przerwa.
Tradycyjnie jak to na koncertach bywa można było kupić płyty, koszulki i najbardziej zajebisty gadżet jaki kiedykolwiek wypuścił jakikolwiek zespół – Wycieraczkę.
Druga część koncertu była dłuższa i moim zdaniem lepsza. Na szczególne uznanie zasługuje wykonanie “Kashmir” (zagadka w jakim filmie do promocji wykorzystano ten motyw, tytuł oraz wykonawca grający proszę w komentarzach) oraz “Fields Of Gold”. Koniec końców koncert zakończył się był i udaliśmy się do domu.

Wrażenia… bardzo, bardzo pozytywne. Świetnie przygotowany set, całkiem niezła produkcja (choć na początku drugiej części był problemy z nagłośnieniem) i fajna oprawa świetlna. Brakowało mi trochę “koncertowej” atmosfery, bo tort bezowy zamiast piwa to jednak nie to. Wkurwiające były też rzesze emerytek, które koniecznie chciały nas stratować przed wejściem.
Dodatkowy wniosek współczesny młody polak nadal ma problemy z językiem angielskim, bo było słychać, że a) członkowie zespołu mówią za szybko i b) śmiech przy rzeczach całkowicie nie do śmiechu (akcja charytatywna).

Author: "Koziolek" Tags: "Muzyka"
Send by mail Print  Save  Delicious 
Strasznik   New window
Date: Thursday, 12 Nov 2009 11:10

Oj… coraz bardziej lubię Huntera.

Author: "Koziolek" Tags: "Muzyka, Heavy Metal, Hunter"
Send by mail Print  Save  Delicious 
Date: Wednesday, 11 Nov 2009 17:59

Nazywa go “Go” i mówi, że jest dobry. No jak się popatrzy to takie pomieszanie Java, C#, pascala i Cpp. Jak się mówi się pożyje się popatrzy. Na razie strona:
http://golang.org/.

Author: "Koziolek" Tags: "Inżynieria Oprogramowania, Programowani..."
Send by mail Print  Save  Delicious 
Date: Tuesday, 10 Nov 2009 18:55

Klimat się ociepla, krzyczą do nas co i rusz nagłówki gazet. Mądrzy politycy wygłaszają jeszcze mądrzejsze opinie i nawołują do publicznej zbiórki pieniędzy na “ratowanie klimatu”. Niektórzy nawet dostają za takie pierdolenie Nagrodę Nobla.
Cóż…

Generalnie ocieplanie się planety faktem jest. Niestety nie trafiony jest argument o tym, że to ludzie są temu winni.

Klimat się ociepla od 80 lat

Czyli od momentu gdy zaczęliśmy na serio bawić się w numeryczne prognozowanie pogody. Pierwsza prognoza pogodyW pochodzi z 1837 roku. Pomysł na numeryczne jej obliczenie to rok 1922, a prawidłowy model matematyczny to lata powojenne. Statystyki są prowadzone od XIX wieku, ale jakoś zaufanie mam do tych z wieku XX. Pełen obraz możemy otrzymać dopiero dzięki analizie matematycznej dużego zbioru danych z całego świata, czyli od momentu gdy zaprzęgnięto do tego komputery.
Patrząc na te dane można powiedzieć, że klimat od około 60-100 lat się ociepla. Nic więcej. Jeżeli uwzględnimy dane z XIX wieku zapewne można powiedzieć, że ocieplenie rozpoczęło się po rewolucji przemysłowej.
Małe mózgi małych ekoterrorystów zaczynają wiązać te przypadkowe fakty. Rewolucja przemysłowa, użycie paliw kopalnych, ocieplanie się klimatu. Stąd już tylko krok do rzucania oskarżeń na ludzkość, że chce zniszczyć Ziemię. Nie zniszczyły jej meteoryty, nie zniszczyły dinozaury to człowiek też jej nie zniszczy (o człowieku za chwilę).

Historia klimatu

Na upartego można spróbować odtworzyć warunki jakie panowały w czasach historycznych. I tak w trakcie Potopu Szwedzkiego, armia Karola Gustawa dostała się do Polski idąc zimą przez Bałtyk. Wniosek w połowie wieku XVII było chłodniej niż obecnie. Bałtyk na stałe zamarza obecnie tylko na północy. Kolejny dowód na ocieplanie się klimatu!!! Zakrzykną radośnie ekoterroryści, ale niestety kochane głuptaski mam złą wiadomość. Sięgając do kronik pisanych przez zakonników w początkach państwa, można się złapać za głowę. Jak to jest możliwe, że na przełomie marca i kwietnia. Obecnie odbywają się one w maju. Oj coś nie tak. Skoro kiedyś było chłodniej to i okresy wegetacyjne powinny być odpowiednio krótsze. Uwzględniając, że kalendarz zmienił się nam po drodze o jakieś 2-3 tygodnie można przyjąć, że sianokosy odbywały się w połowie kwietnia, czyli i tak wcześniej niż dzisiaj. Dobra, idziemy dalej. Według tych samych kronik w Polsce produkowano wino. Dobre wino, które ceniono na świecie. Można zatem zaryzykować stwierdzenie, że przynajmniej na południu Polski panowały warunki zbliżone do tych co dziś panują na Węgrzech. Czyli było cieplej. No i na dobicie wątku historycznego jeszcze jeden granacik do ekoterrorystycznego ogródka. Grenlandia była kiedyś, jak sama nazwa wskazuje, zielona. To znaczy, że nie było tam wiecznego lodu. Innymi słowy było tam ciepło. Swoją drogą Trondheim było do XIII wieku stolicą Norwegii też dlatego, że można było tam przez cały rok prowadzić handel.
Wniosek. Porównując naszą wiedzę historyczną i współczesne obserwacje można przyjąć, że zmiany klimatu jego ocieplenia i ochłodzenia następują w mniej więcej 400letnich cyklach.

Trochę naukowo o zlodowaceniach i emisji

Zlodowacenie, czyli glacjał jest przerywane przez interglacjał, czyli ocieplenie klimatu. Zlodowacenia występują w cyklu około 100 tysięcy lat. Ostatnie zlodowacenie (zwane zlodowaceniem Wisły) zakończyło się około 11,5 tysiąca lat temu. Można zatem z dużym prawdopodobieństwem założyć, że nasza ewolucja i obecny stan rozwoju zawdzięczamy temu, że jesteśmy na kawałku “pod górkę” na wykresie temperatury.
Pytanie jednak o nasz wpływ na klimat. Średnia gęstość zaludnienia lądów na Ziemi wynosi 43 osoby na kilometr kwadratowy. Po uwzględnieniu całej powierzchni ziemi jest nas raptem 12 os/km2. Nawet przyjmując tak optymistyczny scenariusz to i tak tych 12 osób emituje mniej gazów cieplarnianych niż teren (zwierzęta, roślin, procesy geologiczne) na którym mieszkają. Czyli dupa. Wpływ człowieka na ocieplanie się klimatu jest naprawdę niewielki. Jedyne co powoduje nasza działalność to brak konieczności wieszania wieszaków na kurkę w przedpokoju. Kurtka będzie wisiała sama w gęstym powietrzu (Śląsk może to potwierdzić, prawda?).

Mały penis + duże ego = ekoterrorysta

Człowiek otrzymał od natury dwa dary. Pierwszy z nich to fenomenalna umiejętność kojarzenia i bardzo dobra pamięć. Drugi to przeciwstawny kciuk. Oba te dary spowodowały, że możemy bardzo łatwo zmieniać nasze otoczenie. Kojarzenie faktów z zapamiętanymi plus umiejętność utrwalania wiedzy to inteligencja i pomysłowość. Z nich rodzą się wynalazki, które możemy budować dzięki chwytnym kończynom.
Niestety coś poszło nie tak. Wraz z coraz większymi umiejętnościami zaczęliśmy myśleć, że jesteśmy wszechmocni i mamy wpływ na cały świat. Alegorią dla takiego myślenia jest biblijna Wieża Babel. Współcześnie można zobaczyć to w pacach na temat wieku XXI pisanych pod koniec wieku XIX. Polecieliśmy w kosmos, wylądowaliśmy na Księżycu, a jedynym czynnikiem jaki nas hamuje przed osadnictwem na nim to pieniądze (jeżeli działalibyśmy jak mrówki- wszystko dla mrowiska – to byśmy już dawno tam byli na stałe; kolejny dowód, że pieniądze są hamulcem ewolucyjnym wprzęgniętym w nasze umysły przez proces ewolucji). Poczucie wszechmocy zostało jednak zachwiane gdy spotkaliśmy się z procesem, którego nie rozumiemy. Procesem, o którym wiemy bardzo niewiele, a nasze doświadczenie (w tym wiedza historyczna) jest zbyt małe by spróbować go opisać w pewny sposób. Dlatego też staramy się na siłę przypisać sobie zasługi, bo nie możemy znieść myśli, że jest nasz tylko 6,5 mld małych biednych zwierzątek, które nie są wstanie kontrolować planety na której mieszkają. Nasze zadufanie spowodowało, że zachowujemy się irracjonalnie i zamiast odkładać na podróż na Księżyc bezmyślnie wydajemy pieniądze.
Nie mamy wpływu na naszą planetę. Nawet małego. Procesy geologiczne trwają tu od kilku miliardów lat. Podobnie ewolucja, a to że klimat się zmienia będzie przyczyną wypuszczenia przez drzewo ewolucji kolejnych lepiej przystosowanych do życia gałązek.

Author: "Koziolek" Tags: "Różności"
Send by mail Print  Save  Delicious 
Date: Tuesday, 10 Nov 2009 11:55

Author: "Koziolek" Tags: "Różności, Animacja, Filmy"
Send by mail Print  Save  Delicious 
Date: Monday, 09 Nov 2009 12:43

Jak wiadomo 99,9% młodych osób to tak zwani “chómaniści”. Wyróżniają się oni całkowitym brakiem talentu do arytmetyki, o matematyce nie wspominając, ale braki te uzupełniają niesamowitymi zdolnościami językowymi:
SS-2009.11.09-13.37.34

Co wam nie pasuje? Na odpowiedzi czekam w komentarzach.

Author: "Koziolek" Tags: "Humor, Nauka, Polska, Społeczeństwo"
Send by mail Print  Save  Delicious 
Date: Friday, 06 Nov 2009 12:05

Chyba nie do obejścia.

Listing 1. Stacktrace

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 4
        at sun.font.FontDesignMetrics.charsWidth(Unknown Source)
        at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source)
        at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source)
        at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source)
        at javax.swing.text.PlainView.viewToModel(Unknown Source)
        at javax.swing.text.FieldView.viewToModel(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI$RootView.viewToModel(Unknown Source)
        at javax.swing.plaf.basic.BasicTextUI.viewToModel(Unknown Source)
        at javax.swing.text.DefaultCaret.moveCaret(Unknown Source)
        at javax.swing.text.DefaultCaret.mouseDragged(Unknown Source)
        at java.awt.AWTEventMulticaster.mouseDragged(Unknown Source)
        at java.awt.Component.processMouseMotionEvent(Unknown Source)
        at javax.swing.JComponent.processMouseMotionEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)

Kod:

Listing 2. Kod

import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;

public class Test extends JPanel {

        private static final long serialVersionUID = 1L;

        public Test() {
            try {
              SwingUtilities.invokeAndWait(new Runnable() {
                public void run() {
                        JTextField tf = new JTextField();
                        tf.setBounds(100, 100, 100, 30);
                        add(tf);
                }
              });
            } catch (Exception exc) {
              System.out.println("Can't create because of " + exc);
            }
          }

          public static void main(String[] args) {
            JFrame frame = new JFrame();
            Test panel = new Test();
            frame.getContentPane().add(panel);
            panel.setLayout(new GridLayout());

            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setBounds(600, 300, 200, 200);
            frame.setVisible(true);
          }
}

Przepis na:
Skompiluj, uruchom, wpisz 12345, zaznacz mychą 34 i naciśnij spację. Masz 12 5. Zaznacz mychą od lewej strony tekst.
WTF?

Author: "Koziolek" Tags: "Java, Swing"
Send by mail Print  Save  Delicious 
Date: Tuesday, 03 Nov 2009 13:26

Poziom… zobaczymy wieczorem jak siądę by rozwiązać te zadania. Spodziewam się wyniku rzędu 100%. Generalnie zadania są na poziomie dawnego egzaminu do liceum plus jedno zadanie w którym plącze się logarytm. Na dzień dzisiejszy jeżeli miałbym na serio podchodzić do matury to zapewne w tydzień opanował bym materiał rozszerzony. Przykre jest to, że ludzie, którzy chcą dostać świadectwo maturalne i pójść na studia nie potrafią obliczyć czegoś takiego:

Na seans filmowy sprzedano 280 biletów, w tym 126 ulgowych. Jaki procent sprzedanych biletów stanowiły bilety ulgowe?

No, ale jak widać ogłupianie społeczeństwa postępuje zgodnie z planem.

Author: "Koziolek" Tags: "Różności, Polska, Społeczeństwo"
Send by mail Print  Save  Delicious 
Date: Tuesday, 03 Nov 2009 11:12

Ukraina:
Zachorowało: 200000 – 0,43% populacji
Zmarło: 67 – 0,0335% chorych

Świat:
Zachorowało: 526382 – 8,77303333 × 10e-3 %
Zmarło: 6100 – 1,1% chorych

Grypa Hiszpańska:
Zachorowało na świecie: 500000000 – 1/3 populacji
Zmarło na świecie: 50000000 – 100000000 – 10-20% chorych

Dla porównania Szpitalne Zapalenie Płuc jest chorobą, która można załapać przy podpięciu do respiratora z prawdopodobieństwem rzędu 3% w przeciągu pierwszych 5 dni, 2% w dniach 6-10 i około 1% później. Śmiertelność wynosi 50%. Więc nie pierdolcie z łaski swojej o epidemii, czy innej zabójczej zarazie.

Author: "Koziolek" Tags: "Świat, Społeczeństwo"
Send by mail Print  Save  Delicious 
Date: Friday, 30 Oct 2009 18:47

Masz duży plik rar. Ściągnąłeś i okazało się że nie bangla, bo unrar wywala błąd CRC. Metoda na głoda:

Listing 1. Ignorowanie błędu crc

$ unrar -kb x mój_plik.rar

Opcja -kb oznacza Keep Broken, czyli uszkodzony plik nie jest usuwany po rozpakowaniu.

Author: "Koziolek" Tags: "bash, miniblog"
Send by mail Print  Save  Delicious 
Date: Tuesday, 27 Oct 2009 18:26

Wielkimi krokami zbliża się do nas Maven 3. Jedną z nowości jest możliwość skorzystania z plików pom.xml w postaci skryptów Groovy/Ruby/Scala/Cokolwiek co zportujesz.
Nie wiem jak wy, ale ja jakimś wybitnym fanem XMLa nie jestem. Doceniam jego zalety w zakresie składowania i przesyłania danych, ale jako narzędzie do trzymania konfiguracji to on średnio się nadaje. Pliki pom.xml z biegiem czasu mają przykry zwyczaj rozrastania i komplikowania. Jeżeli dołożymy do tego możliwość korzystania z profili, różnych konfiguracji zależności w zależności od środowiska (inaczej lokalnie, inaczej na CI, a jeszcze inaczej na produkcji) to ogarnięcie tego galimatiasu znaczników zaczyna być czasochłonne. Nie jest trudne, ale zazwyczaj tracimy dużo czasu.
Dobra do rzeczy na podstawie tego wpisu wnioskuję, że nowy plik pom.xml będzie wyglądał na przykład tak:

Listing 1. Nowy pom.xml

project {
    modelVersion '4.0.0'
    parent {
        artifactId 'babble'
        groupId 'com.sonatype.training'
        version '1.0.6-SNAPSHOT'
    }
    artifactId 'babble-core'
    version '1.0.6-SNAPSHOT'
    name 'babble-core'
    url 'http://maven.apache.org'
    build {
        testResources {
            testResource {
                filtering 'true'
                directory 'src/test/resources'
            }
        }
    }
    dependencies {
        dependency {
            groupId 'junit'
            artifactId 'junit'
            version '4.7'
            scope 'test'
        }
    }
    profiles {
        profile {
            id 'development'
            properties {
                'log4j.level' 'DEBUG'
            }
        }
        profile {
            id 'production'
            properties {
                'log4j.level' 'WARN'
            }
        }
    }

    properties {
        'log4j.level' 'info'
    }
}

No i git.

Author: "Koziolek" Tags: "Java, Maven, Groovy"
Send by mail Print  Save  Delicious 
Date: Tuesday, 27 Oct 2009 13:23

ditaa jest narzędziem na licencji ASL2 do tworzenia plików graficznych z plików tekstowych.

Biblioteka jest bardzo fajna i choć ma tylko najprostsze elementy to jak dla mnie wystarczy do zabawy na kilka najbliższych wieczorów. Może dodam do niej jakaś fajną funkcjonalność rozszerzającą możliwości o generowanie grafik z Javadoców…

Author: "Koziolek" Tags: "Java, ditaa, Programowanie"
Send by mail Print  Save  Delicious 
Date: Tuesday, 27 Oct 2009 11:46

Pisałem kiedyś o o pani minister o bardzo małym rozumku. W zeszłym tygodniu GW miała cykl poświęcony polskiej nauce i jej jakości “Koniec Akademii”. W toku różnych dyskusji, na 4programmers szczególnie, nasunęła mi się myśl ile kosztuje wyposażenie jednego stanowiska laboratoryjnego na zajęcia pracowni wstępnej na wydziale fizyki.

Dlaczego pracownia wstępna?

Ponieważ Jest to najprostsze laboratorium (poza elektronicznym, z którego nie miałem zajęć). Najważniejsze jest jednak to, że wszystko co potrzebne jest do zajęć można kupić od ręki w praktycznie każdym sklepie ze sprzętem pomiarowym. Obecnie lista ćwiczeń wygląda tak (dane ze strony pracowni FUW):

  • 1. Układy różniczkujący i całkujący (charakterystyka filtra górnoprzepustowego i dolnoprzepustowego).
  • 2. Filtr rezonansowy.
  • 3. Charakterystyka diody Zenera (napięcie przewodzenia i przepięcia).
  • 4. Charakterystyka tranzystora i wzmacniacza tranzystorowego.
  • 5. Budowa prostego układu scalonego.

Ostatnie ćwiczenie jest wstępem do wspomnianej już pracowni elektronicznej. Gdy ja studiowałem na wydziale jako pierwsze ćwiczenie było wyznaczanie średniego oporu dla 100 oporników. Ćwiczenie miało na celu zaznajomienie nas z zasadami panującymi na pracowni oraz wdrożenie do narzędzi do obróbki danych (zazwyczaj excel). Z tego co mi wiadomo ostatnie ćwiczenie można wykonać na symulatorze układu na komputerze używając np. gEDA zamiast komercyjnych aplikacji CAD/EDA lub na stole składając odpowiednie elementy na makiecie układu. Ja wybiorę wersję bardziej “nowoczesną”, czyli użycie komputera. Wynika to z faktu, że nie miałem okazji wykonywać tego ćwiczenia inaczej niż wirtualnie.

Co nam będzie potrzebne.

Jako, że tworzymy nowoczesną uczelnie nasze laboratorium powinno posiadać komputer na każdym stanowisku. Koszt komputera, na którym studenci będą mogli opracowywać wyniki to około 1200 PLN. Maszyna jest wyposażona w 64bitowy procesor AMD, 4GB RAM i kartę FastEthernet i 80GB dysk twardy. Działa pod kontrolą lokalnie zainstalowanego Linuxa, ale studenci maja katalogi domowe umieszczone na centralnym serwerze (dobry serwer kosztuje około 18tyś PLN, ale to inna para kaloszy i nie będzie uwzględniana). Założyłem, że jesteśmy racjonalni i korzystamy tylko z oprogramowania darmowego/otwartego/wolnego.
Kolejny element potrzebny nam na pracowni to miernik uniwersalny. Wymieniony w treści zadań miernik Brymen 805 kosztuje 180PLN. Do tego jeszcze lutownica oporowa z podstawką ( w sumie 30 PLN).
Teraz zaczynamy poważnie wydatki. Najprostszy generator sygnału potrafiący generować sygnał sinusoidy, prostokątny i trójkątny (zęby) kosztuje około 500 PLN. Następnie najpoważniejszy wydatek oscyloskop 2 lub 4 kanałowy. Koszt jednego od 2 do 4 tysięcy. Wybrałem oscyloskop, który ma możliwość podłączenia do komputera, zapisu danych pomiarowych i ma intuicyjną płytę czołową (innymi słowy jest tam mało przełączników).
Podsumujmy:

  • Lutownica – 30PLN
  • Multimetr – 180PLN
  • Generator – 500PLN
  • Oscyloskop – 3300PLN
  • Komputer – 1200PLN
  • Cyna, kable, elementy elektroniczne i elektryczne – nie więcej niż 100PLN

W sumie ~5300 PLN. Do tego koszty stałe, czyli energia, konserwacja, wymiana zużytych tranzystorów, oporników, zakupy cyny itp.

Przypomnijmy zatem co kupowaliśmy.

Zakupiliśmy pojedyncze stanowisko laboratoryjne bez mebli (kolejne 2 tyś, bo meble BHPowskie są kurewsko drogie, szczególnie krzesła), które będzie służyło nam do poprowadzenia 5 zajęć w ramach tzw. pracowni wstępnej oraz 4 w ramach pracowni elektronicznej (nieobowiązkowej) istnieją też dwa (o ile dobrze pamiętam) ćwiczenia na pierwszym semestrze pracowni fizycznej, które możemy poprowadzić na tym sprzęcie. W sumie jest to 11 zajęć. Na stanowisku może jednocześnie pracować maksymalnie dwóch studentów. Jeżeli mamy grupę 100 studentów to dzielimy ich na 50 zespołów. Każdy zespół potrzebuje po 3 godziny zegarowe na ćwiczenie. U jednego asystenta na raz nie może pracować więcej niż 5 zespołów (BHP). Jeden cykl zajęć to 150 stanowiskogodzin (godzin pracy pojedynczego stanowiska). Zakładając, że mamy tylko jednego asystenta, który prowadzi zajęcia dla 5 zespołów na raz to mamy 150/5 = 30 godzin roboczych, które musimy poświęcić studentom. W praktyce oznacza to zajęcia przez cały tydzień od 8 do 16 (uwzględniam przerwy oraz czas na ogarnięcie się grup pomiędzy zajęciami), 5 tygodni w roku. Dobrze zatem… czyli za 5300*5 = 26500 PLN mamy jedną pracownię, która będzie działała przez miesiąc z małym okładem, plus drugi miesiąc z okładem dla pracowni elektronicznej i fizycznej, w sumie nie cale 3 miesiące w roku. Poza tym będzie zamknięta na cztery spusty. czy ktoś widzi opłacalność prowadzenia tego typu zajęć?

Inżyniera nie chcę, bo jest za drogi

Przedstawiłem przybliżone wyliczenia dla wydziału fizyki. Nie zapominajmy, że na tym wydziale zajęcia z elektroniki to niewielka część zajęć laboratoryjnych. Potrzebujemy jeszcze wyposażenia do tradycyjnych pracowni. wag laboratoryjnych (600 PLN sztuka), termometrów (precyzyjny kosztuje około 200PLN), pryzmatów, cezu 137Cs wraz z detektorem i licznikiem cząstek (najtańszy kosztuje 15tyś). całość tego sprzętu jest zazwyczaj wykorzystywana raz dwa razy przez studenta w trakcie całej nauki. Jednocześnie sprzęt ten nie nadaje się do badań w normalnym toku prac naukowych, bo jest po prostu za słaby.
Jak widać prywatne wykształcenie fizyka jest drogie. Co ma zatem powiedzieć np. inżynier mechanik transportu, który musi badać w trakcie studiów silniki lokomotywy, albo inżynier mechanik lotniczy, który musi pobawić się nawet miniaturowej wielkości silnikiem odrzutowym? Koszt kształcenia inżyniera jest bardzo duży dlatego nie ma prywatnych politechnik. Nikt nie będzie ich zakładał tylko po to by nikogo nie było stać na studiowanie tam.
Co jest potrzebne? Zmiana sposobu myślenia o finansowaniu nauki. Nauka choć państwowa może bardzo dużo zyskać przez rozpoczęcie masowej współpracy z przemysłem. Dostarczenie kadr naukowych i laboratoriów w zamian za sponsorowanie badań i studiów. Sponsorowanie stypendiów w zamian za lojalki. Czemu nie? ja bym chętnie wyjechał na praktykę do np. labu IBMa czy Volvo by wykorzystać zdobytą na studiach wiedzę. Tyle tylko, że trzeba zacząć ta współpracę, a nie mówić jak pewien organizator olimpiady językowej, że on nie będzie chodził i szukał sponsora, bo to uwłacza roli nauki.

Author: "Koziolek" Tags: "Różności, Nauka, Polska, Społeczeńs..."
Send by mail Print  Save  Delicious 
Date: Monday, 26 Oct 2009 21:54

prezentuje Hymn Imperium:

Author: "Koziolek" Tags: "Humor, Muzyka"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader