Monday, July 7, 2025

A Summer Start in Preveza

The first week of July saw us eager for our summer escape. Our hearts were set on Lefkada, but as luck would have it, desirable accommodations there were simply not to our liking. Our search led us a few kilometers north, to Preveza, where we found a promising option: Ninos Grand Hotel.

Upon our early arrival around 8 AM, the receptionist at Ninos Grand Hotel greeted us with remarkable friendliness. Seeing my pregnant wife, he kindly prioritized our check-in, a gesture we deeply appreciated.

Our Room: A Mixed Bag

We were assigned a three-person room, perfect for two adults and our six-year-old daughter, located in one of the two-story annex buildings. The room itself was quite pleasant, featuring comfortable beds, a television, air conditioning, and even a coffee machine. The space was subtly divided by a thin wall, creating a larger area with a double bed (presumably for us) and a smaller nook with a single bed for our daughter.

However, this open layout, while spacious, lacked a crucial element: privacy. There were no doors or even curtains between the two sections. Furthermore, the air conditioner was mounted directly in the smaller, child's section, raising concerns about our daughter catching a chill. The bathroom also presented minor inconveniences; it lacked holders for toothbrushes, and the shower's glass partition was too short, leading to inevitable water spillage on the floor.

The Hotel's Charm

The main hotel building exuded a pleasant ambiance. The reception area flowed into a spacious lobby adorned with numerous sofa beds, perfect for relaxing. An indoor bar and a small shop added to the convenience. Two large dining areas were designed to accommodate guests, and the omnipresent air conditioning kept the interior comfortably cool, though it could get a bit warm during peak meal times when crowds converged.

Outside, overlooking the beach, a lovely terrace shaded by trees offered a delightful escape, even at midday. This same terrace transformed into an inviting à la carte restaurant in the evenings, promising pleasant al fresco dining.

Culinary Delights (and Minor Gripes)

The food at Ninos Grand was, without a doubt, delicious. We savored traditional Greek dishes alongside more familiar options like potatoes and meat, catering to a wider European palate. My only minor critique would be the limited variety; the salads and sweets, while tasty, remained largely consistent throughout our stay. Drinks were standard — Greek beer, water, and soda. Unfortunately, the reliance on plastic cups rather than reusable glasses was a noticeable environmental downside.

Room Cleanliness: A Persistent Challenge

Our experience with room cleaning was less than ideal. While a cleaning lady was scheduled to come daily and change towels upon request, her visits consistently coincided with our presence in the room, either right after meals or during siesta. We only managed to get our room cleaned on days we were out for the entire day. Even then, the cleanliness was subpar; we often found sand and hair on the floor. One day, I noticed that my shoes hadn't even been moved to clean the sand beneath them, indicating a lack of thoroughness.

Pool Experience: An Unsettling Incident

The hotel boasted four pools, seemingly two for children and two for adults, though all were frequently occupied by children. Initially, the pools appeared clean and well-maintained. However, one day, I witnessed a disturbing incident: the water in one of the larger pools became noticeably dirty, appearing as though a small child had an accident. While such incidents can happen, I would have expected the hotel staff to immediately clear the pool and initiate a cleaning procedure. Instead, the dirt remained for some time before eventually disappearing. This unsettling experience led my daughter to refuse to go into any of the pools afterward, leaving us wondering about the frequency of such occurrences.

Friday, January 8, 2021

2020 Retrospective

Am I back?

    Here is me, after long time not writing anything on that blog, I am coming with a retrospective of year 2020. I am doing that because I understood that I am getting older, my natural HDD is not so big and I start to forget events from past :), also year 2020 was one special, no comment on that.

My daughter

    The most important thing in that year, last year and most probably all my other future years will be my daughter (in future can be another daughter or son, no action for now :)).
    This year she did a lot of progress, which is normal for a child of one year. Going back from most fresh memories, she started to intonate the Jingle-Bells melody, most probably they learned in kindergarten, this is most obvious place where she learned as we didn't put this song on TV. From TV she learned few months ago to intonate the "Twinkle, twinkle little star" :). My wife is saying that at one year she is doing better than me on 33 years, well what can I say, she is all her mother :) and deep in side I am proud.
    As mentioned earlier, this year she went to kindergarten, a private one which is accepting children from 1 year till 3 years old. The kindergarten is few kilometers away from the place where we are leaving now, so each morning I am getting her to and then at noon picking up. We are not ready yet to leave her for entire day and it does not make sense for now, we are staying at home almost all day, so she can sleep at home.
    Going back in my memories, let me stop at our trip to Croatia this year. It was her second year at sea, last year and first one for her was in Greece, Crete. Well this year it was simpler, she had 1 year and 4 months, so less screaming, better sleep and more fun :) She liked to swim especially under the song about Elephants on spider silk, "Un elefant se legăna pe o pânză de păianjen și deoarece nu se rupea a mai chemat un elefant, 2! Doi elefanți ..." and on each count we were sinking her up to neck (not sure if I phrased the idea correctly :)). The first time and only time for now, she was able to escape from her bed and knock at door, we got scared, but happy that she didn't fall.
    Even more back, let's stop in mid of July, when my wife's sister and husband visited us. It was nice period of 3 weeks, when Amelia learned to cheers (she was drinking water obvious) and walk. It happened that she saw few children running close to her, by that time she was only doing few steps and mostly crawling; she wanted to play with them and realized that for doing that she should walk, from that time she never crawled, only walking, now she is running. About running, each time when we go to mall she is running and screaming, like a man which got the freedom :).
    One year, first year, it was one of the happiest days in our life and the most scary, one year passed, the time is flowing so fast and she is already so big. I remember days when I was able to carry her without any problem on one hand, but not anymore. We celebrated in company of my mom and brother, others were not able to visit us because of restrictions. She got a lot of presents, no the house is full of toys. We bought one big "1" balloon and few other balloons which were glued everywhere in living room and other ornamentations. We were grilling that day and weather was nice.
    Rolling, almost forgot about. Somewhere in winter she learned to roll, not walking and not crawling, but rolling, it was quite funny. So when she wanted to get somewhere, she was rolling, well she had problems to turn, but if by some chance she was able to manage to turn then she was rolling to get to target. 
    I just remembered when she was able to crawl. It was after 1 year, we had in visit our friends, Pablo and Iulea. Pablo dressed some coloured socks, specially for Amelia and it worked, she crawled to socks, so "Pablo thank you :)".

Traveling

Croatia

    Despite the pandemic, we were able to travel to Croatia this year. The choice was simple, the place where we can get by car with a child of 1 year and 4 months and which would be open for foreigners.
    We got there and back by doing a stop in Austria for a night, so we had two days 5 hours trip. We stayed for 3 weeks in a village close to Rijeka, in Costrena.
    We liked the Croatia from our first visit in 2018 (yes most probably Amelia was concepted in Croatia) and we decided that it worth to go again. In Croatia the water is very clean and beaches are short and have trees, which is very good with a child in a sunny day.

Austria 2x

    Year 2020 we were two times in Austria, before the borders were closed because of COVID-19 epidemic. 
    The last time we went to Vienna,  because I had an invite for an interview at Amazon. The Amazon recruiters came to Austria, Vienna and invited a lot of potential candidates. Well went nice, but I didn't pass, at least we enjoyed two days in Vienna and nice hotel payed by Amazon :).

    The new year, the 2020, we met in Graz with my wife's sister, her husband and my brother. Obvious it was first trip to Austria that year. We chose Graz because it was somewhere in the middle between us, Prague and them, Bucharest. It is nice city and there is more to explore, but in summer. We visited Arnold Schwarzenegger's childhood house which now is museum.

Career

This year I changed the project, but remain in same company, Barclays and got higher position, now I am Vice President :). It got to be quite challenging work, as it is big chaos in team, but I would say that I succeeded, however will see on my "End year review" which should be hold soon.

Well that is a short or long summary of my 2020 year.

Sunday, September 22, 2019

Remove background to scanned document

Here is a receipt which I found for removing the background for a scanned document. In my case are the scanned pages for scores.
As tools I used GIMP and online tool to decompose a PDF file to images and another tool to compose a PDF from images.


Decompose the PDF file into images

Using the online tool https://pdftoimage.com/, decompose PDF file into images.

Remove background

Open the image in GIMP application

 

Next step is to change the Saturation to 0.00.

  1. Choose from top menu Colors > Saturation
  2. Set value to 0.00 for Scale

Change few values for Shadow
  1. Choose from top menu Colors > Shadows - Highlights
  2. Set value to 10.0 for Common > White point adjustment
  3. Set value to -50.0 for Highlights > Highlights

As last step the image can be sharpen
  1. Open Filters > Enhanced > Sharpen
  2. Set value to 2.0 for Amount

That's it. Export the image or overwrite the original one.

Compose PDF from images

Open the website https://www.ilovepdf.com/jpg_to_pdf and create the PDF from images.

Wednesday, September 4, 2019

Java: False safety provided by Optional

It's been a while from the day when Java 8 was released and the entire world get access to new API, including new class Optional.
Even if a lot of time already passed, the uncertainty on how and when to use Optional still persist.

In past days, before Java 8 the developers would create a service which would looks something like following:

public class UserRepository {

    public User findUserByName(String username) {
        // ... Code which will find user
        return user;
    }

}

The code which consumes the result of above API should verify for NULL if unwanted NullPointerException is desired.
Unfortunately the missing verification brought a lot of issues and money lose during entire Java history.

So it looked like Java 8 brought us a silver bullet, or at least so think a lot of Java developers. Today the UserRepository would look like following:

public class UserRepository {

    public Optional<User> findUserByName(String username) {
        // ... Code which will find user
        return Optional.ofNullable(user);
    }

}

So does the Optional is really save us from NullPointerException? is it a silver bullet?
The answer is NO!

Even with Optional the consumer should take in consideration that Optional may contain NULL, so what is the difference between

User user = userRepository.findUserByName("John");
return user != null ? user.getFullName() : "";

and

Optional<User> user = userRepository.findUserByName("John");
return user.map(User::getFullName).orElse("");

Well those who are for using Optional will say that in such way the API is telling to consumer that the returned object may be NULL and it should be handled, but it does not save from such usage as

userRepository.findUserByName("John").get().getFullName();

It is not right, but I already see such code, so how is it preventing from stupidity? Shouldn't each Java developer know that any method may return a NULL and verify it accordingly?

 If Optional in such case plays as documentation, then Java already for long time has

  • JavaDoc - where API developer can state what a possible return values
  • @Nullable/@Nonnull and other such type annotations
  • Modern IDE which may tell to developer that method may return a NULL and proper handling should be done.
Still the Optional is useful a lot!
It very much simplify the code when a chain of transformations should be done, like:


Optional.ofNullable(userRepository.findUserByName("John"))
    .map(User::getFullName)
    .map(String::trim)
    .map(String::toUpperCase)
    .orElse("");


Wednesday, November 13, 2013

IT Bullshit

Una din caracteristicile unui om este sa fie in linie cu moda, sa fie modern si atunci cind la TV apare publicitate in care se zice ca daca fumezi "Marlboro" atunci esti un tinar de success, sanatos si plin de viata. Cu toti defapt stim despre efectele fumatului, nu?
Dupa cit se vede la fel se petrece si in domeniul IT, e si clar, in IT lucreaza la fel oameni. Ultimii citiva ani tot mai mult aud sa se vorbeasca cit de cool in limbajele de programare e sa fie prezenta la tipuri dinamice de date, closure, programare functionala, etc si in cit de prosti sunt aia care, inca folosesc limbaje tipizate, "Old school la gunoi".

Wednesday, October 30, 2013

Aventurile cu Ambasada Cehiei in R. Moldova

As vrea sa va povestesc despre ultimele aventuri pe care le-am avut cu sotia mea si Ambasada Republicei Cehe in Moldova.

In vara acestui an proaspat casatoriti, eu si sotia am aplecat documentele la Ambasada Republicei Cehe cu scopul obtinerii vizei de lunga sedere, pentru sotie, pe baza reintegrarii familiei, eu fiind in R. Ceha deja de un an si jumatate. La aplicarea documentelor am fost ghidati de pagina web a ambasadei si la fel am fost si recomandati de catre operatorii de la amasada sa o urmam pe aceasta.


Tuesday, September 10, 2013

MVC vs MVP

MVC and MVP both are software design patterns wide used in web development. So what is the difference between them while there name are so close? To this question will ask a few excerpts from the Wikipedia and MSDN.

Tuesday, July 9, 2013

Java Developer Interview

Hello World!

Today I will try to enumerate potential question that you can get on an interview for a Java Developer position. Those question mainly are based on question given by one of my employers.
As a recommendation will be to not just find the answers to those questions, but to try to learn about the technologies mentioned.

We can group the questions in the following categories:

  • General principles of software development
  • Java Core
  • Analysis and Design
  • Databases and data types
  • Enterprise development and enterprise frameworks
  • Personal development and self training.

Tuesday, July 2, 2013

20 de lucruri pe care trebuie sa le stii pana la 20 de ani

Am citit asatazi un mic articol intitulat "20 de lucruri pe care trebuie sa le stii pana la 20 de ani" si desi am 26 de ani, oricum mi-a prins de folos. Deci il repostez ca sa am continutul pastrat.

Scriitor american si business-trainer, Julien Smith, a dat sfaturi practice pentru toti tinerii, cum sa navigheze in aceasta lume. Ca sa devii o persoana de succes trebuie sa stii cateva lucruri pana la 20 de ani. Anumite norme la care sa aderi si sa accepti realitatile vietii moderne.

1. Lumea incearca sa te faca prost. Incepand cu taxele bancare si terminand cu noua dieta la moda. E mai usor sa furi bani de la oameni needucati si e mai usor sa-i manipulezi. Autoeduca-te! Fii bogat, independent si fericit.
2. Sa nu crezi orbeste in institutiile de invatamant. In timp ce ei pregatesc diferite planuri sistemul imbatraneste, uneori chiar se darama. Mai bine invata sa castigi respectul oamenilor prin a fi lider, dar nu a urma pasii altora.
3. Citeste cat de mult poti. Stapaneste tehnica de citire rapida si cea de memorare. Este posibila citirea unei carti pe saptamana.
4. Incearca mereu sa comunici cu lumea. Devino un maestru in arta comunicarii. Incearca sa gasesti in oameni ceea ce ti-ar placea sa gasesti in tine si aspira spre aceste calitati.
5. Nu-ti pierde timpul pe modestie. Smerenia este credinta in faptul ca emotiile tale devin martori la deciziile tale si te vor ajuta in asta. Dar adevarat este chiar contrariul.
6. Daca ceva nu-ti place la o persoana si te deranjeaza, cea mai buna modalitate de a scapa de asta este sa intrerupi relatia.
7. Incearca cat mai des sa discuti cu persoanele mai in varsta decat tine. Un om trecut de a doua tinerete te va invata multe lucruri pe care tu le vei afla mai tarziu, prin greseli.
8. Cauta oameni mai buni decat tine si incearca sa petreci timpul cu ei. Acest lucru este important. Niciodata sa nu fii cel mai mediocru din grup, aspira spre a fi cel mai bun (facand lucruri interesante, fiind ambitios, receptiv, etc.).
9. Cu timpul vei deveni mai conservator. E doar un fapt. Cei care te inconjoara vor crea un fel de balon in jurul tau care va mentine statusul quo (situatia actuala). Asta e motivul pentru care ideile cele mai nebunesti se pun in aplicare ACUM. Mai tarziu vei fi prea timid. Crede-ma.
10. Minimizeaza cheltuielile. Acest lucru iti va permite sa creezi o rezerva pentru ideile nebune.
11. In loc sa obtii un statut prin obiecte, creste-l cu experienta. Cu alte cuvinte, o excursie la Paris este o alegere mai buna decat procurarea unei garderobe noi. Studiile arata ca o astfel de alegere creste nivelul de satisfactie in viata.
12. Daca traiesti in saracie, rezolva problema cu banii. Utilizeaza internetul, deoarece te poate ajuta sa cumperi mai ieftin la licitatii. Dar daca traiesti de la salariu la salariu, incepe sa economisesti 10% si sa investestesti lunar sau fa-ti un cont de economii. E mai bine decat sa stai sarac toata viata.
13. Invata sa proiectezi. Iti va dezvolta perfect logica, memoria si imaginatia.
14. Nu aduna grasime in tinerete. Hormonii tai te vor ajuta la inceput, dar nu pierde aceasta oportunitate.
15. Invata sa gatesti. Acest lucru va simplifica foarte mult viata ta, iar gatitul nu va mai fi ceva monoton pentru tine. Se va transforma dintr-un lucru costisitor intr-un proces econom si plin de senzatii noi.
16. Sa dormi bine. Dormind cel putin 7 ore si gatind singur iti vei echilibra viata. Daca  inca mai crezi ca „voi dormi in mormant, am o multime de lucruri de facut, nu este timp pentru dormit”, am sa-ti spun: “Nu dormi – nu esti eficient.” Reducerea timpului de somn nu te va ajuta sa fii mai productiv.
17. Fa-ti un nou prieten – jurnalul. Sa nu ai incredere in propria memorie. Nu trebuie sa ajungi in situatia: „cred ca trebuia sa mai fac ceva”. Sa ai incredere in notitele tale.
18. Stabileste un obiectiv. Daca nu ai unul in viata, atunci ceva se va intampla, iar daca ai unul stabilit, se va intampla si mai mult.
19. Devino expert in ceva. Petrece 5 ani, daca e nevoie, dar nu umbla si numara norii. Daca doresti sa-ti schimbi meseria, mergi inainte. Doar ca trebuie sa alegi ceva.
20. Nu incerca sa schimbi oamenii. Mai bine cauta-i pe cei care inca nu s-au „stricat”.

Friday, June 28, 2013

Supernatural

Today while washing the dishes in the evening, I was thinking about what is "Supernatural" and how we understand it, does this mean GOD power? In the end I came to two ideas and those depend on how we will explain the word "Supernatural".

Supernatural is something that can not be considered of being natural or something that come in result as a behavior of some not natural actions. Then what can we consider of being natural? In my opinion a natural is something that is as is, no intentionally actions was done other it by some third part. For example, a natural can be the growth of the tree in Amazonian forest or a flow of the river, in case the humans do not intentionally change it's flow. If understanding Supernatural from this point of view, that will mean that we, humans can do Supernatural things and in some way this lead us to consider our self gods. But for sure we are not gods. So probably this is wrong way of thinking what mean Supernatural and this explanation we can give to the term of Non Natural.

By thinking about this term, mostly I was seeking for the answer, "Does all Supernatural is the result of the Divine Power?". This lead me to the second understanding of what is Supernatural.

Supernatural is something that is not explicable. By ages humans were attribute all inexplicable things to God and they continue to do it till now. Today I think, why I act in this way, why I can think, breath, move, write this article, why? So I have no explanation, then should I attribute this to the power of God? maybe, or I can wait and hope that science will find answer while I am still alive or to hope that sometime in future the answer will be, still this can remain just a hope or I can say that God done me this way and just put the dot in the end.
Think about the peoples from past. What would they say about electricity, about cars, planes, rockets? Meteorite rain they would attribute to God's power and today we know where is the trick, it's just stuff works this way.

So can I consider that a Supernatural is a God's power? Me no, but I do not deny that probably still God exist, and you?

Monday, June 17, 2013

EasyCV

I am proud to announce the first release of the EasyCV.

EasyCV is a small web application which should help you easy to deploy, so named, CV web site or Portfolio.

You can join the project and help in making it better and used!

Currently the project is hosting on private repository and in case more people will be interested in it, it will move to more wide repository hosting.


An example of what could be build based on it is my personal CV page


Enjoy!

Monday, April 22, 2013

Barclays & my test results

Today I finally finished all three tests sent to me by a recruiter from Barclasy. As I was positioning me as a web developer, I got tests in the fields of:
  • Web Development Concepts
  • Java 6
  • Dynamic HTML
To brag myself below are coming test results:


Web Development Concepts

Score: 4.23
Proficiency Level: Advanced (3.51 - 4.50)
The candidate has mastered the basic concepts of Web Development Concepts (Programming, Databases) and intermediate Web Development.

Concepts concepts (XML, Web Services and RSS, HTML and XHTML, Internet Knowledge, JavaScript). The candidate is likely proficient with more advanced Web Development Concepts concepts such as:
  • Cascading Style Sheets (CSS)
  • Graphics
At the Advanced level, the candidate will be capable of working on projects involving Web Development Concepts and will be capable of mentoring others on most projects in this area.

Percentile Comparisons
The percentile score indicates how well the candidate scored relative to other candidates in the comparison population indicated by the score:
  • Global Population: 100%
  • Company Population: 97%

Java 6

Score: 3.62
Proficiency Level: Advanced (3.51 - 4.50)
The candidate has mastered the basic concepts of Java 6 (Syntax, Class Definition, Virtual Machine) and intermediate Java 6 concepts (Core Libraries, Visual Libraries, Tools). The candidate is likely proficient with more advanced Java 6 concepts such as:
  • Practical Software Engineering
  • Support Libraries
  • Support Libraries
  • Integration Libraries
At the Advanced level, the candidate will be capable of working on projects involving Java 6 and will be capable of mentoring others on most projects in this area.

Percentile Comparisons
The percentile score indicates how well the candidate scored relative to other candidates in the comparison population indicated by the score:
  • Global Population: 80
  • Company Population: 58

Dynamic HTML

Score: 3.64
Proficiency Level: Advanced (3.51 - 4.50)
The candidate has mastered the basic concepts of Dynamic HTML (DOM, Document Elements) and intermediate Dynamic HTML concepts (Forms, JavaScript, Navigation, CSS). The candidate is likely proficient with more advanced Dynamic HTML concepts such as:
  • Frames
  • Table-less Layout
At the Advanced level, the candidate will be capable of working on projects involving Dynamic HTML and will be capable of mentoring others on most projects in this area.

Percentile Comparisons
The percentile score indicates how well the candidate scored relative to other candidates in the comparison population indicated by the score:
  • Global Population: 94
  • Company Population: 44

So in result I think I got a good results, no?
Cheers!

Saturday, February 9, 2013

Glogster EDU Dev #0

Hello!

This is the first post about the new upcoming changes which will take place in the Glogster EDU and I hope it will not be the last. And please make a note that this is not an official post from the Glogster marketing or management team.

Currently in Glogster the dev team is working hardly on many important changes which should increase the speed and stability of the application, but meanwhile we are also changing peace by peace the interface so you, our users, to feel comfortably and happy in using the product.

Today I will speak about some small changes, but which should make more comfortable in use. I refer to user menu in upper right corner and a few buttons which are available in the top.

So let start with the default log in state to the application. In the first image you can see the current implementation of the "Log in" and "Sign up" buttons.