Trochę ponad rok temu podczas pracy z NetBeansem i SVNem, często witał mnie taki oto komunikat:
This client is too old to work with working copy ; please get a newer Subversion client
Ostatnio podobnym komunikatem uraczył mnie Eclipse...
Sprawę już omawiałem na blogu (http://wojtek-m.blogspot.com/2009/12/netbeans-i-subversion_20.html), ale wtedy nie poznałem przyczyny takiego zachowania. Teraz starczyło mi na to cierpliwości...
wtorek, 25 stycznia 2011
niedziela, 23 stycznia 2011
Jak sprawdzić wersję Oracle
Często, kiedy mamy środowisko testowe składające się z wielu baz danych Oracle (których wersje na dodatek lubią się często zmieniać), to możemy natrafić na problem - z jaką wersją Oracle jesteśmy aktualnie połączeni?
Oczywiście SQL*Plus poda nam wersję silnika bazy w momencie połączenia z nią - ale kiedy korzystamy z innego narzędzia, np. Oracle SQL Developer albo nie chcemy się łączyć ponownie, to...
Oczywiście SQL*Plus poda nam wersję silnika bazy w momencie połączenia z nią - ale kiedy korzystamy z innego narzędzia, np. Oracle SQL Developer albo nie chcemy się łączyć ponownie, to...
czwartek, 20 stycznia 2011
Referencja NULL w C++
Jedną z głównych różnic między wskaźnikami a referencjami w C++ jest fakt, iż referencja nie może wskazywać na NULL. Ta, jasne.
Faktycznie, standard ISO 14882 stwierdza (rozdział 8.3.2, punkt 4):
"A reference shall be initialized to refer to a valid object or function. [Note: in particular, a null reference cannot exist in a well-defined program, because the only way to create such a reference would be to bind it to the “object” obtained by dereferencing a null pointer, which causes undefined behavior."
Ale standard sobie, a implementacje sobie, więc to "only way" wcale nie jest takie only :) Podwińcie rękawy i zasłońcie oczy, bo pięknie to tu nie będzie ;)
Faktycznie, standard ISO 14882 stwierdza (rozdział 8.3.2, punkt 4):
"A reference shall be initialized to refer to a valid object or function. [Note: in particular, a null reference cannot exist in a well-defined program, because the only way to create such a reference would be to bind it to the “object” obtained by dereferencing a null pointer, which causes undefined behavior."
Ale standard sobie, a implementacje sobie, więc to "only way" wcale nie jest takie only :) Podwińcie rękawy i zasłońcie oczy, bo pięknie to tu nie będzie ;)
poniedziałek, 17 stycznia 2011
Metoda equals, LSP i Twoje IDE
Jeżeli chodzi o metodę
Przypomnijmy sobie czego Sun (ups, Oracle) wymaga jako "kontraktu" metody
1. Powinna to być relacja równoważności, czyli musi być:
a) zwrotna:
b) symetryczna: jeżeli
c) przechodnia: jeżeli
2. Musi być spójna, tzn. ta sama para
3. I musi też zachodzić:
Przesłaniając metodę
equals(Object obj)
w Javie, to wiadomo jedno - wcale nie jest taka trywialna do napisania, zwłaszcza że jednocześnie trzeba pamiętać o hashCode()
. Na szczęście nowoczesne IDE takie jak Eclipse czy NetBeans potrafią same wygenerować poprawną parę tych metod. Ale czy aby na pewno?Przypomnijmy sobie czego Sun (ups, Oracle) wymaga jako "kontraktu" metody
equals
(http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html#equals%28java.lang.Object%29):1. Powinna to być relacja równoważności, czyli musi być:
a) zwrotna:
x
musi być równe x
,b) symetryczna: jeżeli
x=y
, to y=x
,c) przechodnia: jeżeli
x=y
i y=z
, to x=z
2. Musi być spójna, tzn. ta sama para
x
i y
musi zawsze dawać ten sam wynik.3. I musi też zachodzić:
x != null
Przesłaniając metodę
equals
trzeba pamiętać o wszystkich pięciu warunkach - na szczęście naszej pamięci przychodzą na pomoc nowoczesne IDE :)czwartek, 7 października 2010
Social Circle Googla
Blog powróci w pełnej krasie w najbliższym czasie :) Ale kiedy pojawia się ważna kwestia, to post pojawia się od razu! :)
Ostatnio rozmawialiśmy w gronie znajomych o tym, że Google ma zbyt dużą wiedzę na nasz temat. Wie czego szukamy, wie co oglądamy, wie co piszemy w dokumentach (jeżeli używamy Google Docs), wie do kogo jak często i jakie maile piszemy (ach ten GMail) - bardzo przydatna wiedza jeżeli jest się firmą utrzymującą się z reklam.
Już teraz czuję się nieswojo, kiedy obok czytanego maila mam reklamy kontekstowe dopasowane do zawartości czytanej wiadomości. Wiem, że "przeczytał" to automat itd. - ale niesmak pozostaje.
Rozmawiając doszliśmy do wniosku, że gdyby Google połączył to co wie z informacjami z różnych portali społecznościowych, to wiedziałby o danym użytkowniku internetu WSZYSTKO.
I tak, piszę tego posta, bo właśnie pojawiło się takie rozwiązanie - Social Circle. Oczywiście BETA.
Ostatnio rozmawialiśmy w gronie znajomych o tym, że Google ma zbyt dużą wiedzę na nasz temat. Wie czego szukamy, wie co oglądamy, wie co piszemy w dokumentach (jeżeli używamy Google Docs), wie do kogo jak często i jakie maile piszemy (ach ten GMail) - bardzo przydatna wiedza jeżeli jest się firmą utrzymującą się z reklam.
Już teraz czuję się nieswojo, kiedy obok czytanego maila mam reklamy kontekstowe dopasowane do zawartości czytanej wiadomości. Wiem, że "przeczytał" to automat itd. - ale niesmak pozostaje.
Rozmawiając doszliśmy do wniosku, że gdyby Google połączył to co wie z informacjami z różnych portali społecznościowych, to wiedziałby o danym użytkowniku internetu WSZYSTKO.
I tak, piszę tego posta, bo właśnie pojawiło się takie rozwiązanie - Social Circle. Oczywiście BETA.
wtorek, 28 września 2010
SimpleDateFormat i wielowątkowość
Nie wszyscy zdają sobie sprawę, że standardowa w Javie klasa SimpleDateFormat z pakietu java.text nie jest bezpieczna ze względu na wątki. W sumie mało kto zdaje sobie z tego sprawę.
Bardzo często można spotkać w projektach Javy EE podobne linijki kodu:
Date date = GlobalConst.DATE_FMT.parse(datestring);
To, że potrzebna jest nam kontrola wielowątkowości pokaże następujący prosty przykład:
Bardzo często można spotkać w projektach Javy EE podobne linijki kodu:
Date date = GlobalConst.DATE_FMT.parse(datestring);
To, że potrzebna jest nam kontrola wielowątkowości pokaże następujący prosty przykład:
poniedziałek, 27 września 2010
Office 2007 - zmiana skrótów klawiszowych
Niektórzy z nas mają "przyjemność" pracować z Microsoft Office 2007 w wersji językowej innej niż polska. Wszystko jest fajnie, ale zdarza się, że Ctrl+B nie pogrubia tekstu ;) Np. w niemieckiej wersji pakietu Office służy do tego skrót klawiszowy Ctrl+Shift+F (a właściwie Strg+Umschalt+F) - od Fettdruck.
Niestety mam okazję pracować z Officem dopasowanym do języka Goethego ;) Skróty klawiszowe wyglądają w nim tak:
Ctrl+Shift+F - pogrubienie
Ctrl+Shift+K - kursywa
Ctrl+Shift+U - podkreślenie
Jak wrócić do starych, dobrych, jakże polskich Ctrl+B, Ctrl+I i Ctrl+U? ;) Jak zmienić te skróty klawiszowe? :)
Niestety mam okazję pracować z Officem dopasowanym do języka Goethego ;) Skróty klawiszowe wyglądają w nim tak:
Ctrl+Shift+F - pogrubienie
Ctrl+Shift+K - kursywa
Ctrl+Shift+U - podkreślenie
Jak wrócić do starych, dobrych, jakże polskich Ctrl+B, Ctrl+I i Ctrl+U? ;) Jak zmienić te skróty klawiszowe? :)
Subskrybuj:
Posty (Atom)