Posts

Continuous Deployment - Not Without Modularity

When asked about what's a module, no two people give the same answer. The interesting thing is, it doesn't keep modularity from being one of most pronounced words when it comes to the desirable set of attributes a software system should ideally have. It's somewhere just next to scalable and robust, in no particular order.

IntelliJ - You auto complete me (2)

A short one. I've already posted about IntelliJ in the past , and judging by my enthusiastic PR for IntelliJ IDEA someone might mistake me for a share holder. Well, I'm not, though come to think of it, it might actually be a good IDEA (pardon the pun). I just love working with IDEs that understand developers and make things easier on them, and IntelliJ does just that. I've recently been brushing up my (automatic) refactoring skills, and IntelliJ has some really awesome stuff to offer in that department. Truth be told, there are some issues here and there, but hey, I have my bad days too. All in all, for me it's done the unbelievable job of making programming in Java ... kinda fun, not a simple task by any means. I even managed to enjoy editing a bash script the other day, I mean, that's unprecedented! All that before I even had a chance to try out the Ultimate edition, as I'm working with their (free!) Community version. Speaking of community, check out th...

Finding a needle in a Storm-stack

Image
(Crossposting from Outbrain's techblog ) Using Storm for real time distributed computations has become a widely adopted approach, and today one can easily find more than a few posts on Storm's architecture, internals, and what have you (e.g., Storm wiki , Understanding the parallelism of a storm topology , Understanding storm internal message buffers , etc ). So you read all these posts and and got yourself a running Storm cluster. You even wrote a topology that does something you need, and managed to get it deployed. "How cool is this?", you think to yourself. "Extremely cool", you reply to yourself sipping the morning coffee. The next step would probably be writing some sort of a validation procedure, to make sure your distributed Storm computation does what you think it does, and does it well. Here at Outbrain we have these validation processes running hourly, making sure our realtime layer data is consistent with our batch layer data - which we c...

Feature flags revisited

Feature flags have always made me feel ambivalent. On one hand, I can relate to the need for having a mechanism to easily enable or disable particular features, while on the other hand, being a software engineer I pretty much loathe this concept, since feature flags make your code ugly more often than not. Especially if such a flag is left in place even after its corresponding feature has become fully operational, eliminating any practical need to be turned off on demand. Cliché ahead in 3,2,1: not everything in life is black and white, and sometimes, even in the face of feature flags, we can still, well, save face.

4 reasons to move to IntelliJ and bail on Eclipse

Image
Same JAR, different version.   If you have multiple projects in your workspace depend on different versions of the same JAR, Eclipse will hand out all of them the same version, which is the one it happened to load first. Uncool . IntelliJ handles this case properly. Spring support. IntelliJ is capable of certain  tractability  between your Java and your spring XML context. For instance, if you refactor a class name, its bean will be renamed accordingly. You can also navigate from your Java class name to its corresponding spring bean . How cool is that? Static imports. Because I simply hated looking for the proper import for every Hamcrest static  mather  I needed. IntelliJ suggests to add them for you. Out of the box SVN integration. IntelliJ supports SVN right out of the box, no need to download any SVN plugins or tweak any configuration files . Not a biggy, but it's nice  nonetheless .

Pimp my Ubuntu, Cinnamon style

Some relationships are just not meant to last - c'est la vie. Be it the timing, emotional state, or the fact compiz takes up shit load of CPU in still water. Unity, I think it's time we see other user interfaces.

Two Cents on Prezi

PowerPoint and presentations have been synonyms for over a decade, recently I've had the opportunity to "leave the comfort zone" (as life and career coaches mentor nowadays) and try Prezi for one of my talks. Looks like my next presentation is going to be in Prezi as well.