Vulnerability – Mutable members

Let’s imagine the situation when your class is responsible for complicated calculations and data for processing are delivered as List collection in the constructor. During the execution of the module on the test environment, you are receiving strange results despite the same data provide you correct results at JUnit tests.

public class SomeClass {
   private List<RawData> data;

   public SomeClass(List<RawData> data) {
...

You made double-check and the algorithm is fine. So what can be wrong?

Continue reading →

4Developers Łódź 2017

Pierwsza Łódzka edycja konferencji 4Developers 2017 już za nami. Miałem przyjemność uczestniczyć w tym wydarzeniu jako słuchacz i prelegent. 

Organizja konferencji bardzo fajna. Jak na pierwszą edycję pojawiło się sporo osób. Również co do miejsca nie można się przyczepić, darmowe miejsca parkingowych w Łodzi warto docenić 😉

Pierwsze komentarze z osobami, które znam były bardzo pozytywne. Jedyne czego mi tak naprawdę brakowało z technicznej strony to nagrywanie prelekcji w celu ich późniejszego udostępnienia.

Dla zainteresowanych udostępniam własną prezentacje Grawitacja działa czyli jak współdziałać w zespole i jego otoczeniu

 

 

 

Co do tematyki, najciekawiej prezentowały się (z mojego punktu widzenia) ścieżki JVM i Agile. 

Z racji, że po prezentacji było kilka pytań i parę rozmów w kulisach, pokuszę się wkrótce o jakieś podsumowanie. 

Mam nadzieję, że następna edycja będzie jeszcze lepsza i większa.

How to configure shared DLQ for set of ActiveMQ queues?

Active MQ server offers custom DLQ configuration. 

If you have to host queues for many projects on the same ActiveMQ server you may want to customize Dead Letter Queue for each project. Configuration is pretty simple. A group of queues should share the same prefix e.g pre1

Let assume we have following queues:

  • pre1.queue1
  • pre1.queue2
  • pre1.queue3
  • pre1.queue.dlq – Dead Letter Queue

To set pre1.queue.dlq as custom DLQ for above group at ActiveMQ.xml file new policyEntry with sharedDeadLetterStrategy must me added. Here is example configuration:

<policyEntry queue="pre1.>">
  <deadLetterStrategy>
    <sharedDeadLetterStrategy>
      <deadLetterQueue>
        <queue physicalName="pre1.queue.dlq"/>
      </deadLetterQueue>
    </sharedDeadLetterStrategy>
  </deadLetterStrategy>
  <pendingMessageLimitStrategy>
    <constantPendingMessageLimitStrategy limit="1000"/>
  </pendingMessageLimitStrategy>
</policyEntry>
	

Gravity works!!!

In the Space, on the Earth, everywhere Gravity works! It's nature principle. Simple and beautiful in its simplicity. But what common this physic rule has with Software Development. Might be said, it's something strange and curious.
Let's think about Gravity in depth and translate it to something useful for Developers. When you look into rules that play with Gravity, you can see some kind similarity in relation to our everyday work.

Continue reading →