Posts tagged ted


Maybe you know, maybe no – it’s about five years as I’m involved in the Apache Struts project. About two years ago I became a Struts 2 Lead – whatever it means in non-profit organisation working on an opensource project where everyone is equal 🙂 Nevertheless I like what I’m doing – code and refactor 🙂 And as there is a plenty of code in the project and most of them need to be improved – I have what to do for the next few years 😀

Recently I’ve started working on a new plugin – the MVEL plugin – which will allow to use MVEL instead of OGNL to handle expressions. In theory the task wasn’t too difficult, Struts 2 already provides many extension points where you can hook in with your code. Replacing expression engine require to implement two interfaces – very simple and straightforward.  After I did that, I have started testing many possible expression syntaxes which are already present in unit tests.

And then problems show off :/ The main problem is conversion, to give you a hint check the below expression which simple means array in both – MVEL and OGNL


but the problem is how both engines handle such statement (pseudo code):

  • MVEL:
    new Object[]{Integer, Integer, Integer}
  • OGNL:
    new ArrayList(){Integer, Integer, Integer}

As you can see the difference is slight but important – the wrapping object is totally different. And then goes conversion logic, as I wanted to get string on output, built-in conversion mechanism do this:

  • MVEL: [1]
  • OGNL: [1,2,3]

Not so good 😉 The problem is that the conversion logic is too narrowed to OGNL. After some internal brainstorming I’ve came up with a plan – to allow other expression engines to work with Struts 2, first I must decouple conversion logic and OGNL 🙂 So the plan is:

  • extract conversion mechanism to allow replacement of it (another extension point)
  • simplify current logic related to converters created by users
  • implement more common logic to allow handle wide list of results
  • implement MVEL specific conversion
  • implement MVEL plugin 🙂

As you see the plan is simple, but as it is with plans – it is good to prepare them, but to follow them is a different story 😉

Finally, I found something interesting in the latest newsletter from TED – something about attention 🙂

Streaming Full Movie The Nice Guys (2016) Free Online

The Nice Guys (2016) Free Latest Films, Full Movie Online Watch Free, Free Movies Streaming, English Subtitles Full HD.

‘The Nice Guys’ is great film tell story about A private eye investigates the apparent suicide of a fading porn star in 1970s Los Angeles and uncovers a conspiracy. This movie have genre Crime, Action, Thriller, Comedy, Mystery and have 116 minutes runtime.

Yaya DaCosta as Tally, Margaret Qualley as Amelia Kuttner, Ryan Gosling as Holland March, Matt Bomer as John Boy, Russell Crowe as Jackson Healy, Angourie Rice as Holly March.

The Director of this movie is Shane Black. The movie The Nice Guys is produced by Nice Guys, Silver Pictures, Misty Mountains, Waypoint Entertainment, Bloom and released in May 15, 2016

Related Movie
The Nice Guys have some related movie, The Hunger Games: Catching Fire, Taken 3, Sherlock Holmes, Now You See Me, Se7en, The General’s Daughter

Watch Full Movie The Nice Guys (2016)

You can enjoy to watch movie in theater or by streaming in HD quality by following link on this page. If you don’t have account, you can register for FREE to make sure our visitor is human. After register you can Watch or download this movie with high quality video.

Incoming search term :

Watch The Nice Guys Online Free putlocker
The Nice Guys Episodes Online
The Nice Guys Watch Online
The Nice Guys English Episodes Free Watch Online
The Nice Guys Free Download
The Nice Guys For Free online
The Nice Guys Episodes Online
Watch The Nice Guys 123movies
The Nice Guys English Full Episodes Download
The Nice Guys Online Free Megashare
The Nice Guys Free Online
The Nice Guys Full Episode
The Nice Guys HD English Full Episodes Download
Watch The Nice Guys Online Putlocker
Watch The Nice Guys Online Free
The Nice Guys English Episode
The Nice Guys For Free Online
The Nice Guys Watch Online
The Nice Guys Episodes Watch Online
Watch The Nice Guys Online Viooz
The Nice Guys English Full Episodes Free Download
Watch The Nice Guys Online Megashare
The Nice Guys English Full Episodes Online Free Download
Watch The Nice Guys Online Megashare
The Nice Guys HD Full Episodes Online
Watch The Nice Guys Online Putlocker
The Nice Guys English Full Episodes
Watch The Nice Guys Online Free megashare
Watch The Nice Guys Online Free Viooz
The Nice Guys Full Episodes Watch Online

do it as want to

Why do I like working with the Apache Struts 2? Because I can simple change the framework behaviour and customise it to what I needed. And not just because you have plenty of options to modify, but especially because you can simple develop your own class which can replace version provided by the framework. Yeah, you can replace almost every framework class – Struts 2 was designed with that on mind 🙂

Recently I got involved in working on some old issue – WW-1967 Dynamic Method Invocation, validator with ActionName-aliasName-validation.xml files. The problem is related to Dynamic Method Invocation functionality and how the name of validation definition XML file is created. By default the file name will base on an action class and defined alias name and suffixed with -validation.xml, eg:

<action name="Login" class="org.demo.example.LoginAction">

for action defined as above, the validation definition file name will be constructed as follow:


There be a problem when you want to use DMI to call any public action’s method – which isn’t the best practise, though 😉 Anyway for each method the same validation file will be used, which ins’t a good idea. So, if you try to call an action like this – Login!check.action, the above file will be used to validate input as method name isn’t included in logic used to resolve file name.

How it can be solved? Quite simply, validation is provided by ValidationInterceptor which delegates execution to ActionValidatorManager to perform the validation process. But the context name is constructed by the mentioned interceptor in method:

public String getValidationContext(ActionProxy proxy)

So, to solve the problem you can extend ValidationInterceptor and override the method to provide your own context name like below:

protected String getValidationContext(ActionProxy proxy) {
    if (dmiEnabled && StringUtils.isNotEmpty(proxy.getMethod())) {
         return proxy.getActionName() + "_" + proxy.getMethod();
    return super.getValidationContext(proxy);

After that, the file name will be created as follow:


I’ve prepared a small demo how to do it – just check it out from GitHub.

And at the end see this talk from TED and give 10 minutes to solve all your problems 🙂

Hacked By GeNErAL



Recently my company prepared new visiting cards for us, nothing special you could say, but we were asked what do we want to put on them 🙂

There are obvious things like first name and last name, a company e-mail address or web site. We could also add our Twitter and GitHub accounts – as we try hard to save the World giving all we can to OSS 😉

These were the obvious things, but the funny part was that we were able to choose the position name – you know, all that high pumped words 😛 We spent a lot of time trying to find what would be the best (for us and for each of us), like “software developer”, “java passionate”, etc. At some point, we decided to use “software engineer” term as is (apparently) a better sentence than “developer” ?!?

Never mind, with reduced set we started adding some prefixes like “senior” or “java” or … many others. At the end I have selected this one below, what do you think ?


And as usual some positively inspiring talk from TED:

a new layout

I’m a Mac user, as you probably know, but I was using Mac in a wrong way – is it possible anyway? 😉 The most frustrating thing when you start using Mac is CMD+W shortcut or CMD+Q is even worst because Q is next to W 😛

Anyway, in my beloved IDE, IntelliJ IDEA I was using the old behaviour to close windows – CTRL+F4 (as I recall). It was again frustrating and slow. Such a key combination isn’t optimal to use, to hit those keys you must move the whole arm. Try and you will see and figure out that you’re doing that few hundred times a day – what a waste 😛

… but there is a solution for that, not for everybody but for those who use at least IntelliJ IDEA 10.5. With that version a new keyboard layout aka keymap was introduced specially for a Mac users. It’s called Mac OS X 10.5. On the beginning is weird, you must very often use keymap reference (printed out and lying down next to keyboard).

It could take few weeks or months to get used it, but after that you become a real Mac user in case of using  your IDE 😉 You will gain a lot of fun and pleasure to use common Mac shortcuts in IntelliJ IDEA and you’ll never want to go back to the old time consuming shortcuts. Give it a try!

As usual at the end some TEDs. For a long, long time there were no interesting talks from TED – as for me of course, but today with a new newsletter I’ve got two very inspiring videos, I encourage you to spend around 20 minutes to watch them.

Questions no one knows the answers to

Larry Smith: Why you will fail to have a great career

what I learnt

Do you remember my posts about the fourth question and fast thursday ?

Here is another constant behaviour for another day – friday with constant question: what you learnt (during this week).

Your answer can be related to your job or to hobby or to whatever you want. Give just one small example of what you learnt, it can be something small and funny or huge and very important 😉 It’s up to you, but share your knowledge, make other start wondering what to do next, maybe you’ll inspire others to do something like you. It’s very informative attitude, you’re expressing yourself, showing you aren’t just a nerd 😉

Ok, so what I learnt ? I remember two things:

  1. below 0 degrees it’s hard drive a bike, not because it’s cold, but because a glass from the helmet freezes and you see nothing on the road 😉
  2. at last I understood what’s the difference between @Inject (JSR-330) and CDI (JSR-299), CDI bases on @Inject, but you cannot put equal mark between them

There were probably more, but it isn’t important to say about all of them, just two is enough. Please try, share your knowledge!

And as usual some nice presentation from TED – be smart, play games 😉

a fast thursday

Do you remember the post about the fourth question ? If so, there is a little backward of that. Some people like to talk, they talk a bit too much, especially in a case of the Daily StandUp. You should answer short and on topic, not to talk about what if … just answer the three questions: what I did, what I’m going to do, what blocks me.

The fourth question should be used to bit relax the discipline (it isn’t the Army ;-)) , but overused it can have negative influences. To stop that, we introduced a fast thursday – the day without the fourth question, you must answer the standard three questions. Nothing more.

Some says, if you talk too much, you did nothing 😉 So, don’t talk, answer!

Today I have another interesting presentation from TED, to sum up: “All right, so for some of you, this may be really, really out there.”

copy pattern

Recently I’ve joined a new ongoing project. In theory it should have been easily jump into it, but as usual each project is specific. The team developed a custom framework to generate JSF view base on an entity class. The framework after first look is quite simple, but as always the devils is in the details 😉 So, I’ve spent a bit of time to catch up what is real going on. The next thing I had to implement was an option to export entire view to PDF – there was already an example how to do it and I followed it. Just copied the source and started adjusting it to my needs.

That’s the Copy Pattern. It’s used very often when you join a new project, when you learn a new language, when you do something first time. You need a pattern to base on, to follow.

So, it isn’t a bad idea to use the copy pattern, but you cannot stop on that. After first step, after you grasped the problem you must apply another patterns – real software development patterns. Leaving the code as is after using the copy pattern is bad – we’ve seen it a lot in many places. The copy pattern is just a beginning, is the easiest way to get into the project.

And the beauty of this is that you can change the name of the class, extract methods, extract new classes – just before messing with a code repository, before posting too match changes,that no one will know what is really happening;-)

Don’t be afraid to use the copy pattern, but also don’t stop on it!

And as usual at the end a talk from TED, this time about a car for blind people. And about new control interfaces we can face soon 😉 Enjoy!

How to make the Confitura ?

Less than three weeks left to Confitura conference and we still have discussing with new Partners. Many of the local companies are supporting us, it’s so nice to see them with us! But it’s a hard work, lot of mails, phone calls and some paper work at the end. Especially it’s hard for me as a one of the Organizers – I’m ordinary Software Developer and quite often don’t understand what moves business forward 😉

Anyway it can be the largest free of charge conference in Europe (regarding Java, software development, etc). Right now we have over 800 participants (some of them will give up just before the conference – as usual 😉 ), 13 Partners (and we’re discussing with another few), 20 lectors from around Poland – huge event and everything because of passion 🙂

So, if you don’t know what to do on 11th of June, come in and see how it is.

And at the end two presentation from TED – maybe not really, but they’re funny and practical as usual 🙂

Gel: Gotta share!

and How to tie your shoes ?

Go to Top