In September last year I was leaving my job and starting a sabbatical year, with many plans for what seemed then like a lot of time in which to do everything. I was severely underestimating my ability to waste time. Now the year is almost over and I need to start thinking about the technologies in my field of choice that I need to catch up with; and, boy, there is a lot of them! I leave the IT industry alone for one year and kaboom! it blows up like an angry volcano. To be honest, not all of these things that are new for me are just one year old, some I was just ignoring as I didn't need them for my various jobs. Learn from this, as especially in the software business it gets harder and harder to keep up to date and easier and easier to live in a bubble of your own or your employer's creation.

This post is about a list of programming topics that I would like to learn or at least learn to recognize. It's work in progress and probably I will update it for a time. While on my break I created a folder of software development stuff that I would "leave for later". As you can imagine, it got quite large. Today I am opening it for the first time. Be afraid. Be very afraid. I also have a lot of people, either friends or just casual blog or Twitter followings, that constantly let me know of what they are working on. As such, the list will not be very structured, but will be large. Let's begin.

A simple list would look like this. Let me set the list style to ordered list so you can count them:
  1. Typescript 2
  2. ReactJS
  3. JSX
  4. SignalR
  5. Javascript ES6
  6. Xamarin
  7. PhoneGap
  8. Ionic
  9. NodeJS
  10. .NET Core
  11. ASP.Net MVC
  12. R
  13. Python
  14. Unity
  15. Tensorflow
  16. DMTK/CNTK
  17. Visual Studio Code
  18. Jetbrains Project Rider
  19. npm
  20. Bower
  21. Docker
  22. Webpack
  23. Kubernetes
  24. Deep Learning
  25. Statistics
  26. Data mining
  27. Cloud computing
  28. LESS
  29. SASS
  30. CSSX
  31. Responsive design
  32. Multiplatform mobile apps
  33. Blockchains
  34. Parallel programming
  35. Entity Framework
  36. HTML5
  37. AngularJS 2
  38. Cryptography
  39. OpenCV
  40. ZeroNet
  41. Riffle
  42. Bots
  43. Slack
  44. OAuth
  45. OData
  46. DNS
  47. Bittorrent
  48. Roslyn
  49. Universal Windows Platform / Windows 10 development
  50. Katana
  51. Shadow DOM
  52. Serverless architecture
  53. D3 and D4 (d3-like in ReactJs)
  54. KnockoutJs
  55. Caliburn Micro
  56. Fluent Validation
  57. Electron

Yup, there are more than 50 general concepts, major frameworks, programming languages, tools and what not, some of them already researched but maybe not completely. That is not including various miscellaneous small frameworks, pieces of code, projects I want to study or things I want to do. I also need to prioritize them so that I can have at least the semblance of a study plan. Being July 21st, I have about one full month in which to cover the basic minimum. Clearly almost two subjects a day every day is too ambitious a task. Note to self: ignore that little shrieky voice in your head that says it's not!

Being a .NET developer by trade I imagine my next job will be in that area. Also, while I hate this state of affairs, notice there is nothing related to WPF up there. The blogs about the technology that I was reading a few years ago have all dried up, with many of those folks moving to the bloody web. So, I have to start with:

  1. ASP.Net MVC Core - the Model View Controller way of making .NET web applications, I've worked with it, but I am not an expert, as I need to become. Some quickly googled material:
  2. .NET Core - the new version of .NET, redesigned to be cross platform. There is no point of learning .NET Core as standalone: it will be used all over this plan
  3. Entity Framework Core - honestly, I've moved away from ORMs, but clearly Microsoft is moving full steam ahead on using EF everywhere, so I need to learn it well. As resources, everything written or recommended by Julie Lerman should be good, but a quick google later:
  4. OData - an OASIS standard that defines a set of best practices for building and consuming RESTful APIs. When Microsoft adopts an open standard, you pretty much know it will enter the common use vocabulary as a word used more often than "mother". Some resources:
  5. OAuth - An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. It is increasingly used as "the" authentication method, mostly because it allows for third party integration with Facebook, Twitter, Google and other online identity providers. Some resources:
  6. Typescript 2 - a strict superset of JavaScript from Microsoft, it adds optional static typing and class-based object-oriented programming to the language. Javascript is great, but you can use it in any way you want. There is no way to take advantage of so many cool features of modern IDEs like Visual Studio + ReSharper without some sort of structure. I hope Typescript provides that for me. Resources:
  7. NodeJS - just when I started liking Javascript as a programming language, here comes NodeJs and brings is everywhere! And that made me like it less. Does that make sense? Anyway, with Microsoft tools needing NodeJs for various reasons, I need to look into it. Resources:
  8. Javascript ES6 - the explosion of Javascript put a lot of pressure on the language itself. ECMAScript6 is the newest iteration, adding support for a lot of features that we take for granted in more advanced languages, like classes, block variable scope, lambdas, multiline literals, better regular expressions, modules, etc. I intend to rewrite my browser extension in ES6 Javascript for version 3, among other things. Here are some resources:
  9. npm - npm is a package installer for Javascript. Everybody likes to use it so much that I believe it will soon become an antipattern. Functions like extracting the left side of a string, for example, are considered "packages".
  10. Bower - Bower is a package manager for the web, an attempt to maintain control over a complex ecosystem of web frameworks and libraries and various assets.
  11. Docker - The world’s leading software containerization platform - I don't even know what that means right now - Docker is a tool that I hear more and more about. In August I will even attend an ASP.Net Core + Docker presentation by a Microsoft guy.
  12. Parallel programming - I have built programs that take advantage of parallel programming, but never in a systematic way. I usually write stuff as a single thread, switching to multithreaded work to solve particular problems or to optimize run time. I believe that I need to write everything with parallelism in mind, so I need to train myself in that regard.
  13. Universal Windows Platform - frankly, I don't even know what it means. I am guessing something that brings application development closer to the mobile device/store system, which so far I don't enjoy much, but hey, I need to find out at least what the hell this is all about. The purpose of this software platform is to help develop Metro-style apps that run on both Windows 10 and Windows 10 Mobile without the need to be re-written for each. Resources:
  14. HTML5 - HTML5 is more than a simple rebuttal of the XHTML concept and the adding of a few extra tags and attributes. It is a new way of looking at web pages. While I've used HTML5 features already, I feel like I need to understand the entire concept as a whole.
  15. Responsive design - the bane of my existence was web development. Now I have to do it so it works on any shape, size or DPI screen. It has gone beyond baneful; yet every recruiter seems to have learned the expression "responsive design" by heart and my answer to that needs to be more evolved than a simple "fuck you, too!"
  16. LESS and SASS - CSS is all nice and functional, but it, just like HTML and Javascript, lacks structure. I hope that these compilable-to-CSS frameworks will help me understand a complex stylesheet like I do a complex piece of code.
  17. AngularJS 2 - I hear that Angular 2 is confusing users of Angular 1! which is funny, because I used Angular just for a few weeks without caring too much about it. I've read a book, but I forgot everything about it. Probably it is for the best as I will be learning the framework starting directly with version 2.

So there you have it: less than 20 items, almost two days each. Still bloody tight, but I don't really need to explore things in depth, just to know what they are and how to use them. The in-depth learning needs to come after that, with weeks if not months dedicated to each.

What about the rest of 35 items? Well, the list is still important as a reference. I intend to go through each, however some of the concepts there are there just because I am interested in them, like DNS, Riffle, Bitcoin and Bittorrent, not because they would be useful at my job or even my current side projects. Data mining and artificial intelligence is a fucking tsunami, but I can't become an expert in something like this without first becoming a beginner, and that takes time - in which the bubble might burst, heh heh. Mobile devices are all nice and cool, but the current trend is for tablets to remain a whim, while people divide their experience between laptops and big screen smartphones. The web takes over everything and I dread that the future is less about native apps and more about web sites. What are native mobile apps for? Speed and access to stuff a browser doesn't usually have access to. Two years and a new API later and a web page does that better. APIs move faster nowadays and if they don't, there are browser extensions that can inject anything and work with a locally installed app that provides just the basic functionality.

What do you think of my list? What needs to be added? What needs to be removed? Often learning goes far smoother when you have partners. Anyone interested in going through some subjects and then discuss it over a laptop and a beer?

Wish me luck!

and has 0 comments
It became obvious to me that one of the most popular and common ways of "winning" consists in changing the definition of what that means. See capitalism for example, boasting that a group will benefit if each of its members attempts to improve their lives. The "winners" will pull everything up and will expand while the "losers" will just fade gently into the background. Allegedly, the greatest demonstration of this is the victory of capitalism over socialism and communism. But it's all a fallacy, as their reasoning can be translated as follows: "We measure success in capital, others don't. In the end, we have more capital, so we win". It's not who is better, but how you ultimately define "better". I find it disturbing that an economic model that attempts to optimize happiness has not emerged at any point in history.

This not only happens at a macro level between countries or economic systems, it happens between people as well. "Successful people" proudly announce their recipe for success to people who wouldn't really consider that a good thing. See people that cheat and corrupt and kill to "get ahead". One might covet their resources or power status, but how many of the "losers" would actually condone their behavior, take the same risks or appreciate the situation you get when employing such tactics? Same applies to heroes. We want to save the world, but we are more afraid of trying and failing. Heroes go past it, maybe not because of courage, but because that is their set goal.

Yet competition is the engine of evolution. Doesn't that prove competition is the solution? I say not. Look at the successful animals in nature: they are perfect for their niche. Crocodiles spend huge amounts of time motionless just beneath the surface of the water only to jump and snatch their prey when coming to the watering hole; cheetahs are faster than anything with legs, catching their prey in a matter of minutes; sharks roam the water, peerless in their domain. And yet all of these creatures are far from perfect. They age, they get sick, they don't build anything lasting more than their own lives, their only legacy are offspring just as flawed as them. And guess what? All of these creatures are getting less and less because of humans: weak, pathetic, inoffensive hairless monkeys who can achieve more than any others just by banding together and sharing their resources and their results. If competition would be the ultimate solution, then there will be a creature strong, tough, intelligent and immortal. Yet there isn't one.

I submit that competition is great only if two elements are fulfilled: a) you have the ability to evolve, to improve. b) there is someone better or at least equal to compete against. If b is not available, complacency will turn competitivity towards the weak. Instead of getting better, you will stop others getting to where you are. It's a simple application of available force. If point a is missing, you will be the one that a stronger competitor will stifle. And yet, what I am describing is not competition, but having a purpose. Behind the appearance of competition, when you try to catch up with someone better, you actually set a goal for yourself, one that is clearly defined. It is irrelevant if the target is a person or if they even consider themselves in competition with you. One might just as well choose an arbitrary goal and improve themselves by reaching it.

Why am I writing about this? For several reasons.
One is to simply make evident that if you envy someone for their success it is either because you can't get possibly there or because you won't - you have determined that to take that path would take away something that you value more. For example comfort. People envy the position of others less so, but they basically are not prepared to make the effort required to get there. Yet laziness doesn't disappear. Why? Because one reaches a goal after many attempts and failures, not in a straight line. Only once someone got there, it is much easier to follow their path sans the potholes, the setbacks and the mistakes.
Another is to show that the purpose defines the path, not the other way around. Setting a goal defines both success and failure and that is why many people with responsibility prefer to not set one. However, without the goal, people just stagnate, go around in circles. Look at space exploration: each successive US administration comes with another idea, abandoning what their predecessors did, going nowhere. When did they do anything that mattered? When they had a clear goal of doing better than the Russians. If someone were to go and colonize Titan and start living there, they wouldn't find it so expensive and pointless to go to the Moon, asteroids and Mars. Without someone to do that, though, they don't do anything.

Laziness is in our nature. Evolution is lazy. Competition is ultimately lazy. You can get comfortable in your lead, while occasionally shooting other racers in the foot when they get close enough. The opposite of laziness is not work, but direction. Once you set a goal, you know how far you go and how fast you get there. A group benefits more when all its members work towards a common goal. Funny enough, in such group scenarios competition between members is often cancerous. I find it also amusing that there is always someone better or at least equal to compete against: yourself.

When I was young I occasionally wrote short stories that were moderately well received by my friends, but I have never attempted to do anything "real"; I would just get some weird idea in my head and it would materialize after an afternoon of furious writing. There was nothing to it in terms of technique or studying the classics or anything, just telling a story. In fact, trying to rewrite it afterwards would ruin it, betraying the underlying lack of craft. After a while, I just stopped, but I held tight to the belief that some day I might actually do this well, like write a novel. Not for money and fame, but because I would like to "be that guy".

Recently I have revisited that belief and decided to take it further: actually plan the novel, write it, see what I am truly capable of. So far, it has not been going well, but I've learned a lot. Hopefully I will retain the level of interest required to carry it through. However, in this post I want to explain some of the things that I have become to understand about writing stories and one in particular: the shortcuts.

Many a time the story needs to go somewhere, but in real life terms getting there would be boring or be prohibitive in terms of time. In that case a shortcut is taken, either by some gimmick, by montage or, as is more often the case, through camera work. How many times didn't you watch an actor looking intensely for a threat, their face or person taking over the whole screen, only to be caught off guard by someone or something that suddenly comes out from outside the camera angle? And if you think just a little bit about it, it would have been impossible to be blindsided by someone coming from there because, even if we don't see them, the person the camera is pointed at would! In a typically evolutionary way, someone tried it, it worked, it caught on and now finding it irritating is seen as nitpicking. "Well they needed to make it happen, it doesn't have to make sense".

That thing, right there, when common sense is sacrificed for expediency, is killing - a tiny bit - the story. And while it works on camera, it is much more complicated in writing, because what you don't realize while going through the motions of empathizing with a character and joining them in their adventure is that the writer needs to know and understand everything that happens, not only what is "in the scene". If the murderer suddenly appears next to the victim and kills her, the writer might decide to not explain how he got there, but they need to know! If not, the story gets hurt.

To build my experience, I've decided to practice on writing something that seemed easy at the time: a Star-Trek novel. I love Star Trek, I've watched almost everything there is, including fan made videos, and most of the time I've felt like I would have made the story a little better. In fact, I was acting like a tester, considering that every single error the developer makes is an affront to common sense and anyone would have done better. I've decided to put my writing where my mouth was, at least give all those screenwriters a chance to get vindicated (and, boy, did they!). My thinking was that Star Trek has a constraining mythos that would force me to use already existing concepts - thus restricting me from thinking of so many things that I would never start and also allowing me to not need to reinvent or explain them - as well as a positive vibe, that would force me from writing depressing "everybody dies" stories. Well, guess what, in my story almost everybody dies anyway; take that, Star Trek!

My point is that trying to write that way revealed the many flaws in the Star Trek storytelling. Every time there is a "problem" someone comes up with a device or algorithm or alien power - usually termed somewhat like "problem remover", that just takes the pesky technical aspects away from the narrative and helps the viewer focus on the important part: the characters and the plot. I mean, while people still debate the limitation of phase cannons - that at least attempt to appear grounded in science - no one says anything about stuff like "inertial dampeners" which pretty much means "that thing that removes that kink that no one actually knows how to get rid of". This is just the beginning. Let's stick with Star Trek Enterprise for now, the one that put Star Trek back on the map and had the most compelling characters and storylines. Think of your favorite characters there: Picard, Data, Worf, maybe Deanna Troi. How did they get there? What was their childhood like? What are they doing when they are not on duty? The show has tried to touch on that, but just with the "whatever is needed for the story" approach. A more direct and obvious way to demonstrate this: there are no toilets in Star Trek. No one needs one, either - have you seen how the brig looks?

As characters go, everybody on that ship comes from the Starfleet Academy, but what do they learn there? What are the paths that they need to take in order to graduate? How do they reconcile vast differences in culture, language and learning speed for all the races in the Federation? I mean, they are all human with some stuff on their face and some extra makeup, but the background story, as something different from merely what you "see", needs all that information. The Star Trek universe survives in these loose network of stuff that taken separately and given some deeper context might make sense, but taken together they just contradict each other. And again comes the nitpicker label to stop you from ruining the experience for everybody else.

This brings me to the shortcut side effects. As a reader and especially as a viewer, you enjoy them because it takes you faster through the story. They remove what is not relevant to you. Well, emotionally relevant, but that's another can of worms altogether. As a writer, though, as a storyteller, these things are slow acting poison. After decades of watching Hollywood films, trying to write something feels like stepping barefooted on glass shards. You feel dumb, not only because it is impossible to write what characters do without a deeper understanding of who they are, not because you realize that even the smallest attempt at writing results in way to many questions to answer on paper - although you need to know the answers, but also because you start seeing how shallow was your interest in all those characters you actually loved watching on the screen. It's like that moment when you realize your lover has a secret life and it hurts because you know it's you who didn't notice or take interest in it, it's all you.

That's not bad. It makes it obvious that you casually ignore some layers of reality. It can lead to getting to appreciate them in the future. The difficulty I feel comes from not ever having trained for it. In fact, I have been taught to avoid it, by passively watching just the surface of everything, never attempting to infer what the depths hide. And when I try, at my age, to change the way I see the world, my way of ... being me, it's fucking difficult. Even simple stuff like mentally trying to describe a place or a person when you first see them, in terms of senses and emotions and comparisons with common concepts and - hardest of all - putting it in actual words... all of this is hard! It feels like an operating theater in which I perform while others watch me and judge. I feel anger and frustration because it conflicts with the original story, where I was good at writing.

There was a very stupid movie where Kate Beckinsale would be Adam Sandler's girlfriend (I mean, impossible to suspend disbelief, right?) and he would be annoyed with all the touchy-feely aspects of their relationship and instead use this "problem remover" remote that would fast forward past it. And then he comes to regret going through important bits of his life like a senseless robot and what it does to him. The movie might have been bad, but the underlying idea becomes very real when you attempt to write stories. Your characters are your lovers, your children, your spawn. Ignoring them is a crime to the story.

Think of the classical iceberg metaphor: just the tip is visible. It also applies to stories. The writer needs to have all that cool stuff hidden under the surface of the book, just in order to show to the reader the content. Characters need backstories that you will only hint at, but that you must know. Stuff that is excruciatingly boring to discuss in real life, like what the light in a room makes you think of - if you take the time to do it, which is never, you must put on paper because you know how it feels, but how do you translate that to another person, with another mind, culture, references, upbringing?

There is no real end to this post, I could write a lot on the subject - I am writing about how hard writing is, I know: ironic - but I will be stopping here. Probably readers have done that a while back, anyway. To the obstinate who got to this part, I salute you. Who knows, perhaps not taking the short path while reading this post has somehow enriched your story. I am not a writer, these insights have come to me just from attempting to do it. Perhaps that is the best reason to try new things, because besides feeling like a complete moron, you gain new valuable insight every time you do.

To be frank, I never intended this to last too much. I have been (and proudly, like a true hipster) avoiding creating a Facebook account and the Twitter one I only opened because I wanted to explore it as a machine to machine messaging system and never looked back after that idea bombed. So this year I went on Facebook and reactivated my interest in Twitter, now with a more social focus. The reason doesn't really matter, but I'll share it anyway: I had an asshole colleague that refused to talk to me on anything else other than Facebook Messenger. Now we barely talk to each other, anyway. So, what have I learned from this experience? Before I answer that question, I want to tell you about how I thought it would go when I went in.

What I thought going in


I have been keeping this blog since 2007, carefully sharing whatever I thought important, especially since I am a very forgetful person and I needed a place to store valuable tidbits of information. So when Facebook blew up I merely scoffed. Have other people use some sort of weird platform to share what they think; let them post cat videos and share whenever they go to the toilet: I am above this. I carefully study and solve the problem, read the book, research new stuff, link to everything in the information that I think relevant. I have my own template, I control the code on my blog, people can chat with me and others directly, comment on whatever I have done. I can also edit a post and update it with changes that I either learn as I evolve. My posts have permanent links that look like their title, suckers! I really don't need Facebook at all.

And Twitter. Phaw! 140 characters? What is this, SMSes online? If you really have something to say, say it in bulk. It's a completely useless platform. I might take a second look at it and use it as a chat system for the blog, at most (I actually did that for a while, a long time ago). I am not social, I am antisocial, suckers! I really don't need Twitter at all.

There you go. Superior as fuck, I entered the social media having a lot of smug preconceptions that I feel ashamed for. I apologize.

Facebook


So what did I learn from months on Facebook? Nothing. Hah! To be honest, I didn't disrespect Facebook that much to begin with. I had high hopes that once I connect with all my friends I would share of their interesting experiences and projects, we would communicate and collaborate better, we would organize more parties or gettogethers, meet up more frequently if we are in the same area. Be interesting, passionate; you know... social. Instead I got cute animal videos, big pointless images with texts plastered all over them - like this would give more gravitas to bland clichés, pictures of people on vacation or at parties - as if I care about their mugs more than the location, political opinion bile, sexist jokes, driving videos, random philosophical musings, and so on and so on. Oh, I learned a lot from Facebook, most of it being how many stupid and pointless things people do. Hell, I am probably friends with people I don't really know for a good reason, not just because I am an asshole who only thinks about himself!

Not everything is bad, clearly. The messenger is the only widespread method of online communication outside email. I know when people's birthdays are (and what day it is currently). People sometimes post their achievements, link to their blog posts, share some interesting information that they either stumbled upon on the Internet (most of the time) or thought about or did themselves, there are events that I learn about from other people going there, like concerts and software meetings and so on. Oh, and the Unfollow button is a gem, however cowardly it is! However, I am no longer "reading my Facebook", I am scrolling at warp speed. I've developed internal filters for spammy bullshit and most of the time, after going through three days worth of stuff, I have only five or six links that I opened for later, one of them being probably a music video on YouTube. It still takes a huge amount of time sifting through all the shit.

Twitter


What about Twitter? Huge fucking surprise there! Forced to distill the information they share, people on Twitter either share links to relevant content or small bits of their actual thoughts, real time, while they are thinking them. There is not a comfortable mechanism for long conversations, group conferences or complicated Like-like mechanism. You do have a button to like or retweet something, but it's more of a nod towards the author that what they shared is good, not some cog in an algorithm to tell someone what YOU need. More work stuff is being shared, books that have been read and enjoyed, real time reactions to TV or cinema shows, bits of relevant code, all kind of stuff. In fact, very few people that spam Facebook are even active on Twitter. Twitter is less about a person than about the moment; it's more Zen if you want to go that way. You are not friends with folks, you just appreciate what they share. It's less personal, yet more revealing, a side effect that I had not expected. And when you reply to a tweet, you are aware of how public it is and how disassociated from the post you reply to it is. There is no ego trip on posting the most sarcastic comment like on Facebook.

Not everything is rosy there, either. They have a similar Facebooky thing that shows the title and the image/video of a shared link so you can open them directly there. So if I want to emulate the same type of behaviour on Twitter, you can by endlessly posting links to stupid stuff and follow other people who do that. You can Follow whoever you want and that means that if you are exaggerating, you end up with a deluge of posts that you have no chance of getting out of. I still haven't gotten used to the hashtag thingie. I only follow people and I only use the default Twitter website, so I am not an "advanced user", but I can tell you that after three days worth of Twitter posts that I have missed, I open around 50 links that I intend to follow up on.

So?


Some of the mental filters developed apply to both situations. The same funny ha-ha video that spams the Facebook site can be ignored just as well on the Twitter page as well. Big font misspelled or untranslatable text smacked on top of a meaningless picture is ignored by tradition, since it looks like a big ad I already have a trained eye for from years of browsing the web before ad blockers were invented.

Some of the opinion pieces are really good and I wouldn't have had the opportunity to read them if all I was looking for was news sites and some RSS feed, yet because of the time it takes to find them, I get less time in which I can pay attention to them. I catch myself feeling annoyed with the length of a text or skipping paragraphs, even when I know that those paragraphs are well researched pieces of gold. I feel like I still need to train myself to focus on what is relevant, yet I am so fucking unwilling to let go of the things that are not.

With tweaking, both platforms may become useful. For example one can unfollow all his friends on Facebook, leaving only the messaging and the occasional event and birthday notification to go through. It's a bit radical, but you can do it. I haven't played with the "Hide post (show fewer posts like this)" functionality, it could be pretty cool if it works. Twitter doesn't have a good default filtering system, though, even if I get more useful information from it. That doesn't mean that specialized Twitter clients don't have all kinds of features I have not tried. There is also the software guy way: developing your own software to sift through the stuff. One idea I had, for example, was something that uses OCR to restore images and videos to text.

Bottom line: Facebook, in its raw form, it's almost useless to me. I remember some guy making fun of it and he was so right: "Facebook is not cool. Parents are on it!". You ask someone to connect with you, which is a two directional connection, even if they couldn't care less about you, then you need to make an effort to remove the stuff they just vomit online. The graphical features of the site make it susceptible to graphical spam - everything big and flashy and lacking substance. Twitter is less so and I have been surprised to see how much actual usable information is shared there. The unidirectional following system also leads to more complex data flow and structure, not just big blobs of similar people sharing base stuff that appeals to all.

But hey! "What about you, Siderite? What are you posting on Facebook and Twitter?" You'll just have to become friends and follow me to see, right? Nah, just kidding. My main content creation platform is still Blogger and I am using this system called If This Then That to share any new post on both social networks. Sometimes I read some news or I watch some video and I use the Facebook sharing buttons to express my appreciation for the content without actually writing anything about it and occasionally I retweet something that I find really spectacular on Twitter. Because of my feelings towards the two systems, even if I find an interesting link on Tweeter, I just like it then share it on Facebook if I don't feel it's really something. So, yeah, I am also spamming more on Facebook than on Twitter.

What else?


I haven't touched Google+, which I feel is a failed social platform and only collects various YouTube comments without accurately conveying my interests. I also haven't spoken about LinkedIn, which I think is a great networking platform, but I use it - as I believe it should be - exclusively for promoting my work and finding employment. I've used some strong language above, not because I am passionate about the subject but because I am not. I find it's appropriate though and won't apologize for it. I couldn't care less if people go or don't go on social networks and surely I am not an trendsetter so that Zuckerberg would worry. I only shared my own experience.

For the future I will probably continue to use both systems unless I finally implement one of the good ideas that would allow me to focus more on what matters, thus renouncing parts of my unhealthy habits. I am curious on how this will evolve in the near future and after I leave my current hiatus and go look for employment or start my own business.

Almost a month ago I got started being active on StackOverflow, a web site dedicated to answering computer related questions. It quickly got addictive, but the things that I found out there are many and subtle and I am happy with the experience.

The first thing you learn when you get into it is that you need to be fast. And I mean fast! Not your average typing-and-reading-and-going-back-to-fix-typos speed, but full on radioactive zombie attack typing. And without typos! If you don't, by the time you post your contribution the question would have been answered already. And that, in itself, is not bad, but when you have worked for minutes trying to get code working, looking good, being properly commented, taking care of all test cases, being effective, being efficient and you go there and you find someone else did the same thing, you feel cheated. And I know that my work is valid, too, and maybe even better than the answers already provided (otherwise I feel dumb), but to post it means I just reiterate what has been said before. In the spirit of good sportsmanship, I can only upvote the answer I feel is the best and eventually comment on what I think is missing. Now I realize that whenever I do post the answer first there are a lot of people feeling the same way I just described. Sorry about that, guys and gals!

The second thing you learn immediately after is that you need to not make mistakes. If you do, there will be people pointing them out to you immediately, and you get to fix them, which is not bad in itself, however, when you write something carelessly and you get told off or, worse, downvoted, you feel stupid. I am not the smartest guy in the world, but feeling stupid I don't like. True, sometimes I kind of cheat and post the answer as fast as possible and I edit it in the time I know the question poster will come check it out but before poor schmucks like me wanted to give their own answers. Hey, those are the rules! I feel bad about it, but what can you do?

Sometimes you see things that are not quite right. While you were busy explaining to the guy what he was doing wrong, somebody comes and posts the solution in code and gets the points for the good answer. Technically, he answered the question; educationally, not so much. And there are lot of people out there that ask the most silly of questions and only want quick cut-and-pastable answers. I pity them, but it's their job, somewhere in a remote software development sweat shop where they don't really want to work, but where the money is in their country. Luckily, for each question there are enough answers to get one thinking in the right direction, if that is what they meant to do.

The things you get afterwards become more and more subtle, yet more powerful as well. For example it is short term rewarding to give the answer to the question well and fast and first and to get the points for being best. But then you think it over and you realize that a silly question like that has probably been posted before. And I get best answer, get my five minutes of feeling smart for giving someone the code to add two values together, then the question gets marked as a duplicate. I learned that it is more satisfying and helpful to look first for the question before providing an answer. And not only it is the right thing to do, but then I get out of my head and see how other people solved the problem and I learn things. All the time.

The overall software development learning is also small, but steady. Soon enough you get to remember similar questions and just quickly google and mark new ones as duplicates. You don't get points for that, and I think that is a problem with StackOverflow: they should encourage this behavior more. Yet my point was that remembering similar questions makes you an expert on that field, however simple and narrow. If you go to work and you see the same problem there, the answer just comes off naturally, enforced by the confidence it is not only a good answer, but the answer voted best and improved upon by an army of passionate people.

Sometimes you work a lot to solve a complex problem, one that has been marked with a bounty and would give you in one shot maybe 30 times more points than getting best answer on a regular question. The situation is also more demanding, you have to not only do the work, but research novel ways of doing it, see how others have done it, explaining why you do things all the way. And yet, you don't get the bounty. Either it was not the best answer, or the poster doesn't even bother to assign the bounty to someone - asshole move, BTW, or maybe it is not yet a complete answer or even the poster snubs you for giving the answer to his question, but not what he was actually looking for. This is where you get your adrenaline pumping, but also the biggest reward. And I am not talking points here anymore. You actually work because you chose to, in the direction that you chose, with no restrictions on method of research or implementation and, at the end, you get to show off your work in an arena of your true peers that not only fight you, but also help you, improve on your results, point out inconsistencies or mistakes. So you don't get the points. Who cares? Doing great work is working great for me!

There is more. You can actually contribute not by answering questions, but by reviewing other people's questions, answers, comments, editing their content (then getting that edit approved by other reviewers) and so on. The quality of my understanding increases not only technically, but I also learn to communicate better. I learn to say things in a more concise way, so that people understand it quicker and better. I edit the words of people with less understanding of English and not only improve my own skills there, but help them avoid getting labelled "people in a remote software development sweat shop" just because their spelling is awful and their name sounds like John Jack or some other made up name that tries to hide their true origins. Yes, there is a lot of racism to go around and you learn to detect it, too.

I've found some interesting things while doing reviews, mostly that when I can't give the best edit, I usually prefer to leave the content as is, then before I know the content is subpar I can't really say it's OK or not OK, so I skip a lot of things. I just hope that people more courageous than me are not messing things up more than I would have. I understood how important it is for many people to do incremental improvements on something in order for it to better reach a larger audience, how important is that biases of language, race, sex, education, religion or psychology be eroded to nothing in order for a question to get the deserved answer.

What else? You realize that being "top 0.58% this week" or "top 0.0008% of all time" doesn't mean a lot when most of the people on StackOverflow are questioners only, but you feel a little better. Funny thing, I've never asked a question there yet. Does it mean that I never did anything cutting edge or that given the choice between asking and working on it myself I always chose the latter?

Most importantly, I think, I've learned a few things about myself. I know myself pretty well (I mean, I've lived with the guy for 39 years!) but sometimes I need to find out how I react in certain situations. For example I am pretty sure that given the text of a question with a large bounty, I gave the most efficient, most to the point, most usable answer. I didn't get the points, instead they went to a guy that gave a one liner answer that only worked in a subset of the context of the original question, which happened to be the one the poster was looking for. I fumed, I roared, I raged against the dying of the light, but in the end I held on to the joy of having found the answer, the pleasure of learning a new way of solving the same situation and the rightness of working for a few hours in the company of like-minded people on an interesting and challenging question. I've learned that I hate when people downvote me with no explanation even more than downvoting me with a good reason, that even if I am not always paying attention to detail, I do care a lot when people point out I missed something. And I also learned that given the choice between working on writing a book and doing what I already do best, I prefer doing the comfortable thing. Yeah, I suck!

It all started with a Tweet that claimed the best method of learning anything is to help people on StackOverflow who ask questions in the field. So far I've stayed in my comfort zone: C#, ASP.NET, WPF, Javascript, some CSS, but maybe later on I will get into some stuff that I've always planned on trying or even go all in. Why learn something when you can learn everything?!

Coma is my favorite Romanian bands and I've known them almost since they were formed. They have been singing for 16 years now and it was nice to see the concert room filled with people of all ages, including a 16 year old boy who had his birthday on the same day. For me this concert was a double whammy, as the lead singer of one of the opening bands is a former colleague of mine. Yeah, small world.

The opening bands where Till Lungs Collapse and Pinholes. TLC were nice, with my boy Pava almost collapsing his lungs. Pinholes were a bit strange: from five people on the stage, only the drummer didn't sport a guitar. Their writing process must be weird. Then Coma came on stage, at about 0:00 and played for an hour an a half. They were great! I've been to many of their concerts and this is one of the best yet. The band's "curse" struck again, on Dan Costea's acoustic guitar, but they were able to continue without it with no problems. They sang all time favorites, some newer songs, they also did Morphine, which is one of my personal favorite songs of theirs. I wish they would have managed to squeeze Daddy in there, or at least 3 Minute.

Catalin Chelemen was on fire, Dan was doing his usual PR thing and he was great as well and it seemed like they all had a good chemistry with the new guitar player, Matei Tibacu. Well, new for me. Unfortunately the sound in Fabrica was pretty bad. While inside you could kind of focus on the right notes, especially if you knew what the songs were supposed to play like, if you try to gauge the quality of the concert from the videos that are online now, you want to mute it almost instantly. People were respectful enough not to smoke during the concert (I can't wait for the smoking ban to come in effect!), but my clothes still smelled of tobacco when I got home, from people smoking in the next room.

As far as I know you can hear them next at the Electric Castle Festival, July 14-17, with so many other great bands. I am tempted to go there, but I am not one for festivals. Great job, Coma, and good luck!

Click here to see some nice photos from the concert.

and has 0 comments
If there is anything that I am forced to say about Adrian Despot, the frontman of Vita de Vie, is that he is a true artist. The concert tonight was spot on, even if I am not a fan of the band. The guest bands were pretty good, too, but I have to admit that for most of them I was waiting for them to stop playing so I can listen to the great playlist from DJ Hefe. The audience was really mixed, ranging from little kids to old people. It felt great to see all these people singing along and reliving some of the greatest hits of the band.

I started watching the concert online. It was kind of extreme to go there at 16:00 and stay until 23:00, especially since I was worried about the food/drink/toilet situation and there was an afterparty as well. I have to say that all my worries were for naught. Really decent access to the food and drink stands and there was no queue at the toilets outside. Of course, the drinks and food were shitty and overpriced, but that was to be expected. It also was a really wonderful thing to stand in the middle of a crowd of people and not feel like I was smoking a cigar. The law against smoking in public places has finally reached Romania so it felt really wonderful.

By the time we got to the concert hall - umm, heated tent, but it was better than it sounds - the last band before Vita de Vie was playing, the rather good Relative, from Cluj. Energetic, professional, kind of bad public speakers, but they have time to improve. They were pretty emotional about their first venue in Bucharest and performing before so many people, so they were sweet. Then the main show started, with light shows, projections and a volume that felt like twice as loud as the bands before. My ears are still ringing.

Unfortunately something happened that ruined my evening, so I went home after the concert, rather than go to the after-party at Fabrica. I wish I was in the mood for that, but well, shit happens. So yeah, the show was great, the music pretty good - although I felt like the band would have done a better job with another lead singer :) The point is that Vita de Vie, like any other band - let's be honest, is a project. Individual people don't count unless they push the project further, make it better somehow. Adi Despot made that obvious when he called the previous members of the band to play some songs, as well as some collaborators in sideprojects started by current members of the band. Like him or not, he did bring showmanship to the project and he deserves to be the frontman.

Bottom line, I was impressed by the way the concert was organized (I am used to those really bad things where people just stand brushing against each other, suffocating in smoky improperly ventilated places, trying their best not to slip into the beer and piss left by people who couldn't get fast enough to the few malfunctioning toilets provided). I was also impressed with the guest bands, doing a really professional job, even if they have a lot to learn still.

You might be interested in the Facebook link of the event.

On the 9th of February I basically held the same talk I did at Impact Hub, only I did better, and this time presented to the ADCES group. Unbeknownst to me, my colleague there Andrei Rînea also held a similar presentation with the same organization, more than two years ago, and it is quite difficult to assume that I was not inspired by it when one notices how similar they really were :) Anyway, that means there is no way people can say they didn't get it, now! Here is his blog entry about that presentation: Bing it on, Reactive Extensions! – story, code and slides

The code, as well as a RevealJS slideshow that I didn't use the first time, can be found at Github. I also added a Javascript implementation of the same concept, using a Wikipedia service instead - since DictService doesn't support JSON.

Today I was the third presenter in the ReactiveX in Action event, held at Impact Hub, Bucharest. The presentation did not go as well as planned, but was relatively OK. I have to say that probably, after a while, giving talks to so many people turns from terrifying to exciting and then to addictive. Also, you really learn things better when you are preparing to teach them later, rather than just perusing them.

I will be holding the exact same presentation, hopefully with a better performance, on the 9th of February, at ADCES.

For those interested in what I did, it was a code only demo of a dictionary lookup WPF application written in .NET C#. In the ideal code that you can download from Github, there are three projects that do the exact same thing:
  1. The first project is a "classic" program that follows the requirements.
  2. The second is a Reactive Extensions implementation.
  3. The third is a Reactive Extensions implementation written in the MVVM style.

The application has a text field and a listbox. When changing the text of the field, a web service is called to return a list of all words starting with the typed text and list them in the listbox, on the UI thread. It has to catch exceptions, throttle the input, so that you can write a text and only access the web service when you stop typing, implement a timeout if the call takes too long, make sure that no two subsequent calls are being made with the same text argument, retry three times the network call if it fails for any of the uncaught exceptions. There is a "debug" listbox as well as a button that should also result in a web service query.

Unfortunately, the code that you are downloading is the final version, not the simple one that I am writing live during the presentation. In effect, that means you don't understand the massive size reduction and simplification of the code, because of all the extra debugging code. Join me at the ADCES presentation (and together we can rule the galaxy) for the full demo.

Also, I intend to add something to the demo if I have the time and that is unit testing, showing the power of the scheduler paradigm in Reactive Extensions. Wish me luck!

Long story short: I thought FOSDEM 2016 was terribly non-technical.

The entire conference took place at the ULB Solbosch Campus in Brussels, Belgium, which is composed of several buildings in which many rooms are being used for presentations. That meant that not only you had to plan the speeches that you wanted to attend to, but also consider the time it took to move from one building to another (in the cold and rain). Add to this the fact that the space was still insufficient for most talks, and if you didn't get there before the talk started, it wasn't uncommon to find the room full and be turned down at the door for security reasons (meaning fire hazards and the likes, not stupid terrorism). I thought the mobile app FOSDEM Companion was very helpful in keeping track of what is what and where and when.

The talks themselves, though, were mostly 20-25 minutes long. While some reached to 45 minutes, most of them were short presentations of one product or another. Someone would speak in front of a Powerpoint (or some alternative) slide and the most common template was: "I am X I work at Y and we are doing product Z. Here is a history of the product, here is what it can do for you and you can find more at these links." They were open source and free, alright, but other than that it felt like it was a marketing conference, not a technical one. I have seen only one presentation that included actual code.

This doesn't mean I didn't enjoy myself. I've met old friends and some of the presentations were really interesting. I was particularly impressed by something called Ring, which is a completely peer to peer and securely encrypted communication system. Basically it allows you to find people, talk to them (via text, sound, video), while having no central server. It was something that I was looking for and that uses DHT as a discovery mechanism.

So my conclusion is that if you are not there for a specific project or topic, so that you end up finding the people that are interested in the same thing and network with them, FOSDEM is pretty superficial. The talks were recorded and the videos will slowly appear on the FOSDEM video archive site, so actually going there just to see the presentations alone might not be necessary. Being from a slightly different technical domain, I wasn't interested in socialization, and I think that was my biggest mistake.

The people there looked interesting. A friend of mine summarized it well: "one of the few places where there is a queue at the men's bathrooms and not at the women's". There were of course plenty of facially haired, pony-tailed, black leather wearing, Linux laptop carrying hackers running around, but most of the people there didn't look that young or that "hacky". In fact, I think the age average was probably around 40.

That's about it for my FOSDEM report. If you need any more information, leave me a comment and I will fill any holes in the description.

Update:
The talks that I went to and I liked were these:

On the 3rd and 9th of February I will be presenting a demo of Reactive Extension in action on a Windows Presentation Foundation app that I am going to be building as I speak, first without and then with Rx. The presentation should be about 30-45 minutes, in Romanian, but I am sure we can accommodate foreign speakers by doing it in English if you request it. These events are all free, but you must register in order to know how many people to prepare for. Here are the Meetup links:
ReactiveX in Action, Wednesday, February 3 2016, 19:00, Impact Hub, Strada Halelor 5, Bucharest
MsSql / Reactive Extensions, Tuesday, February 9 2016, 19:00, Electronic Arts - Afi Park 2, Bulevardul General Vasile Milea 4F, București 061344
See you there!

So I've finally created a Facebook account. Yes, it won. I also accessed the Twitter one I created a few good years before and never used. These new social accounts will probably be used to publish what I post here, but anyway, I've updated the blog layout with my Facebook and Twitter accounts (see the icons top right).

and has 0 comments
We are three in the room, all dressed casually, but I know them for what they are: angels. And they are here to kill me. I fire bullet after bullet, but they hit in weird places in the room, as if I am not even aiming straight. I spit at the first one, defiance my only weapon. The spit ball goes sideways, at a 60 degree angle from my target. Illusion! I aim the gun 60 degrees in the other direction and fire three bullets. The angel falls down.

My gun is pulled from my hand by invisible forces and the second assassin is upon me. He tries to kill me, but he can't. I've taken precautions. Pig meat during this holy day makes me unclean and angels can only kill pure creatures. The angel snarls "You thought pork would save you?" A ball of pure light grows from his open right hand. Unfortunately for me, angels can also purify one by touch alone. I am powerless in his hands. I know I am going to die. As the energy touches my temple I feel the excruciatingly painful ecstasy of purification. In that fraction of a blink of an eye, I feel I can be anybody, do anything. I choose to have telekinesis and get my gun back. I shoot the angel full of holes.

"Who the hell are you?", the dying angel murmurs. "I am Jesus of Nazareth", I reply. He scoffs "That place doesn't even exist!". "Not yet", I grin as he breathes his last.

Sarmale is a dish that is traditionally eaten around Christmas in Romania, although you can make them all year round and some Romanians do. This type of food probably has Turkish origins, since the word "sarmak" means "roll" in Turkish and "leh" is a common Turkish pluralization. Not that I know Turkish, but part of Romania was conquered by them, so some things remain. Sarmale is one of the good ones, but it is a time consuming dish to prepare so I never cooked it myself. That's what parents are for, right? However, recently when I was abroad, I found myself wanting to cook some for my foreign friends. Unfortunately I couldn't do it then, but the idea to cook some tasty sarmale remained.

Today me and the wife set off to do just that. She knows how to make them, unfortunately. That means that my giddiness was uncalled for, since I expected numerous improvements on the recipe, but instead I was coerced to follow "the law". Even worst, due to differences in taste and digestive systems as well as a lack of some more exotic ingredients, the recipe we agreed on is some of the simplest possible. No onion, no garlic, no paprika, no parsley in the mix, nor bacon or tomato sauce - only outside. However, I am sure that even so they will be extremely tasty and the simplicity of this recipe means even people that don't know how sarmale should taste like can do them at home and then experiment with their national ingredients.

Without further ado:

  1. mix pork and veal chopped meat with some rice and pepper (and optionally thyme)
  2. wrap mixture in pickled cabbage leaves to get the sarma rolls
  3. put rolls in a large pot in the following fashion
    • first a layer of simple chopped pickled cabbage
    • a layer of sarmale, put one next to the other, but with some small space left, since they will grow
    • put a layer of chopped pickled cabbage and some bacon and a bit of smoked meat (like ribs), more thyme, maybe a little hot paprika
    • repeat the previous two steps until the pot is full
  4. add water to fill the space
  5. place in oven at 150C (300F) and cook for at least three hours


The time consuming part if the making of the rolls, which not only requires manual labor for each roll, but also needs good cabbage leaves, cut in the correct way. Plus the long cooking time. In Romania we eat them with polenta, sometimes with cream or yogurt, while biting from raw chilly peppers. Some prefer them hot, some like them cold. I especially like the cold ones, because you can just pick them up and eat them.

Now, the dish called sarma is done differently in each country. If you google "sarma" you get recipes from the former Yugoslavia (see this, as an example), but if you google "sarmale" you get the Romanian ones (Here is a decent one). The types of leaves used, the mixture, the cooking style may very drastically. I, for one, want bacon,onion and garlic in the dish. I would also add some tomato sauce and hot paprika in the mix on principle. I wanted to experiment with different types of meat, coriander, cumin, Indian spices and so on. There are also different types of leaves, but I would say that the pickling of the cabbage is one of the main reasons why the sarmale are so good. Perhaps other types of leaves could also be pickled, but that means I either have to do it myself or use the standard ones that you can find already pickled at the market. Perhaps one of the things that makes my mouth water the most is to add some mutton sausage mix in the meat, moving more towards the Arabic style of meat dishes, or just add sheep fat over the sarmale when they are cooking.

But why stop there? If you look at the various recipes, some of them start off by frying the garlic, onion and rice. Some of them add egg to hold the mixture, or celery, or parsley or other things. I know vegetarian people that don't put meat in the mix, or people like my wife who don't want fried onion in their food. There are fish cabbage rolls, there are chicken ones, some people use fine cut potato with or instead the rice. The leaves are usually either grape leaves or cabbage, although some don't use pickled leaves and any large leaf can be used (or even small ones if you are a clock maker with OCD). One example that I've heard about and doesn't appear in the Wikipedia article is using linden leaves. And the leaf type really really affects the taste. The grape leaf sarmale are eaten with yogurt, for example, while the cabbage one rarely so, but are eaten with hot paprika or chilly peppers. In other words, one can create any type of roll using any type of leaf with any type of content, as long as it absorbs the water and fat that carry the taste of the leaf and the other ingredients.

So, do you feel a little inspired by this or not? It is one of the most common Romanian slow cooking dishes and a delight to eat.

and has 19 comments
I have finally returned home from a two year period working for the Joint Research Center of the European Commission, based in Ispra, Italy. I usually don't publish my places of employment on the blog, but this is special, because I know there are very few sites one can get an honest opinion about it. I have not been employed by the EC directly, but through a proxy company that also contracted me as an independent contractor. There is much to be said about that, too, but my main point is that in this tiered society I was the "external contractor", which had a meaning of "lower caste" in most administrative circles and even in some personal ones. But since this will be a long post, let me do it properly.

Also, some people have told me that they thought my post to be biased and subjective. They are right! It is my own personal perspective and I cannot guarantee that any of it is remotely true. Even to myself. Because sometimes I think nothing is real. It's all in my head. Including you. Wait, where did you go?

Location

You can't believe the location of the JRC in Ispra when you first get there. Yes, you probably knew that Ispra is like a small town in the middle of nowhere, but you didn't expect your future workplace to be situated in a huge, green park. After you go through the impressive security gates (which anyone with a little skill can pass through unimpeded) you see trees and grass and some medium sized buildings in their midst, few and widely spaced between them. To understand better, at odd hours when there were fewer cars going in and out I saw wild hares, foxes and even a badger on the premises. I have an entire collection of flower and mushroom photos taken from the place, but it's too big to publish here and I am not sure I am allowed to, since there was a vague "no pictures" sign in the outside parking lot.

That being said, the entire area is placed next to a small patch of forest. In fact, people who come for the first time to JRC (and are not externals) can be housed in the Foresteria, which is like a student housing place, with large spaces, but bad accommodations, where you pay a percentage of your JRC salary as rent. Myself I was housed in Millennium Residence, a small motel like thing situated right in front of the JRC main gate. I don't drive, so it was great for me. Ispra is right next to Lago Maggiore (which, in case you are trying to translate from Italian, is a big lake, but not actually the biggest lake in the area), so you have a lot of opportunities for walks and drinks by the lake and stuff like that. Great, right?

Now comes the bummer, once you exhaust the few things you can walk to and from in the area, you realize that you are screwed without a car. There are a lot of restaurants in the area, more than they should be - because of the JRC there, but their quality and pricing vary wildly. Plus, when I say "area", I am talking places you get to by walking at least 15 minutes. Of course, a bike helps tremendously, but everything in the region is ups and downs; it may take a while for getting used to. Forget about anything else fun. In Italy, everything closes at around midnight. There is only one club called ANPI, which is like a reminiscence from the war era, one bar - which is great but small, a bar-restaurant next to the lake called Cafe del Lago (ask Mauro there for a Sputtafuoco focaccia sandwich and say the Romanian guy sent you ;) ) which is acceptable, but closes early and the Club House, where people go to drink a cup of tea and have decent Internet. Oh yeah, I'll get to that in a moment.

With a car, though, you have access to numerous places in the region, from touristic locations to some beautiful wild zones. There are bigger towns with bigger distractions, though not that big. Not having a car, I am hardly the guy to talk to you about that. Maybe others will fill in the blanks in the comments section.

A big problem with the location is how to get there. The closest airport from Ispra is Milan-Malpensa, which is relatively close by car, but impossibly long by anything else. Assuming you reach Malpensa at the right time, you would take three trains to get to Ispra in more than two hours. If you take a cab, you get to Ispra in half an hour, but you pay at least 50EUR for the trip. If you weren't an external, you might have access to a cab company that can be used by JRC employees only. The good news is that there are people that work as clandestine taxis in the area. A trip to Malpensa usually takes 30EUR with these people, and they are nice folk, they can wait for you at the airport and since they live in the area it is much more convenient for them as well. Just ask around and you will find someone who knows someone.

Internet

When I first got to Ispra, the place where I was living had no Internet. I went from two broadband lines in Bucharest to nothing in one day. I spent my weekend mapping the Wi-Fi connections in neighboring Ispra and Cadrezzate. At one point I found a spot in an intersection where, if you kept the cell phone up, you got the Wi-Fi connection from the Club House (which was at least 500m away). Moving one meter in either direction from that sweet spot terminated the signal. It was like magic and, while I was getting my mail there and people were staring at me from their cars as they were passing by, I wondered if it wasn't some Internet withdrawal induced hallucination.

Inside JRC, the Internet is good, if you are not in a "secure network" which filters all your access through a 1984 style firewall that doesn't allow you to open games, proxy and VPN programs distribution websites, hacking, weapons or other such suspicious sites, whatever that means. Even so, the download speed is huge and you can have a decent experience at work, if your boss would allow it.

After a while they installed Internet at my residence: an ADSL line that was supposed to be shared by all people living there. There were like 20 apartments, so even with perfect bandwidth distribution that amounted to about 40KB/s. There was not a perfect bandwidth distribution, let's put it like that. And even so, the speed from the provider was not always full on. I had days when the entire bandwidth of the building was around 30KB/s in total. And I am talking about the download here.

Other options for Internet in the area include cellular Internet and EOLO, a system that requires you to install a satellite-like dish. Since the owners of the building did not want to allow that, I was stuck with ADSL, like in 2000. Cellular Internet might seem appealing, if you don't intend to download movies or Linux distributions or whatever, but their subscriptions there are idiotic to say the least. They give you a 10GB allowance, for which you pay like 15EUR (I think), but when you finish it, you need to wait for the month to end to get other 10GB. You cannot buy more than 10GB, either. So you go to them, money in hand, tell them you want to pay for more Internet and they refuse you.

You ask me how I survived in the middle of nowhere with no Internet for six months? I made a program to search for everything I was interested in and download it in a file so I could read stuff at my house from an USB stick. Yeah, that happened.

Also, if you are thinking about watching TV to learn Italian... not gonna happen. All the channels that you are likely to have available are in Italian, even in most hotels, and the quality of the Italian TV is abysmal. Let just say that when I first turned the TV on at night - hoping for better programming - I found Ambra Angiolini with the show "Generazione X", which only aired around 1995.

Life

What life? Heh.

Italians are really strange from a Romanian point of view, but not so, apparently, for the neighboring countries - which probably makes Romania strange. The weirdest cultural shock for me were the hours and days of service. For example, you have to eat lunch at 12:30, you have to eat dinner at 19:00. If you get terribly hungry at 15:00, your only option is a supermarket: all restaurants and most bars are closed. Likewise, if you want service during lunch hours from a non-food related business, you will find them closed for the duration. They also have something called "giorni de chiusura", days in which the business is closed. Makes sense, since restaurants would have a lot of business in the weekend, but not so in certain days. But you never know when that day is. Usually it is somewhere on Monday, Tuesday or Wednesday, but you might walk by and find them open because they were closed the day before or something. Hint: always keep the phone numbers of the restaurants you want to revisit. And speak Italian.

There are many other areas of life where Italians do things regimented like that, not only in opening hours. If you invite an Italian to your home because you are cooking something, they will insist they come at 12:30 or after 19:00. They simply do not get hungry somewhere in the middle. The dishes are clearly marked in the menu as "primi" and "secondi", meaning first and second, so you know the order in which to eat them, but then there are the drinks/food combinations as well: what to drink with what food, what not to drink and eat after or before something and so on. I have been told of laws from the Mussolini era remaining in their codex, like you are not allowed to congregate in groups of more than five people or something and stop on the sidewalk or if you want to have a party of more than 20 people you need to notify the police. They have a lot of behaviour rules as well, clothing rules, they fucking have rules about anything and everything. And then they tell you "Oooh, this is Italy!" meaning that rules are there to be broken. Still, lots of rules are being followed.

If you are young and you are thinking about wild parties and sex orgies and dancing and stuff like that, forget about it. There are no young people in Ispra, if they can help it. Even the people in the JRC, when they throw parties, you have to first be "in the know", meaning you are part of a group that organizes this kind of things, and then you have to expect something really meek, since all of the people you are partying with are colleagues, or friends of colleagues and there is no sport in JRC greater than gossip.

There are solutions, like getting into your car and going to Milano or Varese, or knowing nearby clubs. Again, I am not the guy to ask. The people that I have met were either not discussing it or not having much of a "life", in the social sense of the word.

How did I do it? Eventually I met a group of misfit friends and we often met at lunch or dinner for many a beer and discussions about software programming, politics and movies. And sex and drugs! We were discussing the lack of them.

Food and drink

Oh boy, I could write a whole novel about what I think of the Italian food style. Most of it would be ranting, though. So I will try to keep it civil here.
If you like pasta and pizza, you are in heaven in Italy. Of course, Ispra being close to Milano, people will tell you that you are "in the North" and that people are good here, but the food is not. They will endlessly compliment the food of the southern regions, telling you that the food you eat is nothing compared to something similar done a few hundred kilometers down. Asked how come they don't move the food from there to "the North" (I felt like I was surrounded by Starks, I swear!) you will hear that the water, the air, the very substance of the universe and the laws of physics and chemistry change based on the region of Italy you are in.
I call bullshit. Moreover, I hate pasta in almost all of its incarnations. And I am using words like incarnation because I am mostly a carnivore and when I am not I favor tomatoes, garlic, onions, chilly peppers, fried potatoes. None of that is abundant in Italian food near Ispra. When you ask for a steak you get a half a centimeter piece of meat that would envy any well beaten piece of schnitzel, when you ask for pizza sauce they give you oil, not tomato sauce, they use so little garlic that you need to always ask for it extra, they don't use fresh chilly peppers, only dried ones or already cut ones - for the pizza, and their ideas of tomato is either pasta sauce or some cherry tomatoes that seem to have wondered off on your plate by mistake. Ask for a salad and you will get green salad, carrots Julienne and the olive oil+balsamic vinegar thing to prepare it. OK, they might use other ingredients over that, but they are things like: nuts, a bit of grana (dry cheese), rucola, two or three cherry tomatoes, etc.
Paradoxically, in Italy I also ate the tastiest steaks, but you have to find the places that cook these. You have to look for T-bone steaks, what the Italians call "costata". Filetto is another term for a tasty piece of beef. The best is the Fiorentina, which is usually sold at 4.5 euros for 100 grams. Two out of three restaurants that have costata on the menu do it badly. And I am not talking about the "oh, I know food and this is not so good" kind of Italian boasting, but they are so cooked or so thin that I couldn't enjoy them. Talking about the meat, the Italian word for meat is "carne", just like in Romanian. However, for them the term is almost exclusively used for beef steaks or maybe pork. Tired of pizza with a thin layer of dough, a lot of cheese and a few ingredients sprinkled over, I once asked for "pizza con carne" which they absolutely assured me they have not and gave me the weird looks. When asked what about salami, sausage, chicken, fish, pork they looked at me even stranger "of course we have those". The poor waitress thought I wanted a pizza with a beef steak on it... which I did, but apparently they don't do that.
Italians don't know what a soup is. In fact, I was so shocked that I had to look at the Wikipedia page just to see that I am not the one misusing the term. They have a thing called "minestrone", but they don't call it a soup. Sometimes you find something called a soup, but they are all creams, like boiling a plant and then putting the result in the mixer or putting a dust from an envelope in boiling water. Also, things called "zuppa" are not actually soups. It gets very confusing. Enough to say that if you are looking for a soup like in Romania, Bulgaria, Greece, Turkey or even China, you can't find it.
Garlic. Ahh, some people are extremely sensitive to garlic and while I understand their discomfort when someone smells of the thing, I mostly pity them for not "getting it". Yes, I am a hypocrite, as well. However, in Italy that is the norm. People would smell garlic off you, wonder why you put garlic in this and that and talk about "we use garlic in Italian cuisine, just the other day I used a clove in one dish and the whole family enjoyed it". OK, maybe using a whole bulb for my evening meal is excessive, too, but surely this fear of garlic is unwarranted. In fact, I read an article about the old days of the Roman empire where the poor people and slaves did not have a lot of things to eat and they could only afford cabbage and other garden stuff like that. And since cabbage usually tastes like crap by itself, they used a lot of garlic to spice it up. Therefore the "citizens" (read "people from Milan") thought that the smell of garlic was a sign of poor social status. Now, if I think about it, there were very little restaurant dishes with cabbage, as well. Even the kebab (if you could find it anywhere) was made with green salad leaves. Yuck!
And talking of kebab: actual Turks doing actual Doner kebab were making these dick sized and shaped things in Italy where they put a few ingredients and called it a kebab. Shameful!
The best part of Italian food for me were the cheeses. Really diverse and really different from what I am used to. For example if you want something like feta - which is the average type of cheese in Romania, you need to buy the Greek one from the supermarket, Italians don't have that. Instead they have all kinds of stuff. Try them all, you won't regret it.

For a while I really adored a small place next to my house called La Fornarina. There were these really nice people from the South that were making huge steaks and I enjoyed being "part of the family". However, they were crap at business management and quickly failed. Too bad. Now the only regular solution in the area is Miralago. Ask for Deborah and tell her the Romanian sent you ;). After a lot of experimentation, we ended up lunching every day at that place. They don't know what a steak is, though, but the pizza is great and the daily menu is very cheap and very tasty and different every day. For a nice steak and really hot chilly peppers, you need to go to a place called David's Club in Dormelletto. And what do you say when you get there? Say the Romanian sent you, of course. Special mention for Il Vecchio Castagno, which is an agriturismo in Ranco. Ask for the antipasti menu, which is a combination of 6 to 12 different types of food, some of them quite exotic.

For the drinks, I really enjoyed the Italian grappa. It's like a brandy made of what is left of the grapes after being squeezed to make wine. The taste is really different from grape type to grape type and I found out that I usually like the grappa made from the grapes of the wines that I don't like. And viceversa. Whenever I felt like bringing something from Italy to my friends and relatives at home, I brought them grappa and cheese. The wine is good as well, however you need to know what to order. I found out that the most expensive wines I did not enjoy, while some cheap ones were perfect for me. Probably because instead of sipping I was drinking them. I found this technique to work with a glass of water: you take a sip of a Chianti or something more special and you feel the taste. Then you take a sip of water and clean your palate, then you sip the wine again. It works, but I prefer the drinkable wine.
One funny anecdote is about me trying to buy wine from the supermarket in the first days I moved to Italy. In Romania we have a label hint on every wine saying if it is dry, sweet or somewhere in between. In Italy this hint is missing. Since I didn't know any of the wine makers or types, I just took two Chiantis (thanks, Hannibal!) and the only wine that had a "secco" label on it, a wine called Florio. When I got home and tasted it, it felt like I poured honey down my throat. It was awful. If you read the Wikipedia page you will see that there are three varieties of this wine which is mostly used for cooking. The sweet one is two and a half times sweeter than the dry one. Damn Einstein and his relativity!
And speaking of sweet, almost everything else in Italy is a sweet liquor. And I mean disgustingly sweet. Moreover, because of a bias in understanding the terms, in Italy if something is bitter or sour, then it is not sweet. So whenever I was trying another brand of Italian drink I would ask "is it sweet?" "Noooo!" and of course it had like half of it just sugar. They had something called "Latte di suocera", which was 75% alcohol. I tried it, sure that something that high on alcohol couldn't have been sweet. Guess what was the rest of 25%! Campari and Aperol are nice, especially in what Italians call a "spritz" which is not wine and water, it's something made with prosecco. My advice: if you haven't tried it before, ask for a bottle of mineral water next to your Aperol Spritz.
One really annoying feature of the alcoholic landscape in Italy (and indeed, every country around as well, including Austria) is that beer is around 5 euros a pint, more than wine, more than grappa, more than any spirit. I mean you go to a bar and you pay 10 euros for a liter of beer. That makes understandable the habit of bars and restaurants to bring you free food with your drinks: you pay a lot more on drinks than on food. You have a lot more variety of beers, like a lot of Belgian beers and artisanal beers, but those you pay even more for. The pint of normal beer in bars is a least 4.5 euros.

The best bar in Ispra (and probably around) is San Martino. Alex the bartender (sorry, I couldn't help make a Misfits pun here) is a great person and a very good bartender. Ask him for his cocktail recommendations and, naturally, tell him the Romanian sent you! You pay rather much on a cocktail, but usually it comes with a full plate of food. Sometimes it is easier (and cheaper) to eat there in the evening.

The work

Now we get to the real deal. You've learned about how to live in Ispra, or how to at least survive, you've learned where the town is and what and where to eat and drink. Those are my favourite past times next to being on the Internet, so it figures. But what about the work? What about the thing that I came all the way from Romania for, leaving my wife to wait for me back home?

The first positive thing about the work was already said: the JRC looks like a park. Now, you need to know that will not last. Why? Because of the reason why it was done like that. You see, when I first came in, my first thoughts were of the sci-fi TV show Eureka, where a guy inadvertently finds himself in a town where the US has secretly stashed all the brilliant scientists, an enclave of knowledge and magic like science where everybody, without exception, was exceptional (see what I did there?). When I saw the vast green of the place I thought some brilliant workplace architect imagined the best way to place buildings in order to maximize the well being of the people hard at work inside the JRC. Well, no. The JRC was home to a nuclear reactor. That is why there is so much security and that is why, wait for it, the buildings are so spread out over a large distance. In case of a nuclear accident, this would allow people to get a lower dosage of lethal radiation - statistically, of course; the nearest people would be screwed. In fact, now that the reactor has been decommissioned, they are building these huge office building like structures that they plan to move everybody into in the near future. These buildings are not only ugly, but they are not even functional: offices have too few power outlets, you get no cell reception in the middle of the building and they are going for the "transparent office space" thing, where anybody from the building can, with little effort, see what you are doing and what's on your screen. But yeah, it is still a positive thing so far.

The second positive thing is the money. Let's face it, if you go to another country to work, you also go for the money and the money is huge. Especially for a Romanian that has to pay a fixed amount of tax as an independent contractor. Not so for a regular person, though. Within the Italian tax framework, a person paid that much needs to give more than half of it to the state. Similar for many other countries. In fact, it may be the norm. Is clearly better than being a software developer in Italy, because they are paid shit, but still, do you know that the permanent position bosses get almost twice what their external employees get and pay almost no taxes whatsoever?

The third positive thing is the people. The hiring process is thought as to get people with experience in their fields. What that means is not that they know a lot, but that they worked a lot with other people and nobody killed them yet. So you can meet a lot of interesting people if you put your mind to it.

That's it. Outside of the Internet speed, I can't think of anything else positive in the JRC. So here come the negatives. I hope you have the time. Otherwise bookmark this, get something to eat, it will be a long read :)

The absolute worse thing in the JRC is this tiered social system. You get the employees of the European Commission, permanent position people who have been there since forever and will continue to be there till their retirement. It is the reason why they are called "permanents". They are paid a lot and they pay almost no tax. Another tier is the "externals", independent contractors that are contracted through intermediaries for a fixed duration, maximum of 6 months, that will be renewed as the JRC sees fit (to a new 6 month period, and so ad nauseaum). That was me. It means that at every stage of the project your boss can simply not renew your contract, effectively firing you, but without the hassle of going through any legislative hurdle. You also get no insurance, paid vacation or sick days and you need to handle all your own finances: accountant, taxes, legal things. Somewhere in the middle are the "grantholders". As opposed to externals, they were not requested for a specific job. Instead, these poor gits have studied and applied for a grant in the JRC, making the effort to get in and be accepted in this wonderful place of research and knowledge. They have a longer contract, usually three years but it can vary, and they are more like employees than the externals, with more benefits, but having also more rules to follow as a result.

This tiered system is absolutely destroying any chance that real work will be done in JRC. I have met only a few people who were content with their work environment, everybody else was ranting to no end of the idiotic conditions in which they have to try to work or pretend to work. Grantholders join the place and their handlers don't know what to do with them and so assign them meaningless tasks. There was one case where a girl tried to get in the JRC, came for the interviews, all on her own money, got through all the tests and requirements, all of three months of effort and wasted money, only to be told that the position she was applying for was cancelled. Externals, on the other hand, are requested for specific purposes - like most software developers in the JRC, since there is no software research in there. But the specificity of the requirements are some of the time just the title of the project. Projects, you see, are different inside the JRC than for the outside world. Instead of having a set of requirements and a time period in which to achieve said requirements, the JRC projects have a budget. Someone was convinced that the project is good for something, so they gave them a budget and now the money must be spent. The general goal of the manager of such a project is not to finish on time and on request, but to keep the project running indefinitely.

Of course, for each of these projects and teams, the task of managing them cannot be given to externals, they need to use a permanent position for it. These people, as explained above, have no real chance of leaving the JRC. The only non voluntary options are a really disturbing mental breakdown, serious illness or death. Some colleagues were actually wondering if dying while being employed would actually make the position available, or the corpse would continue to do the same job as before since the requirements and indeed the training for the job of manager of a project are nil. The only worries of such a person is how to go through the bureaucratic hoops to ensure the annual budget.

You must understand, I am not describing only my work place or my boss, I am not ranting against a specific person here. I don't even think my boss was such a bad guy. The issue is systemic, as observed and described by countless people. The permanents were not born monsters, they are turned into soulless creatures by this grand experiment that should be considered on par with the Stanford Experiments and most of them are utterly pitifully incompetent.

This social layering is visible at every stage of working in JRC. When an external enters or leaves the JRC, they need to validate their electronic card at the entrance; the permanent just waves it joyously. In fact, they tried to enforce the rule of swiping the badge for all people and the response was this hysterical "what is this climate of distrust? Are we robots or animals to be obligated to do this every day?" coming from the permanent syndicate. Of course, that means that, in their view, externals are either less than human. The JRC has this eating place called Mensa. I have not mentioned it in the previous sections because I think it's a disgrace. The food is almost decent, the prices are kind of low, but it feels like livestock feeding. Also, if you are an external, you have to pay a 1.3 euro extra for eating there. Permanents do not. There is a medical station inside the JRC, in case you are sick or something. I have never tried it, but I understand that it only functions for permanents. And so on and so on and so on. Rarely have I seen an environment of such potent social toxicity.

Now getting back to management: they are hiring people for positions of software developers, but they didn't even consider hiring people for the job of software management. It is the same in any domain, I am sure, but for software it is paramount that the person leading the project understands what that project is about. Instead, only a vague requirement lingers in the air, like the smell of a fart, and the daily worry of the external worker is to satisfy the emotional needs of their boss. I am using the word boss, because manager implies some sort of training in the science of management. The daily worry of the boss is different, trying to move any ounce of responsibility on the shoulders of the employees (I am not joking, stuff like "boss, should we do it like this or like that?" "you are the expert, you should choose!") and still convince themselves and others that they are relevant somehow. Stuff like "I don't care if they ask for deliverables, you still have to be in the office for 8 hours every day!". Yuck!

A year in and there came a new "papal bull" from the heads of the EC requiring a list of yearly deliverables for each project. The JRC was in chaos, as many permanents felt the pressure of having to declare what they were going to do before they do it! Maybe even plan ahead some things. Possibly even understand the technical underpinnings of the projects they lead. The chaos lasted for a week or two. I wondered why people seemed to relax suddenly. I got my answer a few months later when someone told me the story of their manager coming to them and asking them to "do something for this deliverable point that I forgot to remove". Get it? They had to give a list of deliverables, but they could edit it at will. In the end, even after "forgetting to delete" one of the goals of the project, all they needed was some document saying that they did something, no matter what.

The result is that you, as a worker, slowly lose relevance yourself. As the world goes forward, you remain behind, even forget what you knew when you came in. You have to make continuous efforts to read stuff, work at home and, most of all, force yourself to not damn it all and start pretending to work like everybody around you. The pressure to just play the game and lose any human connection with the work you do is very strong though. Even days when I did almost nothing were stressful (if not more so) because of the realization that I was losing my self as my life was slowly wasting away. For this reason, I don't recommend working there unless you need the money or a place to rot away in while doing something pleasant outside work.

Another very bad thing about the JRC is the group politics. Like in every bureaucratic environment, there is politics, but usually it is at the personal level. Someone is trying to advance in ranks, to shit on someone else's head, to position themselves closer to a more relevant person or project. However, the politics in JRC are about groups that are doing everything by themselves. Trying to use the results of another group in your work is not only frowned upon, but provokes fits of anger from people thinking you are trying to steal their thunder and butt in on their whitepaper or whatever. As a software developer I was spared of many of these things, but I have heard quite a lot from the more "scientific" levels of the JRC. Even with software, there is not and probably never will be a situation where you create a library with a useful purpose and share it with all the JRC somewhere. This type of policy makes collaboration all but impossible. In place of a community of researchers, happily sharing and creating knowledge, you get little groups of people unaware of what others are doing, often working on the same thing in a different way and closely guarding their rights to put their names on things they publish.

Politics is worse even at the personal level in JRC. Working on a project basically on your own and then having your boss tell you that everybody in the team needs to be in the whitepaper name list is bad enough, but I have seen that the only real criterion of worth in a team is to "play nice" with your boss and the influential members of your team. People who were finishing work early and "were caught" watching YouTube videos were considered bad workers, while people who did nothing but mindlessly watch the screen all day were seen as conscientious. The "grapevine" was strong in JRC. How would you feel to meet people for the first time and see that they already have formed an impression of you because people, many times your own boss, was gossiping with others? This was a common thing in JRC and Mensa was like the main gossip club. I am certain that some people went to the Mensa in order to remain socially relevant and to be "in the loop" rather than for the dismal food.

The last but not least negative thing is the futility of work in the face of bureaucracy. In Romania there is the saying "I am working for the state. I pretend to work, and they pretend to pay me". Imagine that times 28 and this is what it is like to work in a truly international project for the European Commission. I have worked for two different projects while in JRC and the first was something nobody wanted to see work (especially the supposed clients, because of "national interests" - read this as "people wanting to keep their useless jobs") and the second is doomed to failure because there is no way the data produced by it wouldn't hit a political wall when "an EC software is gathering data about my country". Actually, I hope the second project works, although I cannot see it ever ending or reaching any meaningful result.

Conclusion

What else is there? I talked about an apparently idyllic working place, corrupted by human pettiness and social imbecility. I talked about great resources, squandered on meaningless work and the good people reduced to angry ranting drunks by it. I talked about a country that values silly things and looks only inward, instead of opening to the vastness of the world around it. The only thing I can think of saying is opportunities. Don't squander them.

Occasionally you will see something new that could expand your horizons. A foreign language class, a cooking class, a festival somewhere, learning to ride, going to the gym, the possibility of love, whatever. And, working as an external in Ispra, always asking yourself if you will spend more than another six months here, if the boss won't fire you, the project won't suddenly remain without a budget or if the wife will have a fit and demand you come back, you will convince yourself that you don't need it, that it can wait, that you can't spare the time or that you are not sure you want to spend the money. That's bull! Take the opportunity, learn whatever new you can, not because you have all the time in the world, but because you actually don't! Exactly because you might be gone at any time, you need to seize the moment.

For me, that's the only regret. I made great friends, I had fun as much as I wanted, I could have done more at work, I am sure, but I made a decent effort, I enjoyed the solitude as much as I enjoyed the company. But I return with little but money and the knowledge I've detailed in this post. As for JRC Ispra... it felt like prostitution. I was making money for being fucked in the ass, and had I stayed any longer, I would have been convinced that somehow I deserve it.