22 February 2026

BreakPointLocator: The Pattern That Can Save Your Team Weeks of Work

A cheap, low-effort debugging pattern for large codebases that helps you quickly narrow down where to set breakpoints - without /invasive/ logging or big code changes.

16 February 2026

How to Handle 1700000000000000000000000000000000 Test Cases and Tests That Actually Matter

There are actual problems with how tests are used, so let’s look at the omitted aspects of testing. To get a sense at what I'm aiming at you can check how huge successful systems try to survive, see: Oracle Database 12.2 – 25 million lines of C code.

11 February 2026

CleanCut-Flow as flexible branching strategy for Git

Constraints:
  • We want to be able to release a version on demand.
  • We need to support multiple versions when required.
  • We need a solution that scales with our current and future needs.

22 January 2026

In 2009, Final Interfaces were a concept, and many years later Java got Sealed Types

When working on submissions for Projects coin - Controlled Inheritance was one element that I wanted to have.

20 January 2026

Coding Style: Formatter barrier

How to bake structural metadata into code formatting

19 January 2026

Java Proposal: The Glue Classes - Explicit, Modular Type Extension


This post was rewritten to be usable as a prompt !

A design idea that reduces inheritance and boosts chainability by moving behavior into composable call chains.
Sample code:
Objects.requireNonNull(some); final A a = some.getA(); Objects.requireNonNull(a, "explanation"); validate(a); final B b = a.getB(); Objects.requireNonNull(b, "explanation"); b.process(param1);

Same code written using glue:
some..ensureNotNull()// .getA()­..ensureNotNull("explanation")­..ensureValid()// .getB()­..ensureNotNull("explanation")// ..process(param1..ensureNotNull());

10 January 2026

17 August 2011

If (false) may be useful

Can you be friend with this kind of dead code? In this particular subject my opinion is slightly different from the general. I can agree that in the ideal programming world there is no need to use dead code, but in reality there are situations when it's good to consider this solution as appropriate.

20 March 2011

Secret behind 0.999... = 1

« Polska wersja »
Wikipedia: 0.999...

Searching a solution we often forget about the problem behind it. I'm familiar with the wrong focusing on 'how' instead on 'why', and what's more I've seen people doing the same mistakes as well. For example, let's just look at law regulations as synonym of complication paired with uncleanness. However, I'll drop that subject and introduce the similar problem occurring in maths. Do not expect any great proof, because I'll do that to explain it as simple as possible.

21 December 2010

Przeglądarki kontra bezpieczeństwo

Czyż Internet Explorer nie służy do przeglądania internetu z twojego komputera i vice versa?

Mogliśmy jakiś czas temu zaobserwować miły gest ze strony Mozilli wspierający osoby które chcą zwiększyć bezpieczeństwo ich produktu (patrz: Refresh of the Mozilla Security Bug Bounty Program). Zaciekawiony tymże faktem poszperałem więcej w poszukiwaniu informacji o bezpieczeństwie naszych przeglądarek...

Ciekawostką jest raport firmy CERT z 2005r (ich pierwszy nawiasem mówiąc) - jednakże jego jakość jest wątpliwa i bardziej tu pasuje nazwa 'zestawienie'. Taki współczynnik jak ( Liczba luk / Popularność ) jest nie tyle nietrafiony co wręcz błędny. Otóż im większa szansa zysku z odkrytej luki tym częściej i szybciej zostanie ona wykorzystana, a w internecie ilość przekłada się przecież w bezpośredni sposób na zysk. Tak więc, moim zdaniem, powinno być raczej ( Liczba luk * Popularność ). Ten sam mechanizm działa też w drugą stronę: firmy mające małą liczbę użytkowników są znacznie mniej podatne na ataki.

16 July 2010

Informatyk zawodem wysokiego ryzyka?

Kolejny post dotyczący naszego Polskiego "zaścianka". A mianowicie chciałbym napomknąć jak wygląda egzystencja nas informatyków w kontekście przepisów prawnych oraz strachu przed naszymi umiejętnościami.

13 July 2010

Javarsovia 2010 z drugiej ręki

Odczucia
  • Z niecierpliwością czekam na następną Javarsovie, co moim zdaniem samo z siebie świadczy o tym jak bardzo byłem zadowolony z uczestnictwa.
  • Afterparty także pobiło moje oczekiwania, tylko prelegentów na niej trochę brakowało.
  • Dodatkowo byłem pod wrażeniem liczby uczestników.
  • Na pewno niewybaczalnym jest fakt, że nie wygrałem Asusa.
  • Tak wiele się działo, że brakowało mi czasu, aby dokładnie zapoznać się ze stoiskami sponsorów.

12 July 2010

GUI in GridBagLayout

Basically, I do not like GridBagLayaout, but from my point of view it's the most effective way to build and maintain GUI. So before explaining my point of view, let's eliminate other path.

20 February 2010

Forwarding exceptions as language potential

Each of Java programmer knows how exhausting a handing exception can be. So sooner on later he/she founds the situation when he/she exactly knows that he/she is handling the exception that will never occur. Some thoughts about this can be found here.

14 February 2010

The '!' logical-complement operator (fixed)

It's high time to clear doubts about: The '!' logical-complement operator. With little help of someone who can express himself more clearly, subject should be easier to follow.


Some time ago I used to know all operators priorities in C++, using a minimal number of braces resulted with a quite compact code in logical cases. It was really easy to read that again, but only for me, what I did not see as a problem. When I started to work on the same code with others there were no turn back and I had to make conditions more readable...


18 December 2009

The logical-complement operator !

Maybe I'm weird but I really do not like syntax for this operator.

4 October 2009

I just killed Eclipse

I like enum-s more than most people do.

They are really nice to use and synchronization-safe. But as I found, they have their limits as well.

After generating 1,8Mb Java code for one enum Eclipse dying after most try of refactorization ;), Java was not happy at all about it as well with error:

The code for the static initializer is exceeding the 65535 bytes limit

30 March 2009

Enhanced while statement proposal

A proposal for a multi‑layer while statement.

27 March 2009

'forget' keyword proposal

2026 version

An alternative proposal for control scope in Java.