Do not use any software… It contains bugs…

Piotra Koniecznego cenię jako świetnego speca od zabezpieczeń. Niestety i jemu zdarza się strzelić babola. W swoim wpisie n.t. dziury w Javie pisze, że Jeśli jeszcze nie odinstalowałeś Javy, zrób to. Porada ta jest godna papieża*. Czemu? Otóż jej poziom jest zwyczajnie żałosny. Piotr nie ma racji. Wyczuwam u niego pewną formę nienawiści do javy, […]

Najbardziej pojebane wzorce projektowe

Noblesse oblige… III Singleton Co w nim pojebanego? Jest to jednocześnie wzorzec i antywzorzec. Szczerze nienawidzony przez wszystkich, a jednocześnie w wielu frameworkach z lubością używany (nie w prost, ale zawsze). Do tego jego prawidłowa implementacja w znacznej mierze opiera się o dobrą wolę programisty i zaufanie do użytkownika, że nie będzie grzebał w klasie […]

Dlaczego nie piszemy testów – obserwacja

W książkach poświęconych jakości kodu, testowaniu i metodykom zwinnym jako główną przyczynę braku testów wymienia się lenistwo programistów, olewactwo i niechcicę. Pozwolę sobie napisać kilka słów na ten temat. Od pewnego czasu w związku ze zmianą płatnika ZUS przekazuję swoje obowiązki innym programistom. Przy okazji mam możliwość obserwowania tego jak pracują i w jaki sposób […]

Praca z kodem zastanym – cz. I podział kodu

Każdy z nas prędzej czy później będzie musiał poświęcić swój czas na pracę z kodem zastanym. Angielskojęzyczna część branży ma nawet taki ładny termin „Legacy Code”, który nie obejmuje jednak wszystkiego o czym chcę pisać. W tym miejscu zajmiemy się podziałem kodu zastanego na kilka sposobów. Każdy z nich będzie opisywał kod w innym kontekście […]

reCaptcha – jak wkurwić użytkownika

Dziś trafiłem na mechanizm zabezpieczający, który nie jest w żaden sposób do przejścia. Zarówno dla bota jak i człowieka. Oto Egglue CAPTCHA. Mechanizm wymaga wpisania słowa, które intuicyjnie pasuje do reszty zdania. Kurwa… co znaczy intuicyjnie… mi się od razu dowcip kojarzy: Jasiu co kojarzy ci się z wiosną? Dupa proszę pani. Jak tak możesz […]

Jak nie uczyć programowania II

Pisałem już o tym, ale dziś trafiłem na przypadek skrajnego debilizmu ze strony wykładowcy… Rekurencja choć pozwala na rozwiązanie wielu problemów w prosty sposób sama w sobie jest niewydajna. Związane są z nią problemy takie jak brak przypadku bazowego, brak możliwości predykcji liczby wywołań i tym samym konieczność tworzenia skoków w kodzie maszynowym, trudne testowanie. […]

Zły kierunek programowania…

… ale niestety konieczny. Tak się w życiu złożyło, że technologie popularne i zachwalane przez wszystkich jako przykłady doskonałego oprogramowania mało mają w sobie z rzeczywiście dobrego softu. Względnie ich mechanizmy, które pozwalają na odpowiednie zastosowanie zasad są zbyt skomplikowane. Sławek Sobótka opisywał ten problem w dość ogólny sposób. Ja natknąłem się dziś na jego […]

Singleton inaczej

Po dzisiejszym spotkaniu WDPSG nasunął mi się pewien wniosek. Rozmawialiśmy sobie o wzorcu Singleton i jego zastosowaniach. Dyskusja była bardzo ciekawa i rzuciła nowe światło na problem wzorca Singleton. Jednak po kolei. Patrząc na źródła wiedzy o wzorcu na polskiej i angielskiej wikipedii można dojść do wniosku, że Singleton jest bardzo prostym wzorcem. Wrażenie to […]