"Don’t worry if it doesn’t work right. If everything did, you’d be out of a job."

Mosher’s Law of Software Engineering

Dziurawa Java 7 – 0 day

Posted on sie 28, 2012 in Inne, Java

Dziurawa Java 7 – 0 day

0day na Javę 1.7

O atakach wykorzystujących nową, niezałataną jeszcze dziurę w Javie 1.7 poinformował FireEye w niedzielny wieczór. Zaobserwowane ataki prowadzą do instalacji trojana Poison Ivy RAT, który następnie łączy się z adresem

Read More

Bad Boy: SQL i typ FLOAT

Posted on lip 9, 2012 in Inne, SQL

Bad Boy: SQL i typ FLOAT

Być może jestem zbyt wyczulony na tym punkcie, ale nóż w kieszeni mi się otwiera, kiedy widzę „programistę”, używającego radośnie typu FLOAT w operacjach finansowych (najczęściej  jest to albo bardzo słaby koder, albo świeżo wypieczony absolwent uczelni wyższej, żyjący ciągle w wierze, że uczelnia dała mu wiedzę absolutną i pełną). Najbardziej jednak irytuje fakt, że te same błędy – które udało się wytępić z jednego języka programowania, np. Javy, gdzie po udzieleniu reprymendy panuje niepodzielnie BigDecimal – powracają ciągle i ciągle w nowych odsłonach. Dziś wróciły w projekcie tabelki bazy danych.

Read More

JavaZone – kolejny świetny trailer

Posted on cze 21, 2012 in Inne, Java

Pojawiło się nowe video promujące konferencję JavaZone. Jak zwykle utrzymane jest w humorystyczno-geekowym klimacie. Zapraszam do oglądania!

Read More

Oracle virtual index – strojenie bazy danych

Posted on maj 22, 2012 in Oracle

Oracle virtual index – strojenie bazy danych

Natrafiłem dziś na fajną zabawkę w Oracle – przyda się z pewnością każdemu, kto właśnie optymalizuje swoją bazę – powiedzmy – dużą bazę. Optymalizacja długich zapytań, to w dużej mierze sztuka dobrania najodpowiedniejszego zestawu indeksów dla odpytywanej tabeli. W przypadku baz danych o stosunkowo niewielkiej ilości danych, sukces zależy jedynie od cierpliwości i wiedzy o mechanizmach bazodanowych. Nieco bardziej skomplikowane jest strojenie bazy, kiedy objętość jej tabel zaczynamy mierzyć w Giga albo nawet Terabajtach . Tam nie zawsze możemy pozwolić sobie na przeprowadzenie wielu eksperymentów, choćby z powodu ograniczonej przestrzeni dyskowej, przeznaczonej na indeksy.

Read More

Programisto! Studia są potrzebne

Posted on maj 18, 2012 in Inne, Rekrutacja

Programisto! Studia są potrzebne

Na forach dyskusyjnych skupiających środowiska programistyczne, czy około informatyczne, co jakiś czas pada pytanie „Czy programiście potrzebne są studia?” Oczywiście wątki te wywołują burzliwą dyskusję, w której dyskutanci dzielą się na dwa obozy – zeby ostatecznie nie wykreować żadnego rozwiązania dla postawionego pytania. I tak kilka razy w roku, i w koło Macieju to samo… A jak to jest na prawdę? Czy warto poświęcać 3 albo 5 lat na studia? A może od razu iść do pracy?

Read More

Wskazówka: count(*) to zły pomysł

Posted on maj 8, 2012 in Oracle, SQL

Wskazówka: count(*) to zły pomysł

Zauważyłem, zresztą chyba nie tylko ja, że wielu programistów nadużywa konstrukcji count(*) w swoich zapytaniach SQL:

select count(*) from my_table; -- zlicz wiersze w tabeli

Zapytania tego typu pisze się odruchowo, za każdym razem, kiedy chcemy zliczyć wiersze spełniające wybrane kryteria. Nie chcę mówić, że jest to całkowicie złe rozwiązanie, ba!, sam tak robię, kiedy potrzebuje napisać zapytanie na szybko, czy przygotowac jednorazowo jakis raport z bazy danych. Chcę tylko powiedzieć, że nie jest to najlepsze rozwiązanie, kiedy zaczynamy myśleć o szybkości zapytania, jego optymalności – w takim przypadku sporo lepsze jest count(1).

Read More

Jednoosobowa jednostka dowodząca…

Posted on mar 9, 2012 in Inne, Rekrutacja

Jednoosobowa jednostka dowodząca…

Chyba każdy, kto miał okazję pracować w korporacji, wie, jak wygląda tam podejmowanie decyzji. Dla tych, którzy jeszcze nie mieli (wątpliwej) przyjemności poznania tego procesu, przybliżę go w dwóch zdaniach.

Każda, ale to absolutnie każda czynność, jaką wykonujesz podczas swojej pracy w korpo, wymaga szeregu zezwoleń, pozwoleń, zapytań, zleceń i co tam sobie jeszcze znudzony menedźment wymyśli. Słowem, kiedy potrzebujesz zainstalować na swoim komputerze dajmy na to przeglądarkę internetową – np. Google Chrome czy Mozilla Firefox; musisz wystosować request do działu IT / HelpDesk, w nim opisujesz czego chcesz, ile to kosztuje, po co Ci to, itp.. Następnie twój request akceptuje lider Twojego zespołu, potem jego zwierzchnik (first line manager), potem kierownik działu, a potem podobna drabinka w drugą stronę – szef działu IT zleca wykonanie liderowi, ten przydziela taska szeregowemu pracownikowi, a ten przychodzi i instaluje Ci przeglądarkę – ewentualnie odblokowuje taką możliwość. Wszystko trwa tydzień, a to tylko prosta decyzja, nie wymaga żadnego zakupu, szkoleń, licencji, wyjazdów i spotkań. Wyobraź sobie decyzje w sprawie użycia scali zamiast javy, lub jakiejś bazy NoSQL w projekcie – spotkasz się z betonem decyzyjnym – nikt od pewnego szczebla nie rozumie Twoich argumentów – dobrze jest jak jest, trendy trendami, piszemy projekt dalej w java1.4 i Struts 1.

Read More