Oct 15 2017

Spring Stereotype Annotations

Category: TechnicalIuliana @ 21:18

Having finished writing my third  Spring book, it was about time I should start writing technical posts as well. Being an accessible online person, quite a few people that read my books find mistakes or have interesting questions. I am really happy when people find mistakes, this means that they are actually reading the books, taking them seriously, including reading the references to the official documentation, which is more on point and more detailed than a book written by an “external” will ever be.

And I am happier when questions that question my own understanding of the framework are risen as well. Because this motivates me to dig deep into the documentation, to ask other technical people I know what their opinion is. It is an opportunity for communication and debate.

The last question I had from a reader was about the @Configuration annotation. He asked why is this annotation not mentioned as being a stereotype annotation in the book and if this is not a mistake on my part. He gave me some links to some official documentation and his opinion about the matter. After I queried  multiple resources, including my technical reviewer, who is a Spring  trainer for Pivotal this is the answer I came up with.
Continue reading “Spring Stereotype Annotations”

Tags: ,


Sep 08 2017

So I read the Google manifesto…

Category: TechnicalIuliana @ 12:12

Before going on vacation the Google scandal of the 10-page “Google’s Ideological Echo Chamber” document was just starting. A guy at Google created this document in which he criticised the politically correct Google environment and the discrimination happening in the name of the political correctness. And that manifesto made it to the internet. I was preparing for a vacation like no other, in which I was to detach myself completely from my working environment and from the passion that I dedicated myself to for the last 16 years of my life. So I postponed reading the Google manifesto until getting back.

I read the document on the plane on my way back and I realised there is a lot of blogging material in there. Because here we are in the time where political correctness dictates which people are allowed to speak their minds out loud and which are not, unless they want to risk being fired.
Continue reading “So I read the Google manifesto…”

Tags: , , ,


Sep 05 2017

I love writing technical books…

Category: TechnicalIuliana @ 23:23

… and messages like the ones below make all the effort worth it.

Tags: ,


Apr 08 2017

git unpack failed: error Missing tree solution

Category: TechnicalIuliana @ 19:18

More than a year ago, I convinced the company that I work for to switch from CVS to Git. This was not done as I wanted it, because … management… and thus a lot of stupid issues appeared. I did Git support for more than a year, and all this time 80% was Eclipse support, because the EGit Eclipse plugin is … a mess.  Now after more than a year later, a new problem appeared. When people tried to push their changes, a nasty pop-up appears:

And after you get this pop-up, doing it from the command line, doesn’t do it either:

C:\work>git push -v
Pushing to ssh://gigi.pedala@git:29418/gmp-parent
Counting objects: 91, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (85/85), done.
Writing objects: 100% (91/91), 44.68 KiB | 0 bytes/s, done.
Total 91 (delta 41), reused 0 (delta 0)
remote: Resolving deltas: 100% (41/41)
fatal: Cannot receive pack: error: unpack failed: error Missing tree 07b3431321048e15dccc9e022e258b93252894ef
To ssh://gigi.pedala@git:29418/gmp-parent
! [remote rejected] HEAD -> hotfix/H5.14.0.XX_ADV_XMW_branch (n/a (unpacker error))
error: failed to push some refs to ‘ssh://gigi.pedala@git:29418/gmp-parent’

If you search for a solution on the internet for this, you will most probably be told that your repository is corrupted and that the only solution is to re-clone it. Or you will be required to execute a lot of commands… that might do nothing for you.

Two days ago a colleague of mine from Frankfurt had it. As I was in the office I took the other Git expert in the company with me and went to his computer to dissect his repo. And being the nice person that I am, I will share the solution with you. We ran a git gc

git gc
Runs a number of housekeeping tasks within the current repository, such as compressing file revisions (to reduce disk space and increase performance) and removing unreachable objects which may have been created from prior invocations of git add.

Basically, when you do a push, git packages the information and tries to send it to the remote. Problem is that, whatever is sent to the remote in this case, cannot be unpacked because a git tree is missing for some reason. If you try to do a git show on the tree with the SHA1 code mentioned in the error, all the information is there. So what is happening? Well, git gc will help you here, because when trying to repack the information, you will get a set of errors like these:

cannot unlink file .git/objects/pack…”

Apparently Eclipse, or any other program, or even Windows holds a lock on the repository files, which prevents packing, and obviously incomplete information is send to the remote which cannot unpack it, thus the upacker error problem. I mentioned Windows here, because I haven’t heard anybody having this problem on a Unix system yet.

The solution for my colleague was to restart his computer(we closed Eclipse, but some java processes were still hanging and keeping the files locked so we took the easy way out) and before opening any other program execute git gc. The operation executed without any errors and he was able to continue his work, and do any remote operations he needed.

So this is the easiest solution: restart the computer, do a git gc and go about your work as usual.

Tags: , ,


Jan 21 2017

My own Git meme

Category: TechnicalIuliana @ 19:30

Tags:


Jan 05 2017

Negative feedback management

Category: TechnicalIuliana @ 23:03
In the software development world we have a lot of processes, standards and ways to measure quality. When it comes to code quality the  standard measurement is the WTF/minute, depicted in the image on the left. The result of such measurement is usually a feedback given to you by a superior. If the feedback is positive, you will receive a pat on the back, the responsibility of teaching your mastery to others and if you are lucky, a bonus or a raise. Giving and receiving positive feedback is a easy, but life is not only milk and honey and sometimes negative feedback has to be given and received. And it can be quite uncomfortable for both parties involved. But fear not, I took a little of my precious time to write a post about it.  Because even if you are a genius, you are human and you are most probably doing at least one thing wrong. And negative feedback is not only given for the quality of your work, but for your overall behaviour during working hours as well.
This being said, let’s begin. There are three ways to give negative feedback:

  1. officially, via a review that will affect your future career path
  2. privately in a professional/unprofessional manner
  3. publicly in a professional/unprofessional manner

Officially, negative feedback is given to you in the best way possible, wrapped up as an “ability you need to improve” (or more). The fact that you are given negative feedback, means that you actually matter to the company and somebody above you in the company hierarchy believes you can improve. The first time when you receive negative feedback might be a drama, because if you are passionate about your job you cannot stop yourself from taking it personally and feel like a failure. The emotion is similar to what you feel when you let down someone you love, only in this case this someone is you. Just allow yourself to breath, to think about it and then start working on improving the mentioned point. And the most important, ask guidance in how to do this from the one that gave you the negative feedback.

Negative feedback given privately, is a warning sign. It is one of the most embarrassing ways to receive a negative feedback and it usually means you screwed up badly, but somebody wants to understand what happened and try to help you make things better. When given such feedback, try to pay attention to what it is being said to you, hold your ground and emotions in check and try not point the finger to somebody else, not without accepting your own fault in the matter. Negative feedback given privately is usually the result of some behavioural issues, usually harassment of any kind. Depending on how badly you screwed up and depending on how short tempered your manager is, the negative feedback can be delivered professionally or unprofessionally. If the negative feedback is provided unprofessionally, the same as said before applies, there must be at least one person in that room to hold their shit together, it is better that is you. Because even if the discussion is private, the outcome will be in an official review. So, obviously it is better to say in your review that you admitted your part of the guilt, you are sorry about it and will work on improving in the future. And you can also report the short tempered manager to his manager.

Negative feedback given publicly, is clearly inappropriate. It is a warning sign for the provider of the feedback and for the receiver as well. It means there is a clash of egos there, maybe some issues that were never resolved or reported. Whether provided professionally or unprofessionally, this is one of the most uncomfortable things that can happen in a company. It reveals that the two persons involved both as problem employees. Maybe they either do not know or do not care about the internal hierarchy, or they do not trust the matter can be solved by official channels. If you are being scolded publicly, just remember school. Even if you have never been scolded by a teacher, you have witnessed it and you probably remember, that answering and defending yourself in the heat of the moment, did not do much. The same advice as in the previous case applies: hold your ground, keep your emotions in check and just take it. Just let it pass. Then think, raise the issue to the next person higher on the hierarchy and show yourself open to make things work.

No matter how good at your job you are, the fact is that we are all humans. We all make mistakes and we all have our moments when our mind plays tricks with us. When you work with the same people for a long time, conflicts are unavoidable. But you must remember why you are there for: you are there to excel at your job, you are there to teach others what you know, work with your team and make work more efficient for everybody so in the end the company will flourish and so will you. Unless the negative feedback is a backlash caused by personal issues with the person providing it, the negative feedback should always be considered an opportunity to improve yourself and others too. If the matter is personal, well… in this case things get complicated, unless you find a way to put it aside and separate personal from professional issues. Not all persons have the ability to separate professional from personal issues, but you can get better at this by talking to a counselor, for example.

I’ve written the above from my professional experience. I remember my first negative feedback and I remember my last. There is one recurring recommendation managers keep giving me: to be less blunt. But from overall personal experience I know that some people do not react unless they are hit with the naked truth. The best I can do is to try to know my colleagues as best as I can, thus I can modify my behaviour depending on them. I guess, we all just have to be understanding, considerate and flexible after all.

Stay safe, stay happy!

Tags: ,


Dec 20 2016

Company given rank and how much it matters

Category: TechnicalIuliana @ 1:01

I’ve been promising for a while to start writing technical posts, but until I’ll have some time to write some code, I do have a few ideas regarding management and internal hoochy-moochy that happens inside IT companies. Bare with me, it might be either fun, either instructive, depends on how my mood changes while I write. Also, do not expect a small post that you will read in five minutes, you know I rarely do that.

I’m in my 10th year of experience in the IT field. I have worked on a lot of different type of projects, I taught at the university for a while, did some consulting and even written two technical books.  The company I work for currently has knighted me at the beginning of the year and therefore I am now called a software architect. My diplomas say that I am an engineer. And I find the term  software engineer much more suitable, because engineers break down problems into smaller problems and provide solutions or they concoct contraptions to make life easier and work more efficient. This is what I’ve been doing since 2010, concocting contraptions to make my work easier so I can be payed for being lazy.

But back to the original point. Last week, the company I work for sent me to a training/workshop where some guys were explaining something that I cannot currently write about and at the beginning of the workshop asked all of us to present ourselves. These guys were just there for the workshop, we will probably never see them again and the plan is to provide our own implementation for the thing they talked about. Nevertheless my colleagues started giving super details, their full names and full titles within the company. I just told them my first name,  the project I work on and the reason I was interested in the workshop. All done in 20 seconds or so. Bam!

I never liked labels, maybe because I was given so many while growing up (crazy, poor, weird, teacher’s pet, geek, nerd, etc). I do not like titles either. Unless you are freaking royal, then… oh well, you can have your title and shove it where the sun don’t shine. I have been doing architect work since 2010 when I had a full project on my hands, and I had to migrate it to some new technologies. And I did that and only missed the deadline because I broke my right hand and I had to program for two weeks only with my left hand. And I am right handed.(Since then I kinda started doing a lot of things with my left hand too, so now I think ambidextrous fits.) Returning to the original idea, bragging about your title when it does not fit you, is quite ridiculous. You can call yourself a manager, but you’re not doing much managing if your team members keep leaving. You can call yourself and architect, but if your solutions are crappy you’re not doing much … architecting(sic!). You can call yourself a web developer, but if you cannot develop a responsive web interface, allow me to have my doubts. And plus, a title given by the company you work in is as valuable as your wife knighting you the best lover in the world.

This is why I used to make fun of my architect title at the beginning. People who do not know me well, did not get my sarcasm. Many of my colleagues took my Lync status (I am architect, therefore I am God…) as bragging. I do not feel like an architect when I do not have architect specific tasks. So I present myself as a developer or engineer. It suits me better at the moment.  The way I see it, presenting myself as an architect, when I do little architect work, would be like presenting myself as Miss Romania, after I gained 20 kilos. So I do not present myself as an architect. I let others do it.

Another term I totally loath is expert. In the company I work for people like to use it a lot. I just started on a project called Regulator, people I interacted with, already started calling me The Regulator Expert. Then I switched to something called XBRL, I became The XBRL expert. Seriously???

I am no expert, in anything. Really. But what I am good at is keeping things simple and keep learning. Everything I do, I try to make it so simple that anybody with a little motivation could understand it, use it and maintain it. Why? Because I am lazy, I prefer the work to be self explanatory, than for people to bother me with questions. The other reason why I prefer not being asked questions about my work is that I kinda’ lack social skills. So if I develop something, expect tests, proper documentation with three types of UMLs  and some extra schemes drawn in Google Drawings. Anything to keep you away from me.

Also, company ranks mean nothing if you are not up to the task. And I’m the kind of asshole that even if you are a manager, if you are a crappy one, I will treat you accordingly and eventually tell you to your face, because negative feedback is also a thing.  :D

This being said, there is a post about negative feedback in the works. I hope you will enjoy that too.

Stay safe, stay smart!

Tags: , , ,